master man page on IRIX

Man page or keyword search:  
man Server   31559 pages
apropos Keyword Search (all sections)
Output format
IRIX logo
[printable version]



master(4)							     master(4)

NAME
     master - master configuration database

DESCRIPTION
     The master configuration database is a collection of files.  Each file
     contains configuration information for a device or module that can be
     included in the system.  A file is named with the module name to which it
     applies.  This collection of files is maintained in a directory called
     /var/sysgen/master.d.  Each individual file has an identical format.  For
     convenience, this collection of files is referred to as the master file,
     as though it was a single file.  This allows a reference to the master
     file to be understood to mean the individual file in the master.d
     directory that corresponds to the name of a device or module.

     The master file is used by the lboot(1M) program to obtain device
     information to generate the device driver and configurable module files.
     master consists of two parts; they are separated by a line with a dollar
     sign ($) in column 1.  Part 1 contains device information for both
     hardware and software devices and loadable modules.  Part 2 contains
     parameter declarations.  Any line with an asterisk (*) in column 1 is
     treated as a comment.

   Part 1, Description
     Hardware devices, software drivers, and loadable modules are defined with
     a line containing the following information.  Field 1 must begin in the
     leftmost position on the line.  Fields are separated by white space (tab
     or blank).

     Field 1:	Element characteristics:
		o   specify only once
		r   required device
		b   block device
		c   character device
		t   initialize cdevsw[].d_ttys
		j   filesystem
		s   software driver
		f   STREAMS driver
		m   STREAMS module
		x   not a driver; a loadable module
		k   kernel module
		u   a stubs module that is loaded after all other normal
		    modules
		n   driver is fully semaphored for multi-processor operation;
		    the n and p directives are ignored on single-processor
		    systems
		p   driver is not semaphored and should run on only one
		    processor
		w   driver is prepared to perform any cache write back
		    operation required on write data passed via the strategy
		    routine

									Page 1

master(4)							     master(4)

		d   dynamically loadable kernel module
		R   auto-registrable dynamically loadable kernel module
		N   don't allow auto-unload of dynamically loadable kernel
		    module
		D   load, then unload a dynamically loadable kernel module
		e   ethernet driver

     Field 2:	Handler prefix (14 characters maximum).

     Field 3:	Software driver external major number; a dash (-) if not a
		software driver or to be assigned during execution of
		lboot(1M).  Multiple major numbers can be specified, separated
		by commas.

     Field 4:	Number of sub-devices per device; a dash (-) if none.

     Field 5:	Dependency list (optional); this is a comma-separated list of
		other drivers or modules that must be present in the
		configuration if this module is to be included

     For each module, two classes of information are required by lboot(1M):
     external routine references and variable definitions.  Routine lines
     begin with white space and immediately follow the initial module
     specification line.  These lines are free form, thus they can be
     continued arbitrarily between non-blank tokens as long as the first
     character of a line is white space.  Variable definition lines begin
     after a line that contains a $ in column one.  Variable definitions
     follow C language conventions, with slight modifications.

   Part 1, Routine Reference Lines
     If the IRIX system kernel or other dependent module contains external
     references to a module, but the module is not configured, these external
     references are undefined.	Therefore, the routine reference lines are
     used to provide the information necessary to generate appropriate dummy
     functions at boot time when the driver is not loaded.

     Routine references are defined as follows:

     Field 1:	Routine name ()

     Field 2:	The routine type; one of
		{}	    routine_name(){}
		{nulldev}   routine_name(){nulldev();}
		{nosys}	    routine_name(){return nosys();}
		{nodev}	    routine_name(){return nodev();}
		{false}	    routine_name(){return 0;}
		{true}	    routine_name(){return 1;}
		{fsnull}    routine_name(){return fsnull();}
		{fsstray}   routine_name(){return fsstray();}
		{nopkg}	    routine_name(){nopkg();}

									Page 2

master(4)							     master(4)

		{noreach}   routine_name(){noreach();}

   Part 2, Variables
     Variables can be declared and (optionally) statically initialized on
     lines after a line whose first character is a dollar sign ($).  Variable
     definitions follow standard C syntax for global declarations, with the
     following inline substitutions:

     ##M   The internal major number assigned to the current module if it is a
	   device driver; zero if this module is not a device driver.

     ##E   The external major number assigned to the current module; either
	   explicitly defined by the current master file entry, or assigned by
	   lboot(1M).

     ##C   The number of controllers present; this number is determined
	   dynamically by lboot(1M) for hardware devices, or by the number
	   provided in the system file for non-hardware drivers or modules.

     ##D   The number of devices per controller taken directly from the
	   current master file entry.

EXAMPLES
     A sample master file for a shared memory module is named shm.  The module
     is an optional loadable software module that can only be specified once.
     The module prefix is shm, and it has no major number associated with it.
     In addition, another module named ipc is necessary for the correct
     operation of this module.

	  *FLAG PREFIX SOFT #DEV DEPENDENCIES
	  ox	shm    -     -	  ipc
			 shmsys(){nosys}
			 shmexec(){}
			 shmexit(){}
			 shmfork(){}
			 shmslp(){true}
			 shmtext(){}
	  $
	  #define SHMMAX 131072
	  #define SHMMIN 1
	  #define SHMMNI 100
	  #define SHMSEG 6
	  #define SHMALL 512

	  struct shmid_ds shmem[SHMMNI];
	  struct shminfo shminfo = {
	       SHMMAX,
	       SHMMIN,
	       SHMMNI,
	       SHMSEG,
	       SHMALL,
	  };

									Page 3

master(4)							     master(4)

     This master file causes routines named shmsys, shmexec, and so on to be
     generated by the boot program if the shm driver is not loaded and there
     is a reference to this routine from any other module loaded.  When the
     driver is loaded, the structure array shmem is allocated, and the
     structure shminfo is allocated and initialized as specified.

     A sample master file for a VME disk driver is named dkip.	The driver is
     a block and a character device, the driver prefix is dkip, and the
     external major number is 4.  The VME interrupt priority level and vector
     numbers are declared in the system file /var/sysgen/system (see
     lboot(1M)).

	  *FLAG PREFIX SOFT #DEV DEPENDENCIES
	  bc	dkip   4    -	 io

	  $$$
	  /* disk driver variable tables */
	  #include "sys/dvh.h"
	  #include "sys/dkipreg.h"
	  #include "sys/elog.h"

	  struct iotime dkipiotime[##C][DKIPUPC]; /* io statistics */
	  struct iobuf dkipctab[##C];		  /* controller queues */
	  struct iobuf dkiputab[##C][DKIPUPC];	  /* drive queues */
	  int dkipmajor = ##E;			  /* external major # */

     This master file causes entries in the block and character device switch
     tables to be generated if this module is loaded.  Since this is a
     hardware device (implied by the block and character flags), VME interrupt
     structures are also generated by the boot program.	 The declared arrays
     are all sized to the number of controllers present, which is determined
     by the boot program based on information in the system file
     /var/sysgen/system.

FILES
     /var/sysgen/master.d/*
     /var/sysgen/system

SEE ALSO
     lboot(1M), mload(4), system(4).

									Page 4

[top]

List of man pages available for IRIX

Copyright (c) for man pages and the logo by the respective OS vendor.

For those who want to learn more, the polarhome community provides shell access and support.

[legal] [privacy] [GNU] [policy] [cookies] [netiquette] [sponsors] [FAQ]
Tweet
Polarhome, production since 1999.
Member of Polarhome portal.
Based on Fawad Halim's script.
....................................................................
Vote for polarhome
Free Shell Accounts :: the biggest list on the net