Linux and UNIX Man Pages

Linux & Unix Commands - Search Man Pages

kloadsrv(8) [osf1 man page]

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

NAME
kloadsrv - Kernel load server SYNOPSIS
/sbin/kloadsrv [-V] [-f] [-d debug-level] [-log logfile] [-p kernel-package-name] [kernel-object-filename] FLAGS
Displays the version of the kloadsrv command. Causes kloadsrv to remain in the foreground. Specifies the level of debugging information. The debug-level is a small integer. Zero disables debugging. Nonzero values from one to higher levels cause kloadsrv to display various log messages. Specifies that the debugging information is to be sent to the specified log file. Logfile should be specified as a full pathname. By default, the debugging information is sent to /dev/console. Specifies the name of the default kernel package. DESCRIPTION
The kloadsrv command loads kernel modules into the kernel. It is typically started during system startup. If you omit the kernel-object- filename from the startup command line, the kloadsrv daemon uses the running kernel. During its initialization, kloadsrv builds a list of kernel symbols that device drivers can use. Moving or overwriting the kernel object file in single user mode can cause this list of symbols to contain inaccurate addresses. The addresses in the list reflect the addresses in the new kernel, not the addresses in the booted kernel. Each symbol exported by the kernel belongs to the kernel package. This package is named kernel, unless you use the -p flag. Once kloadsrv has successfully initialized itself, it puts itself into the background and enters its server loop, where it waits to receive and respond to load requests, unload requests, and query requests. If you specify the -f flag, the command remains in the foreground. RELATED INFORMATION
Commands: cfgmgr(8), sysconfig(8), sysconfigdb(8) delim off kloadsrv(8)

Check Out this Related Man Page

knlist(3)						     Library Functions Manual							 knlist(3)

NAME
knlist - Look up symbols in the currently running kernel LIBRARY
Standard C Library (libc.a, libc.so) SYNOPSIS
#include <nlist.h> int knlist( struct nlist namelist); PARAMETERS
On input, lists the symbol names for which you are requesting addresses. The namelist must be terminated with a null name at end. Without a terminating null name at end, knlist() cannot determine how many symbols there are in the namelist and therefore it may dump core. On return, contains a list of symbol addresses (or 0 if the attempt to find the addresses was unsuccessful). DESCRIPTION
The knlist() library routine looks up addresses of kernel symbols in the currently running kernel. In addition to finding symbols associ- ated with the kernel image, knlist() will also find symbols defined in dynamically loaded subsystems. Communication with the knlist() routine occurs using an array of type struct nlist. The <nlist.h> header file declares that type as fol- lows: struct nlist{ char *n_name; unsigned long n_value; short n_type; /* 0 if not there, 1 if found */ short reserved; }; When your application calls knlist() it passes the names of symbols in the n_name field of the structure. For each symbol, the knlist() routine attempts to determine its current address in memory. If the routine can determine the address of the symbol, it returns that address in the n_value field, and it returns one(1) in the n_type field. If the routine cannot determine the address, it returns zero(0) in both the n_value field and the n_type field. For BSD compatibility, the knlist routine allows symbol names to be preceded by an underscore. If it does not find a symbol that matches the name as specified, knlist attempts to locate the symbol name with the leading underscore removed. EXAMPLES
The following example illustrates the use of the knlist() routine: #include <stdio.h> #include <string.h> #include <stdlib.h> #include <nlist.h> main () { struct nlist nl[3]; int retval, i; nl[0].n_name = (char *)malloc(10); nl[1].n_name = (char *)malloc(10); nl[2].n_name = ""; /*******************************************************/ /* Store names of kernel symbols in the nl array */ strcpy (nl[0].n_name, "ncpus"); strcpy (nl[1].n_name, "lockmode"); /*******************************************************/ /* Call the knlist routine */ retval = knlist(nl); /******************************************************/ /* Display addresses if returned. Otherwise, display */ /* the appropriate error message. */ if (retval < 0) printf ("No kernel symbol addresses returned. "); else if (retval >= 0 ) for (i=0; i<2; i++) if (nl[i].n_type == 0) printf ("Unable to return address of symbol %s ", nl[i].n_name); else printf ("The address of symbol %s is %lx ", nl[i].n_name, nl[i].n_value); free (nl[0].n_name); free (nl[1].n_name); } This example tests the return value from the knlist() routine. If the routine returns an error status, a message is displayed to the application user. Otherwise, the application checks the status of each kernel symbol. If the knlist() routine was unable to return an address, the application displays a message and the symbol name. If the knlist() routine returns an address, the application displays the symbol name and address to the application user. RETURN VALUES
The knlist() routine returns zero on success. The routine returns -1 if it was unable to connect to the kloadsrv daemon. In this case, the routine was unable to determine any of the requested addresses. The routine returns a positive integer if it successfully finds some addresses and fails to find others. The integer value indicates the number of addresses knlist() was unable to return. The routine returns the negative value of EINVAL if the argument is bad. RELATED INFORMATION
Routines: nlist(3) delim off knlist(3)
Man Page