提交 3341e30f 创建 作者: rsc's avatar rsc

nit

上级 a759b8a4
...@@ -5,7 +5,7 @@ ...@@ -5,7 +5,7 @@
char buf[512]; char buf[512];
void void
rfile(int fd) cat(int fd)
{ {
int n; int n;
...@@ -23,7 +23,7 @@ main(int argc, char *argv[]) ...@@ -23,7 +23,7 @@ main(int argc, char *argv[])
int fd, i; int fd, i;
if(argc <= 1) { if(argc <= 1) {
rfile(0); cat(0);
exit(); exit();
} }
...@@ -32,7 +32,7 @@ main(int argc, char *argv[]) ...@@ -32,7 +32,7 @@ main(int argc, char *argv[])
printf(1, "cat: cannot open %s\n", argv[i]); printf(1, "cat: cannot open %s\n", argv[i]);
exit(); exit();
} }
rfile(fd); cat(fd);
close(fd); close(fd);
} }
exit(); exit();
......
#define O_CREATE 0x200
#define O_RDONLY 0x000 #define O_RDONLY 0x000
#define O_WRONLY 0x001 #define O_WRONLY 0x001
#define O_RDWR 0x002 #define O_RDWR 0x002
#define O_CREATE 0x200
...@@ -205,7 +205,7 @@ ilock(struct inode *ip) ...@@ -205,7 +205,7 @@ ilock(struct inode *ip)
if(!(ip->flags & I_VALID)){ if(!(ip->flags & I_VALID)){
bp = bread(ip->dev, IBLOCK(ip->inum)); bp = bread(ip->dev, IBLOCK(ip->inum));
dip = &((struct dinode*)(bp->data))[ip->inum % IPB]; dip = (struct dinode*)bp->data + ip->inum%IPB;
ip->type = dip->type; ip->type = dip->type;
ip->major = dip->major; ip->major = dip->major;
ip->minor = dip->minor; ip->minor = dip->minor;
...@@ -275,7 +275,7 @@ ialloc(uint dev, short type) ...@@ -275,7 +275,7 @@ ialloc(uint dev, short type)
readsb(dev, &sb); readsb(dev, &sb);
for(inum = 1; inum < sb.ninodes; inum++) { // loop over inode blocks for(inum = 1; inum < sb.ninodes; inum++) { // loop over inode blocks
bp = bread(dev, IBLOCK(inum)); bp = bread(dev, IBLOCK(inum));
dip = (struct dinode*)(bp->data) + inum%IPB; dip = (struct dinode*)bp->data + inum%IPB;
if(dip->type == 0) { // a free inode if(dip->type == 0) { // a free inode
memset(dip, 0, sizeof(*dip)); memset(dip, 0, sizeof(*dip));
dip->type = type; dip->type = type;
...@@ -296,7 +296,7 @@ iupdate(struct inode *ip) ...@@ -296,7 +296,7 @@ iupdate(struct inode *ip)
struct dinode *dip; struct dinode *dip;
bp = bread(ip->dev, IBLOCK(ip->inum)); bp = bread(ip->dev, IBLOCK(ip->inum));
dip = (struct dinode*)(bp->data) + ip->inum%IPB; dip = (struct dinode*)bp->data + ip->inum%IPB;
dip->type = ip->type; dip->type = ip->type;
dip->major = ip->major; dip->major = ip->major;
dip->minor = ip->minor; dip->minor = ip->minor;
......
...@@ -5,9 +5,7 @@ ...@@ -5,9 +5,7 @@
#include "proc.h" #include "proc.h"
#include "x86.h" #include "x86.h"
extern char edata[], end[]; static void bootothers(void);
void bootothers(void);
// Bootstrap processor starts running C code here. // Bootstrap processor starts running C code here.
int int
...@@ -15,6 +13,7 @@ main(void) ...@@ -15,6 +13,7 @@ main(void)
{ {
int i; int i;
static volatile int bcpu; // cannot be on stack static volatile int bcpu; // cannot be on stack
extern char edata[], end[];
// clear BSS // clear BSS
memset(edata, 0, end - edata); memset(edata, 0, end - edata);
...@@ -65,7 +64,6 @@ mpmain(void) ...@@ -65,7 +64,6 @@ mpmain(void)
idtinit(); idtinit();
lapic_init(cpu()); lapic_init(cpu());
setupsegs(0); setupsegs(0);
cpuid(0, 0, 0, 0, 0); // memory barrier cpuid(0, 0, 0, 0, 0); // memory barrier
cpus[cpu()].booted = 1; cpus[cpu()].booted = 1;
...@@ -76,7 +74,7 @@ mpmain(void) ...@@ -76,7 +74,7 @@ mpmain(void)
scheduler(); scheduler();
} }
void static void
bootothers(void) bootothers(void)
{ {
extern uchar _binary_bootother_start[], _binary_bootother_size[]; extern uchar _binary_bootother_start[], _binary_bootother_size[];
...@@ -91,7 +89,7 @@ bootothers(void) ...@@ -91,7 +89,7 @@ bootothers(void)
if(c == cpus+cpu()) // We've started already. if(c == cpus+cpu()) // We've started already.
continue; continue;
// Set target %esp, %eip // Fill in %esp, %eip and start code on cpu.
*(void**)(code-4) = c->mpstack + MPSTACK; *(void**)(code-4) = c->mpstack + MPSTACK;
*(void**)(code-8) = mpmain; *(void**)(code-8) = mpmain;
lapic_startap(c->apicid, (uint)code); lapic_startap(c->apicid, (uint)code);
......
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论