knlist man page on Tru64

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

knlist(3)							     knlist(3)

NAME
       knlist - look up symbols in the currently running kernel

SYNOPSIS
       #include <nlist.h>

       int knlist(
	       struct nlist namelist );

LIBRARY
       Standard C Library (libc.a, libc.so)

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 are in the namelist and therefore 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 associated
       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 follows:

       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 sym‐
       bol, 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.

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 rou‐
       tine  was  unable to determine any of the requested addresses. The rou‐
       tine 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.

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.\n");
	  else
	     if (retval >= 0 )
		for (i=0; i<2; i++)
		    if (nl[i].n_type == 0)
			printf ("Unable to return address of symbol %s\n",
				nl[i].n_name);
		    else
			printf ("The address of symbol %s is %lx\n",
				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 applica‐
       tion 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.

SEE ALSO
       Routines: nlist(3)

								     knlist(3)
[top]
                             _         _         _ 
                            | |       | |       | |     
                            | |       | |       | |     
                         __ | | __ __ | | __ __ | | __  
                         \ \| |/ / \ \| |/ / \ \| |/ /  
                          \ \ / /   \ \ / /   \ \ / /   
                           \   /     \   /     \   /    
                            \_/       \_/       \_/ 
More information is available in HTML format for server Tru64

List of man pages available for Tru64

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