Rev 210 | Rev 254 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 210 | Rev 253 | ||
---|---|---|---|
Line 99... | Line 99... | ||
99 | : "=r" (v) |
99 | : "=r" (v) |
100 | ); |
100 | ); |
101 | return v; |
101 | return v; |
102 | } |
102 | } |
103 | 103 | ||
- | 104 | /** Return base address of current stack. |
|
- | 105 | * |
|
- | 106 | * Return the base address of the current stack. |
|
- | 107 | * The stack is assumed to be STACK_SIZE bytes long. |
|
104 | /* TODO: implement the real stuff */ |
108 | * The stack must start on page boundary. |
- | 109 | */ |
|
105 | static inline __address get_stack_base(void) |
110 | static inline __address get_stack_base(void) |
106 | { |
111 | { |
- | 112 | __address v; |
|
- | 113 | ||
- | 114 | __asm__ volatile ("and %0, %%r1, %1\n" : "=r" (v) : "r" (~(STACK_SIZE-1))); |
|
- | 115 | ||
107 | return NULL; |
116 | return v; |
108 | } |
117 | } |
109 | 118 | ||
110 | void cpu_sleep(void); |
119 | void cpu_sleep(void); |
111 | void asm_delay_loop(__u32 t); |
120 | void asm_delay_loop(__u32 t); |
112 | 121 |