Re:OS X BSD System Calls Reference
by wavesum on Tuesday July 07, 2015 @11:01PM
(#9849546)
Why so many duplicates?
For expample int nosys() is listed 185 times, each pointing to bsd/kern/subr_xxx.c
[ Parent
| on HN ]
Because when you remove items from that list or otherwise change the order, you break binary compatibility.
The C library specifies the index into this table when making a syscall. You don't want a situation where the C library and the kernel are mismatched and disagree about what the syscalls are.
The safe way to remove a syscall is to change it to return ENOSYS. All the syscalls that come after it in the table therefore retain the same index.