/*
 * Copyright (c) 2008-2025 Jonathan Schleifer <js@nil.im>
 *
 * All rights reserved.
 *
 * This program is free software: you can redistribute it and/or modify it
 * under the terms of the GNU Lesser General Public License version 3.0 only,
 * as published by the Free Software Foundation.
 *
 * This program is distributed in the hope that it will be useful, but WITHOUT
 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License
 * version 3.0 for more details.
 *
 * You should have received a copy of the GNU Lesser General Public License
 * version 3.0 along with this program. If not, see
 * <https://www.gnu.org/licenses/>.
 */

/* This file is automatically generated from amiga-library.xml */

#include "config.h"

#import "amiga-glue.h"


bool __saveds
glue_OFInit(void)
{
	M68K_ARG(unsigned int, version, d0)
	M68K_ARG(struct OFLibC *_Nonnull, libc, a0)
	M68K_ARG(struct Library *_Nonnull, RTBase, a1)

	return OFInit(version, libc, RTBase);
}

void *_Nullable __saveds
glue_OFAllocMemory(void)
{
	M68K_ARG(size_t, count, d0)
	M68K_ARG(size_t, size, d1)

	return OFAllocMemory(count, size);
}

void *_Nullable __saveds
glue_OFAllocZeroedMemory(void)
{
	M68K_ARG(size_t, count, d0)
	M68K_ARG(size_t, size, d1)

	return OFAllocZeroedMemory(count, size);
}

void *_Nullable __saveds
glue_OFResizeMemory(void)
{
	M68K_ARG(void *_Nullable, pointer, a0)
	M68K_ARG(size_t, count, d0)
	M68K_ARG(size_t, size, d1)

	return OFResizeMemory(pointer, count, size);
}

void __saveds
glue_OFFreeMemory(void)
{
	M68K_ARG(void *_Nullable, pointer, a0)

	OFFreeMemory(pointer);
}

void __saveds
glue_OFHashInit(void)
{
	M68K_ARG(unsigned long *_Nonnull, hash, a0)

	OFHashInit(hash);
}

uint16_t __saveds
glue_OFRandom16(void)
{
	return OFRandom16();
}

uint32_t __saveds
glue_OFRandom32(void)
{
	return OFRandom32();
}

uint64_t __saveds
glue_OFRandom64(void)
{
	return OFRandom64();
}

unsigned long *_Nonnull __saveds
glue_OFHashSeedRef(void)
{
	return OFHashSeedRef();
}

OFStdIOStream *_Nonnull *_Nullable __saveds
glue_OFStdInRef(void)
{
	return OFStdInRef();
}

OFStdIOStream *_Nonnull *_Nullable __saveds
glue_OFStdOutRef(void)
{
	return OFStdOutRef();
}

OFStdIOStream *_Nonnull *_Nullable __saveds
glue_OFStdErrRef(void)
{
	return OFStdErrRef();
}

void __saveds
glue_OFLogV(void)
{
	M68K_ARG(OFConstantString *, format, a0)
	M68K_ARG(va_list, arguments, a1)

	OFLogV(format, arguments);
}

int __saveds
glue_OFApplicationMain(void)
{
	M68K_ARG(int *_Nonnull, argc, a0)
	M68K_ARG(char *_Nullable *_Nonnull *_Nonnull, argv, a1)
	M68K_ARG(id <OFApplicationDelegate>, delegate, a2)

	return OFApplicationMain(argc, argv, delegate);
}

void *_Nullable __saveds
glue__Block_copy(void)
{
	M68K_ARG(const void *_Nullable, block, a0)

	return _Block_copy(block);
}

void __saveds
glue__Block_release(void)
{
	M68K_ARG(const void *_Nullable, block, a0)

	_Block_release(block);
}

OFString *_Nonnull __saveds
glue_OFDNSClassName(void)
{
	M68K_ARG(OFDNSClass, DNSClass, d0)

	return OFDNSClassName(DNSClass);
}

