1 #ifndef CLIB_UTILITY_PROTOS_H
    2 #define CLIB_UTILITY_PROTOS_H
    3 
    4 /*
    5 	utility.library C prototypes
    6 
    7 	Copyright © 2002 The MorphOS Development Team, All Rights Reserved.
    8 */
    9 
   10 #ifndef EXEC_TYPES_H
   11 # include <exec/types.h>
   12 #endif
   13 
   14 #ifndef EXEC_PORTS_H
   15 # include <exec/ports.h>
   16 #endif
   17 
   18 #ifndef UTILITY_TAGITEM_H
   19 # include <utility/tagitem.h>
   20 #endif
   21 
   22 #ifndef UTILITY_DATE_H
   23 # include <utility/date.h>
   24 #endif
   25 
   26 #ifndef UTILITY_HOOKS_H
   27 # include <utility/hooks.h>
   28 #endif
   29 
   30 #ifndef UTILITY_NAME_H
   31 # include <utility/name.h>
   32 #endif
   33 
   34 
   35 #ifdef __cplusplus
   36 extern "C" {
   37 #endif /* __cplusplus */
   38 
   39 struct TagItem *FindTagItem( Tag tagVal, CONST struct TagItem *tagList );
   40 ULONG GetTagData( Tag tagValue, ULONG defaultVal, CONST struct TagItem *tagList );
   41 ULONG PackBoolTags( ULONG initialFlags, CONST struct TagItem *tagList, CONST struct TagItem *boolMap );
   42 struct TagItem *NextTagItem( struct TagItem **tagListPtr );
   43 VOID FilterTagChanges( struct TagItem *changeList, struct TagItem *originalList, ULONG apply );
   44 VOID MapTags( struct TagItem *tagList, CONST struct TagItem *mapList, ULONG mapType );
   45 struct TagItem *AllocateTagItems( ULONG numTags );
   46 struct TagItem *CloneTagItems( CONST struct TagItem *tagList );
   47 VOID FreeTagItems( struct TagItem *tagList );
   48 VOID RefreshTagItemClones( struct TagItem *clone, CONST struct TagItem *original );
   49 BOOL TagInArray( Tag tagValue, CONST Tag *tagArray );
   50 ULONG FilterTagItems( struct TagItem *tagList, CONST Tag *filterArray, ULONG logic );
   51 
   52 ULONG CallHookPkt( struct Hook *hook, APTR object, APTR paramPacket );
   53 
   54 VOID Amiga2Date( ULONG seconds, struct ClockData *result );
   55 ULONG Date2Amiga( CONST struct ClockData *date );
   56 ULONG CheckDate( CONST struct ClockData *date );
   57 
   58 LONG SMult32( LONG arg1, LONG arg2 );
   59 ULONG UMult32( ULONG arg1, ULONG arg2 );
   60 
   61 LONG SDivMod32( LONG dividend, LONG divisor );
   62 ULONG UDivMod32( ULONG dividend, ULONG divisor );
   63 
   64 LONG Stricmp( CONST_STRPTR string1, CONST_STRPTR string2 );
   65 LONG Strnicmp( CONST_STRPTR string1, CONST_STRPTR string2, LONG length );
   66 UBYTE ToUpper( ULONG character );
   67 UBYTE ToLower( ULONG character );
   68 
   69 VOID ApplyTagChanges( struct TagItem *list, CONST struct TagItem *changeList );
   70 
   71 LONG SMult64( LONG arg1, LONG arg2 );
   72 ULONG UMult64( ULONG arg1, ULONG arg2 );
   73 
   74 ULONG PackStructureTags( APTR pack, CONST ULONG *packTable, CONST struct TagItem *tagList );
   75 ULONG UnpackStructureTags( CONST APTR pack, CONST ULONG *packTable, struct TagItem *tagList );
   76 
   77 BOOL AddNamedObject( struct NamedObject *nameSpace, struct NamedObject *object );
   78 struct NamedObject *AllocNamedObjectA( CONST_STRPTR name, CONST struct TagItem *tagList );
   79 #if !defined(USE_INLINE_STDARG)
   80 struct NamedObject *AllocNamedObject( CONST_STRPTR name, Tag tag1, ... );
   81 #endif
   82 LONG AttemptRemNamedObject( struct NamedObject *object );
   83 struct NamedObject *FindNamedObject( struct NamedObject *nameSpace, CONST_STRPTR name, struct NamedObject *lastObject );
   84 VOID FreeNamedObject( struct NamedObject *object );
   85 STRPTR NamedObjectName( struct NamedObject *object );
   86 VOID ReleaseNamedObject( struct NamedObject *object );
   87 VOID RemNamedObject( struct NamedObject *object, struct Message *message );
   88 
   89 ULONG GetUniqueID( VOID );
   90 
   91 #ifdef __cplusplus
   92 }
   93 #endif /* __cplusplus */
   94 
   95 
   96 #endif /* CLIB_UTILITY_PROTOS_H */