Project import generated by Copybara. NOKEYCHECK=True GitOrigin-RevId: 384139f328f879a75101c8c261ad9d0543d30fe1
diff --git a/sp-oops-extract.patches/sp-oops-extract-50.patch b/sp-oops-extract.patches/sp-oops-extract-50.patch new file mode 100644 index 0000000..b72df34 --- /dev/null +++ b/sp-oops-extract.patches/sp-oops-extract-50.patch
@@ -0,0 +1,9 @@ +diff --aruN a/Makefile b/Makefile +--- a/Makefile ++++ b/Makefile +@@ -12,4 +12,5 @@ distclean: clean + for i in $(SUBDIRS); do $(MAKE) -C $$i distclean; done + + install: ++ mkdir -p $(BIN) + install src/sp-oops-extract $(BIN)
diff --git a/sp-oops-extract.patches/sp-oops-extract-51.patch b/sp-oops-extract.patches/sp-oops-extract-51.patch new file mode 100644 index 0000000..d8e301f --- /dev/null +++ b/sp-oops-extract.patches/sp-oops-extract-51.patch
@@ -0,0 +1,9 @@ +diff --aruN a/src/Makefile b/src/Makefile +--- a/src/Makefile ++++ b/src/Makefile +@@ -9,4 +9,4 @@ + $(RM) $(TARGETS) + + sp-oops-extract: oopslog.c +- gcc -Wall -s -o $@ $^ ++ $(CC) -Wall -s -o $@ $^
diff --git a/sp-oops-extract.patches/sp-oops-extract-52.patch b/sp-oops-extract.patches/sp-oops-extract-52.patch new file mode 100644 index 0000000..689013d --- /dev/null +++ b/sp-oops-extract.patches/sp-oops-extract-52.patch
@@ -0,0 +1,107 @@ +diff '--exclude=*~' -Nurp sp-oops-extract-0.0.7.orig/src/oopslog.c sp-oops-extract-0.0.7/src/oopslog.c +Index: sp-oops-extract-0.0.7/src/oopslog.c +=================================================================== +--- sp-oops-extract-0.0.7.orig/src/oopslog.c 2017-04-05 16:31:18.973231119 -0700 ++++ sp-oops-extract-0.0.7/src/oopslog.c 2017-04-05 16:31:18.965231155 -0700 +@@ -37,11 +37,18 @@ + #include <linux/fs.h> + #include <err.h> + #include <stdint.h> ++#include <stdlib.h> ++#include <limits.h> + +-#define OOPS_PAGE_SIZE 4096 ++#define DEFAULT_OOPS_PAGE_SIZE 4096 ++#define OOPS_PAGE_SIZE_ENV "OOPS_PAGE_SIZE" ++#define OOPS_RECORD_SIZE_PATH "/sys/module/mtdoops/parameters/record_size" ++#define INVALID_OOPS_PAGE_SIZE ULONG_MAX + + #define MEMGETINFO _IOR('M', 1, struct mtd_info_user) + ++unsigned long OOPS_PAGE_SIZE = DEFAULT_OOPS_PAGE_SIZE; ++ + struct mtd_info_user { + uint8_t type; + uint32_t flags; +@@ -55,6 +62,72 @@ + uint32_t eccsize; + }; + ++static unsigned long init_oops_page_size_from_env(void) ++{ ++ char *from_env = getenv(OOPS_PAGE_SIZE_ENV); ++ char *endptr = NULL; ++ unsigned long val = INVALID_OOPS_PAGE_SIZE; ++ ++ if (!from_env) { ++ return val; ++ } ++ ++ errno = 0; ++ val = strtoul(from_env, &endptr, 0); ++ if (from_env == endptr) { ++ // invalid value. Ignore it. ++ val = INVALID_OOPS_PAGE_SIZE; ++ } else if (val == ULONG_MAX && errno == ERANGE) { ++ // invalid value. Ignore it. ++ val = INVALID_OOPS_PAGE_SIZE; ++ } else { ++ // good read, using value. ++ } ++ ++ return val; ++} ++ ++static unsigned long init_oops_page_size_from_module(void) ++{ ++ FILE *fp = fopen(OOPS_RECORD_SIZE_PATH, "r"); ++ unsigned long val = INVALID_OOPS_PAGE_SIZE; ++ int items; ++ ++ if (!fp) { ++ return INVALID_OOPS_PAGE_SIZE; ++ } ++ ++ items = fscanf(fp, "%lu", &val); ++ fclose(fp); ++ if (items != 1) { ++ val = INVALID_OOPS_PAGE_SIZE; ++ } ++ ++ return val; ++} ++ ++// Set OOPS_PAGE_SIZE value from either environment (OOPS_PAGE_SIZE) ++// or from the kernel module parameter. ++static void init_oops_page_size(void) ++{ ++ unsigned long val; ++ ++ val = init_oops_page_size_from_env(); ++ ++ if (val == INVALID_OOPS_PAGE_SIZE) { ++ val = init_oops_page_size_from_module(); ++ } ++ ++ if (val != INVALID_OOPS_PAGE_SIZE) { ++ OOPS_PAGE_SIZE = val; ++ } ++ ++ fprintf(stderr, "Using OOPS_PAGE_SIZE=%lu\n", val); ++ if ((OOPS_PAGE_SIZE % 4096) != 0) { ++ fprintf(stderr, "Warning: OOPS_PAGE_SIZE is supposed to be a multiple of 4096\n"); ++ } ++} ++ + static int try_to_check_for_bad_blocks(void) { + /* FIXME + * Checking for bad blocks should be implemented here. +@@ -83,6 +156,8 @@ + + device = argv[1]; + ++ init_oops_page_size(); ++ + buf = malloc(OOPS_PAGE_SIZE); + if (!buf) { + err(-1, "Unable to allocate memory");
diff --git a/sp-oops-extract.tar.gz b/sp-oops-extract.tar.gz new file mode 100644 index 0000000..aa655c1 --- /dev/null +++ b/sp-oops-extract.tar.gz Binary files differ
diff --git a/sp-oops-extract.url b/sp-oops-extract.url new file mode 100644 index 0000000..19cee8f --- /dev/null +++ b/sp-oops-extract.url
@@ -0,0 +1 @@ +http://repository.maemo.org/pool/maemo5.0/free/s/sp-oops-extract/sp-oops-extract_0.0.7-1.tar.gz
diff --git a/sp-oops-extract.version b/sp-oops-extract.version new file mode 100644 index 0000000..5a5831a --- /dev/null +++ b/sp-oops-extract.version
@@ -0,0 +1 @@ +0.0.7