uarthw.h
上传用户:dahaojd
上传日期:2008-01-29
资源大小:14357k
文件大小:3k
源码类别:

DSP编程

开发平台:

C/C++

  1. /*
  2.  *  Copyright 2003 by Texas Instruments Incorporated.
  3.  *  All rights reserved. Property of Texas Instruments Incorporated.
  4.  *  Restricted rights to use, duplicate or disclose this code are
  5.  *  granted through contract.
  6.  *  
  7.  */
  8. /* "@(#) DDK 1.10.00.23 07-02-03 (ddk-b12)" */
  9. /*
  10.  *  ======== uarthw.h ========
  11.  */
  12. #ifndef UARTHW_
  13. #define UARTHW_
  14. #ifdef __cplusplus
  15. extern "C" {
  16. #endif
  17. /*
  18.  * Index into callback function array.  This array is passed to UARTHW_open()
  19.  * by the client of the UARTHW module.
  20.  */
  21. #define UARTHW_MODEM_STATUSHANDLER       0
  22. #define UARTHW_TXEMPTY_STATUSHANDLER     1
  23. #define UARTHW_RXFULL_STATUSHANDLER      2
  24. #define UARTHW_LINE_STATUSHANDLER        3
  25. /*
  26.  *  This is the signature of the callback function that UARTHW code will call
  27.  *  for modem status, tx empty, rx full or line status as indicated by above
  28.  *  indexes.
  29.  */
  30. typedef Bool (*UARTHW_Tcallback)(Ptr arg, Int val);
  31. /*
  32.  *  UARTHW_Handle is an opaque pointer.  Individual implementations of UARTHW
  33.  *  will define UARTHW_Obj differently.  UARTHW_Obj is a private structure and
  34.  *  details are intentionally hidden.
  35.  */
  36. typedef struct UARTHW_Obj *UARTHW_Handle;       /* opaque pointer */
  37. /*
  38.  *  ======== UARTHW_enableRx ========
  39.  *  Enable the Rx Interrupt of the UART.
  40.  *
  41.  */
  42. extern void UARTHW_enableRx(UARTHW_Handle hUart);
  43. /*
  44.  *  ======== UARTHW_disableRx ========
  45.  *  Disable the Rx Interrupt of the UART.
  46.  *
  47.  */
  48. extern void UARTHW_disableRx(UARTHW_Handle hUart);
  49. /* 
  50.  *  ======== UARTHW_getModemStatus ========
  51.  *  Returns modem status.
  52.  */
  53. extern Int  UARTHW_getModemStatus(UARTHW_Handle hUart, Char *pmodemStatus);
  54. /* 
  55.  *  ======== UARTHW_open ========
  56.  *  Open a bi-directonal UART.
  57.  *  UARTHW_open() returns a handle to the UART as specified by 'uartId'.
  58.  *  UARTHW_return non-NULL on success and NULL on failure.
  59.  *  'params' is a pointer to a implemenation specific parameters structure.
  60.  *  'cbFxns' is an array of functions to be called on specific UART conditions
  61.  *  (e.g., txFull, rxEmpty).
  62.  *  'cbArg' is a parameter that will be passed to each callback function.
  63.  */
  64. extern UARTHW_Handle UARTHW_open(Int uartid, Ptr params, Ptr cbArg, 
  65.         UARTHW_Tcallback *cbFxns);
  66. /*
  67.  *  ======== UARTHW_resetDevice ========
  68.  *  Reset the UART associated with hUart.
  69.  */
  70. extern void UARTHW_resetDevice(UARTHW_Handle hUart);
  71. /*
  72.  *  ======== UARTHW_setBreak ========
  73.  */
  74. extern Int  UARTHW_setBreak(UARTHW_Handle hUart, Int breakval);
  75. /*
  76.  *  ======== UARTHW_setDTR ========
  77.  */
  78. extern Int  UARTHW_setDTR(UARTHW_Handle hUart, Int dtrval);
  79. /*
  80.  *  ======== UARTHW_setRTS ========
  81.  */
  82. extern Int  UARTHW_setRTS(UARTHW_Handle hUart, Int rtsval);
  83. /*
  84.  *  ======== UARTHW_txEmpty ========
  85.  */
  86. extern Int  UARTHW_txEmpty(UARTHW_Handle hUart);
  87. /*
  88.  *  ======== UARTHW_writeChar ========
  89.  *  Write a character to the UART.
  90.  *
  91.  */
  92. extern void UARTHW_writeChar(UARTHW_Handle hUart, Char c);
  93. #ifdef __cplusplus
  94. }
  95. #endif /* extern "C" */
  96. #endif /* UARTHW_ */