async.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.  *  ======== async.h ========
  11.  *
  12.  *  This file defines the async macros to GIO.
  13.  *
  14.  *   ASYNC_abort
  15.  *   ASYNC_control
  16.  *   ASYNC_create
  17.  *   ASYNC_delete
  18.  *   ASYNC_flush
  19.  *   ASYNC_read
  20.  *   ASYNC_write
  21.  *
  22.  */
  23. #ifndef ASYNC_
  24. #define ASYNC_
  25. #include <gio.h>
  26. #include <iom.h>
  27. #ifdef __cplusplus
  28. extern "C" {
  29. #endif
  30. /*
  31.  *  ======== ASYNC_abort ========
  32.  *  Abort all input and output.  ASYNC_abort() is a synchronous call and only 
  33.  *  returns when all I/O has been successfully aborted.
  34.  */
  35. #define ASYNC_abort(gioChan) 
  36.         GIO_abort(gioChan)
  37. /*
  38.  *  ======== ASYNC_control ========
  39.  *  This is a direct call down into the mini driver.
  40.  */
  41. #define ASYNC_control(gioChan, cmd, args) 
  42.         GIO_control(gioChan, cmd, args)
  43. /*
  44.  *  ======== ASYNC_create ========
  45.  *  ASYNC_create() allocates and initializes an GIO_Obj structure. ASYNC_create
  46.  *  returns a non-NULL GIO_Handle object on success and NULL for failure.
  47.  *  The 'name' parameter is used to find a matching name in the device
  48.  *  table.  Associated IOM_Fxns table and params structure are then used
  49.  *  to create a channel for that device.   The 'attrs->nPackets' parameter
  50.  *  specifies the number of asynchronous I/O calls that can be outstanding.
  51.  *  The status field is the address where a device status is returned, ignored
  52.  *  if status is specified as NULL.
  53.  */
  54. #define  ASYNC_create(name, mode, status, optArgs, attrs) 
  55.         GIO_create(name, mode, status, optArgs, attrs)
  56. /*
  57.  *  ======== ASYNC_delete ========
  58.  *  ASYNC_delete() frees up channel resources.
  59.  */
  60. #define ASYNC_delete(giochan) 
  61.         GIO_delete(gioChan)
  62. /*
  63.  *  ======== ASYNC_flush ========
  64.  *  Flush all input and output.  Flush drains all output buffers and discards
  65.  *  any pending input.  ASYNC_flush() is synchronous and only returns when
  66.  *  all I/O has been successfully flushed.
  67.  */
  68. #define ASYNC_flush(gioChan) 
  69.         GIO_flush(gioChan)
  70. /*
  71.  *  ======== ASYNC_read ========
  72.  *  Asynchronous read command.  ASYNC_read() returns 'IOM_PENDING' if
  73.  *  I/O was successfully queued and 'IOM_COMPLETED' if I/O was able to
  74.  *  complete immediately.
  75.  */
  76. #define ASYNC_read(gioChan, bufp, psize, appCallback) 
  77.         GIO_submit(gioChan, IOM_READ, bufp, psize, appCallback)
  78. /*
  79.  *  ======== ASYNC_write ========
  80.  *  Asynchronous write command.  Same semantics as ASYNC_read() above.
  81.  */
  82. #define ASYNC_write(gioChan, bufp, psize, appCallback) 
  83.         GIO_submit(gioChan, IOM_WRITE, bufp, psize, appCallback)
  84. #ifdef __cplusplus
  85. }
  86. #endif /* extern "C" */
  87. #endif /* ASYNC_ */