Changeset ee06f2a in mainline for kernel/genarch/include/kbd/ns16550.h


Ignore:
Timestamp:
2009-02-15T15:28:00Z (15 years ago)
Author:
Jakub Jermar <jakub@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
2d96f4d
Parents:
e7f2ad68
Message:

Introduce a more platform-neutral name for programmed I/O.

The new API looks like pio_read_n() or pio_write_n(), where n is 8, 16 or 32.
The old API (i.e. inb(), inw(), inl(), outb() outw(), outl()) may have made
some people think that the interface is only to be used with the separate I/O
space. That's not the case. This API is to be implemented on all platforms
so that we can finally have really generic kernel device drivers.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • kernel/genarch/include/kbd/ns16550.h

    re7f2ad68 ree06f2a  
    7878static inline uint8_t ns16550_rbr_read(ns16550_t *dev)
    7979{
    80         return inb(dev->io_port + RBR_REG);
     80        return pio_read_8(dev->io_port + RBR_REG);
    8181}
    8282static inline void ns16550_rbr_write(ns16550_t *dev, uint8_t v)
    8383{
    84         outb(dev->io_port + RBR_REG, v);
     84        pio_write_8(dev->io_port + RBR_REG, v);
    8585}
    8686
    8787static inline uint8_t ns16550_ier_read(ns16550_t *dev)
    8888{
    89         return inb(dev->io_port + IER_REG);
     89        return pio_read_8(dev->io_port + IER_REG);
    9090}
    9191
    9292static inline void ns16550_ier_write(ns16550_t *dev, uint8_t v)
    9393{
    94         outb(dev->io_port + IER_REG, v);
     94        pio_write_8(dev->io_port + IER_REG, v);
    9595}
    9696
    9797static inline uint8_t ns16550_iir_read(ns16550_t *dev)
    9898{
    99         return inb(dev->io_port + IIR_REG);
     99        return pio_read_8(dev->io_port + IIR_REG);
    100100}
    101101
    102102static inline void ns16550_fcr_write(ns16550_t *dev, uint8_t v)
    103103{
    104         outb(dev->io_port + FCR_REG, v);
     104        pio_write_8(dev->io_port + FCR_REG, v);
    105105}
    106106
    107107static inline uint8_t ns16550_lcr_read(ns16550_t *dev)
    108108{
    109         return inb(dev->io_port + LCR_REG);
     109        return pio_read_8(dev->io_port + LCR_REG);
    110110}
    111111
    112112static inline void ns16550_lcr_write(ns16550_t *dev, uint8_t v)
    113113{
    114         outb(dev->io_port + LCR_REG, v);
     114        pio_write_8(dev->io_port + LCR_REG, v);
    115115}
    116116
    117117static inline uint8_t ns16550_lsr_read(ns16550_t *dev)
    118118{
    119         return inb(dev->io_port + LSR_REG);
     119        return pio_read_8(dev->io_port + LSR_REG);
    120120}
    121121
    122122static inline uint8_t ns16550_mcr_read(ns16550_t *dev)
    123123{
    124         return inb(dev->io_port + MCR_REG);
     124        return pio_read_8(dev->io_port + MCR_REG);
    125125}
    126126
    127127static inline void ns16550_mcr_write(ns16550_t *dev, uint8_t v)
    128128{
    129         outb(dev->io_port + MCR_REG, v);
     129        pio_write_8(dev->io_port + MCR_REG, v);
    130130}
    131131
Note: See TracChangeset for help on using the changeset viewer.