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

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.  *  ======== gio_dele.c ========
  11.  *
  12.  */
  13. #include <std.h>
  14. #include <mem.h>
  15. #include <que.h>
  16. #include <gio.h>
  17. #include <iom.h>
  18. #include <_gio.h>
  19. /*
  20.  *  ======== GIO_delete ========
  21.  */
  22. Int GIO_delete(GIO_Handle gioChan)
  23. {
  24.     IOM_Packet *packet;
  25.     /* flush and delete low-level device ... */
  26.     if (gioChan->fxns != NULL && gioChan->mdChan != NULL) {
  27.         GIO_flush(gioChan);
  28.         gioChan->fxns->mdDeleteChan(gioChan->mdChan);
  29.     }
  30.     /* delete semaphore or alternate sync object ... */
  31.     if (gioChan->syncObj != NULL) {
  32.         GIO->SEMDELETE(gioChan->syncObj);
  33.     }
  34.     /* free frames ... */
  35.     packet = QUE_get(&gioChan->freeList);
  36.     while (packet != (IOM_Packet *)(&gioChan->freeList)) {
  37.         _GIO_rmPacket(packet);
  38.         packet = QUE_get(&gioChan->freeList);
  39.     }
  40.     /* free GIO object. */
  41.     (Void)MEM_free(0, gioChan, sizeof(GIO_Obj));
  42.     return (IOM_COMPLETED);
  43. }