1 #ifndef _OBJC_TEST_SUITE_NEXT_ENCODE_ASSIST_H_
2 #define _OBJC_TEST_SUITE_NEXT_ENCODE_ASSIST_H_
4 #ifdef __NEXT_RUNTIME__
7 #ifdef NEXT_OBJC_USE_NEW_INTERFACE
8 #include <objc/runtime.h>
10 #include <objc/objc-runtime.h>
12 /* Missing from old NeXT objc headers... */
13 #define _C_LNG_LNG 'q'
14 #define _C_ULNG_LNG 'Q'
20 /* The NeXT headers do not define NULL. */
32 #define _C_GCINVISIBLE '!'
38 #define _F_BYCOPY 0x04
40 #define _F_ONEWAY 0x10
41 #define _F_GCINVISIBLE 0x20
43 /* The NeXT runtimes do not include these functions (at least not through
44 any public API). They are required for the objc/execute/bf-* and bycopy-3. */
46 struct objc_struct_layout
48 const char *original_type
;
50 const char *prev_type
;
51 unsigned int record_size
;
52 unsigned int record_align
;
55 void objc_layout_structure_get_info (struct objc_struct_layout
*,unsigned int *,
56 unsigned int *, const char **);
57 void objc_layout_structure (const char *, struct objc_struct_layout
*);
58 BOOL
objc_layout_structure_next_member (struct objc_struct_layout
*);
59 void objc_layout_finish_structure (struct objc_struct_layout
*, unsigned int *,
62 int objc_sizeof_type (const char *);
63 int objc_alignof_type (const char *);
64 int objc_aligned_size (const char *);
65 int objc_promoted_size (const char *);
67 unsigned objc_get_type_qualifiers (const char *);
68 const char *objc_skip_type_qualifiers (const char *);
69 const char *objc_skip_typespec (const char *);
70 const char *objc_skip_offset (const char *);
71 const char *objc_skip_argspec (const char *);
73 #endif /* __NEXT_RUNTIME__ */
74 #endif /* _OBJC_TEST_SUITE_NEXT_ENCODE_ASSIST_H_ */