On Monday 01 April 2013 01:33:49 Changhee Han wrote: > +Each architecture ABI has its own requirements on how system call > arguments are passed to the kernel. +For system calls that have a glibc > wrapper (i.g., most system calls) glibc handles the details of copy > arguments to the right registers in a manner suitable for the > architecture. these lines need to be wrapped "i.g." is incorrect ... you mean "i.e." > +However, when using > +.BR syscall () > +to make a system call, > +the caller may need to handle architecture-dependent details. > +For example, on ARM architecture, a > +.I "long long" > +argument is considered to be 8-byte aligned and to be split into two > 4-byte arguments. + > +.BR readahead () > +system call could be called like below in ARM architecture. this has nothing to do with alignment. syscalls pass args via registers, and in the 32bit ARM port, registers are 32bits wide. so in order to pass a 64bit value, you have to manually split it up. -mike
Attachment:
signature.asc
Description: This is a digitally signed message part.