[lkml]   [1999]   [Jan]   [9]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
    SubjectRe: UID width
    In <> H. Peter Anvin ( wrote:
    >> On Tue, Jan 05, 1999 at 12:05:48AM +0000, H. Peter Anvin wrote:
    >> > This is an FAQ. This is part of Linux' Minix legacy, and will be
    >> > fixed in the 2.3 kernel series. Binary backwards compatibility
    >> > will be provided with libc6 binaries, but not libc5 or earlier if
    >> > uid/gid >= 65535 are in use.
    >> Actually... >= 65534 because '-1' has a special meaning for some
    >> system calls (eg. setreuid).

    > Hence, >= 65535 (note the = part of >=).

    >> btw... I've made partial patches for 32-bit uid_t support (I know
    >> someone else has too, against 2.0.36 or thereabouts) and this
    >> introduces a whole bunch of new system calls, even for things like
    >> fcntl (think SET_OWN).
    >> At some point in the future we might also want 32-bit dev_t and
    >> 32-bit pid_t so its probably worth trying to do them all at once,
    >> that way we don't end up with 15 different flavours of the same
    >> system calls (think about stat et al and all the combinations of
    >> short/long system calls... yuck).

    > Yes. This is all planned to be one of the early 2.3 changes.

    Ufortunatelly even with glibc2 this transition will not be painless. Take a look:

    -- gnu/types.h --
    typedef unsigned short int __ipc_pid_t;
    -- sys/msq_buf.h --
    /* Structure of record for one message inside the kernel.
    The type `struct __msg' is opaque. */
    struct msqid_ds
    struct ipc_perm msg_perm; /* structure describing operation permission */
    struct msg *__msg_first; /* pointer to first message on queue */
    struct msg *__msg_last; /* pointer to last message on queue */
    __time_t msg_stime; /* time of last msgsnd command */
    __time_t msg_rtime; /* time of last msgrcv command */
    __time_t msg_ctime; /* time of last change */
    struct wait_queue *__wwait; /* ??? */
    struct wait_queue *__rwait; /* ??? */
    unsigned short int __msg_cbytes;/* current number of bytes on queue */
    unsigned short int msg_qnum; /* number of messages currently on queue */
    unsigned short int msg_qbytes;/* max number of bytes allowed on queue */
    __ipc_pid_t msg_lspid; /* pid of last msgsnd() */
    __ipc_pid_t msg_lrpid; /* pid of last msgrcv() */
    -- sys/msg.h --
    /* Message queue control operation. */
    extern int msgctl __P ((int __msqid, int __cmd, struct msqid_ds *__buf));
    -- cut --

    unsigned short pid_t is exported to userlevel !

    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to
    Please read the FAQ at

     \ /
      Last update: 2005-03-22 13:49    [W:0.021 / U:20.908 seconds]
    ©2003-2017 Jasper Spaans. hosted at Digital OceanAdvertise on this site