Пример #1
0
blargg_err_t Gme_File::load_file( const char* path )
{
	pre_load();
	GME_FILE_READER in;
	RETURN_ERR( in.open( path ) );
	return post_load( load_( in ) );
}
Пример #2
0
static void
load_segment64(unsigned long *file_addr, struct phdr64 *phdr, signed long offset,
               int (*pre_load)(void*, long),
               void (*post_load)(void*, long))
{
	unsigned long src = phdr->p_offset + (unsigned long) file_addr;
	unsigned long destaddr;

	destaddr = phdr->p_paddr + offset;

	/* check if we're allowed to copy */
	if (pre_load != NULL) {
		if (pre_load((void*)destaddr, phdr->p_memsz) != 0)
			return;
	}

	/* copy into storage */
	memmove((void*)destaddr, (void*)src, phdr->p_filesz);

	/* clear bss */
	memset((void*)(destaddr + phdr->p_filesz), 0,
	       phdr->p_memsz - phdr->p_filesz);

	if (phdr->p_memsz && post_load != NULL) {
		post_load((void*)destaddr, phdr->p_memsz);
	}
}
Пример #3
0
void IEngine::initialize(const string& json_str)
{
    // init reader / writer / logger first
    init();
    // record its status
    WRITE_ENGINE_STATUS(WC_ENGINE_STATUS_IDLE);
    // prepare config information
    json j_config = json::parse(json_str);
    for (json::const_iterator iter = j_config.begin(); iter != j_config.end(); ++iter)
    {
        KF_LOG_INFO(logger, "IEngine::init " << iter.key() << "->" << iter.value().dump());
    }
    // pre_load process is mainly for IMDEngine or ITDEngine,
    // engine-wise control information loading, sometimes needs to be loaded before.
    pre_load(j_config);
    // load config information
    load(j_config);
}
Пример #4
0
blargg_err_t Gme_File::load( Data_Reader& in )
{
	pre_load();
	return post_load( load_( in ) );
}
Пример #5
0
blargg_err_t Gme_File::load_mem( void const* in, long size )
{
	pre_load();
	return post_load( load_mem_( (byte const*) in, size ) );
}
Пример #6
0
blargg_err_t Gme_Loader::load_mem( void const* in, long size )
{
	pre_load();
	return post_load_( load_mem_wrapper( (byte const*) in, (int) size ) );
}