On Wed, Dec 15, 2004 at 07:56:53AM -0800, Kamal R. Prasad wrote: > > --- Andrey Simonenko <[EMAIL PROTECTED]> > wrote: > > > On Wed, Dec 15, 2004 at 08:19:05PM +0530, Ravi > > Krishna wrote: > > > > > My question is why we store the > > p->p_sysent->sv_table > > > for each process. What is the reason for keeping > > this per process? > > > Are there some situations where two processes can > > have different system calls > > > available? > > > > Processes can have different p_sysent, because the > > kernel supports > > different ABIs. sv_entry (pointer to some system > > call table) is > > Sounds rather inefficient to have a per-process table > rather than a set of ABIs into which the per process > table is an indirection (similar to say vnops).
Errrr... actually, if you look at <sys/proc.h>, you'll see that this is exactly the way it is - p->p_sysent is a *pointer* to a struct sysentvec, and there are only a few struct sysentvec's in the kernel, definitely not one per process :) G'luck, Peter -- Peter Pentchev [EMAIL PROTECTED] [EMAIL PROTECTED] [EMAIL PROTECTED] PGP key: http://people.FreeBSD.org/~roam/roam.key.asc Key fingerprint FDBA FD79 C26F 3C51 C95E DF9E ED18 B68D 1619 4553 The rest of this sentence is written in Thailand, on
pgpY70uo68WSw.pgp
Description: PGP signature