Skip to contentSkip to conversation

serial.h

PATCH New Hollis Blanchard 1 participant 1 message May 4, 2005

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 serial.h

This patch (attached because thunderbird messes with whitespace) moves some constants from xen/drivers/char/serial.c to xen/include/xen/serial.h.

On PPC I want to do this:

static int ns16550_putc(struct uart *uart, unsigned char c)

{
    if (inb(uart->io_base + LSR) & LSR_THRE) {
        outb(c, uart->io_base + THR);
        return 1;
    }
    return 0;
}

int arch_serial_putc(struct uart *uart, unsigned char c)

{
    if (on_simulator())
        return sim_putc(c);

    return ns16550_putc(uart, c);
}

... and that means arch code needs to be able to see struct uart, LSR, etc. I also notice that ia64 already made a private copy of these defines.

I have verified that this patch builds on x86 and ia64.

Signature · 2 lines
Hollis Blanchard
IBM Linux Technology Center

===== xen/drivers/char/serial.c 1.31 vs edited =====

xen/drivers/char/serial.c +0 -65
@@ -23,71 +23,6 @@
 string_param("com1", opt_com1);
 string_param("com2", opt_com2);
 
-/* Register offsets */
-#define RBR             0x00    /* receive buffer       */
-#define THR             0x00    /* transmit holding     */
-#define IER             0x01    /* interrupt enable     */
-#define IIR             0x02    /* interrupt identity   */
-#define FCR             0x02    /* FIFO control         */
-#define LCR             0x03    /* line control         */
-#define MCR             0x04    /* Modem control        */
-#define LSR             0x05    /* line status          */
-#define MSR             0x06    /* Modem status         */
-#define DLL             0x00    /* divisor latch (ls) (DLAB=1) */
-#define DLM             0x01    /* divisor latch (ms) (DLAB=1) */
-
-/* Interrupt Enable Register */
-#define IER_ERDAI       0x01    /* rx data recv'd       */
-#define IER_ETHREI      0x02    /* tx reg. empty        */
-#define IER_ELSI        0x04    /* rx line status       */
-#define IER_EMSI        0x08    /* MODEM status         */
-
-/* FIFO control register */
-#define FCR_ENABLE      0x01    /* enable FIFO          */
-#define FCR_CLRX        0x02    /* clear Rx FIFO        */
-#define FCR_CLTX        0x04    /* clear Tx FIFO        */
-#define FCR_DMA         0x10    /* enter DMA mode       */
-#define FCR_TRG1        0x00    /* Rx FIFO trig lev 1   */
-#define FCR_TRG4        0x40    /* Rx FIFO trig lev 4   */
-#define FCR_TRG8        0x80    /* Rx FIFO trig lev 8   */
-#define FCR_TRG14       0xc0    /* Rx FIFO trig lev 14  */
-
-/* Line control register */
-#define LCR_DLAB        0x80    /* Divisor Latch Access */
-
-/* Modem Control Register */
-#define MCR_DTR         0x01    /* Data Terminal Ready  */
-#define MCR_RTS         0x02    /* Request to Send      */
-#define MCR_OUT2        0x08    /* OUT2: interrupt mask */
-
-/* Line Status Register */
-#define LSR_DR          0x01    /* Data ready           */
-#define LSR_OE          0x02    /* Overrun              */
-#define LSR_PE          0x04    /* Parity error         */
-#define LSR_FE          0x08    /* Framing error        */
-#define LSR_BI          0x10    /* Break                */
-#define LSR_THRE        0x20    /* Xmit hold reg empty  */
-#define LSR_TEMT        0x40    /* Xmitter empty        */
-#define LSR_ERR         0x80    /* Error                */
-
-/* These parity settings can be ORed directly into the LCR. */
-#define PARITY_NONE     (0<<3)
-#define PARITY_ODD      (1<<3)
-#define PARITY_EVEN     (3<<3)
-#define PARITY_MARK     (5<<3)
-#define PARITY_SPACE    (7<<3)
-
-#define RXBUFSZ 32
-#define MASK_RXBUF_IDX(_i) ((_i)&(RXBUFSZ-1))
-struct uart {
-    int              baud, data_bits, parity, stop_bits, io_base, irq;
-    serial_rx_fn     rx_lo, rx_hi, rx;
-    spinlock_t       lock;
-    unsigned char    rxbuf[RXBUFSZ];
-    unsigned int     rxbufp, rxbufc;
-    struct irqaction irqaction;
-};
-
 static struct uart com[2] = {
     { 0, 0, 0, 0, 0x3f8, 4,
       NULL, NULL, NULL,

===== xen/include/asm-ia64/serial.h 1.1 vs edited =====

xen/include/asm-ia64/serial.h +0 -63

69 lines not on this page · raw message

===== xen/include/xen/serial.h 1.16 vs edited =====

xen/include/xen/serial.h +69 -4

85 lines not on this page · raw message

_______________________________________________
Xen-devel mailing list
[email protected]
http://lists.xensource.com/xen-devel