# HG changeset patch # User Jim Meyering # Date 973611364 0 # Node ID a10dfacbdaf363bf520aa11dee0fe9028fc13de1 # Parent 55c4d2d014e4a519828c326823966148859d231c . diff -r 55c4d2d014e4 -r a10dfacbdaf3 lib/tru-knlist-demo.c --- a/lib/tru-knlist-demo.c Tue Nov 07 15:35:25 2000 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,70 +0,0 @@ -/* Derived from the example in the OSF1 knlist manpage. - OSF1 spe154.testdrive.compaq.com V5.0 1094 alpha - aka (w/my private hostname compaq-tru64-50a) */ -#include -#include -#include -#include - -#ifndef FD_CLOEXEC -# define FD_CLOEXEC 1 -#endif - -#ifndef LDAV_SYMBOL -# define LDAV_SYMBOL "_avenrun" -#endif - -int -main () -{ - struct nlist nl[2]; - int retval; - long offset; - - nl[0].n_name = LDAV_SYMBOL; - nl[1].n_name = ""; - - /*******************************************************/ - /* 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"); - exit (1); - } - - if (nl[0].n_type == 0) - { - printf ("Unable to return address of symbol %s\n", nl[0].n_name); - exit (1); - } - - offset = nl[0].n_value; - printf ("The address of symbol %s is %lx\n", nl[0].n_name, offset); - - { - double load_ave[3]; - int channel = open ("/dev/kmem", 0); - if (channel < 0) - { - printf ("open failed\n"); - exit (1); - } -#ifdef FD_SETFD - (void) fcntl (channel, F_SETFD, FD_CLOEXEC); -#endif - - if (lseek (channel, offset, 0) == -1L - || read (channel, (char *) load_ave, sizeof (load_ave)) - != sizeof (load_ave)) - { - close (channel); - } - } - - exit (0); -}