Linux and UNIX Man Pages

Linux & Unix Commands - Search Man Pages

autoconfig(8) [bsd man page]

AUTOCONFIG(8)						      System Manager's Manual						     AUTOCONFIG(8)

NAME
autoconfig - configure the running system to the hardware SYNOPSIS
autoconfig [-i ifile] [-n nfile] [-k kfile] [-v] [-d] [-c] DESCRIPTION
Autoconfig is called by init(8) to configure the currently running system. Init checks the exit status of autoconfig to determine if the configuration was successful. Autoconfig reads the device table /etc/dtab for a list of devices which may be on the system. It first ver- ifies that the kernel has an attach routine for each device (and therefore has a device handler) and that the kernel has a probe routine. It then checks each of these devices to see if it is present, and if it is, attempts to make it interrupt (if possible) to verify that the interrupt vector is correct. The interrupt vector is checked to see that it has not previously been used. An interrupt through any of the device's consecutive vectors is sufficient. Devices which use programmable vectors (MSCP and TMSCP) are permitted to have a value of 0 in the dtab vector field. This special value tells autoconfig to call the kernel's get next available vector routine and assign that to the device. For programmable vector devices if the dtab vector field is non 0 then the value specified in the dtab file is used. In both cases the driver is called at its xxVec() rou- tine with the vector being assigned to the device. If the address and vector are correct, it then attaches the device by passing the address and unit number to the kernel's attach routine and setting up the interrupt vector according to the interrupt handlers and priority listed in the device table. If the unit number is given as a '?' in the device table, it will be assigned the next available unit number if the device exists. If the device is not present or the vector is incorrect, and if the unit number was specified (not a '?'), then the kernel is notified that that unit is not present, preventing accesses to a nonexistent device address. There are only a few flags which are mostly useful for debugging but for completeness, here they are. -i ifile Use ifile instead of /etc/dtab as the device table. -n nfile Use nfile instead of /unix for finding the namelist of the currently running kernel. -k kfile The file kfile should be used instead of /dev/kmem to alter and read kernel memory. -v Verbose output, indicates reason for rejecting any device in the device table. Normally only attached devices are reported. -c Report error messages for devices skipped because of problems with their interrupt vectors. -d Turn on debugging mode. Shows many gory details of autoconfig's internal processing. BUGS
Devices of the same type must be listed with ascending unit numbers or with wildcards. Disks that could be root devices must have their addresses and vectors initialized in the kernel; the kernel uses a root attach entry in the block device switch to allow disk drivers to do any probes necessary before autoconfiguration. Must be run only by init(8). There is a flag set in the kernel that autoconfig has already run, running autoconfig a second time results in the error: "namelist doesn't match running kernel." Autoconfig attempts to open /dev/kmem for write. If the kernel is in securelevel 1 or higher the open of /dev/kmem will fail. FILES
/etc/dtab device table /unix /dev/kmem SEE ALSO
ucall(2), nlist(3), dtab(5) 3rd Berkeley Distribution December 30, 1992 AUTOCONFIG(8)

Check Out this Related Man Page

mem(7D) 							      Devices								   mem(7D)

NAME
mem, kmem, allkmem - physical or virtual memory access SYNOPSIS
/dev/mem /dev/kmem /dev/allkmem DESCRIPTION
The file /dev/mem is a special file that provides access to the physical memory of the computer. The file /dev/kmem is a special file that provides access to the virtual address space of the operating system kernel, excluding memory that is associated with an I/O device. The file /dev/allkmem is a special file that provides access to the virtual address space of the operating system kernel, including memory that is associated with an I/O device. You can use any of these devices to examine and modify the system. Byte addresses in /dev/mem are interpreted as physical memory addresses. Byte addresses in /dev/kmem and /dev/allkmem are interpreted as kernel virtual memory addresses. A reference to a non-existent location returns an error. See ERRORS for more information. The file /dev/mem accesses physical memory; the size of the file is equal to the amount of physical memory in the computer. This size may be larger than 4GB on a system running the 32-bit operating environment. In this case, you can access memory beyond 4GB using a series of read(2) and write(2) calls, a pread64() or pwrite64() call, or a combination of llseek(2) and read(2) or write(2). ERRORS
EFAULT Occurs when trying to write(2) a read-only location (allkmem), read(2) a write-only location (allkmem), or read(2) or write(2) a non-existent or unimplemented location (mem, kmem, allkmem). EIO Occurs when trying to read(2) or write(2) a memory location that is associated with an I/O device using the /dev/kmem special file. ENXIO Results from attempting to mmap(2) a non-existent physical (mem) or virtual (kmem, allkmem) memory address. FILES
/dev/mem Provides access to the computer's physical memory. /dev/kmem Provides access to the virtual address space of the operating system kernel, excluding memory that is associated with an I/O device. /dev/allkmem Provides access to the virtual address space of the operating system kernel, including memory that is associated with an I/O device. SEE ALSO
llseek(2), mmap(2), read(2), write(2) WARNINGS
Using these devices to modify (that is, write to) the address space of a live running operating system or to modify the state of a hardware device is extremely dangerous and may result in a system panic if kernel data structures are damaged or if device state is changed. SunOS 5.11 18 Feb 2002 mem(7D)
Man Page