OFString *_Nonnull __saveds
glue_OFDNSRecordTypeName(void)
{
	M68K_ARG(OFDNSRecordType, recordType, d0)

	return OFDNSRecordTypeName(recordType);
}

OFDNSClass __saveds
glue_OFDNSClassParseName(void)
{
	M68K_ARG(OFString *_Nonnull, string, a0)

	return OFDNSClassParseName(string);
}

OFDNSRecordType __saveds
glue_OFDNSRecordTypeParseName(void)
{
	M68K_ARG(OFString *_Nonnull, string, a0)

	return OFDNSRecordTypeParseName(string);
}

void __saveds
glue_OFRegisterEmbeddedFile(void)
{
	M68K_ARG(OFString *_Nonnull, name, a0)
	M68K_ARG(const uint8_t *_Nonnull, bytes, a1)
	M68K_ARG(size_t, size, d0)

	OFRegisterEmbeddedFile(name, bytes, size);
}

OFString *_Nullable __saveds
glue_OFHTTPRequestMethodString(void)
{
	M68K_ARG(OFHTTPRequestMethod, method, d0)

	return OFHTTPRequestMethodString(method);
}

OFHTTPRequestMethod __saveds
glue_OFHTTPRequestMethodParseString(void)
{
	M68K_ARG(OFString *, string, a0)

	return OFHTTPRequestMethodParseString(string);
}

OFString *_Nonnull __saveds
glue_OFHTTPStatusCodeString(void)
{
	M68K_ARG(short, code, d0)

	return OFHTTPStatusCodeString(code);
}

OFListItem _Nullable __saveds
glue_OFListItemNext(void)
{
	M68K_ARG(OFListItem _Nonnull, listItem, a0)

	return OFListItemNext(listItem);
}

OFListItem _Nullable __saveds
glue_OFListItemPrevious(void)
{
	M68K_ARG(OFListItem _Nonnull, listItem, a0)

	return OFListItemPrevious(listItem);
}

id _Nonnull __saveds
glue_OFListItemObject(void)
{
	M68K_ARG(OFListItem _Nonnull, listItem, a0)

	return OFListItemObject(listItem);
}

size_t __saveds
glue_OFSizeOfTypeEncoding(void)
{
	M68K_ARG(const char *, type, a0)

	return OFSizeOfTypeEncoding(type);
}

size_t __saveds
glue_OFAlignmentOfTypeEncoding(void)
{
	M68K_ARG(const char *, type, a0)

	return OFAlignmentOfTypeEncoding(type);
}

void __saveds
glue_OFOnce(void)
{
	M68K_ARG(OFOnceControl *_Nonnull, control, a0)
	M68K_ARG(OFOnceFunction _Nonnull, func, a1)

	OFOnce(control, func);
}

void __saveds
glue_OFPBKDF2Wrapper(void)
{
	M68K_ARG(const OFPBKDF2Parameters *_Nonnull, parameters, a0)

	OFPBKDF2Wrapper(parameters);
}

void __saveds
glue_OFScryptWrapper(void)
{
	M68K_ARG(const OFScryptParameters *_Nonnull, parameters, a0)

	OFScryptWrapper(parameters);
}

void __saveds
glue__OFSalsa20_8Core(void)
{
	M68K_ARG(uint32_t *_Nonnull, buffer, a0)

	_OFSalsa20_8Core(buffer);
}

void __saveds
glue__OFScryptBlockMix(void)
{
	M68K_ARG(uint32_t *_Nonnull, output, a0)
	M68K_ARG(const uint32_t *_Nonnull, input, a1)
	M68K_ARG(size_t, blockSize, d0)

	_OFScryptBlockMix(output, input, blockSize);
}

void __saveds
glue__OFScryptROMix(void)
{
	M68K_ARG(uint32_t *, buffer, a0)
	M68K_ARG(size_t, blockSize, d0)
	M68K_ARG(size_t, costFactor, d1)
	M68K_ARG(uint32_t *, tmp, a1)

	_OFScryptROMix(buffer, blockSize, costFactor, tmp);
}

