<amiga-library version='1.0' base='ObjFWBase'>
  <include>amiga-library.h</include>
  <!-- The following function is only for the linklib. -->
  <function name='OFInit' return-type='bool'>
    <argument name='version' type='unsigned int' m68k-reg='d0'/>
    <argument name='libc' type='struct OFLibC *_Nonnull' m68k-reg='a0'/>
    <argument name='sF' type='FILE *_Nonnull *_Nonnull' m68k-reg='a1'/>
  </function>
  <include>OFObject.h</include>
  <function name='OFAllocMemory' return-type='void *_Nullable'>
    <argument name='count' type='size_t' m68k-reg='d0'/>
    <argument name='size' type='size_t' m68k-reg='d1'/>
  </function>
  <function name='OFAllocZeroedMemory' return-type='void *_Nullable'>
    <argument name='count' type='size_t' m68k-reg='d0'/>
    <argument name='size' type='size_t' m68k-reg='d1'/>
  </function>
  <function name='OFResizeMemory' return-type='void *_Nullable'>
    <argument name='pointer' type='void *_Nullable' m68k-reg='a0'/>
    <argument name='count' type='size_t' m68k-reg='d0'/>
    <argument name='size' type='size_t' m68k-reg='d1'/>
  </function>
  <function name='OFFreeMemory'>
    <argument name='pointer' type='void *_Nullable' m68k-reg='a0'/>
  </function>
  <function name='OFHashInit'>
    <argument name='hash' type='unsigned long *_Nonnull' m68k-reg='a0'/>
  </function>
  <function name='OFRandom16' return-type='uint16_t'/>
  <function name='OFRandom32' return-type='uint32_t'/>
  <function name='OFRandom64' return-type='uint64_t'/>
  <function name='OFHashSeedRef' return-type='unsigned long *_Nonnull'/>
  <include>OFStdIOStream.h</include>
  <function name='OFStdInRef'
            return-type='OFStdIOStream *_Nonnull *_Nullable'/>
  <function name='OFStdOutRef'
            return-type='OFStdIOStream *_Nonnull *_Nullable'/>
  <function name='OFStdErrRef'
            return-type='OFStdIOStream *_Nonnull *_Nullable'/>
  <function name='OFLogV'>
    <argument name='format' type='OFConstantString *' m68k-reg='a0'/>
    <argument name='arguments' type='va_list' m68k-reg='a1'/>
  </function>
  <include>OFApplication.h</include>
  <function name='OFApplicationMain' return-type='int'>
    <argument name='argc' type='int *_Nonnull' m68k-reg='a0'/>
    <argument name='argv' type='char *_Nullable *_Nonnull *_Nonnull'
              m68k-reg='a1'/>
    <argument name='delegate' type='id <OFApplicationDelegate>' m68k-reg='a2'/>
  </function>
  <include>OFBlock.h</include>
  <function name='_Block_copy' return-type='void *_Nullable'>
    <argument name='block' type='const void *_Nullable' m68k-reg='a0'/>
  </function>
  <function name='_Block_release'>
    <argument name='block' type='const void *_Nullable' m68k-reg='a0'/>
  </function>
  <include>OFDNSResourceRecord.h</include>
  <function name='OFDNSClassName' return-type='OFString *_Nonnull'>
    <argument name='DNSClass' type='OFDNSClass' m68k-reg='d0'/>
  </function>
  <function name='OFDNSRecordTypeName' return-type='OFString *_Nonnull'>
    <argument name='recordType' type='OFDNSRecordType' m68k-reg='d0'/>
  </function>
  <function name='OFDNSClassParseName' return-type='OFDNSClass'>
    <argument name='string' type='OFString *_Nonnull' m68k-reg='a0'/>
  </function>
  <function name='OFDNSRecordTypeParseName' return-type='OFDNSRecordType'>
    <argument name='string' type='OFString *_Nonnull' m68k-reg='a0'/>
  </function>
  <include>OFHTTPRequest.h</include>
  <function name='OFHTTPRequestMethodName' return-type='const char *_Nullable'>
    <argument name='method' type='OFHTTPRequestMethod' m68k-reg='d0'/>
  </function>
  <function name='OFHTTPRequestMethodParseName'
            return-type='OFHTTPRequestMethod'>
    <argument name='string' type='OFString *' m68k-reg='a0'/>
  </function>
  <include>OFHTTPResponse.h</include>
  <function name='OFHTTPStatusCodeString' return-type='OFString *_Nonnull'>
    <argument name='code' type='short' m68k-reg='d0'/>
  </function>
  <include>OFList.h</include>
  <function name='OFListItemNext' return-type='OFListItem _Nullable'>
    <argument name='listItem' type='OFListItem _Nonnull' m68k-reg='a0'/>
  </function>
  <function name='OFListItemPrevious' return-type='OFListItem _Nullable'>
    <argument name='listItem' type='OFListItem _Nonnull' m68k-reg='a0'/>
  </function>
  <function name='OFListItemObject' return-type='id _Nonnull'>
    <argument name='listItem' type='OFListItem _Nonnull' m68k-reg='a0'/>
  </function>
  <include>OFMethodSignature.h</include>
  <function name='OFSizeOfTypeEncoding' return-type='size_t'>
    <argument name='type' type='const char *' m68k-reg='a0'/>
  </function>
  <function name='OFAlignmentOfTypeEncoding' return-type='size_t'>
    <argument name='type' type='const char *' m68k-reg='a0'/>
  </function>
  <include>OFOnce.h</include>
  <function name='OFOnce'>
    <argument name='control' type='OFOnceControl *_Nonnull' m68k-reg='a0'/>
    <argument name='func' type='OFOnceFunction _Nonnull' m68k-reg='a1'/>
  </function>
  <include>OFPBKDF2.h</include>
  <function name='OFPBKDF2Wrapper'>
    <argument name='parameters' type='const OFPBKDF2Parameters *_Nonnull'
              m68k-reg='a0'/>
  </function>
  <include>OFScrypt.h</include>
  <function name='OFScryptWrapper'>
    <argument name='parameters' type='const OFScryptParameters *_Nonnull'
              m68k-reg='a0'/>
  </function>
  <!-- The following scrypt functions are only for tests. -->
  <function name='OFSalsa20_8Core'>
    <argument name='buffer' type='uint32_t *_Nonnull' m68k-reg='a0'/>
  </function>
  <function name='OFScryptBlockMix'>
    <argument name='output' type='uint32_t *_Nonnull' m68k-reg='a0'/>
    <argument name='input' type='const uint32_t *_Nonnull' m68k-reg='a1'/>
    <argument name='blockSize' type='size_t' m68k-reg='d0'/>
  </function>
  <function name='OFScryptROMix'>
    <argument name='buffer' type='uint32_t *' m68k-reg='a0'/>
    <argument name='blockSize' type='size_t' m68k-reg='d0'/>
    <argument name='costFactor' type='size_t' m68k-reg='d1'/>
    <argument name='tmp' type='uint32_t *' m68k-reg='a1'/>
  </function>
  <include>OFSocket.h</include>
  <function name='OFSocketAddressParseIP' return-type='OFSocketAddress'>
    <argument name='IP' type='OFString *' m68k-reg='a0'/>
    <argument name='port' type='uint16_t' m68k-reg='d0'/>
  </function>
  <function name='OFSocketAddressParseIPv4' return-type='OFSocketAddress'>
    <argument name='IP' type='OFString *' m68k-reg='a0'/>
    <argument name='port' type='uint16_t' m68k-reg='d0'/>
  </function>
  <function name='OFSocketAddressParseIPv6' return-type='OFSocketAddress'>
    <argument name='IP' type='OFString *' m68k-reg='a0'/>
    <argument name='port' type='uint16_t' m68k-reg='d0'/>
  </function>
  <function name='OFSocketAddressMakeIPX' return-type='OFSocketAddress'>
    <argument name='node' type='const unsigned char *_Nonnull' m68k-reg='a0'/>
    <argument name='network' type='uint32_t' m68k-reg='d0'/>
    <argument name='port' type='uint16_t' m68k-reg='d1'/>
  </function>
  <function name='OFSocketAddressEqual' return-type='bool'>
    <argument name='address1' type='const OFSocketAddress *_Nonnull'
              m68k-reg='a0'/>
    <argument name='address2' type='const OFSocketAddress *_Nonnull'
              m68k-reg='a1'/>
  </function>
  <function name='OFSocketAddressHash' return-type='unsigned long'>
    <argument name='address' type='const OFSocketAddress *_Nonnull'
              m68k-reg='a0'/>
  </function>
  <function name='OFSocketAddressString' return-type='OFString *_Nonnull'>
    <argument name='address' type='const OFSocketAddress *_Nonnull'
              m68k-reg='a0'/>
  </function>
  <function name='OFSocketAddressSetPort'>
    <argument name='address' type='OFSocketAddress *_Nonnull' m68k-reg='a0'/>
    <argument name='port' type='uint16_t' m68k-reg='d0'/>
  </function>
  <function name='OFSocketAddressPort' return-type='uint16_t'>
    <argument name='address' type='const OFSocketAddress *_Nonnull'
              m68k-reg='a0'/>
  </function>
  <function name='OFSocketAddressSetIPXNetwork'>
    <argument name='address' type='OFSocketAddress *_Nonnull' m68k-reg='a0'/>
    <argument name='network' type='uint32_t' m68k-reg='d0'/>
  </function>
  <function name='OFSocketAddressIPXNetwork' return-type='uint32_t'>
    <argument name='address' type='const OFSocketAddress *_Nonnull'
              m68k-reg='a0'/>
  </function>
  <function name='OFSocketAddressSetIPXNode'>
    <argument name='address' type='OFSocketAddress *_Nonnull'
              m68k-reg='a0'/>
    <argument name='node' type='const unsigned char *_Nonnull' m68k-reg='a1'/>
  </function>
  <function name='OFSocketAddressIPXNode'>
    <argument name='address' type='const OFSocketAddress *_Nonnull'
              m68k-reg='a0'/>
    <argument name='node' type='unsigned char *_Nonnull' m68k-reg='a1'/>
  </function>
  <!-- Only for tests. -->
  <include>OFStrPTime.h</include>
  <function name='OFStrPTime' return-type='const char *_Nullable'>
    <argument name='buffer' type='const char *' m68k-reg='a0'/>
    <argument name='format' type='const char *' m68k-reg='a1'/>
    <argument name='tm' type='struct tm *' m68k-reg='a2'/>
    <argument name='tz' type='int16_t *_Nullable' m68k-reg='a3'/>
  </function>
  <include>OFString.h</include>
  <function name='OFStringEncodingParseName' return-type='OFStringEncoding'>
    <argument name='string' type='OFString *' m68k-reg='a0'/>
  </function>
  <function name='OFStringEncodingName' return-type='OFString *_Nullable'>
    <argument name='encoding' type='OFStringEncoding' m68k-reg='d0'/>
  </function>
  <function name='OFUTF16StringLength' return-type='size_t'>
    <argument name='string' type='const OFChar16 *' m68k-reg='a0'/>
  </function>
  <function name='OFUTF32StringLength' return-type='size_t'>
    <argument name='string' type='const OFChar32 *' m68k-reg='a0'/>
  </function>
  <include>OFZIPArchiveEntry.h</include>
  <function name='OFZIPArchiveEntryVersionToString'
            return-type='OFString *_Nonnull'>
    <argument name='version' type='uint16_t' m68k-reg='d0'/>
  </function>
  <function name='OFZIPArchiveEntryCompressionMethodName'
            return-type='OFString *_Nonnull'>
    <argument name='compressionMethod' type='OFZIPArchiveEntryCompressionMethod'
              m68k-reg='d0'/>
  </function>
  <function name='OFZIPArchiveEntryExtraFieldFind' return-type='size_t'>
    <argument name='extraField' type='OFData *' m68k-reg='a0'/>
    <argument name='tag' type='OFZIPArchiveEntryExtraFieldTag' m68k-reg='d0'/>
    <argument name='size' type='uint16_t *' m68k-reg='a1'/>
  </function>
</amiga-library>
