home *** CD-ROM | disk | FTP | other *** search
/ Fresh Fish 8 / FreshFishVol8-CD1.bin / gnu / os-include / clib / utility_protos.h < prev    next >
C/C++ Source or Header  |  1993-10-15  |  4KB  |  121 lines

  1. #ifndef  CLIB_UTILITY_PROTOS_H
  2. #define  CLIB_UTILITY_PROTOS_H
  3.  
  4. /*
  5. **    $VER: utility_protos.h 39.12 (10.2.93)
  6. **    Includes Release 40.15
  7. **
  8. **    C prototypes. For use with 32 bit integers only.
  9. **
  10. **    (C) Copyright 1990-1993 Commodore-Amiga, Inc.
  11. **        All Rights Reserved
  12. */
  13.  
  14. #ifndef  EXEC_TYPES_H
  15. #include <exec/types.h>
  16. #endif
  17. #ifndef  EXEC_PORTS_H
  18. #include <exec/ports.h>
  19. #endif
  20. #ifndef  UTILITY_TAGITEM_H
  21. #include <utility/tagitem.h>
  22. #endif
  23. #ifndef  UTILITY_DATE_H
  24. #include <utility/date.h>
  25. #endif
  26. #ifndef  UTILITY_HOOKS_H
  27. #include <utility/hooks.h>
  28. #endif
  29. #ifndef  UTILITY_NAME_H
  30. #include <utility/name.h>
  31. #endif
  32. /*--- functions in V36 or higher (Release 2.0) ---*/
  33.  
  34. /* Tag item functions */
  35.  
  36. struct TagItem *FindTagItem( Tag tagVal, struct TagItem *tagList );
  37. ULONG GetTagData( Tag tagValue, unsigned long defaultVal,
  38.     struct TagItem *tagList );
  39. ULONG PackBoolTags( unsigned long initialFlags, struct TagItem *tagList,
  40.     struct TagItem *boolMap );
  41. struct TagItem *NextTagItem( struct TagItem **tagListPtr );
  42. void FilterTagChanges( struct TagItem *changeList,
  43.     struct TagItem *originalList, unsigned long apply );
  44. void MapTags( struct TagItem *tagList, struct TagItem *mapList,
  45.     unsigned long mapType );
  46. struct TagItem *AllocateTagItems( unsigned long numTags );
  47. struct TagItem *CloneTagItems( struct TagItem *tagList );
  48. void FreeTagItems( struct TagItem *tagList );
  49. void RefreshTagItemClones( struct TagItem *clone, struct TagItem *original );
  50. BOOL TagInArray( Tag tagValue, Tag *tagArray );
  51. ULONG FilterTagItems( struct TagItem *tagList, Tag *filterArray,
  52.     unsigned long logic );
  53.  
  54. /* Hook functions */
  55.  
  56. ULONG CallHookPkt( struct Hook *hook, APTR object, APTR paramPacket );
  57.  
  58. /* Date functions */
  59.  
  60. void Amiga2Date( unsigned long seconds, struct ClockData *result );
  61. ULONG Date2Amiga( struct ClockData *date );
  62. ULONG CheckDate( struct ClockData *date );
  63.  
  64. /* 32 bit integer muliply functions */
  65.  
  66. LONG SMult32( long arg1, long arg2 );
  67. ULONG UMult32( unsigned long arg1, unsigned long arg2 );
  68.  
  69. /* 32 bit integer division funtions. The quotient and the remainder are */
  70. /* returned respectively in d0 and d1 */
  71.  
  72. LONG SDivMod32( long dividend, long divisor );
  73. ULONG UDivMod32( unsigned long dividend, unsigned long divisor );
  74. /*--- functions in V37 or higher (Release 2.04) ---*/
  75.  
  76. /* International string routines */
  77.  
  78. LONG Stricmp( STRPTR string1, STRPTR string2 );
  79. LONG Strnicmp( STRPTR string1, STRPTR string2, long length );
  80. UBYTE ToUpper( unsigned long character );
  81. UBYTE ToLower( unsigned long character );
  82. /*--- functions in V39 or higher (Release 3) ---*/
  83.  
  84. /* More tag Item functions */
  85.  
  86. void ApplyTagChanges( struct TagItem *list, struct TagItem *changeList );
  87.  
  88. /* 64 bit integer muliply functions. The results are 64 bit quantities */
  89. /* returned in D0 and D1 */
  90.  
  91. LONG SMult64( long arg1, long arg2 );
  92. ULONG UMult64( unsigned long arg1, unsigned long arg2 );
  93.  
  94. /* Structure to Tag and Tag to Structure support routines */
  95.  
  96. ULONG PackStructureTags( APTR pack, ULONG *packTable,
  97.     struct TagItem *tagList );
  98. ULONG UnpackStructureTags( APTR pack, ULONG *packTable,
  99.     struct TagItem *tagList );
  100.  
  101. /* New, object-oriented NameSpaces */
  102.  
  103. BOOL AddNamedObject( struct NamedObject *nameSpace,
  104.     struct NamedObject *object );
  105. struct NamedObject *AllocNamedObjectA( STRPTR name, struct TagItem *tagList );
  106. struct NamedObject *AllocNamedObject( STRPTR name, Tag tag1, ... );
  107. LONG AttemptRemNamedObject( struct NamedObject *object );
  108. struct NamedObject *FindNamedObject( struct NamedObject *nameSpace,
  109.     STRPTR name, struct NamedObject *lastObject );
  110. void FreeNamedObject( struct NamedObject *object );
  111. STRPTR NamedObjectName( struct NamedObject *object );
  112. void ReleaseNamedObject( struct NamedObject *object );
  113. void RemNamedObject( struct NamedObject *object, struct Message *message );
  114.  
  115. /* Unique ID generator */
  116.  
  117. ULONG GetUniqueID( void );
  118.  
  119.  
  120. #endif     /* CLIB_UTILITY_PROTOS_H */
  121.