Ausam/distribut.doc/sec3.n
.HE "AUSAM" " " "Section 3"
.bp
.NS 0 "3."
The "lnode" structure
.PA
These structures reside in kernel data space and contain data
necessary for the continuous monitoring of users.
The structure is of the form:
.IN
struct lnode
{
unsigned l_uid;
unsigned l_shares;
long l_usage;
unsigned l_cmask[CMASKSIZE];
unsigned l_flags;
unsigned l_dlimit;
unsigned l_doverflw;
char l_plimit;
char l_climit;
unsigned l_duse;
char l_cusage;
char l_refcount;
}
.OT
.PA
The incore structures are initialised, accessed and maintained by the
"limits" system call which is of the form:
.IN
limits(addr, function)
.OT
.BP 17 10
where
.NP
addr is a pointer to one or more "lnode" structures and
.NP
function is of type "int" and specifies one of the four possible
actions that the limits call can produce. These are:
.BP 7 4
0 return users own limits structure
.NP
1 return limits structure associated with "l_uid"
.NP
2 return all "active" limits structures, and r0 contains the
count of active structures
.NP
3 Initialise limits structure for "l_uid"; this is a super-user call.
.EP
.EP
.PA
Typically a users limits structure is initialised by "getty" on login and
is used by all his processes until "init" collects his final
process (l_refcount == 0) at which time the necessary data
is written to the "passwd" file.
.ES "3."