posixNameLib.c
上传用户:nvosite88
上传日期:2007-01-17
资源大小:4983k
文件大小:2k
源码类别:

VxWorks

开发平台:

C/C++

  1. /* posixNameLib.c - POSIX name table support */
  2. /* Copyright 1984-1994 Wind River Systems, Inc. */
  3. /*
  4. modification history
  5. --------------------
  6. 01d,01feb94,dvs  documentation changes.
  7. 01c,05jan94,kdl  general cleanup.
  8. 01b,13dec93,dvs  made NOMANUAL
  9. 01a,06apr93,smb  created
  10. */
  11. /*
  12. DESCRIPTION
  13. The library includes functions needed to initialize and manipulate 
  14. names associated with the POSIX specific resources. 
  15. INCLUDE FILES: posixName.h
  16. SEE ALSO: semaphore, mqueue POSIX libraries. symLibInit()
  17. NOMANUAL
  18. */
  19. #include "vxWorks.h"
  20. #include "posixName.h"
  21. #include "objLib.h"
  22. #include "memLib.h"
  23. #include "symLib.h"
  24. /* global variables */
  25. SYMTAB_ID       posixNameTbl;             /* POSIX name table id */
  26. /*******************************************************************************
  27. *
  28. * posixNameTblInit - initialize the POSIX name table
  29. *
  30. * This routine should be called to initialize the POSIX name table before
  31. * any POSIX functionality that assigns and manipulates names and objects.
  32. *
  33. * This routine creates and initializes a symbol table with a hash table of a
  34. * specified size.  The size of the hash table is specified as a power of two.
  35. * For example, if <posixTblHashSize> is 6, a 64-entry hash table is created.
  36. *
  37. * If <posixTblHashSize> is equal to zero, then a default size of 
  38. * POSIX_TBL_HASH_SIZE_LOG2 is used to create the table.
  39. *
  40. * RETURNS: OK
  41. *
  42. * NOMANUAL
  43. */
  44. SYMTAB_ID posixNameTblInit 
  45.     (
  46.     int posixTblHashSize
  47.     )
  48.     {
  49.     /* This check is needed because symLibInit is not reentrant */
  50.     if (OBJ_VERIFY (&symTblClassId->objCore, classClassId) != OK)
  51. symLibInit ();                     /* initialize symbol table package */
  52.     if (posixTblHashSize == 0)
  53. posixTblHashSize = POSIX_TBL_HASH_SIZE_LOG2;
  54.     posixNameTbl = symTblCreate (posixTblHashSize, FALSE, memSysPartId);
  55.     return (posixNameTbl);
  56.     }