kkeerrnneell vvaarriiaabblleess -- Technical Information


The  following describes  variables set within  the COHERENT  kernel.  Each
variable is  described, and its  default setting given.  The  clock rate is
defined as  the manifest constant HHZZ  (hertz), which is set  in header file
ssyyss/ccoonnsstt.hh. Normally, this value is  set to 100, which translates into 100
ticks per second, or approximately 10 milliseconds per tick.

By using command  /ccoonnff/ppaattcchh to reset one or more  of these variables, you
can change the  behavior of the kernel.  Note that  it is possible to reset
these  variables in  such a  way  that the  kernel is  unusable, memory  is
destroyed, or  other undesirable  consequences occur.   _I_f _y_o_u _d_o  _n_o_t _k_n_o_w
exactly _w_h_a_t _y_o_u  _a_r_e _d_o_i_n_g, _y_o_u _a_r_e _w_e_l_l _a_d_v_i_s_e_d  _t_o _l_e_a_v_e _t_h_e_s_e _v_a_r_i_a_b_l_e_s
_a_l_o_n_e!

AALLLLSSIIZZEE -- Size of kernel memory allocation pool

         int ALLSIZE;
     AALLLLSSIIZZEE gives  the number of  bytes in the  kernel's memory allocation
     pool.  This  pool is  manipulated by  the functions kkaalllloocc  and kkffrreeee.
     Under COHERENT 386, AALLLLSSIIZZEE is ``auto sized'' unless patched to a non-
     zero value.

IISSTTSSIIZZEE -- Initial stack size

         int ISTSIZE = 4096;
     IISSTTSSIIZZEE specifies the size of  the user stack, in bytes.  This affects
     all processes.  It can be increased if required.  Reducing the size of
     the user's  stack may cause  programs to crash due  to stack overflow.
     The kernel stack associated with a process will not change.

     Note that  the stack size  of individual COHERENT 286  programs can be
     changed by using the command ffiixxssttaacckk.

KKBBBBOOOOTT -- Toggle MS-DOS-style booting

         int KBBOOT = 1;
     KKBBBBOOOOTT flags whether your system can be rebooted MS-DOS fashion, i.e.,
     by typing <ccttrrll><aalltt><ddeell>.  When  set to a non-zero value, it enables
     MS-DOS rebooting;  this is  the default.  You  can use ppaattcchh  to reset
     this variable to zero, as follows:

         /conf/patch /coherent KBBOOT=0
     Thereafter, typing <ccttrrll><aalltt><ddeell> displays the value of function key
     0  rather  than rebooting.   Function  key 0  defaults  to the  phrase
     ``reboot'', as a reminder  that this key normally reboots your system.
     However, this never actually prints since the system normally reboots.
     You can set  the value of function key 0  to anything you want, either
     via the  command ffnnkkeeyy or  directly in the keyboard  tables located in
     directory /ccoonnff/kkbbdd.

NNBBUUFF -- Number of blocks in buffer cache
     NNBBUUFF specifies the number of blocks  in the buffer cache.  It is auto-
     sized unless you patch it to a non-zero value.

NNCCLLIISSTT -- Number of clists

         int NCLIST = 64;
     NNCCLLIISSTT specifies  the number of  clists in kernel  memory.  clists are
     used by the canonical tty routines to store input/output data.

NNIINNOODDEE -- Number of in-memory i-nodes

         int NINODE = 128;
     NNIINNOODDEE  specifies  the maximum  number  of i-nodes  that  can be  open
     simultaneously.

NNMMSSCC -- Number of characters per message

         int NMSC = 640;
     NNMMSSCC gives the maximum number of characters per message.

NNMMSSGG -- Number of message buffers

         int NMSG = 10;
     NNMMSSGG gives the number of message buffers allocated.

NNMMSSQQBB -- Maximum characters per message queue

         int NMSQB = 2048;
     NNMMSSQQBB gives the default maximum number of bytes of messages on any one
     message queue.

NNMMSSQQIIDD -- Maximum number of message queues

         int NMSQID = 9;
     NNMMSSQQIIDD specifies the maximum number of message queues in the system.

NNPPOOLLLL -- Number of simultaneous pending polls

         int NPOLL = 0;
     NNPPOOLLLL  specifies  the maximum  number  of polls  that  can be  pending
     simultaneously.   If it  is zero,  dynamic  allocation will  occur, in
     groups of  32 pending polls.   You increase variable  AALLLLSSIIZZEE by eight
     bytes per pending poll.

PPHHYYSS_MMEEMM -- Amount of memory reserved for drivers
     This variable  is an iinntt. Its  value is the number  of bytes needed in
     the block of physically contiguous memory reserved for special-purpose
     device drivers.  To change  the amount of memory reserved, execute the
     command:

         /conf/patch -v /coherent PHYS_MEM=_x_x_x_x
     /ccoohheerreenntt may  be replaced with the name of  any bootable kernel file.
     _x_x_x_x  is  the  number  of   bytes  desired  This  may  be  decimal  or
     hexadecimal; the latter form must begin with `0x'.

VVIIDDSSLLOOWW -- Slow (no snow) video updates

         int VIDSLOW = 0;
     Set VVIIDDSSLLOOWW  to non-zero  to enable  video memory updates  only during
     vertical retrace.   This reduces snow  on the display  with some older
     video controller cards.

ccoonnddeevv -- Console device

         dev_t condev = makedev(2,0);
     ccoonnddeevv  specifies the  console  device that  the  kernel's  pprriinnttff  or
     ppuuttcchhaarr routines  write to.  This normally  is the memory-mapped video
     driver, but  it can be  mapped to any terminal  driver that recognizes
     data  written from  the kernel's  data segment.   The drivers  for the
     ccoonnssoollee  and sseerriiaall  devices are currently  supported as  the kernel's
     console devices.

ccpprrooccpp -- Pointer to current process

         PROC *cprocp;
     ccpprrooccpp points  to the pprroocc structure that is  associated with the user
     process that is currently executing.

ddrrvvll -- Device driver list

         #include <sys/con.h>
         #include <sys/param.h>
         DRV drvl[drvn];
     ddrrvvll is an array  that references device drivers.  Field dd_ccoonnpp points
     to a  table of driver  access routines, or  is NULL.  Field  dd_ttiimmee is
     non-zero if the driver timed routine is to be invoked once per second.

ddrrvvnn -- Number of device drivers

         int ddrrvvnn;
     ddrrvvnn  gives the  maximum  number of  device drivers  available to  the
     kernel.

llbboolltt -- Clock ticks since system startup (lightning bolt)

         time_t lbolt;
     llbboolltt is the number of clock ticks since system startup.  A clock tick
     normally occurs HHZZ times per second.

ppiippeeddeevv -- File system used for pipes

         dev_t pipedev;
     ppiippeeddeevv gives  the file system to  be used for pipes.   It is normally
     the same as rroooottddeevv (the root device).

rroonnffllaagg -- Root file system is read-only

         int ronflag;
     If  rroonnffllaagg is  set to  non-zero, the root  file system  has read-only
     access.

rroooottddeevv -- File system used for root device

         dev_t rootdev;
     rroooottddeevv specifies the root file system's device.

_S_e_e _A_l_s_o
ddeevviiccee ddrriivveerrss
