Peter d153fe0f21 Add 'submodules/LegacyComponents/' from commit 'd5594346161c1b7f203d1e87068bbe77bcaac019'
git-subtree-dir: submodules/LegacyComponents
git-subtree-mainline: 608630530451e02e5aec48389d144dbf7a3625b9
git-subtree-split: d5594346161c1b7f203d1e87068bbe77bcaac019
2019-06-11 18:51:15 +01:00

55 lines
1.8 KiB
Objective-C

#ifndef Freedom_h
#define Freedom_h
#import <Foundation/Foundation.h>
#import <stdint.h>
#ifdef __cplusplus
extern "C" {
#endif
typedef struct {
const char *string;
uint32_t key;
} FreedomIdentifier;
char *copyFreedomIdentifierValue(FreedomIdentifier identifier);
extern FreedomIdentifier FreedomIdentifierEmpty;
typedef struct {
uint32_t name;
IMP imp;
FreedomIdentifier newIdentifier;
FreedomIdentifier newEncoding;
} FreedomDecoration;
typedef struct {
ptrdiff_t offset;
int bit;
} FreedomBitfield;
void freedomInit();
bool freedomInitialized();
Class freedomClass(uint32_t name);
Class freedomMakeClass(Class superclass, Class subclass);
ptrdiff_t freedomIvarOffset(Class targetClass, uint32_t name);
FreedomBitfield freedomIvarBitOffset(Class targetClass, uint32_t fieldName, uint32_t bitfieldName);
FreedomBitfield freedomIvarBitOffset2(Class targetClass, uint32_t fieldName, uint32_t bitfieldName);
void freedomSetBitfield(void *object, FreedomBitfield bitfield, int value);
int freedomGetBitfield(void *object, FreedomBitfield bitfield);
void freedomDumpBitfields(Class targetClass, void *object, uint32_t fieldName);
IMP freedomNativeImpl(Class targetClass, SEL selector);
void freedomClassAutoDecorate(uint32_t name, FreedomDecoration *classDecorations, int numClassDecorations, FreedomDecoration *instanceDecorations, int numInstanceDecorations);
void freedomClassAutoDecorateExplicit(Class c, uint32_t name, FreedomDecoration *classDecorations, int numClassDecorations, FreedomDecoration *instanceDecorations, int numInstanceDecorations);
IMP freedomImpl(id target, uint32_t name, SEL *selector);
IMP freedomImplInstancesOfClass(Class targetClass, uint32_t name, SEL *selector);
#ifdef __cplusplus
}
#endif
#endif