Index: src/OFTLSStream.h
==================================================================
--- src/OFTLSStream.h
+++ src/OFTLSStream.h
@@ -163,11 +163,16 @@
*
* This can be set to a class that is always used for OFTLSStream. This is
* useful to either force a specific implementation or use one that ObjFW does
* not know about.
*/
+#ifndef OF_AMIGAOS
extern Class OFTLSStreamImplementation;
+#else
+extern Class _Nonnull *_Nullable OFTLSStreamImplementationRef(void);
+# define OFTLSStreamImplementation (*OFTLSStreamImplementationRef())
+#endif
/**
* @brief Returns a string description for the TLS stream error code.
*
* @param errorCode The error code to return the description for
Index: src/OFTLSStream.m
==================================================================
--- src/OFTLSStream.m
+++ src/OFTLSStream.m
@@ -26,12 +26,25 @@
@public
bool _done;
id _exception;
}
@end
+
+#ifdef OF_AMIGAOS
+# undef OFTLSStreamImplementation
+#endif
Class OFTLSStreamImplementation = Nil;
+
+#ifdef OF_AMIGAOS
+Class *
+OFTLSStreamImplementationRef(void)
+{
+ return &OFTLSStreamImplementation;
+}
+#endif
+
static const OFRunLoopMode handshakeRunLoopMode =
@"OFTLSStreamHandshakeRunLoopMode";
/*
* References to exceptions. This is needed because they are only used by
Index: src/amiga-funcarray.inc
==================================================================
--- src/amiga-funcarray.inc
+++ src/amiga-funcarray.inc
@@ -74,13 +74,14 @@
(CONST_APTR)glue_OFSocketAddressSetAppleTalkNode,
(CONST_APTR)glue_OFSocketAddressAppleTalkNode,
(CONST_APTR)glue_OFSocketAddressSetAppleTalkPort,
(CONST_APTR)glue_OFSocketAddressAppleTalkPort,
(CONST_APTR)glue_OFTLSStreamErrorCodeDescription,
+(CONST_APTR)glue_OFTLSStreamImplementationRef,
(CONST_APTR)glue_OFStrPTime,
(CONST_APTR)glue_OFStringEncodingParseName,
(CONST_APTR)glue_OFStringEncodingName,
(CONST_APTR)glue_OFUTF16StringLength,
(CONST_APTR)glue_OFUTF32StringLength,
(CONST_APTR)glue_OFZIPArchiveEntryVersionToString,
(CONST_APTR)glue_OFZIPArchiveEntryCompressionMethodName,
(CONST_APTR)glue_OFZIPArchiveEntryExtraFieldFind,
Index: src/amiga-glue.h
==================================================================
--- src/amiga-glue.h
+++ src/amiga-glue.h
@@ -104,13 +104,14 @@
extern void glue_OFSocketAddressSetAppleTalkNode PPC_PARAMS(OFSocketAddress *address, uint8_t node);
extern uint8_t glue_OFSocketAddressAppleTalkNode PPC_PARAMS(const OFSocketAddress *address);
extern void glue_OFSocketAddressSetAppleTalkPort PPC_PARAMS(OFSocketAddress *address, uint8_t port);
extern uint8_t glue_OFSocketAddressAppleTalkPort PPC_PARAMS(const OFSocketAddress *address);
extern OFString *glue_OFTLSStreamErrorCodeDescription PPC_PARAMS(OFTLSStreamErrorCode errorCode);
+extern Class _Nonnull *_Nullable glue_OFTLSStreamImplementationRef(void);
extern const char *_Nullable glue_OFStrPTime PPC_PARAMS(const char *buffer, const char *format, struct tm *tm, int16_t *_Nullable tz);
extern OFStringEncoding glue_OFStringEncodingParseName PPC_PARAMS(OFString *string);
extern OFString *_Nullable glue_OFStringEncodingName PPC_PARAMS(OFStringEncoding encoding);
extern size_t glue_OFUTF16StringLength PPC_PARAMS(const OFChar16 *string);
extern size_t glue_OFUTF32StringLength PPC_PARAMS(const OFChar32 *string);
extern OFString *_Nonnull glue_OFZIPArchiveEntryVersionToString PPC_PARAMS(uint16_t version);
extern OFString *_Nonnull glue_OFZIPArchiveEntryCompressionMethodName PPC_PARAMS(OFZIPArchiveEntryCompressionMethod compressionMethod);
extern size_t glue_OFZIPArchiveEntryExtraFieldFind PPC_PARAMS(OFData *extraField, OFZIPArchiveEntryExtraFieldTag tag, uint16_t *size);
Index: src/amiga-glue.m
==================================================================
--- src/amiga-glue.m
+++ src/amiga-glue.m
@@ -534,10 +534,16 @@
{
M68K_ARG(OFTLSStreamErrorCode, errorCode, d0)
return OFTLSStreamErrorCodeDescription(errorCode);
}
+
+Class _Nonnull *_Nullable __saveds
+glue_OFTLSStreamImplementationRef(void)
+{
+ return OFTLSStreamImplementationRef();
+}
const char *_Nullable __saveds
glue_OFStrPTime PPC_PARAMS(const char *buffer, const char *format, struct tm *tm, int16_t *_Nullable tz)
{
M68K_ARG(const char *, buffer, a0)
Index: src/amiga-library.xml
==================================================================
--- src/amiga-library.xml
+++ src/amiga-library.xml
@@ -224,10 +224,12 @@
OFTLSStream.h
+
OFStrPTime.h
Index: src/linklib/linklib.m
==================================================================
--- src/linklib/linklib.m
+++ src/linklib/linklib.m
@@ -1077,141 +1077,158 @@
);
return __extension__ ((OFString *(*)(OFTLSStreamErrorCode))*(void **)(((uintptr_t)ObjFWBase) - 388))(errorCode);
#endif
}
+
+Class _Nonnull *_Nullable
+OFTLSStreamImplementationRef()
+{
+#if defined(OF_AMIGAOS_M68K)
+ register struct Library *a6 __asm__("a6") = ObjFWBase;
+ (void)a6;
+ return ((Class _Nonnull *_Nullable (*)())(((uintptr_t)ObjFWBase) - 396))();
+#elif defined(OF_MORPHOS)
+ __asm__ __volatile__ (
+ "mr %%r12, %0"
+ :: "r"(ObjFWBase) : "r12"
+ );
+
+ return __extension__ ((Class _Nonnull *_Nullable (*)())*(void **)(((uintptr_t)ObjFWBase) - 394))();
+#endif
+}
const char *_Nullable
OFStrPTime(const char *buffer, const char *format, struct tm *tm, int16_t *_Nullable tz)
{
#if defined(OF_AMIGAOS_M68K)
register struct Library *a6 __asm__("a6") = ObjFWBase;
(void)a6;
- return ((const char *_Nullable (*)(const char *__asm__("a0"), const char *__asm__("a1"), struct tm *__asm__("a2"), int16_t *_Nullable __asm__("a3")))(((uintptr_t)ObjFWBase) - 396))(buffer, format, tm, tz);
+ return ((const char *_Nullable (*)(const char *__asm__("a0"), const char *__asm__("a1"), struct tm *__asm__("a2"), int16_t *_Nullable __asm__("a3")))(((uintptr_t)ObjFWBase) - 402))(buffer, format, tm, tz);
#elif defined(OF_MORPHOS)
__asm__ __volatile__ (
"mr %%r12, %0"
:: "r"(ObjFWBase) : "r12"
);
- return __extension__ ((const char *_Nullable (*)(const char *, const char *, struct tm *, int16_t *_Nullable))*(void **)(((uintptr_t)ObjFWBase) - 394))(buffer, format, tm, tz);
+ return __extension__ ((const char *_Nullable (*)(const char *, const char *, struct tm *, int16_t *_Nullable))*(void **)(((uintptr_t)ObjFWBase) - 400))(buffer, format, tm, tz);
#endif
}
OFStringEncoding
OFStringEncodingParseName(OFString *string)
{
#if defined(OF_AMIGAOS_M68K)
register struct Library *a6 __asm__("a6") = ObjFWBase;
(void)a6;
- return ((OFStringEncoding (*)(OFString *__asm__("a0")))(((uintptr_t)ObjFWBase) - 402))(string);
+ return ((OFStringEncoding (*)(OFString *__asm__("a0")))(((uintptr_t)ObjFWBase) - 408))(string);
#elif defined(OF_MORPHOS)
__asm__ __volatile__ (
"mr %%r12, %0"
:: "r"(ObjFWBase) : "r12"
);
- return __extension__ ((OFStringEncoding (*)(OFString *))*(void **)(((uintptr_t)ObjFWBase) - 400))(string);
+ return __extension__ ((OFStringEncoding (*)(OFString *))*(void **)(((uintptr_t)ObjFWBase) - 406))(string);
#endif
}
OFString *_Nullable
OFStringEncodingName(OFStringEncoding encoding)
{
#if defined(OF_AMIGAOS_M68K)
register struct Library *a6 __asm__("a6") = ObjFWBase;
(void)a6;
- return ((OFString *_Nullable (*)(OFStringEncoding __asm__("d0")))(((uintptr_t)ObjFWBase) - 408))(encoding);
+ return ((OFString *_Nullable (*)(OFStringEncoding __asm__("d0")))(((uintptr_t)ObjFWBase) - 414))(encoding);
#elif defined(OF_MORPHOS)
__asm__ __volatile__ (
"mr %%r12, %0"
:: "r"(ObjFWBase) : "r12"
);
- return __extension__ ((OFString *_Nullable (*)(OFStringEncoding))*(void **)(((uintptr_t)ObjFWBase) - 406))(encoding);
+ return __extension__ ((OFString *_Nullable (*)(OFStringEncoding))*(void **)(((uintptr_t)ObjFWBase) - 412))(encoding);
#endif
}
size_t
OFUTF16StringLength(const OFChar16 *string)
{
#if defined(OF_AMIGAOS_M68K)
register struct Library *a6 __asm__("a6") = ObjFWBase;
(void)a6;
- return ((size_t (*)(const OFChar16 *__asm__("a0")))(((uintptr_t)ObjFWBase) - 414))(string);
+ return ((size_t (*)(const OFChar16 *__asm__("a0")))(((uintptr_t)ObjFWBase) - 420))(string);
#elif defined(OF_MORPHOS)
__asm__ __volatile__ (
"mr %%r12, %0"
:: "r"(ObjFWBase) : "r12"
);
- return __extension__ ((size_t (*)(const OFChar16 *))*(void **)(((uintptr_t)ObjFWBase) - 412))(string);
+ return __extension__ ((size_t (*)(const OFChar16 *))*(void **)(((uintptr_t)ObjFWBase) - 418))(string);
#endif
}
size_t
OFUTF32StringLength(const OFChar32 *string)
{
#if defined(OF_AMIGAOS_M68K)
register struct Library *a6 __asm__("a6") = ObjFWBase;
(void)a6;
- return ((size_t (*)(const OFChar32 *__asm__("a0")))(((uintptr_t)ObjFWBase) - 420))(string);
+ return ((size_t (*)(const OFChar32 *__asm__("a0")))(((uintptr_t)ObjFWBase) - 426))(string);
#elif defined(OF_MORPHOS)
__asm__ __volatile__ (
"mr %%r12, %0"
:: "r"(ObjFWBase) : "r12"
);
- return __extension__ ((size_t (*)(const OFChar32 *))*(void **)(((uintptr_t)ObjFWBase) - 418))(string);
+ return __extension__ ((size_t (*)(const OFChar32 *))*(void **)(((uintptr_t)ObjFWBase) - 424))(string);
#endif
}
OFString *_Nonnull
OFZIPArchiveEntryVersionToString(uint16_t version)
{
#if defined(OF_AMIGAOS_M68K)
register struct Library *a6 __asm__("a6") = ObjFWBase;
(void)a6;
- return ((OFString *_Nonnull (*)(uint16_t __asm__("d0")))(((uintptr_t)ObjFWBase) - 426))(version);
+ return ((OFString *_Nonnull (*)(uint16_t __asm__("d0")))(((uintptr_t)ObjFWBase) - 432))(version);
#elif defined(OF_MORPHOS)
__asm__ __volatile__ (
"mr %%r12, %0"
:: "r"(ObjFWBase) : "r12"
);
- return __extension__ ((OFString *_Nonnull (*)(uint16_t))*(void **)(((uintptr_t)ObjFWBase) - 424))(version);
+ return __extension__ ((OFString *_Nonnull (*)(uint16_t))*(void **)(((uintptr_t)ObjFWBase) - 430))(version);
#endif
}
OFString *_Nonnull
OFZIPArchiveEntryCompressionMethodName(OFZIPArchiveEntryCompressionMethod compressionMethod)
{
#if defined(OF_AMIGAOS_M68K)
register struct Library *a6 __asm__("a6") = ObjFWBase;
(void)a6;
- return ((OFString *_Nonnull (*)(OFZIPArchiveEntryCompressionMethod __asm__("d0")))(((uintptr_t)ObjFWBase) - 432))(compressionMethod);
+ return ((OFString *_Nonnull (*)(OFZIPArchiveEntryCompressionMethod __asm__("d0")))(((uintptr_t)ObjFWBase) - 438))(compressionMethod);
#elif defined(OF_MORPHOS)
__asm__ __volatile__ (
"mr %%r12, %0"
:: "r"(ObjFWBase) : "r12"
);
- return __extension__ ((OFString *_Nonnull (*)(OFZIPArchiveEntryCompressionMethod))*(void **)(((uintptr_t)ObjFWBase) - 430))(compressionMethod);
+ return __extension__ ((OFString *_Nonnull (*)(OFZIPArchiveEntryCompressionMethod))*(void **)(((uintptr_t)ObjFWBase) - 436))(compressionMethod);
#endif
}
size_t
OFZIPArchiveEntryExtraFieldFind(OFData *extraField, OFZIPArchiveEntryExtraFieldTag tag, uint16_t *size)
{
#if defined(OF_AMIGAOS_M68K)
register struct Library *a6 __asm__("a6") = ObjFWBase;
(void)a6;
- return ((size_t (*)(OFData *__asm__("a0"), OFZIPArchiveEntryExtraFieldTag __asm__("d0"), uint16_t *__asm__("a1")))(((uintptr_t)ObjFWBase) - 438))(extraField, tag, size);
+ return ((size_t (*)(OFData *__asm__("a0"), OFZIPArchiveEntryExtraFieldTag __asm__("d0"), uint16_t *__asm__("a1")))(((uintptr_t)ObjFWBase) - 444))(extraField, tag, size);
#elif defined(OF_MORPHOS)
__asm__ __volatile__ (
"mr %%r12, %0"
:: "r"(ObjFWBase) : "r12"
);
- return __extension__ ((size_t (*)(OFData *, OFZIPArchiveEntryExtraFieldTag, uint16_t *))*(void **)(((uintptr_t)ObjFWBase) - 436))(extraField, tag, size);
+ return __extension__ ((size_t (*)(OFData *, OFZIPArchiveEntryExtraFieldTag, uint16_t *))*(void **)(((uintptr_t)ObjFWBase) - 442))(extraField, tag, size);
#endif
}