[BACK]Return to kern_mem.c CVS log [TXT][DIR] Up to [local] / funnyos / kern

Diff for /funnyos/kern/kern_mem.c between version 1.1.1.1 and 1.5

version 1.1.1.1, 2007/10/16 09:41:04 version 1.5, 2007/10/16 13:47:39
Line 5 
Line 5 
 #include <sys/mem.h>  #include <sys/mem.h>
 #include <libkern/printf.h>  #include <libkern/printf.h>
   
 #define KMEM_DEBUG  /* #define KMEM_DEBUG */
   
 #ifdef KMEM_DEBUG  #ifdef KMEM_DEBUG
 #define DPRINTF(x...)   do { printf(x); } while (0)  #define DPRINTF(x...)   do { printf(x); } while (0)
Line 154 
Line 154 
   
                                         /* calculate pointer to this (last) page */                                          /* calculate pointer to this (last) page */
                                         lastpageptr = (uint32_t *)((allocbase + (8 * nmbmbytes * KMEM_PAGESIZE)) + (KMEM_PAGESIZE * nmbmbits));                                          lastpageptr = (uint32_t *)((allocbase + (8 * nmbmbytes * KMEM_PAGESIZE)) + (KMEM_PAGESIZE * nmbmbits));
                                         DPRINTF("lastpageptr=0x%x\n", lastpageptr);  
   
                                         /* rewind pointer to the first byte */                                          /* rewind pointer to the first byte */
                                         firstpageptr = lastpageptr - ((npages - 1));                                          firstpageptr = lastpageptr - ((npages - 1));
                                         DPRINTF("firstpageptr=0x%x\n", firstpageptr);  
   
                                         offbits = mask ? mask - 1 : mask;       /* XXX */                                          offbits = nmbmbits;
                                         /* fill this (npages pages) region with zeroes */                                          /* fill this (npages pages) region with zeroes */
                                         while(firstpageptr <= lastpageptr) {                                          while(firstpageptr <= lastpageptr) {
   
Line 172 
Line 170 
   
                                                 /* zerofy page */                                                  /* zerofy page */
                                                 for (i = 0; i < KMEM_PAGESIZE; i++) {                                                  for (i = 0; i < KMEM_PAGESIZE; i++) {
                                                         *(uint8_t *)firstpageptr = 0xaa;                                                          *(uint8_t *)firstpageptr = KMEM_FILLBYTE;
                                                         ((uint8_t *)firstpageptr)++;                                                          ((uint8_t *)firstpageptr)++;
                                                 }                                                  }
                                                 /* TODO rework offbits calculation */                                                  /* TODO rework offbits calculation */
Line 186 
Line 184 
                                         firstpageptr = lastpageptr - ((npages - 1));                                          firstpageptr = lastpageptr - ((npages - 1));
   
                                         /* got it */                                          /* got it */
                                         DPRINTF("allocated, addr=0x%x\n", firstpageptr);                                          DPRINTF("allocated, addr=0x%x len=0x%x [0x%x-0x%x]\n", firstpageptr, npages * KMEM_PAGESIZE, firstpageptr, lastpageptr);
   
                                         /* decrement system free pages */                                          /* decrement system free pages */
                                         freepages -= npages;                                          freepages -= npages;

Legend:
Removed from v.1.1.1.1  
changed lines
  Added in v.1.5

CVSweb