Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 7 May 2002 01:15:49 -0700 (PDT)
From:      Matthew Dillon <dillon@apollo.backplane.com>
To:        Poul-Henning Kamp <phk@FreeBSD.ORG>
Cc:        arch@FreeBSD.ORG
Subject:   Re: syscall changes to deal with 32->64 changes.
Message-ID:  <200205070815.g478Fn180961@apollo.backplane.com>
References:   <13810.1020419033@critter.freebsd.dk>

next in thread | previous in thread | raw e-mail | index | archive | help
    As a person who has already spent several days playing with
    64 bit time_t's and associated syscalls I would say that 
    creating a new syscall vector for FreeBSD 5.0 (and leaving the
    existing one intact for compatibility) is the correct solution.

    I tried to add new syscalls to the existing vector but so many
    syscalls had to be changed to support 64 bit time_t's that it
    became a huge mess... so much so that I would expect the other
    BSD's to cry foul on us if we tried to do it with the existing
    vector.  It will be far, far cleaner to simply implement an
    entirely new syscall vector / ELF identifier.

    In regards to other things that may need to change size:  A complete
    audit will have to be performed.  I would be happy to take a run through.
    Getting it right the first time is extremely important.  A bunch of 
    things starting leaking out of the woodwork as I was playing around 
    with 64 bit time_t's.  At the very least I would pad the structures 
    to handle things like 64 bit dev_t, ino_t, and file flags, and I would
    even consider padding now 96 bit structures like timespec (on IA32 with
    64 bit time_t's + nanoseconds long = 96 bits) to 128 bits across the 
    board.  It might also be worthwhile to make uid_t, gid_t, and pid_t
    64 bits to support probable future work in those areas.

    In regards to the 5.0R question that comes up later in the thread...
    I just don't know.  I will say that creating a new syscall vector
    cannot be done piecemeal... you have to get it *all* in from the 
    get-go or you create huge issues with things like bootstrapping new
    systems and general compatibility and useability, etc..

						-Matt

:We have some 32 to 64 bit changes outstanding, which are necessary
:to complete the UFS2 DARPA project.
:...
:
:1. Are there anything else that needs to change size while we're
:   at it ?
:
:2. Is this a good occation to create a new syscall vector for
:   FreeBSD 5.0 rather than embellish the existing one with even
:   more variations ?
:
:-- 
:Poul-Henning Kamp       | UNIX since Zilog Zeus 3.20

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-arch" in the body of the message




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