OFSocketAddress __saveds
glue_OFSocketAddressParseIP(void)
{
	M68K_ARG(OFString *, IP, a0)
	M68K_ARG(uint16_t, port, d0)

	return OFSocketAddressParseIP(IP, port);
}

OFSocketAddress __saveds
glue_OFSocketAddressParseIPv4(void)
{
	M68K_ARG(OFString *, IP, a0)
	M68K_ARG(uint16_t, port, d0)

	return OFSocketAddressParseIPv4(IP, port);
}

OFSocketAddress __saveds
glue_OFSocketAddressParseIPv6(void)
{
	M68K_ARG(OFString *, IP, a0)
	M68K_ARG(uint16_t, port, d0)

	return OFSocketAddressParseIPv6(IP, port);
}

OFSocketAddress __saveds
glue_OFSocketAddressMakeUNIX(void)
{
	M68K_ARG(OFString *, path, a0)

	return OFSocketAddressMakeUNIX(path);
}

OFSocketAddress __saveds
glue_OFSocketAddressMakeIPX(void)
{
	M68K_ARG(uint32_t, network, d0)
	M68K_ARG(const unsigned char *, node, a0)
	M68K_ARG(uint16_t, port, d1)

	return OFSocketAddressMakeIPX(network, node, port);
}

OFSocketAddress __saveds
glue_OFSocketAddressMakeAppleTalk(void)
{
	M68K_ARG(uint16_t, network, d0)
	M68K_ARG(uint8_t, node, d1)
	M68K_ARG(uint8_t, port, d2)

	return OFSocketAddressMakeAppleTalk(network, node, port);
}

bool __saveds
glue_OFSocketAddressEqual(void)
{
	M68K_ARG(const OFSocketAddress *, address1, a0)
	M68K_ARG(const OFSocketAddress *, address2, a1)

	return OFSocketAddressEqual(address1, address2);
}

unsigned long __saveds
glue_OFSocketAddressHash(void)
{
	M68K_ARG(const OFSocketAddress *, address, a0)

	return OFSocketAddressHash(address);
}

OFString *_Nonnull __saveds
glue_OFSocketAddressString(void)
{
	M68K_ARG(const OFSocketAddress *, address, a0)

	return OFSocketAddressString(address);
}

void __saveds
glue_OFSocketAddressSetIPPort(void)
{
	M68K_ARG(OFSocketAddress *, address, a0)
	M68K_ARG(uint16_t, port, d0)

	OFSocketAddressSetIPPort(address, port);
}

uint16_t __saveds
glue_OFSocketAddressIPPort(void)
{
	M68K_ARG(const OFSocketAddress *, address, a0)

	return OFSocketAddressIPPort(address);
}

OFString * __saveds
glue_OFSocketAddressUNIXPath(void)
{
	M68K_ARG(const OFSocketAddress *, address, a0)

	return OFSocketAddressUNIXPath(address);
}

void __saveds
glue_OFSocketAddressSetIPXNetwork(void)
{
	M68K_ARG(OFSocketAddress *, address, a0)
	M68K_ARG(uint32_t, network, d0)

	OFSocketAddressSetIPXNetwork(address, network);
}

uint32_t __saveds
glue_OFSocketAddressIPXNetwork(void)
{
	M68K_ARG(const OFSocketAddress *, address, a0)

	return OFSocketAddressIPXNetwork(address);
}

void __saveds
glue_OFSocketAddressSetIPXNode(void)
{
	M68K_ARG(OFSocketAddress *, address, a0)
	M68K_ARG(const unsigned char *, node, a1)

	OFSocketAddressSetIPXNode(address, node);
}

void __saveds
glue_OFSocketAddressGetIPXNode(void)
{
	M68K_ARG(const OFSocketAddress *, address, a0)
	M68K_ARG(unsigned char *_Nonnull, node, a1)

	OFSocketAddressGetIPXNode(address, node);
}

void __saveds
glue_OFSocketAddressSetIPXPort(void)
{
	M68K_ARG(OFSocketAddress *, address, a0)
	M68K_ARG(uint16_t, port, d0)

	OFSocketAddressSetIPXPort(address, port);
}

