32fbbd370c
shared with the kernel, mapped into kernel address space; kernel is notified of its location. kernel segment size is increased to make it fit. - map in kernel and other processes that don't have their own page table using single 4MB (global) mapping. - new sanity check facility: objects that are allocated with the slab allocator are, when running with sanity checking on, marked readonly until they are explicitly unlocked using the USE() macro. - another sanity check facility: collect all uses of memory and see if they don't overlap with (a) eachother and (b) free memory - own munmap() and munmap_text() functions. - exec() recovers from out-of-memory conditions properly now; this solves some weird exec() behaviour - chew off memory from the same side of the chunk as where we start scanning, solving some memory fragmentation issues - use avl trees for freelist and phys_ranges in regions - implement most useful part of munmap() - remap() stuff is GQ's for shared memory
37 lines
816 B
Makefile
37 lines
816 B
Makefile
# Makefile for VM server
|
|
SERVER = vm
|
|
|
|
include /etc/make.conf
|
|
|
|
OBJ = main.o alloc.o utility.o exec.o exit.o fork.o break.o \
|
|
signal.o vfs.o mmap.o slaballoc.o region.o pagefaults.o addravl.o \
|
|
physravl.o rs.o queryexit.o
|
|
ARCHOBJ = $(ARCH)/vm.o $(ARCH)/pagetable.o $(ARCH)/arch_pagefaults.o $(ARCH)/util.o
|
|
|
|
CPPFLAGS=-I../../kernel/arch/$(ARCH)/include -I$(ARCH)
|
|
CFLAGS = $(CPROFILE) $(CPPFLAGS)
|
|
|
|
# build local binary
|
|
|
|
all build install: $(SERVER)
|
|
install -S 100k $(SERVER)
|
|
|
|
$(SERVER): $(OBJ) phony
|
|
cd $(ARCH) && $(MAKE)
|
|
$(CC) -o $@ $(LDFLAGS) $(OBJ) $(ARCHOBJ) -lsys
|
|
|
|
# clean up local files
|
|
clean:
|
|
rm -f $(SERVER) *.o *.bak
|
|
cd $(ARCH) && $(MAKE) $@
|
|
|
|
depend:
|
|
cd $(ARCH) && $(MAKE) $@
|
|
mkdep "$(CC) -E $(CPPFLAGS)" *.c $(ARCH)/*.c > .depend
|
|
|
|
phony:
|
|
@:
|
|
|
|
# Include generated dependencies.
|
|
include .depend
|
|
|