rtems_device_driver console_initialize( rtems_device_major_number major, rtems_device_minor_number minor, void *arg ) { rtems_status_code status; int i; for (i = 0; i < NUM_DEVS; i++) { imx_uart_init(i); } rtems_termios_initialize(); /* /dev/console and /dev/tty0 are the same */ status = rtems_io_register_name("/dev/console", major, 0); if (status != RTEMS_SUCCESSFUL) { rtems_panic("%s:%d Error registering /dev/console :: %d\n", __FUNCTION__, __LINE__, status); } status = rtems_io_register_name("/dev/tty0", major, 0); if (status != RTEMS_SUCCESSFUL) { rtems_panic("%s:%d Error registering /dev/tty0 :: %d\n", __FUNCTION__, __LINE__, status); } status = rtems_io_register_name("/dev/tty1", major, 1); if (status != RTEMS_SUCCESSFUL) { rtems_panic("%s:%d Error registering /dev/tty1 :: %d\n", __FUNCTION__, __LINE__, status); } return RTEMS_SUCCESSFUL; }
rtems_device_driver console_initialize( rtems_device_major_number major, rtems_device_minor_number minor, void *arg ) { rtems_status_code sc = RTEMS_SUCCESSFUL; const console_generic_info *info_table = console_generic_info_table; rtems_device_minor_number count = console_generic_info_count; rtems_device_minor_number console = console_generic_minor; if (count <= 0) { mpc55xx_fatal(MPC55XX_FATAL_CONSOLE_GENERIC_COUNT); } rtems_termios_initialize(); for (minor = 0; minor < count; ++minor) { const console_generic_info *info = info_table + minor; sc = rtems_io_register_name(info->device_path, major, minor); if (sc != RTEMS_SUCCESSFUL) { mpc55xx_fatal(MPC55XX_FATAL_CONSOLE_GENERIC_REGISTER); } } sc = rtems_io_register_name(CONSOLE_DEVICE_NAME, major, console); if (sc != RTEMS_SUCCESSFUL) { mpc55xx_fatal(MPC55XX_FATAL_CONSOLE_GENERIC_REGISTER_CONSOLE); } console_generic_char_out_do_init(); return sc; }
/* console_initialize -- * This routine initializes the console IO drivers and register devices * in RTEMS I/O system. * * PARAMETERS: * major - major console device number * minor - minor console device number (not used) * arg - device initialize argument * * RETURNS: * RTEMS error code (RTEMS_SUCCESSFUL if device initialized successfuly) */ rtems_device_driver console_initialize(rtems_device_major_number major, rtems_device_minor_number minor, void *arg) { rtems_status_code status; #ifdef SH4_WITH_IPL /* booting from flash we cannot have IPL console */ if (boot_mode != SH4_BOOT_MODE_IPL && console_mode == CONSOLE_MODE_IPL) console_mode = CONSOLE_MODE_INT; /* break out from gdb if neccessary */ if (boot_mode == SH4_BOOT_MODE_IPL && console_mode != CONSOLE_MODE_IPL) ipl_finish(); #endif /* * Set up TERMIOS */ if ((console_mode != CONSOLE_MODE_RAW) && (console_mode != CONSOLE_MODE_IPL)) rtems_termios_initialize (); /* * Register the devices */ status = rtems_io_register_name ("/dev/console", major, 0); if (status != RTEMS_SUCCESSFUL) rtems_fatal_error_occurred (status); status = rtems_io_register_name ("/dev/aux", major, 1); if (status != RTEMS_SUCCESSFUL) rtems_fatal_error_occurred (status); if (console_mode == CONSOLE_MODE_RAW) { rtems_status_code sc; sc = sh4uart_init(&sh4_uarts[0], /* uart */ NULL, /* tty */ 1, /* UART channel number */ 0); /* Poll-mode */ if (sc == RTEMS_SUCCESSFUL) sc = sh4uart_reset(&sh4_uarts[0]); sc = sh4uart_init(&sh4_uarts[1], /* uart */ NULL, /* tty */ 2, /* UART channel number */ 0); /* Poll-mode */ if (sc == RTEMS_SUCCESSFUL) sc = sh4uart_reset(&sh4_uarts[1]); return sc; } return RTEMS_SUCCESSFUL; }
/*-------------------------------------------------------------------------+ | Console device driver INITIALIZE entry point. +--------------------------------------------------------------------------+ | Initilizes the I/O console (keyboard + VGA display) driver. +--------------------------------------------------------------------------*/ rtems_device_driver console_initialize(rtems_device_major_number major, rtems_device_minor_number minor, void *arg) { rtems_status_code status; /* * The video was initialized in the start.s code and does not need * to be reinitialized. */ /* * Set up TERMIOS */ rtems_termios_initialize (); /* * Do device-specific initialization */ /* RTEMS calls this routine once with 'minor'==0; loop through * all known instances... */ for (minor=0; minor < sizeof(ttyS)/sizeof(ttyS[0]); minor++) { char *nm; /* * Skip ports (possibly not supported by BSP...) we have no ISR for */ if ( ! ttyS[minor].isr ) continue; /* * Register the device */ status = rtems_io_register_name ((nm=ttyS[minor].name), major, minor); if ( RTEMS_SUCCESSFUL==status && BSPConsolePort == minor) { printk("Registering /dev/console as minor %d (==%s)\n", minor, ttyS[minor].name); /* also register an alias */ status = rtems_io_register_name ( (nm="/dev/console"), major, minor); } if (status != RTEMS_SUCCESSFUL) { printk("Error registering %s!\n",nm); rtems_fatal_error_occurred (status); } } return RTEMS_SUCCESSFUL; } /* console_initialize */
rtems_device_driver console_initialize( rtems_device_major_number major, rtems_device_minor_number minor, void *arg ) { rtems_status_code status; int i; char console_name[16]; rtems_termios_initialize(); /* Find UARTs */ leon3_console_scan_uarts(); /* Update syscon_uart_index to index used as /dev/console * Let user select System console by setting syscon_uart_index. If the * BSP is to provide the default UART (syscon_uart_index==0): * non-MP: APBUART[0] is system console * MP: LEON CPU index select UART */ if (syscon_uart_index == 0) { #if defined(RTEMS_MULTIPROCESSING) syscon_uart_index = LEON3_Cpu_Index; #else syscon_uart_index = 0; #endif } else { syscon_uart_index = syscon_uart_index - 1; /* User selected sys-console */ } /* Register Device Names * * 0 /dev/console - APBUART[USER-SELECTED, DEFAULT=APBUART[0]] * 1 /dev/console_a - APBUART[0] (by default not present because is console) * 2 /dev/console_b - APBUART[1] * ... * * On a MP system one should not open UARTs that other OS instances use. */ if (syscon_uart_index < uarts) { status = rtems_io_register_name("/dev/console", major, 0); if (status != RTEMS_SUCCESSFUL) bsp_fatal(LEON3_FATAL_CONSOLE_REGISTER_DEV); } strcpy(console_name,"/dev/console_a"); for (i = 0; i < uarts; i++) { if (i == syscon_uart_index) continue; /* skip UART that is registered as /dev/console */ console_name[13] = 'a' + i; rtems_io_register_name( console_name, major, i+1); } return RTEMS_SUCCESSFUL; }
rtems_device_driver console_initialize( rtems_device_major_number major, rtems_device_minor_number minor, void *arg ) { rtems_status_code status; int i, uart0; char console_name[16]; extern rtems_configuration_table Configuration; rtems_termios_initialize(); /* Find UARTs */ scan_uarts(); if (Configuration.User_multiprocessing_table != NULL) uart0 = LEON3_Cpu_Index; else uart0 = 0; /* Register Device Names */ if (uarts && (uart0 < uarts)) { status = rtems_io_register_name( "/dev/console", major, 0 ); if (status != RTEMS_SUCCESSFUL) rtems_fatal_error_occurred(status); strcpy(console_name,"/dev/console_a"); for (i = uart0+1; i < uarts; i++) { console_name[13]++; status = rtems_io_register_name( console_name, major, i); } } /* * Initialize Hardware */ if ((Configuration.User_multiprocessing_table == NULL) || ((Configuration.User_multiprocessing_table)->node == 1)) { for (i = uart0; i < uarts; i++) { LEON3_Console_Uart[i]->ctrl |= LEON_REG_UART_CTRL_RE | LEON_REG_UART_CTRL_TE; LEON3_Console_Uart[i]->status = 0; } } return RTEMS_SUCCESSFUL; }
/*-------------------------------------------------------------------------+ | Console device driver INITIALIZE entry point. +--------------------------------------------------------------------------+ | Initilizes the I/O console (keyboard + VGA display) driver. +--------------------------------------------------------------------------*/ rtems_device_driver console_initialize(rtems_device_major_number major, rtems_device_minor_number minor, void *arg) { rtems_status_code status; /* * Set up TERMIOS */ rtems_termios_initialize (); /* * Do device-specific initialization */ /* 115200-8-N-1, without hardware flow control */ BSP_uart_init(BSPConsolePort, 115200, CHR_8_BITS, 0, 0, 0); /* Set interrupt handler */ if(BSPConsolePort == BSP_UART_COM1) { console_isr_data.name = BSP_UART_COM1_IRQ; console_isr_data.hdl = BSP_uart_termios_isr_com1; } else { assert(BSPConsolePort == BSP_UART_COM2); console_isr_data.name = BSP_UART_COM2_IRQ; console_isr_data.hdl = BSP_uart_termios_isr_com2; } status = BSP_install_rtems_irq_handler(&console_isr_data); if (!status){ printk("Error installing serial console interrupt handler!\n"); rtems_fatal_error_occurred(status); } /* * Register the device */ status = rtems_io_register_name ("/dev/console", major, 0); if (status != RTEMS_SUCCESSFUL) { printk("Error registering console device!\n"); rtems_fatal_error_occurred (status); } if(BSPConsolePort == BSP_UART_COM1) { printk("Initialized console on port COM1 115200-8-N-1\n\n"); } else { printk("Initialized console on port COM2 115200-8-N-1\n\n"); } return RTEMS_SUCCESSFUL; } /* console_initialize */
rtems_device_driver sh_sci_initialize( rtems_device_major_number major, rtems_device_minor_number minor, void *arg ) { rtems_device_driver status ; rtems_device_minor_number i; /* * register all possible devices. * the initialization of the hardware is done by sci_open */ for ( i = 0 ; i < SCI_MINOR_DEVICES ; i++ ) { status = rtems_io_register_name( sci_device[i].name, major, sci_device[i].minor ); if (status != RTEMS_SUCCESSFUL) rtems_fatal_error_occurred(status); } /* default hardware setup */ return RTEMS_SUCCESSFUL; }
/* * paux device driver INITIALIZE entry point. */ rtems_device_driver paux_initialize( rtems_device_major_number major, rtems_device_minor_number minor, void *arg) { rtems_status_code status; /* * Set up TERMIOS */ rtems_termios_initialize(); printk( "PS/2 mouse probe.\n" ); if( psaux_init() < 0 ) { printk("Error detecting PS/2 mouse --\n"); /* we might want to finish the application here !!! */ } open_aux(); /* * Register the device */ status = rtems_io_register_name ("/dev/mouse", major, 0); if (status != RTEMS_SUCCESSFUL) { printk("Error registering paux device!\n"); rtems_fatal_error_occurred (status); } return RTEMS_SUCCESSFUL; } /* tty_initialize */
rtems_device_driver flash_initialize( rtems_device_major_number major, rtems_device_minor_number minor, void *arg ) { rtems_status_code sc; int i; char devname[16]; for (i=0;i<FLASH_PARTITION_COUNT;i++) { sprintf(devname, "/dev/flash%d", i+1); sc = rtems_io_register_name(devname, major, i); RTEMS_CHECK_SC(sc, "Create flash device"); } sc = rtems_semaphore_create( rtems_build_name('F', 'L', 'S', 'H'), 1, RTEMS_SIMPLE_BINARY_SEMAPHORE, 0, &flash_lock ); RTEMS_CHECK_SC(sc, "create semaphore"); return RTEMS_SUCCESSFUL; }
rtems_device_driver ir_initialize( rtems_device_major_number major, rtems_device_minor_number minor, void *arg ) { rtems_status_code sc; rtems_isr_entry dummy; sc = rtems_io_register_name(DEVICE_NAME, major, 0); RTEMS_CHECK_SC(sc, "create IR input device"); sc = rtems_message_queue_create( rtems_build_name('R', 'C', '5', 'Q'), 64, 2, 0, &ir_q ); RTEMS_CHECK_SC(sc, "create IR queue"); rtems_interrupt_catch(interrupt_handler, MM_IRQ_IR, &dummy); bsp_interrupt_vector_enable(MM_IRQ_IR); return RTEMS_SUCCESSFUL; }
rtems_device_driver pfpu_initialize( rtems_device_major_number major, rtems_device_minor_number minor, void *arg ) { rtems_status_code sc; rtems_isr_entry dummy; sc = rtems_io_register_name(DEVICE_NAME, major, 0); RTEMS_CHECK_SC(sc, "create PFPU device"); sc = rtems_semaphore_create( rtems_build_name('P', 'F', 'P', 'U'), 0, RTEMS_SIMPLE_BINARY_SEMAPHORE, 0, &done_sem ); RTEMS_CHECK_SC(sc, "create PFPU done semaphore"); rtems_interrupt_catch(done_handler, MM_IRQ_PFPU, &dummy); bsp_interrupt_vector_enable(MM_IRQ_PFPU); return RTEMS_SUCCESSFUL; }
rtems_device_driver console_initialize( rtems_device_major_number major, rtems_device_minor_number minor, void *arg ) { rtems_status_code status; rtems_termios_initialize(); /* * Make sure the hardware is initialized. */ console_initialize_hardware(); /* * Register Device Names */ status = rtems_io_register_name( "/dev/console", major, 0 ); if (status != RTEMS_SUCCESSFUL) rtems_fatal_error_occurred(status); return RTEMS_SUCCESSFUL; }
/****************************************************** Name: console_initialize Input parameters: MAJOR # of console_driver, minor is always 0, args are always NULL Output parameters: - Description: Reserve resources consumed by this driver TODO: We should pass m340_uart_config table in arg *****************************************************/ rtems_device_driver console_initialize( rtems_device_major_number major, rtems_device_minor_number minor, void *arg ) { rtems_status_code status; int i; /* * Set up TERMIOS */ rtems_termios_initialize (); /* * Do device-specific initialization */ Init_UART_Table(); dbugInitialise (); Fifo_Full_benchmark_timer_initialize(); /* * Register the devices */ for (i=0; i<UART_NUMBER_OF_CHANNELS; i++) { if (m340_uart_config[i].enable) { status = rtems_io_register_name (m340_uart_config[i].name, major, i); if (status != RTEMS_SUCCESSFUL) rtems_fatal_error_occurred (status); } } return RTEMS_SUCCESSFUL; }
rtems_device_driver usbinput_initialize( rtems_device_major_number major, rtems_device_minor_number minor, void *arg ) { rtems_status_code sc; rtems_isr_entry dummy; MM_WRITE(MM_SOFTUSB_CONTROL, SOFTUSB_CONTROL_RESET); mouse_consume = 0; keyboard_consume = 0; midi_consume = 0; sc = rtems_io_register_name(DEVICE_NAME, major, 0); RTEMS_CHECK_SC(sc, "create USB input device"); sc = rtems_message_queue_create( rtems_build_name('U', 'S', 'B', 'I'), 64, 8, 0, &event_q ); RTEMS_CHECK_SC(sc, "create USB event queue"); rtems_interrupt_catch(interrupt_handler, MM_IRQ_USB, &dummy); bsp_interrupt_vector_enable(MM_IRQ_USB); return RTEMS_SUCCESSFUL; }
/* * Test Device Driver Entry Points */ rtems_device_driver termios_test_driver_initialize( rtems_device_major_number major, rtems_device_minor_number minor, void *arg ) { rtems_status_code status; rtems_termios_initialize(); /* * Register Device Names */ (void) rtems_io_register_name( TERMIOS_TEST_DRIVER_DEVICE_NAME, major, 0 ); status = rtems_timer_create(rtems_build_name('T', 'M', 'R', 'X'), &Rx_Timer); if ( status ) rtems_fatal_error_occurred(1);; status = rtems_timer_create(rtems_build_name('T', 'M', 'T', 'X'), &Tx_Timer); if ( status ) rtems_fatal_error_occurred(1);; return RTEMS_SUCCESSFUL; }
/* console_initialize -- * This routine initializes the console IO drivers and register devices * in RTEMS I/O system. * * PARAMETERS: * major - major console device number * minor - minor console device number (not used) * arg - device initialize argument * * RETURNS: * RTEMS error code (RTEMS_SUCCESSFUL if device initialized successfuly) */ rtems_device_driver console_initialize(rtems_device_major_number major, rtems_device_minor_number minor, void *arg) { rtems_status_code status; /* * Set up TERMIOS */ if (console_mode != CONSOLE_MODE_RAW) rtems_termios_initialize (); /* * Register the devices */ status = rtems_io_register_name ("/dev/console", major, 0); if (status != RTEMS_SUCCESSFUL) rtems_fatal_error_occurred (status); status = rtems_io_register_name ("/dev/aux", major, 1); if (status != RTEMS_SUCCESSFUL) rtems_fatal_error_occurred (status); if (console_mode == CONSOLE_MODE_RAW) { rtems_status_code sc; sc = mcfuart_init(&uart[0], /* uart */ NULL, /* tty */ 0, /* interrupt vector number */ 1); /* UART channel number */ if (sc == RTEMS_SUCCESSFUL) sc = mcfuart_reset(&uart[0]); sc = mcfuart_init(&uart[1], /* uart */ NULL, /* tty */ 0, /* interrupt vector number */ 2); /* UART channel number */ if (sc == RTEMS_SUCCESSFUL) sc = mcfuart_reset(&uart[1]); return sc; } return RTEMS_SUCCESSFUL; }
rtems_device_driver versions_initialize( rtems_device_major_number major, rtems_device_minor_number minor, void *arg ) { rtems_status_code sc; sc = rtems_io_register_name(SOC_DEVICE_NAME, major, 0); RTEMS_CHECK_SC(sc, "create SoC version device"); sc = rtems_io_register_name(PCB_DEVICE_NAME, major, 1); RTEMS_CHECK_SC(sc, "create PCB type device"); sc = rtems_io_register_name(PCBREV_DEVICE_NAME, major, 2); RTEMS_CHECK_SC(sc, "create PCB revision device"); return RTEMS_SUCCESSFUL; }
/*************************************************************************** Function : console_initialize Description : This initialises termios, both sets of uart hardware before registering /dev/tty devices for each channel and the system /dev/console. ***************************************************************************/ rtems_device_driver console_initialize( rtems_device_major_number major, rtems_device_minor_number minor, void *arg ) { rtems_status_code status; /* Set up TERMIOS */ rtems_termios_initialize (); /* set io modes for the different channels and initialize device */ IntUartInfo[minor].iomode = TERMIOS_IRQ_DRIVEN; IntUartInitialize(); /* Register the console port */ status = rtems_io_register_name ("/dev/console", major, CONSOLE_PORT); if ( status != RTEMS_SUCCESSFUL ) { rtems_fatal_error_occurred (status); } /* Register the other port */ if ( CONSOLE_PORT != 0 ) { status = rtems_io_register_name ("/dev/tty00", major, 0); if ( status != RTEMS_SUCCESSFUL ) { rtems_fatal_error_occurred (status); } } if ( CONSOLE_PORT != 1 ) { status = rtems_io_register_name ("/dev/tty01", major, 1); if ( status != RTEMS_SUCCESSFUL ) { rtems_fatal_error_occurred (status); } } return(RTEMS_SUCCESSFUL); }
static rtems_device_driver open_driver_initialize( rtems_device_major_number major, rtems_device_minor_number minor, void *arg ) { rtems_status_code sc = rtems_io_register_name(open_driver_path, major, 0); rtems_test_assert(sc == RTEMS_SUCCESSFUL); return RTEMS_SUCCESSFUL; }
static int graes_init3(struct drvmgr_dev *dev) { struct graes_priv *priv; char prefix[32]; rtems_status_code status; priv = dev->priv; /* Do initialization */ if ( graes_driver_io_registered == 0) { /* Register the I/O driver only once for all cores */ if ( graes_register_io(&graes_driver_io_major) ) { /* Failed to register I/O driver */ DBG("GRAES[%d] Failed to register I/O driver\n", dev->minor_drv); dev->priv = NULL; return DRVMGR_FAIL; } graes_driver_io_registered = 1; } /* I/O system registered and initialized * Now we take care of device initialization. */ if ( graes_device_init(priv) ) { DBG("GRAES[%d] Failed to call graes_device_init\n", dev->minor_drv); return DRVMGR_FAIL; } /* Get Filesystem name prefix */ prefix[0] = '\0'; if ( drvmgr_get_dev_prefix(dev, prefix) ) { /* Failed to get prefix, make sure of a unique FS name * by using the driver minor. */ sprintf(priv->devName, "/dev/graes%d", dev->minor_drv); } else { /* Got special prefix, this means we have a bus prefix * And we should use our "bus minor" */ sprintf(priv->devName, "/dev/%sgraes%d", prefix, dev->minor_bus); } DBG("GRAES: add dev %s\n",priv->devName); /* Register Device */ status = rtems_io_register_name(priv->devName, graes_driver_io_major, dev->minor_drv); if (status != RTEMS_SUCCESSFUL) { return status; } return DRVMGR_OK; }
rtems_status_code rtems_termios_device_install( const char *device_file, rtems_device_major_number major, rtems_device_minor_number minor, const rtems_termios_device_handler *handler, void *context ) { rtems_status_code sc; rtems_termios_device_node *new_device_node; rtems_termios_device_node *existing_device_node; new_device_node = malloc(sizeof(*new_device_node)); if (new_device_node == NULL) { return RTEMS_NO_MEMORY; } new_device_node->major = major; new_device_node->minor = minor; new_device_node->handler = handler; new_device_node->context = context; new_device_node->tty = NULL; sc = rtems_semaphore_obtain( rtems_termios_ttyMutex, RTEMS_WAIT, RTEMS_NO_TIMEOUT); if (sc != RTEMS_SUCCESSFUL) { free(new_device_node); return RTEMS_INCORRECT_STATE; } existing_device_node = rtems_termios_find_device_node (major, minor); if (existing_device_node != NULL) { free(new_device_node); rtems_semaphore_release (rtems_termios_ttyMutex); return RTEMS_RESOURCE_IN_USE; } if (device_file != NULL) { sc = rtems_io_register_name (device_file, major, minor); if (sc != RTEMS_SUCCESSFUL) { free(new_device_node); rtems_semaphore_release (rtems_termios_ttyMutex); return RTEMS_UNSATISFIED; } } rtems_chain_append_unprotected( &rtems_termios_devices, &new_device_node->node); rtems_semaphore_release (rtems_termios_ttyMutex); return RTEMS_SUCCESSFUL; }
rtems_device_driver frame_buffer_initialize (rtems_device_major_number major, rtems_device_minor_number minor, void *arg) { rtems_status_code status; printk ("[+] framebuffer started\n"); /* register the devices */ status = rtems_io_register_name ("/dev/fb0", major, 0); if (status != RTEMS_SUCCESSFUL) { printk ("[!] error registering framebuffer\n"); rtems_fatal_error_occurred (status); } status = rtems_io_register_name ("/dev/fb1", major, 1); if (status != RTEMS_SUCCESSFUL) { printk ("[!] error registering framebuffer\n"); rtems_fatal_error_occurred (status); } return RTEMS_SUCCESSFUL; }
static rtems_status_code invalid_initialize( rtems_device_major_number major, rtems_device_minor_number minor, void *arg ) { rtems_status_code sc; sc = rtems_io_register_name(&dev_invalid[0], major, 0); ASSERT_SC(sc); return sc; }
/* * Initialize and register the device */ rtems_device_driver console_initialize( rtems_device_major_number major, rtems_device_minor_number minor, void *arg ) { rtems_status_code status; /* * Set up TERMIOS if needed */ #if UARTS_USE_TERMIOS == 1 rtems_termios_initialize (); #endif /* UARTS_USE_TERMIOS */ /* * Do device-specific initialization */ BSP_output_char = _BSP_output_char; m5xx_uart_initialize(SCI1_MINOR); status = rtems_io_register_name ("/dev/tty0", major, SCI1_MINOR); if (status != RTEMS_SUCCESSFUL) rtems_fatal_error_occurred (status); m5xx_uart_initialize(SCI2_MINOR); status = rtems_io_register_name ("/dev/tty1", major, SCI2_MINOR); if (status != RTEMS_SUCCESSFUL) rtems_fatal_error_occurred (status); /* Now register the RTEMS console */ status = rtems_io_register_name ("/dev/console", major, CONSOLE_MINOR); if (status != RTEMS_SUCCESSFUL) rtems_fatal_error_occurred (status); return RTEMS_SUCCESSFUL; }
rtems_device_driver console_initialize( rtems_device_major_number major, rtems_device_minor_number minor, void *arg ) { rtems_status_code status; rtems_termios_initialize(); /* * Register Device Names */ status = rtems_io_register_name( "/dev/console", major, 0 ); if (status != RTEMS_SUCCESSFUL) rtems_fatal_error_occurred(status); status = rtems_io_register_name( "/dev/console_b", major, 1 ); if (status != RTEMS_SUCCESSFUL) rtems_fatal_error_occurred(status); /* * Initialize Hardware */ LEON_REG.UART_Control_1 |= LEON_REG_UART_CTRL_RE | LEON_REG_UART_CTRL_TE; LEON_REG.UART_Control_2 |= LEON_REG_UART_CTRL_RE | LEON_REG_UART_CTRL_TE | LEON_REG_UART_CTRL_RI; /* rx irq default enable for remote debugger */ LEON_REG.UART_Status_1 = 0; LEON_REG.UART_Status_2 = 0; #if (CONSOLE_USE_INTERRUPTS) console_initialize_interrupts(); #endif return RTEMS_SUCCESSFUL; }
/* * Test Device Driver Entry Points */ rtems_device_driver termios_test_driver_initialize( rtems_device_major_number major, rtems_device_minor_number minor, void *arg ) { rtems_termios_initialize(); /* * Register Device Names */ (void) rtems_io_register_name( TERMIOS_TEST_DRIVER_DEVICE_NAME, major, 0 ); return RTEMS_SUCCESSFUL; }
/*-----------------------------------------------------------*/ static rtems_device_driver my_pty_initialize( rtems_device_major_number major, rtems_device_minor_number minor, void *arg ) { int ndx; rtems_status_code status; if ( rtems_telnetd_maximum_ptys < 5 ) rtems_telnetd_maximum_ptys = 5; telnet_ptys = malloc( rtems_telnetd_maximum_ptys * sizeof (pty_t) ); /* * Set up ptys */ for (ndx=0;ndx<rtems_telnetd_maximum_ptys;ndx++) { telnet_ptys[ndx].devname = (char*)malloc(strlen("/dev/ptyXX")+1); sprintf(telnet_ptys[ndx].devname,"/dev/pty%X",ndx); telnet_ptys[ndx].ttyp = NULL; telnet_ptys[ndx].c_cflag = CS8|B9600; telnet_ptys[ndx].socket = -1; telnet_ptys[ndx].opened = FALSE; telnet_ptys[ndx].sb_ind = 0; telnet_ptys[ndx].width = 0; telnet_ptys[ndx].height = 0; } /* * Register the devices */ for (ndx=0;ndx<rtems_telnetd_maximum_ptys;ndx++) { status = rtems_io_register_name(telnet_ptys[ndx].devname, major, ndx); if (status != RTEMS_SUCCESSFUL) rtems_fatal_error_occurred(status); chmod(telnet_ptys[ndx].devname,0660); chown(telnet_ptys[ndx].devname,2,0); /* tty,root*/ }; printk("Device: /dev/pty%X../dev/pty%X (%d)pseudo-terminals registered.\n", 0,rtems_telnetd_maximum_ptys-1,rtems_telnetd_maximum_ptys); return RTEMS_SUCCESSFUL; }
rtems_device_driver touchscreen_initialize (rtems_device_major_number major, rtems_device_minor_number minor, void *arg) { rtems_status_code status; printk ("[+] touchscreen started\n"); touchscreen_sethand (1); /* register the device */ status = rtems_io_register_name ("/dev/mouse", major, 0); if (status != RTEMS_SUCCESSFUL) { printk ("[!] error registering touchscreen\n"); rtems_fatal_error_occurred (status); } return RTEMS_SUCCESSFUL; }
/* * Serial Mouse - device driver INITIALIZE entry point. */ rtems_device_driver serial_mouse_initialize( rtems_device_major_number major, rtems_device_minor_number minor, void *arg ) { bool status; status = bsp_get_serial_mouse_device( &serial_mouse_device, &serial_mouse_type ); (void) rtems_io_register_name( "/dev/mouse", major, 0 ); rtems_termios_linesw[ 6 ] = serial_mouse_linesw; return RTEMS_SUCCESSFUL; }