From owner-freebsd-hackers@FreeBSD.ORG Sat May 11 17:09:09 2013 Return-Path: Delivered-To: freebsd-hackers@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by hub.freebsd.org (Postfix) with ESMTP id 14028C9C for ; Sat, 11 May 2013 17:09:09 +0000 (UTC) (envelope-from bright@mu.org) Received: from elvis.mu.org (elvis.mu.org [192.203.228.196]) by mx1.freebsd.org (Postfix) with ESMTP id 03C8BFCB for ; Sat, 11 May 2013 17:09:08 +0000 (UTC) Received: from Alfreds-MacBook-Pro-9.local (c-67-180-208-218.hsd1.ca.comcast.net [67.180.208.218]) by elvis.mu.org (Postfix) with ESMTPSA id 338091A3C35 for ; Sat, 11 May 2013 10:09:02 -0700 (PDT) Message-ID: <518E7B1E.9050704@mu.org> Date: Sat, 11 May 2013 10:08:46 -0700 From: Alfred Perlstein User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.7; rv:17.0) Gecko/20130328 Thunderbird/17.0.5 MIME-Version: 1.0 To: freebsd-hackers@freebsd.org Subject: Re: syscall to userland interface References: <1368214284.29611.YahooMailNeo@web171503.mail.ir2.yahoo.com> <518D4C4F.90902@mu.org> <1368260611.67320.YahooMailNeo@web171505.mail.ir2.yahoo.com> In-Reply-To: <1368260611.67320.YahooMailNeo@web171505.mail.ir2.yahoo.com> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 11 May 2013 17:09:09 -0000 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