@ -55,6 +55,12 @@ class ResourceLimit;
struct MemoryRegionInfo ;
struct CodeSet final : public Object {
struct Segment {
size_t offset = 0 ;
VAddr addr = 0 ;
u32 size = 0 ;
} ;
static SharedPtr < CodeSet > Create ( std : : string name , u64 program_id ) ;
std : : string GetTypeName ( ) const override {
@ -69,22 +75,40 @@ struct CodeSet final : public Object {
return HANDLE_TYPE ;
}
Segment & CodeSegment ( ) {
return segments [ 0 ] ;
}
const Segment & CodeSegment ( ) const {
return segments [ 0 ] ;
}
Segment & RODataSegment ( ) {
return segments [ 1 ] ;
}
const Segment & RODataSegment ( ) const {
return segments [ 1 ] ;
}
Segment & DataSegment ( ) {
return segments [ 2 ] ;
}
const Segment & DataSegment ( ) const {
return segments [ 2 ] ;
}
std : : shared_ptr < std : : vector < u8 > > memory ;
Segment segments [ 3 ] ;
VAddr entrypoint ;
/// Name of the process
std : : string name ;
/// Title ID corresponding to the process
u64 program_id ;
std : : shared_ptr < std : : vector < u8 > > memory ;
struct Segment {
size_t offset = 0 ;
VAddr addr = 0 ;
u32 size = 0 ;
} ;
Segment code , rodata , data ;
VAddr entrypoint ;
private :
CodeSet ( ) ;
~ CodeSet ( ) override ;