uvar(2) uvar(2)NAME uvar - returns system-specific configuration information SYNOPSIS #include <sys/var.h> int uvar(v) struct var *v; DESCRIPTION uvar returns system-specific configuration information contained in the kernel. The information returned contains table sizes, mask words, and other system-specific information for programs such as ps(1). Presently, a maximum of 512 bytes of information is returned. The structure variable v points to the var structure. The structure for uvar follows: struct var { int v_buf; /* Number of system buffers */ int v_call; /* Maximum number of simultaneous callouts */ int v_inode; /* Maximum number of incore inodes */ char* ve_inode; /* Pointer to last incore inode table */ int v_file; /* Maximum number of open files */ char* ve_file; /* Pointer to last open file table */ int v_mount; /* Maximum number of file systems mountable */ char* ve_mount; /* Pointer to last mounted file system table */ int v_proc; /* Maximum number of processes */ char* ve_proc; /* Pointer to last process table */ int v_text; /* Maximum number of shared text segments */ char* ve_text; /* Pointer to last shared text segment table */ int v_clist; /* Maximum number of clists */ int v_sabuf; /* Maximum number of system activity buffers */ int v_maxup; /* Maximum number of user processes */ int v_cmap; /* Size of core memory allocation map */ January 1992 1
uvar(2) uvar(2)int v_smap; /* Size of swap memory allocation map */ int v_hbuf; /* Maximum number of buffer headers */ int v_hmask; /* Maximum number of buffer headers -1 */ int v_flock; /* Maximum number of file locks */ int v_phys; /* Maximum number of simultaneous phys calls */ int v_clsize; /* Click size */ int v_txtrnd; /* Number of clicks per segment */ int v_bsize; /* Block size */ int v_cxmap; /* Context map size */ int v_clktick /* Clock tick */ int v_hz; /* Hz */ int v_usize; /* Size of user structure */ int v_pageshift; /* Page shift */ int v_pagemask; /* Page mask */ int v_segshift; /* Segment shift */ int v_segmask; /* Segment mask */ int v_ustart; /* Starting virtual address for user program */ int v_uend; /* Ending virtual address for user program */ char* ve_call; /* Pointer to last callout table */ int v_stkgap; /* Obsolete */ int v_cputype; /* CPU type (1=68000) */ int v_cpuver; /* CPU version ID (1=68000, 2=68010, 3=68020, 4=68030) */ int v_mmutype; /* MMU type (1=none, 2=SUN, 3=68451, 7=68030) */ int v_doffset; /* Data offset */ int v_kvoffset; /* Kernel virtual offset */ int v_svtext; /* Maximum number of text loitering segments */ char* ve_svtext; /* Pointer to last text loitering segment in table */ int v_pbuf; /* Maximum number of buffers for physio */ int v_nscatload; /* Maximum number of entries in scatter map */ int v_udot; /* Address of user structure */ int v_region; /* Number of memory regions */ int v_sptmap; /* Size of system virtual space */ int v_vhndfrac; /* Fraction of MAXMEM to set a limit for running vehand */ int v_maxpmem; /* Maximum physical memory to use */ int v_nmbufs; /* Buffers for networking */ int v_npty; /* Number of pseudo tty's */ int v_maxcore; /* Space used by kernel's heap (.../GEN/sys/heap_kmem.c) */ 2 January 1992
uvar(2) uvar(2)int v_maxheader; /* Headers used by kernel's heap (.../GEN/sys/heap_kmem.c) */ int v_nstream; /* Number of stream heads */ int v_nqueue; /* Number of stream queues */ int v_nblk4096; /* Number of of 4K stream blocks */ int v_nblk2048; /* Number of of 2K stream blocks */ int v_nblk1024; /* Number of 1K stream blocks */ int v_nblk512; /* Number of 512K stream blocks */ int v_nblk256; /* Number of 256K stream blocks */ int v_nblk64; /* Number of 64K stream blocks */ int v_nblk16; /* Number of 16 byte stream blocks */ int v_nblk4; /* Number of 4 byte stream blocks */ char* ve_proctab; /* &proc[0] */ int v_slice; /* a process's time slice */ int v_sbufsz; /* system buffer's sizes */ char* v_kernel_info; /* address of kernel_info structure */ /* Add new stuff here to avoid problems with existing programs */ int v_l1shift; /* L1 shift */ int v_lmask; /* L1 mask */ /* Padding to ensure binary compatibility even if we add fields */ int v_fill[128-71] /*sized to make var 512 bytes */ }; STATUS MESSAGES AND VALUES Upon successful completion, a value of 0 is returned. Otherwise, a value of -1 is returned and errno is set to indicate the error. The uvar command will fail if the following condition is true: EFAULT v points to an illegal address. SEE ALSO ps(1) in A/UX Command Reference January 1992 3