Comment: | Clean up the AmigaOS 4 library mess |
---|---|
Downloads: | Tarball | ZIP archive | SQL archive |
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA3-256: |
3292a6fdbc15d3896ca6e1372549535c |
User & Date: | js on 2019-08-10 02:06:53 |
Other Links: | manifest | tags |
2019-08-11
| ||
16:27 | amiga-library.m: Remove no longer needed __init_eh check-in: 07e774560c user: js tags: trunk | |
2019-08-10
| ||
02:06 | Clean up the AmigaOS 4 library mess check-in: 3292a6fdbc user: js tags: trunk | |
2019-08-09
| ||
23:44 | Support sockets on AmigaOS 3 check-in: 3dec8ecf2e user: js tags: trunk | |
Modified configure.ac from [bc7d4d902c] to [d00a67406d].
︙ | ︙ | |||
42 43 44 45 46 47 48 | enable_files="no" ac_cv_snprintf_useful_ret="yes" ;; m68k-*-amigaos*) AS_IF([test x"$OBJCFLAGS" = x""], [ OBJCFLAGS="-O0" ]) | | > > > > > > > | 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 | enable_files="no" ac_cv_snprintf_useful_ret="yes" ;; m68k-*-amigaos*) AS_IF([test x"$OBJCFLAGS" = x""], [ OBJCFLAGS="-O0" ]) OBJCFLAGS="$OBJCFLAGS -noixemul" OBJFW_OBJCFLAGS="$OBJFW_OBJCFLAGS -noixemul" CPPFLAGS="$CPPFLAGS -D__NO_NET_API" LDFLAGS="$LDFLAGS -noixemul" enable_shared="no" enable_threads="no" enable_files="yes" # Required for reading ENV: supports_amiga_lib="yes" ac_cv_snprintf_useful_ret="yes" AS_IF([test x"$enable_amiga_lib" != x"no"], [ AC_SUBST(OBJFWRT_AMIGA_LIB, objfwrt68k.library) AC_SUBST(SFDC_TARGET, m68k-amigaos) AC_SUBST(SFD_FILE, amigaos3.sfd) AC_SUBST(SFDC_INLINE_H, inline.h) dnl For 68000, GCC emits calls to helper functions that dnl do not work properly in a library. AC_SUBST(AMIGA_LIB_CFLAGS, "-mcpu=68020 -fbaserel -ffreestanding") AC_SUBST(AMIGA_LIB_LDFLAGS, "-mcpu=68020 -fbaserel -resident -nostartfiles") ]) AC_SUBST(LIBBASES_M, libbases.m) ;; powerpc-*-amigaos*) CPPFLAGS="$CPPFLAGS -D__USE_INLINE__" enable_shared="no" enable_threads="no" enable_files="yes" # Required for reading ENV: AC_SUBST(LIBBASES_M, libbases.m) ;; *-morphos*) AS_IF([test x"$with_ixemul" != x"yes"], [ AS_IF([test x"$OBJCFLAGS" = x""], [ OBJCFLAGS="-O2 -g" ]) OBJCFLAGS="$OBJCFLAGS -noixemul" |
︙ | ︙ | |||
91 92 93 94 95 96 97 98 99 100 101 102 103 104 | AC_SUBST(CVINCLUDE_INLINE_H, inline.h) t="-mresident32 -ffreestanding" AC_SUBST(AMIGA_LIB_CFLAGS, $t) t="-mresident32 -nostartfiles -nodefaultlibs" t="$t -lc" AC_SUBST(AMIGA_LIB_LDFLAGS, $t) ]) ]) enable_shared="no" enable_threads="no" ;; *-msdosdjgpp*) enable_shared="no" | > > | 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 | AC_SUBST(CVINCLUDE_INLINE_H, inline.h) t="-mresident32 -ffreestanding" AC_SUBST(AMIGA_LIB_CFLAGS, $t) t="-mresident32 -nostartfiles -nodefaultlibs" t="$t -lc" AC_SUBST(AMIGA_LIB_LDFLAGS, $t) ]) AC_SUBST(LIBBASES_M, libbases.m) ]) enable_shared="no" enable_threads="no" ;; *-msdosdjgpp*) enable_shared="no" |
︙ | ︙ |
Modified extra.mk.in from [29e7c06e6b] to [4b6a84413a].
︙ | ︙ | |||
38 39 40 41 42 43 44 45 46 47 48 49 50 51 | FORWARDING_LIB_A = @FORWARDING_LIB_A@ FOUNDATION_COMPAT_M = @FOUNDATION_COMPAT_M@ INSTANCE_M = @INSTANCE_M@ INVOCATION_A = @INVOCATION_A@ INVOCATION_INVOCATION_A = @INVOCATION_INVOCATION_A@ INVOCATION_INVOCATION_LIB_A = @INVOCATION_INVOCATION_LIB_A@ INVOCATION_LIB_A = @INVOCATION_LIB_A@ LIBOBJFWRT_DEP = @LIBOBJFWRT_DEP@ LIBOBJFWRT_DEP_LVL2 = @LIBOBJFWRT_DEP_LVL2@ LIBOBJFW_DEP = @LIBOBJFW_DEP@ LIBOBJFW_DEP_LVL2 = @LIBOBJFW_DEP_LVL2@ LINKLIB = @LINKLIB@ LOOKUP_ASM_A = @LOOKUP_ASM_A@ LOOKUP_ASM_LIB_A = @LOOKUP_ASM_LIB_A@ | > | 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 | FORWARDING_LIB_A = @FORWARDING_LIB_A@ FOUNDATION_COMPAT_M = @FOUNDATION_COMPAT_M@ INSTANCE_M = @INSTANCE_M@ INVOCATION_A = @INVOCATION_A@ INVOCATION_INVOCATION_A = @INVOCATION_INVOCATION_A@ INVOCATION_INVOCATION_LIB_A = @INVOCATION_INVOCATION_LIB_A@ INVOCATION_LIB_A = @INVOCATION_LIB_A@ LIBBASES_M = @LIBBASES_M@ LIBOBJFWRT_DEP = @LIBOBJFWRT_DEP@ LIBOBJFWRT_DEP_LVL2 = @LIBOBJFWRT_DEP_LVL2@ LIBOBJFW_DEP = @LIBOBJFW_DEP@ LIBOBJFW_DEP_LVL2 = @LIBOBJFW_DEP_LVL2@ LINKLIB = @LINKLIB@ LOOKUP_ASM_A = @LOOKUP_ASM_A@ LOOKUP_ASM_LIB_A = @LOOKUP_ASM_LIB_A@ |
︙ | ︙ |
Modified src/Makefile from [79f960eb72] to [e5eb1fdd70].
︙ | ︙ | |||
206 207 208 209 210 211 212 | OFRangeCharacterSet.m \ OFRangeValue.m \ OFRectangleValue.m \ OFSubarray.m \ OFUTF8String.m \ ${AUTORELEASE_M} \ ${FOUNDATION_COMPAT_M} \ | | > | 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 | OFRangeCharacterSet.m \ OFRangeValue.m \ OFRectangleValue.m \ OFSubarray.m \ OFUTF8String.m \ ${AUTORELEASE_M} \ ${FOUNDATION_COMPAT_M} \ ${INSTANCE_M} \ ${LIBBASES_M} SRCS_FILES += OFFileURLHandler.m \ OFINIFileSettings.m SRCS_SOCKETS += OFHTTPURLHandler.m \ OFKernelEventObserver.m \ ${OFEPOLLKERNELEVENTOBSERVER_M} \ ${OFKQUEUEKERNELEVENTOBSERVER_M} \ ${OFPOLLKERNELEVENTOBSERVER_M} \ |
︙ | ︙ |
Modified src/OFApplication.m from [b702abe021] to [575d9d7624].
︙ | ︙ | |||
52 53 54 55 56 57 58 | #if defined(OF_MACOS) # include <crt_externs.h> #elif defined(OF_WINDOWS) # include <windows.h> extern int _CRT_glob; extern void __wgetmainargs(int *, wchar_t ***, wchar_t ***, int, int *); #elif defined(OF_AMIGAOS) | < < < < < < < < < | 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 | #if defined(OF_MACOS) # include <crt_externs.h> #elif defined(OF_WINDOWS) # include <windows.h> extern int _CRT_glob; extern void __wgetmainargs(int *, wchar_t ***, wchar_t ***, int, int *); #elif defined(OF_AMIGAOS) # include <proto/exec.h> # include <proto/dos.h> #elif !defined(OF_IOS) extern char **environ; #endif #ifdef OF_PSP # include <pspkerneltypes.h> # include <psploadexec.h> #endif #ifdef OF_NINTENDO_DS # define asm __asm__ # include <nds.h> # undef asm #endif @interface OFApplication () - (instancetype)of_init OF_METHOD_FAMILY(init); - (void)of_setArgumentCount: (int *)argc andArgumentValues: (char **[])argv; #ifdef OF_WINDOWS - (void)of_setArgumentCount: (int)argc andWideArgumentValues: (wchar_t *[])argv; |
︙ | ︙ |
Modified src/OFDNSResolver.m from [2b5ef9baa7] to [e6e0fe25fb].
︙ | ︙ | |||
52 53 54 55 56 57 58 | #ifdef OF_WINDOWS # define interface struct # include <iphlpapi.h> # undef interface #endif #ifdef OF_AMIGAOS | < < < | 52 53 54 55 56 57 58 59 60 61 62 63 64 65 | #ifdef OF_WINDOWS # define interface struct # include <iphlpapi.h> # undef interface #endif #ifdef OF_AMIGAOS # include <proto/exec.h> # include <proto/bsdsocket.h> #endif #ifdef OF_NINTENDO_3DS # include <3ds.h> #endif |
︙ | ︙ |
Modified src/OFFile.m from [8652eb3c8f] to [eb447a10e1].
︙ | ︙ | |||
54 55 56 57 58 59 60 | #ifdef OF_NINTENDO_DS # include <stdbool.h> # include <filesystem.h> #endif #ifdef OF_AMIGAOS | < < < < < < < < < < < | 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 | #ifdef OF_NINTENDO_DS # include <stdbool.h> # include <filesystem.h> #endif #ifdef OF_AMIGAOS # include <proto/exec.h> # include <proto/dos.h> #endif #ifndef O_BINARY # define O_BINARY 0 #endif #ifndef O_CLOEXEC # define O_CLOEXEC 0 #endif #ifndef O_EXCL # define O_EXCL 0 #endif #ifndef O_EXLOCK # define O_EXLOCK 0 #endif #ifndef OF_AMIGAOS # define closeHandle(h) close(h) #else struct of_file_handle { of_file_handle_t previous, next; BPTR handle; bool append; } *firstHandle = NULL; static void |
︙ | ︙ | |||
112 113 114 115 116 117 118 | } OF_DESTRUCTOR() { for (of_file_handle_t iter = firstHandle; iter != NULL; iter = iter->next) Close(iter->handle); | < < < < < < < < | 101 102 103 104 105 106 107 108 109 110 111 112 113 114 | } OF_DESTRUCTOR() { for (of_file_handle_t iter = firstHandle; iter != NULL; iter = iter->next) Close(iter->handle); } #endif #ifndef OF_AMIGAOS static int parseMode(const char *mode) { |
︙ | ︙ | |||
194 195 196 197 198 199 200 | #endif #ifdef OF_NINTENDO_DS if (!nitroFSInit(NULL)) @throw [OFInitializationFailedException exceptionWithClass: self]; #endif | < < < < < < < < < < < | 175 176 177 178 179 180 181 182 183 184 185 186 187 188 | #endif #ifdef OF_NINTENDO_DS if (!nitroFSInit(NULL)) @throw [OFInitializationFailedException exceptionWithClass: self]; #endif } + (instancetype)fileWithPath: (OFString *)path mode: (OFString *)mode { return [[[self alloc] initWithPath: path mode: mode] autorelease]; |
︙ | ︙ |
Modified src/OFFileManager.m from [fd1d5c75f5] to [cce81bf147].
︙ | ︙ | |||
60 61 62 63 64 65 66 | #ifdef OF_WINDOWS # include <windows.h> # include <direct.h> # include <ntdef.h> #endif #ifdef OF_AMIGAOS | < < < < < < | 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 | #ifdef OF_WINDOWS # include <windows.h> # include <direct.h> # include <ntdef.h> #endif #ifdef OF_AMIGAOS # include <proto/exec.h> # include <proto/dos.h> #endif @interface OFDefaultFileManager: OFFileManager @end const of_file_attribute_key_t of_file_attribute_key_size = @"of_file_attribute_key_size"; |
︙ | ︙ | |||
109 110 111 112 113 114 115 | const of_file_type_t of_file_type_character_special = @"of_file_type_character_special"; const of_file_type_t of_file_type_block_special = @"of_file_type_block_special"; const of_file_type_t of_file_type_socket = @"of_file_type_socket"; #ifdef OF_AMIGAOS4 # define CurrentDir(lock) SetCurrentDir(lock) | < < < < < < < < < < < | 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 | const of_file_type_t of_file_type_character_special = @"of_file_type_character_special"; const of_file_type_t of_file_type_block_special = @"of_file_type_block_special"; const of_file_type_t of_file_type_socket = @"of_file_type_socket"; #ifdef OF_AMIGAOS4 # define CurrentDir(lock) SetCurrentDir(lock) #endif static OFFileManager *defaultManager; #ifdef OF_AMIGAOS static bool dirChanged = false; static BPTR originalDirLock = 0; OF_DESTRUCTOR() { if (dirChanged) UnLock(CurrentDir(originalDirLock)); } #endif static id attributeForKeyOrException(of_file_attributes_t attributes, of_file_attribute_key_t key) { |
︙ | ︙ | |||
155 156 157 158 159 160 161 | @implementation OFFileManager + (void)initialize { if (self != [OFFileManager class]) return; #ifdef OF_HAVE_FILES | < < < < < < < < < < < | 138 139 140 141 142 143 144 145 146 147 148 149 150 151 | @implementation OFFileManager + (void)initialize { if (self != [OFFileManager class]) return; #ifdef OF_HAVE_FILES /* * Make sure OFFile is initialized. * On some systems, this is needed to initialize the file system driver. */ [OFFile class]; #endif |
︙ | ︙ |
Modified src/OFFileURLHandler.m from [a3ec7d4d97] to [4a5233a57f].
︙ | ︙ | |||
66 67 68 69 70 71 72 | # include <windows.h> # include <direct.h> # include <ntdef.h> # include <wchar.h> #endif #ifdef OF_AMIGAOS | < < < < < | 66 67 68 69 70 71 72 73 74 75 76 77 78 79 | # include <windows.h> # include <direct.h> # include <ntdef.h> # include <wchar.h> #endif #ifdef OF_AMIGAOS # include <proto/exec.h> # include <proto/dos.h> # include <proto/locale.h> # ifdef OF_AMIGAOS4 # define DeleteFile(path) Delete(path) # endif #endif |
︙ | ︙ | |||
110 111 112 113 114 115 116 | #endif #if !defined(HAVE_READDIR_R) && defined(OF_HAVE_THREADS) && !defined(OF_WINDOWS) static OFMutex *readdirMutex; #endif #ifdef OF_WINDOWS static WINAPI BOOLEAN (*func_CreateSymbolicLinkW)(LPCWSTR, LPCWSTR, DWORD); | < < < < < < < < < < < < < < < < < < < < < < < | 105 106 107 108 109 110 111 112 113 114 115 116 117 118 | #endif #if !defined(HAVE_READDIR_R) && defined(OF_HAVE_THREADS) && !defined(OF_WINDOWS) static OFMutex *readdirMutex; #endif #ifdef OF_WINDOWS static WINAPI BOOLEAN (*func_CreateSymbolicLinkW)(LPCWSTR, LPCWSTR, DWORD); #endif #ifdef OF_WINDOWS static of_time_interval_t filetimeToTimeInterval(const FILETIME *filetime) { return (double)((int64_t)filetime->dwHighDateTime << 32 | |
︙ | ︙ | |||
514 515 516 517 518 519 520 | #ifdef OF_WINDOWS HMODULE module; #endif if (self != [OFFileURLHandler class]) return; | < < < < < < < < < < < < < < < < < < < < | 486 487 488 489 490 491 492 493 494 495 496 497 498 499 | #ifdef OF_WINDOWS HMODULE module; #endif if (self != [OFFileURLHandler class]) return; #if defined(OF_FILE_MANAGER_SUPPORTS_OWNER) && defined(OF_HAVE_THREADS) passwdMutex = [[OFMutex alloc] init]; #endif #if !defined(HAVE_READDIR_R) && !defined(OF_WINDOWS) && defined(OF_HAVE_THREADS) readdirMutex = [[OFMutex alloc] init]; #endif |
︙ | ︙ |
Modified src/OFLocale.m from [d924c68c15] to [c0f38ac196].
︙ | ︙ | |||
26 27 28 29 30 31 32 | #import "OFInitializationFailedException.h" #import "OFInvalidArgumentException.h" #import "OFInvalidEncodingException.h" #import "OFOpenItemFailedException.h" #ifdef OF_AMIGAOS | < < < < < < < < < < < < < < < < < < < < < < < < < < < < | 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 | #import "OFInitializationFailedException.h" #import "OFInvalidArgumentException.h" #import "OFInvalidEncodingException.h" #import "OFOpenItemFailedException.h" #ifdef OF_AMIGAOS # include <proto/dos.h> # include <proto/exec.h> # include <proto/locale.h> #endif static OFLocale *currentLocale = nil; #ifndef OF_AMIGAOS static void parseLocale(char *locale, of_string_encoding_t *encoding, OFString **language, OFString **territory) { if ((locale = of_strdup(locale)) == NULL) return; |
︙ | ︙ | |||
112 113 114 115 116 117 118 | } #endif @implementation OFLocale @synthesize language = _language, territory = _territory, encoding = _encoding; @synthesize decimalPoint = _decimalPoint; | < < < < < < < < < < < < < < < < < < < < < < < < < < | 84 85 86 87 88 89 90 91 92 93 94 95 96 97 | } #endif @implementation OFLocale @synthesize language = _language, territory = _territory, encoding = _encoding; @synthesize decimalPoint = _decimalPoint; + (OFLocale *)currentLocale { return currentLocale; } + (OFString *)language { |
︙ | ︙ |
Modified src/OFStdIOStream.m from [7b4906ae53] to [eb42ab9d24].
︙ | ︙ | |||
39 40 41 42 43 44 45 | #import "OFInitializationFailedException.h" #import "OFNotOpenException.h" #import "OFOutOfRangeException.h" #import "OFReadFailedException.h" #import "OFWriteFailedException.h" #ifdef OF_AMIGAOS | < < < < < < < < < < < < < < < < < < < | 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 | #import "OFInitializationFailedException.h" #import "OFNotOpenException.h" #import "OFOutOfRangeException.h" #import "OFReadFailedException.h" #import "OFWriteFailedException.h" #ifdef OF_AMIGAOS # include <proto/exec.h> # include <proto/dos.h> #endif /* References for static linking */ #ifdef OF_WINDOWS void _reference_to_OFWin32ConsoleStdIOStream(void) { [OFWin32ConsoleStdIOStream class]; } #endif OFStdIOStream *of_stdin = nil; OFStdIOStream *of_stdout = nil; OFStdIOStream *of_stderr = nil; #ifdef OF_AMIGAOS OF_DESTRUCTOR() { [of_stdin dealloc]; [of_stdout dealloc]; [of_stderr dealloc]; } #endif void of_log(OFConstantString *format, ...) { void *pool = objc_autoreleasePoolPush(); |
︙ | ︙ | |||
135 136 137 138 139 140 141 | of_stderr = [[OFStdIOStream alloc] of_initWithFileDescriptor: fd]; # else BPTR input, output, error; bool inputClosable = false, outputClosable = false, errorClosable = false; | < < < < < < < < < < < | 116 117 118 119 120 121 122 123 124 125 126 127 128 129 | of_stderr = [[OFStdIOStream alloc] of_initWithFileDescriptor: fd]; # else BPTR input, output, error; bool inputClosable = false, outputClosable = false, errorClosable = false; input = Input(); output = Output(); error = ((struct Process *)FindTask(NULL))->pr_CES; if (input == 0) { input = Open("*", MODE_OLDFILE); inputClosable = true; |
︙ | ︙ |
Modified src/OFSystemInfo.m from [f7d600acca] to [34858741f4].
︙ | ︙ | |||
29 30 31 32 33 34 35 | # include <sys/utsname.h> #endif #if defined(OF_MACOS) || defined(OF_NETBSD) # include <sys/sysctl.h> #endif #if defined(OF_AMIGAOS4) | < < < | 29 30 31 32 33 34 35 36 37 38 39 40 41 42 | # include <sys/utsname.h> #endif #if defined(OF_MACOS) || defined(OF_NETBSD) # include <sys/sysctl.h> #endif #if defined(OF_AMIGAOS4) # include <exec/exectags.h> # include <proto/exec.h> #elif defined(OF_MORPHOS) # include <exec/system.h> # include <proto/exec.h> #endif |
︙ | ︙ | |||
97 98 99 100 101 102 103 | #if defined(OF_X86_64) || defined(OF_X86) struct x86_regs { uint32_t eax, ebx, ecx, edx; }; #endif | < < < < | 94 95 96 97 98 99 100 101 102 103 104 105 106 107 | #if defined(OF_X86_64) || defined(OF_X86) struct x86_regs { uint32_t eax, ebx, ecx, edx; }; #endif static size_t pageSize = 4096; static size_t numberOfCPUs = 1; static OFString *operatingSystemName = nil; static OFString *operatingSystemVersion = nil; static void initOperatingSystemName(void) |
︙ | ︙ |
Modified src/OFThread.m from [0f6e6aa5d7] to [ec9da598dc].
︙ | ︙ | |||
29 30 31 32 33 34 35 | # include <sched.h> #endif #include "unistd_wrapper.h" #include "platform.h" #ifdef OF_AMIGAOS | < < < < < | 29 30 31 32 33 34 35 36 37 38 39 40 41 42 | # include <sched.h> #endif #include "unistd_wrapper.h" #include "platform.h" #ifdef OF_AMIGAOS # include <proto/exec.h> # include <proto/dos.h> #endif #ifdef OF_WII # define nanosleep ogc_nanosleep # include <ogcsys.h> |
︙ | ︙ | |||
87 88 89 90 91 92 93 | #ifdef OF_HAVE_ATOMIC_OPS # import "atomic.h" #endif #ifdef OF_DJGPP # define lrint(x) rint(x) | < < < < < < < < < < < < < < < | 82 83 84 85 86 87 88 89 90 91 92 93 94 95 | #ifdef OF_HAVE_ATOMIC_OPS # import "atomic.h" #endif #ifdef OF_DJGPP # define lrint(x) rint(x) #endif #if defined(OF_HAVE_THREADS) # import "tlskey.h" static of_tlskey_t threadSelfKey; static OFThread *mainThread; |
︙ | ︙ | |||
206 207 208 209 210 211 212 | return nil; if (thread->_threadDictionary == nil) thread->_threadDictionary = [[OFMutableDictionary alloc] init]; return thread->_threadDictionary; } | < < < < < < < < < < < < < < < | 186 187 188 189 190 191 192 193 194 195 196 197 198 199 | return nil; if (thread->_threadDictionary == nil) thread->_threadDictionary = [[OFMutableDictionary alloc] init]; return thread->_threadDictionary; } #endif #ifdef OF_HAVE_SOCKETS + (OFDNSResolver *)DNSResolver { # ifdef OF_HAVE_THREADS OFThread *thread = of_tlskey_get(threadSelfKey); |
︙ | ︙ |
Modified src/condition_amiga.m from [1151a26880] to [3b25e0b426].
︙ | ︙ | |||
11 12 13 14 15 16 17 | * * 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. */ | < < < < < < < < < | 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | * * 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. */ #include <proto/exec.h> #include <devices/timer.h> #ifndef OF_AMIGAOS4 # include <clib/alib_protos.h> #endif bool of_condition_new(of_condition_t *condition) { condition->waitingTasks = NULL; return true; } |
︙ | ︙ |
Added src/libbases.m version [b67e9f23c9].
> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 | /* * Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, * 2018, 2019 * Jonathan Schleifer <js@heap.zone> * * 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. */ #include "config.h" #include <proto/exec.h> #import "OFInitializationFailedException.h" #import "macros.h" #ifdef OF_AMIGAOS4 extern struct Library *DOSBase; extern struct DOSIFace *IDOS; #endif struct Library *LocaleBase; #ifdef OF_AMIGAOS4 struct LocaleIFace *ILocale; #endif OF_CONSTRUCTOR() { #ifdef OF_AMIGAOS4 if ((DOSBase = OpenLibrary("dos.library", 36)) == NULL) @throw [OFInitializationFailedException exception]; if ((IDOS = (struct DOSIFace *) GetInterface(DOSBase, "main", 1, NULL)) == NULL) @throw [OFInitializationFailedException exception]; #endif if ((LocaleBase = OpenLibrary("locale.library", 38)) == NULL) @throw [OFInitializationFailedException exception]; #ifdef OF_AMIGAOS4 if ((ILocale = (struct LocaleIFace *) GetInterface(LocaleBase, "main", 1, NULL)) == NULL) @throw [OFInitializationFailedException exception]; #endif } OF_DESTRUCTOR() { #ifdef OF_AMIGAOS4 if (ILocale != NULL) DropInterface((struct Interface *)ILocale); #endif if (LocaleBase != NULL) CloseLibrary(LocaleBase); #ifdef OF_AMIGAOS4 if (DOSBase != NULL) CloseLibrary(DOSBase); if (IDOS != NULL) DropInterface((struct Interface *)IDOS); #endif } |
Modified src/mutex_amiga.m from [7de22b2897] to [07f9094daa].
︙ | ︙ | |||
11 12 13 14 15 16 17 | * * 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. */ | < < < < < < < < < | 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | * * 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. */ #include <proto/exec.h> bool of_mutex_new(of_mutex_t *mutex) { InitSemaphore(mutex); return true; } |
︙ | ︙ |
Modified src/socket_helpers.h from [ccaba69181] to [611aa62b04].
︙ | ︙ | |||
45 46 47 48 49 50 51 | #endif #ifndef SOCK_CLOEXEC # define SOCK_CLOEXEC 0 #endif #if defined(OF_AMIGAOS) | < < < | 45 46 47 48 49 50 51 52 53 54 55 56 57 58 | #endif #ifndef SOCK_CLOEXEC # define SOCK_CLOEXEC 0 #endif #if defined(OF_AMIGAOS) # include <proto/bsdsocket.h> # include <sys/filio.h> # define closesocket(sock) CloseSocket(sock) # define ioctlsocket(fd, req, arg) IoctlSocket(fd, req, arg) # define hstrerror(err) "unknown (no hstrerror)" # define SOCKET_ERROR -1 # ifdef OF_MORPHOS |
︙ | ︙ |
Modified src/thread_amiga.m from [92fe55ab19] to [d9382c6e08].
︙ | ︙ | |||
11 12 13 14 15 16 17 | * * 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. */ | < < < < < < < < < < < < < < < < < < < < < < < < < < < < | 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 | * * 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. */ #include <dos/dostags.h> #include <proto/dos.h> #include <proto/exec.h> #import "OFData.h" #import "tlskey.h" extern void of_tlskey_thread_exited(void); static of_tlskey_t threadKey; OF_CONSTRUCTOR() { OF_ENSURE(of_tlskey_new(&threadKey)); } static void |
︙ | ︙ |
Modified src/tlskey.m from [22af5740b4] to [466f01b0ac].
︙ | ︙ | |||
16 17 18 19 20 21 22 | */ #include "config.h" #import "tlskey.h" #ifdef OF_AMIGAOS | < < < < < < < < | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 | */ #include "config.h" #import "tlskey.h" #ifdef OF_AMIGAOS # include <exec/semaphores.h> # include <proto/exec.h> # import "OFMapTable.h" # import "OFList.h" static const of_map_table_functions_t functions = { NULL }; static OFList *allKeys = nil; static struct SignalSemaphore semaphore; OF_CONSTRUCTOR() { InitSemaphore(&semaphore); |
︙ | ︙ |