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


C++ AsmFormatPluginHelper::get_filename方法代码示例

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


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

示例1: sizeof

static int _decode64_strtab(AsmFormatPlugin * format, Elf64_Shdr * shdr,
        size_t shdr_cnt, uint16_t ndx, char ** strtab,
        size_t * strtab_cnt)
{
    AsmFormatPluginHelper * helper = format->helper;
    ssize_t size;

    if(ndx >= shdr_cnt)
        return -error_set_code(1, "%s: %s",
                helper->get_filename(helper->format),
                "Unable to read the string table");
    shdr = &shdr[ndx];
    if(helper->seek(helper->format, shdr->sh_offset, SEEK_SET) < 0)
        return -1;
    size = sizeof(**strtab) * shdr->sh_size;
    if((*strtab = malloc(size)) == NULL)
        return -_elf_error(format);
    if(helper->read(helper->format, *strtab, size) != size)
    {
        free(*strtab);
        return -1;
    }
    *strtab_cnt = shdr->sh_size;
    return 0;
}
开发者ID:khorben,项目名称:DeforaOS,代码行数:25,代码来源:elf.c

示例2:

/* elf_detect */
static char const * _elf_detect(AsmFormatPlugin * format)
{
    AsmFormatPluginHelper * helper = format->helper;
    char const * ret;
    union
    {
        Elf32_Ehdr ehdr32;
        Elf64_Ehdr ehdr64;
    } ehdr;

    if(helper->seek(helper->format, 0, SEEK_SET) != 0)
        return NULL;
    if(helper->read(helper->format, &ehdr, sizeof(ehdr)) != sizeof(ehdr))
        return NULL;
    switch(ehdr.ehdr32.e_ident[EI_CLASS])
    {
        case ELFCLASS32:
            if((ret = elf32_detect(format, &ehdr.ehdr32)) != NULL)
                format->decode = elf32_decode;
            break;
        case ELFCLASS64:
            if((ret = elf64_detect(format, &ehdr.ehdr64)) != NULL)
                format->decode = elf64_decode;
            break;
        default:
            ret = NULL;
            error_set_code(1, "%s: %s 0x%x\n",
                    helper->get_filename(helper->format),
                    "Unsupported ELF class",
                    ehdr.ehdr32.e_ident[EI_CLASS]);
            break;
    }
    return ret;
}
开发者ID:DeforaOS,项目名称:asm,代码行数:35,代码来源:elf.c

示例3:

static char const * _elf_detect(AsmFormatPlugin * format)
{
    AsmFormatPluginHelper * helper = format->helper;
    union
    {
        Elf32_Ehdr ehdr32;
        Elf64_Ehdr ehdr64;
    } ehdr;

    if(helper->seek(helper->format, 0, SEEK_SET) != 0)
        return NULL;
    if(helper->read(helper->format, &ehdr, sizeof(ehdr)) != sizeof(ehdr))
        return NULL;
    switch(ehdr.ehdr32.e_ident[EI_CLASS])
    {
        case ELFCLASS32:
            return _detect_32(format, &ehdr.ehdr32);
        case ELFCLASS64:
            return _detect_64(format, &ehdr.ehdr64);
    }
    error_set_code(1, "%s: %s 0x%x\n", helper->get_filename(helper->format),
            "Unsupported ELF class", ehdr.ehdr32.e_ident[EI_CLASS]);
    return NULL;
}
开发者ID:khorben,项目名称:DeforaOS,代码行数:24,代码来源:elf.c


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