- sizeSysmap = nl[SSYSSIZE].n_value * sizeof( struct pte);
- Sysmap = (struct pte *)calloc( sizeSysmap, 1);
- lseek( kmem, clear( nl[SSYSMAP].n_value), 0);
- if( read( kmem, Sysmap, sizeSysmap) != sizeSysmap)
- {
- printf( "Cant read system page table\n");
- exit(1);
- }
- }
- if( kflg && (loc&0x80000000))
- {/* do mapping for kernel virtual addresses */
- struct pte *ptep;
-
- loc &= 0x7fffffff;
- ptep = &Sysmap[btop(loc)];
- if( (char *)ptep - (char *)Sysmap > sizeSysmap)
- {
- printf( "no system pte for %s\n", loc);
- exit(1);
- }
- if( ptep->pg_v == 0)
- {
- printf( "system pte invalid for %x\n", loc);
- exit(1);
- }
- loc = (off_t)((loc&PGOFSET) + ptob(ptep->pg_pfnum));
- }
- (void) lseek(fd, (long)loc, off);
+ (void)lseek(kmem, (off_t)loc, L_SET);
+ if (read(kmem, (char *)&word, sizeof(word)) != sizeof(word))
+ rerr2(errno, (int)loc, "word");
+ return(word);
+}
+
+static
+usage()
+{
+ fputs("usage: fstat [-u user] [-p pid] [filename ...]\n", stderr);
+ exit(1);