Annotation of GNUtools/cctools/include/mach-o/dyld.h, revision 1.1.1.1

1.1       root        1: #import "mach-o/loader.h"
                      2: #import <streams/streams.h>
                      3: 
                      4: #ifndef ENUM_BOOL
                      5: #define ENUM_BOOL
                      6: #undef FALSE
                      7: #undef TRUE
                      8: enum bool {
                      9:     FALSE,
                     10:     TRUE
                     11: };
                     12: #endif /* ENUM_BOOL */
                     13: 
                     14: /*
                     15:  * The high level NS... API.
                     16:  */
                     17: 
                     18: /* Object file image api */
                     19: typedef enum {
                     20:     NSObjectFileImageFailure, /* for this a message is printed on stderr */
                     21:     NSObjectFileImageSuccess,
                     22:     NSObjectFileImageInappropriateFile,
                     23:     NSObjectFileImageArch,
                     24:     NSObjectFileImageFormat, /* for this a message is printed on stderr */
                     25:     NSObjectFileImageAccess,
                     26: } NSObjectFileImageReturnCode;
                     27: 
                     28: typedef void * NSObjectFileImage;
                     29: 
                     30: /* limited implementation, only MH_BUNDLE files can be used */
                     31: extern NSObjectFileImageReturnCode NSCreateObjectFileImageFromFile(
                     32:     const char *pathName,
                     33:     NSObjectFileImage *objectFileImage);
                     34: /* not yet implemented */
                     35: extern NSObjectFileImageReturnCode NSCreateObjectFileImageFromMemory(
                     36:     void *address,
                     37:     unsigned long size, 
                     38:     NSObjectFileImage *objectFileImage);
                     39: /* not yet implemented */
                     40: extern enum bool NSDestroyObjectFileImage(
                     41:     NSObjectFileImage objectFileImage);
                     42: /*
                     43:  * Need api on NSObjectFileImage's for:
                     44:  *   "for Each Symbol Definition In Object File Image" (for Dynamic Bundles)
                     45:  *   Could have the same thing for references
                     46:  */
                     47: /* not yet implemented */
                     48: extern unsigned long NSSymbolDefinitionCountInObjectFileImage(
                     49:     NSObjectFileImage objectFileImage);
                     50: /* not yet implemented */
                     51: extern const char * NSSymbolDefinitionNameInObjectFileImage(
                     52:     NSObjectFileImage objectFileImage,
                     53:     unsigned long ordinal);
                     54: /* not yet implemented */
                     55: extern unsigned long NSSymbolReferenceCountInObjectFileImage(
                     56:     NSObjectFileImage objectFileImage);
                     57: /* not yet implemented */
                     58: extern const char * NSSymbolReferenceNameInObjectFileImage(
                     59:     NSObjectFileImage objectFileImage,
                     60:     unsigned long ordinal,
                     61:     enum bool *tentative_definition); /* can be NULL */
                     62: /*
                     63:  * Other needed api on NSObjectFileImage:
                     64:  *   "does Object File Image define symbol name X" (using sorted symbol table)
                     65:  *   a way to get the named objective-C section
                     66:  */
                     67: /* not yet implemented */
                     68: extern enum bool NSIsSymbolDefinedInObjectFileImage(
                     69:     NSObjectFileImage objectFileImage,
                     70:     const char *symbolName);
                     71: /* not yet implemented */
                     72: extern void * NSGetSectionDataInObjectFileImage(
                     73:     NSObjectFileImage objectFileImage,
                     74:     const char *segmentName,
                     75:     const char *sectionName);
                     76: 
                     77: /* module api */
                     78: typedef void * NSModule;
                     79: /* not yet implemented */
                     80: extern const char * NSNameOfModule(
                     81:     NSModule m); 
                     82: /* not yet implemented */
                     83: extern const char * NSLibraryNameForModule(
                     84:     NSModule m);
                     85: 
                     86: /* limited implementation, only MH_BUNDLE files can be linked */
                     87: extern NSModule NSLinkModule(
                     88:     NSObjectFileImage objectFileImage, 
                     89:     const char *moduleName, /* can be NULL */
                     90:     enum bool bindNow);
                     91: /* not yet implemented */
                     92: extern enum bool NSUnLinkModule(
                     93:     NSModule module, 
                     94:     enum bool keepMemoryMapped); 
                     95: /* not yet implemented */
                     96: extern NSModule NSReplaceModule(
                     97:     NSModule moduleToReplace,
                     98:     NSObjectFileImage newObjectFileImage, 
                     99:     enum bool keepMemoryMapped,
                    100:     enum bool preserveFunctionAddresses); 
                    101: 
                    102: /* symbol api */
                    103: typedef void * NSSymbol;
                    104: /* not yet implemented */
                    105: extern enum bool NSIsSymbolNameDefined(
                    106:     const char *symbolName);
                    107: /* not yet implemented */
                    108: extern NSSymbol NSLookupAndBindSymbol(
                    109:     const char *symbolName);
                    110: /* not yet implemented */
                    111: extern const char * NSNameOfSymbol(
                    112:     NSSymbol symbol);
                    113: /* not yet implemented */
                    114: extern void * NSAddressOfSymbol(
                    115:     NSSymbol symbol);
                    116: /* not yet implemented */
                    117: extern NSModule NSModuleForSymbol(
                    118:     NSSymbol symbol);
                    119: 
                    120: /* error handling api */
                    121: typedef enum {
                    122:     NSLinkEditFileAccessError,
                    123:     NSLinkEditFileFormatError,
                    124:     NSLinkEditMachResourceError,
                    125:     NSLinkEditUnixResourceError,
                    126:     NSLinkEditOtherError,
                    127:     NSLinkEditWarningError
                    128: } NSLinkEditErrors;
                    129: 
                    130: typedef struct {
                    131:      void     (*undefined)(const char *symbolName);
                    132:      NSModule (*multiple)(NSSymbol s, NSModule old, NSModule new); 
                    133:      void     (*linkEdit)(NSLinkEditErrors c, int errorNumber,
                    134:                           const char *fileName, const char *errorString);
                    135: } NSLinkEditErrorHandlers;
                    136: 
                    137: extern void NSInstallLinkEditErrorHandlers(
                    138:     NSLinkEditErrorHandlers *handlers);
                    139: 
                    140: /* other api */
                    141: /* not yet implemented */
                    142: extern enum bool NSAddLibrary(
                    143:     const char *pathName);
                    144: /* not yet implemented */
                    145: extern long NSVersionOfLibrary(
                    146:     const char *libName);
                    147: 
                    148: /*
                    149:  * The low level _dyld_... API.
                    150:  * (used by the objective-C runtime primarily)
                    151:  */
                    152: extern unsigned long _dyld_present(
                    153:     void);
                    154: 
                    155: extern unsigned long _dyld_image_count(
                    156:     void);
                    157: extern struct mach_header * _dyld_get_image_header(
                    158:     unsigned long image_index);
                    159: extern unsigned long _dyld_get_image_vmaddr_slide(
                    160:     unsigned long image_index);
                    161: 
                    162: extern void _dyld_register_func_for_add_image(
                    163:     void (*func)(struct mach_header *mh, unsigned long vmaddr_slide));
                    164: extern void _dyld_register_func_for_link_module(
                    165:     void (*func)(NSModule module));
                    166: /* not yet implemented */
                    167: extern void _dyld_register_func_for_unlink_module(
                    168:     void (*func)(NSModule module));
                    169: /* not yet implemented */
                    170: extern void _dyld_register_func_for_replace_module(
                    171:     void (*func)(NSModule oldmodule, NSModule newmodule));
                    172: extern void _dyld_get_objc_module_sect_for_module(
                    173:     NSModule module,
                    174:     void **objc_module,
                    175:     unsigned long *size);
                    176: extern void _dyld_bind_objc_module(
                    177:     void *objc_module);
                    178: 
                    179: extern void _dyld_lookup_and_bind(
                    180:     const char *symbol_name,
                    181:     unsigned long *address,
                    182:     void **module);
                    183: 
                    184: extern int _dyld_func_lookup(
                    185:     const char *dyld_func_name,
                    186:     unsigned long *address);

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.