| 110 | } |
| 111 | |
| 112 | void VMem::add_segment() { |
| 113 | int seg = metapage->segment_count++; |
| 114 | ftruncate(fd, METABLOCK_SIZE + metapage->segment_count * SEGMENT_SIZE); |
| 115 | void *map_addr = mmap_segment(seg); |
| 116 | segments[seg] = VSeg(map_addr); |
| 117 | Block *top = block_ptr(seg * SEGMENT_SIZE); |
| 118 | top->next = freelist[LOG2_SEGMENT_SIZE]; |
| 119 | top->prev = VADDR_NULL; |
| 120 | freelist[LOG2_SEGMENT_SIZE] = seg * SEGMENT_SIZE; |
| 121 | } |
| 122 | |
| 123 | void FastLock::lock() { |
| 124 | #ifdef HAVE_CPP_THREADS |
no test coverage detected