当前位置: 首页>>代码示例>>C++>>正文


C++ netnode::hashstr方法代码示例

本文整理汇总了C++中netnode::hashstr方法的典型用法代码示例。如果您正苦于以下问题:C++ netnode::hashstr方法的具体用法?C++ netnode::hashstr怎么用?C++ netnode::hashstr使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在netnode的用法示例。


在下文中一共展示了netnode::hashstr方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。

示例1: read_hash

void SuperFamicomCartridge::read_hash(const netnode & node)
{
  char buf[MAXSTR];
  ssize_t len;

  rom_size = node.hashval_long("rom_size");
  ram_size = node.hashval_long("ram_size");
  firmware_appended = node.hashval_long("firmware_appended") != 0;

  header_offset = node.hashval_long("header_offset");

  len = node.hashstr("type", buf, sizeof(buf));
  if(len >= 0) type = string_to_type(buf);
  len = node.hashstr("region", buf, sizeof(buf));
  if(len >= 0) region = string_to_region(buf);
  len = node.hashstr("mapper", buf, sizeof(buf));
  if(len >= 0) mapper = string_to_mapper(buf);
  len = node.hashstr("dsp1_mapper", buf, sizeof(buf));
  if(len >= 0) dsp1_mapper = string_to_dsp1_mapper(buf);

  has_bsx_slot = node.hashval_long("has_bsx_slot") != 0;
  has_superfx = node.hashval_long("has_superfx") != 0;
  has_sa1 = node.hashval_long("has_sa1") != 0;
  has_sharprtc = node.hashval_long("has_sharprtc") != 0;
  has_epsonrtc = node.hashval_long("has_epsonrtc") != 0;
  has_sdd1 = node.hashval_long("has_sdd1") != 0;
  has_spc7110 = node.hashval_long("has_spc7110") != 0;
  has_cx4 = node.hashval_long("has_cx4") != 0;
  has_dsp1 = node.hashval_long("has_dsp1") != 0;
  has_dsp2 = node.hashval_long("has_dsp2") != 0;
  has_dsp3 = node.hashval_long("has_dsp3") != 0;
  has_dsp4 = node.hashval_long("has_dsp4") != 0;
  has_obc1 = node.hashval_long("has_obc1") != 0;
  has_st010 = node.hashval_long("has_st010") != 0;
  has_st011 = node.hashval_long("has_st011") != 0;
  has_st018 = node.hashval_long("has_st018") != 0;
}
开发者ID:Aliandrana,项目名称:ida-snes-ldr,代码行数:37,代码来源:super-famicom.hpp

示例2: notify

//----------------------------------------------------------------------
static int idaapi notify(processor_t::idp_notify msgid, ...) // Various messages:
{
  va_list va;
  va_start(va, msgid);

// A well behaved processor module should call invoke_callbacks()
// in his notify() function. If this function returns 0, then
// the processor module should process the notification itself
// Otherwise the code should be returned to the caller:

  int code = invoke_callbacks(HT_IDP, msgid, va);
  if ( code ) return code;

  int retcode = 1;
  switch ( msgid )
  {
    case processor_t::init:
      helper.create("$ spc700");
      break;
    case processor_t::term:
      free_ioports(ports, numports);
      break;
    case processor_t::oldfile:
    case processor_t::newfile:
      {
        char buf[MAXSTR];
        const char *device_ptr = buf;
        ssize_t len = helper.hashstr("device", buf, sizeof(buf));
        if ( len <= 0 )
          device_ptr = "spc700";

        if ( msgid == processor_t::newfile )
        {
          set_device_name(device_ptr, IORESP_ALL);
          set_dsp_regs_enum();

          set_default_segreg_value(NULL, rDs, 0);
          set_default_segreg_value(NULL, rFp, 0);
        }
      }
      break;

    case processor_t::may_be_func:
      retcode = 0;
      ea_t cref_addr;
      for( cref_addr = get_first_cref_to(cmd.ea);
           cref_addr != BADADDR;
           cref_addr = get_next_cref_to(cmd.ea, cref_addr) )
      {
        uint8 opcode = get_byte(cref_addr);
        const struct opcode_info_t &opinfo = get_opcode_info(opcode);
        if ( opinfo.itype == SPC_call
          || opinfo.itype == SPC_jmp )
        {
          retcode = 100;
          break;
        }
      }
      break;

    case processor_t::is_call_insn:
      {
        const struct opcode_info_t &opinfo = get_opcode_info(get_byte(va_arg(va, ea_t)));
        if ( opinfo.itype == SPC_call )
          retcode = 2;
        else
          retcode = 0;
      }
      break;

    case processor_t::is_ret_insn:
      {
        const struct opcode_info_t &opinfo = get_opcode_info(get_byte(va_arg(va, ea_t)));
        if ( opinfo.itype == SPC_ret
          || opinfo.itype == SPC_reti )
          retcode = 2;
        else
          retcode = 0;
      }
      break;

    case processor_t::is_indirect_jump:
      {
        const struct opcode_info_t &opinfo = get_opcode_info(get_byte(va_arg(va, ea_t)));
        if ( opinfo.itype == SPC_jmp )
        {
          if ( opinfo.addr == ABS_IX_INDIR )
            retcode = 3;
          else
            retcode = 2;
        }
        else
          retcode = 1;
      }
      break;

    default:
      break;
  }
//.........这里部分代码省略.........
开发者ID:gocha,项目名称:ida-spc700-module,代码行数:101,代码来源:reg.cpp


注:本文中的netnode::hashstr方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。