kernel/defs.h

185 lines
1struct buf;2struct context;3struct file;4struct inode;5struct pipe;6struct proc;7struct spinlock;8struct sleeplock;9struct stat;10struct superblock;1112// bio.c13void            binit(void);14struct buf*     bread(uint, uint);15void            brelse(struct buf*);16void            bwrite(struct buf*);17void            bpin(struct buf*);18void            bunpin(struct buf*);1920// console.c21void            consoleinit(void);22void            consoleintr(int);23void            consputc(int);2425// exec.c26int             kexec(char*, char**);2728// file.c29struct file*    filealloc(void);30void            fileclose(struct file*);31struct file*    filedup(struct file*);32void            fileinit(void);33int             fileread(struct file*, uint64, int n);34int             filestat(struct file*, uint64 addr);35int             filewrite(struct file*, uint64, int n);3637// fs.c38void            fsinit(int);39int             dirlink(struct inode*, char*, uint);40struct inode*   dirlookup(struct inode*, char*, uint*);41struct inode*   ialloc(uint, short);42struct inode*   idup(struct inode*);43void            iinit();44void            ilock(struct inode*);45void            iput(struct inode*);46void            iunlock(struct inode*);47void            iunlockput(struct inode*);48void            iupdate(struct inode*);49int             namecmp(const char*, const char*);50struct inode*   namei(char*);51struct inode*   nameiparent(char*, char*);52int             readi(struct inode*, int, uint64, uint, uint);53void            stati(struct inode*, struct stat*);54int             writei(struct inode*, int, uint64, uint, uint);55void            itrunc(struct inode*);56void            ireclaim(int);5758// kalloc.c59void*           kalloc(void);60void            kfree(void *);61void            kinit(void);6263// log.c64void            initlog(int, struct superblock*);65void            log_write(struct buf*);66void            begin_op(void);67void            end_op(void);6869// pipe.c70int             pipealloc(struct file**, struct file**);71void            pipeclose(struct pipe*, int);72int             piperead(struct pipe*, uint64, int);73int             pipewrite(struct pipe*, uint64, int);7475// printf.c76int             printf(char*, ...) __attribute__ ((format (printf, 1, 2)));77void            panic(char*) __attribute__((noreturn));78void            printfinit(void);7980// proc.c81int             cpuid(void);82void            kexit(int);83int             kfork(void);84int             growproc(int);85void            proc_mapstacks(pagetable_t);86pagetable_t     proc_pagetable(struct proc *);87void            proc_freepagetable(pagetable_t, uint64);88int             kkill(int);89int             killed(struct proc*);90void            setkilled(struct proc*);91struct cpu*     mycpu(void);92struct proc*    myproc();93void            procinit(void);94void            scheduler(void) __attribute__((noreturn));95void            sched(void);96void            sleep(void*, struct spinlock*);97void            userinit(void);98int             kwait(uint64);99void            wakeup(void*);100void            yield(void);101int             either_copyout(int user_dst, uint64 dst, void *src, uint64 len);102int             either_copyin(void *dst, int user_src, uint64 src, uint64 len);103void            procdump(void);104105// swtch.S106void            swtch(struct context*, struct context*);107108// spinlock.c109void            acquire(struct spinlock*);110int             holding(struct spinlock*);111void            initlock(struct spinlock*, char*);112void            release(struct spinlock*);113void            push_off(void);114void            pop_off(void);115116// sleeplock.c117void            acquiresleep(struct sleeplock*);118void            releasesleep(struct sleeplock*);119int             holdingsleep(struct sleeplock*);120void            initsleeplock(struct sleeplock*, char*);121122// string.c123int             memcmp(const void*, const void*, uint);124void*           memmove(void*, const void*, uint);125void*           memset(void*, int, uint);126char*           safestrcpy(char*, const char*, int);127int             strlen(const char*);128int             strncmp(const char*, const char*, uint);129char*           strncpy(char*, const char*, int);130131// syscall.c132void            argint(int, int*);133int             argstr(int, char*, int);134void            argaddr(int, uint64 *);135int             fetchstr(uint64, char*, int);136int             fetchaddr(uint64, uint64*);137void            syscall();138139// trap.c140extern uint     ticks;141void            trapinit(void);142void            trapinithart(void);143extern struct spinlock tickslock;144void            prepare_return(void);145146// uart.c147void            uartinit(void);148void            uartintr(void);149void            uartwrite(char [], int);150void            uartputc_sync(int);151int             uartgetc(void);152153// vm.c154void            kvminit(void);155void            kvminithart(void);156void            kvmmap(pagetable_t, uint64, uint64, uint64, int);157int             mappages(pagetable_t, uint64, uint64, uint64, int);158pagetable_t     uvmcreate(void);159uint64          uvmalloc(pagetable_t, uint64, uint64, int);160uint64          uvmdealloc(pagetable_t, uint64, uint64);161int             uvmcopy(pagetable_t, pagetable_t, uint64);162void            uvmfree(pagetable_t, uint64);163void            uvmunmap(pagetable_t, uint64, uint64, int);164void            uvmclear(pagetable_t, uint64);165pte_t *         walk(pagetable_t, uint64, int);166uint64          walkaddr(pagetable_t, uint64);167int             copyout(pagetable_t, uint64, char *, uint64);168int             copyin(pagetable_t, char *, uint64, uint64);169int             copyinstr(pagetable_t, char *, uint64, uint64);170int             ismapped(pagetable_t, uint64);171uint64          vmfault(pagetable_t, uint64, int);172173// plic.c174void            plicinit(void);175void            plicinithart(void);176int             plic_claim(void);177void            plic_complete(int);178179// virtio_disk.c180void            virtio_disk_init(void);181void            virtio_disk_rw(struct buf *, int);182void            virtio_disk_intr(void);183184// number of elements in fixed-size array185#define NELEM(x) (sizeof(x)/sizeof((x)[0]))186