Changes in kernel/arch/sparc64/src/drivers/niagara.c [a35b458:d9ec808b] in mainline
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
kernel/arch/sparc64/src/drivers/niagara.c
ra35b458 rd9ec808b 126 126 * shared buffer to the console. 127 127 */ 128 128 129 129 while (output_buffer.read_ptr != output_buffer.write_ptr) { 130 130 do_putchar(output_buffer.data[output_buffer.read_ptr]); … … 132 132 ((output_buffer.read_ptr) + 1) % OUTPUT_BUFFER_SIZE; 133 133 } 134 134 135 135 /* 136 136 * Read character from keyboard. 137 137 */ 138 138 139 139 uint64_t c; 140 140 if (__hypercall_fast_ret1(0, 0, 0, 0, 0, CONS_GETCHAR, &c) == HV_EOK) { … … 174 174 if (instance) 175 175 return; 176 176 177 177 instance = malloc(sizeof(niagara_instance_t), FRAME_ATOMIC); 178 178 instance->thread = thread_create(kniagarapoll, NULL, TASK, 179 179 THREAD_FLAG_UNCOUNTED, "kniagarapoll"); 180 180 181 181 if (!instance->thread) { 182 182 free(instance); … … 184 184 return; 185 185 } 186 186 187 187 instance->srlnin = NULL; 188 188 189 189 output_buffer.read_ptr = 0; 190 190 output_buffer.write_ptr = 0; 191 191 input_buffer.write_ptr = 0; 192 192 input_buffer.read_ptr = 0; 193 193 194 194 /* 195 195 * Set sysinfos and pareas so that the userspace counterpart of the … … 197 197 * buffers. 198 198 */ 199 199 200 200 sysinfo_set_item_val("fb", NULL, true); 201 201 sysinfo_set_item_val("fb.kind", NULL, 5); 202 202 203 203 sysinfo_set_item_val("niagara.outbuf.address", NULL, 204 204 KA2PA(&output_buffer)); … … 207 207 sysinfo_set_item_val("niagara.outbuf.datasize", NULL, 208 208 OUTPUT_BUFFER_SIZE); 209 209 210 210 sysinfo_set_item_val("niagara.inbuf.address", NULL, 211 211 KA2PA(&input_buffer)); … … 214 214 sysinfo_set_item_val("niagara.inbuf.datasize", NULL, 215 215 INPUT_BUFFER_SIZE); 216 216 217 217 outbuf_parea.pbase = (uintptr_t) (KA2PA(&output_buffer)); 218 218 outbuf_parea.frames = 1; … … 220 220 outbuf_parea.mapped = false; 221 221 ddi_parea_register(&outbuf_parea); 222 222 223 223 inbuf_parea.pbase = (uintptr_t) (KA2PA(&input_buffer)); 224 224 inbuf_parea.frames = 1; … … 226 226 inbuf_parea.mapped = false; 227 227 ddi_parea_register(&inbuf_parea); 228 228 229 229 outdev_t *niagara_dev = malloc(sizeof(outdev_t), FRAME_ATOMIC); 230 230 outdev_initialize("niagara_dev", niagara_dev, &niagara_ops); … … 238 238 { 239 239 niagara_init(); 240 240 241 241 if (instance) { 242 242 srln_instance_t *srln_instance = srln_init(); … … 244 244 indev_t *sink = stdin_wire(); 245 245 indev_t *srln = srln_wire(srln_instance, sink); 246 246 247 247 instance->srlnin = srln; 248 248 thread_ready(instance->thread); 249 249 } 250 250 } 251 251 252 252 return instance; 253 253 }
Note:
See TracChangeset
for help on using the changeset viewer.