root/defs.h

/* [previous][next][first][last][top][bottom][index][help]  */

INCLUDED FROM


   1 struct buf;
   2 struct context;
   3 struct file;
   4 struct inode;
   5 struct pipe;
   6 struct proc;
   7 struct rtcdate;
   8 struct spinlock;
   9 struct sleeplock;
  10 struct stat;
  11 struct superblock;
  12 
  13 // bio.c
  14 void            binit(void);
  15 struct buf*     bread(uint, uint);
  16 void            brelse(struct buf*);
  17 void            bwrite(struct buf*);
  18 
  19 // console.c
  20 void            consoleinit(void);
  21 void            cprintf(char*, ...);
  22 void            consoleintr(int(*)(void));
  23 void            panic(char*) __attribute__((noreturn));
  24 
  25 // exec.c
  26 int             exec(char*, char**);
  27 
  28 // file.c
  29 struct file*    filealloc(void);
  30 void            fileclose(struct file*);
  31 struct file*    filedup(struct file*);
  32 void            fileinit(void);
  33 int             fileread(struct file*, char*, int n);
  34 int             filestat(struct file*, struct stat*);
  35 int             filewrite(struct file*, char*, int n);
  36 
  37 // fs.c
  38 void            readsb(int dev, struct superblock *sb);
  39 int             dirlink(struct inode*, char*, uint);
  40 struct inode*   dirlookup(struct inode*, char*, uint*);
  41 struct inode*   ialloc(uint, short);
  42 struct inode*   idup(struct inode*);
  43 void            iinit(int dev);
  44 void            ilock(struct inode*);
  45 void            iput(struct inode*);
  46 void            iunlock(struct inode*);
  47 void            iunlockput(struct inode*);
  48 void            iupdate(struct inode*);
  49 int             namecmp(const char*, const char*);
  50 struct inode*   namei(char*);
  51 struct inode*   nameiparent(char*, char*);
  52 int             readi(struct inode*, char*, uint, uint);
  53 void            stati(struct inode*, struct stat*);
  54 int             writei(struct inode*, char*, uint, uint);
  55 
  56 // ide.c
  57 void            ideinit(void);
  58 void            ideintr(void);
  59 void            iderw(struct buf*);
  60 
  61 // ioapic.c
  62 void            ioapicenable(int irq, int cpu);
  63 extern uchar    ioapicid;
  64 void            ioapicinit(void);
  65 
  66 // kalloc.c
  67 char*           kalloc(void);
  68 void            kfree(char*);
  69 void            kinit1(void*, void*);
  70 void            kinit2(void*, void*);
  71 
  72 // kbd.c
  73 void            kbdintr(void);
  74 
  75 // lapic.c
  76 void            cmostime(struct rtcdate *r);
  77 int             lapicid(void);
  78 extern volatile uint*    lapic;
  79 void            lapiceoi(void);
  80 void            lapicinit(void);
  81 void            lapicstartap(uchar, uint);
  82 void            microdelay(int);
  83 
  84 // log.c
  85 void            initlog(int dev);
  86 void            log_write(struct buf*);
  87 void            begin_op();
  88 void            end_op();
  89 
  90 // mp.c
  91 extern int      ismp;
  92 void            mpinit(void);
  93 
  94 // picirq.c
  95 void            picenable(int);
  96 void            picinit(void);
  97 
  98 // pipe.c
  99 int             pipealloc(struct file**, struct file**);
 100 void            pipeclose(struct pipe*, int);
 101 int             piperead(struct pipe*, char*, int);
 102 int             pipewrite(struct pipe*, char*, int);
 103 
 104 //PAGEBREAK: 16
 105 // proc.c
 106 int             cpuid(void);
 107 void            exit(void);
 108 int             fork(void);
 109 int             growproc(int);
 110 int             kill(int);
 111 struct cpu*     mycpu(void);
 112 struct proc*    myproc();
 113 void            pinit(void);
 114 void            procdump(void);
 115 void            scheduler(void) __attribute__((noreturn));
 116 void            sched(void);
 117 void            setproc(struct proc*);
 118 void            sleep(void*, struct spinlock*);
 119 void            userinit(void);
 120 int             wait(void);
 121 void            wakeup(void*);
 122 void            yield(void);
 123 
 124 // swtch.S
 125 void            swtch(struct context**, struct context*);
 126 
 127 // spinlock.c
 128 void            acquire(struct spinlock*);
 129 void            getcallerpcs(void*, uint*);
 130 int             holding(struct spinlock*);
 131 void            initlock(struct spinlock*, char*);
 132 void            release(struct spinlock*);
 133 void            pushcli(void);
 134 void            popcli(void);
 135 
 136 // sleeplock.c
 137 void            acquiresleep(struct sleeplock*);
 138 void            releasesleep(struct sleeplock*);
 139 int             holdingsleep(struct sleeplock*);
 140 void            initsleeplock(struct sleeplock*, char*);
 141 
 142 // string.c
 143 int             memcmp(const void*, const void*, uint);
 144 void*           memmove(void*, const void*, uint);
 145 void*           memset(void*, int, uint);
 146 char*           safestrcpy(char*, const char*, int);
 147 int             strlen(const char*);
 148 int             strncmp(const char*, const char*, uint);
 149 char*           strncpy(char*, const char*, int);
 150 
 151 // syscall.c
 152 int             argint(int, int*);
 153 int             argptr(int, char**, int);
 154 int             argstr(int, char**);
 155 int             fetchint(uint, int*);
 156 int             fetchstr(uint, char**);
 157 void            syscall(void);
 158 
 159 // timer.c
 160 void            timerinit(void);
 161 
 162 // trap.c
 163 void            idtinit(void);
 164 extern uint     ticks;
 165 void            tvinit(void);
 166 extern struct spinlock tickslock;
 167 
 168 // uart.c
 169 void            uartinit(void);
 170 void            uartintr(void);
 171 void            uartputc(int);
 172 
 173 // vm.c
 174 void            seginit(void);
 175 void            kvmalloc(void);
 176 pde_t*          setupkvm(void);
 177 char*           uva2ka(pde_t*, char*);
 178 int             allocuvm(pde_t*, uint, uint);
 179 int             deallocuvm(pde_t*, uint, uint);
 180 void            freevm(pde_t*);
 181 void            inituvm(pde_t*, char*, uint);
 182 int             loaduvm(pde_t*, char*, struct inode*, uint, uint);
 183 pde_t*          copyuvm(pde_t*, uint);
 184 void            switchuvm(struct proc*);
 185 void            switchkvm(void);
 186 int             copyout(pde_t*, uint, void*, uint);
 187 void            clearpteu(pde_t *pgdir, char *uva);
 188 
 189 // number of elements in fixed-size array
 190 #define NELEM(x) (sizeof(x)/sizeof((x)[0]))

/* [previous][next][first][last][top][bottom][index][help]  */