/*----------------------------------------------------------------------
----------------------------------------------------------------------*/
LIBGOBLIN_OBJINFO_EXTERN
+LibGoblin_ObjectInfo *
+ ObjectInfo_AllocStaticObject(
+ LibGoblin_ProgramInfo *p_pginfo,
+ Ptr ptr_address,
+ QWord qw_size )
+{
+ LibGoblin_ObjectInfo *p_objinfo;
+ LibGoblin_ObjectInfo *p_objnow;
+
+ p_objinfo = ObjectInfo_AllocObjectInfo( p_pginfo );
+ if( NULL == p_objinfo )
+ { goto goto_ObjectInfo_AllocStaticObject_post; }
+
+ if( -0x01 == p_pginfo->i_top_objinfo ) {
+ p_pginfo->i_top_objinfo = p_objinfo->i_id;
+ goto goto_ObjectInfo_AllocStaticObject_post;
+ }
+
+ p_objnow = OBJINFO( p_pginfo, p_pginfo->i_top_objinfo );
+ assert( NULL != p_objnow );
+
+ /// XXX 2018/11/27
+ do {
+
+
+ }while( -0x01 == p_objnow->i_next_id );
+
+
+goto_ObjectInfo_AllocStaticObject_post:
+ return p_objinfo;
+}
+
+
+/*----------------------------------------------------------------------
+----------------------------------------------------------------------*/
+LIBGOBLIN_OBJINFO_EXTERN
+LibGoblin_ObjectInfo *
+ ObjectInfo_AllocWorkObject(
+ LibGoblin_ProgramInfo *p_pginfo,
+ LibGoblin_ObjectInfo *p_objtop,
+ Ptr ptr_address )
+{
+ LibGoblin_ObjectInfo *p_objinfo;
+
+ p_objinfo = ObjectInfo_AllocObjectInfo( p_pginfo );
+
+ return p_objinfo;
+}
+
+
+/*----------------------------------------------------------------------
+----------------------------------------------------------------------*/
+LIBGOBLIN_OBJINFO_EXTERN
int
ObjectInfo_FreeObjectInfo(
LibGoblin_ProgramInfo *p_pginfo,
DWord dw_size; // Object Size (Address Range)
char *pstr_name; // Object Name (Param./Func./etc...)
//DWord dw_srcid; // SourceInfo struct ID
- DWord dw_next;
Byte b_elf_flags;
Word w_secid; // SectionInfo ItemIndex belong with this object.
+ int i_dynamic_id; // Child-Top ObjectInfo (use only Dynamic Mode)
+ int i_parent_id; // Parent ObjectInfo
+ int i_next_id; // Next Address ObjectInfo
+ int i_prev_id; // Prev Address ObjectInfo
+
} LibGoblin_ObjectInfo;
// Object Table & Address Table ---
LibGoblin_ObjectInfo *p_objinfo;
- int i_alloc_objinfo;
- int i_max_objinfo;
- int i_now_objinfo;
+ int i_alloc_objinfo; // Alloced ObjectInfo
+ int i_max_objinfo; // ObjectInfo Max ID
+ int i_now_objinfo; // ObjectInfo Items
+ int i_top_objinfo; // Top-Ptr ObjectInfo
LibGoblin_AddressInfo *p_addrinfo;