home *** CD-ROM | disk | FTP | other *** search
/ Geek Gadgets 1 / ADE-1.bin / ade-dist / fd2inline-1.0-bin.lha / include / inline / utility.h < prev    next >
Encoding:
C/C++ Source or Header  |  1996-10-12  |  5.9 KB  |  170 lines

  1. #ifndef _INLINE_UTILITY_H
  2. #define _INLINE_UTILITY_H
  3.  
  4. #ifndef __INLINE_MACROS_H
  5. #include <inline/macros.h>
  6. #endif
  7.  
  8. #ifndef UTILITY_BASE_NAME
  9. #define UTILITY_BASE_NAME UtilityBase
  10. #endif
  11.  
  12. #define AddNamedObject(nameSpace, object) \
  13.     LP2(0xde, BOOL, AddNamedObject, struct NamedObject *, nameSpace, a0, struct NamedObject *, object, a1, \
  14.     , UTILITY_BASE_NAME)
  15.  
  16. #define AllocNamedObjectA(name, tagList) \
  17.     LP2(0xe4, struct NamedObject *, AllocNamedObjectA, STRPTR, name, a0, struct TagItem *, tagList, a1, \
  18.     , UTILITY_BASE_NAME)
  19.  
  20. #ifndef NO_INLINE_STDARG
  21. #define AllocNamedObject(a0, tags...) \
  22.     ({ULONG _tags[] = { tags }; AllocNamedObjectA((a0), (struct TagItem *)_tags);})
  23. #endif /* !NO_INLINE_STDARG */
  24.  
  25. #define AllocateTagItems(numTags) \
  26.     LP1(0x42, struct TagItem *, AllocateTagItems, unsigned long, numTags, d0, \
  27.     , UTILITY_BASE_NAME)
  28.  
  29. #define Amiga2Date(seconds, result) \
  30.     LP2NR(0x78, Amiga2Date, unsigned long, seconds, d0, struct ClockData *, result, a0, \
  31.     , UTILITY_BASE_NAME)
  32.  
  33. #define ApplyTagChanges(list, changeList) \
  34.     LP2NR(0xba, ApplyTagChanges, struct TagItem *, list, a0, struct TagItem *, changeList, a1, \
  35.     , UTILITY_BASE_NAME)
  36.  
  37. #define AttemptRemNamedObject(object) \
  38.     LP1(0xea, LONG, AttemptRemNamedObject, struct NamedObject *, object, a0, \
  39.     , UTILITY_BASE_NAME)
  40.  
  41. #define CallHookPkt(hook, object, paramPacket) \
  42.     LP3(0x66, ULONG, CallHookPkt, struct Hook *, hook, a0, APTR, object, a2, APTR, paramPacket, a1, \
  43.     , UTILITY_BASE_NAME)
  44.  
  45. #define CheckDate(date) \
  46.     LP1(0x84, ULONG, CheckDate, struct ClockData *, date, a0, \
  47.     , UTILITY_BASE_NAME)
  48.  
  49. #define CloneTagItems(tagList) \
  50.     LP1(0x48, struct TagItem *, CloneTagItems, struct TagItem *, tagList, a0, \
  51.     , UTILITY_BASE_NAME)
  52.  
  53. #define Date2Amiga(date) \
  54.     LP1(0x7e, ULONG, Date2Amiga, struct ClockData *, date, a0, \
  55.     , UTILITY_BASE_NAME)
  56.  
  57. #define FilterTagChanges(changeList, originalList, apply) \
  58.     LP3NR(0x36, FilterTagChanges, struct TagItem *, changeList, a0, struct TagItem *, originalList, a1, unsigned long, apply, d0, \
  59.     , UTILITY_BASE_NAME)
  60.  
  61. #define FilterTagItems(tagList, filterArray, logic) \
  62.     LP3(0x60, ULONG, FilterTagItems, struct TagItem *, tagList, a0, Tag *, filterArray, a1, unsigned long, logic, d0, \
  63.     , UTILITY_BASE_NAME)
  64.  
  65. #define FindNamedObject(nameSpace, name, lastObject) \
  66.     LP3(0xf0, struct NamedObject *, FindNamedObject, struct NamedObject *, nameSpace, a0, STRPTR, name, a1, struct NamedObject *, lastObject, a2, \
  67.     , UTILITY_BASE_NAME)
  68.  
  69. #define FindTagItem(tagVal, tagList) \
  70.     LP2(0x1e, struct TagItem *, FindTagItem, Tag, tagVal, d0, struct TagItem *, tagList, a0, \
  71.     , UTILITY_BASE_NAME)
  72.  
  73. #define FreeNamedObject(object) \
  74.     LP1NR(0xf6, FreeNamedObject, struct NamedObject *, object, a0, \
  75.     , UTILITY_BASE_NAME)
  76.  
  77. #define FreeTagItems(tagList) \
  78.     LP1NR(0x4e, FreeTagItems, struct TagItem *, tagList, a0, \
  79.     , UTILITY_BASE_NAME)
  80.  
  81. #define GetTagData(tagValue, defaultVal, tagList) \
  82.     LP3(0x24, ULONG, GetTagData, Tag, tagValue, d0, unsigned long, defaultVal, d1, struct TagItem *, tagList, a0, \
  83.     , UTILITY_BASE_NAME)
  84.  
  85. #define GetUniqueID() \
  86.     LP0(0x10e, ULONG, GetUniqueID, \
  87.     , UTILITY_BASE_NAME)
  88.  
  89. #define MapTags(tagList, mapList, mapType) \
  90.     LP3NR(0x3c, MapTags, struct TagItem *, tagList, a0, struct TagItem *, mapList, a1, unsigned long, mapType, d0, \
  91.     , UTILITY_BASE_NAME)
  92.  
  93. #define NamedObjectName(object) \
  94.     LP1(0xfc, STRPTR, NamedObjectName, struct NamedObject *, object, a0, \
  95.     , UTILITY_BASE_NAME)
  96.  
  97. #define NextTagItem(tagListPtr) \
  98.     LP1(0x30, struct TagItem *, NextTagItem, struct TagItem **, tagListPtr, a0, \
  99.     , UTILITY_BASE_NAME)
  100.  
  101. #define PackBoolTags(initialFlags, tagList, boolMap) \
  102.     LP3(0x2a, ULONG, PackBoolTags, unsigned long, initialFlags, d0, struct TagItem *, tagList, a0, struct TagItem *, boolMap, a1, \
  103.     , UTILITY_BASE_NAME)
  104.  
  105. #define PackStructureTags(pack, packTable, tagList) \
  106.     LP3(0xd2, ULONG, PackStructureTags, APTR, pack, a0, ULONG *, packTable, a1, struct TagItem *, tagList, a2, \
  107.     , UTILITY_BASE_NAME)
  108.  
  109. #define RefreshTagItemClones(clone, original) \
  110.     LP2NR(0x54, RefreshTagItemClones, struct TagItem *, clone, a0, struct TagItem *, original, a1, \
  111.     , UTILITY_BASE_NAME)
  112.  
  113. #define ReleaseNamedObject(object) \
  114.     LP1NR(0x102, ReleaseNamedObject, struct NamedObject *, object, a0, \
  115.     , UTILITY_BASE_NAME)
  116.  
  117. #define RemNamedObject(object, message) \
  118.     LP2NR(0x108, RemNamedObject, struct NamedObject *, object, a0, struct Message *, message, a1, \
  119.     , UTILITY_BASE_NAME)
  120.  
  121. #define SDivMod32(dividend, divisor) \
  122.     LP2(0x96, LONG, SDivMod32, long, dividend, d0, long, divisor, d1, \
  123.     , UTILITY_BASE_NAME)
  124.  
  125. #define SMult32(arg1, arg2) \
  126.     LP2(0x8a, LONG, SMult32, long, arg1, d0, long, arg2, d1, \
  127.     , UTILITY_BASE_NAME)
  128.  
  129. #define SMult64(arg1, arg2) \
  130.     LP2(0xc6, LONG, SMult64, long, arg1, d0, long, arg2, d1, \
  131.     , UTILITY_BASE_NAME)
  132.  
  133. #define Stricmp(string1, string2) \
  134.     LP2(0xa2, LONG, Stricmp, STRPTR, string1, a0, STRPTR, string2, a1, \
  135.     , UTILITY_BASE_NAME)
  136.  
  137. #define Strnicmp(string1, string2, length) \
  138.     LP3(0xa8, LONG, Strnicmp, STRPTR, string1, a0, STRPTR, string2, a1, long, length, d0, \
  139.     , UTILITY_BASE_NAME)
  140.  
  141. #define TagInArray(tagValue, tagArray) \
  142.     LP2(0x5a, BOOL, TagInArray, Tag, tagValue, d0, Tag *, tagArray, a0, \
  143.     , UTILITY_BASE_NAME)
  144.  
  145. #define ToLower(character) \
  146.     LP1(0xb4, UBYTE, ToLower, unsigned long, character, d0, \
  147.     , UTILITY_BASE_NAME)
  148.  
  149. #define ToUpper(character) \
  150.     LP1(0xae, UBYTE, ToUpper, unsigned long, character, d0, \
  151.     , UTILITY_BASE_NAME)
  152.  
  153. #define UDivMod32(dividend, divisor) \
  154.     LP2(0x9c, ULONG, UDivMod32, unsigned long, dividend, d0, unsigned long, divisor, d1, \
  155.     , UTILITY_BASE_NAME)
  156.  
  157. #define UMult32(arg1, arg2) \
  158.     LP2(0x90, ULONG, UMult32, unsigned long, arg1, d0, unsigned long, arg2, d1, \
  159.     , UTILITY_BASE_NAME)
  160.  
  161. #define UMult64(arg1, arg2) \
  162.     LP2(0xcc, ULONG, UMult64, unsigned long, arg1, d0, unsigned long, arg2, d1, \
  163.     , UTILITY_BASE_NAME)
  164.  
  165. #define UnpackStructureTags(pack, packTable, tagList) \
  166.     LP3(0xd8, ULONG, UnpackStructureTags, APTR, pack, a0, ULONG *, packTable, a1, struct TagItem *, tagList, a2, \
  167.     , UTILITY_BASE_NAME)
  168.  
  169. #endif /* _INLINE_UTILITY_H */
  170.