Hi,

I wanted to know if there is any inclination towards making system calls more 
portable. Please let
me know if this discussion has happened before.

Well, system calls today are not portable mainly because they are invoked using 
a number and it
may happen that a number 'N' may refer to systemcall_1() on one system/kernel 
and to
systemcall_2() on another system/kernel. This problem may surface if you 
compile your program
using headers from version_1 of the kernel, and then install another version of 
the kernel or a
custom kernel that has extended the system call table (on the same system). If 
we want to improve
the portability then we can avoid this approach or improve this approach. It 
may or may not be
complex to implement these.

1. Invoke a system call using its name. Pass its name to the kernel as an 
argument of syscall() or
some other function. Probably may make the invocation of the system call 
slower. If the name
doesn't match in the kernel then an error can be returned.

2. Create a /proc entry that will return the number of the system call given 
its name. This number
can then be used to invoke the system call.

These approaches will also remove the dependency from user space header file 
that contains the
mapping from the system call name to its number. I hope that I made some sense.

Regards,
Amit


__________________________________________________
Do You Yahoo!?
Tired of spam?  Yahoo! Mail has the best spam protection around 
http://mail.yahoo.com 
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to