[fpc-pascal] syscalls and fpc

Jonas Maebe jonas.maebe at elis.ugent.be
Sat Feb 16 22:11:56 CET 2008

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.


More information about the fpc-pascal mailing list