Browse Source

* Initial versions.

marco 23 years ago
parent
commit
7f2dd379a6
2 changed files with 2055 additions and 0 deletions
  1. 887 0
      rtl/freebsd/sysctlh.inc
  2. 1168 0
      rtl/openbsd/sysctlh.inc

+ 887 - 0
rtl/freebsd/sysctlh.inc

@@ -0,0 +1,887 @@
+{
+    $Id$
+    This file is part of the Free Pascal run time library.
+    Copyright (c) 2001 by Marco van de Voort
+
+    The OS dependant sysctl constants. 
+
+    See the file COPYING.FPC, included in this distribution,
+    for details about the copyright.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+
+ **********************************************************************}
+
+
+CONST
+
+{ 
+ * Definitions for sysctl call.  The sysctl call uses a hierarchical name
+ * for objects that can be examined or modified.  The name is expressed as
+ * a sequence of integers.  Like a file path name, the meaning of each
+ * component depends on its place in the hierarchy.  The top-level and kern
+ * identifiers are defined here, and other identifiers are defined in the
+ * respective subsystem header files.
+}
+
+        CTL_MAXNAME	= 12;	{  largest number of components supported }
+
+{ 
+ * Each subsystem defined by sysctl defines a list of variables
+ * for that subsystem. Each name is either a node with further
+ * levels defined below it, or it is a leaf of some particular
+ * type given below. Each sysctl level defines a set of name/type
+ * pairs to be used by sysctl(1) in manipulating the subsystem.
+}
+
+Type 
+    ctlname = record
+		ctl_name : pchar;	{  subsystem name }
+		ctl_type : cint	 	{  type of name }
+	       End;
+
+Const
+        CTLTYPE		= $f;	{  Mask for the type }
+       	CTLTYPE_NODE	= 1;	{  name is a node }
+       	CTLTYPE_INT	= 2;	{  name describes an integer }
+       	CTLTYPE_STRING	= 3;	{  name describes a string }
+       	CTLTYPE_QUAD	= 4;	{  name describes a 64-bit number }
+       	CTLTYPE_OPAQUE	= 5;	{  name describes a structure }
+       	CTLTYPE_STRUCT	= CTLTYPE_OPAQUE;	{  name describes a structure }
+       	CTLTYPE_UINT	= 6; 	{  name describes an unsigned integer }
+       	CTLTYPE_LONG	= 7;	{  name describes a long }
+       	CTLTYPE_ULONG	= 8;	{  name describes an unsigned long }
+
+        CTLFLAG_RD	= $80000000;	{  Allow reads of variable }
+        CTLFLAG_WR	= $40000000;	{  Allow writes to the variable }
+        CTLFLAG_RW	= (CTLFLAG_RD OR CTLFLAG_WR);
+        CTLFLAG_NOLOCK	= $20000000;	{  XXX Don't Lock }
+        CTLFLAG_ANYBODY	= $10000000;	{  All users can set this var }
+        CTLFLAG_SECURE	= $8000000;	{  Permit set only if securelevel<=0 }
+        CTLFLAG_PRISON	= $4000000;	{  Prisoned roots can fiddle }
+        CTLFLAG_DYN	= $2000000;	{  Dynamic oid - can be freed }
+
+{ 
+ * USE THIS instead of a hardwired number from the categories below
+ * to get dynamically assigned sysctl entries using the linker-set
+ * technology. This is the way nearly all new sysctl variables should
+ * be implemented.
+ * e.g. SYSCTL_INT(_parent, OID_AUTO, name, CTLFLAG_RW, &variable, 0, "");
+ } 
+        OID_AUTO	= (-1);
+
+{ 
+ * Top-level identifiers
+ }
+       	CTL_UNSPEC	= 0;
+       	CTL_KERN	= 1;		{  "high kernel": proc, limits }
+       	CTL_VM		= 2;		{  virtual memory }
+       	CTL_VFS		= 3;		{  file system, mount type is next }
+       	CTL_NET		= 4;		{  network, see socket.h }
+       	CTL_DEBUG	= 5;		{  debugging parameters }
+       	CTL_HW		= 6;		{  generic cpu/io }
+       	CTL_MACHDEP	= 7;		{  machine dependent }
+       	CTL_USER	= 8;		{  user-level }
+       	CTL_P1003_1B	= 9;		{  POSIX 1003.1B }
+       	CTL_MAXID	= 10;		{  number of valid top-level ids }
+                        
+ 
+{ 
+ * CTL_KERN identifiers
+ }
+       	KERN_OSTYPE	 	=  1;	{  string: system version }
+       	KERN_OSRELEASE	 	=  2;	{  string: system release }
+       	KERN_OSREV	 	=  3;	{  int: system revision }
+       	KERN_VERSION	 	=  4;	{  string: compile time info }
+       	KERN_MAXVNODES	 	=  5;	{  int: max vnodes }
+       	KERN_MAXPROC	 	=  6;	{  int: max processes }
+       	KERN_MAXFILES	 	=  7;	{  int: max open files }
+       	KERN_ARGMAX	 	=  8;	{  int: max arguments to exec }
+       	KERN_SECURELVL	 	=  9;	{  int: system security level }
+       	KERN_HOSTNAME		= 10;	{  string: hostname }
+       	KERN_HOSTID		= 11;	{  int: host identifier }
+       	KERN_CLOCKRATE		= 12;	{  struct: struct clockrate }
+       	KERN_VNODE		= 13;	{  struct: vnode structures }
+       	KERN_PROC		= 14;	{  struct: process entries }
+       	KERN_FILE		= 15;	{  struct: file entries }
+       	KERN_PROF		= 16;	{  node: kernel profiling info }
+       	KERN_POSIX1		= 17;	{  int: POSIX.1 version }
+       	KERN_NGROUPS		= 18;	{  int: # of supplemental group ids }
+       	KERN_JOB_CONTROL	= 19;	{  int: is job control available }
+       	KERN_SAVED_IDS		= 20;	{  int: saved set-user/group-ID }
+       	KERN_BOOTTIME		= 21;	{  struct: time kernel was booted }
+        KERN_NISDOMAINNAME	= 22;	{  string: YP domain name }
+        KERN_UPDATEINTERVAL	= 23;	{  int: update process sleep time }
+        KERN_OSRELDATE		= 24;	{  int: OS release date }
+        KERN_NTP_PLL		= 25;	{  node: NTP PLL control }
+       	KERN_BOOTFILE		= 26;	{  string: name of booted kernel }
+       	KERN_MAXFILESPERPROC	= 27;	{  int: max open files per proc }
+       	KERN_MAXPROCPERUID 	= 28;	{  int: max processes per uid }
+        KERN_DUMPDEV		= 29;	{  dev_t: device to dump on }
+       	KERN_IPC		= 30;	{  node: anything related to IPC }
+       	KERN_DUMMY		= 31;	{  unused }
+       	KERN_PS_STRINGS		= 32;	{  int: address of PS_STRINGS }
+       	KERN_USRSTACK		= 33;	{  int: address of USRSTACK }
+       	KERN_LOGSIGEXIT		= 34;	{  int: do we log sigexit procs? }
+        KERN_MAXID		= 35;      {  number of valid kern ids }
+
+
+
+{ 
+ * KERN_PROC subtypes
+ }
+        KERN_PROC_ALL		= 0;	{  everything }
+       	KERN_PROC_PID		= 1;	{  by process id }
+       	KERN_PROC_PGRP		= 2;	{  by process group id }
+       	KERN_PROC_SESSION	= 3;	{  by session of pid }
+       	KERN_PROC_TTY		= 4;	{  by controlling tty }
+       	KERN_PROC_UID		= 5;	{  by effective uid }
+       	KERN_PROC_RUID		= 6;	{  by real uid }
+       	KERN_PROC_ARGS		= 7;	{  get/set arguments/proctitle }
+                                   
+{                               
+ * KERN_IPC identifiers         
+ }
+        KIPC_MAXSOCKBUF		= 1;	{  int: max size of a socket buffer }
+       	KIPC_SOCKBUF_WASTE	= 2;	{  int: wastage factor in sockbuf }
+       	KIPC_SOMAXCONN		= 3;	{  int: max length of connection q }
+       	KIPC_MAX_LINKHDR	= 4;	{  int: max length of link header }
+       	KIPC_MAX_PROTOHDR	= 5;	{  int: max length of network header }
+       	KIPC_MAX_HDR		= 6;	{  int: max total length of headers }
+       	KIPC_MAX_DATALEN	= 7;	{  int: max length of data? }
+       	KIPC_MBSTAT		= 8;	{  struct: mbuf usage statistics }
+       	KIPC_NMBCLUSTERS	= 9;	{  int: maximum mbuf clusters }
+
+{ 
+ * CTL_HW identifiers
+ }
+       	HW_MACHINE	=  1;		{  string: machine class }
+       	HW_MODEL	=  2;		{  string: specific machine model }
+       	HW_NCPU		=  3;		{  int: number of cpus }
+       	HW_BYTEORDER	=  4;		{  int: machine byte order }
+       	HW_PHYSMEM	=  5;		{  int: total memory }
+       	HW_USERMEM	=  6;		{  int: non-kernel memory }
+       	HW_PAGESIZE	=  7;		{  int: software page size }
+       	HW_DISKNAMES	=  8;		{  strings: disk drive names }
+       	HW_DISKSTATS	=  9;		{  struct: diskstats[] }
+        HW_FLOATINGPT	= 10;		{  int: has HW floating point? }
+        HW_MACHINE_ARCH	= 11;		{  string: machine architecture }
+       	HW_MAXID	= 12;		{  number of valid hw ids }
+
+
+{ 
+ * CTL_USER definitions
+ }
+       	USER_CS_PATH		=  1;	{  string: _CS_PATH }
+       	USER_BC_BASE_MAX	=  2;	{  int: BC_BASE_MAX }
+       	USER_BC_DIM_MAX		=  3;	{  int: BC_DIM_MAX }
+       	USER_BC_SCALE_MAX	=  4;	{  int: BC_SCALE_MAX }
+       	USER_BC_STRING_MAX	=  5;	{  int: BC_STRING_MAX }
+       	USER_COLL_WEIGHTS_MAX	=  6;	{  int: COLL_WEIGHTS_MAX }
+       	USER_EXPR_NEST_MAX	=  7;	{  int: EXPR_NEST_MAX }
+       	USER_LINE_MAX		=  8;	{  int: LINE_MAX }
+       	USER_RE_DUP_MAX		=  9;	{  int: RE_DUP_MAX }
+       	USER_POSIX2_VERSION	= 10;	{  int: POSIX2_VERSION }
+       	USER_POSIX2_C_BIND	= 11;	{  int: POSIX2_C_BIND }
+       	USER_POSIX2_C_DEV	= 12;	{  int: POSIX2_C_DEV }
+       	USER_POSIX2_CHAR_TERM	= 13;	{  int: POSIX2_CHAR_TERM }
+       	USER_POSIX2_FORT_DEV	= 14;	{  int: POSIX2_FORT_DEV }
+       	USER_POSIX2_FORT_RUN	= 15;	{  int: POSIX2_FORT_RUN }
+       	USER_POSIX2_LOCALEDEF	= 16;	{  int: POSIX2_LOCALEDEF }
+       	USER_POSIX2_SW_DEV	= 17;	{  int: POSIX2_SW_DEV }
+       	USER_POSIX2_UPE		= 18;	{  int: POSIX2_UPE }
+       	USER_STREAM_MAX		= 19;	{  int: POSIX2_STREAM_MAX }
+       	USER_TZNAME_MAX		= 20;	{  int: POSIX2_TZNAME_MAX }
+       	USER_MAXID		= 21;	{  number of valid user ids }
+
+
+        CTL_P1003_1B_ASYNCHRONOUS_IO		= 1 ;	{  boolean }
+        CTL_P1003_1B_MAPPED_FILES		= 2 ;	{  boolean }
+        CTL_P1003_1B_MEMLOCK			= 3 ;	{  boolean }
+        CTL_P1003_1B_MEMLOCK_RANGE		= 4 ;	{  boolean }
+        CTL_P1003_1B_MEMORY_PROTECTION		= 5 ;	{  boolean }
+        CTL_P1003_1B_MESSAGE_PASSING		= 6 ;	{  boolean }
+        CTL_P1003_1B_PRIORITIZED_IO		= 7 ;	{  boolean }
+        CTL_P1003_1B_PRIORITY_SCHEDULING	= 8 ;	{  boolean }
+        CTL_P1003_1B_REALTIME_SIGNALS		= 9 ;	{  boolean }
+        CTL_P1003_1B_SEMAPHORES			= 10;	{  boolean }
+        CTL_P1003_1B_FSYNC			= 11;	{  boolean }
+        CTL_P1003_1B_SHARED_MEMORY_OBJECTS	= 12;	{  boolean }
+        CTL_P1003_1B_SYNCHRONIZED_IO		= 13;	{  boolean }
+        CTL_P1003_1B_TIMERS			= 14;	{  boolean }
+        CTL_P1003_1B_AIO_LISTIO_MAX		= 15;	{  int }
+        CTL_P1003_1B_AIO_MAX			= 16;	{  int }
+        CTL_P1003_1B_AIO_PRIO_DELTA_MAX		= 17;	{  int }
+        CTL_P1003_1B_DELAYTIMER_MAX		= 18;	{  int }
+        CTL_P1003_1B_MQ_OPEN_MAX		= 19;	{  int }
+        CTL_P1003_1B_PAGESIZE			= 20;	{  int }
+        CTL_P1003_1B_RTSIG_MAX			= 21;	{  int }
+        CTL_P1003_1B_SEM_NSEMS_MAX		= 22;	{  int }
+        CTL_P1003_1B_SEM_VALUE_MAX		= 23;	{  int }
+        CTL_P1003_1B_SIGQUEUE_MAX		= 24;	{  int }
+        CTL_P1003_1B_TIMER_MAX			= 25;	{  int }
+                                                    
+        CTL_P1003_1B_MAXID		= 26;
+
+{	LongestStringInCtlNames = 21;}
+
+		      
+Const
+
+        CTL_NAMES : Array[0..9] OF CtlNameRec =  ( 
+	( Name: '';  CtlType: 0 ),
+	( Name: 'kern';  CtlType : CTLTYPE_NODE ),
+	( Name: 'vm';  CtlType : CTLTYPE_NODE ),
+	( Name: 'vfs';  CtlType : CTLTYPE_NODE ),
+	( Name: 'net';  CtlType : CTLTYPE_NODE ),
+	( Name: 'debug';  CtlType : CTLTYPE_NODE ),
+	( Name: 'hw';  CtlType : CTLTYPE_NODE ),
+	( Name: 'machdep';  CtlType : CTLTYPE_NODE ),
+	( Name: 'user';  CtlType : CTLTYPE_NODE ),
+	( Name: 'p1003_1b';  CtlType : CTLTYPE_NODE ));
+
+        CTL_KERN_NAME : Array[0..34] OF CtlNameRec = (
+	( Name: ''; CtlType: 0 ),		  
+	( Name: 'ostype';  CtlType : CTLTYPE_STRING ),
+	( Name: 'osrelease';  CtlType : CTLTYPE_STRING ),
+	( Name: 'osrevision';  CtlType : CTLTYPE_INT ),
+	( Name: 'version';  CtlType : CTLTYPE_STRING ),
+	( Name: 'maxvnodes';  CtlType : CTLTYPE_INT ),
+	( Name: 'maxproc';  CtlType : CTLTYPE_INT ),
+	( Name: 'maxfiles';  CtlType : CTLTYPE_INT ),
+	( Name: 'argmax';  CtlType : CTLTYPE_INT ),
+	( Name: 'securelevel';  CtlType : CTLTYPE_INT ),
+	( Name: 'hostname';  CtlType : CTLTYPE_STRING ),
+	( Name: 'hostid';  CtlType : CTLTYPE_UINT ),
+	( Name: 'clockrate';  CtlType : CTLTYPE_STRUCT ),
+	( Name: 'vnode';  CtlType : CTLTYPE_STRUCT ),
+	( Name: 'proc';  CtlType : CTLTYPE_STRUCT ),
+	( Name: 'file';  CtlType : CTLTYPE_STRUCT ),
+	( Name: 'profiling';  CtlType : CTLTYPE_NODE ),
+	( Name: 'posix1version';  CtlType : CTLTYPE_INT ),
+	( Name: 'ngroups';  CtlType : CTLTYPE_INT ),
+	( Name: 'job_control';  CtlType : CTLTYPE_INT ),
+	( Name: 'saved_ids';  CtlType : CTLTYPE_INT ),
+	( Name: 'boottime';  CtlType : CTLTYPE_STRUCT ),
+	( Name: 'nisdomainname';  CtlType : CTLTYPE_STRING ),
+	( Name: 'update';  CtlType : CTLTYPE_INT ),
+	( Name: 'osreldate';  CtlType : CTLTYPE_INT ),
+	( Name: 'ntp_pll';  CtlType : CTLTYPE_NODE ),
+	( Name: 'bootfile';  CtlType : CTLTYPE_STRING ),
+	( Name: 'maxfilesperproc';  CtlType : CTLTYPE_INT ),
+	( Name: 'maxprocperuid';  CtlType : CTLTYPE_INT ),
+	( Name: 'dumpdev';  CtlType : CTLTYPE_STRUCT ), {  we lie; don't print as int } 
+	( Name: 'ipc';  CtlType : CTLTYPE_NODE ),
+	( Name: 'dummy';  CtlType : CTLTYPE_INT ),
+	( Name: 'ps_strings';  CtlType : CTLTYPE_INT ),
+	( Name: 'usrstack';  CtlType : CTLTYPE_INT ),
+	( Name: 'logsigexit';  CtlType : CTLTYPE_INT ));
+
+{ 
+ * CTL_VFS identifiers
+}
+        CTL_VFS_NAMES : array[0..0] of CTLNameRec = (
+	( Name: 'vfsconf';  CtlType : CTLTYPE_STRUCT ));
+
+
+        CTL_HW_NAMES : array[0..10] of CTLNameRec = (
+	( Name: ''; CtlType: 0 ),
+	( Name: 'machine';  CtlType : CTLTYPE_STRING ),
+	( Name: 'model';  CtlType : CTLTYPE_STRING ),
+	( Name: 'ncpu';  CtlType : CTLTYPE_INT ),
+	( Name: 'byteorder';  CtlType : CTLTYPE_INT ),
+	( Name: 'physmem';  CtlType : CTLTYPE_UINT ),
+	( Name: 'usermem';  CtlType : CTLTYPE_UINT ),
+	( Name: 'pagesize';  CtlType : CTLTYPE_INT ),
+	( Name: 'disknames';  CtlType : CTLTYPE_STRUCT ),
+	( Name: 'diskstats';  CtlType : CTLTYPE_STRUCT ),
+	( Name: 'floatingpoint';  CtlType : CTLTYPE_INT ));
+
+				   
+       	CTL_USER_NAMES  : array[0..20] of CTLNameRec = (
+	( Name :''; CtlType: 0 ),		   
+	( Name: 'cs_path';  CtlType : CTLTYPE_STRING ),
+	( Name: 'bc_base_max';  CtlType : CTLTYPE_INT ),
+	( Name: 'bc_dim_max';  CtlType : CTLTYPE_INT ),
+	( Name: 'bc_scale_max';  CtlType : CTLTYPE_INT ),
+	( Name: 'bc_string_max';  CtlType : CTLTYPE_INT ),
+	( Name: 'coll_weights_max';  CtlType : CTLTYPE_INT ),
+	( Name: 'expr_nest_max';  CtlType : CTLTYPE_INT ),
+	( Name: 'line_max';  CtlType : CTLTYPE_INT ),
+	( Name: 're_dup_max';  CtlType : CTLTYPE_INT ),
+	( Name: 'posix2_version';  CtlType : CTLTYPE_INT ),
+	( Name: 'posix2_c_bind';  CtlType : CTLTYPE_INT ),
+	( Name: 'posix2_c_dev';  CtlType : CTLTYPE_INT ),
+	( Name: 'posix2_char_term';  CtlType : CTLTYPE_INT ),
+	( Name: 'posix2_fort_dev';  CtlType : CTLTYPE_INT ),
+	( Name: 'posix2_fort_run';  CtlType : CTLTYPE_INT ),
+	( Name: 'posix2_localedef';  CtlType : CTLTYPE_INT ),
+	( Name: 'posix2_sw_dev';  CtlType : CTLTYPE_INT ),
+	( Name: 'posix2_upe';  CtlType : CTLTYPE_INT ),
+	( Name: 'stream_max';  CtlType : CTLTYPE_INT ),
+	( Name: 'tzname_max';  CtlType : CTLTYPE_INT ));
+
+       	CTL_P1003_1B_NAMES  : array[0..25] of CTLNameRec = (
+	( Name: ''; CtlType: 0 ),
+	( Name: 'asynchronous_io';  CtlType : CTLTYPE_INT ),
+	( Name: 'mapped_files';  CtlType : CTLTYPE_INT ),
+	( Name: 'memlock';  CtlType : CTLTYPE_INT ),
+	( Name: 'memlock_range';  CtlType : CTLTYPE_INT ),
+	( Name: 'memory_protection';  CtlType : CTLTYPE_INT ),
+	( Name: 'message_passing';  CtlType : CTLTYPE_INT ),
+	( Name: 'prioritized_io';  CtlType : CTLTYPE_INT ),
+	( Name: 'priority_scheduling';  CtlType : CTLTYPE_INT ),
+	( Name: 'realtime_signals';  CtlType : CTLTYPE_INT ),
+	( Name: 'semaphores';  CtlType : CTLTYPE_INT ),
+	( Name: 'fsync';  CtlType : CTLTYPE_INT ),
+	( Name: 'shared_memory_objects';  CtlType : CTLTYPE_INT ),
+	( Name: 'synchronized_io';  CtlType : CTLTYPE_INT ),
+	( Name: 'timers';  CtlType : CTLTYPE_INT ),
+	( Name: 'aio_listio_max';  CtlType : CTLTYPE_INT ),
+	( Name: 'aio_max';  CtlType : CTLTYPE_INT ),
+	( Name: 'aio_prio_delta_max';  CtlType : CTLTYPE_INT ),
+	( Name: 'delaytimer_max';  CtlType : CTLTYPE_INT ),
+	( Name: 'mq_open_max';  CtlType : CTLTYPE_INT ),
+	( Name: 'pagesize';  CtlType : CTLTYPE_INT ),
+	( Name: 'rtsig_max';  CtlType : CTLTYPE_INT ),
+	( Name: 'nsems_max';  CtlType : CTLTYPE_INT ),
+	( Name: 'sem_value_max';  CtlType : CTLTYPE_INT ),
+	( Name: 'sigqueue_max';  CtlType : CTLTYPE_INT ),
+	( Name: 'timer_max';  CtlType : CTLTYPE_INT ));
+	
+
+const
+{
+ * Types
+}
+       	SOCK_STREAM	= 1;		{ stream socket }
+       	SOCK_DGRAM	= 2;		{ datagram socket }
+       	SOCK_RAW	= 3;		{ raw-protocol interface }
+       	SOCK_RDM	= 4;		{ reliably-delivered message }
+       	SOCK_SEQPACKET	= 5;		{ sequenced packet stream }
+
+{
+ * Address families.
+}
+       	AF_UNSPEC	= 0;		{ unspecified }
+       	AF_LOCAL	= 1;		{ local to host (Name:pipes;CtlType: portals) }
+       	AF_UNIX		= AF_LOCAL;	{ backward compatibility }
+       	AF_INET		= 2;		{ internetwork: UDP, TCP, etc. }
+       	AF_IMPLINK	= 3;		{ arpanet imp addresses }
+       	AF_PUP		= 4;		{ pup protocols: e.g. BSP }
+       	AF_CHAOS	= 5;		{ mit CHAOS protocols }
+       	AF_NS		= 6;		{ XEROX NS protocols }
+       	AF_ISO		= 7;		{ ISO protocols }
+       	AF_OSI		= AF_ISO;
+       	AF_ECMA		= 8;		{ European computer manufacturers }
+       	AF_DATAKIT	= 9;		{ datakit protocols }
+       	AF_CCITT	= 10;		{ CCITT protocols, X.25 etc }
+       	AF_SNA		= 11;		{ IBM SNA }
+        AF_DECnet	= 12;		{ DECnet }
+        AF_DLI		= 13;		{ DEC Direct data link interface }
+        AF_LAT		= 14;		{ LAT }
+       	AF_HYLINK	= 15;		{ NSC Hyperchannel }
+       	AF_APPLETALK	= 16;		{ Apple Talk }
+       	AF_ROUTE	= 17;		{ Internal Routing Protocol }
+       	AF_LINK		= 18;		{ Link layer interface }
+       	pseudo_AF_XTP	= 19;		{ eXpress Transfer Protocol (Name:no AF) }
+       	AF_COIP		= 20;		{ connection-oriented IP, aka ST II }
+       	AF_CNT		= 21;		{ Computer Network Technology }
+        pseudo_AF_RTIP	= 22;		{ Help Identify RTIP packets }
+       	AF_IPX		= 23;		{ Novell Internet Protocol }
+       	AF_SIP		= 24;		{ Simple Internet Protocol }
+       	pseudo_AF_PIP	= 25;		{ Help Identify PIP packets }
+       	AF_ISDN		= 26;		{ Integrated Services Digital Network}
+       	AF_E164		= AF_ISDN;	{ CCITT E.164 recommendation }
+       	pseudo_AF_KEY	= 27;		{ Internal key-management function }
+       	AF_INET6	= 28;		{ IPv6 }
+       	AF_NATM		= 29;		{ native ATM access }
+       	AF_ATM		= 30;		{ ATM }
+        pseudo_AF_HDRCMPLT = 31;		{ Used by BPF to not rewrite headers
+					 * in interface output routine
+					 }
+       	AF_NETGRAPH	= 32;		{ Netgraph sockets }
+
+       	AF_MAX		= 33;
+
+{
+ * Protocol families, same as address families for now.
+}
+
+{
+ * Definitions for network related sysctl, CTL_NET.
+ *
+ * Second level is protocol family.
+ * Third level is protocol number.
+ *
+ * Further levels are defined by the individual families below.
+}
+        NET_MAXID	= AF_MAX;
+
+        CTL_NET_NAMES  : Array[0..32] OF CtlNameRec =  (
+	(Name: '';CtlType: 0 ),
+	(Name: 'unix';CtlType: CTLTYPE_NODE ),
+	(Name: 'inet';CtlType: CTLTYPE_NODE ),
+	(Name: 'implink';CtlType: CTLTYPE_NODE ),
+	(Name: 'pup';CtlType: CTLTYPE_NODE ),
+	(Name: 'chaos';CtlType: CTLTYPE_NODE ),
+	(Name: 'xerox_ns';CtlType: CTLTYPE_NODE ),
+	(Name: 'iso';CtlType: CTLTYPE_NODE ),
+	(Name: 'emca';CtlType: CTLTYPE_NODE ),
+	(Name: 'datakit';CtlType: CTLTYPE_NODE ),
+	(Name: 'ccitt';CtlType: CTLTYPE_NODE ),
+	(Name: 'ibm_sna';CtlType: CTLTYPE_NODE ),
+	(Name: 'decnet';CtlType: CTLTYPE_NODE ),
+	(Name: 'dec_dli';CtlType: CTLTYPE_NODE ),
+	(Name: 'lat';CtlType: CTLTYPE_NODE ),
+	(Name: 'hylink';CtlType: CTLTYPE_NODE ),
+	(Name: 'appletalk';CtlType: CTLTYPE_NODE ),
+	(Name: 'route';CtlType: CTLTYPE_NODE ),
+	(Name: 'link_layer';CtlType: CTLTYPE_NODE ),
+	(Name: 'xtp';CtlType: CTLTYPE_NODE ),
+	(Name: 'coip';CtlType: CTLTYPE_NODE ),
+	(Name: 'cnt';CtlType: CTLTYPE_NODE ),
+	(Name: 'rtip';CtlType: CTLTYPE_NODE ),
+	(Name: 'ipx';CtlType: CTLTYPE_NODE ),
+	(Name: 'sip';CtlType: CTLTYPE_NODE ),
+	(Name: 'pip';CtlType: CTLTYPE_NODE ),
+	(Name: 'isdn';CtlType: CTLTYPE_NODE ),
+	(Name: 'key';CtlType: CTLTYPE_NODE ),
+	(Name: 'inet6';CtlType: CTLTYPE_NODE ),
+	(Name: 'natm';CtlType: CTLTYPE_NODE ),
+	(Name: 'atm';CtlType: CTLTYPE_NODE ),
+	(Name: 'hdrcomplete';CtlType: CTLTYPE_NODE ),
+	(Name: 'netgraph';CtlType: CTLTYPE_NODE ));
+
+{
+ * PF_ROUTE - Routing table
+ *
+ * Three additional levels are defined:
+ *	Fourth: address family, 0 is wildcard
+ *	Fifth: type of info, defined below
+ *	Sixth: flag(Name:s) to mask with for NET_RT_FLAGS
+}
+        NET_RT_DUMP	= 1;		{ dump; may limit to a.f. }
+        NET_RT_FLAGS	= 2;		{ by flags, e.g. RESOLVING }
+        NET_RT_IFLIST	= 3;		{ survey interface list }
+       	NET_RT_MAXID	= 4;
+
+        CTL_NET_RT_NAMES  : Array[0..3] OF CtlNameRec =  (
+	(Name: '';CtlType: 0 ),
+	(Name: 'dump';CtlType: CTLTYPE_STRUCT ),
+	(Name: 'flags';CtlType: CTLTYPE_STRUCT ),
+	(Name: 'iflist';CtlType: CTLTYPE_STRUCT ));
+
+{
+ * Possible states of profiling.
+}
+       	GMON_PROF_ON	= 0;
+       	GMON_PROF_BUSY	= 1;
+       	GMON_PROF_ERROR	= 2;
+       	GMON_PROF_OFF	= 3;
+       	GMON_PROF_HIRES	= 4;
+
+{
+ * Sysctl definitions for extracting profiling information from the kernel.
+}
+       	GPROF_STATE	= 0;	{ int: profiling enabling variable }
+       	GPROF_COUNT	= 1;	{ struct: profile tick count buffer }
+       	GPROF_FROMS	= 2;	{ struct: from location hash bucket }
+       	GPROF_TOS	= 3;	{ struct: destination/count structure }
+       	GPROF_GMONPARAM	= 4;	{ struct: profiling parameters (Name:see above) }
+
+{
+ * CTL_VM identifiers
+}
+       	VM_METER		= 1;	{ struct vmmeter }
+       	VM_LOADAVG	 	= 2;	{ struct loadavg }
+        VM_V_FREE_MIN		= 3;	{ cnt.v_free_min }
+        VM_V_FREE_TARGET	= 4;	{ cnt.v_free_target }
+        VM_V_FREE_RESERVED	= 5;	{ cnt.v_free_reserved }
+        VM_V_INACTIVE_TARGET	= 6;	{ cnt.v_inactive_target }
+        VM_V_CACHE_MIN		= 7;	{ cnt.v_cache_max }
+        VM_V_CACHE_MAX		= 8;	{ cnt.v_cache_min }
+        VM_V_PAGEOUT_FREE_MIN	= 9;	{ cnt.v_pageout_free_min }
+       	VM_PAGEOUT_ALGORITHM	= 10;	{ pageout algorithm }
+        VM_SWAPPING_ENABLED	= 11;	{ swapping enabled }
+       	VM_MAXID		= 12;	{ number of valid vm ids }
+
+        CTL_VM_NAMES  : Array[0..11] OF CtlNameRec =  (
+	(Name: '';CtlType: 0 ),
+	(Name: 'vmmeter';CtlType: CTLTYPE_STRUCT ),
+	(Name: 'loadavg';CtlType: CTLTYPE_STRUCT ),
+	(Name: 'v_free_min';CtlType: CTLTYPE_INT ),
+	(Name: 'v_free_target';CtlType: CTLTYPE_INT ),
+	(Name: 'v_free_reserved';CtlType: CTLTYPE_INT ),
+	(Name: 'v_inactive_target';CtlType: CTLTYPE_INT ),
+	(Name: 'v_cache_min';CtlType: CTLTYPE_INT ),
+	(Name: 'v_cache_max';CtlType: CTLTYPE_INT ),
+	(Name: 'v_pageout_free_min';CtlType: CTLTYPE_INT),
+	(Name: 'pageout_algorithm';CtlType: CTLTYPE_INT),
+	(Name: 'swapping_enabled';CtlType: CTLTYPE_INT));
+
+{
+ * Protocols (Name:RFC 1700)
+}
+       	IPPROTO_IP		= 0;		{ dummy for IP }
+       	IPPROTO_HOPOPTS		= 0;		{ IP6 hop-by-hop options }
+       	IPPROTO_ICMP		= 1;		{ control message protocol }
+       	IPPROTO_IGMP		= 2;		{ group mgmt protocol }
+       	IPPROTO_GGP		= 3;		{ gateway^2 (Name:deprecated) }
+        IPPROTO_IPV4		= 4; 		{ IPv4 encapsulation }
+        IPPROTO_IPIP		= IPPROTO_IPV4;	{ for compatibility }
+       	IPPROTO_TCP		= 6;		{ tcp }
+       	IPPROTO_ST		= 7;		{ Stream protocol II }
+       	IPPROTO_EGP		= 8;		{ exterior gateway protocol }
+       	IPPROTO_PIGP		= 9;		{ private interior gateway }
+       	IPPROTO_RCCMON		= 10;		{ BBN RCC Monitoring }
+       	IPPROTO_NVPII		= 11;		{ network voice protocol}
+       	IPPROTO_PUP		= 12;		{ pup }
+       	IPPROTO_ARGUS		= 13;		{ Argus }
+       	IPPROTO_EMCON		= 14;		{ EMCON }
+       	IPPROTO_XNET		= 15;		{ Cross Net Debugger }
+       	IPPROTO_CHAOS		= 16;		{ Chaos}
+       	IPPROTO_UDP		= 17;		{ user datagram protocol }
+       	IPPROTO_MUX		= 18;		{ Multiplexing }
+       	IPPROTO_MEAS		= 19;		{ DCN Measurement Subsystems }
+       	IPPROTO_HMP		= 20;		{ Host Monitoring }
+       	IPPROTO_PRM		= 21;		{ Packet Radio Measurement }
+       	IPPROTO_IDP		= 22;		{ xns idp }
+       	IPPROTO_TRUNK1		= 23;		{ Trunk-1 }
+       	IPPROTO_TRUNK2		= 24;		{ Trunk-2 }
+       	IPPROTO_LEAF1		= 25;		{ Leaf-1 }
+       	IPPROTO_LEAF2		= 26;		{ Leaf-2 }
+       	IPPROTO_RDP		= 27;		{ Reliable Data }
+       	IPPROTO_IRTP		= 28;		{ Reliable Transaction }
+       	IPPROTO_TP		= 29; 		{ tp-4 w/ class negotiation }
+       	IPPROTO_BLT		= 30;		{ Bulk Data Transfer }
+       	IPPROTO_NSP		= 31;		{ Network Services }
+       	IPPROTO_INP		= 32;		{ Merit Internodal }
+       	IPPROTO_SEP		= 33;		{ Sequential Exchange }
+       	IPPROTO_3PC		= 34;		{ Third Party Connect }
+       	IPPROTO_IDPR		= 35;		{ InterDomain Policy Routing }
+       	IPPROTO_XTP		= 36;		{ XTP }
+       	IPPROTO_DDP		= 37;		{ Datagram Delivery }
+       	IPPROTO_CMTP		= 38;		{ Control Message Transport }
+       	IPPROTO_TPXX		= 39;		{ TP++ Transport }
+       	IPPROTO_IL		= 40;		{ IL transport protocol }
+       	IPPROTO_IPV6		= 41;		{ IP6 header }
+       	IPPROTO_SDRP		= 42;		{ Source Demand Routing }
+       	IPPROTO_ROUTING		= 43;		{ IP6 routing header }
+       	IPPROTO_FRAGMENT	= 44;		{ IP6 fragmentation header }
+       	IPPROTO_IDRP		= 45;		{ InterDomain Routing}
+       	IPPROTO_RSVP		= 46; 		{ resource reservation }
+       	IPPROTO_GRE		= 47;		{ General Routing Encap. }
+       	IPPROTO_MHRP		= 48;		{ Mobile Host Routing }
+       	IPPROTO_BHA		= 49;		{ BHA }
+       	IPPROTO_ESP		= 50;		{ IP6 Encap Sec. Payload }
+       	IPPROTO_AH		= 51;		{ IP6 Auth Header }
+       	IPPROTO_INLSP		= 52;		{ Integ. Net Layer Security }
+       	IPPROTO_SWIPE		= 53;		{ IP with encryption }
+       	IPPROTO_NHRP		= 54;		{ Next Hop Resolution }
+{ 55-57: Unassigned }
+       	IPPROTO_ICMPV6		= 58;		{ ICMP6 }
+       	IPPROTO_NONE		= 59;		{ IP6 no next header }
+       	IPPROTO_DSTOPTS		= 60;		{ IP6 destination option }
+       	IPPROTO_AHIP		= 61;		{ any host internal protocol }
+       	IPPROTO_CFTP		= 62;		{ CFTP }
+       	IPPROTO_HELLO		= 63;		{ 'hello' routing protocol }
+       	IPPROTO_SATEXPAK	= 64;		{ SATNET/Backroom EXPAK }
+       	IPPROTO_KRYPTOLAN	= 65;		{ Kryptolan }
+       	IPPROTO_RVD		= 66;		{ Remote Virtual Disk }
+       	IPPROTO_IPPC		= 67;		{ Pluribus Packet Core }
+       	IPPROTO_ADFS		= 68;		{ Any distributed FS }
+       	IPPROTO_SATMON		= 69;		{ Satnet Monitoring }
+       	IPPROTO_VISA		= 70;		{ VISA Protocol }
+       	IPPROTO_IPCV		= 71;		{ Packet Core Utility }
+       	IPPROTO_CPNX		= 72;		{ Comp. Prot. Net. Executive }
+       	IPPROTO_CPHB		= 73;		{ Comp. Prot. HeartBeat }
+       	IPPROTO_WSN		= 74;		{ Wang Span Network }
+       	IPPROTO_PVP		= 75;		{ Packet Video Protocol }
+       	IPPROTO_BRSATMON	= 76;		{ BackRoom SATNET Monitoring }
+       	IPPROTO_ND		= 77;		{ Sun net disk proto (Name:temp.) }
+       	IPPROTO_WBMON		= 78;		{ WIDEBAND Monitoring }
+       	IPPROTO_WBEXPAK		= 79;		{ WIDEBAND EXPAK }
+       	IPPROTO_EON		= 80;		{ ISO cnlp }
+       	IPPROTO_VMTP		= 81;		{ VMTP }
+       	IPPROTO_SVMTP		= 82;		{ Secure VMTP }
+       	IPPROTO_VINES		= 83;		{ Banyon VINES }
+       	IPPROTO_TTP		= 84;		{ TTP }
+       	IPPROTO_IGP		= 85;		{ NSFNET-IGP }
+       	IPPROTO_DGP		= 86;		{ dissimilar gateway prot. }
+       	IPPROTO_TCF		= 87;		{ TCF }
+       	IPPROTO_IGRP		= 88;		{ Cisco/GXS IGRP }
+       	IPPROTO_OSPFIGP		= 89;		{ OSPFIGP }
+       	IPPROTO_SRPC		= 90;		{ Strite RPC protocol }
+       	IPPROTO_LARP		= 91;		{ Locus Address Resoloution }
+       	IPPROTO_MTP		= 92;		{ Multicast Transport }
+       	IPPROTO_AX25		= 93;		{ AX.25 Frames }
+       	IPPROTO_IPEIP		= 94;		{ IP encapsulated in IP }
+       	IPPROTO_MICP		= 95;		{ Mobile Int.ing control }
+       	IPPROTO_SCCSP		= 96;		{ Semaphore Comm. security }
+       	IPPROTO_ETHERIP		= 97;		{ Ethernet IP encapsulation }
+       	IPPROTO_ENCAP		= 98;		{ encapsulation header }
+       	IPPROTO_APES		= 99;		{ any private encr. scheme }
+       	IPPROTO_GMTP		= 100;		{ GMTP}
+       	IPPROTO_IPCOMP		= 108;		{ payload compression (Name:IPComp) }
+{ 101-254: Partly Unassigned }
+       	IPPROTO_PIM		= 103;		{ Protocol Independent Mcast }
+       	IPPROTO_PGM		= 113;		{ PGM }
+{ 255: Reserved }
+{ BSD Private, local use, namespace incursion }
+       	IPPROTO_DIVERT		= 254;		{ divert pseudo-protocol }
+       	IPPROTO_RAW		= 255;		{ raw IP packet }
+       	IPPROTO_MAX		= 256;
+
+{ last return value of *_input(Name:);CtlType: meaning 'all job for this pkt is done'.  }
+       	IPPROTO_DONE		= 257;
+
+
+{
+ * Options for use with [gs]etsockopt at the IP level.
+ * First word of comment is data type; bool is stored in int.
+}
+       	IP_OPTIONS		= 1;    { buf/ip_opts; set/get IP options }
+       	IP_HDRINCL		= 2;    { int; header is included with data }
+       	IP_TOS			= 3;    { int; IP type of service and preced. }
+       	IP_TTL			= 4;    { int; IP time to live }
+       	IP_RECVOPTS		= 5;    { bool; receive all IP opts w/dgram }
+       	IP_RECVRETOPTS		= 6;    { bool; receive IP opts for response }
+       	IP_RECVDSTADDR		= 7;    { bool; receive IP dst addr w/dgram }
+       	IP_RETOPTS		= 8;    { ip_opts; set/get IP options }
+       	IP_MULTICAST_IF		= 9;    { u_char; set/get IP multicast i/f  }
+       	IP_MULTICAST_TTL	= 10;   { u_char; set/get IP multicast ttl }
+       	IP_MULTICAST_LOOP	= 11;   { u_char; set/get IP multicast loopback }
+       	IP_ADD_MEMBERSHIP	= 12;   { ip_mreq; add an IP group membership }
+       	IP_DROP_MEMBERSHIP	= 13;   { ip_mreq; drop an IP group membership }
+        IP_MULTICAST_VIF	= 14;   { set/get IP mcast virt. iface }
+        IP_RSVP_ON		= 15;   { enable RSVP in kernel }
+        IP_RSVP_OFF		= 16;   { disable RSVP in kernel }
+        IP_RSVP_VIF_ON		= 17;   { set RSVP per-vif socket }
+        IP_RSVP_VIF_OFF		= 18;   { unset RSVP per-vif socket }
+        IP_PORTRANGE		= 19;   { int; range to choose for unspec port }
+       	IP_RECVIF		= 20;   { bool; receive reception if w/dgram }
+{ for IPSEC }
+       	IP_IPSEC_POLICY		= 21;   { int; set/get security policy }
+       	IP_FAITH		= 22;   { bool; accept FAITH'ed connections }
+
+       	IP_FW_ADD     		= 50;   { add a firewall rule to chain }
+       	IP_FW_DEL    		= 51;   { delete a firewall rule from chain }
+       	IP_FW_FLUSH   		= 52;   { flush firewall rule chain }
+       	IP_FW_ZERO    		= 53;   { clear single/all firewall counter(Name:s) }
+       	IP_FW_GET     		= 54;   { get entire firewall rule chain }
+       	IP_FW_RESETLOG		= 55;   { reset logging counters }
+
+       	IP_DUMMYNET_CONFIGURE	= 60;   { add/configure a dummynet pipe }
+       	IP_DUMMYNET_DEL		= 61;   { delete a dummynet pipe from chain }
+       	IP_DUMMYNET_FLUSH	= 62;   { flush dummynet }
+       	IP_DUMMYNET_GET		= 64;   { get entire dummynet pipes }
+
+{
+ * Defaults and limits for options
+}
+       	IP_DEFAULT_MULTICAST_TTL  = 1;	{ normally limit m'casts to 1 hop  }
+       	IP_DEFAULT_MULTICAST_LOOP = 1;	{ normally hear sends if a member  }
+       	IP_MAX_MEMBERSHIPS	  = 20;	{ per socket }
+
+{
+ * Argument for IP_PORTRANGE:
+ * - which range to search when port is unspecified at bind(Name:) or connect()
+}
+       	IP_PORTRANGE_DEFAULT	= 0;	{ default range }
+       	IP_PORTRANGE_HIGH	= 1;	{ 'high' - request firewall bypass }
+       	IP_PORTRANGE_LOW	= 2;	{ 'low' - vouchsafe security }
+
+{
+ * Definitions for inet sysctl operations.
+ *
+ * Third level is protocol number.
+ * Fourth level is desired variable within that protocol.
+}
+       	IPPROTO_MAXID = (IPPROTO_AH + 1);	{ don't list to IPPROTO_MAX }
+
+       	CTL_IPPROTO_NAMES  : Array[0..51] OF CtlNameRec =  (
+	(Name: 'ip';CtlType: CTLTYPE_NODE ),
+	(Name: 'icmp';CtlType: CTLTYPE_NODE ),
+	(Name: 'igmp';CtlType: CTLTYPE_NODE ),
+	(Name: 'ggp';CtlType: CTLTYPE_NODE ),
+	(Name: '';CtlType: 0 ),
+	(Name: '';CtlType: 0 ),
+	(Name: 'tcp';CtlType: CTLTYPE_NODE ),
+	(Name: '';CtlType: 0 ),
+	(Name: 'egp';CtlType: CTLTYPE_NODE ),
+	(Name: '';CtlType: 0 ),
+	(Name: '';CtlType: 0 ),
+	(Name: '';CtlType: 0 ),
+	(Name: 'pup';CtlType: CTLTYPE_NODE ),
+	(Name: '';CtlType: 0 ),
+	(Name: '';CtlType: 0 ),
+	(Name: '';CtlType: 0 ),
+	(Name: '';CtlType: 0 ),
+	(Name: 'udp';CtlType: CTLTYPE_NODE ),
+	(Name: '';CtlType: 0 ),
+	(Name: '';CtlType: 0 ),
+	(Name: '';CtlType: 0 ),
+	(Name: '';CtlType: 0 ),
+	(Name: 'idp';CtlType: CTLTYPE_NODE ),
+	(Name: '';CtlType: 0 ),
+	(Name: '';CtlType: 0 ),
+	(Name: '';CtlType: 0 ),
+	(Name: '';CtlType: 0 ),
+	(Name: '';CtlType: 0 ),
+	(Name: '';CtlType: 0 ),
+	(Name: '';CtlType: 0 ),
+	(Name: '';CtlType: 0 ),
+	(Name: '';CtlType: 0 ),
+	(Name: '';CtlType: 0 ),
+	(Name: '';CtlType: 0 ),
+	(Name: '';CtlType: 0 ),
+	(Name: '';CtlType: 0 ),
+	(Name: '';CtlType: 0 ),
+	(Name: '';CtlType: 0 ),
+	(Name: '';CtlType: 0 ),
+	(Name: '';CtlType: 0 ),
+	(Name: '';CtlType: 0 ),
+	(Name: '';CtlType: 0 ),
+	(Name: '';CtlType: 0 ),
+	(Name: '';CtlType: 0 ),
+	(Name: '';CtlType: 0 ),
+	(Name: '';CtlType: 0 ),
+	(Name: '';CtlType: 0 ),
+	(Name: '';CtlType: 0 ),
+	(Name: '';CtlType: 0 ),
+	(Name: '';CtlType: 0 ),
+	(Name: '';CtlType: 0 ),
+	(Name: 'ipsec';CtlType: CTLTYPE_NODE ));
+
+{
+ * Names for IP sysctl objects
+}
+       	IPCTL_FORWARDING	= 1;	{ act as router }
+       	IPCTL_SENDREDIRECTS	= 2;	{ may send redirects when forwarding }
+       	IPCTL_DEFTTL		= 3;	{ default TTL }
+{$ifdef notyettunable}
+       	IPCTL_DEFMTU		= 4;	{ default MTU }
+{$endif}
+        IPCTL_RTEXPIRE		= 5;	{ cloned route expiration time }
+        IPCTL_RTMINEXPIRE	= 6;	{ min value for expiration time }
+        IPCTL_RTMAXCACHE	= 7;	{ trigger level for dynamic expire }
+       	IPCTL_SOURCEROUTE	= 8;	{ may perform source routes }
+       	IPCTL_DIRECTEDBROADCAST	= 9;	{ may re-broadcast received packets }
+        IPCTL_INTRQMAXLEN	= 10;	{ max length of netisr queue }
+       	IPCTL_INTRQDROPS	= 11;	{ number of netisr q drops }
+       	IPCTL_STATS		= 12;	{ ipstat structure }
+       	IPCTL_ACCEPTSOURCEROUTE	= 13;	{ may accept source routed packets }
+       	IPCTL_FASTFORWARDING	= 14;	{ use fast IP forwarding code }
+       	IPCTL_KEEPFAITH		= 15;	{ FAITH IPv4->IPv6 translater ctl }
+       	IPCTL_GIF_TTL		= 16;	{ default TTL for gif encap packet }
+       	IPCTL_MAXID		= 17;
+
+       	IPCTL_NAMES  : Array[0..14] OF CtlNameRec =  (
+	(Name: '';CtlType: 0 ),
+	(Name: 'forwarding';CtlType: CTLTYPE_INT ),
+	(Name: 'redirect';CtlType: CTLTYPE_INT ),
+	(Name: 'ttl';CtlType: CTLTYPE_INT ),
+	(Name: 'mtu';CtlType: CTLTYPE_INT ),
+	(Name: 'rtexpire';CtlType: CTLTYPE_INT ),
+	(Name: 'rtminexpire';CtlType: CTLTYPE_INT ),
+	(Name: 'rtmaxcache';CtlType: CTLTYPE_INT ),
+	(Name: 'sourceroute';CtlType: CTLTYPE_INT ),
+ 	(Name: 'directed-broadcast';CtlType: CTLTYPE_INT ),
+	(Name: 'intr-queue-maxlen';CtlType: CTLTYPE_INT ),
+	(Name: 'intr-queue-drops';CtlType: CTLTYPE_INT ),
+	(Name: 'stats';CtlType: CTLTYPE_STRUCT ),
+	(Name: 'accept_sourceroute';CtlType: CTLTYPE_INT ),
+	(Name: 'fastforwarding';CtlType: CTLTYPE_INT ));
+
+{
+ * Names for ICMP sysctl objects
+}
+       	ICMPCTL_MASKREPL	= 1;	{ allow replies to netmask requests }
+       	ICMPCTL_STATS		= 2;	{ statistics (Name:read-only) }
+        ICMPCTL_ICMPLIM		= 3;
+        ICMPCTL_MAXID		= 4;
+
+        ICMPCTL_NAMES  : Array[0..3] OF CtlNameRec =  (
+	(Name: '';CtlType: 0 ),
+	(Name: 'maskrepl';CtlType: CTLTYPE_INT ),
+	(Name: 'stats';CtlType: CTLTYPE_STRUCT ),
+	(Name: 'icmplim';CtlType: CTLTYPE_INT ));
+
+{
+ * Names for ICMP sysctl objects
+}
+        ICMPV6CTL_STATS		= 1;
+        ICMPV6CTL_REDIRACCEPT	= 2;	{ accept/process redirects }
+        ICMPV6CTL_REDIRTIMEOUT	= 3;	{ redirect cache time }
+{$ifdef obsolete}	{obsoleted}
+        ICMPV6CTL_ERRRATELIMIT	= 5;	{ ICMPv6 error rate limitation }
+{$endif}
+        ICMPV6CTL_ND6_PRUNE	= 6;
+        ICMPV6CTL_ND6_DELAY	= 8;
+        ICMPV6CTL_ND6_UMAXTRIES	= 9;
+        ICMPV6CTL_ND6_MMAXTRIES		= 10;
+        ICMPV6CTL_ND6_USELOOPBACK	= 11;
+//define ICMPV6CTL_ND6_PROXYALL	= 12;	obsoleted, do not reuse here 
+        ICMPV6CTL_NODEINFO	= 13;
+        ICMPV6CTL_ERRPPSLIMIT	= 14;	{ ICMPv6 error pps limitation }
+        ICMPV6CTL_ND6_MAXNUDHINT= 15;
+        ICMPV6CTL_MTUDISC_HIWAT	= 16;
+        ICMPV6CTL_MTUDISC_LOWAT	= 17;
+        ICMPV6CTL_ND6_DEBUG	= 18;
+        ICMPV6CTL_ND6_DRLIST	= 19;
+        ICMPV6CTL_ND6_PRLIST	= 20;
+        ICMPV6CTL_MAXID		= 21;
+
+        ICMPV6CTL_NAMES  : Array[0..20] OF CtlNameRec =  (
+	(Name: '';CtlType: 0 ),
+	(Name: '';CtlType: 0 ),
+	(Name: 'rediraccept';CtlType: CTLTYPE_INT ),
+	(Name: 'redirtimeout';CtlType: CTLTYPE_INT ),
+	(Name: '';CtlType: 0 ),
+	(Name: '';CtlType: 0 ),
+	(Name: 'nd6_prune';CtlType: CTLTYPE_INT ),
+	(Name: '';CtlType: 0 ),
+	(Name: 'nd6_delay';CtlType: CTLTYPE_INT ),
+	(Name: 'nd6_umaxtries';CtlType: CTLTYPE_INT ),
+	(Name: 'nd6_mmaxtries';CtlType: CTLTYPE_INT ),
+	(Name: 'nd6_useloopback';CtlType: CTLTYPE_INT ),
+	(Name: '';CtlType: 0 ),
+	(Name: 'nodeinfo';CtlType: CTLTYPE_INT ),
+	(Name: 'errppslimit';CtlType: CTLTYPE_INT ),
+	(Name: 'nd6_maxnudhint';CtlType: CTLTYPE_INT ),
+	(Name: 'mtudisc_hiwat';CtlType: CTLTYPE_INT ),
+	(Name: 'mtudisc_lowat';CtlType: CTLTYPE_INT ),
+	(Name: 'nd6_debug';CtlType: CTLTYPE_INT ),
+	(Name: '';CtlType: 0 ),
+	(Name: '';CtlType: 0 ));
+
+
+{
+ * Names for UDP sysctl objects
+}
+       	UDPCTL_CHECKSUM		= 1;	{ checksum UDP packets }
+        UDPCTL_STATS		= 2;	{ statistics (Name:read-only) }
+       	UDPCTL_MAXDGRAM		= 3;	{ max datagram size }
+       	UDPCTL_RECVSPACE	= 4;	{ default receive buffer space }
+       	UDPCTL_PCBLIST		= 5;	{ list of PCBs for UDP sockets }
+        UDPCTL_MAXID		= 6;
+
+        UDPCTL_NAMES  : Array[0..5] OF CtlNameRec =  (
+	(Name: '';CtlType: 0 ),
+	(Name: 'checksum';CtlType: CTLTYPE_INT ),
+	(Name: 'stats';CtlType: CTLTYPE_STRUCT ),
+	(Name: 'maxdgram';CtlType: CTLTYPE_INT ),
+	(Name: 'recvspace';CtlType: CTLTYPE_INT ),
+	(Name: 'pcblist';CtlType: CTLTYPE_STRUCT ));
+
+{
+  
+  $Log$
+  Revision 1.1  2002-08-08 11:40:05  marco
+   * Initial versions.
+
+
+}

+ 1168 - 0
rtl/openbsd/sysctlh.inc

@@ -0,0 +1,1168 @@
+{
+    $Id$
+    This file is part of the Free Pascal run time library.
+    Copyright (c) 2001 by Marco van de Voort
+
+    The OS dependant sysctl constants. 
+
+    See the file COPYING.FPC, included in this distribution,
+    for details about the copyright.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+
+ **********************************************************************}
+
+{
+ * Copyright (c) 1989;1993
+ *	The Regents of the University of California.  All rights reserved.
+ *
+ * This code is derived from software contributed to Berkeley by
+ * Mike Karels at Berkeley Software Design, Inc.
+ *
+ * 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, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. All advertising materials mentioning features or use of this software
+ *    must display the following acknowledgement:
+ *	This product includes software developed by the University of
+ *	California, Berkeley and its contributors.
+ * 4. Neither the name of the University nor the names of its contributors
+ *    may be used to endorse or promote products derived from this software
+ *    without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (Name:INCLUDING;CtlType: BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY;CtlType: OR TORT (Name:INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ *
+ *	@(Name:#)sysctl.h (and others)	8.2 (Berkeley) 3/30/95
+}
+
+CONST
+
+{
+ * Definitions for sysctl call.  The sysctl call uses a hierarchical name
+ * for objects that can be examined or modified.  The name is expressed as
+ * a sequence of integers.  Like a file path name, the meaning of each
+ * component depends on its place in the hierarchy.  The top-level and kern
+ * identifiers are defined here, and other identifiers are defined in the
+ * respective subsystem header files.
+}
+
+       	CTL_MAXNAME	= 12;	{ largest number of components supported }
+
+       	CTLTYPE_NODE	= 1;	{ name is a node }
+       	CTLTYPE_INT	= 2;	{ name describes an integer }
+       	CTLTYPE_STRING	= 3;	{ name describes a string }
+       	CTLTYPE_QUAD	= 4;	{ name describes a 64-bit number }
+       	CTLTYPE_STRUCT	= 5;	{ name describes a structure }
+
+{
+ * Top-level identifiers
+}
+       	CTL_UNSPEC	= 0;		{ unused }
+       	CTL_KERN	= 1;		{ 'high kernel': proc, limits }
+       	CTL_VM		= 2;		{ virtual memory }
+       	CTL_FS		= 3;		{ file system, mount type is next }
+       	CTL_NET		= 4;		{ network, see socket.h }
+       	CTL_DEBUG	= 5;		{ debugging parameters }
+       	CTL_HW		= 6;		{ generic cpu/io }
+       	CTL_MACHDEP	= 7;		{ machine dependent }
+       	CTL_USER	= 8;		{ user-level }
+       	CTL_DDB		= 9;		{ DDB user interface, see db_var.h }
+       	CTL_VFS		= 10;		{ VFS sysctl's }
+       	CTL_MAXID	= 11;		{ number of valid top-level ids }
+
+       	CTL_NAMES   : array [0..10] OF CtlNameRec = (
+	(Name: '';CtlType: 0 ),
+	(Name: 'kern';CtlType: CTLTYPE_NODE ),
+	(Name: 'vm';CtlType: CTLTYPE_NODE ),
+	(Name: 'fs';CtlType: CTLTYPE_NODE ),
+	(Name: 'net';CtlType: CTLTYPE_NODE ),
+	(Name: 'debug';CtlType: CTLTYPE_NODE ),
+	(Name: 'hw';CtlType: CTLTYPE_NODE ),
+	(Name: 'machdep';CtlType: CTLTYPE_NODE ),
+	(Name: 'user';CtlType: CTLTYPE_NODE ),
+	(Name: 'ddb';CtlType: CTLTYPE_NODE ),
+	(Name: 'vfs';CtlType: CTLTYPE_NODE ));
+
+{
+ * CTL_KERN identifiers
+}
+       	KERN_OSTYPE	 	 = 1;	{ string: system version }
+       	KERN_OSRELEASE	 	 = 2;	{ string: system release }
+       	KERN_OSREV	 	 = 3;	{ int: system revision }
+       	KERN_VERSION	 	 = 4;	{ string: compile time info }
+       	KERN_MAXVNODES	 	 = 5;	{ int: max vnodes }
+       	KERN_MAXPROC	 	 = 6;	{ int: max processes }
+       	KERN_MAXFILES	 	 = 7;	{ int: max open files }
+       	KERN_ARGMAX	 	 = 8;	{ int: max arguments to exec }
+       	KERN_SECURELVL	 	 = 9;	{ int: system security level }
+       	KERN_HOSTNAME		= 10;	{ string: hostname }
+       	KERN_HOSTID		= 11;	{ int: host identifier }
+       	KERN_CLOCKRATE		= 12;	{ struct: struct clockinfo }
+       	KERN_VNODE		= 13;	{ struct: vnode structures }
+       	KERN_PROC		= 14;	{ struct: process entries }
+       	KERN_FILE		= 15;	{ struct: file entries }
+       	KERN_PROF		= 16;	{ node: kernel profiling info }
+       	KERN_POSIX1		= 17;	{ int: POSIX.1 version }
+       	KERN_NGROUPS		= 18;	{ int: # of supplemental group ids }
+       	KERN_JOB_CONTROL	= 19;	{ int: is job control available }
+       	KERN_SAVED_IDS		= 20;	{ int: saved set-user/group-ID }
+       	KERN_BOOTTIME		= 21;	{ struct: time kernel was booted }
+       	KERN_DOMAINNAME		= 22;	{ string: (Name:YP) domainname }
+       	KERN_MAXPARTITIONS	= 23;	{ int: number of partitions/disk }
+       	KERN_RAWPARTITION	= 24;	{ int: raw partition number }
+{ define gap			25	}
+{ define gap			26	}
+       	KERN_OSVERSION		= 27;	{ string: kernel build version }
+       	KERN_SOMAXCONN		= 28;	{ int: listen queue maximum }
+       	KERN_SOMINCONN		= 29;	{ int: half-open controllable param }
+       	KERN_USERMOUNT		= 30;	{ int: users may mount filesystems }
+       	KERN_RND		= 31;	{ struct: rnd(Name:4) statistics }
+       	KERN_NOSUIDCOREDUMP	= 32;	{ int: no setuid coredumps ever }
+       	KERN_FSYNC		= 33;	{ int: file synchronization support }
+       	KERN_SYSVMSG		= 34;	{ int: SysV message queue suppoprt }
+       	KERN_SYSVSEM		= 35;	{ int: SysV semaphore support }
+       	KERN_SYSVSHM		= 36;	{ int: SysV shared memory support }
+       	KERN_ARND		= 37;	{ int: random integer from arc4rnd }
+       	KERN_MSGBUFSIZE		= 38;	{ int: size of message buffer }
+        KERN_MALLOCSTATS	= 39;	{ node: malloc statistics }
+        KERN_CPTIME		= 40;	{ array: cp_time }
+        KERN_NCHSTATS		= 41;	{ struct: vfs cache statistics }
+        KERN_FORKSTAT		= 42;	{ struct: fork statistics }
+        KERN_NSELCOLL		= 43;	{ int: select(Name:2) collisions }
+        KERN_TTY		= 44;	{ node: tty information }
+       	KERN_CCPU		= 45;	{ int: ccpu }
+       	KERN_FSCALE		= 46;	{ int: fscale }
+       	KERN_NPROCS		= 47;	{ int: number of processes }
+       	KERN_MSGBUF		= 48;	{ message buffer, KERN_MSGBUFSIZE }
+       	KERN_POOL		= 49;	{ struct: pool information }
+       	KERN_STACKGAPRANDOM	= 50;	{ int: stackgap_random }
+       	KERN_SYSVIPC_INFO	= 51;	{ struct: SysV sem/shm/msg info }
+        KERN_USERCRYPTO		= 52;	{ int: usercrypto }
+        KERN_CRYPTODEVALLOWSOFT	= 53;	{ int: cryptodevallowsoft }
+        KERN_SPLASSERT		= 54;	{ int: splassert }
+        KERN_PROC_ARGS		= 55;	{ node: proc args and env }
+       	KERN_NFILES		= 56;	{ int: number of open files }
+       	KERN_TTYCOUNT		= 57;	{ int: number of tty devices }
+        KERN_NUMVNODES		= 58;	{ int: number of vnodes in use }
+       	KERN_MBSTAT		= 59;	{ struct: mbuf statistics }
+        KERN_USERASYMCRYPTO	= 60;	{ int: usercrypto }
+       	KERN_MAXID		= 61;	{ number of valid kern ids }
+
+       	CTL_KERN_NAMES   : array [0..60] OF CtlNameRec = (
+	(Name: '';CtlType: 0 ),
+	(Name: 'ostype';CtlType: CTLTYPE_STRING ),
+	(Name: 'osrelease';CtlType: CTLTYPE_STRING ),
+	(Name: 'osrevision';CtlType: CTLTYPE_INT ),
+	(Name: 'version';CtlType: CTLTYPE_STRING ),
+	(Name: 'maxvnodes';CtlType: CTLTYPE_INT ),
+	(Name: 'maxproc';CtlType: CTLTYPE_INT ),
+	(Name: 'maxfiles';CtlType: CTLTYPE_INT ),
+	(Name: 'argmax';CtlType: CTLTYPE_INT ),
+	(Name: 'securelevel';CtlType: CTLTYPE_INT ),
+	(Name: 'hostname';CtlType: CTLTYPE_STRING ),
+	(Name: 'hostid';CtlType: CTLTYPE_INT ),
+	(Name: 'clockrate';CtlType: CTLTYPE_STRUCT ),
+	(Name: 'vnode';CtlType: CTLTYPE_STRUCT ),
+	(Name: 'proc';CtlType: CTLTYPE_STRUCT ),
+	(Name: 'file';CtlType: CTLTYPE_STRUCT ),
+	(Name: 'profiling';CtlType: CTLTYPE_NODE ),
+	(Name: 'posix1version';CtlType: CTLTYPE_INT ),
+	(Name: 'ngroups';CtlType: CTLTYPE_INT ),
+	(Name: 'job_control';CtlType: CTLTYPE_INT ),
+	(Name: 'saved_ids';CtlType: CTLTYPE_INT ),
+	(Name: 'boottime';CtlType: CTLTYPE_STRUCT ),
+	(Name: 'domainname';CtlType: CTLTYPE_STRING ),
+	(Name: 'maxpartitions';CtlType: CTLTYPE_INT ),
+	(Name: 'rawpartition';CtlType: CTLTYPE_INT ),
+	(Name: 'gap';CtlType: 0 ),
+	(Name: 'gap';CtlType: 0 ),
+	(Name: 'osversion';CtlType: CTLTYPE_STRING ),
+	(Name: 'somaxconn';CtlType: CTLTYPE_INT ),
+	(Name: 'sominconn';CtlType: CTLTYPE_INT ),
+	(Name: 'usermount';CtlType: CTLTYPE_INT ),
+	(Name: 'random';CtlType: CTLTYPE_STRUCT ),
+	(Name: 'nosuidcoredump';CtlType: CTLTYPE_INT ),
+	(Name: 'fsync';CtlType: CTLTYPE_INT ),
+	(Name: 'sysvmsg';CtlType: CTLTYPE_INT ),
+	(Name: 'sysvsem';CtlType: CTLTYPE_INT ),
+	(Name: 'sysvshm';CtlType: CTLTYPE_INT ),
+	(Name: 'arandom';CtlType: CTLTYPE_INT ),
+	(Name: 'msgbufsize';CtlType: CTLTYPE_INT ),
+	(Name: 'malloc';CtlType: CTLTYPE_NODE ),
+	(Name: 'cp_time';CtlType: CTLTYPE_STRUCT ),
+	(Name: 'nchstats';CtlType: CTLTYPE_STRUCT ),
+	(Name: 'forkstat';CtlType: CTLTYPE_STRUCT ),
+	(Name: 'nselcoll';CtlType: CTLTYPE_INT ),
+	(Name: 'tty';CtlType: CTLTYPE_NODE ),
+	(Name: 'ccpu';CtlType: CTLTYPE_INT ),
+	(Name: 'fscale';CtlType: CTLTYPE_INT ),
+	(Name: 'nprocs';CtlType: CTLTYPE_INT ),
+	(Name: 'msgbuf';CtlType: CTLTYPE_STRUCT ),
+	(Name: 'pool';CtlType: CTLTYPE_NODE ),
+	(Name: 'stackgap_random';CtlType: CTLTYPE_INT ),
+	(Name: 'sysvipc_info';CtlType: CTLTYPE_INT ),
+	(Name: 'usercrypto';CtlType: CTLTYPE_INT ),
+	(Name: 'cryptodevallowsoft';CtlType: CTLTYPE_INT ),
+	(Name: 'splassert';CtlType: CTLTYPE_INT ),
+	(Name: 'procargs';CtlType: CTLTYPE_NODE ),
+	(Name: 'nfiles';CtlType: CTLTYPE_INT ),
+	(Name: 'ttycount';CtlType: CTLTYPE_INT ),
+	(Name: 'numvnodes';CtlType: CTLTYPE_INT ),
+	(Name: 'mbstat';CtlType: CTLTYPE_STRUCT ),
+	(Name: 'userasymcrypto';CtlType: CTLTYPE_INT ));
+
+{
+ * KERN_PROC subtypes
+}
+       	KERN_PROC_ALL		= 0;	{ everything but kernel threads }
+       	KERN_PROC_PID		= 1;	{ by process id }
+       	KERN_PROC_PGRP		= 2;	{ by process group id }
+       	KERN_PROC_SESSION	= 3;	{ by session of pid }
+       	KERN_PROC_TTY		= 4;	{ by controlling tty }
+       	KERN_PROC_UID		= 5;	{ by effective uid }
+       	KERN_PROC_RUID		= 6;	{ by real uid }
+       	KERN_PROC_KTHREAD	= 7;	{ also return kernel threads }
+
+{
+ * KERN_SYSVIPC_INFO subtypes
+}
+        KERN_SYSVIPC_MSG_INFO	= 1;	{ msginfo and msqid_ds }
+        KERN_SYSVIPC_SEM_INFO	= 2;	{ seminfo and semid_ds }
+        KERN_SYSVIPC_SHM_INFO	= 3;	{ shminfo and shmid_ds }
+
+{
+ * KERN_PROC_ARGS subtypes
+}
+        KERN_PROC_ARGV		= 1;
+        KERN_PROC_NARGV		= 2;
+        KERN_PROC_ENV		= 3;
+        KERN_PROC_NENV		= 4;
+
+{
+ * CTL_FS identifiers
+}
+       	FS_POSIX	= 1;		{ POSIX flags }
+       	FS_MAXID	= 2;
+
+       	CTL_FS_NAMES   : array [0..1] OF CtlNameRec = (
+	(Name: '';CtlType: 0 ),
+	(Name: 'posix';CtlType: CTLTYPE_NODE ));
+
+{
+ * CTL_FS identifiers
+}
+       	FS_POSIX_SETUID	= 1;		{ int: always clear SGID/SUID bit when owner change }
+       	FS_POSIX_MAXID	= 2;
+
+       	CTL_FS_POSIX_NAMES   : array [0..1] OF CtlNameRec = (
+	(Name: '';CtlType: 0 ),
+	(Name: 'setuid';CtlType: CTLTYPE_INT ));
+
+{
+ * CTL_HW identifiers
+}
+       	HW_MACHINE	 = 1;		{ string: machine class }
+       	HW_MODEL	 = 2;		{ string: specific machine model }
+       	HW_NCPU		 = 3;		{ int: number of cpus }
+       	HW_BYTEORDER	 = 4;		{ int: machine byte order }
+       	HW_PHYSMEM	 = 5;		{ int: total memory }
+       	HW_USERMEM	 = 6;		{ int: non-kernel memory }
+       	HW_PAGESIZE	 = 7;		{ int: software page size }
+       	HW_DISKNAMES	 = 8;		{ strings: disk drive names }
+       	HW_DISKSTATS	 = 9;		{ struct: diskstats[] }
+       	HW_DISKCOUNT	= 10;		{ int: number of disks }
+       	HW_MAXID	= 11;		{ number of valid hw ids }
+
+       	CTL_HW_NAMES   : array [0..10] OF CtlNameRec = (
+	(Name: '';CtlType: 0 ),
+	(Name: 'machine';CtlType: CTLTYPE_STRING ),
+	(Name: 'model';CtlType: CTLTYPE_STRING ),
+	(Name: 'ncpu';CtlType: CTLTYPE_INT ),
+	(Name: 'byteorder';CtlType: CTLTYPE_INT ),
+	(Name: 'physmem';CtlType: CTLTYPE_INT ),
+	(Name: 'usermem';CtlType: CTLTYPE_INT ),
+	(Name: 'pagesize';CtlType: CTLTYPE_INT ),
+	(Name: 'disknames';CtlType: CTLTYPE_STRING ),
+	(Name: 'diskstats';CtlType: CTLTYPE_STRUCT ),
+	(Name: 'diskcount';CtlType: CTLTYPE_INT ));
+
+{
+ * CTL_USER definitions
+}
+       	USER_CS_PATH		 = 1;	{ string: _CS_PATH }
+       	USER_BC_BASE_MAX	 = 2;	{ int: BC_BASE_MAX }
+       	USER_BC_DIM_MAX		 = 3;	{ int: BC_DIM_MAX }
+       	USER_BC_SCALE_MAX	 = 4;	{ int: BC_SCALE_MAX }
+       	USER_BC_STRING_MAX	 = 5;	{ int: BC_STRING_MAX }
+       	USER_COLL_WEIGHTS_MAX	 = 6;	{ int: COLL_WEIGHTS_MAX }
+       	USER_EXPR_NEST_MAX	 = 7;	{ int: EXPR_NEST_MAX }
+       	USER_LINE_MAX		 = 8;	{ int: LINE_MAX }
+       	USER_RE_DUP_MAX		 = 9;	{ int: RE_DUP_MAX }
+       	USER_POSIX2_VERSION	= 10;	{ int: POSIX2_VERSION }
+       	USER_POSIX2_C_BIND	= 11;	{ int: POSIX2_C_BIND }
+       	USER_POSIX2_C_DEV	= 12;	{ int: POSIX2_C_DEV }
+       	USER_POSIX2_CHAR_TERM	= 13;	{ int: POSIX2_CHAR_TERM }
+       	USER_POSIX2_FORT_DEV	= 14;	{ int: POSIX2_FORT_DEV }
+       	USER_POSIX2_FORT_RUN	= 15;	{ int: POSIX2_FORT_RUN }
+       	USER_POSIX2_LOCALEDEF	= 16;	{ int: POSIX2_LOCALEDEF }
+       	USER_POSIX2_SW_DEV	= 17;	{ int: POSIX2_SW_DEV }
+       	USER_POSIX2_UPE		= 18;	{ int: POSIX2_UPE }
+       	USER_STREAM_MAX		= 19;	{ int: POSIX2_STREAM_MAX }
+       	USER_TZNAME_MAX		= 20;	{ int: POSIX2_TZNAME_MAX }
+       	USER_MAXID		= 21;	{ number of valid user ids }
+
+       	CTL_USER_NAMES   : array [0..20] OF CtlNameRec = (
+	(Name: '';CtlType: 0 ),
+	(Name: 'cs_path';CtlType: CTLTYPE_STRING ),
+	(Name: 'bc_base_max';CtlType: CTLTYPE_INT ),
+	(Name: 'bc_dim_max';CtlType: CTLTYPE_INT ),
+	(Name: 'bc_scale_max';CtlType: CTLTYPE_INT ),
+	(Name: 'bc_string_max';CtlType: CTLTYPE_INT ),
+	(Name: 'coll_weights_max';CtlType: CTLTYPE_INT ),
+	(Name: 'expr_nest_max';CtlType: CTLTYPE_INT ),
+	(Name: 'line_max';CtlType: CTLTYPE_INT ),
+	(Name: 're_dup_max';CtlType: CTLTYPE_INT ),
+	(Name: 'posix2_version';CtlType: CTLTYPE_INT ),
+	(Name: 'posix2_c_bind';CtlType: CTLTYPE_INT ),
+	(Name: 'posix2_c_dev';CtlType: CTLTYPE_INT ),
+	(Name: 'posix2_char_term';CtlType: CTLTYPE_INT ),
+	(Name: 'posix2_fort_dev';CtlType: CTLTYPE_INT ),
+	(Name: 'posix2_fort_run';CtlType: CTLTYPE_INT ),
+	(Name: 'posix2_localedef';CtlType: CTLTYPE_INT ),
+	(Name: 'posix2_sw_dev';CtlType: CTLTYPE_INT ),
+	(Name: 'posix2_upe';CtlType: CTLTYPE_INT ),
+	(Name: 'stream_max';CtlType: CTLTYPE_INT ),
+	(Name: 'tzname_max';CtlType: CTLTYPE_INT ));
+
+{
+ * CTL_DEBUG definitions
+ *
+ * Second level identifier specifies which debug variable.
+ * Third level identifier specifies which stucture component.
+}
+       	CTL_DEBUG_NAME		= 0;	{ string: variable name }
+       	CTL_DEBUG_VALUE		= 1;	{ int: variable value }
+       	CTL_DEBUG_MAXID		= 20;
+
+        POOLWORDS = 1024;	{ Power of 2 - note that this is 32-bit words }
+
+       	RND_RND		= 0;	{ real randomness like nuclear chips }
+       	RND_SRND	= 1;	{ strong random source }
+       	RND_URND	= 2;	{ less strong random source }
+       	RND_PRND	= 3;	{ pseudo random source }
+        RND_ARND	= 4;	{ aRC4 based random number generator }
+        RND_NODEV	= 5;	{ First invalid minor device number }
+
+       	RND_SRC_TRUE	= 0;
+       	RND_SRC_TIMER	= 1;
+       	RND_SRC_MOUSE	= 2;
+       	RND_SRC_TTY	= 3;
+       	RND_SRC_DISK	= 4;
+       	RND_SRC_NET	= 5;
+       	RND_SRC_AUDIO	= 6;
+       	RND_SRC_VIDEO	= 7;
+       	RND_SRC_NUM	= 8;
+
+
+{
+ * Types
+}
+       	SOCK_STREAM	= 1;		{ stream socket }
+       	SOCK_DGRAM	= 2;		{ datagram socket }
+       	SOCK_RAW	= 3;		{ raw-protocol interface }
+       	SOCK_RDM	= 4;		{ reliably-delivered message }
+       	SOCK_SEQPACKET	= 5;		{ sequenced packet stream }
+
+{
+ * Option flags per-socket.
+}
+       	SO_DEBUG	= $00001;		{ turn on debugging info recording }
+       	SO_ACCEPTCONN	= $00002;		{ socket has had listen(Name:) }
+       	SO_REUSEADDR	= $00004;		{ allow local address reuse }
+       	SO_KEEPALIVE	= $00008;		{ keep connections alive }
+       	SO_DONTROUTE	= $00010;		{ just use interface addresses }
+       	SO_BROADCAST	= $00020;		{ permit sending of broadcast msgs }
+       	SO_USELOOPBACK	= $00040;		{ bypass hardware when possible }
+       	SO_LINGER	= $00080;		{ linger on close if data present }
+       	SO_OOBINLINE	= $00100;		{ leave received OOB data in line }
+       	SO_REUSEPORT	= $00200;		{ allow local address & port reuse }
+
+{
+ * Additional options, not kept in so_options.
+}
+       	SO_SNDBUF	= $01001;		{ send buffer size }
+       	SO_RCVBUF	= $01002;		{ receive buffer size }
+       	SO_SNDLOWAT	= $01003;		{ send low-water mark }
+       	SO_RCVLOWAT	= $01004;		{ receive low-water mark }
+       	SO_SNDTIMEO	= $01005;		{ send timeout }
+       	SO_RCVTIMEO	= $01006;		{ receive timeout }
+       	SO_ERROR	= $01007;		{ get error status and clear }
+       	SO_TYPE		= $01008;		{ get socket type }
+       	SO_NETPROC	= $01020;		{ multiplex; network processing }
+
+
+{
+ * Level number for (Name:get/set)sockopt() to apply to socket itself.
+}
+       	SOL_SOCKET	= $0ffff;		{ options for socket level }
+
+{
+ * Address families.
+}
+       	AF_UNSPEC	= 0;		{ unspecified }
+       	AF_LOCAL	= 1;		{ local to host (Name:pipes;CtlType: portals) }
+       	AF_UNIX		= AF_LOCAL;	{ backward compatibility }
+       	AF_INET		= 2;		{ internetwork: UDP, TCP, etc. }
+       	AF_IMPLINK	= 3;		{ arpanet imp addresses }
+       	AF_PUP		= 4;		{ pup protocols: e.g. BSP }
+       	AF_CHAOS	= 5;		{ mit CHAOS protocols }
+       	AF_NS		= 6;		{ XEROX NS protocols }
+       	AF_ISO		= 7;		{ ISO protocols }
+       	AF_OSI		= AF_ISO;
+       	AF_ECMA		= 8;		{ european computer manufacturers }
+       	AF_DATAKIT	= 9;		{ datakit protocols }
+       	AF_CCITT	= 10;		{ CCITT protocols, X.25 etc }
+       	AF_SNA		= 11;		{ IBM SNA }
+        AF_DECnet	= 12;		{ DECnet }
+        AF_DLI		= 13;		{ DEC Direct data link interface }
+        AF_LAT		= 14;		{ LAT }
+       	AF_HYLINK	= 15;		{ NSC Hyperchannel }
+       	AF_APPLETALK	= 16;		{ Apple Talk }
+       	AF_ROUTE	= 17;		{ Internal Routing Protocol }
+       	AF_LINK		= 18;		{ Link layer interface }
+       	pseudo_AF_XTP	= 19;		{ eXpress Transfer Protocol (Name:no AF) }
+       	AF_COIP		= 20;		{ connection-oriented IP, aka ST II }
+       	AF_CNT		= 21;		{ Computer Network Technology }
+        pseudo_AF_RTIP	= 22;		{ Help Identify RTIP packets }
+       	AF_IPX		= 23;		{ Novell Internet Protocol }
+       	AF_INET6	= 24;		{ IPv6 }
+        pseudo_AF_PIP	= 25;		{ Help Identify PIP packets }
+        AF_ISDN		= 26;		{ Integrated Services Digital Network}
+        AF_E164		= AF_ISDN;		{ CCITT E.164 recommendation }
+        AF_NATM		= 27;		{ native ATM access }
+       	AF_ENCAP	= 28;
+       	AF_SIP		= 29;		{ Simple Internet Protocol }
+        AF_KEY		= 30;
+        pseudo_AF_HDRCMPLT = 31;		{ Used by BPF to not rewrite headers
+					   in interface output routine }
+       	AF_MAX		= 32;
+
+{
+ * Protocol families, same as address families for now.
+}
+       	PF_UNSPEC	= AF_UNSPEC  ;
+       	PF_LOCAL	= AF_LOCAL   ;
+       	PF_UNIX		= PF_LOCAL   ; 	{ backward compatibility }
+       	PF_INET		= AF_INET    ;
+       	PF_IMPLINK	= AF_IMPLINK ;
+       	PF_PUP		= AF_PUP     ;
+       	PF_CHAOS	= AF_CHAOS   ;
+       	PF_NS		= AF_NS      ;
+       	PF_ISO		= AF_ISO     ;
+       	PF_OSI		= AF_ISO     ;
+       	PF_ECMA		= AF_ECMA    ;
+       	PF_DATAKIT	= AF_DATAKIT ;
+       	PF_CCITT	= AF_CCITT   ;
+       	PF_SNA		= AF_SNA     ;
+        PF_DECnet	= AF_DECnet  ;
+        PF_DLI		= AF_DLI     ;
+        PF_LAT		= AF_LAT     ;
+       	PF_HYLINK	= AF_HYLINK  ;
+       	PF_APPLETALK	= AF_APPLETALK ;
+       	PF_ROUTE	= AF_ROUTE     ;
+       	PF_LINK		= AF_LINK      ;
+       	PF_XTP		= pseudo_AF_XTP;	{ really just proto family, no AF }
+       	PF_COIP		= AF_COIP      ;
+       	PF_CNT		= AF_CNT       ;
+       	PF_IPX		= AF_IPX          ;		{ same format as AF_NS }
+        PF_INET6	= AF_INET6  ;
+        PF_PIP		= pseudo_AF_PIP;
+        PF_ISDN		= AF_ISDN        ;
+        PF_NATM		= AF_NATM        ;
+        PF_ENCAP	= AF_ENCAP       ;
+       	PF_SIP		= AF_SIP         ;
+        PF_KEY	 	= AF_KEY         ;
+       	PF_MAX		= AF_MAX         ;
+                                          
+{
+ * These are the valid values for the 'how' field used by shutdown(Name:2).
+}
+       	SHUT_RD		= 0;
+       	SHUT_WR		= 1;
+       	SHUT_RDWR	= 2;
+
+{
+ * Definitions for network related sysctl, CTL_NET.
+ *
+ * Second level is protocol family.
+ * Third level is protocol number.
+ *
+ * Further levels are defined by the individual families below.
+}
+        NET_MAXID	= AF_MAX;
+
+        CTL_NET_NAMES   : array [0..30] OF CtlNameRec = (
+	(Name: '';CtlType: 0 ),
+	(Name: 'unix';CtlType: CTLTYPE_NODE ),
+	(Name: 'inet';CtlType: CTLTYPE_NODE ),
+	(Name: 'implink';CtlType: CTLTYPE_NODE ),
+	(Name: 'pup';CtlType: CTLTYPE_NODE ),
+	(Name: 'chaos';CtlType: CTLTYPE_NODE ),
+	(Name: 'xerox_ns';CtlType: CTLTYPE_NODE ),
+	(Name: 'iso';CtlType: CTLTYPE_NODE ),
+	(Name: 'emca';CtlType: CTLTYPE_NODE ),
+	(Name: 'datakit';CtlType: CTLTYPE_NODE ),
+	(Name: 'ccitt';CtlType: CTLTYPE_NODE ),
+	(Name: 'ibm_sna';CtlType: CTLTYPE_NODE ),
+	(Name: 'decnet';CtlType: CTLTYPE_NODE ),
+	(Name: 'dec_dli';CtlType: CTLTYPE_NODE ),
+	(Name: 'lat';CtlType: CTLTYPE_NODE ),
+	(Name: 'hylink';CtlType: CTLTYPE_NODE ),
+	(Name: 'appletalk';CtlType: CTLTYPE_NODE ),
+	(Name: 'route';CtlType: CTLTYPE_NODE ),
+	(Name: 'link_layer';CtlType: CTLTYPE_NODE ),
+	(Name: 'xtp';CtlType: CTLTYPE_NODE ),
+	(Name: 'coip';CtlType: CTLTYPE_NODE ),
+	(Name: 'cnt';CtlType: CTLTYPE_NODE ),
+	(Name: 'rtip';CtlType: CTLTYPE_NODE ),
+	(Name: 'ipx';CtlType: CTLTYPE_NODE ),
+	(Name: 'inet6';CtlType: CTLTYPE_NODE ),
+	(Name: 'pip';CtlType: CTLTYPE_NODE ),
+	(Name: 'isdn';CtlType: CTLTYPE_NODE ),
+	(Name: 'natm';CtlType: CTLTYPE_NODE ),
+	(Name: 'encap';CtlType: CTLTYPE_NODE ),
+	(Name: 'sip';CtlType: CTLTYPE_NODE ),
+	(Name: 'key';CtlType: CTLTYPE_NODE ));
+
+{
+ * PF_ROUTE - Routing table
+ *
+ * Three additional levels are defined:
+ *	Fourth: address family, 0 is wildcard
+ *	Fifth: type of info, defined below
+ *	Sixth: flag(Name:s) to mask with for NET_RT_FLAGS
+}
+        NET_RT_DUMP	= 1;		{ dump; may limit to a.f. }
+        NET_RT_FLAGS	= 2;		{ by flags, e.g. RESOLVING }
+        NET_RT_IFLIST	= 3;		{ survey interface list }
+       	NET_RT_MAXID	= 4;
+
+        CTL_NET_RT_NAMES   : array [0..3] OF CtlNameRec = (
+	(Name: '';CtlType: 0 ),
+	(Name: 'dump';CtlType: CTLTYPE_STRUCT ),
+	(Name: 'flags';CtlType: CTLTYPE_STRUCT ),
+	(Name: 'iflist';CtlType: CTLTYPE_STRUCT ));
+
+       	MSG_OOB		= $01;		{ process out-of-band data }
+       	MSG_PEEK	= $02;		{ peek at incoming message }
+       	MSG_DONTROUTE	= $04;		{ send without using routing tables }
+       	MSG_EOR		= $08;		{ data completes record }
+       	MSG_TRUNC	= $010;		{ data discarded before delivery }
+       	MSG_CTRUNC	= $020;		{ control data lost before delivery }
+       	MSG_WAITALL	= $040;		{ wait for full request or error }
+       	MSG_DONTWAIT	= $080;		{ this message should be nonblocking }
+       	MSG_BCAST	= $0100;		{ this message rec'd as broadcast }
+       	MSG_MCAST	= $0200;		{ this message rec'd as multicast }
+
+{
+ * Possible states of profiling.
+}
+       	GMON_PROF_ON	= 0;
+       	GMON_PROF_BUSY	= 1;
+       	GMON_PROF_ERROR	= 2;
+       	GMON_PROF_OFF	= 3;
+
+{
+ * Sysctl definitions for extracting profiling information from the kernel.
+}
+       	GPROF_STATE	= 0;	{ int: profiling enabling variable }
+       	GPROF_COUNT	= 1;	{ struct: profile tick count buffer }
+       	GPROF_FROMS	= 2;	{ struct: from location hash bucket }
+       	GPROF_TOS	= 3;	{ struct: destination/count structure }
+       	GPROF_GMONPARAM	= 4;	{ struct: profiling parameters (Name:see above) }
+
+{
+ * CTL_VM identifiers
+}
+       	VM_METER	= 1;		{ struct vmmeter }
+       	VM_LOADAVG	= 2;		{ struct loadavg }
+       	VM_PSSTRINGS	= 3;		{ PSSTRINGS }
+        VM_UVMEXP	= 4;		{ struct uvmexp }
+        VM_SWAPENCRYPT	= 5;		{ int }
+        VM_NKMEMPAGES	= 6;		{ int - # kmem_map pages }
+       	VM_ANONMIN	= 7;
+       	VM_VTEXTMIN	= 8;
+       	VM_VNODEMIN	= 9;
+       	VM_MAXSLP	= 10;
+       	VM_USPACE	= 11;
+       	VM_MAXID	= 12;		{ number of valid vm ids }
+
+       	CTL_VM_NAMES   : array [0..11] OF CtlNameRec = (
+	(Name: '';CtlType: 0 ),
+	(Name: 'vmmeter';CtlType: CTLTYPE_STRUCT ),
+	(Name: 'loadavg';CtlType: CTLTYPE_STRUCT ),
+	(Name: 'psstrings';CtlType: CTLTYPE_STRUCT ),
+	(Name: 'uvmexp';CtlType: CTLTYPE_STRUCT ),
+	(Name: 'swapencrypt';CtlType: CTLTYPE_NODE ),
+	(Name: 'nkmempages';CtlType: CTLTYPE_INT ),
+	(Name: 'anonmin';CtlType: CTLTYPE_INT ),
+	(Name: 'vtextmin';CtlType: CTLTYPE_INT ),
+	(Name: 'vnodemin';CtlType: CTLTYPE_INT ),
+	(Name: 'maxslp';CtlType: CTLTYPE_INT ),
+	(Name: 'uspace';CtlType: CTLTYPE_INT ));
+
+        SWPENC_ENABLE	= 0;
+        SWPENC_CREATED	= 1;
+        SWPENC_DELETED	= 2;
+        SWPENC_MAXID	= 3;
+
+        CTL_SWPENC_NAMES   : array [0..2] OF CtlNameRec = (
+	(Name: 'enable';CtlType: CTLTYPE_INT ),
+	(Name: 'keyscreated';CtlType: CTLTYPE_INT ),
+	(Name: 'keysdeleted';CtlType: CTLTYPE_INT ));
+
+{
+ * Protocols
+}
+       	IPPROTO_IP		= 0;		{ dummy for IP }
+        IPPROTO_HOPOPTS		= IPPROTO_IP;	{ Hop-by-hop option header }
+       	IPPROTO_ICMP		= 1;		{ control message protocol }
+       	IPPROTO_IGMP		= 2;		{ group mgmt protocol }
+       	IPPROTO_GGP		= 3;		{ gateway^2 (Name:deprecated) }
+       	IPPROTO_IPIP		= 4;		{ IP inside IP }
+       	IPPROTO_IPV4		= IPPROTO_IPIP;	{ IP inside IP }
+       	IPPROTO_TCP		= 6;		{ tcp }
+       	IPPROTO_EGP		= 8;		{ exterior gateway protocol }
+       	IPPROTO_PUP		= 12;		{ pup }
+       	IPPROTO_UDP		= 17;		{ user datagram protocol }
+       	IPPROTO_IDP		= 22;		{ xns idp }
+       	IPPROTO_TP		= 29; 		{ tp-4 w/ class negotiation }
+        IPPROTO_IPV6		= 41;		{ IPv6 in IPv6 }
+        IPPROTO_ROUTING		= 43;		{ Routing header }
+        IPPROTO_FRAGMENT	= 44;		{ Fragmentation/reassembly header }
+        IPPROTO_RSVP		= 46;		{ resource reservation }
+       	IPPROTO_GRE		= 47;		{ GRE encap, RFCs 1701/1702 }
+       	IPPROTO_ESP		= 50;		{ Encap. Security Payload }
+       	IPPROTO_AH		= 51;		{ Authentication header }
+       	IPPROTO_MOBILE		= 55;		{ IP Mobility, RFC 2004 }
+        IPPROTO_ICMPV6		= 58;		{ ICMP for IPv6 }
+        IPPROTO_NONE		= 59;		{ No next header }
+        IPPROTO_DSTOPTS		= 60;		{ Destination options header }
+       	IPPROTO_EON		= 80;		{ ISO cnlp }
+        IPPROTO_ETHERIP		= 97;		{ Ethernet in IPv4 }
+       	IPPROTO_ENCAP		= 98;		{ encapsulation header }
+        IPPROTO_PIM		= 103;		{ Protocol indep. multicast }
+        IPPROTO_IPCOMP		= 108;		{ IP Payload Comp. Protocol }
+       	IPPROTO_RAW		= 255;		{ raw IP packet }
+
+       	IPPROTO_MAX		= 256;
+
+
+{
+ * Options for use with [gs]etsockopt at the IP level.
+ * First word of comment is data type; bool is stored in int.
+}
+       	IP_OPTIONS		= 1;    { buf/ip_opts; set/get IP options }
+       	IP_HDRINCL		= 2;    { int; header is included with data }
+       	IP_TOS			= 3;    { int; IP type of service and preced. }
+       	IP_TTL			= 4;    { int; IP time to live }
+       	IP_RECVOPTS		= 5;    { bool; receive all IP opts w/dgram }
+       	IP_RECVRETOPTS		= 6;    { bool; receive IP opts for response }
+       	IP_RECVDSTADDR		= 7;    { bool; receive IP dst addr w/dgram }
+       	IP_RETOPTS		= 8;    { ip_opts; set/get IP options }
+       	IP_MULTICAST_IF		= 9;    { in_addr; set/get IP multicast i/f  }
+       	IP_MULTICAST_TTL	= 10;   { u_char; set/get IP multicast ttl }
+       	IP_MULTICAST_LOOP	= 11;   { u_char; set/get IP multicast loopback }
+       	IP_ADD_MEMBERSHIP	= 12;   { ip_mreq; add an IP group membership }
+       	IP_DROP_MEMBERSHIP	= 13;   { ip_mreq; drop an IP group membership }
+
+{ 14-17 left empty for future compatibility with FreeBSD }
+
+        IP_PORTRANGE		= 19;   { int; range to choose for unspec port }
+        IP_AUTH_LEVEL		= 20;   { int; authentication used }
+        IP_ESP_TRANS_LEVEL	= 21;   { int; transport encryption }
+        IP_ESP_NETWORK_LEVEL	= 22;   { int; full-packet encryption }
+        IP_IPSEC_LOCAL_ID	= 23;   { buf; IPsec local ID }
+        IP_IPSEC_REMOTE_ID	= 24;   { buf; IPsec remote ID }
+        IP_IPSEC_LOCAL_CRED	= 25;   { buf; IPsec local credentials }
+        IP_IPSEC_REMOTE_CRED	= 26;   { buf; IPsec remote credentials }
+        IP_IPSEC_LOCAL_AUTH	= 27;   { buf; IPsec local auth material }
+        IP_IPSEC_REMOTE_AUTH	= 28;   { buf; IPsec remote auth material }
+        IP_IPCOMP_LEVEL		= 29;   { int; compression used }
+
+{
+ * Security levels - IPsec, not IPSO
+}
+
+        IPSEC_LEVEL_BYPASS      = $000;    { Bypass policy altogether }
+        IPSEC_LEVEL_NONE        = $000;    { Send clear, accept any }
+        IPSEC_LEVEL_AVAIL       = $001;    { Send secure if SA available }
+        IPSEC_LEVEL_USE         = $002;    { Send secure, accept any }
+        IPSEC_LEVEL_REQUIRE     = $003;    { Require secure inbound, also use }
+        IPSEC_LEVEL_UNIQUE      = $004;    { Use outbound SA that is unique }
+        IPSEC_LEVEL_DEFAULT     = IPSEC_LEVEL_AVAIL;
+
+
+{
+ * Defaults and limits for options
+}
+       	IP_DEFAULT_MULTICAST_TTL  = 1;	{ normally limit m'casts to 1 hop  }
+       	IP_DEFAULT_MULTICAST_LOOP = 1;	{ normally hear sends if a member  }
+       	IP_MAX_MEMBERSHIPS	= 20;	{ per socket; must fit in one mbuf }
+
+{
+ * Argument for IP_PORTRANGE:
+ * - which range to search when port is unspecified at bind(Name:) or connect()
+}
+        IP_PORTRANGE_DEFAULT	= 0;	{ default range }
+        IP_PORTRANGE_HIGH	= 1;	{ 'high' - request firewall bypass }
+        IP_PORTRANGE_LOW	= 2;	{ 'low' - vouchsafe security }
+
+{
+ * Buffer lengths for strings containing printable IP addresses
+}
+        INET_ADDRSTRLEN		= 16;
+
+{
+ * Definitions for inet sysctl operations.
+ *
+ * Third level is protocol number.
+ * Fourth level is desired variable within that protocol.
+}
+       	IPPROTO_MAXID	= (IPPROTO_IPCOMP + 1);	{ don't list to IPPROTO_MAX }
+
+       	CTL_IPPROTO_NAMES   : array [0..108] OF CtlNameRec = (
+	(Name: 'ip';CtlType: CTLTYPE_NODE ),
+	(Name: 'icmp';CtlType: CTLTYPE_NODE ),
+	(Name: 'igmp';CtlType: CTLTYPE_NODE ),
+	(Name: 'ggp';CtlType: CTLTYPE_NODE ),
+	(Name: 'ipip';CtlType: CTLTYPE_NODE ),
+	(Name: '';CtlType: 0 ),
+	(Name: 'tcp';CtlType: CTLTYPE_NODE ),
+	(Name: '';CtlType: 0 ),
+	(Name: 'egp';CtlType: CTLTYPE_NODE ),
+	(Name: '';CtlType: 0 ),
+	(Name: '';CtlType: 0 ),
+	(Name: '';CtlType: 0 ),
+	(Name: 'pup';CtlType: CTLTYPE_NODE ),
+	(Name: '';CtlType: 0 ),
+	(Name: '';CtlType: 0 ),
+	(Name: '';CtlType: 0 ),
+	(Name: '';CtlType: 0 ),
+	(Name: 'udp';CtlType: CTLTYPE_NODE ),
+	(Name: '';CtlType: 0 ),
+	(Name: '';CtlType: 0 ),
+	(Name: '';CtlType: 0 ),
+	(Name: '';CtlType: 0 ),
+	(Name: '';CtlType: 0 ),
+	(Name: '';CtlType: 0 ),
+	(Name: '';CtlType: 0 ),
+	(Name: '';CtlType: 0 ),
+	(Name: '';CtlType: 0 ),
+	(Name: '';CtlType: 0 ),
+	(Name: '';CtlType: 0 ),
+	(Name: '';CtlType: 0 ),
+	(Name: '';CtlType: 0 ),
+	(Name: '';CtlType: 0 ),
+	(Name: '';CtlType: 0 ),
+	(Name: '';CtlType: 0 ),
+	(Name: '';CtlType: 0 ),
+	(Name: '';CtlType: 0 ),
+	(Name: '';CtlType: 0 ),
+	(Name: '';CtlType: 0 ),
+	(Name: '';CtlType: 0 ),
+	(Name: '';CtlType: 0 ),
+	(Name: '';CtlType: 0 ),
+	(Name: '';CtlType: 0 ),
+	(Name: '';CtlType: 0 ),
+	(Name: '';CtlType: 0 ),
+	(Name: '';CtlType: 0 ),
+	(Name: '';CtlType: 0 ),
+	(Name: '';CtlType: 0 ),
+	(Name: 'gre';CtlType: CTLTYPE_NODE ),
+	(Name: '';CtlType: 0 ),
+	(Name: '';CtlType: 0 ),
+	(Name: 'esp';CtlType: CTLTYPE_NODE ),
+	(Name: 'ah';CtlType: CTLTYPE_NODE ),
+	(Name: '';CtlType: 0 ),
+	(Name: '';CtlType: 0 ),
+	(Name: '';CtlType: 0 ),
+	(Name: 'mobileip';CtlType: CTLTYPE_NODE ),
+	(Name: '';CtlType: 0 ),
+	(Name: '';CtlType: 0 ),
+	(Name: '';CtlType: 0 ),
+	(Name: '';CtlType: 0 ),
+	(Name: '';CtlType: 0 ),
+	(Name: '';CtlType: 0 ),
+	(Name: '';CtlType: 0 ),
+	(Name: '';CtlType: 0 ),
+	(Name: '';CtlType: 0 ),
+	(Name: '';CtlType: 0 ),
+	(Name: '';CtlType: 0 ),
+	(Name: '';CtlType: 0 ),
+	(Name: '';CtlType: 0 ),
+	(Name: '';CtlType: 0 ),
+	(Name: '';CtlType: 0 ),
+	(Name: '';CtlType: 0 ),
+	(Name: '';CtlType: 0 ),
+	(Name: '';CtlType: 0 ),
+	(Name: '';CtlType: 0 ),
+	(Name: '';CtlType: 0 ),
+	(Name: '';CtlType: 0 ),
+	(Name: '';CtlType: 0 ),
+	(Name: '';CtlType: 0 ),
+	(Name: '';CtlType: 0 ),
+	(Name: '';CtlType: 0 ),
+	(Name: '';CtlType: 0 ),
+	(Name: '';CtlType: 0 ),
+	(Name: '';CtlType: 0 ),
+	(Name: '';CtlType: 0 ),
+	(Name: '';CtlType: 0 ),
+	(Name: '';CtlType: 0 ),
+	(Name: '';CtlType: 0 ),
+	(Name: '';CtlType: 0 ),
+	(Name: '';CtlType: 0 ),
+	(Name: '';CtlType: 0 ),
+	(Name: '';CtlType: 0 ),
+	(Name: '';CtlType: 0 ),
+	(Name: '';CtlType: 0 ),
+	(Name: '';CtlType: 0 ),
+	(Name: '';CtlType: 0 ),
+	(Name: '';CtlType: 0 ),
+	(Name: 'etherip';CtlType: CTLTYPE_NODE ),
+	(Name: '';CtlType: 0 ),
+	(Name: '';CtlType: 0 ),
+	(Name: '';CtlType: 0 ),
+	(Name: '';CtlType: 0 ),
+	(Name: '';CtlType: 0 ),
+	(Name: '';CtlType: 0 ),
+	(Name: '';CtlType: 0 ),
+	(Name: '';CtlType: 0 ),
+	(Name: '';CtlType: 0 ),
+	(Name: '';CtlType: 0 ),
+	(Name: 'ipcomp';CtlType: CTLTYPE_NODE ));
+
+{
+ * Names for IP sysctl objects
+}
+       	IPCTL_FORWARDING	= 1;	{ act as router }
+       	IPCTL_SENDREDIRECTS	= 2;	{ may send redirects when forwarding }
+       	IPCTL_DEFTTL		= 3;	{ default TTL }
+{$ifdef notyet}
+       	IPCTL_DEFMTU		= 4;	{ default MTU }
+{$endif}
+       	IPCTL_SOURCEROUTE	= 5;	{ may perform source routes }
+       	IPCTL_DIRECTEDBCAST	= 6;	{ default broadcast behavior }
+        IPCTL_IPPORT_FIRSTAUTO	= 7;
+        IPCTL_IPPORT_LASTAUTO	= 8;
+        IPCTL_IPPORT_HIFIRSTAUTO = 9;
+        IPCTL_IPPORT_HILASTAUTO	= 10;
+       	IPCTL_IPPORT_MAXQUEUE	= 11;
+       	IPCTL_ENCDEBUG		= 12;
+{$ifdef obssolete}
+        IPCTL_GIF_TTL		= 13;	{ default TTL for gif encap packet }
+{$endif}
+	IPCTL_IPSEC_EXPIRE_ACQUIRE = 14;   { How long to wait for key mgmt. }
+        IPCTL_IPSEC_EMBRYONIC_SA_TIMEOUT	= 15; { new SA lifetime }
+        IPCTL_IPSEC_REQUIRE_PFS = 16;
+        IPCTL_IPSEC_SOFT_ALLOCATIONS            = 17;
+        IPCTL_IPSEC_ALLOCATIONS = 18;
+        IPCTL_IPSEC_SOFT_BYTES  = 19;
+        IPCTL_IPSEC_BYTES       = 20;
+        IPCTL_IPSEC_TIMEOUT     = 21;
+        IPCTL_IPSEC_SOFT_TIMEOUT = 22;
+        IPCTL_IPSEC_SOFT_FIRSTUSE = 23;
+        IPCTL_IPSEC_FIRSTUSE    = 24;
+        IPCTL_IPSEC_ENC_ALGORITHM = 25;
+        IPCTL_IPSEC_AUTH_ALGORITHM = 26;
+       	IPCTL_MTUDISC		= 27;	{ allow path MTU discovery }
+       	IPCTL_MTUDISCTIMEOUT	= 28;	{ allow path MTU discovery }
+       	IPCTL_IPSEC_IPCOMP_ALGORITHM	= 29;
+       	IPCTL_MAXID		= 30;
+
+       	IPCTL_NAMES   : array [0..29] OF CtlNameRec = (
+	(Name: '';CtlType: 0 ),
+	(Name: 'forwarding';CtlType: CTLTYPE_INT ),
+	(Name: 'redirect';CtlType: CTLTYPE_INT ),
+	(Name: 'ttl';CtlType: CTLTYPE_INT ),
+	{(Name: 'mtu';CtlType: CTLTYPE_INT ), } 
+        (Name: ''; CTLTYPE:0 ),
+	(Name: 'sourceroute';CtlType: CTLTYPE_INT ),
+	(Name: 'directed-broadcast';CtlType: CTLTYPE_INT ),
+	(Name: 'portfirst';CtlType: CTLTYPE_INT ),
+	(Name: 'portlast';CtlType: CTLTYPE_INT ),
+	(Name: 'porthifirst';CtlType: CTLTYPE_INT ),
+	(Name: 'porthilast';CtlType: CTLTYPE_INT ),
+	(Name: 'maxqueue';CtlType: CTLTYPE_INT ),
+	(Name: 'encdebug';CtlType: CTLTYPE_INT ),
+	(Name: '';CtlType: 0 ),
+	(Name: 'ipsec-expire-acquire';CtlType: CTLTYPE_INT ),
+	(Name: 'ipsec-invalid-life';CtlType: CTLTYPE_INT ),
+	(Name: 'ipsec-pfs';CtlType: CTLTYPE_INT ),
+	(Name: 'ipsec-soft-allocs';CtlType: CTLTYPE_INT ),
+	(Name: 'ipsec-allocs';CtlType: CTLTYPE_INT ),
+	(Name: 'ipsec-soft-bytes';CtlType: CTLTYPE_INT ),
+	(Name: 'ipsec-bytes';CtlType: CTLTYPE_INT ),
+	(Name: 'ipsec-timeout';CtlType: CTLTYPE_INT ),
+	(Name: 'ipsec-soft-timeout';CtlType: CTLTYPE_INT ),
+	(Name: 'ipsec-soft-firstuse';CtlType: CTLTYPE_INT ),
+	(Name: 'ipsec-firstuse';CtlType: CTLTYPE_INT ),
+	(Name: 'ipsec-enc-alg';CtlType: CTLTYPE_STRING ),
+	(Name: 'ipsec-auth-alg';CtlType: CTLTYPE_STRING ),
+	(Name: 'mtudisc';CtlType: CTLTYPE_INT ),
+	(Name: 'mtudisctimeout';CtlType: CTLTYPE_INT ),
+	(Name: 'ipsec-comp-alg';CtlType: CTLTYPE_STRING ));
+
+{
+ * Names for ICMP sysctl objects
+}
+       	ICMPCTL_MASKREPL	= 1;	{ allow replies to netmask requests }
+        ICMPCTL_BMCASTECHO	= 2;	{ reply to icmps to broadcast/mcast }
+        ICMPCTL_ERRPPSLIMIT	= 3;	{ ICMP error pps limitation }
+       	ICMPCTL_REDIRACCEPT	= 4;	{ Accept redirects from routers }
+       	ICMPCTL_REDIRTIMEOUT	= 5;	{ Remove routes added via redirects }
+       	ICMPCTL_TSTAMPREPL	= 6;	{ allow replies to timestamp requests }
+        ICMPCTL_MAXID		= 7;
+
+        ICMPCTL_NAMES   : array [0..6] OF CtlNameRec = (
+	(Name: '';CtlType: 0 ),
+	(Name: 'maskrepl';CtlType: CTLTYPE_INT ),
+	(Name: 'bmcastecho';CtlType: CTLTYPE_INT ),
+	(Name: 'errppslimit';CtlType: CTLTYPE_INT ),
+	(Name: 'rediraccept';CtlType: CTLTYPE_INT ),
+	(Name: 'redirtimeout';CtlType: CTLTYPE_INT ),
+	(Name: 'tstamprepl';CtlType: CTLTYPE_INT ));
+
+{
+ * Names for ICMP sysctl objects
+}
+        ICMPV6CTL_STATS		= 1;
+        ICMPV6CTL_REDIRACCEPT	= 2;	{ accept/process redirects }
+        ICMPV6CTL_REDIRTIMEOUT	= 3;	{ redirect cache time }
+{$ifdef obsolete_false}
+        ICMPV6CTL_ERRRATELIMIT	= 5;	{ ICMPv6 error rate limitation }
+{$endif}
+        ICMPV6CTL_ND6_PRUNE	= 6;
+        ICMPV6CTL_ND6_DELAY	= 8;
+        ICMPV6CTL_ND6_UMAXTRIES	= 9;
+        ICMPV6CTL_ND6_MMAXTRIES		= 10;
+        ICMPV6CTL_ND6_USELOOPBACK	= 11;
+{ #define ICMPV6CTL_ND6_PROXYALL	12;	obsoleted, do not reuse here }
+        ICMPV6CTL_NODEINFO	= 13;
+        ICMPV6CTL_ERRPPSLIMIT	= 14;	{ ICMPv6 error pps limitation }
+        ICMPV6CTL_ND6_MAXNUDHINT	= 15;
+        ICMPV6CTL_MTUDISC_HIWAT	= 16;
+        ICMPV6CTL_MTUDISC_LOWAT	= 17;
+        ICMPV6CTL_ND6_DEBUG	= 18;
+        ICMPV6CTL_ND6_DRLIST	= 19;
+        ICMPV6CTL_ND6_PRLIST	= 20;
+        ICMPV6CTL_MAXID		= 21;
+
+        ICMPV6CTL_NAMES   : array [0..20] OF CtlNameRec = (
+	(Name: '';CtlType: 0 ),
+	(Name: '';CtlType: 0 ),
+	(Name: 'rediraccept';CtlType: CTLTYPE_INT ),
+	(Name: 'redirtimeout';CtlType: CTLTYPE_INT ),
+	(Name: '';CtlType: 0 ),
+	(Name: '';CtlType: 0 ),
+	(Name: 'nd6_prune';CtlType: CTLTYPE_INT ),
+	(Name: '';CtlType: 0 ),
+	(Name: 'nd6_delay';CtlType: CTLTYPE_INT ),
+	(Name: 'nd6_umaxtries';CtlType: CTLTYPE_INT ),
+	(Name: 'nd6_mmaxtries';CtlType: CTLTYPE_INT ),
+	(Name: 'nd6_useloopback';CtlType: CTLTYPE_INT ),
+	(Name: '';CtlType: 0 ),
+	(Name: 'nodeinfo';CtlType: CTLTYPE_INT ),
+	(Name: 'errppslimit';CtlType: CTLTYPE_INT ),
+	(Name: 'nd6_maxnudhint';CtlType: CTLTYPE_INT ),
+	(Name: 'mtudisc_hiwat';CtlType: CTLTYPE_INT ),
+	(Name: 'mtudisc_lowat';CtlType: CTLTYPE_INT ),
+	(Name: 'nd6_debug';CtlType: CTLTYPE_INT ),
+	(Name: '';CtlType: 0 ),
+	(Name: '';CtlType: 0 ));
+
+{
+ * Names for TCP sysctl objects.
+}
+
+       	TCPCTL_RFC1323		= 1; { enable/disable RFC1323 timestamps/scaling }
+       	TCPCTL_KEEPINITTIME	= 2; { TCPT_KEEP value }
+        TCPCTL_KEEPIDLE		= 3; { allow tcp_keepidle to be changed }
+        TCPCTL_KEEPINTVL	= 4; { allow tcp_keepintvl to be changed }
+        TCPCTL_SLOWHZ		= 5; { return kernel idea of PR_SLOWHZ }
+        TCPCTL_BADDYNAMIC	= 6; { return bad dynamic port bitmap }
+       	TCPCTL_RECVSPACE	= 7; { receive buffer space }
+       	TCPCTL_SENDSPACE	= 8; { send buffer space }
+       	TCPCTL_IDENT		= 9; { get connection owner }
+       	TCPCTL_SACK	       = 10; { selective acknowledgement, rfc 2018 }
+        TCPCTL_MSSDFLT	       = 11; { Default maximum segment size }
+       	TCPCTL_RSTPPSLIMIT     = 12; { RST pps limit }
+       	TCPCTL_ACK_ON_PUSH     = 13; { ACK immediately on PUSH }
+       	TCPCTL_ECN	       = 14; { RFC3168 ECN }
+       	TCPCTL_MAXID	       = 15;
+
+       	TCPCTL_NAMES  : array [0..14] OF CtlNameRec = (
+	(Name: '';CtlType: 0 ),
+	(Name: 'rfc1323';CtlType:	CTLTYPE_INT ),
+	(Name: 'keepinittime';CtlType:	CTLTYPE_INT ),
+	(Name: 'keepidle';CtlType:	CTLTYPE_INT ),
+	(Name: 'keepintvl';CtlType:	CTLTYPE_INT ),
+	(Name: 'slowhz';CtlType:	CTLTYPE_INT ),
+	(Name: 'baddynamic';CtlType: CTLTYPE_STRUCT ),
+	(Name: 'recvspace';CtlType:	CTLTYPE_INT ),
+	(Name: 'sendspace';CtlType:	CTLTYPE_INT ),
+	(Name: 'ident';CtlType: 	CTLTYPE_STRUCT ),
+	(Name: 'sack';CtlType:	CTLTYPE_INT ),
+	(Name: 'mssdflt';CtlType:	CTLTYPE_INT ),
+	(Name: 'rstppslimit';CtlType:	CTLTYPE_INT ),
+	(Name: 'ackonpush';CtlType:	CTLTYPE_INT ),
+	(Name: 'ecn';CtlType: 	CTLTYPE_INT ));
+
+{
+ * Names for UDP sysctl objects
+}
+       	UDPCTL_CHECKSUM		= 1; { checksum UDP packets }
+       	UDPCTL_BADDYNAMIC	= 2; { return bad dynamic port bitmap }
+        UDPCTL_RECVSPACE	= 3; { receive buffer space }
+        UDPCTL_SENDSPACE	= 4; { send buffer space }
+        UDPCTL_MAXID		= 5;
+
+        UDPCTL_NAMES  : array [0..4] OF CtlNameRec = (
+	(Name: '';CtlType: 0 ),
+	(Name: 'checksum';CtlType: CTLTYPE_INT ),
+	(Name: 'baddynamic';CtlType: CTLTYPE_STRUCT ),
+	(Name: 'recvspace';CtlType:  CTLTYPE_INT ),
+	(Name: 'sendspace';CtlType:  CTLTYPE_INT ));
+
+{
+ * Names for IPX sysctl objects.
+}
+
+       	IPXCTL_CHECKSUM		= 1;
+        IPXCTL_FORWARDING	= 2;
+        IPXCTL_NETBIOS		= 3;
+        IPXCTL_RECVSPACE	= 4;
+        IPXCTL_SENDSPACE	= 5;
+       	IPXCTL_MAXID		= 6;
+
+        IPXCTL_NAMES  : array [0..5] OF CtlNameRec = (
+	(Name: '';CtlType: 0),
+	(Name: 'checksum';CtlType: CTLTYPE_INT ),
+	(Name: 'forwarding';CtlType: CTLTYPE_INT ),
+	(Name: 'netbios';CtlType: CTLTYPE_INT ),
+	(Name: 'recvspace';CtlType: CTLTYPE_INT ),
+	(Name: 'sendspace';CtlType: CTLTYPE_INT ));
+
+        DBCTL_RADIX	= 1;
+        DBCTL_MAXWIDTH	= 2;
+        DBCTL_MAXLINE	= 3;
+        DBCTL_TABSTOP	= 4;
+        DBCTL_PANIC	= 5;
+        DBCTL_CONSOLE	= 6;
+        DBCTL_MAXID	= 7;
+
+       	CTL_DDB_NAMES  : array [0..6] OF CtlNameRec = (
+	(Name: '';CtlType: 0 ),
+	(Name: 'radix';CtlType: CTLTYPE_INT ),
+	(Name: 'max_width';CtlType: CTLTYPE_INT ),
+	(Name: 'max_line';CtlType: CTLTYPE_INT ),
+	(Name: 'tab_stop_width';CtlType: CTLTYPE_INT ),
+	(Name: 'panic';CtlType: CTLTYPE_INT ),
+	(Name: 'console';CtlType: CTLTYPE_INT ));
+
+{
+ * Sysctl CTL_VFS definitions.
+ *
+ * Second level identifier specifies which filesystem. Second level
+ * identifier VFS_GENERIC returns information about all filesystems.
+}
+       	VFS_GENERIC	= 0;	{ generic filesystem information }
+{
+ * Third level identifiers for VFS_GENERIC are given below; third
+ * level identifiers for specific filesystems are given in their
+ * mount specific header files.
+}
+        VFS_MAXTYPENUM	= 1;	{ int: highest defined filesystem type }
+        VFS_CONF	= 2;	{ struct: vfsconf for filesystem given
+				   as next argument }
+       	VFSGEN_MAXID	= 3;	{ max number of vfs.generic ids }
+
+       	CTL_VFSGENCTL_NAMES  : array [0..2] OF CtlNameRec = (
+	(Name: '';CtlType: 0 ),
+	(Name: 'maxtypenum';CtlType: CTLTYPE_INT ),
+	(Name: 'conf';CtlType: CTLTYPE_NODE ));
+
+{
+ * fs.nfs sysctl(Name:3) identifiers
+}
+       	NFS_NFSSTATS	= 1;	{ struct: struct nfsstats }
+       	NFS_NIOTHREADS	= 2;	{ number of i/o threads }
+       	NFS_MAXID	= 3;
+
+        FS_NFS_NAMES  : array [0..2] OF CtlNameRec = (
+			(Name: '';CtlType: 0 ),
+			(Name: 'nfsstats';CtlType: CTLTYPE_STRUCT ),
+			(Name: 'iothreads';CtlType: CTLTYPE_INT ));
+
+        FFS_CLUSTERREAD		= 1;	{ cluster reading enabled }
+        FFS_CLUSTERWRITE	= 2;	{ cluster writing enabled }
+        FFS_REALLOCBLKS		= 3;	{ block reallocation enabled }
+        FFS_ASYNCFREE		= 4;	{ asynchronous block freeing enabled }
+       	FFS_MAX_SOFTDEPS	= 5;	{ maximum structs before slowdown }
+       	FFS_SD_TICKDELAY	= 6;	{ ticks to pause during slowdown }
+       	FFS_SD_WORKLIST_PUSH	= 7;	{ # of worklist cleanups }
+       	FFS_SD_BLK_LIMIT_PUSH	= 8;	{ # of times block limit neared }
+       	FFS_SD_INO_LIMIT_PUSH	= 9;	{ # of times inode limit neared }
+       	FFS_SD_BLK_LIMIT_HIT	= 10;	{ # of times block slowdown imposed }
+       	FFS_SD_INO_LIMIT_HIT	= 11;	{ # of times inode slowdown imposed }
+       	FFS_SD_SYNC_LIMIT_HIT	= 12;	{ # of synchronous slowdowns imposed }
+       	FFS_SD_INDIR_BLK_PTRS	= 13;	{ bufs redirtied as indir ptrs not written }
+       	FFS_SD_INODE_BITMAP	= 14;	{ bufs redirtied as inode bitmap not written }
+       	FFS_SD_DIRECT_BLK_PTRS	= 15;	{ bufs redirtied as direct ptrs not written }
+       	FFS_SD_DIR_ENTRY	= 16;	{ bufs redirtied as dir entry cannot write }
+       	FFS_MAXID		= 17;	{ number of valid ffs ids }
+
+        FFS_NAMES  : array [0..16] OF CtlNameRec = (
+	(Name: '';CtlType: 0 ),
+	(Name: 'doclusterread';CtlType: CTLTYPE_INT ),
+	(Name: 'doclusterwrite';CtlType: CTLTYPE_INT ),
+	(Name: 'doreallocblks';CtlType: CTLTYPE_INT ),
+	(Name: 'doasyncfree';CtlType: CTLTYPE_INT ),
+	(Name: 'max_softdeps';CtlType: CTLTYPE_INT ),
+	(Name: 'sd_tickdelay';CtlType: CTLTYPE_INT ),
+	(Name: 'sd_worklist_push';CtlType: CTLTYPE_INT ),
+	(Name: 'sd_blk_limit_push';CtlType: CTLTYPE_INT ),
+	(Name: 'sd_ino_limit_push';CtlType: CTLTYPE_INT ),
+	(Name: 'sd_blk_limit_hit';CtlType: CTLTYPE_INT ),
+	(Name: 'sd_ino_limit_hit';CtlType: CTLTYPE_INT ),
+	(Name: 'sd_sync_limit_hit';CtlType: CTLTYPE_INT ),
+	(Name: 'sd_indir_blk_ptrs';CtlType: CTLTYPE_INT ),
+	(Name: 'sd_inode_bitmap';CtlType: CTLTYPE_INT ),
+	(Name: 'sd_direct_blk_ptrs';CtlType: CTLTYPE_INT ),
+	(Name: 'sd_dir_entry';CtlType: CTLTYPE_INT ));
+
+{
+  
+  $Log$
+  Revision 1.1  2002-08-08 11:40:05  marco
+   * Initial versions.
+
+
+}