From 88f1211409ef2315afacc6254255507147464d7b Mon Sep 17 00:00:00 2001 From: Ciro Santilli Date: Wed, 28 Jun 2017 07:14:21 +0100 Subject: [PATCH] devmem to tabs --- kernel_module/pci.c | 3 +-- kernel_module/user/devmem.c | 37 +++++++++++++++++++------------------ 2 files changed, 20 insertions(+), 20 deletions(-) diff --git a/kernel_module/pci.c b/kernel_module/pci.c index 27477c0..c01f1fa 100644 --- a/kernel_module/pci.c +++ b/kernel_module/pci.c @@ -209,7 +209,6 @@ static int pci_probe(struct pci_dev *dev, const struct pci_device_id *id) * after boot with device_add: * https://stackoverflow.com/questions/44740254/how-to-handle-interrupts-from-a-pci-device-that-already-have-a-non-shareable-han?noredirect=1#comment76558680_44740254 */ - pr_info("pdev->irq %u\n", pdev->irq); if (request_irq(pdev->irq, irq_handler, IRQF_SHARED, "pci_irq_handler0", &major) < 0) { dev_err(&(dev->dev), "request_irq\n"); goto error; @@ -242,7 +241,7 @@ static int pci_probe(struct pci_dev *dev, const struct pci_device_id *id) pci_read_config_byte(pdev, i, &val); pr_info("config %x %x\n", i, val); } - pr_info("irq %x\n", pdev->irq); + pr_info("pdev->irq %x\n", pdev->irq); /* Initial value of the IO memory. */ for (i = 0; i < 0x28; i += 4) { diff --git a/kernel_module/user/devmem.c b/kernel_module/user/devmem.c index 3e65e32..ddca707 100644 --- a/kernel_module/user/devmem.c +++ b/kernel_module/user/devmem.c @@ -17,26 +17,27 @@ Confirm memory from QEMU monitor with: #include int main(int argc, char *argv[]) { - if (argc < 3) { - printf("Usage: %s \n", argv[0]); - return 0; - } - off_t offset = strtoul(argv[1], NULL, 0); - size_t len = strtoul(argv[2], NULL, 0); + if (argc < 3) { + printf("Usage: %s \n", argv[0]); + return 0; + } + off_t offset = strtoul(argv[1], NULL, 0); + size_t len = strtoul(argv[2], NULL, 0); - size_t pagesize = sysconf(_SC_PAGE_SIZE); - off_t page_base = (offset / pagesize) * pagesize; - off_t page_offset = offset - page_base; - int fd = open("/dev/mem", O_SYNC); + size_t pagesize = sysconf(_SC_PAGE_SIZE); + off_t page_base = (offset / pagesize) * pagesize; + off_t page_offset = offset - page_base; + int fd = open("/dev/mem", O_SYNC); size_t reallen = page_offset + len; - unsigned char *mem = mmap(NULL, reallen, PROT_READ | PROT_WRITE, MAP_PRIVATE, fd, page_base); - if (mem == MAP_FAILED) { - perror("mmap"); + unsigned char *mem = mmap(NULL, reallen, PROT_READ | PROT_WRITE, MAP_PRIVATE, fd, page_base); + if (mem == MAP_FAILED) { + /* TODO why does it fail for some addreses but not for others? */ + perror("mmap"); exit(EXIT_FAILURE); - } - for (size_t i = 0; i < len; ++i) { - printf("%02x ", (unsigned int)mem[page_offset + i]); - /* TODO can't edit memory? */ + } + for (size_t i = 0; i < len; ++i) { + printf("%02x ", (unsigned int)mem[page_offset + i]); + /* TODO can't edit memory? */ mem[page_offset + i] = i % 256; } puts(""); @@ -44,5 +45,5 @@ int main(int argc, char *argv[]) { perror("munmap"); exit(EXIT_FAILURE); } - return EXIT_SUCCESS; + return EXIT_SUCCESS; }