/*----------------------------------------------------------------------
----------------------------------------------------------------------*/
LIBGOBLIN_BINFO_EXTERN
+int
+ LibGoblin_BinInfo_SetProgramName(
+ LibGoblin_BinaryInfo *p_binfo,
+ const char *pstr_program )
+{
+ LibGoblin_BinaryFile *p_bfile;
+ assert( NULL != p_binfo );
+
+ if( LIBGOBLIN_BINFO_PHASE_ALLOCED < p_binfo->b_phase ) {
+ return -0x01;
+ }
+
+ p_bfile = &(p_binfo->t_binfile[LIBGOBLIN_BINFO_FILE_EXEC]);
+
+ if( '\0' != p_bfile->str_filepath[0] ) {
+ return -0x02;
+ }
+
+ strncpy( p_bfile->str_filepath, pstr_program, DRD64_MAX_PATH );
+
+ p_binfo->b_phase = LIBGOBLIN_BINFO_PHASE_SETPROG;
+
+ return 0x00;
+}
+
+
+/*----------------------------------------------------------------------
+----------------------------------------------------------------------*/
+LIBGOBLIN_BINFO_EXTERN
LibGoblin_BinaryInfo *
LibGoblin_BinInfo_AllocBinInfo(
void)
LIBGOBLIN_BINFO_EXTERN
LibGoblin_BinaryInfo *LibGoblin_BinInfo_GetBinInfo( int i_bid );
LIBGOBLIN_BINFO_EXTERN
+ int LibGoblin_BinInfo_SetProgramName(
+ LibGoblin_BinaryInfo *p_binfo, const char *pstr_program );
+LIBGOBLIN_BINFO_EXTERN
LibGoblin_BinaryInfo *LibDrd64_BinInfo_AllocBinInfo( void );
LIBGOBLIN_BINFO_EXTERN
int LibGoblin_BinInfo_FreeBinInfo( LibGoblin_BinaryInfo *p_binfo );
assert( NULL != p_binfo );
- if( LIBGOBLIN_BINFO_PHASE_ALLOCED != p_binfo->b_phase ) {
- return -0x01;
+ if( NULL == pstr_filepath ) {
+ if ( LIBGOBLIN_BINFO_PHASE_SETPROG != p_binfo->b_phase ) {
+ return -0x01;
+ }
+ }
+ else {
+ if( LIBGOBLIN_BINFO_PHASE_ALLOCED != p_binfo->b_phase ) {
+ return -0x02;
+ }
}
/* Open Test LM */