uint16_t __saveds
glue_OFSocketAddressIPXPort(void)
{
	M68K_ARG(const OFSocketAddress *, address, a0)

	return OFSocketAddressIPXPort(address);
}

void __saveds
glue_OFSocketAddressSetAppleTalkNetwork(void)
{
	M68K_ARG(OFSocketAddress *, address, a0)
	M68K_ARG(uint16_t, network, d0)

	OFSocketAddressSetAppleTalkNetwork(address, network);
}

uint16_t __saveds
glue_OFSocketAddressAppleTalkNetwork(void)
{
	M68K_ARG(const OFSocketAddress *, address, a0)

	return OFSocketAddressAppleTalkNetwork(address);
}

void __saveds
glue_OFSocketAddressSetAppleTalkNode(void)
{
	M68K_ARG(OFSocketAddress *, address, a0)
	M68K_ARG(uint8_t, node, d0)

	OFSocketAddressSetAppleTalkNode(address, node);
}

uint8_t __saveds
glue_OFSocketAddressAppleTalkNode(void)
{
	M68K_ARG(const OFSocketAddress *, address, a0)

	return OFSocketAddressAppleTalkNode(address);
}

void __saveds
glue_OFSocketAddressSetAppleTalkPort(void)
{
	M68K_ARG(OFSocketAddress *, address, a0)
	M68K_ARG(uint8_t, port, d0)

	OFSocketAddressSetAppleTalkPort(address, port);
}

uint8_t __saveds
glue_OFSocketAddressAppleTalkPort(void)
{
	M68K_ARG(const OFSocketAddress *, address, a0)

	return OFSocketAddressAppleTalkPort(address);
}

OFString * __saveds
glue_OFTLSStreamErrorCodeDescription(void)
{
	M68K_ARG(OFTLSStreamErrorCode, errorCode, d0)

	return OFTLSStreamErrorCodeDescription(errorCode);
}

Class _Nonnull *_Nullable __saveds
glue_OFTLSStreamImplementationRef(void)
{
	return OFTLSStreamImplementationRef();
}

const char *_Nullable __saveds
glue__OFStrPTime(void)
{
	M68K_ARG(const char *, buffer, a0)
	M68K_ARG(const char *, format, a1)
	M68K_ARG(struct tm *, tm, a2)
	M68K_ARG(int16_t *_Nullable, tz, a3)

	return _OFStrPTime(buffer, format, tm, tz);
}

OFStringEncoding __saveds
glue_OFStringEncodingParseName(void)
{
	M68K_ARG(OFString *, string, a0)

	return OFStringEncodingParseName(string);
}

OFString *_Nullable __saveds
glue_OFStringEncodingName(void)
{
	M68K_ARG(OFStringEncoding, encoding, d0)

	return OFStringEncodingName(encoding);
}

size_t __saveds
glue_OFUTF16StringLength(void)
{
	M68K_ARG(const OFChar16 *, string, a0)

	return OFUTF16StringLength(string);
}

size_t __saveds
glue_OFUTF32StringLength(void)
{
	M68K_ARG(const OFChar32 *, string, a0)

	return OFUTF32StringLength(string);
}

OFString *_Nonnull __saveds
glue_OFZIPArchiveEntryVersionToString(void)
{
	M68K_ARG(uint16_t, version, d0)

	return OFZIPArchiveEntryVersionToString(version);
}

OFString *_Nonnull __saveds
glue_OFZIPArchiveEntryCompressionMethodName(void)
{
	M68K_ARG(OFZIPArchiveEntryCompressionMethod, compressionMethod, d0)

	return OFZIPArchiveEntryCompressionMethodName(compressionMethod);
}

size_t __saveds
glue_OFZIPArchiveEntryExtraFieldFind(void)
{
	M68K_ARG(OFData *, extraField, a0)
	M68K_ARG(OFZIPArchiveEntryExtraFieldTag, tag, d0)
	M68K_ARG(uint16_t *, size, a1)

	return OFZIPArchiveEntryExtraFieldFind(extraField, tag, size);
}
