#include <limits.h>
#include <stdbool.h>
#include <errno.h>
+#include <libgen.h>
+
#include <rte_common.h>
#include "pmdinfogen.h"
}
if (!info->symtab_start)
fprintf(stderr, "%s has no symtab?\n", filename);
-
- /* Fix endianness in symbols */
- for (sym = info->symtab_start; sym < info->symtab_stop; sym++) {
- sym->st_shndx = TO_NATIVE(endian, 16, sym->st_shndx);
- sym->st_name = TO_NATIVE(endian, 32, sym->st_name);
- sym->st_value = TO_NATIVE(endian, ADDR_SIZE, sym->st_value);
- sym->st_size = TO_NATIVE(endian, ADDR_SIZE, sym->st_size);
+ else {
+ /* Fix endianness in symbols */
+ for (sym = info->symtab_start; sym < info->symtab_stop; sym++) {
+ sym->st_shndx = TO_NATIVE(endian, 16, sym->st_shndx);
+ sym->st_name = TO_NATIVE(endian, 32, sym->st_name);
+ sym->st_value = TO_NATIVE(endian, ADDR_SIZE, sym->st_value);
+ sym->st_size = TO_NATIVE(endian, ADDR_SIZE, sym->st_size);
+ }
}
if (symtab_shndx_idx != ~0U) {
static const struct opt_tag opt_tags[] = {
{"_param_string_export", "params"},
+ {"_kmod_dep_export", "kmod"},
};
static int complete_pmd_entry(struct elf_info *info, struct pmd_driver *drv)
else
fprintf(ofd, " ");
}
- fprintf(ofd, "]}\";");
+ fprintf(ofd, "]}\";\n");
drv = drv->next;
}
int main(int argc, char **argv)
{
- struct elf_info info;
+ struct elf_info info = {0};
int rc = 1;
if (argc < 3) {
fprintf(stderr,
- "usage: pmdinfo <object file> <c output file>\n");
+ "usage: %s <object file> <c output file>\n",
+ basename(argv[0]));
exit(127);
}
parse_elf(&info, argv[1]);