basic scheduling, basic syscall, (added .data copy)
[cortex-from-scratch] / include / sys / robsys.h
1 #ifndef __SYSTEM_H
2 #define __SYSTEM_H
3
4
5 /* Return CONSTANTS */
6
7 #define OK 1
8 #define MMKAY 0
9 #define NOTOK -1
10
11 /* RETURN TYPES */
12
13 typedef int32_t SYSCALL;
14 typedef int32_t PROCESS;
15
16 /* CLOCK.C 
17  * Board specific clock settings. These boards often come with two 
18  * external oscillators: one high speed (8MHz) and one low speed (~30kHz).
19  * These values are used throughout the code to calculator desired baud
20  * rates etc.
21  */
22 //#define ENABLE_HSE            
23 //#define CRYSTAL_MHZ   8
24 #define CLKSPEED_MHZ 8
25 extern void clock_init();
26 // extern void clock_reset();
27
28 /* RTC.C */
29 #define ENABLE_RTC      
30 extern void rtc_init();
31
32 /* IVT.C */
33 extern void ivt_init();
34 extern void ivt_set_gate(unsigned char, void *(), short);
35
36 /* SYSTICK.C */
37 extern void systick_init();
38
39 /* SYSINFO.C */
40 extern void sysinfo();
41
42 /* HEAP.c */
43 /* typedef void * (kalloc)(void * s);
44  * typedef void (kfree)(void * s, void * p); */
45 extern void kheap_init();
46 extern void * get_kheap();
47 extern void * kalloc(void * s);
48 extern void kfree(void * s, void * p);
49 extern void kheap_info(void * s);
50
51 /* SYSCALL.C */
52 extern void syscall_init();
53
54 /* TERM.C */
55 extern void terminal();
56
57 #endif