annotate kernel/memory.c3 @ 408:ad6be5454067

Added image build task
author Windel Bouwman
date Sat, 21 Feb 2015 12:17:47 +0100
parents 0fb6633c42f6
children 6aa9743ed362
rev   line source
283
c9781c73e7e2 Added first kernel files
Windel Bouwman
parents:
diff changeset
1 module memory;
293
6aa721e7b10b Try to improve build sequence
Windel Bouwman
parents: 283
diff changeset
2
377
9667d78ba79e Switched to xml for project description
Windel Bouwman
parents: 367
diff changeset
3 import arch;
381
6df89163e114 Fix section and ldr pseudo instruction
Windel Bouwman
parents: 377
diff changeset
4 import io;
283
c9781c73e7e2 Added first kernel files
Windel Bouwman
parents:
diff changeset
5
301
6753763d3bec merge codegen into ppci package
Windel Bouwman
parents: 296
diff changeset
6 var int ptr;
283
c9781c73e7e2 Added first kernel files
Windel Bouwman
parents:
diff changeset
7
393
6ae782a085e0 Added init program
Windel Bouwman
parents: 389
diff changeset
8 // Let the heap grow upwards..
6ae782a085e0 Added init program
Windel Bouwman
parents: 389
diff changeset
9
367
577ed7fb3fe4 Try to make thumb work again
Windel Bouwman
parents: 359
diff changeset
10 function void init()
577ed7fb3fe4 Try to make thumb work again
Windel Bouwman
parents: 359
diff changeset
11 {
408
ad6be5454067 Added image build task
Windel Bouwman
parents: 402
diff changeset
12 ptr = 0x60080000;
367
577ed7fb3fe4 Try to make thumb work again
Windel Bouwman
parents: 359
diff changeset
13 }
577ed7fb3fe4 Try to make thumb work again
Windel Bouwman
parents: 359
diff changeset
14
402
0fb6633c42f6 Moved several files to logical locations
Windel Bouwman
parents: 393
diff changeset
15 function byte* alloc(int size)
283
c9781c73e7e2 Added first kernel files
Windel Bouwman
parents:
diff changeset
16 {
393
6ae782a085e0 Added init program
Windel Bouwman
parents: 389
diff changeset
17 var int ptr2;
6ae782a085e0 Added init program
Windel Bouwman
parents: 389
diff changeset
18 ptr2 = ptr;
6ae782a085e0 Added init program
Windel Bouwman
parents: 389
diff changeset
19
6ae782a085e0 Added init program
Windel Bouwman
parents: 389
diff changeset
20 io.print2("alloc size ", size);
6ae782a085e0 Added init program
Windel Bouwman
parents: 389
diff changeset
21 io.print2("alloc address ", ptr);
6ae782a085e0 Added init program
Windel Bouwman
parents: 389
diff changeset
22
6ae782a085e0 Added init program
Windel Bouwman
parents: 389
diff changeset
23 // Increment new free point:
296
9417caea2eb3 Directorized some backend files
Windel Bouwman
parents: 293
diff changeset
24 ptr = ptr + size;
402
0fb6633c42f6 Moved several files to logical locations
Windel Bouwman
parents: 393
diff changeset
25 return ptr2;
283
c9781c73e7e2 Added first kernel files
Windel Bouwman
parents:
diff changeset
26 }
c9781c73e7e2 Added first kernel files
Windel Bouwman
parents:
diff changeset
27
408
ad6be5454067 Added image build task
Windel Bouwman
parents: 402
diff changeset
28 function byte* allocate_physical()
ad6be5454067 Added image build task
Windel Bouwman
parents: 402
diff changeset
29 {
ad6be5454067 Added image build task
Windel Bouwman
parents: 402
diff changeset
30 return 0;
ad6be5454067 Added image build task
Windel Bouwman
parents: 402
diff changeset
31 }
ad6be5454067 Added image build task
Windel Bouwman
parents: 402
diff changeset
32
ad6be5454067 Added image build task
Windel Bouwman
parents: 402
diff changeset
33 function byte* allocate_virtual(byte* address)
ad6be5454067 Added image build task
Windel Bouwman
parents: 402
diff changeset
34 {
ad6be5454067 Added image build task
Windel Bouwman
parents: 402
diff changeset
35 var byte* address2;
ad6be5454067 Added image build task
Windel Bouwman
parents: 402
diff changeset
36 address2 = allocate_physical();
ad6be5454067 Added image build task
Windel Bouwman
parents: 402
diff changeset
37 return address2;
ad6be5454067 Added image build task
Windel Bouwman
parents: 402
diff changeset
38 }
ad6be5454067 Added image build task
Windel Bouwman
parents: 402
diff changeset
39
402
0fb6633c42f6 Moved several files to logical locations
Windel Bouwman
parents: 393
diff changeset
40 function void memcpy(byte* dst, byte* src, int size)
393
6ae782a085e0 Added init program
Windel Bouwman
parents: 389
diff changeset
41 {
6ae782a085e0 Added init program
Windel Bouwman
parents: 389
diff changeset
42 var int i;
408
ad6be5454067 Added image build task
Windel Bouwman
parents: 402
diff changeset
43 io.print2("memcpy to ", cast<int>(dst));
ad6be5454067 Added image build task
Windel Bouwman
parents: 402
diff changeset
44 io.print2("memcpy from ", cast<int>(src));
ad6be5454067 Added image build task
Windel Bouwman
parents: 402
diff changeset
45 for (i = 0; i < size; i += 1)
393
6ae782a085e0 Added init program
Windel Bouwman
parents: 389
diff changeset
46 {
6ae782a085e0 Added init program
Windel Bouwman
parents: 389
diff changeset
47 *(dst + i) = *(src + i);
6ae782a085e0 Added init program
Windel Bouwman
parents: 389
diff changeset
48 }
6ae782a085e0 Added init program
Windel Bouwman
parents: 389
diff changeset
49 }
283
c9781c73e7e2 Added first kernel files
Windel Bouwman
parents:
diff changeset
50