Messages in this thread | | | From | "Khimenko Victor" <> | Date | Fri, 8 Jan 1999 16:37:22 +0300 (MSK) | Subject | Re: UID width |
| |
In <199901062144.NAA29633@cesium.transmeta.com> H. Peter Anvin (hpa@transmeta.com) 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 majordomo@vger.rutgers.edu Please read the FAQ at http://www.tux.org/lkml/
| |