evbNs16550Sio.h
上传用户:luoyougen
上传日期:2008-05-12
资源大小:23136k
文件大小:3k
源码类别:

VxWorks

开发平台:

C/C++

  1. /* evbNs16550Sio.h - header file for binary interface NS 16550 UART driver */
  2. /* Copyright 1984-1996 Wind River Systems, Inc. */
  3. /*
  4. modification history
  5. --------------------
  6. 01b,02dec97,db   changed type from char to UCHAR for element outByte() in 
  7.  EVBNS16550_CHAN structure for compatibility with sysLib.h.
  8. 01a,07mar96,tam  written (from i8250Sio.h)
  9. */
  10. #ifndef __INCevbNs16550Sioh
  11. #define __INCevbNs16550Sioh
  12. #ifdef __cplusplus
  13. extern "C" {
  14. #endif
  15. #ifndef _ASMLANGUAGE
  16. #include "vxWorks.h"
  17. #include "sioLib.h"
  18. /* channel data structure  */
  19. typedef struct EVBNS16550_CHAN
  20.     {
  21.     SIO_DRV_FUNCS * pDrvFuncs;       /* driver functions */
  22.     STATUS      (*getTxChar) ();
  23.     STATUS      (*putRcvChar) ();
  24.     void *      getTxArg;
  25.     void *      putRcvArg;
  26.     UINT16  int_vec;                 /* interrupt vector number */
  27.     UINT16  channelMode;             /* SIO_MODE_[INT | POLL] */
  28.     UCHAR   (*inByte) (ULONG);       /* routine to read a byte from register */
  29.     void    (*outByte)(ULONG,UCHAR); /* routine to write a byte to register */
  30.     UINT32  clkFreq;                 /* baud rate generator clock */
  31.     int     baudRate;                /* baud rate */
  32.     ULONG   lcr;                     /* UART line control register */
  33.     ULONG   lst;                     /* UART line status register */
  34.     ULONG   mdc;                     /* UART modem control register */
  35.     ULONG   msr;                     /* UART modem status register */
  36.     ULONG   ier;                     /* UART interrupt enable register */
  37.     ULONG   iid;                     /* UART interrupt ID register */
  38.     ULONG   brdl;                    /* UART baud rate register */
  39.     ULONG   brdh;                    /* UART baud rate register */
  40.     ULONG   data;                    /* UART data register */
  41.     } EVBNS16550_CHAN;
  42. /* register definitions */
  43. #define UART_THR        0x00 /* Transmitter holding reg. */
  44. #define UART_RDR        0x00 /* Receiver data reg.       */
  45. #define UART_BRDL       0x00 /* Baud rate divisor (LSB)  */
  46. #define UART_BRDH       0x01 /* Baud rate divisor (MSB)  */
  47. #define UART_IER        0x01 /* Interrupt enable reg.    */
  48. #define UART_IID        0x02 /* Interrupt ID reg.        */
  49. #define UART_LCR        0x03 /* Line control reg.        */
  50. #define UART_MDC        0x04 /* Modem control reg.       */
  51. #define UART_LST        0x05 /* Line status reg.         */
  52. #define UART_MSR        0x06 /* Modem status reg.        */
  53. #if defined(__STDC__) || defined(__cplusplus)
  54. extern void evbNs16550HrdInit(EVBNS16550_CHAN *pDev);
  55. extern void evbNs16550Int (EVBNS16550_CHAN  *pDev);
  56. #else
  57. extern void evbNs16550HrdInit();
  58. extern void evbNs16550Int();
  59.      
  60. #endif  /* __STDC__ */
  61. #endif /* _ASMLANGUAGE */
  62. #ifdef __cplusplus
  63. }
  64. #endif
  65. #endif /* __INCevbNs16550Sioh */