From 97ac612fb16748e6b011de4deaa803ec5f0afef8 Mon Sep 17 00:00:00 2001
From: rsc <rsc>
Date: Fri, 24 Aug 2007 20:28:08 +0000
Subject: [PATCH] nits

---
 bootmain.c | 51 ++++++++++++++++++++++++---------------------------
 console.c  | 34 ++++++++++++++++++----------------
 proc.c     | 11 +++++------
 proc.h     |  2 +-
 syscall.c  |  5 +++--
 5 files changed, 51 insertions(+), 52 deletions(-)

diff --git a/bootmain.c b/bootmain.c
index 6494c16..45b4e53 100644
--- a/bootmain.c
+++ b/bootmain.c
@@ -31,31 +31,35 @@
 #include "x86.h"
 
 #define SECTSIZE  512
-#define ELFHDR    ((struct elfhdr*) 0x10000) // scratch space
 
 void readseg(uint, uint, uint);
 
 void
 cmain(void)
 {
+  struct elfhdr *elf;
   struct proghdr *ph, *eph;
+  void (*entry)(void);
 
-  // read 1st page off disk
-  readseg((uint) ELFHDR, SECTSIZE*8, 0);
+  elf = (struct elfhdr*)0x10000;  // scratch space
 
-  // is this a valid ELF?
-  if(ELFHDR->magic != ELF_MAGIC)
+  // Read 1st page off disk
+  readseg((uint)elf, SECTSIZE*8, 0);
+
+  // Is this an ELF executable?
+  if(elf->magic != ELF_MAGIC)
     goto bad;
 
-  // load each program segment (ignores ph flags)
-  ph = (struct proghdr*) ((uchar*) ELFHDR + ELFHDR->phoff);
-  eph = ph + ELFHDR->phnum;
+  // Load each program segment (ignores ph flags).
+  ph = (struct proghdr*)((uchar*)elf + elf->phoff);
+  eph = ph + elf->phnum;
   for(; ph < eph; ph++)
     readseg(ph->va, ph->memsz, ph->offset);
 
-  // call the entry point from the ELF header
-  // note: does not return!
-  ((void(*)(void)) (ELFHDR->entry & 0xFFFFFF))();
+  // Call the entry point from the ELF header.
+  // Does not return!
+  entry = (void(*)(void))(elf->entry & 0xFFFFFF);
+  entry();
 
 bad:
   outw(0x8A00, 0x8A00);
@@ -67,7 +71,7 @@ bad:
 void
 waitdisk(void)
 {
-  // wait for disk reaady
+  // Wait for disk ready.
   while((inb(0x1F7) & 0xC0) != 0x40)
     ;
 }
@@ -76,9 +80,8 @@ waitdisk(void)
 void
 readsect(void *dst, uint offset)
 {
-  // wait for disk to be ready
+  // Issue command.
   waitdisk();
-
   outb(0x1F2, 1);   // count = 1
   outb(0x1F3, offset);
   outb(0x1F4, offset >> 8);
@@ -86,10 +89,8 @@ readsect(void *dst, uint offset)
   outb(0x1F6, (offset >> 24) | 0xE0);
   outb(0x1F7, 0x20);  // cmd 0x20 - read sectors
 
-  // wait for disk to be ready
+  // Read data.
   waitdisk();
-
-  // read a sector
   insl(0x1F0, dst, SECTSIZE/4);
 }
 
@@ -98,24 +99,20 @@ readsect(void *dst, uint offset)
 void
 readseg(uint va, uint count, uint offset)
 {
-  uint end_va;
+  uint eva;
 
   va &= 0xFFFFFF;
-  end_va = va + count;
+  eva = va + count;
 
-  // round down to sector boundary
+  // Round down to sector boundary.
   va &= ~(SECTSIZE - 1);
 
-  // translate from bytes to sectors, and kernel starts at sector 1
+  // Translate from bytes to sectors; kernel starts at sector 1.
   offset = (offset / SECTSIZE) + 1;
 
   // If this is too slow, we could read lots of sectors at a time.
   // We'd write more to memory than asked, but it doesn't matter --
   // we load in increasing order.
-  while(va < end_va) {
-    readsect((uchar*) va, offset);
-    va += SECTSIZE;
-    offset++;
-  }
+  for(; va < eva; va += SECTSIZE, offset++)
+    readsect((uchar*)va, offset);
 }
-
diff --git a/console.c b/console.c
index cc1a0b7..b1518c0 100644
--- a/console.c
+++ b/console.c
@@ -9,7 +9,11 @@
 #include "proc.h"
 #include "kbd.h"
 
-struct spinlock console_lock;
+#define CRTPORT 0x3d4
+#define LPTPORT 0x378
+static ushort *crt = (ushort*)0xb8000;  // CGA memory
+
+static struct spinlock console_lock;
 int panicked = 0;
 int use_console_lock = 0;
 
@@ -21,18 +25,16 @@ lpt_putc(int c)
 {
   int i;
 
-  for(i = 0; !(inb(0x378+1) & 0x80) && i < 12800; i++)
+  for(i = 0; !(inb(LPTPORT+1) & 0x80) && i < 12800; i++)
     ;
-  outb(0x378+0, c);
-  outb(0x378+2, 0x08|0x04|0x01);
-  outb(0x378+2, 0x08);
+  outb(LPTPORT+0, c);
+  outb(LPTPORT+2, 0x08|0x04|0x01);
+  outb(LPTPORT+2, 0x08);
 }
 
 static void
 cons_putc(int c)
 {
-  int crtport = 0x3d4; // io port of CGA
-  ushort *crt = (ushort*) 0xB8000; // base of CGA memory
   int ind;
 
   if(panicked){
@@ -44,10 +46,10 @@ cons_putc(int c)
   lpt_putc(c);
 
   // cursor position, 16 bits, col + 80*row
-  outb(crtport, 14);
-  ind = inb(crtport + 1) << 8;
-  outb(crtport, 15);
-  ind |= inb(crtport + 1);
+  outb(CRTPORT, 14);
+  ind = inb(CRTPORT + 1) << 8;
+  outb(CRTPORT, 15);
+  ind |= inb(CRTPORT + 1);
 
   c &= 0xff;
   if(c == '\n'){
@@ -66,17 +68,17 @@ cons_putc(int c)
     memset(crt + ind, 0, sizeof(crt[0]) * ((24 * 80) - ind));
   }
 
-  outb(crtport, 14);
-  outb(crtport + 1, ind >> 8);
-  outb(crtport, 15);
-  outb(crtport + 1, ind);
+  outb(CRTPORT, 14);
+  outb(CRTPORT + 1, ind >> 8);
+  outb(CRTPORT, 15);
+  outb(CRTPORT + 1, ind);
 }
 
 void
 printint(int xx, int base, int sgn)
 {
+  static char digits[] = "0123456789ABCDEF";
   char buf[16];
-  char digits[] = "0123456789ABCDEF";
   int i = 0, neg = 0;
   uint x;
 
diff --git a/proc.c b/proc.c
index 2ed2952..fb79444 100644
--- a/proc.c
+++ b/proc.c
@@ -65,15 +65,14 @@ growproc(int n)
   return cp->sz - n;
 }
 
-// Set up CPU's segment descriptors and task state for a
-// given process.
-// If p==0, set up for "idle" state for when scheduler()
-// is idling, not running any process.
+// Set up CPU's segment descriptors and task state for a given process.
+// If p==0, set up for "idle" state for when scheduler() is running.
 void
 setupsegs(struct proc *p)
 {
-  struct cpu *c = &cpus[cpu()];
-
+  struct cpu *c;
+  
+  c = &cpus[cpu()];
   c->ts.ss0 = SEG_KDATA << 3;
   if(p)
     c->ts.esp0 = (uint)(p->kstack + KSTACKSIZE);
diff --git a/proc.h b/proc.h
index 137bda3..599ed44 100644
--- a/proc.h
+++ b/proc.h
@@ -12,7 +12,7 @@
 // Save all the regular registers so we don't need to care
 // which are caller save.
 // Don't save %eax, because that's the return register.
-// The layout of jmpbuf is known to setjmp.S.
+// The layout of jmpbuf must match code in setjmp.S.
 struct jmpbuf {
   int ebx;
   int ecx;
diff --git a/syscall.c b/syscall.c
index 4853e35..d7cf123 100644
--- a/syscall.c
+++ b/syscall.c
@@ -133,8 +133,9 @@ static int (*syscalls[])(void) = {
 void
 syscall(void)
 {
-  int num = cp->tf->eax;
-
+  int num;
+  
+  num = cp->tf->eax;
   if(num >= 0 && num < NELEM(syscalls) && syscalls[num])
     cp->tf->eax = syscalls[num]();
   else {
-- 
GitLab