/*
 * Copyright (c) 2008-2021 Jonathan Schleifer <js@nil.im>
 *
 * All rights reserved.
 *
 * This file is part of ObjFW. It may be distributed under the terms of the
 * Q Public License 1.0, which can be found in the file LICENSE.QPL included in
 * the packaging of this file.
 *
 * Alternatively, it may be distributed under the terms of the GNU General
 * Public License, either version 2 or 3, which can be found in the file
 * LICENSE.GPLv2 or LICENSE.GPLv3 respectively included in the packaging of this
 * file.
 */

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

#import "amiga-library.h"
#import "OFObject.h"
#import "OFStdIOStream.h"
#import "OFApplication.h"
#import "OFHTTPRequest.h"
#import "OFHTTPResponse.h"
#import "OFMethodSignature.h"
#import "OFString.h"
#import "OFZIPArchiveEntry.h"
#import "pbkdf2.h"
#import "scrypt.h"
#import "of_strptime.h"
#import "socket.h"
#import "OFDNSResourceRecord.h"

#ifdef OF_AMIGAOS_M68K
# define PPC_PARAMS(...) (void)
# define M68K_ARG(type, name, reg)		\
	register type reg##name __asm__(#reg);	\
	type name = reg##name;
#else
# define PPC_PARAMS(...) (__VA_ARGS__)
# define M68K_ARG(...)
#endif

extern bool glue_of_init PPC_PARAMS(unsigned int version, struct of_libc *_Nonnull libc, FILE *_Nonnull *_Nonnull sF);
extern void *_Nullable glue_of_alloc PPC_PARAMS(size_t count, size_t size);
extern void *_Nullable glue_of_alloc_zeroed PPC_PARAMS(size_t count, size_t size);
extern void *_Nullable glue_of_realloc PPC_PARAMS(void *_Nullable pointer, size_t count, size_t size);
extern uint32_t *_Nonnull glue_of_hash_seed_ref(void);
extern OFStdIOStream *_Nonnull *_Nullable glue_of_stdin_ref(void);
extern OFStdIOStream *_Nonnull *_Nullable glue_of_stdout_ref(void);
extern OFStdIOStream *_Nonnull *_Nullable glue_of_stderr_ref(void);
extern void glue_of_logv PPC_PARAMS(OFConstantString *format, va_list arguments);
extern int glue_of_application_main PPC_PARAMS(int *_Nonnull argc, char *_Nullable *_Nonnull *_Nonnull argv, id <OFApplicationDelegate> delegate);
extern const char *_Nullable glue_of_http_request_method_to_string PPC_PARAMS(of_http_request_method_t method);
extern of_http_request_method_t glue_of_http_request_method_from_string PPC_PARAMS(OFString *string);
extern OFString *_Nonnull glue_of_http_status_code_to_string PPC_PARAMS(short code);
extern size_t glue_of_sizeof_type_encoding PPC_PARAMS(const char *type);
extern size_t glue_of_alignof_type_encoding PPC_PARAMS(const char *type);
extern of_string_encoding_t glue_of_string_parse_encoding PPC_PARAMS(OFString *string);
extern OFString *_Nullable glue_of_string_name_of_encoding PPC_PARAMS(of_string_encoding_t encoding);
extern size_t glue_of_string_utf8_encode PPC_PARAMS(of_unichar_t c, char *UTF8);
extern ssize_t glue_of_string_utf8_decode PPC_PARAMS(const char *UTF8, size_t len, of_unichar_t *c);
extern size_t glue_of_string_utf16_length PPC_PARAMS(const of_char16_t *string);
extern size_t glue_of_string_utf32_length PPC_PARAMS(const of_char32_t *string);
extern OFString *_Nonnull glue_of_zip_archive_entry_version_to_string PPC_PARAMS(uint16_t version);
extern OFString *_Nonnull glue_of_zip_archive_entry_compression_method_to_string PPC_PARAMS(uint16_t compressionMethod);
extern size_t glue_of_zip_archive_entry_extra_field_find PPC_PARAMS(OFData *extraField, uint16_t tag, uint16_t *size);
extern void glue_of_pbkdf2 PPC_PARAMS(of_pbkdf2_parameters_t param);
extern void glue_of_salsa20_8_core PPC_PARAMS(uint32_t *_Nonnull buffer);
extern void glue_of_scrypt_block_mix PPC_PARAMS(uint32_t *_Nonnull output, const uint32_t *_Nonnull input, size_t blockSize);
extern void glue_of_scrypt_romix PPC_PARAMS(uint32_t *buffer, size_t blockSize, size_t costFactor, uint32_t *tmp);
extern void glue_of_scrypt PPC_PARAMS(of_scrypt_parameters_t param);
extern const char *_Nullable glue_of_strptime PPC_PARAMS(const char *buf, const char *fmt, struct tm *tm, int16_t *_Nullable tz);
extern of_socket_address_t glue_of_socket_address_parse_ip PPC_PARAMS(OFString *IP, uint16_t port);
extern of_socket_address_t glue_of_socket_address_parse_ipv4 PPC_PARAMS(OFString *IP, uint16_t port);
extern of_socket_address_t glue_of_socket_address_parse_ipv6 PPC_PARAMS(OFString *IP, uint16_t port);
extern of_socket_address_t glue_of_socket_address_ipx PPC_PARAMS(const unsigned char *_Nonnull node, uint32_t network, uint16_t port);
extern bool glue_of_socket_address_equal PPC_PARAMS(const of_socket_address_t *_Nonnull address1, const of_socket_address_t *_Nonnull address2);
extern unsigned long glue_of_socket_address_hash PPC_PARAMS(const of_socket_address_t *_Nonnull address);
extern OFString *_Nonnull glue_of_socket_address_ip_string PPC_PARAMS(const of_socket_address_t *_Nonnull address, uint16_t *_Nullable port);
extern void glue_of_socket_address_set_port PPC_PARAMS(of_socket_address_t *_Nonnull address, uint16_t port);
extern uint16_t glue_of_socket_address_get_port PPC_PARAMS(const of_socket_address_t *_Nonnull address);
extern void glue_of_socket_address_set_ipx_network PPC_PARAMS(of_socket_address_t *_Nonnull address, uint32_t network);
extern uint32_t glue_of_socket_address_get_ipx_network PPC_PARAMS(const of_socket_address_t *_Nonnull address);
extern void glue_of_socket_address_set_ipx_node PPC_PARAMS(of_socket_address_t *_Nonnull address, const unsigned char *_Nonnull node);
extern void glue_of_socket_address_get_ipx_node PPC_PARAMS(const of_socket_address_t *_Nonnull address, unsigned char *_Nonnull node);
extern OFString *_Nonnull glue_of_dns_class_to_string PPC_PARAMS(of_dns_class_t DNSClass);
extern OFString *_Nonnull glue_of_dns_record_type_to_string PPC_PARAMS(of_dns_record_type_t recordType);
extern of_dns_class_t glue_of_dns_class_parse PPC_PARAMS(OFString *_Nonnull string);
extern of_dns_record_type_t glue_of_dns_record_type_parse PPC_PARAMS(OFString *_Nonnull string);
