Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
R
riscv-gcc-1
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
lvzhengyang
riscv-gcc-1
Commits
94b8bab1
Commit
94b8bab1
authored
Dec 31, 1991
by
Dennis Glatting
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Deleted index variable stuff. Index variables are a hack to the language.
Cleaned up some documentation. From-SVN: r149
parent
77c9c6c2
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
65 additions
and
77 deletions
+65
-77
gcc/objc/objc.h
+65
-77
No files found.
gcc/objc/objc.h
View file @
94b8bab1
...
@@ -19,10 +19,13 @@
...
@@ -19,10 +19,13 @@
* along with this program; if not, write to the Free Software
* along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*
*
$Header: /usr/user/dennis_glatting/ObjC/c-runtime/include/RCS/ObjC.h,v 0.
8 1991/12/01 01:29:29
dennisg Exp dennisg $
$Header: /usr/user/dennis_glatting/ObjC/c-runtime/include/RCS/ObjC.h,v 0.
9 1991/12/10 12:04:22
dennisg Exp dennisg $
$Author: dennisg $
$Author: dennisg $
$Date: 1991/12/
01 01:29:29
$
$Date: 1991/12/
10 12:04:22
$
$Log: ObjC.h,v $
$Log: ObjC.h,v $
* Revision 0.9 1991/12/10 12:04:22 dennisg
* Cleaned up file format for a distribution.
*
* Revision 0.8 1991/12/01 01:29:29 dennisg
* Revision 0.8 1991/12/01 01:29:29 dennisg
* modified to remove changes previously made to
* modified to remove changes previously made to
* implement posing. posing just got easy.
* implement posing. posing just got easy.
...
@@ -134,10 +137,9 @@ typedef id ( *IMP )( id, SEL, ... );
...
@@ -134,10 +137,9 @@ typedef id ( *IMP )( id, SEL, ... );
#define _C_STRUCT_B '{'
#define _C_STRUCT_B '{'
#define _C_STRUCT_E '}'
#define _C_STRUCT_E '}'
/*
/*
* These definitions are masks used with
* These definitions are masks used with the "info" member variable in the
* the "info" member variable in the class and
* class and meta class structures.
* meta class structures.
*/
*/
#define CLS_CLASS 0x1L
/* The structure is of type
#define CLS_CLASS 0x1L
/* The structure is of type
class (Class_t). */
class (Class_t). */
...
@@ -156,13 +158,13 @@ typedef id ( *IMP )( id, SEL, ... );
...
@@ -156,13 +158,13 @@ typedef id ( *IMP )( id, SEL, ... );
extern
BOOL
objc_trace
;
extern
BOOL
objc_trace
;
/*
/*
* Whereas a Module (defined further down) is the
* Whereas a Module (defined further down) is the
root (typically) of a file,
*
root (typically) of a file, a Symtab is the root of the
*
a Symtab is the root of the class and category definitions within the
*
class and category definitions within the
module.
* module.
*
*
* A Symtab contains a variable length array of pointers
* A Symtab contains a variable length array of pointers
to classes and
*
to classes and
categories defined in the module.
* categories defined in the module.
*/
*/
typedef
struct
objc_symtab
{
typedef
struct
objc_symtab
{
u_long
sel_ref_cnt
;
/* Unknown. */
u_long
sel_ref_cnt
;
/* Unknown. */
...
@@ -179,16 +181,14 @@ typedef struct objc_symtab {
...
@@ -179,16 +181,14 @@ typedef struct objc_symtab {
}
Symtab
,
*
Symtab_t
;
}
Symtab
,
*
Symtab_t
;
/*
/*
* The compiler generates one of these structures for each
* The compiler generates one of these structures for each
module that
*
module that
composes the executable (eg main.m).
* composes the executable (eg main.m).
*
*
* This data structure is the root of the definition tree
* This data structure is the root of the definition tree for the module.
* for the module.
*
*
* A collect program runs between ld stages and creates
* A collect program runs between ld stages and creates a ObjC ctor array.
* a ObjC ctor array. That array holds a pointer to each
* That array holds a pointer to each module structure of the executable.
* module structure of the executable.
*/
*/
typedef
struct
objc_module
{
typedef
struct
objc_module
{
u_long
version
;
/* Compiler revision. */
u_long
version
;
/* Compiler revision. */
...
@@ -204,10 +204,9 @@ typedef struct objc_module {
...
@@ -204,10 +204,9 @@ typedef struct objc_module {
}
Module
,
*
Module_t
;
}
Module
,
*
Module_t
;
/*
/*
* The compiler generates one of these structures for a
* The compiler generates one of these structures for a class that has
* class that has instance variables defined in its
* instance variables defined in its specification.
* specification.
*/
*/
typedef
struct
objc_ivar
*
Ivar_t
;
typedef
struct
objc_ivar
*
Ivar_t
;
typedef
struct
objc_ivar_list
{
typedef
struct
objc_ivar_list
{
...
@@ -232,13 +231,13 @@ typedef struct objc_ivar_list {
...
@@ -232,13 +231,13 @@ typedef struct objc_ivar_list {
}
IvarList
,
*
IvarList_t
;
}
IvarList
,
*
IvarList_t
;
/*
/*
* The compiler generates one (or more) of these structures
* The compiler generates one (or more) of these structures
for a class that
*
for a class that
has methods defined in its specification.
* has methods defined in its specification.
*
*
* The implementation of a class can be broken into separate
* The implementation of a class can be broken into separate
pieces in a file
*
pieces in a file and categories can break them across modules.
*
and categories can break them across modules. To handle this problem is a
*
To handle this problem is a singly linked list of methods.
*
singly linked list of methods.
*/
*/
typedef
struct
objc_method
Method
;
typedef
struct
objc_method
Method
;
typedef
Method
*
Method_t
;
typedef
Method
*
Method_t
;
...
@@ -266,20 +265,16 @@ typedef struct objc_method_list {
...
@@ -266,20 +265,16 @@ typedef struct objc_method_list {
/*
/*
* The compiler generates one of these structures for
* The compiler generates one of these structures for each class.
* each class.
*
* This structure is the definition for meta classes. By definition a meta
* class is the class's class. Its most relevant contribution is that its
* method list contain the class's factory methods.
*
*
* This structure is the definition for meta classes.
* This structure is generated by the compiler in the executable and used by
* By definition a meta class is the class's class. Its
* the run-time during normal messaging operations. Therefore some members
* most relevant contribution is that its method list
* change type. The compiler generates "char* const" and places a string in
* contain the class's factory methods.
* the following member variables: isa and super_class.
*
* This structure is generated by the compiler in the
* executable and used by the run-time during normal
* messaging operations. Therefore some members
* change type.
* The compiler generates "char* const" and places a string
* in the following member variables: isa and super_class.
*/
*/
typedef
struct
objc_metaClass
{
typedef
struct
objc_metaClass
{
struct
objc_metaClass
*
isa
;
/* Pointer to Object meta
struct
objc_metaClass
*
isa
;
/* Pointer to Object meta
...
@@ -306,17 +301,14 @@ typedef struct objc_metaClass {
...
@@ -306,17 +301,14 @@ typedef struct objc_metaClass {
/*
/*
* The compiler generates one of these structures for
* The compiler generates one of these structures for each class.
* each class.
*
*
* This structure is the definition for classes.
* This structure is the definition for classes.
*
*
* This structure is generated by the compiler in the
* This structure is generated by the compiler in the executable and used by
* executable and used by the run-time during normal
* the run-time during normal messaging operations. Therefore some members
* messaging operations. Therefore some members
* change type. The compiler generates "char* const" and places a string in
* change type.
* the following member variables: super_class.
* The compiler generates "char* const" and places a string
* in the following member variables: super_class.
*/
*/
typedef
struct
objc_class
{
typedef
struct
objc_class
{
MetaClass_t
isa
;
/* Pointer to the class's
MetaClass_t
isa
;
/* Pointer to the class's
...
@@ -351,10 +343,8 @@ typedef struct objc_class {
...
@@ -351,10 +343,8 @@ typedef struct objc_class {
/*
/*
* The compiler generates one of these structures
* The compiler generates one of these structures for each category. A class
* for each category. A class may have many
* may have many categories and contain both instance and factory methods.
* categories and contain both instance and
* factory methods.
*/
*/
typedef
struct
objc_category
{
typedef
struct
objc_category
{
const
char
*
category_name
;
/* Name of the category. Name
const
char
*
category_name
;
/* Name of the category. Name
...
@@ -373,10 +363,10 @@ typedef struct objc_category {
...
@@ -373,10 +363,10 @@ typedef struct objc_category {
}
Category
,
*
Category_t
;
}
Category
,
*
Category_t
;
/*
/*
* Structure used when a message is send to a class's
* Structure used when a message is send to a class's
super class. The
*
super class. The compiler generates one of these
*
compiler generates one of these structures and passes it to
*
structures and passes it to
objc_msgSuper().
* objc_msgSuper().
*/
*/
typedef
struct
objc_super
{
typedef
struct
objc_super
{
id
receiver
;
/* Id of the object sending
id
receiver
;
/* Id of the object sending
...
@@ -385,33 +375,31 @@ typedef struct objc_super {
...
@@ -385,33 +375,31 @@ typedef struct objc_super {
}
Super
,
*
Super_t
;
}
Super
,
*
Super_t
;
/*
/*
* _alloc points to the function, called through
* _alloc points to the function, called through class_createInstance(), used
* class_createInstance(), used to allocate memory for
* to allocate memory for new instances.
* new instances.
*/
*/
extern
id
(
*
_alloc
)(
Class_t
aClass
,
u_int
indexedIvarBytes
);
extern
id
(
*
_alloc
)(
Class_t
aClass
);
/*
/*
* _dealloc points to the function, called
* _dealloc points to the function, called
through object_dispose(), used to
*
through object_dispose(), used to free instances.
*
free instances.
*/
*/
extern
id
(
*
_dealloc
)(
id
aObject
);
extern
id
(
*
_dealloc
)(
id
aObject
);
/*
/*
* _realloc points to the function, called through
* _realloc points to the function, called through
object_realloc(), used to
*
object_realloc(), used to reallocate memory for an object
*
reallocate memory for an object
*/
*/
extern
id
(
*
_realloc
)(
id
aObject
,
u_int
n
umBytes
);
extern
id
(
*
_realloc
)(
id
aObject
,
u_int
n
ewSize
);
/*
/*
* _copy points to the function, called through
* _copy points to the function, called through
object_copy(), used to create
*
object_copy(), used to create an exact copy of an object.
*
an exact copy of an object.
*/
*/
extern
id
(
*
_copy
)(
id
aObject
,
u_int
indexedIvarBytes
);
extern
id
(
*
_copy
)(
id
aObject
);
/*
/*
* _error points to the function that the run-time
* _error points to the function that the run-time system calls in response
* system calls in response to an error. By default,
* to an error. By default, it prints formatted error messages to the
* it prints formatted error messages to the standard
* standard error stream and calls abort() to produce a core file.
* error stream and calls abort() to produce a core file.
*/
*/
extern
void
(
*
_error
)(
id
aObject
,
const
char
*
fmt
,
va_list
ap
);
extern
void
(
*
_error
)(
id
aObject
,
const
char
*
fmt
,
va_list
ap
);
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment