From 8a475f7e4ae72db0a6cfe31ab46f588e89e0fc34 Mon Sep 17 00:00:00 2001 From: Nick Kralevich Date: Tue, 29 Nov 2016 15:43:17 -0800 Subject: [PATCH] delete toolbox/r.c /dev/mem has been turned off on all Android kernels (b/19549480). This utility cannot be used. Test: android compiles. Change-Id: I500021f224febb15dd8bfe6e1f6e5c398fe6f552 --- toolbox/Android.mk | 9 ---- toolbox/r.c | 102 --------------------------------------------- 2 files changed, 111 deletions(-) delete mode 100644 toolbox/r.c diff --git a/toolbox/Android.mk b/toolbox/Android.mk index 5319ff4ab..d6ead1a09 100644 --- a/toolbox/Android.mk +++ b/toolbox/Android.mk @@ -81,15 +81,6 @@ $(INPUT_H_LABELS_H): $(LOCAL_PATH)/Android.mk $(LOCAL_PATH)/generate-input.h-lab $(INPUT_H_LABELS_H): $(transform-generated-source) -# We only want 'r' on userdebug and eng builds. -include $(CLEAR_VARS) -LOCAL_SRC_FILES := r.c -LOCAL_CFLAGS += $(common_cflags) -LOCAL_C_INCLUDES += $(LOCAL_PATH)/upstream-netbsd/include/ -LOCAL_MODULE := r -LOCAL_MODULE_TAGS := debug -include $(BUILD_EXECUTABLE) - # We build BSD grep separately, so it can provide egrep and fgrep too. include $(CLEAR_VARS) diff --git a/toolbox/r.c b/toolbox/r.c deleted file mode 100644 index b96cdb279..000000000 --- a/toolbox/r.c +++ /dev/null @@ -1,102 +0,0 @@ -#include -#include -#include -#include -#include -#include -#include -#include - -#if __LP64__ -#define strtoptr strtoull -#else -#define strtoptr strtoul -#endif - -static int usage() -{ - fprintf(stderr,"r [-b|-s]
[]\n"); - return -1; -} - -int main(int argc, char *argv[]) -{ - if(argc < 2) return usage(); - - int width = 4; - if(!strcmp(argv[1], "-b")) { - width = 1; - argc--; - argv++; - } else if(!strcmp(argv[1], "-s")) { - width = 2; - argc--; - argv++; - } - - if(argc < 2) return usage(); - uintptr_t addr = strtoptr(argv[1], 0, 16); - - uintptr_t endaddr = 0; - char* end = strchr(argv[1], '-'); - if (end) - endaddr = strtoptr(end + 1, 0, 16); - - if (!endaddr) - endaddr = addr + width - 1; - - if (endaddr <= addr) { - fprintf(stderr, "end address <= start address\n"); - return -1; - } - - bool set = false; - uint32_t value = 0; - if(argc > 2) { - set = true; - value = strtoul(argv[2], 0, 16); - } - - int fd = open("/dev/mem", O_RDWR | O_SYNC); - if(fd < 0) { - fprintf(stderr,"cannot open /dev/mem\n"); - return -1; - } - - off64_t mmap_start = addr & ~(PAGE_SIZE - 1); - size_t mmap_size = endaddr - mmap_start + 1; - mmap_size = (mmap_size + PAGE_SIZE - 1) & ~(PAGE_SIZE - 1); - - void* page = mmap64(0, mmap_size, PROT_READ | PROT_WRITE, - MAP_SHARED, fd, mmap_start); - - if(page == MAP_FAILED){ - fprintf(stderr,"cannot mmap region\n"); - return -1; - } - - while (addr <= endaddr) { - switch(width){ - case 4: { - uint32_t* x = (uint32_t*) (((uintptr_t) page) + (addr & 4095)); - if(set) *x = value; - fprintf(stderr,"%08"PRIxPTR": %08x\n", addr, *x); - break; - } - case 2: { - uint16_t* x = (uint16_t*) (((uintptr_t) page) + (addr & 4095)); - if(set) *x = value; - fprintf(stderr,"%08"PRIxPTR": %04x\n", addr, *x); - break; - } - case 1: { - uint8_t* x = (uint8_t*) (((uintptr_t) page) + (addr & 4095)); - if(set) *x = value; - fprintf(stderr,"%08"PRIxPTR": %02x\n", addr, *x); - break; - } - } - addr += width; - } - return 0; -}