home *** CD-ROM | disk | FTP | other *** search
- #import "RelocManager.h"
-
- typedef struct _Region {
- Reloc reloc;
- vm_prot_t protection;
- unsigned char *pages;
- int pagesInvalid;
- } Region;
-
- typedef void (TaskGoneCallBack());
-
- #define PAGEINVALID (0x01 << 6)
-
- @interface RegionManager : RelocManager
- {
- vm_task_t task;
- vm_size_t pageSize;
- TaskGoneCallBack *taskGoneCallBack;
- unsigned char *pages;
- BOOL dontCombineRegions;
- int regionsInvalid;
- }
-
- +newTask: (vm_task_t)theTask;
- +newTask: (vm_task_t)theTask readInRegions: (BOOL)readRegions;
- -(int)putDataAt: (void *)start for: (int)numBytes from: (const void *)data;
- -(int)putDataAt: (void *)start for: (int)numBytes from: (const void *)data markOnly: (BOOL)markOnly;
- -(int)writeDataAt: (const void *)start for: (int)numBytes;
- -(int)writeDataAt: (const void *)start for: (int)numBytes reloc: (Region *)reloc;
- -(int)writeDataAt: (const void *)start for: (int)numBytes reloc: (Region *)region markOnly: (BOOL)markOnly;
- -(void)getStartPage: (void **)startPage andSize: (int *)sizePage
- forPointer: (void *)pointer andSize: (int)size;
- -(void)setTaskGoneCallBack: (TaskGoneCallBack *)theCallBack;
- -(BOOL)isTask;
- -(void)combineRegions: (BOOL)combineRegions;
- -(void)flushMarkedPages;
-
- -(struct mach_header*)copyLoadedImage:(struct mach_header*)header_addr
- withSlide:(unsigned)slide;
-
- @end
-