Copyright (C) 2001 Chad David <email@example.com>. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 1. Redistributions of source code must retain the above copyright notice(s), this list of conditions and the following disclaimer as the first lines of this file unmodified other than the possible addition of one or more copyright notices. 2. Redistributions in binary for...
NAMEuidinfo uihashinit uifind uihold uifree - functions for managing UID information
SYNOPSISIn sys/param.h In sys/proc.h In sys/resourcevar.h Ft void Fn uihashinit void Ft struct uidinfo * Fn uifind uid_t uid Ft void Fn uihold struct uidinfo *uip Ft void Fn uifree struct uidinfo *uip
DESCRIPTIONThe sysctl Cm net.inet.tcp.syncookies family of functions is used to manage Vt uidinfo structures. Each Vt uidinfo structure maintains per uid resource consumption counts, including the process count and socket buffer space usage.
The Fn uihashinit function initializes the Vt uidinfo hash table and its mutex. This function should only be called during system initialization.
The Fn uifind function looks up and returns the Vt uidinfo structure for Fa uid . If no Vt uidinfo structure exists for Fa uid , a new structure will be allocated and initialized. The sysctl Cm net.inet.tcp.syncookies hash mutex is acquired and released.
The Fn uihold function increases the reference count on Fa uip . Fa uip Ns 's lock is acquired and released.
The Fn uifree function decreases the reference count on Fa uip , and if the count reaches 0 Fa uip is freed. Fa uip Ns 's lock is acquired and release and the uidinfo hash mutex may be acquired and released.