# HG changeset patch # User Windel Bouwman # Date 1424721964 -3600 # Node ID 6aa9743ed3627ad9e42cecfcf7676a9a65c50fd5 # Parent ad6be54540679294a35b1ab4500ce98e89dfbbc0 Reflect change in c3 public modifier diff -r ad6be5454067 -r 6aa9743ed362 kernel/arch/qemu_vexpress/vexpressA9.c3 --- a/kernel/arch/qemu_vexpress/vexpressA9.c3 Sat Feb 21 12:17:47 2015 +0100 +++ b/kernel/arch/qemu_vexpress/vexpressA9.c3 Mon Feb 23 21:06:04 2015 +0100 @@ -2,7 +2,7 @@ import io; -function void init() +public function void init() { io.print2("PFR0 = ", pfr0()); io.print2("PFR1 = ", pfr1()); @@ -12,14 +12,14 @@ // io.print2("MPUIR = ", arch.mpuir()); } -function void putc(int c) +public function void putc(int c) { var int *UART0DR; UART0DR = cast(0x109000); // UART0 DR register when remapped at 1MB *UART0DR = c; } -function void halt() +public function void halt() { while(true) { @@ -27,7 +27,7 @@ } // Functions implemented in assembly: -function byte* get_image_address(); +public function byte* get_image_address(); function int pfr0(); function int pfr1(); function int mmfr0(); diff -r ad6be5454067 -r 6aa9743ed362 kernel/build.xml --- a/kernel/build.xml Sat Feb 21 12:17:47 2015 +0100 +++ b/kernel/build.xml Mon Feb 23 21:06:04 2015 +0100 @@ -1,5 +1,6 @@ + @@ -10,7 +11,9 @@ target="arm" output="obj/start.o" /> + output="obj/kernel.o" + listing="kernel.lst" + /> (image_addr)); - var ramdisk_header_t* ramdisk_header; - ramdisk_header = image_addr; - var byte* image_ptr; - image_ptr = image_addr; + var ramdisk_header_t* ramdisk_header = image_addr; + var byte* image_ptr = image_addr; if (0x1337 == ramdisk_header->magic) { image_ptr += 8; @@ -50,8 +47,7 @@ if (ramdisk_header->num_images > 0) { io.println("Loading init"); - var int init_size; - init_size = *(cast(image_ptr)); + var int init_size = *(cast(image_ptr)); io.print2("Init size:", init_size); image_ptr += 4; diff -r ad6be5454067 -r 6aa9743ed362 kernel/memory.c3 --- a/kernel/memory.c3 Sat Feb 21 12:17:47 2015 +0100 +++ b/kernel/memory.c3 Mon Feb 23 21:06:04 2015 +0100 @@ -3,16 +3,17 @@ import arch; import io; +const int pagesize = 4096; var int ptr; // Let the heap grow upwards.. -function void init() +public function void init() { ptr = 0x60080000; } -function byte* alloc(int size) +public function byte* alloc(int size) { var int ptr2; ptr2 = ptr; @@ -25,8 +26,27 @@ return ptr2; } +function bool is_marked(int page) +{ + return true; +} + +function void set_mark(int page, bool mark) +{ + +} + function byte* allocate_physical() { + var int i; + for (i = 0; i < 100; i += 1) + { + if (not is_marked(i)) + { + return i * pagesize; + } + } + return 0; } @@ -37,14 +57,17 @@ return address2; } -function void memcpy(byte* dst, byte* src, int size) +// Util function: +public function void memcpy(byte* dst, byte* src, int size) { var int i; io.print2("memcpy to ", cast(dst)); io.print2("memcpy from ", cast(src)); + io.print2("memcpy size ", size); for (i = 0; i < size; i += 1) { *(dst + i) = *(src + i); } } + diff -r ad6be5454067 -r 6aa9743ed362 kernel/process.c3 --- a/kernel/process.c3 Sat Feb 21 12:17:47 2015 +0100 +++ b/kernel/process.c3 Mon Feb 23 21:06:04 2015 +0100 @@ -16,7 +16,7 @@ var int next_pid; var process_t* current; -function void init() +public function void init() { next_pid = 0; first_process = 0; @@ -26,7 +26,7 @@ /* Create a new process. */ -function process_t* create() +public function process_t* create() { var process_t* p; @@ -64,16 +64,16 @@ // clean memory } -function process_t* byId(int id) +public function process_t* byId(int id) { // Perform lookup return 0; } -function void execute_next() +public function void execute_next() { - var process.process_t *old; + var process_t *old; old = 0; diff -r ad6be5454067 -r 6aa9743ed362 make.sh --- a/make.sh Sat Feb 21 12:17:47 2015 +0100 +++ b/make.sh Mon Feb 23 21:06:04 2015 +0100 @@ -1,5 +1,6 @@ #!/bin/bash export PYTHONPATH=../ppci -../ppci/bin/ppci-build.py --log debug build +#../ppci/bin/ppci-build.py --log debug build +../ppci/bin/ppci-build.py diff -r ad6be5454067 -r 6aa9743ed362 user/lib/ipc.c3 --- a/user/lib/ipc.c3 Sat Feb 21 12:17:47 2015 +0100 +++ b/user/lib/ipc.c3 Mon Feb 23 21:06:04 2015 +0100 @@ -18,7 +18,7 @@ // TODO: make this in assembler? } -function void SendMessage(Msg *msg) +public function void SendMessage(Msg *msg) { var int x; x=kernelTrap(MSG_SEND, 1, 0) diff -r ad6be5454067 -r 6aa9743ed362 user/lib/lib.c3 --- a/user/lib/lib.c3 Sat Feb 21 12:17:47 2015 +0100 +++ b/user/lib/lib.c3 Mon Feb 23 21:06:04 2015 +0100 @@ -13,7 +13,7 @@ *UART0DR = c; } -function void print(string txt) +public function void print(string txt) { // TODO var ipc.Msg msg;