Changes in / [9df6b0f:dc5a1f26] in mainline
- Files:
-
- 32 edited
Legend:
- Unmodified
- Added
- Removed
-
HelenOS.config
r9df6b0f rdc5a1f26 609 609 ! [CONFIG_DEBUG=y] CONFIG_TEST_DRIVERS (n/y) 610 610 611 % Load disk drivers on startup 612 ! CONFIG_START_BD (n/y) 613 614 % Mount /data on startup 615 ! [CONFIG_START_BD=y] CONFIG_MOUNT_DATA (n/y) 616 611 617 % Write core files 612 618 ! CONFIG_WRITE_CORE_FILES (n/y) -
boot/arch/ia64/Makefile.inc
r9df6b0f rdc5a1f26 74 74 arch/$(BARCH)/src/ski.c 75 75 endif 76 77 RD_DRVS_ESSENTIAL += \78 infrastructure/rootpc \79 bus/pci/pciintel \80 bus/isa \81 char/i8042 \82 char/xtkbd83 84 RD_DRVS_NON_ESSENTIAL += \85 char/ns8250 \86 time/cmos-rtc \87 bus/usb/ehci\88 bus/usb/ohci \89 bus/usb/uhci \90 bus/usb/uhcirh \91 bus/usb/usbflbk \92 bus/usb/usbhub \93 bus/usb/usbhid \94 bus/usb/usbmast \95 bus/usb/usbmid \96 bus/usb/vhc97 98 RD_DRV_CFG += \99 bus/isa100 -
defaults/amd64/Makefile.config
r9df6b0f rdc5a1f26 59 59 CONFIG_BFB_BPP = 16 60 60 61 # Load disk drivers on startup 62 CONFIG_START_BD = n 63 64 # Mount /data on startup 65 CONFIG_MOUNT_DATA = n 66 61 67 # OHCI root hub power switch, ganged is enough 62 68 OHCI_POWER_SWITCH = ganged -
defaults/arm32/Makefile.config
r9df6b0f rdc5a1f26 34 34 # What is your output device? 35 35 CONFIG_HID_OUT = generic 36 37 # Load disk drivers on startup 38 CONFIG_START_BD = n 39 40 # Mount /data on startup 41 CONFIG_MOUNT_DATA = n 42 -
defaults/ia32/Makefile.config
r9df6b0f rdc5a1f26 65 65 CONFIG_BFB_BPP = 16 66 66 67 # Load disk drivers on startup 68 CONFIG_START_BD = n 69 70 # Mount /data on startup 71 CONFIG_MOUNT_DATA = n 72 67 73 # OHCI root hub power switch, ganged is enough 68 74 OHCI_POWER_SWITCH = ganged -
defaults/ia64/Makefile.config
r9df6b0f rdc5a1f26 46 46 # Output device class 47 47 CONFIG_HID_OUT = generic 48 49 # Load disk drivers on startup 50 CONFIG_START_BD = n 51 52 # Mount /data on startup 53 CONFIG_MOUNT_DATA = n 54 -
defaults/mips32/Makefile.config
r9df6b0f rdc5a1f26 41 41 CONFIG_HID_OUT = generic 42 42 43 # Load disk drivers on startup 44 CONFIG_START_BD = n 45 46 # Mount /data on startup 47 CONFIG_MOUNT_DATA = n 48 43 49 # Barebone build with essential binaries only 44 50 CONFIG_BAREBONE = y -
defaults/mips64/Makefile.config
r9df6b0f rdc5a1f26 40 40 # Output device class 41 41 CONFIG_HID_OUT = generic 42 43 # Load disk drivers on startup 44 CONFIG_START_BD = n 45 46 # Mount /data on startup 47 CONFIG_MOUNT_DATA = n 48 -
defaults/ppc32/Makefile.config
r9df6b0f rdc5a1f26 38 38 CONFIG_FB = y 39 39 40 # Load disk drivers on startup 41 CONFIG_START_BD = n 42 43 # Mount /data on startup 44 CONFIG_MOUNT_DATA = n 45 40 46 # OHCI root hub power switch, ganged is enough 41 47 OHCI_POWER_SWITCH = ganged -
defaults/sparc32/Makefile.config
r9df6b0f rdc5a1f26 52 52 # Start AP processors by the loader 53 53 CONFIG_AP = y 54 55 # Load disk drivers on startup 56 CONFIG_START_BD = n 57 58 # Mount /data on startup 59 CONFIG_MOUNT_DATA = n 60 -
defaults/sparc64/Makefile.config
r9df6b0f rdc5a1f26 52 52 # Start AP processors by the loader 53 53 CONFIG_AP = y 54 55 # Load disk drivers on startup 56 CONFIG_START_BD = n 57 58 # Mount /data on startup 59 CONFIG_MOUNT_DATA = n 60 -
defaults/special/Makefile.config
r9df6b0f rdc5a1f26 28 28 # Compile kernel tests 29 29 CONFIG_TEST = y 30 31 # Load disk drivers on startup 32 CONFIG_START_BD = n 33 -
kernel/arch/ia64/src/drivers/ski.c
r9df6b0f rdc5a1f26 61 61 static outdev_operations_t skidev_ops = { 62 62 .write = ski_putchar, 63 .redraw = NULL, 64 .scroll_up = NULL, 65 .scroll_down = NULL 63 .redraw = NULL 66 64 }; 67 65 -
kernel/arch/mips32/src/mach/malta/malta.c
r9df6b0f rdc5a1f26 92 92 static outdev_operations_t yamon_outdev_ops = { 93 93 .write = yamon_putchar, 94 .redraw = NULL, 95 .scroll_up = NULL, 96 .scroll_down = NULL 94 .redraw = NULL 97 95 }; 98 96 -
kernel/arch/sparc64/src/drivers/niagara.c
r9df6b0f rdc5a1f26 63 63 static outdev_operations_t niagara_ops = { 64 64 .write = niagara_putchar, 65 .redraw = NULL, 66 .scroll_up = NULL, 67 .scroll_down = NULL 65 .redraw = NULL 68 66 }; 69 67 -
kernel/genarch/include/genarch/fb/fb.h
r9df6b0f rdc5a1f26 66 66 } fb_properties_t; 67 67 68 externoutdev_t *fb_init(fb_properties_t *props);68 outdev_t *fb_init(fb_properties_t *props); 69 69 70 70 #endif -
kernel/genarch/src/drivers/dsrln/dsrlnout.c
r9df6b0f rdc5a1f26 63 63 static outdev_operations_t dsrlndev_ops = { 64 64 .write = dsrlnout_putchar, 65 .redraw = NULL, 66 .scroll_up = NULL, 67 .scroll_down = NULL 65 .redraw = NULL 68 66 }; 69 67 -
kernel/genarch/src/drivers/ega/ega.c
r9df6b0f rdc5a1f26 76 76 static outdev_operations_t egadev_ops = { 77 77 .write = ega_putchar, 78 .redraw = ega_redraw, 79 .scroll_up = NULL, 80 .scroll_down = NULL 78 .redraw = ega_redraw 81 79 }; 82 80 -
kernel/genarch/src/drivers/grlib/uart.c
r9df6b0f rdc5a1f26 100 100 static outdev_operations_t grlib_uart_ops = { 101 101 .write = grlib_uart_putchar, 102 .redraw = NULL, 103 .scroll_up = NULL, 104 .scroll_down = NULL 102 .redraw = NULL 105 103 }; 106 104 -
kernel/genarch/src/drivers/omap/uart.c
r9df6b0f rdc5a1f26 61 61 62 62 static outdev_operations_t omap_uart_ops = { 63 .redraw = NULL, 63 64 .write = omap_uart_putchar, 64 .redraw = NULL,65 .scroll_up = NULL,66 .scroll_down = NULL67 65 }; 68 66 -
kernel/genarch/src/drivers/pl011/pl011.c
r9df6b0f rdc5a1f26 72 72 .write = pl011_uart_putchar, 73 73 .redraw = NULL, 74 .scroll_up = NULL,75 .scroll_down = NULL76 74 }; 77 75 -
kernel/genarch/src/drivers/s3c24xx/uart.c
r9df6b0f rdc5a1f26 95 95 static outdev_operations_t s3c24xx_uart_ops = { 96 96 .write = s3c24xx_uart_putchar, 97 .redraw = NULL, 98 .scroll_up = NULL, 99 .scroll_down = NULL 97 .redraw = NULL 100 98 }; 101 99 -
kernel/genarch/src/fb/fb.c
r9df6b0f rdc5a1f26 56 56 #define INV_COLOR 0xaaaaaa 57 57 58 #define FB_PAGES 859 60 58 #define RED(x, bits) (((x) >> (8 + 8 + 8 - (bits))) & ((1 << (bits)) - 1)) 61 59 #define GREEN(x, bits) (((x) >> (8 + 8 - (bits))) & ((1 << (bits)) - 1)) … … 72 70 73 71 #define BB_POS(instance, col, row) \ 74 ((((instance)->start_row + (row)) % (instance)->rows) * \ 75 (instance)->cols + (col)) 72 ((row) * (instance)->cols + (col)) 76 73 77 74 #define GLYPH_POS(instance, glyph, y) \ … … 95 92 unsigned int yres; 96 93 97 /** Number of rows that fit on framebuffer */98 94 unsigned int rowtrim; 99 95 … … 105 101 unsigned int bgscanbytes; 106 102 107 /** Number of columns in the backbuffer */108 103 unsigned int cols; 109 /** Number of rows in the backbuffer */110 104 unsigned int rows; 111 105 112 /** Starting row in the cyclic backbuffer */113 unsigned int start_row;114 115 /** Top-most visible row (relative to start_row) */116 unsigned int offset_row;117 118 /** Current backbuffer position */119 106 unsigned int position; 120 107 } fb_instance_t; 121 108 122 static void fb_putchar(outdev_t *, wchar_t); 123 static void fb_redraw(outdev_t *); 124 static void fb_scroll_up(outdev_t *); 125 static void fb_scroll_down(outdev_t *); 109 static void fb_putchar(outdev_t *dev, wchar_t ch); 110 static void fb_redraw_internal(fb_instance_t *instance); 111 static void fb_redraw(outdev_t *dev); 126 112 127 113 static outdev_operations_t fbdev_ops = { 128 114 .write = fb_putchar, 129 .redraw = fb_redraw, 130 .scroll_up = fb_scroll_up, 131 .scroll_down = fb_scroll_down 115 .redraw = fb_redraw 132 116 }; 133 117 … … 232 216 unsigned int col, unsigned int row, bool overlay) 233 217 { 218 unsigned int x = COL2X(col); 219 unsigned int y = ROW2Y(row); 220 unsigned int yd; 221 234 222 if (!overlay) 235 223 instance->backbuf[BB_POS(instance, col, row)] = glyph; 236 224 237 /* Do not output if the framebuffer is used by user space */ 238 if ((instance->parea.mapped) && (!console_override)) 239 return; 240 241 /* Check whether the glyph should be visible */ 242 if (row < instance->offset_row) 243 return; 244 245 unsigned int rel_row = row - instance->offset_row; 246 if (rel_row >= instance->rowtrim) 247 return; 248 249 unsigned int x = COL2X(col); 250 unsigned int y = ROW2Y(rel_row); 251 252 for (unsigned int yd = 0; yd < FONT_SCANLINES; yd++) 253 memcpy(&instance->addr[FB_POS(instance, x, y + yd)], 254 &instance->glyphs[GLYPH_POS(instance, glyph, yd)], 255 instance->glyphscanline); 225 if ((!instance->parea.mapped) || (console_override)) { 226 for (yd = 0; yd < FONT_SCANLINES; yd++) 227 memcpy(&instance->addr[FB_POS(instance, x, y + yd)], 228 &instance->glyphs[GLYPH_POS(instance, glyph, yd)], 229 instance->glyphscanline); 230 } 256 231 } 257 232 258 233 /** Scroll screen down by one row 259 234 * 235 * 260 236 */ 261 237 static void screen_scroll(fb_instance_t *instance) 262 238 { 263 239 if ((!instance->parea.mapped) || (console_override)) { 264 for (unsigned int rel_row = 0; rel_row < instance->rowtrim; rel_row++) { 265 unsigned int y = ROW2Y(rel_row); 266 unsigned int row = rel_row + instance->offset_row; 240 unsigned int row; 241 242 for (row = 0; row < instance->rows; row++) { 243 unsigned int y = ROW2Y(row); 244 unsigned int yd; 267 245 268 for ( unsigned intyd = 0; yd < FONT_SCANLINES; yd++) {246 for (yd = 0; yd < FONT_SCANLINES; yd++) { 269 247 unsigned int x; 270 248 unsigned int col; … … 291 269 } 292 270 293 /* 294 * Implement backbuffer scrolling by wrapping around 295 * the cyclic buffer. 296 */ 297 298 instance->start_row++; 299 if (instance->start_row == instance->rows) 300 instance->start_row = 0; 301 271 memmove(instance->backbuf, &instance->backbuf[BB_POS(instance, 0, 1)], 272 instance->cols * (instance->rows - 1) * sizeof(uint16_t)); 302 273 memsetw(&instance->backbuf[BB_POS(instance, 0, instance->rows - 1)], 303 274 instance->cols, 0); … … 363 334 } 364 335 336 /** Print character to screen 337 * 338 * Emulate basic terminal commands. 339 * 340 */ 341 static void fb_putchar(outdev_t *dev, wchar_t ch) 342 { 343 fb_instance_t *instance = (fb_instance_t *) dev->data; 344 spinlock_lock(&instance->lock); 345 346 switch (ch) { 347 case '\n': 348 cursor_remove(instance); 349 instance->position += instance->cols; 350 instance->position -= instance->position % instance->cols; 351 break; 352 case '\r': 353 cursor_remove(instance); 354 instance->position -= instance->position % instance->cols; 355 break; 356 case '\b': 357 cursor_remove(instance); 358 if (instance->position % instance->cols) 359 instance->position--; 360 break; 361 case '\t': 362 cursor_remove(instance); 363 do { 364 glyph_draw(instance, fb_font_glyph(' '), 365 instance->position % instance->cols, 366 instance->position / instance->cols, false); 367 instance->position++; 368 } while (((instance->position % instance->cols) % 8 != 0) && 369 (instance->position < instance->cols * instance->rows)); 370 break; 371 default: 372 glyph_draw(instance, fb_font_glyph(ch), 373 instance->position % instance->cols, 374 instance->position / instance->cols, false); 375 instance->position++; 376 } 377 378 if (instance->position >= instance->cols * instance->rows) { 379 instance->position -= instance->cols; 380 screen_scroll(instance); 381 } 382 383 cursor_put(instance); 384 385 spinlock_unlock(&instance->lock); 386 } 387 365 388 static void fb_redraw_internal(fb_instance_t *instance) 366 389 { 367 for (unsigned int rel_row = 0; rel_row < instance->rowtrim; rel_row++) { 368 unsigned int y = ROW2Y(rel_row); 369 unsigned int row = rel_row + instance->offset_row; 370 371 for (unsigned int yd = 0; yd < FONT_SCANLINES; yd++) { 390 unsigned int row; 391 392 for (row = 0; row < instance->rowtrim; row++) { 393 unsigned int y = ROW2Y(row); 394 unsigned int yd; 395 396 for (yd = 0; yd < FONT_SCANLINES; yd++) { 372 397 unsigned int x; 373 398 unsigned int col; … … 403 428 } 404 429 405 /** Print character to screen406 *407 * Emulate basic terminal commands.408 *409 */410 static void fb_putchar(outdev_t *dev, wchar_t ch)411 {412 fb_instance_t *instance = (fb_instance_t *) dev->data;413 spinlock_lock(&instance->lock);414 415 switch (ch) {416 case '\n':417 cursor_remove(instance);418 instance->position += instance->cols;419 instance->position -= instance->position % instance->cols;420 break;421 case '\r':422 cursor_remove(instance);423 instance->position -= instance->position % instance->cols;424 break;425 case '\b':426 cursor_remove(instance);427 if (instance->position % instance->cols)428 instance->position--;429 break;430 case '\t':431 cursor_remove(instance);432 do {433 glyph_draw(instance, fb_font_glyph(' '),434 instance->position % instance->cols,435 instance->position / instance->cols, false);436 instance->position++;437 } while (((instance->position % instance->cols) % 8 != 0) &&438 (instance->position < instance->cols * instance->rows));439 break;440 default:441 glyph_draw(instance, fb_font_glyph(ch),442 instance->position % instance->cols,443 instance->position / instance->cols, false);444 instance->position++;445 }446 447 if (instance->position >= instance->cols * instance->rows) {448 instance->position -= instance->cols;449 screen_scroll(instance);450 }451 452 cursor_put(instance);453 454 spinlock_unlock(&instance->lock);455 }456 457 /** Scroll the framebuffer up458 *459 */460 static void fb_scroll_up(outdev_t *dev)461 {462 fb_instance_t *instance = (fb_instance_t *) dev->data;463 spinlock_lock(&instance->lock);464 465 if (instance->offset_row >= instance->rowtrim / 2)466 instance->offset_row -= instance->rowtrim / 2;467 else468 instance->offset_row = 0;469 470 fb_redraw_internal(instance);471 cursor_put(instance);472 473 spinlock_unlock(&instance->lock);474 }475 476 /** Scroll the framebuffer down477 *478 */479 static void fb_scroll_down(outdev_t *dev)480 {481 fb_instance_t *instance = (fb_instance_t *) dev->data;482 spinlock_lock(&instance->lock);483 484 if (instance->offset_row + instance->rowtrim / 2 <=485 instance->rows - instance->rowtrim)486 instance->offset_row += instance->rowtrim / 2;487 else488 instance->offset_row = instance->rows - instance->rowtrim;489 490 fb_redraw_internal(instance);491 cursor_put(instance);492 493 spinlock_unlock(&instance->lock);494 }495 496 430 /** Refresh the screen 497 431 * … … 589 523 instance->yres = props->y; 590 524 instance->scanline = props->scan; 591 592 instance->rowtrim = Y2ROW(instance->yres); 525 instance->position = 0; 593 526 594 527 instance->cols = X2COL(instance->xres); 595 instance->rows = FB_PAGES * instance->rowtrim; 596 597 instance->start_row = instance->rows - instance->rowtrim; 598 instance->offset_row = instance->start_row; 599 instance->position = instance->start_row * instance->cols; 528 instance->rows = Y2ROW(instance->yres); 529 530 instance->rowtrim = instance->rows; 600 531 601 532 instance->glyphscanline = FONT_WIDTH * instance->pixelbytes; -
kernel/genarch/src/kbrd/kbrd.c
r9df6b0f rdc5a1f26 56 56 #include <arch.h> 57 57 #include <macros.h> 58 #include <str.h>59 58 60 59 #define IGNORE_CODE 0x7f … … 66 65 67 66 static indev_operations_t kbrd_raw_ops = { 68 .poll = NULL, 69 .signal = NULL 67 .poll = NULL 70 68 }; 71 69 … … 106 104 bool shift; 107 105 bool capslock; 108 wchar_t ch;109 106 110 107 spinlock_lock(&instance->keylock); … … 130 127 131 128 if (shift) 132 ch = sc_secondary_map[sc];129 indev_push_character(instance->sink, sc_secondary_map[sc]); 133 130 else 134 ch = sc_primary_map[sc]; 135 136 switch (ch) { 137 case U_PAGE_UP: 138 indev_signal(instance->sink, INDEV_SIGNAL_SCROLL_UP); 139 break; 140 case U_PAGE_DOWN: 141 indev_signal(instance->sink, INDEV_SIGNAL_SCROLL_DOWN); 142 break; 143 default: 144 indev_push_character(instance->sink, ch); 145 } 146 131 indev_push_character(instance->sink, sc_primary_map[sc]); 147 132 break; 148 133 } -
kernel/genarch/src/srln/srln.c
r9df6b0f rdc5a1f26 43 43 44 44 static indev_operations_t srln_raw_ops = { 45 .poll = NULL, 46 .signal = NULL 45 .poll = NULL 47 46 }; 48 47 -
kernel/generic/include/console/chardev.h
r9df6b0f rdc5a1f26 43 43 #define INDEV_BUFLEN 512 44 44 45 /** Input character device out-of-band signal type. */46 typedef enum {47 INDEV_SIGNAL_SCROLL_UP = 0,48 INDEV_SIGNAL_SCROLL_DOWN49 } indev_signal_t;50 51 45 struct indev; 52 46 53 /* *Input character device operations interface. */47 /* Input character device operations interface. */ 54 48 typedef struct { 55 49 /** Read character directly from device, assume interrupts disabled. */ 56 50 wchar_t (* poll)(struct indev *); 57 58 /** Signal out-of-band condition. */59 void (* signal)(struct indev *, indev_signal_t);60 51 } indev_operations_t; 61 52 … … 76 67 } indev_t; 77 68 69 78 70 struct outdev; 79 71 80 /* *Output character device operations interface. */72 /* Output character device operations interface. */ 81 73 typedef struct { 82 74 /** Write character to output. */ … … 85 77 /** Redraw any previously cached characters. */ 86 78 void (* redraw)(struct outdev *); 87 88 /** Scroll up in the device cache. */89 void (* scroll_up)(struct outdev *);90 91 /** Scroll down in the device cache. */92 void (* scroll_down)(struct outdev *);93 79 } outdev_operations_t; 94 80 … … 113 99 extern void indev_push_character(indev_t *, wchar_t); 114 100 extern wchar_t indev_pop_character(indev_t *); 115 extern void indev_signal(indev_t *, indev_signal_t);116 101 117 102 extern void outdev_initialize(const char *, outdev_t *, -
kernel/generic/src/console/chardev.c
r9df6b0f rdc5a1f26 94 94 { 95 95 if (atomic_get(&haltstate)) { 96 /* 97 * If we are here, we are hopefully on the processor that 96 /* If we are here, we are hopefully on the processor that 98 97 * issued the 'halt' command, so proceed to read the character 99 98 * directly from input … … 116 115 waitq_sleep(&indev->wq); 117 116 irq_spinlock_lock(&indev->lock, true); 118 wchar_t ch = indev->buffer[(indev->index - indev->counter) % 119 INDEV_BUFLEN]; 117 wchar_t ch = indev->buffer[(indev->index - indev->counter) % INDEV_BUFLEN]; 120 118 indev->counter--; 121 119 irq_spinlock_unlock(&indev->lock, true); 122 120 123 121 return ch; 124 }125 126 /** Signal out-of-band condition127 *128 * @param indev Input character device.129 * @param signal Out-of-band condition to signal.130 *131 */132 void indev_signal(indev_t *indev, indev_signal_t signal)133 {134 if ((indev != NULL) && (indev->op != NULL) &&135 (indev->op->signal != NULL))136 indev->op->signal(indev, signal);137 122 } 138 123 -
kernel/generic/src/console/console.c
r9df6b0f rdc5a1f26 84 84 static outdev_t stdout_source; 85 85 86 static void stdin_signal(indev_t *, indev_signal_t);87 88 86 static indev_operations_t stdin_ops = { 89 .poll = NULL, 90 .signal = stdin_signal 87 .poll = NULL 91 88 }; 92 89 93 90 static void stdout_write(outdev_t *, wchar_t); 94 91 static void stdout_redraw(outdev_t *); 95 static void stdout_scroll_up(outdev_t *);96 static void stdout_scroll_down(outdev_t *);97 92 98 93 static outdev_operations_t stdout_ops = { 99 94 .write = stdout_write, 100 .redraw = stdout_redraw, 101 .scroll_up = stdout_scroll_up, 102 .scroll_down = stdout_scroll_down 95 .redraw = stdout_redraw 103 96 }; 104 97 … … 120 113 } 121 114 122 static void stdin_signal(indev_t *indev, indev_signal_t signal)123 {124 switch (signal) {125 case INDEV_SIGNAL_SCROLL_UP:126 if (stdout != NULL)127 stdout_scroll_up(stdout);128 break;129 case INDEV_SIGNAL_SCROLL_DOWN:130 if (stdout != NULL)131 stdout_scroll_down(stdout);132 break;133 }134 }135 136 115 void stdout_wire(outdev_t *outdev) 137 116 { … … 157 136 if ((sink) && (sink->op->redraw)) 158 137 sink->op->redraw(sink); 159 }160 }161 162 static void stdout_scroll_up(outdev_t *dev)163 {164 list_foreach(dev->list, link, outdev_t, sink) {165 if ((sink) && (sink->op->scroll_up))166 sink->op->scroll_up(sink);167 }168 }169 170 static void stdout_scroll_down(outdev_t *dev)171 {172 list_foreach(dev->list, link, outdev_t, sink) {173 if ((sink) && (sink->op->scroll_down))174 sink->op->scroll_down(sink);175 138 } 176 139 } … … 266 229 } 267 230 } 268 269 231 if (chr_encode(ch, buf, &offset, buflen - 1) == EOK) { 270 232 putchar(ch); … … 302 264 303 265 /** Flush characters that are stored in the output buffer 304 * 266 * 305 267 */ 306 268 void kio_flush(void) … … 332 294 333 295 /** Put a character into the output buffer. 334 * 296 * 335 297 * The caller is required to hold kio_lock 336 298 */ -
uspace/Makefile
r9df6b0f rdc5a1f26 176 176 # 177 177 178 ifeq ($(UARCH), $(filter $(UARCH),amd64 ia32 ia64)) 178 ifeq ($(UARCH),amd64) 179 DIRS += \ 180 drv/infrastructure/rootpc \ 181 drv/bus/pci/pciintel \ 182 drv/bus/isa \ 183 drv/char/ns8250 \ 184 drv/time/cmos-rtc \ 185 srv/hw/irc/apic \ 186 srv/hw/irc/i8259 187 endif 188 189 ifeq ($(UARCH),ia32) 179 190 DIRS += \ 180 191 drv/infrastructure/rootpc \ -
uspace/app/init/init.c
r9df6b0f rdc5a1f26 59 59 #define TMPFS_FS_TYPE "tmpfs" 60 60 #define TMPFS_MOUNT_POINT "/tmp" 61 62 #define DATA_FS_TYPE "fat" 63 #define DATA_DEVICE "bd/ata1disk0" 64 #define DATA_MOUNT_POINT "/data" 61 65 62 66 #define SRV_CONSOLE "/srv/console" … … 312 316 } 313 317 318 static bool mount_data(void) 319 { 320 int rc = mount(DATA_FS_TYPE, DATA_MOUNT_POINT, DATA_DEVICE, "wtcache", 0, 0); 321 return mount_report("Data filesystem", DATA_MOUNT_POINT, DATA_FS_TYPE, 322 DATA_DEVICE, rc); 323 } 324 314 325 int main(int argc, char *argv[]) 315 326 { … … 355 366 srv_start("/srv/clipboard"); 356 367 srv_start("/srv/remcons"); 368 369 /* 370 * Start these synchronously so that mount_data() can be 371 * non-blocking. 372 */ 373 #ifdef CONFIG_START_BD 374 srv_start("/srv/ata_bd"); 375 #endif 376 377 #ifdef CONFIG_MOUNT_DATA 378 /* Make sure fat is running. */ 379 if (str_cmp(STRING(RDFMT), "fat") != 0) 380 srv_start("/srv/fat"); 381 382 mount_data(); 383 #else 384 (void) mount_data; 385 #endif 357 386 358 387 srv_start("/srv/input", HID_INPUT); -
uspace/drv/bus/usb/uhci/hc.c
r9df6b0f rdc5a1f26 123 123 memcpy(cmds, uhci_irq_commands, sizeof(uhci_irq_commands)); 124 124 uhci_regs_t *registers = (uhci_regs_t *) RNGABSPTR(*regs); 125 cmds[0].addr = (void *)®isters->usbsts;126 cmds[3].addr = (void *)®isters->usbsts;125 cmds[0].addr = ®isters->usbsts; 126 cmds[3].addr = ®isters->usbsts; 127 127 128 128 return EOK; -
uspace/drv/bus/usb/uhci/hc.h
r9df6b0f rdc5a1f26 46 46 typedef struct uhci_regs { 47 47 /** Command register, controls HC behaviour */ 48 ioport16_t usbcmd;48 uint16_t usbcmd; 49 49 #define UHCI_CMD_MAX_PACKET (1 << 7) 50 50 #define UHCI_CMD_CONFIGURE (1 << 6) … … 57 57 58 58 /** Status register, 1 means interrupt is asserted (if enabled) */ 59 ioport16_t usbsts;59 uint16_t usbsts; 60 60 #define UHCI_STATUS_HALTED (1 << 5) 61 61 #define UHCI_STATUS_PROCESS_ERROR (1 << 4) … … 68 68 69 69 /** Interrupt enabled registers */ 70 ioport16_t usbintr;70 uint16_t usbintr; 71 71 #define UHCI_INTR_SHORT_PACKET (1 << 3) 72 72 #define UHCI_INTR_COMPLETE (1 << 2) … … 75 75 76 76 /** Register stores frame number used in SOF packet */ 77 ioport16_t frnum;77 uint16_t frnum; 78 78 79 79 /** Pointer(physical) to the Frame List */ 80 ioport32_t flbaseadd;80 uint32_t flbaseadd; 81 81 82 82 /** SOF modification to match external timers */ 83 ioport8_t sofmod;83 uint8_t sofmod; 84 84 } uhci_regs_t; 85 85
Note:
See TracChangeset
for help on using the changeset viewer.