void dmw_keypad_late_init(void) { char *tmp = NULL; int val = 0; struct stdio_dev keypaddev; char *stdinname = getenv ("stdin"); /* register as input device */ memset (&keypaddev, 0, sizeof(keypaddev)); strcpy(keypaddev.name, DEVNAME); keypaddev.flags = DEV_FLAGS_INPUT | DEV_FLAGS_SYSTEM; keypaddev.putc = NULL; keypaddev.puts = NULL; keypaddev.getc = dmw_keypad_getc; keypaddev.tstc = dmw_keypad_tstc; val = stdio_register (&keypaddev); if (val == 0) { /* check if this is the standard input device */ if(strcmp(stdinname,DEVNAME) == 0) { /* reassign the console */ if(OVERWRITE_CONSOLE == 0) { val = console_assign(stdin, DEVNAME); if (val != 0) { /* XXX */ } } } } tmp = getenv("keypad_debug_on"); debug_on = tmp ? simple_strtoul(tmp, NULL, 10) : 0; }
int drv_isa_kbd_init (void) { int error; struct stdio_dev kbddev ; char *stdinname = getenv ("stdin"); if(isa_kbd_init()==-1) return -1; memset (&kbddev, 0, sizeof(kbddev)); strcpy(kbddev.name, DEVNAME); kbddev.flags = DEV_FLAGS_INPUT | DEV_FLAGS_SYSTEM; kbddev.putc = NULL ; kbddev.puts = NULL ; kbddev.getc = kbd_getc ; kbddev.tstc = kbd_testc ; error = stdio_register (&kbddev); if(error==0) { /* check if this is the standard input device */ if(strcmp(stdinname,DEVNAME)==0) { /* reassign the console */ if(overwrite_console()) { return 1; } error=console_assign(stdin,DEVNAME); if(error==0) return 1; else return error; } return 1; } return error; }
int drv_video_init(void) { int error, devices = 1 ; struct stdio_dev vgadev ; if (video_inited) return 1; video_inited = 1; video_init(); memset (&vgadev, 0, sizeof(vgadev)); strcpy(vgadev.name, VIDEO_NAME); vgadev.flags = DEV_FLAGS_OUTPUT | DEV_FLAGS_SYSTEM; vgadev.putc = video_putc; vgadev.puts = video_puts; vgadev.getc = NULL; vgadev.tstc = NULL; vgadev.start = video_start; error = stdio_register (&vgadev); if (error == 0) { char *s = getenv("stdout"); if (s && strcmp(s, VIDEO_NAME)==0) { if (overwrite_console()) return 1; error = console_assign(stdout, VIDEO_NAME); if (error == 0) return 1; else return error; } return 1; } return error; }
int last_stage_init (void) { #if defined(CONFIG_DBOX2_ENV_READ_NFS) || defined(CONFIG_DBOX2_ENV_READ_TFTP) load_env_net (); #endif #ifdef CONFIG_LCD_BOARD lcd_init (); strcpy (lcddev.name, "lcd"); lcddev.putc = lcd_putc; lcddev.puts = lcd_puts; stdio_register (&lcddev); #endif /* CONFIG_LCD_BOARD */ #ifdef CONFIG_DBOX2_LCD_LOGO lcd_load (); #endif /* CONFIG_DBOX2_LCD_LOGO */ #ifdef CONFIG_DBOX2_FB_LOGO fb_load (); #endif /* CONFIG_DBOX2_FB_LOGO */ return 1; }
int drv_video_init(void) { int error, devices = 1; struct stdio_dev videodev; u8 *dst; u32 fbmem_size = LCD_X_RES * LCD_Y_RES * LCD_PIXEL_SIZE + ACTIVE_VIDEO_MEM_OFFSET; dst = malloc(fbmem_size); if (dst == NULL) { printf("Failed to alloc FB memory\n"); return -1; } #ifdef EASYLOGO_ENABLE_GZIP unsigned char *data = EASYLOGO_DECOMP_BUFFER; unsigned long src_len = EASYLOGO_ENABLE_GZIP; error = gunzip(data, bfin_logo.size, bfin_logo.data, &src_len); bfin_logo.data = data; #elif defined(EASYLOGO_ENABLE_LZMA) unsigned char *data = EASYLOGO_DECOMP_BUFFER; SizeT lzma_len = bfin_logo.size; error = lzmaBuffToBuffDecompress(data, &lzma_len, bfin_logo.data, EASYLOGO_ENABLE_LZMA); bfin_logo.data = data; #else error = 0; #endif if (error) { puts("Failed to decompress logo\n"); free(dst); return -1; } memset(dst + ACTIVE_VIDEO_MEM_OFFSET, bfin_logo.data[0], fbmem_size - ACTIVE_VIDEO_MEM_OFFSET); dma_bitblit(dst + ACTIVE_VIDEO_MEM_OFFSET, &bfin_logo, (LCD_X_RES - bfin_logo.width) / 2, (LCD_Y_RES - bfin_logo.height) / 2); video_init(dst); /* Video initialization */ memset(&videodev, 0, sizeof(videodev)); strcpy(videodev.name, "video"); videodev.ext = DEV_EXT_VIDEO; /* Video extensions */ videodev.flags = DEV_FLAGS_SYSTEM; /* No Output */ videodev.putc = video_putc; /* 'putc' function */ videodev.puts = video_puts; /* 'puts' function */ error = stdio_register(&videodev); return (error == 0) ? devices : error; }
int drv_dbox2_init (void) { #ifdef CONFIG_DBOX2_FB fb_init (); strcpy (fbdev.name, "fb"); stdio_register (&fbdev); #endif /* CONFIG_DBOX2_FB */ return 1; }
int input_stdio_register(struct stdio_dev *dev) { int error; error = stdio_register(dev); /* check if this is the standard input device */ if (!error && strcmp(getenv("stdin"), dev->name) == 0) { /* reassign the console */ if (OVERWRITE_CONSOLE || console_assign(stdin, dev->name)) return -1; } return 0; }
int drv_jtag_console_init(void) { struct stdio_dev dev; int ret; memset(&dev, 0x00, sizeof(dev)); strcpy(dev.name, "jtag"); dev.flags = DEV_FLAGS_OUTPUT | DEV_FLAGS_INPUT | DEV_FLAGS_SYSTEM; dev.putc = jtag_putc; dev.puts = jtag_puts; dev.tstc = jtag_tstc; dev.getc = jtag_getc; ret = stdio_register(&dev); return (ret == 0 ? 1 : ret); }
int drv_logbuff_init (void) { struct stdio_dev logdev; int rc; /* Device initialization */ memset (&logdev, 0, sizeof (logdev)); strcpy (logdev.name, "logbuff"); logdev.ext = 0; /* No extensions */ logdev.flags = DEV_FLAGS_OUTPUT; /* Output only */ logdev.putc = logbuff_putc; /* 'putc' function */ logdev.puts = logbuff_puts; /* 'puts' function */ rc = stdio_register (&logdev); return (rc == 0) ? 1 : rc; }
int drv_nc_init (void) { struct stdio_dev dev; int rc; memset (&dev, 0, sizeof (dev)); strcpy (dev.name, "nc"); dev.flags = DEV_FLAGS_OUTPUT | DEV_FLAGS_INPUT | DEV_FLAGS_SYSTEM; dev.start = nc_start; dev.putc = nc_putc; dev.puts = nc_puts; dev.getc = nc_getc; dev.tstc = nc_tstc; rc = stdio_register (&dev); return (rc == 0) ? 1 : rc; }
/* search for keyboard and register it if found */ int drv_keyboard_init(void) { int error = 0; struct stdio_dev kbd_dev; if (0) { /* register the keyboard */ memset (&kbd_dev, 0, sizeof(struct stdio_dev)); strcpy(kbd_dev.name, "kbd"); kbd_dev.flags = DEV_FLAGS_INPUT | DEV_FLAGS_SYSTEM; kbd_dev.putc = NULL; kbd_dev.puts = NULL; kbd_dev.getc = smc1_getc; kbd_dev.tstc = smc1_tstc; error = stdio_register (&kbd_dev); } else { lcd_is_enabled = 0; lcd_disable(); } return error; }
void serial_stdio_init (void) { struct stdio_dev dev; struct serial_device *s = serial_devices; while (s) { memset (&dev, 0, sizeof (dev)); strcpy (dev.name, s->name); dev.flags = DEV_FLAGS_OUTPUT | DEV_FLAGS_INPUT; dev.start = s->init; dev.putc = s->putc; dev.puts = s->puts; dev.getc = s->getc; dev.tstc = s->tstc; stdio_register (&dev); s = s->next; } }