Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 11 May 2013 10:08:46 -0700
From:      Alfred Perlstein <bright@mu.org>
To:        freebsd-hackers@freebsd.org
Subject:   Re: syscall to userland interface
Message-ID:  <518E7B1E.9050704@mu.org>
In-Reply-To: <1368260611.67320.YahooMailNeo@web171505.mail.ir2.yahoo.com>
References:  <1368214284.29611.YahooMailNeo@web171503.mail.ir2.yahoo.com> <518D4C4F.90902@mu.org> <1368260611.67320.YahooMailNeo@web171505.mail.ir2.yahoo.com>

next in thread | previous in thread | raw e-mail | index | archive | help
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.

-Alfred



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?518E7B1E.9050704>