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

VxWorks

开发平台:

C/C++

  1. /* smNameLibP.h - private shared name database library header file */
  2. /* Copyright 1984-2002 Wind River Systems, Inc. */
  3. /*
  4. modification history
  5. --------------------
  6. 01g,05may02,mas  added volatile pointers (SPR 68334)
  7. 01f,01aug94,dvs  backed out pme's changes for reserved fields in main data structures.
  8. 01e,20mar94,pme  added reserved fields in main data structures to allow
  9.  compatibility between future versions.
  10. 01d,29jan93,pme  added little endian support
  11. 01c,29sep92,pme  changed objId field to value in SM_OBJ_NAME 
  12.  and SM_OBJ_NAME_INFO
  13. 01b,22sep92,rrr  added support for c++
  14. 01a,19jul92,pme  extracted from smNameLib v1c.
  15. */
  16. #ifndef __INCsmNameLibPh
  17. #define __INCsmNameLibPh
  18. #ifdef __cplusplus
  19. extern "C" {
  20. #endif
  21. #include "vwModNum.h"
  22. #include "smNameLib.h"
  23. #include "smDllLib.h"
  24. #include "private/semSmLibP.h"
  25. #if (defined (CPU_FAMILY) && (CPU_FAMILY==I960) && (defined __GNUC__))
  26. #pragma align 1                 /* tell gcc960 not to optimize alignments */
  27. #endif  /* CPU_FAMILY==I960 */
  28. /* typedefs */
  29. typedef struct sm_obj_name_db   /* database header */
  30.     {
  31.     UINT32       initDone;      /* TRUE if name database is initialized */
  32.     SM_DL_LIST   nameList;      /* list of entered name */
  33.     SM_SEMAPHORE sem;           /* shared binary semaphore for access */
  34.     UINT32       maxName;       /* maximum number of name in database */
  35.     UINT32       curNumName;    /* current number of name in database */
  36.     } SM_OBJ_NAME_DB;
  37. typedef struct sm_obj_name                     /* name database element */
  38.     {
  39.     SM_DL_NODE   node;                         /* node for name list */
  40.     void *       value;                        /* associated value */
  41.     UINT32       type;                         /* associated type */
  42.     char         name [MAX_NAME_LENGTH + 1];   /* associated name string */
  43.     } SM_OBJ_NAME;
  44. typedef struct sm_obj_name_info                /* database element info */
  45.     {
  46.     void *       value;                        /* element value */
  47.     UINT32       type;                         /* associated type */
  48.     char         name [MAX_NAME_LENGTH + 1];   /* associated name string */
  49.     } SM_OBJ_NAME_INFO;
  50. #if (defined (CPU_FAMILY) && (CPU_FAMILY==I960) && (defined __GNUC__))
  51. #pragma align 0                 /* turn off alignment requirement */
  52. #endif  /* CPU_FAMILY==I960 */
  53. /* globals */
  54. extern SM_OBJ_NAME_DB volatile * pSmNameDb; /* ptr to name database header */
  55. /* function declarations */
  56. #if defined(__STDC__) || defined(__cplusplus)
  57. extern void   smNameLibInit (void);
  58. extern STATUS smNameInit (int maxNames);
  59. #else   /* __STDC__ */
  60. extern void   smNameLibInit ();
  61. extern STATUS smNameInit ();
  62. #endif  /* __STDC__ */
  63. #ifdef __cplusplus
  64. }
  65. #endif
  66. #endif /* __INCsmNameLibPh */