Linux system call reference

Sep 24, 2011 at 5:46pm
I'm messing around with Linux and asm. I can't find a good reference. I have only googled up some lists of system calls with hardly any explanation of what their arguments should be or what they return. man pages, on the other hand, have a ton of information, but don't tell what the constants are or what eax is supposed to be. I guess I could look into linux C headers, wherever and whatever they are (I only switched to linux a few days ago and have hardly done any programming), but that's a bit more cross referencing than I'd like to do.. Is there something I could use?
Sep 24, 2011 at 5:55pm
or what eax is supposed to be.


eax is just a work register. Like a 32-bit variable.

I would look for a really basic introduction to x86 guide before you look at anything platform specific.
Sep 24, 2011 at 6:06pm
I meant what its value is supposed to be. I feel somewhat comfortable with my knowledge of asm.
Sep 24, 2011 at 6:27pm
In theory at least, if a register isn't mentioned it's because it's not supposed to have any particular value and its value is maintained by the call.
Sep 24, 2011 at 6:38pm
The register is not mentioned because those manual pages are intended for people programming in C, while I want to do int in asm.
Sep 24, 2011 at 6:44pm
Oh, you mean system call as in defined by the OS, not as in BIOS call.

Just follow the calling convention.
Sep 24, 2011 at 6:55pm
We're failing to communicate..
I can find name of a sys call and its eax in http://www.informatik.htw-dresden.de/~beck/ASM/syscall_list.html
I can then look at man pages to see what that that function does and what it's arguments mean.
Now I only need to find what the value of O_RDONLY and etc. is. If you could tell me where I can find it, I'd be glad.
Though, surely, there should be a nice reference of all this somewhere, right?
Last edited on Sep 24, 2011 at 6:58pm
Sep 24, 2011 at 7:04pm
No, but you can grep the value in tour compiler's "include" directory. On *nix that should be the /usr/include directory.

$ cd /usr/include
$ grep O_RDONLY *.h

Good luck!
Last edited on Sep 24, 2011 at 7:06pm
Sep 24, 2011 at 8:08pm
Thanks a lot that worked. I guess I'll have to get used to using 3 references..
Topic archived. No new replies allowed.