fyf_semaphore.h
上传用户:sunhongbo
上传日期:2022-01-25
资源大小:3010k
文件大小:4k
源码类别:

数据库系统

开发平台:

C/C++

  1. /******************************************************************************/
  2. /*    Copyright (c) 2008 Embedded Internet Solutions, Inc                     */
  3. /*    All rights reserved. You are not allowed to copy or distribute          */
  4. /*    the code without permission.                                            */
  5. /*    This is the demo implenment of the Porting APIs needed by            */
  6. /*    MiddleWare.                                                             */
  7. /*    Maybe you should modify it accorrding to Platform.                      */
  8. /*                                                                            */
  9. /*    $author szhy 2008/07/03                                              */
  10. /******************************************************************************/
  11. #ifndef __FYF_SEMAPHORE_H__
  12. #define __FYF_SEMAPHORE_H__
  13. typedef struct 
  14.     BU32 (*FYF_CPI_semaphore_create)(const PU08 name,BS32 initial_count,BU32 
  15.       wait_mode); 
  16.    BS32 (*FYF_CPI_semaphore_destroy)(BU32 handle); 
  17.    BS32 (*FYF_CPI_semaphore_wait)(BU32 handle,BS32 wait_time); 
  18.    BS32 (*FYF_CPI_semaphore_release)(BU32 handle); 
  19. }FYF_SEMAPHORE_PORTING; 
  20. /******************************************************************************/
  21. /*Description: register semaphore                                             */
  22. /*Input      : porting   */
  23. /*Output     : no                                                             */
  24. /*Return     : no                                           */
  25. /******************************************************************************/
  26. void FYF_API_semaphore_register(FYF_SEMAPHORE_PORTING *porting);
  27. /******************************************************************************/
  28. /*Description: create semaphore                                               */
  29. /*Input      : initial token count, task wait mode                            */
  30. /*Output     : no                                                             */
  31. /*Return     : >0 handle, success, 0 failure                                  */
  32. /******************************************************************************/
  33. BU32 FYF_API_semaphore_create(const PU08 name,BS32 initial_count,BU32 wait_mode);
  34. /******************************************************************************/
  35. /*Description: destroy semaphore                                              */
  36. /*Input      : semaphore handle                                               */
  37. /*Output     : no                                                             */
  38. /*Return     : 0 success, -1 failure                                          */
  39. /******************************************************************************/
  40. BS32 FYF_API_semaphore_destroy(BU32 handle);
  41. /******************************************************************************/
  42. /*Description: wait semaphore                                                 */
  43. /*Input      : semaphore handle                                               */
  44. /*Output     : no                                                             */
  45. /*Return     : FYF_OS_QUEUE_SEM_STATUS_AVAILABLE success,                     */
  46. /*              FYF_OS_QUEUE_SEM_STATUS_UNAVAILABLE failure                   */
  47. /******************************************************************************/
  48. BS32 FYF_API_semaphore_wait(BU32 handle,BS32 wait_time);
  49. /******************************************************************************/
  50. /*Description: release semaphore                                              */
  51. /*Input      : semaphore handle                                               */
  52. /*Output     : no                                                             */
  53. /*Return     : 0 success, -1 failure                                          */
  54. /******************************************************************************/
  55. BS32 FYF_API_semaphore_release(BU32 handle); 
  56. #endif