Rev 3582 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
| Rev 3582 | Rev 3618 | ||
|---|---|---|---|
| Line 96... | Line 96... | ||
| 96 | ((type *) (sram_virt_addr + sram_buffer_offset + (offset))) |
96 | ((type *) (sram_virt_addr + sram_buffer_offset + (offset))) |
| 97 | 97 | ||
| 98 | /** Returns a pointer to the console buffer header. */ |
98 | /** Returns a pointer to the console buffer header. */ |
| 99 | #define SGCN_BUFFER_HEADER (SGCN_BUFFER(sgcn_buffer_header_t, 0)) |
99 | #define SGCN_BUFFER_HEADER (SGCN_BUFFER(sgcn_buffer_header_t, 0)) |
| 100 | 100 | ||
| - | 101 | /** |
|
| - | 102 | * Pushes the character to the SGCN serial. |
|
| - | 103 | * @param c character to be pushed |
|
| - | 104 | */ |
|
| 101 | static void sgcn_putc(char c) |
105 | static void sgcn_putc(char c) |
| 102 | { |
106 | { |
| 103 | uint32_t begin = SGCN_BUFFER_HEADER->out_begin; |
107 | uint32_t begin = SGCN_BUFFER_HEADER->out_begin; |
| 104 | uint32_t end = SGCN_BUFFER_HEADER->out_end; |
108 | uint32_t end = SGCN_BUFFER_HEADER->out_end; |
| 105 | uint32_t size = end - begin; |
109 | uint32_t size = end - begin; |
| Line 115... | Line 119... | ||
| 115 | ; |
119 | ; |
| 116 | *buf_ptr = c; |
120 | *buf_ptr = c; |
| 117 | *out_wrptr_ptr = new_wrptr; |
121 | *out_wrptr_ptr = new_wrptr; |
| 118 | } |
122 | } |
| 119 | 123 | ||
| - | 124 | /** |
|
| - | 125 | * Main function of the thread serving client connections. |
|
| - | 126 | */ |
|
| 120 | static void sgcn_client_connection(ipc_callid_t iid, ipc_call_t *icall) |
127 | static void sgcn_client_connection(ipc_callid_t iid, ipc_call_t *icall) |
| 121 | { |
128 | { |
| 122 | int retval; |
129 | int retval; |
| 123 | ipc_callid_t callid; |
130 | ipc_callid_t callid; |
| 124 | ipc_call_t call; |
131 | ipc_call_t call; |
| Line 209... | Line 216... | ||
| 209 | } |
216 | } |
| 210 | ipc_answer_0(callid, retval); |
217 | ipc_answer_0(callid, retval); |
| 211 | } |
218 | } |
| 212 | } |
219 | } |
| 213 | 220 | ||
| - | 221 | /** |
|
| - | 222 | * Initializes the SGCN serial driver. |
|
| - | 223 | */ |
|
| 214 | int sgcn_init(void) |
224 | int sgcn_init(void) |
| 215 | { |
225 | { |
| 216 | sram_virt_addr = (uintptr_t) as_get_mappable_page(sysinfo_value("sram.area.size")); |
226 | sram_virt_addr = (uintptr_t) as_get_mappable_page( |
| - | 227 | sysinfo_value("sram.area.size")); |
|
| 217 | int result = physmem_map( |
228 | int result = physmem_map( |
| 218 | (void *) sysinfo_value("sram.address.physical"), |
229 | (void *) sysinfo_value("sram.address.physical"), |
| 219 | (void *) sram_virt_addr, |
230 | (void *) sram_virt_addr, |
| 220 | sysinfo_value("sram.area.size") / PAGE_SIZE, |
231 | sysinfo_value("sram.area.size") / PAGE_SIZE, |
| 221 | AS_AREA_READ | AS_AREA_WRITE |
232 | AS_AREA_READ | AS_AREA_WRITE |
| Line 234... | Line 245... | ||
| 234 | } |
245 | } |
| 235 | 246 | ||
| 236 | /** |
247 | /** |
| 237 | * @} |
248 | * @} |
| 238 | */ |
249 | */ |
| 239 | - | ||
| 240 | 250 | ||
| - | 251 | ||