struct context *scheduler; // swtch() here to enter scheduler
struct taskstate ts; // Used by x86 to find stack for interrupt
struct segdesc gdt[NSEGS]; // x86 global descriptor table
- volatile uint started; // Has the CPU started?
+ volatile uint started; // Has the CPU started?
int ncli; // Depth of pushcli nesting.
int intena; // Were interrupts enabled before pushcli?
#define T_DIR 1 // Directory
#define T_FILE 2 // File
-#define T_DEV 3 // Special device
+#define T_DEV 3 // Device
struct stat {
short type; // Type of file
- int dev; // Device number
- uint ino; // Inode number on device
+ int dev; // File system's disk device
+ uint ino; // Inode number
short nlink; // Number of links to file
uint size; // Size of file in bytes
};
for(i = 1; i < argc; i++){
if((fd = open(argv[i], 0)) < 0){
- printf(1, "cat: cannot open %s\n", argv[i]);
+ printf(1, "wc: cannot open %s\n", argv[i]);
exit();
}
wc(fd, argv[i]);