|
Files |
file | cyclic_buffer.h |
file | ns8250.c |
Data Structures |
struct | cyclic_buffer |
struct | ns8250 |
| The driver data for the serial port devices. More...
|
Defines |
#define | BUF_LEN 256 |
#define | DLAB_MASK (1 << 7) |
#define | MAX_BAUD_RATE 115200 |
#define | NAME "ns8250" |
#define | NS8250(fnode) ((ns8250_t *) ((fnode)->dev->driver_data)) |
| Obtain soft-state structure from function node.
|
#define | NS8250_FROM_DEV(dnode) ((ns8250_t *) ((dnode)->driver_data)) |
| Obtain soft-state structure from device node.
|
#define | REG_COUNT 7 |
Typedefs |
typedef ns8250 | ns8250_t |
| The driver data for the serial port devices.
|
Enumerations |
enum | stop_bit_t { ONE_STOP_BIT,
TWO_STOP_BITS
} |
| The number of stop bits used by the serial port. More...
|
enum | word_length_t |
| The number of bits of one data unit send by the serial port.
|
Functions |
static void | buf_clear (cyclic_buffer_t *buf) |
static bool | buf_is_empty (cyclic_buffer_t *buf) |
static uint8_t | buf_pop_front (cyclic_buffer_t *buf) |
static bool | buf_push_back (cyclic_buffer_t *buf, uint8_t item) |
static void | clear_dlab (ioport8_t *port) |
| Clear Divisor Latch Access Bit.
|
static void | enable_dlab (ioport8_t *port) |
| Set Divisor Latch Access Bit.
|
static bool | is_transmit_empty (ioport8_t *port) |
| Find out wheter it is possible to send data.
|
int | main (int argc, char *argv[]) |
| Main entry point.
|
static int | ns8250_add_device (ddf_dev_t *dev) |
| The add_device callback method of the serial port driver.
|
static void | ns8250_close (ddf_fun_t *fun) |
| Close the device.
|
static void | ns8250_default_handler (ddf_fun_t *fun, ipc_callid_t callid, ipc_call_t *call) |
| Default handler for client requests which are not handled by the standard interfaces.
|
static void | ns8250_delete (ns8250_t *ns) |
| Delete soft-state structure.
|
static void | ns8250_dev_cleanup (ns8250_t *ns) |
| Clean up the serial port soft-state.
|
static int | ns8250_dev_initialize (ns8250_t *ns) |
| Initialize serial port device.
|
static bool | ns8250_dev_probe (ns8250_t *ns) |
| Probe the serial port device for its presence.
|
static void | ns8250_get_props (ddf_dev_t *dev, unsigned int *baud_rate, unsigned int *parity, unsigned int *word_length, unsigned int *stop_bits) |
| Get parameters of the serial communication which are set to the specified device.
|
static void | ns8250_init (void) |
| Initialize the serial port driver.
|
static void | ns8250_initialize_port (ns8250_t *ns) |
| Initialize the serial port device.
|
static int | ns8250_interrupt_enable (ns8250_t *ns) |
| Enable interrupts for the serial port device.
|
static void | ns8250_interrupt_handler (ddf_dev_t *dev, ipc_callid_t iid, ipc_call_t *icall) |
| The interrupt handler.
|
static ns8250_t * | ns8250_new (void) |
| Create per-device soft-state structure.
|
static int | ns8250_open (ddf_fun_t *fun) |
| Open the device.
|
static bool | ns8250_pio_enable (ns8250_t *ns) |
| Enable the i/o ports of the device.
|
static unsigned int | ns8250_port_get_baud_rate (ioport8_t *port) |
| Get baud rate used by the serial port device.
|
static void | ns8250_port_get_com_props (ioport8_t *port, unsigned int *parity, unsigned int *word_length, unsigned int *stop_bits) |
| Get the parameters of the serial communication set on the serial port device.
|
static void | ns8250_port_interrupts_disable (ioport8_t *port) |
| Disable interrupts on the serial port device.
|
static void | ns8250_port_interrupts_enable (ioport8_t *port) |
| Enable interrupts on the serial port device.
|
static int | ns8250_port_set_baud_rate (ioport8_t *port, unsigned int baud_rate) |
| Set baud rate of the serial communication on the serial device.
|
static int | ns8250_port_set_com_props (ioport8_t *port, unsigned int parity, unsigned int word_length, unsigned int stop_bits) |
| Set the parameters of the serial communication on the serial port device.
|
static void | ns8250_putchar (ns8250_t *ns, uint8_t c) |
| Write a character to the serial port.
|
static int | ns8250_read (ddf_fun_t *fun, char *buf, size_t count) |
| Read data from the serial port device.
|
static uint8_t | ns8250_read_8 (ioport8_t *port) |
| Read one byte from the serial port.
|
static void | ns8250_read_from_device (ns8250_t *ns) |
| Read the data from the serial port device and store them to the input buffer.
|
static bool | ns8250_received (ioport8_t *port) |
| Find out if there is some incomming data available on the serial port.
|
static int | ns8250_register_interrupt_handler (ns8250_t *ns) |
| Register the interrupt handler for the device.
|
static int | ns8250_set_props (ddf_dev_t *dev, unsigned int baud_rate, unsigned int parity, unsigned int word_length, unsigned int stop_bits) |
| Set parameters of the serial communication to the specified serial port device.
|
static int | ns8250_unregister_interrupt_handler (ns8250_t *ns) |
| Unregister the interrupt handler for the device.
|
static int | ns8250_write (ddf_fun_t *fun, char *buf, size_t count) |
| Write data to the serial port.
|
static void | ns8250_write_8 (ioport8_t *port, uint8_t c) |
| Write one character on the serial port.
|
Variables |
static char_dev_ops_t | ns8250_char_dev_ops |
| The character interface's callbacks.
|
static ddf_dev_ops_t | ns8250_dev_ops |
static driver_t | ns8250_driver |
| The serial port device driver structure.
|
static driver_ops_t | ns8250_ops |
| The serial port device driver's standard operations.
|