24
25
26
27
28
29
30
31
32
33
34
35
36
37
|
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
|
+
|
#include <proto/exec.h>
struct ObjFWRTBase;
#import "inline.h"
#include <errno.h>
#include <stdio.h>
#include <stdlib.h>
#if defined(OF_AMIGAOS_M68K)
# include <stabs.h>
# define SYM(name) __asm__("_" name)
#elif defined(OF_MORPHOS)
|
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
|
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
|
+
+
+
+
+
+
+
+
+
+
|
#else
extern void _Unwind_Resume(void *);
#endif
#ifdef OF_AMIGAOS_M68K
extern void __register_frame_info(const void *, void *);
extern void *__deregister_frame_info(const void *);
#endif
#ifdef OF_MORPHOS
extern void __register_frame(void *);
extern void __deregister_frame(void *);
#endif
struct Library *ObjFWRTBase;
void *__objc_class_name_Protocol;
static int *
get_errno(void)
{
return &errno;
}
static void __attribute__((__used__))
ctor(void)
{
static bool initialized = false;
struct objc_libc libc = {
.malloc = malloc,
|
98
99
100
101
102
103
104
105
106
107
108
109
110
111
|
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
|
+
+
+
+
+
|
#else
._Unwind_Resume = _Unwind_Resume,
#endif
#ifdef OF_AMIGAOS_M68K
.__register_frame_info = __register_frame_info,
.__deregister_frame_info = __deregister_frame_info,
#endif
#ifdef OF_MORPHOS
.__register_frame = __register_frame,
.__deregister_frame = __deregister_frame,
#endif
.get_errno = get_errno,
};
if (initialized)
return;
if ((ObjFWRTBase = OpenLibrary(OBJFWRT_AMIGA_LIB,
OBJFWRT_LIB_MINOR)) == NULL) {
|
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
|
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
|
-
-
-
-
-
-
|
bool
object_isTaggedPointer(id object)
{
return glue_object_isTaggedPointer(object);
}
Class
object_getTaggedPointerClass(id object)
{
return glue_object_getTaggedPointerClass(object);
}
uintptr_t
object_getTaggedPointerValue(id object)
{
return glue_object_getTaggedPointerValue(object);
}
id
objc_createTaggedPointer(int class, uintptr_t value)
{
return glue_objc_createTaggedPointer(class, value);
}
|