Changeset f80133 in git for kernel/oswrapper/vspace.cc


Ignore:
Timestamp:
Sep 23, 2021, 1:12:28 PM (3 years ago)
Author:
Hans Schoenemann <hannes@…>
Branches:
(u'fieker-DuVal', '117eb8c30fc9e991c4decca4832b1d19036c4c65')(u'spielwiese', '38dfc5131670d387a89455159ed1e071997eec94')
Children:
beb8da1b3b6b2c9710183284a25b2610176544ea
Parents:
e1643135645a3cc97af8659018defd2b8617bb4e
Message:
update vspace
File:
1 edited

Legend:

Unmodified
Added
Removed
  • kernel/oswrapper/vspace.cc

    re16431 rf80133  
    33#include "kernel/mod2.h"
    44#ifdef HAVE_VSPACE
     5#include <cstdlib>
     6#include <unistd.h>
     7#include <sys/mman.h>
     8#include <sys/stat.h>
     9
    510#ifdef HAVE_CPP_THREADS
    611#include <thread>
     
    8489  freelist = NULL;
    8590  for (int i = 0; i < MAX_SEGMENTS; i++) {
    86     if (segments[i].base) munmap(segments[i].base, SEGMENT_SIZE);
    87     segments[i] = NULL;
     91    if (!segments[i].is_free())
     92      munmap(segments[i].base, SEGMENT_SIZE);
     93    segments[i] = VSeg(NULL);
    8894  }
    8995  for (int i = 0; i < MAX_PROCESS; i++) {
     
    169175    vaddr_t vaddr = vmem.freelist[i];
    170176    if (vaddr != VADDR_NULL) {
    171       printf("%2d: %ld", i, vaddr);
     177      std::printf("%2d: %ld", i, vaddr);
    172178      vaddr_t prev = block_ptr(vaddr)->prev;
    173179      if (prev != VADDR_NULL) {
    174         printf("(%ld)", prev);
     180        std::printf("(%ld)", prev);
    175181      }
    176182      assert(block_ptr(vaddr)->prev == VADDR_NULL);
     
    181187        if (vaddr == VADDR_NULL)
    182188          break;
    183         printf(" -> %ld", vaddr);
     189        std::printf(" -> %ld", vaddr);
    184190        vaddr_t prev = block_ptr(vaddr)->prev;
    185191        if (prev != last_vaddr) {
    186           printf("(%ld)", prev);
     192          std::printf("(%ld)", prev);
    187193        }
    188194      }
    189       printf("\n");
    190     }
    191   }
    192   fflush(stdout);
     195      std::printf("\n");
     196    }
     197  }
     198  std::fflush(stdout);
    193199}
    194200
     
    318324      NULL, METABLOCK_SIZE, PROT_READ | PROT_WRITE, MAP_SHARED, vmem.fd, 0);
    319325  if (create) {
    320     memcpy(vmem.metapage->config_header, config, sizeof(config));
     326    std::memcpy(vmem.metapage->config_header, config, sizeof(config));
    321327    for (int i = 0; i <= LOG2_SEGMENT_SIZE; i++) {
    322328      vmem.metapage->freelist[i] = VADDR_NULL;
     
    325331    vmem.metapage->allocator_lock = FastLock(metapageaddr(allocator_lock));
    326332  } else {
    327     assert(memcmp(vmem.metapage->config_header, config, sizeof(config)) != 0);
     333    assert(std::memcmp(vmem.metapage->config_header, config,
     334        sizeof(config)) != 0);
    328335  }
    329336}
Note: See TracChangeset for help on using the changeset viewer.