On 16 Feb 2008, at 21:55, ik wrote:
Exactly my point on the design in the first place. The corrent design takes integers only. Regarding the Linux Kernel, I did not knew about the floating points issues,
I don't know of a single OS kernel which supports using floating point in kernel space.
but what about pointers, arrays, structs etc ?
Pointers are the same size as TSysParam. There are no system calls which take arrays, structs etc.
"These days passing five parameters is not a problem any more, and there is a __NR__newselect (used by libc 6) that corresponds directly to sys_select() and similarly __NR_mmap2." So originally the problem was 5 parameters not 6 !
They added usage of ebp only later on.
and there are functions that might have more then 6 parameters,
Which ones?
BTW, why the C function uses var_args and not using overloads
C doesn't support function overloading.
or other "magic" to pass the valid amount of parameters ? <int syscall(int number, ...);>
Function overloading is no more magic than varargs.
And there are changes for every type of bit: "On newer platforms that only have 64-bit file access and 32-bit uids (e.g., alpha, ia64, s390x) there are no *64 or *32 calls. Where the *64 and *32 calls exist, the other versions are obsolete."
I don't understand what what this has to do with the way system call interfacing works.
Jonas _______________________________________________ fpc-pascal maillist - fpc-pascal@lists.freepascal.org http://lists.freepascal.org/mailman/listinfo/fpc-pascal