mirror of
https://github.com/gatieme/LDD-LinuxDeviceDrivers.git
synced 2026-08-20 22:04:56 +08:00
memory: spilt code to module and tool
This commit is contained in:
@@ -1 +0,0 @@
|
||||
cmd_/home/gatieme/Work/GitHub/LDD-LinuxDeviceDrivers/study/kernel/memory/kv2p/kv2p.ko := aarch64-linux-gnu-ld -EL -r -T /usr/src/linux-headers-3.14.0-20150821.kylin.3.desktop/scripts/module-common.lds --build-id -o /home/gatieme/Work/GitHub/LDD-LinuxDeviceDrivers/study/kernel/memory/kv2p/kv2p.ko /home/gatieme/Work/GitHub/LDD-LinuxDeviceDrivers/study/kernel/memory/kv2p/kv2p.o /home/gatieme/Work/GitHub/LDD-LinuxDeviceDrivers/study/kernel/memory/kv2p/kv2p.mod.o
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -1,2 +0,0 @@
|
||||
/home/gatieme/Work/GitHub/LDD-LinuxDeviceDrivers/study/kernel/memory/kv2p/kv2p.ko
|
||||
/home/gatieme/Work/GitHub/LDD-LinuxDeviceDrivers/study/kernel/memory/kv2p/kv2p.o
|
||||
@@ -1,30 +0,0 @@
|
||||
#include <linux/module.h>
|
||||
#include <linux/vermagic.h>
|
||||
#include <linux/compiler.h>
|
||||
|
||||
MODULE_INFO(vermagic, VERMAGIC_STRING);
|
||||
|
||||
__visible struct module __this_module
|
||||
__attribute__((section(".gnu.linkonce.this_module"))) = {
|
||||
.name = KBUILD_MODNAME,
|
||||
.init = init_module,
|
||||
#ifdef CONFIG_MODULE_UNLOAD
|
||||
.exit = cleanup_module,
|
||||
#endif
|
||||
.arch = MODULE_ARCH_INIT,
|
||||
};
|
||||
|
||||
static const struct modversion_info ____versions[]
|
||||
__used
|
||||
__attribute__((section("__versions"))) = {
|
||||
{ 0x146be775, __VMLINUX_SYMBOL_STR(module_layout) },
|
||||
{ 0x8d2e268b, __VMLINUX_SYMBOL_STR(param_ops_ulong) },
|
||||
{ 0x27e1a049, __VMLINUX_SYMBOL_STR(printk) },
|
||||
{ 0xf8e398fc, __VMLINUX_SYMBOL_STR(memstart_addr) },
|
||||
};
|
||||
|
||||
static const char __module_depends[]
|
||||
__used
|
||||
__attribute__((section(".modinfo"))) =
|
||||
"depends=";
|
||||
|
||||
@@ -1 +0,0 @@
|
||||
kernel//home/gatieme/Work/GitHub/LDD-LinuxDeviceDrivers/study/kernel/memory/kv2p/kv2p.ko
|
||||
@@ -1 +0,0 @@
|
||||
cmd_/home/gatieme/Work/GitHub/LDD-LinuxDeviceDrivers/study/kernel/02-memory/00-code/mmap/mmap_test.ko := aarch64-linux-gnu-ld -EL -r -T /usr/src/linux-headers-3.14.0-20150821.kylin.3.desktop/scripts/module-common.lds --build-id -o /home/gatieme/Work/GitHub/LDD-LinuxDeviceDrivers/study/kernel/02-memory/00-code/mmap/mmap_test.ko /home/gatieme/Work/GitHub/LDD-LinuxDeviceDrivers/study/kernel/02-memory/00-code/mmap/mmap_test.o /home/gatieme/Work/GitHub/LDD-LinuxDeviceDrivers/study/kernel/02-memory/00-code/mmap/mmap_test.mod.o
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -1,2 +0,0 @@
|
||||
/home/gatieme/Work/GitHub/LDD-LinuxDeviceDrivers/study/kernel/02-memory/00-code/mmap/mmap_test.ko
|
||||
/home/gatieme/Work/GitHub/LDD-LinuxDeviceDrivers/study/kernel/02-memory/00-code/mmap/mmap_test.o
|
||||
@@ -1,39 +0,0 @@
|
||||
#include <linux/module.h>
|
||||
#include <linux/vermagic.h>
|
||||
#include <linux/compiler.h>
|
||||
|
||||
MODULE_INFO(vermagic, VERMAGIC_STRING);
|
||||
|
||||
__visible struct module __this_module
|
||||
__attribute__((section(".gnu.linkonce.this_module"))) = {
|
||||
.name = KBUILD_MODNAME,
|
||||
.init = init_module,
|
||||
#ifdef CONFIG_MODULE_UNLOAD
|
||||
.exit = cleanup_module,
|
||||
#endif
|
||||
.arch = MODULE_ARCH_INIT,
|
||||
};
|
||||
|
||||
static const struct modversion_info ____versions[]
|
||||
__used
|
||||
__attribute__((section("__versions"))) = {
|
||||
{ 0x146be775, __VMLINUX_SYMBOL_STR(module_layout) },
|
||||
{ 0x37a0cba, __VMLINUX_SYMBOL_STR(kfree) },
|
||||
{ 0xa87cf413, __VMLINUX_SYMBOL_STR(clear_bit) },
|
||||
{ 0x15625c2c, __VMLINUX_SYMBOL_STR(misc_deregister) },
|
||||
{ 0xdc435006, __VMLINUX_SYMBOL_STR(device_create_file) },
|
||||
{ 0xae8c4d0c, __VMLINUX_SYMBOL_STR(set_bit) },
|
||||
{ 0x71603d38, __VMLINUX_SYMBOL_STR(kmem_cache_alloc) },
|
||||
{ 0x442f54a5, __VMLINUX_SYMBOL_STR(kmalloc_caches) },
|
||||
{ 0x4bc5f446, __VMLINUX_SYMBOL_STR(misc_register) },
|
||||
{ 0x4813cae7, __VMLINUX_SYMBOL_STR(remap_pfn_range) },
|
||||
{ 0x41182cc0, __VMLINUX_SYMBOL_STR(pgprot_default) },
|
||||
{ 0xf8e398fc, __VMLINUX_SYMBOL_STR(memstart_addr) },
|
||||
{ 0x27e1a049, __VMLINUX_SYMBOL_STR(printk) },
|
||||
};
|
||||
|
||||
static const char __module_depends[]
|
||||
__used
|
||||
__attribute__((section(".modinfo"))) =
|
||||
"depends=";
|
||||
|
||||
@@ -1 +0,0 @@
|
||||
kernel//home/gatieme/Work/GitHub/LDD-LinuxDeviceDrivers/study/kernel/02-memory/00-code/mmap/mmap_test.ko
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 23 KiB After Width: | Height: | Size: 23 KiB |
Executable
BIN
Binary file not shown.
@@ -0,0 +1,30 @@
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <sys/mman.h>
|
||||
#include <sys/types.h>
|
||||
#include <sys/stat.h>
|
||||
#include <fcntl.h>
|
||||
#include <unistd.h>
|
||||
|
||||
int main(void)
|
||||
{
|
||||
int fd = open("1.bat", O_RDWR|O_CREAT|O_TRUNC, 0777);
|
||||
ftruncate(fd, 5000);
|
||||
|
||||
int pagesize = sysconf(_SC_PAGE_SIZE);
|
||||
printf("pagesize = %d\n", pagesize);
|
||||
|
||||
char *addr_mmap_p = mmap(NULL, pagesize, PROT_WRITE, MAP_PRIVATE, fd, 0);
|
||||
char *addr_mmap_s = mmap(NULL, pagesize, PROT_WRITE, MAP_SHARED, fd, 0);
|
||||
unsigned long *addr_malloc = malloc(sizeof(unsigned long));
|
||||
|
||||
printf("addr_mmap_p: %p, addr_mmap_s: %p, addr_malloc: %p\n",
|
||||
addr_mmap_p, addr_mmap_s, addr_malloc);
|
||||
|
||||
addr_mmap_p[pagesize - 1] = 0;
|
||||
addr_mmap_s[pagesize - 1] = 0;
|
||||
*addr_malloc = 0;
|
||||
char c = getchar();
|
||||
|
||||
return 0;
|
||||
}
|
||||
Reference in New Issue
Block a user