Jeder Systemaufruf hat eine Nummer, mount z.B. die 21. Ein
Systemaufruf wird gemacht, indem man die Paramter des Aufrufs mitsamt
der Nummer auf den Stack legt und dann Interrupt 0x80 auslöst und
damit in den kernel springt. Der Interrupthandler befindet sich in den
Kernel Quellen für Intel in arch/i386/kernel/entry.S. Dort wird der
Nummer 21 der Aufruf der Funktion sys_mount
zugeordnet.
Allerdings kann man Funktionen definieren, die einem diese Arbeit
abnehmen. Dazu benutzt man Makros aus
/usr/include/sys/syscall.h. Diese Datei inkludiert eine
maschinenspezifisches Datei, für Intel
z.B. /usr/include/i386/syscall.h. In dieser Datei sind Makros namens
_systcallX
definiert, um für systemcalls mit X verschieden Parametern
eine Funktion mit ebensovielen Parametern zu definieren.
Im allgemeinen definiert die libc bereits eine Funktion für jeden systemcall. Die Funktion mount ist beispielsweise mit obigen Makros in den libc Quellen in sysdeps/linux/mount.S definiert.