#ifndef CLIB_UTILITY_PROTOS_H #define CLIB_UTILITY_PROTOS_H /* ** $VER: utility_protos.h 39.12 (10.2.93) ** Includes Release 40.15 ** ** C prototypes. For use with 32 bit integers only. ** ** (C) Copyright 1990-1993 Commodore-Amiga, Inc. ** All Rights Reserved */ #ifndef EXEC_TYPES_H #include #endif #ifndef EXEC_PORTS_H #include #endif #ifndef UTILITY_TAGITEM_H #include #endif #ifndef UTILITY_DATE_H #include #endif #ifndef UTILITY_HOOKS_H #include #endif #ifndef UTILITY_NAME_H #include #endif #ifdef __cplusplus extern "C" { #endif /*--- functions in V36 or higher (Release 2.0) ---*/ /* Tag item functions */ struct TagItem *FindTagItem( Tag tagVal, struct TagItem *tagList ); ULONG GetTagData( Tag tagValue, unsigned long defaultVal, struct TagItem *tagList ); ULONG PackBoolTags( unsigned long initialFlags, struct TagItem *tagList, struct TagItem *boolMap ); struct TagItem *NextTagItem( struct TagItem **tagListPtr ); void FilterTagChanges( struct TagItem *changeList, struct TagItem *originalList, unsigned long apply ); void MapTags( struct TagItem *tagList, struct TagItem *mapList, unsigned long mapType ); struct TagItem *AllocateTagItems( unsigned long numTags ); struct TagItem *CloneTagItems( struct TagItem *tagList ); void FreeTagItems( struct TagItem *tagList ); void RefreshTagItemClones( struct TagItem *clone, struct TagItem *original ); BOOL TagInArray( Tag tagValue, Tag *tagArray ); ULONG FilterTagItems( struct TagItem *tagList, Tag *filterArray, unsigned long logic ); /* Hook functions */ ULONG CallHookPkt( struct Hook *hook, APTR object, APTR paramPacket ); /* Date functions */ void Amiga2Date( unsigned long seconds, struct ClockData *result ); ULONG Date2Amiga( struct ClockData *date ); ULONG CheckDate( struct ClockData *date ); /* 32 bit integer muliply functions */ LONG SMult32( long arg1, long arg2 ); ULONG UMult32( unsigned long arg1, unsigned long arg2 ); /* 32 bit integer division funtions. The quotient and the remainder are */ /* returned respectively in d0 and d1 */ LONG SDivMod32( long dividend, long divisor ); ULONG UDivMod32( unsigned long dividend, unsigned long divisor ); /*--- functions in V37 or higher (Release 2.04) ---*/ /* International string routines */ LONG Stricmp( STRPTR string1, STRPTR string2 ); LONG Strnicmp( STRPTR string1, STRPTR string2, long length ); UBYTE ToUpper( unsigned long character ); UBYTE ToLower( unsigned long character ); /*--- functions in V39 or higher (Release 3) ---*/ /* More tag Item functions */ void ApplyTagChanges( struct TagItem *list, struct TagItem *changeList ); /* 64 bit integer muliply functions. The results are 64 bit quantities */ /* returned in D0 and D1 */ LONG SMult64( long arg1, long arg2 ); ULONG UMult64( unsigned long arg1, unsigned long arg2 ); /* Structure to Tag and Tag to Structure support routines */ ULONG PackStructureTags( APTR pack, ULONG *packTable, struct TagItem *tagList ); ULONG UnpackStructureTags( APTR pack, ULONG *packTable, struct TagItem *tagList ); /* New, object-oriented NameSpaces */ BOOL AddNamedObject( struct NamedObject *nameSpace, struct NamedObject *object ); struct NamedObject *AllocNamedObjectA( STRPTR name, struct TagItem *tagList ); struct NamedObject *AllocNamedObject( STRPTR name, Tag tag1, ... ); LONG AttemptRemNamedObject( struct NamedObject *object ); struct NamedObject *FindNamedObject( struct NamedObject *nameSpace, STRPTR name, struct NamedObject *lastObject ); void FreeNamedObject( struct NamedObject *object ); STRPTR NamedObjectName( struct NamedObject *object ); void ReleaseNamedObject( struct NamedObject *object ); void RemNamedObject( struct NamedObject *object, struct Message *message ); /* Unique ID generator */ ULONG GetUniqueID( void ); #ifdef __cplusplus } #endif #ifdef STORMPRAGMAS #ifndef _INCLUDE_PRAGMA_UTILITY_LIB_H #include #endif #endif #endif /* CLIB_UTILITY_PROTOS_H */