cregit-Linux how code gets into the kernel

Release 4.14 arch/mips/boot/tools/relocs_main.c

// SPDX-License-Identifier: GPL-2.0

#include <stdio.h>
#include <stdint.h>
#include <stdarg.h>
#include <stdlib.h>
#include <string.h>
#include <errno.h>
#include <endian.h>
#include <elf.h>

#include "relocs.h"


void die(char *fmt, ...) { va_list ap; va_start(ap, fmt); vfprintf(stderr, fmt, ap); va_end(ap); exit(1); }

Contributors

PersonTokensPropCommitsCommitProp
Matt Redfearn40100.00%1100.00%
Total40100.00%1100.00%


static void usage(void) { die("relocs [--reloc-info|--text|--bin|--keep] vmlinux\n"); }

Contributors

PersonTokensPropCommitsCommitProp
Matt Redfearn13100.00%1100.00%
Total13100.00%1100.00%


int main(int argc, char **argv) { int show_reloc_info, as_text, as_bin, keep_relocs; const char *fname; FILE *fp; int i; unsigned char e_ident[EI_NIDENT]; show_reloc_info = 0; as_text = 0; as_bin = 0; keep_relocs = 0; fname = NULL; for (i = 1; i < argc; i++) { char *arg = argv[i]; if (*arg == '-') { if (strcmp(arg, "--reloc-info") == 0) { show_reloc_info = 1; continue; } if (strcmp(arg, "--text") == 0) { as_text = 1; continue; } if (strcmp(arg, "--bin") == 0) { as_bin = 1; continue; } if (strcmp(arg, "--keep") == 0) { keep_relocs = 1; continue; } } else if (!fname) { fname = arg; continue; } usage(); } if (!fname) usage(); fp = fopen(fname, "r+"); if (!fp) die("Cannot open %s: %s\n", fname, strerror(errno)); if (fread(&e_ident, 1, EI_NIDENT, fp) != EI_NIDENT) die("Cannot read %s: %s", fname, strerror(errno)); rewind(fp); if (e_ident[EI_CLASS] == ELFCLASS64) process_64(fp, as_text, as_bin, show_reloc_info, keep_relocs); else process_32(fp, as_text, as_bin, show_reloc_info, keep_relocs); fclose(fp); return 0; }

Contributors

PersonTokensPropCommitsCommitProp
Matt Redfearn293100.00%1100.00%
Total293100.00%1100.00%


Overall Contributors

PersonTokensPropCommitsCommitProp
Matt Redfearn37399.73%150.00%
Greg Kroah-Hartman10.27%150.00%
Total374100.00%2100.00%
Information contained on this website is for historical information purposes only and does not indicate or represent copyright ownership.
Created with cregit.