diff options
author | rtm <rtm> | 2006-08-10 22:08:14 +0000 |
---|---|---|
committer | rtm <rtm> | 2006-08-10 22:08:14 +0000 |
commit | 5be0039ce9e22f140a29e167526c64c723c5be3c (patch) | |
tree | 4096ed2b728cbee37dd2adee06e83f0e908f72b6 /defs.h | |
parent | 8a8be1b8c36e38f58f8ba3e425b6e701ad65abf3 (diff) | |
download | xv6-labs-5be0039ce9e22f140a29e167526c64c723c5be3c.tar.gz xv6-labs-5be0039ce9e22f140a29e167526c64c723c5be3c.tar.bz2 xv6-labs-5be0039ce9e22f140a29e167526c64c723c5be3c.zip |
interrupts could be recursive since lapic_eoi() called before rti
so fast interrupts overflow the kernel stack
fix: cli() before lapic_eoi()
Diffstat (limited to 'defs.h')
-rw-r--r-- | defs.h | 5 |
1 files changed, 5 insertions, 0 deletions
@@ -10,6 +10,7 @@ void panic(char *s); void kbd_intr(void); // proc.c +void pinit(void); struct proc; struct jmpbuf; void setupsegs(struct proc *); @@ -67,6 +68,7 @@ void ioapic_enable (int irq, int cpu); // spinlock.c struct spinlock; +void initlock(struct spinlock *, char *); void acquire(struct spinlock*); void release(struct spinlock*); int holding(struct spinlock*); @@ -83,6 +85,7 @@ int pipe_write(struct pipe *p, char *addr, int n); int pipe_read(struct pipe *p, char *addr, int n); // fd.c +void fd_init(void); int fd_ualloc(void); struct fd * fd_alloc(void); void fd_close(struct fd *); @@ -97,6 +100,7 @@ void* ide_start_rw(int diskno, uint secno, void *dst, uint nsecs, int read); int ide_finish(void *); // bio.c +void binit(void); struct buf; struct buf *getblk(void); struct buf *bread(uint, uint); @@ -104,6 +108,7 @@ void bwrite(uint, struct buf *, uint); void brelse(struct buf *); // fs.c +void iinit(void); struct inode * iget(uint dev, uint inum); void ilock(struct inode *ip); void iunlock(struct inode *ip); |