On 5/11/13, Alfred Perlstein <[email protected]> wrote: > On 5/11/13 1:23 AM, Karl Dreger wrote: >> >> I am feeling rather stupid at the moment, but I can't find the assembler >> >> files that you are referring to. Do you mean that every syscall under >> >> sys/kern/*.c has a corresponding .S file in src/lib/libc/? > > Nope, the .S files are under the object directory: > >> When you build the system a whole bunch of assembler files are >> automatically generated that define the functions you are looking for. >> >> Look for .S files under the object directory. >> >> Those assembler files have the magic to cause a system call to happen. >> >> example: src/lib/libc/getauid.S (note, this file is GENERATED, it's not >> part of src.) > > > >> >> >> The actual transition from user to kernelland and back probably takes >> >> place via the assembler routines in sys/i386/i386. Most notably >> exception.s >> >> for my i386 cpu. >> >> >> What my question boils down to is this: when running fork and friends >> >> from userland they are invoked as: >> >> fork();, open();, read();, close(); ... >> >> >> but are defined as: >> >> sys_fork(), sys_open(), sys_read(), sys_close(), ... >> >> in their actual c definition. >> >> If the assembler files that you spoke about answer this discrepancy, >> >> then the reason why the penny hasn't dropped yet is because I haven't >> found them. >> >> > Again, they are generated as part of build. You will NOT find them > during a checkout.
cd /usr/obj/*/lib/libc/ ls *.S > > -Alfred > _______________________________________________ > [email protected] mailing list > http://lists.freebsd.org/mailman/listinfo/freebsd-hackers > To unsubscribe, send any mail to "[email protected]" > _______________________________________________ [email protected] mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-hackers To unsubscribe, send any mail to "[email protected]"

