From 151377c60cc1998fc0c6bb3b3bd6cfbfbae3c5cd Mon Sep 17 00:00:00 2001 From: gatieme Date: Sat, 30 Jul 2016 23:00:52 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BD=BF=E7=94=A8cdev=5Fadd=E6=B3=A8=E5=86=8C?= =?UTF-8?q?=E5=AD=97=E7=AC=A6=E8=AE=BE=E5=A4=87...?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Makefile | 2 +- .../1drivermodel/1-3register_chrdev/Makefile | 30 ++ .../1-3register_chrdev/demo/.demo.ko.cmd | 1 - .../1-3register_chrdev/demo/.demo.mod.o.cmd | 289 ----------- .../1-3register_chrdev/demo/.demo.o.cmd | 459 ------------------ .../demo/.tmp_versions/demo.mod | 2 - .../1drivermodel/1-3register_chrdev/demo/1 | 80 +++ .../1-3register_chrdev/demo/Makefile | 80 +++ .../1-3register_chrdev/demo/Module.symvers | 0 .../1-3register_chrdev/demo/demo.c | 6 +- .../1-3register_chrdev/demo/demo.h | 9 +- .../1-3register_chrdev/demo/demo.mod.c | 21 - .../1-3register_chrdev/demo/modules.order | 1 - .../1-3register_chrdev/test/Makefile | 25 + .../1drivermodel/1-3register_chrdev/test/test | Bin 9909 -> 0 bytes .../1-3register_chrdev/test/test.c | 92 ++-- 16 files changed, 278 insertions(+), 819 deletions(-) create mode 100644 books/fengguojin/src/1drivermodel/1-3register_chrdev/Makefile delete mode 100644 books/fengguojin/src/1drivermodel/1-3register_chrdev/demo/.demo.ko.cmd delete mode 100644 books/fengguojin/src/1drivermodel/1-3register_chrdev/demo/.demo.mod.o.cmd delete mode 100644 books/fengguojin/src/1drivermodel/1-3register_chrdev/demo/.demo.o.cmd delete mode 100644 books/fengguojin/src/1drivermodel/1-3register_chrdev/demo/.tmp_versions/demo.mod create mode 100644 books/fengguojin/src/1drivermodel/1-3register_chrdev/demo/1 create mode 100644 books/fengguojin/src/1drivermodel/1-3register_chrdev/demo/Makefile delete mode 100644 books/fengguojin/src/1drivermodel/1-3register_chrdev/demo/Module.symvers delete mode 100644 books/fengguojin/src/1drivermodel/1-3register_chrdev/demo/demo.mod.c delete mode 100644 books/fengguojin/src/1drivermodel/1-3register_chrdev/demo/modules.order create mode 100644 books/fengguojin/src/1drivermodel/1-3register_chrdev/test/Makefile delete mode 100644 books/fengguojin/src/1drivermodel/1-3register_chrdev/test/test diff --git a/Makefile b/Makefile index 3869e54..b57003f 100644 --- a/Makefile +++ b/Makefile @@ -2,7 +2,7 @@ all:github -COMMIT="完善了thread_info的学习..." +COMMIT="使用cdev_add注册字符设备..." .PHONY : github github: diff --git a/books/fengguojin/src/1drivermodel/1-3register_chrdev/Makefile b/books/fengguojin/src/1drivermodel/1-3register_chrdev/Makefile new file mode 100644 index 0000000..c6ffeb7 --- /dev/null +++ b/books/fengguojin/src/1drivermodel/1-3register_chrdev/Makefile @@ -0,0 +1,30 @@ +ROOT=. + + +DIRS= demo test + +all: + for i in $(DIRS); do \ + (cd $$i && echo "making $$i" && $(MAKE) ) || exit 1; \ + done + + +clean: + for i in $(DIRS); do \ + (cd $$i && echo "cleaning $$i" && $(MAKE) clean) || exit 1; \ + done + + +insmod: + cd demo && make insmod + +rmmod: + cd demo && make rmmod + +reinsmod: + cd demo && make reinsmod + +run : + sudo ./test/test + + diff --git a/books/fengguojin/src/1drivermodel/1-3register_chrdev/demo/.demo.ko.cmd b/books/fengguojin/src/1drivermodel/1-3register_chrdev/demo/.demo.ko.cmd deleted file mode 100644 index 17fc869..0000000 --- a/books/fengguojin/src/1drivermodel/1-3register_chrdev/demo/.demo.ko.cmd +++ /dev/null @@ -1 +0,0 @@ -cmd_/mnt/hgfs/windows/src/1drivermodel/1-3register_chrdev/demo/demo.ko := /usr/local/arm/4.2.2-eabi/usr/bin/arm-linux-ld -EL -r -o /mnt/hgfs/windows/src/1drivermodel/1-3register_chrdev/demo/demo.ko /mnt/hgfs/windows/src/1drivermodel/1-3register_chrdev/demo/demo.o /mnt/hgfs/windows/src/1drivermodel/1-3register_chrdev/demo/demo.mod.o diff --git a/books/fengguojin/src/1drivermodel/1-3register_chrdev/demo/.demo.mod.o.cmd b/books/fengguojin/src/1drivermodel/1-3register_chrdev/demo/.demo.mod.o.cmd deleted file mode 100644 index 4368912..0000000 --- a/books/fengguojin/src/1drivermodel/1-3register_chrdev/demo/.demo.mod.o.cmd +++ /dev/null @@ -1,289 +0,0 @@ -cmd_/mnt/hgfs/windows/src/1drivermodel/1-3register_chrdev/demo/demo.mod.o := arm-linux-gcc -Wp,-MD,/mnt/hgfs/windows/src/1drivermodel/1-3register_chrdev/demo/.demo.mod.o.d -nostdinc -isystem /usr/local/arm/4.2.2-eabi/usr/bin-ccache/../lib/gcc/arm-unknown-linux-gnueabi/4.2.2/include -D__KERNEL__ -Iinclude -I/mnt/v/urbetter-linux2.6.28-v1.0/arch/arm/include -include include/linux/autoconf.h -mlittle-endian -Iarch/arm/mach-s3c6400/include -Iarch/arm/mach-s3c6410/include -Iarch/arm/plat-s3c64xx/include -Iarch/arm/plat-s3c/include -Wall -Wundef -Wstrict-prototypes -Wno-trigraphs -fno-strict-aliasing -fno-common -Werror-implicit-function-declaration -Os -marm -fno-omit-frame-pointer -mapcs -mno-sched-prolog -mabi=aapcs-linux -mno-thumb-interwork -D__LINUX_ARM_ARCH__=6 -march=armv6k -mtune=arm1136j-s -msoft-float -Uarm -fno-stack-protector -fno-omit-frame-pointer -fno-optimize-sibling-calls -g -Wdeclaration-after-statement -Wno-pointer-sign -D"KBUILD_STR(s)=\#s" -D"KBUILD_BASENAME=KBUILD_STR(demo.mod)" -D"KBUILD_MODNAME=KBUILD_STR(demo)" -DMODULE -c -o /mnt/hgfs/windows/src/1drivermodel/1-3register_chrdev/demo/demo.mod.o /mnt/hgfs/windows/src/1drivermodel/1-3register_chrdev/demo/demo.mod.c - -deps_/mnt/hgfs/windows/src/1drivermodel/1-3register_chrdev/demo/demo.mod.o := \ - /mnt/hgfs/windows/src/1drivermodel/1-3register_chrdev/demo/demo.mod.c \ - $(wildcard include/config/module/unload.h) \ - include/linux/module.h \ - $(wildcard include/config/modules.h) \ - $(wildcard include/config/modversions.h) \ - $(wildcard include/config/unused/symbols.h) \ - $(wildcard include/config/generic/bug.h) \ - $(wildcard include/config/kallsyms.h) \ - $(wildcard include/config/markers.h) \ - $(wildcard include/config/tracepoints.h) \ - $(wildcard include/config/sysfs.h) \ - include/linux/list.h \ - $(wildcard include/config/debug/list.h) \ - include/linux/stddef.h \ - include/linux/compiler.h \ - $(wildcard include/config/enable/must/check.h) \ - $(wildcard include/config/enable/warn/deprecated.h) \ - include/linux/compiler-gcc4.h \ - include/linux/compiler-gcc.h \ - $(wildcard include/config/arch/supports/optimized/inlining.h) \ - $(wildcard include/config/optimize/inlining.h) \ - include/linux/poison.h \ - include/linux/prefetch.h \ - include/linux/types.h \ - $(wildcard include/config/uid16.h) \ - $(wildcard include/config/lbd.h) \ - $(wildcard include/config/lsf.h) \ - $(wildcard include/config/phys/addr/t/64bit.h) \ - include/linux/posix_types.h \ - /mnt/v/urbetter-linux2.6.28-v1.0/arch/arm/include/asm/posix_types.h \ - /mnt/v/urbetter-linux2.6.28-v1.0/arch/arm/include/asm/types.h \ - include/asm-generic/int-ll64.h \ - /mnt/v/urbetter-linux2.6.28-v1.0/arch/arm/include/asm/processor.h \ - $(wildcard include/config/mmu.h) \ - /mnt/v/urbetter-linux2.6.28-v1.0/arch/arm/include/asm/ptrace.h \ - $(wildcard include/config/arm/thumb.h) \ - $(wildcard include/config/smp.h) \ - /mnt/v/urbetter-linux2.6.28-v1.0/arch/arm/include/asm/hwcap.h \ - /mnt/v/urbetter-linux2.6.28-v1.0/arch/arm/include/asm/cache.h \ - /mnt/v/urbetter-linux2.6.28-v1.0/arch/arm/include/asm/system.h \ - $(wildcard include/config/cpu/xsc3.h) \ - $(wildcard include/config/cpu/sa1100.h) \ - $(wildcard include/config/cpu/sa110.h) \ - /mnt/v/urbetter-linux2.6.28-v1.0/arch/arm/include/asm/memory.h \ - $(wildcard include/config/page/offset.h) \ - $(wildcard include/config/dram/size.h) \ - $(wildcard include/config/dram/base.h) \ - $(wildcard include/config/zone/dma.h) \ - $(wildcard include/config/discontigmem.h) \ - $(wildcard include/config/sparsemem.h) \ - include/linux/const.h \ - arch/arm/mach-s3c6400/include/mach/memory.h \ - /mnt/v/urbetter-linux2.6.28-v1.0/arch/arm/include/asm/sizes.h \ - include/asm-generic/memory_model.h \ - $(wildcard include/config/flatmem.h) \ - $(wildcard include/config/sparsemem/vmemmap.h) \ - $(wildcard include/config/out/of/line/pfn/to/page.h) \ - include/linux/linkage.h \ - /mnt/v/urbetter-linux2.6.28-v1.0/arch/arm/include/asm/linkage.h \ - include/linux/irqflags.h \ - $(wildcard include/config/trace/irqflags.h) \ - $(wildcard include/config/irqsoff/tracer.h) \ - $(wildcard include/config/preempt/tracer.h) \ - $(wildcard include/config/trace/irqflags/support.h) \ - $(wildcard include/config/x86.h) \ - include/linux/typecheck.h \ - /mnt/v/urbetter-linux2.6.28-v1.0/arch/arm/include/asm/irqflags.h \ - include/asm-generic/cmpxchg-local.h \ - include/asm-generic/cmpxchg.h \ - include/linux/stat.h \ - /mnt/v/urbetter-linux2.6.28-v1.0/arch/arm/include/asm/stat.h \ - include/linux/time.h \ - include/linux/cache.h \ - $(wildcard include/config/arch/has/cache/line/size.h) \ - include/linux/kernel.h \ - $(wildcard include/config/preempt/voluntary.h) \ - $(wildcard include/config/debug/spinlock/sleep.h) \ - $(wildcard include/config/printk.h) \ - $(wildcard include/config/dynamic/printk/debug.h) \ - $(wildcard include/config/numa.h) \ - $(wildcard include/config/ftrace/mcount/record.h) \ - /usr/local/arm/4.2.2-eabi/usr/bin-ccache/../lib/gcc/arm-unknown-linux-gnueabi/4.2.2/include/stdarg.h \ - include/linux/bitops.h \ - $(wildcard include/config/generic/find/first/bit.h) \ - $(wildcard include/config/generic/find/next/bit.h) \ - /mnt/v/urbetter-linux2.6.28-v1.0/arch/arm/include/asm/bitops.h \ - include/asm-generic/bitops/non-atomic.h \ - include/asm-generic/bitops/fls64.h \ - include/asm-generic/bitops/sched.h \ - include/asm-generic/bitops/hweight.h \ - include/asm-generic/bitops/lock.h \ - include/linux/log2.h \ - $(wildcard include/config/arch/has/ilog2/u32.h) \ - $(wildcard include/config/arch/has/ilog2/u64.h) \ - include/linux/ratelimit.h \ - include/linux/param.h \ - /mnt/v/urbetter-linux2.6.28-v1.0/arch/arm/include/asm/param.h \ - $(wildcard include/config/hz.h) \ - include/linux/dynamic_printk.h \ - /mnt/v/urbetter-linux2.6.28-v1.0/arch/arm/include/asm/byteorder.h \ - include/linux/byteorder/little_endian.h \ - include/linux/byteorder/swab.h \ - include/linux/byteorder/swabb.h \ - include/linux/byteorder/generic.h \ - /mnt/v/urbetter-linux2.6.28-v1.0/arch/arm/include/asm/bug.h \ - $(wildcard include/config/bug.h) \ - $(wildcard include/config/debug/bugverbose.h) \ - include/asm-generic/bug.h \ - /mnt/v/urbetter-linux2.6.28-v1.0/arch/arm/include/asm/div64.h \ - include/linux/seqlock.h \ - include/linux/spinlock.h \ - $(wildcard include/config/debug/spinlock.h) \ - $(wildcard include/config/generic/lockbreak.h) \ - $(wildcard include/config/preempt.h) \ - $(wildcard include/config/debug/lock/alloc.h) \ - include/linux/preempt.h \ - $(wildcard include/config/debug/preempt.h) \ - $(wildcard include/config/preempt/notifiers.h) \ - include/linux/thread_info.h \ - $(wildcard include/config/compat.h) \ - /mnt/v/urbetter-linux2.6.28-v1.0/arch/arm/include/asm/thread_info.h \ - $(wildcard include/config/arm/thumbee.h) \ - /mnt/v/urbetter-linux2.6.28-v1.0/arch/arm/include/asm/fpstate.h \ - $(wildcard include/config/vfpv3.h) \ - $(wildcard include/config/iwmmxt.h) \ - /mnt/v/urbetter-linux2.6.28-v1.0/arch/arm/include/asm/domain.h \ - $(wildcard include/config/io/36.h) \ - include/linux/stringify.h \ - include/linux/bottom_half.h \ - include/linux/spinlock_types.h \ - include/linux/spinlock_types_up.h \ - include/linux/lockdep.h \ - $(wildcard include/config/lockdep.h) \ - $(wildcard include/config/lock/stat.h) \ - $(wildcard include/config/generic/hardirqs.h) \ - $(wildcard include/config/prove/locking.h) \ - include/linux/spinlock_up.h \ - include/linux/spinlock_api_smp.h \ - /mnt/v/urbetter-linux2.6.28-v1.0/arch/arm/include/asm/atomic.h \ - include/asm-generic/atomic.h \ - include/linux/math64.h \ - include/linux/kmod.h \ - include/linux/gfp.h \ - $(wildcard include/config/zone/dma32.h) \ - $(wildcard include/config/highmem.h) \ - include/linux/mmzone.h \ - $(wildcard include/config/force/max/zoneorder.h) \ - $(wildcard include/config/unevictable/lru.h) \ - $(wildcard include/config/memory/hotplug.h) \ - $(wildcard include/config/arch/populates/node/map.h) \ - $(wildcard include/config/flat/node/mem/map.h) \ - $(wildcard include/config/cgroup/mem/res/ctlr.h) \ - $(wildcard include/config/have/memory/present.h) \ - $(wildcard include/config/need/node/memmap/size.h) \ - $(wildcard include/config/need/multiple/nodes.h) \ - $(wildcard include/config/have/arch/early/pfn/to/nid.h) \ - $(wildcard include/config/sparsemem/extreme.h) \ - $(wildcard include/config/nodes/span/other/nodes.h) \ - $(wildcard include/config/holes/in/zone.h) \ - include/linux/wait.h \ - /mnt/v/urbetter-linux2.6.28-v1.0/arch/arm/include/asm/current.h \ - include/linux/threads.h \ - $(wildcard include/config/nr/cpus.h) \ - $(wildcard include/config/base/small.h) \ - include/linux/numa.h \ - $(wildcard include/config/nodes/shift.h) \ - include/linux/init.h \ - $(wildcard include/config/hotplug.h) \ - include/linux/nodemask.h \ - include/linux/bitmap.h \ - include/linux/string.h \ - /mnt/v/urbetter-linux2.6.28-v1.0/arch/arm/include/asm/string.h \ - include/linux/pageblock-flags.h \ - $(wildcard include/config/hugetlb/page.h) \ - $(wildcard include/config/hugetlb/page/size/variable.h) \ - include/linux/bounds.h \ - /mnt/v/urbetter-linux2.6.28-v1.0/arch/arm/include/asm/page.h \ - $(wildcard include/config/cpu/copy/v3.h) \ - $(wildcard include/config/cpu/copy/v4wt.h) \ - $(wildcard include/config/cpu/copy/v4wb.h) \ - $(wildcard include/config/cpu/copy/feroceon.h) \ - $(wildcard include/config/cpu/xscale.h) \ - $(wildcard include/config/cpu/copy/v6.h) \ - $(wildcard include/config/aeabi.h) \ - /mnt/v/urbetter-linux2.6.28-v1.0/arch/arm/include/asm/glue.h \ - $(wildcard include/config/cpu/arm610.h) \ - $(wildcard include/config/cpu/arm710.h) \ - $(wildcard include/config/cpu/abrt/lv4t.h) \ - $(wildcard include/config/cpu/abrt/ev4.h) \ - $(wildcard include/config/cpu/abrt/ev4t.h) \ - $(wildcard include/config/cpu/abrt/ev5tj.h) \ - $(wildcard include/config/cpu/abrt/ev5t.h) \ - $(wildcard include/config/cpu/abrt/ev6.h) \ - $(wildcard include/config/cpu/abrt/ev7.h) \ - $(wildcard include/config/cpu/pabrt/ifar.h) \ - $(wildcard include/config/cpu/pabrt/noifar.h) \ - include/asm-generic/page.h \ - include/linux/memory_hotplug.h \ - $(wildcard include/config/have/arch/nodedata/extension.h) \ - $(wildcard include/config/memory/hotremove.h) \ - include/linux/notifier.h \ - include/linux/errno.h \ - /mnt/v/urbetter-linux2.6.28-v1.0/arch/arm/include/asm/errno.h \ - include/asm-generic/errno.h \ - include/asm-generic/errno-base.h \ - include/linux/mutex.h \ - $(wildcard include/config/debug/mutexes.h) \ - include/linux/mutex-debug.h \ - include/linux/rwsem.h \ - $(wildcard include/config/rwsem/generic/spinlock.h) \ - include/linux/rwsem-spinlock.h \ - include/linux/srcu.h \ - include/linux/topology.h \ - $(wildcard include/config/sched/smt.h) \ - $(wildcard include/config/sched/mc.h) \ - include/linux/cpumask.h \ - $(wildcard include/config/hotplug/cpu.h) \ - $(wildcard include/config/debug/per/cpu/maps.h) \ - $(wildcard include/config/cpumask/offstack.h) \ - include/linux/smp.h \ - $(wildcard include/config/use/generic/smp/helpers.h) \ - /mnt/v/urbetter-linux2.6.28-v1.0/arch/arm/include/asm/topology.h \ - include/asm-generic/topology.h \ - include/linux/elf.h \ - include/linux/elf-em.h \ - /mnt/v/urbetter-linux2.6.28-v1.0/arch/arm/include/asm/elf.h \ - /mnt/v/urbetter-linux2.6.28-v1.0/arch/arm/include/asm/user.h \ - include/linux/kobject.h \ - include/linux/sysfs.h \ - include/linux/kref.h \ - include/linux/moduleparam.h \ - $(wildcard include/config/alpha.h) \ - $(wildcard include/config/ia64.h) \ - $(wildcard include/config/ppc64.h) \ - include/linux/marker.h \ - include/linux/tracepoint.h \ - include/linux/rcupdate.h \ - $(wildcard include/config/classic/rcu.h) \ - include/linux/percpu.h \ - include/linux/slab.h \ - $(wildcard include/config/slab/debug.h) \ - $(wildcard include/config/debug/objects.h) \ - $(wildcard include/config/slub.h) \ - $(wildcard include/config/slob.h) \ - $(wildcard include/config/debug/slab.h) \ - include/linux/slub_def.h \ - $(wildcard include/config/slub/stats.h) \ - $(wildcard include/config/slub/debug.h) \ - include/linux/workqueue.h \ - include/linux/timer.h \ - $(wildcard include/config/timer/stats.h) \ - $(wildcard include/config/debug/objects/timers.h) \ - include/linux/ktime.h \ - $(wildcard include/config/ktime/scalar.h) \ - include/linux/jiffies.h \ - include/linux/timex.h \ - $(wildcard include/config/no/hz.h) \ - /mnt/v/urbetter-linux2.6.28-v1.0/arch/arm/include/asm/timex.h \ - arch/arm/plat-s3c/include/mach/timex.h \ - include/linux/debugobjects.h \ - $(wildcard include/config/debug/objects/free.h) \ - /mnt/v/urbetter-linux2.6.28-v1.0/arch/arm/include/asm/percpu.h \ - include/asm-generic/percpu.h \ - $(wildcard include/config/have/setup/per/cpu/area.h) \ - include/linux/completion.h \ - include/linux/rcuclassic.h \ - $(wildcard include/config/rcu/cpu/stall/detector.h) \ - /mnt/v/urbetter-linux2.6.28-v1.0/arch/arm/include/asm/local.h \ - include/asm-generic/local.h \ - include/linux/hardirq.h \ - $(wildcard include/config/virt/cpu/accounting.h) \ - $(wildcard include/config/preempt/rcu.h) \ - include/linux/smp_lock.h \ - $(wildcard include/config/lock/kernel.h) \ - /mnt/v/urbetter-linux2.6.28-v1.0/arch/arm/include/asm/hardirq.h \ - /mnt/v/urbetter-linux2.6.28-v1.0/arch/arm/include/asm/irq.h \ - arch/arm/mach-s3c6400/include/mach/irqs.h \ - arch/arm/plat-s3c64xx/include/plat/irqs.h \ - include/linux/irq_cpustat.h \ - /mnt/v/urbetter-linux2.6.28-v1.0/arch/arm/include/asm/module.h \ - include/linux/vermagic.h \ - include/linux/utsrelease.h \ - -/mnt/hgfs/windows/src/1drivermodel/1-3register_chrdev/demo/demo.mod.o: $(deps_/mnt/hgfs/windows/src/1drivermodel/1-3register_chrdev/demo/demo.mod.o) - -$(deps_/mnt/hgfs/windows/src/1drivermodel/1-3register_chrdev/demo/demo.mod.o): diff --git a/books/fengguojin/src/1drivermodel/1-3register_chrdev/demo/.demo.o.cmd b/books/fengguojin/src/1drivermodel/1-3register_chrdev/demo/.demo.o.cmd deleted file mode 100644 index 0d8dcb5..0000000 --- a/books/fengguojin/src/1drivermodel/1-3register_chrdev/demo/.demo.o.cmd +++ /dev/null @@ -1,459 +0,0 @@ -cmd_/mnt/hgfs/windows/src/1drivermodel/1-3register_chrdev/demo/demo.o := arm-linux-gcc -Wp,-MD,/mnt/hgfs/windows/src/1drivermodel/1-3register_chrdev/demo/.demo.o.d -nostdinc -isystem /usr/local/arm/4.2.2-eabi/usr/bin-ccache/../lib/gcc/arm-unknown-linux-gnueabi/4.2.2/include -D__KERNEL__ -Iinclude -I/mnt/v/urbetter-linux2.6.28-v1.0/arch/arm/include -include include/linux/autoconf.h -mlittle-endian -Iarch/arm/mach-s3c6400/include -Iarch/arm/mach-s3c6410/include -Iarch/arm/plat-s3c64xx/include -Iarch/arm/plat-s3c/include -Wall -Wundef -Wstrict-prototypes -Wno-trigraphs -fno-strict-aliasing -fno-common -Werror-implicit-function-declaration -Os -marm -fno-omit-frame-pointer -mapcs -mno-sched-prolog -mabi=aapcs-linux -mno-thumb-interwork -D__LINUX_ARM_ARCH__=6 -march=armv6k -mtune=arm1136j-s -msoft-float -Uarm -fno-stack-protector -fno-omit-frame-pointer -fno-optimize-sibling-calls -g -Wdeclaration-after-statement -Wno-pointer-sign -DMODULE -D"KBUILD_STR(s)=\#s" -D"KBUILD_BASENAME=KBUILD_STR(demo)" -D"KBUILD_MODNAME=KBUILD_STR(demo)" -c -o /mnt/hgfs/windows/src/1drivermodel/1-3register_chrdev/demo/demo.o /mnt/hgfs/windows/src/1drivermodel/1-3register_chrdev/demo/demo.c - -deps_/mnt/hgfs/windows/src/1drivermodel/1-3register_chrdev/demo/demo.o := \ - /mnt/hgfs/windows/src/1drivermodel/1-3register_chrdev/demo/demo.c \ - include/linux/module.h \ - $(wildcard include/config/modules.h) \ - $(wildcard include/config/modversions.h) \ - $(wildcard include/config/unused/symbols.h) \ - $(wildcard include/config/generic/bug.h) \ - $(wildcard include/config/kallsyms.h) \ - $(wildcard include/config/markers.h) \ - $(wildcard include/config/tracepoints.h) \ - $(wildcard include/config/module/unload.h) \ - $(wildcard include/config/sysfs.h) \ - include/linux/list.h \ - $(wildcard include/config/debug/list.h) \ - include/linux/stddef.h \ - include/linux/compiler.h \ - $(wildcard include/config/enable/must/check.h) \ - $(wildcard include/config/enable/warn/deprecated.h) \ - include/linux/compiler-gcc4.h \ - include/linux/compiler-gcc.h \ - $(wildcard include/config/arch/supports/optimized/inlining.h) \ - $(wildcard include/config/optimize/inlining.h) \ - include/linux/poison.h \ - include/linux/prefetch.h \ - include/linux/types.h \ - $(wildcard include/config/uid16.h) \ - $(wildcard include/config/lbd.h) \ - $(wildcard include/config/lsf.h) \ - $(wildcard include/config/phys/addr/t/64bit.h) \ - include/linux/posix_types.h \ - /mnt/v/urbetter-linux2.6.28-v1.0/arch/arm/include/asm/posix_types.h \ - /mnt/v/urbetter-linux2.6.28-v1.0/arch/arm/include/asm/types.h \ - include/asm-generic/int-ll64.h \ - /mnt/v/urbetter-linux2.6.28-v1.0/arch/arm/include/asm/processor.h \ - $(wildcard include/config/mmu.h) \ - /mnt/v/urbetter-linux2.6.28-v1.0/arch/arm/include/asm/ptrace.h \ - $(wildcard include/config/arm/thumb.h) \ - $(wildcard include/config/smp.h) \ - /mnt/v/urbetter-linux2.6.28-v1.0/arch/arm/include/asm/hwcap.h \ - /mnt/v/urbetter-linux2.6.28-v1.0/arch/arm/include/asm/cache.h \ - /mnt/v/urbetter-linux2.6.28-v1.0/arch/arm/include/asm/system.h \ - $(wildcard include/config/cpu/xsc3.h) \ - $(wildcard include/config/cpu/sa1100.h) \ - $(wildcard include/config/cpu/sa110.h) \ - /mnt/v/urbetter-linux2.6.28-v1.0/arch/arm/include/asm/memory.h \ - $(wildcard include/config/page/offset.h) \ - $(wildcard include/config/dram/size.h) \ - $(wildcard include/config/dram/base.h) \ - $(wildcard include/config/zone/dma.h) \ - $(wildcard include/config/discontigmem.h) \ - $(wildcard include/config/sparsemem.h) \ - include/linux/const.h \ - arch/arm/mach-s3c6400/include/mach/memory.h \ - /mnt/v/urbetter-linux2.6.28-v1.0/arch/arm/include/asm/sizes.h \ - include/asm-generic/memory_model.h \ - $(wildcard include/config/flatmem.h) \ - $(wildcard include/config/sparsemem/vmemmap.h) \ - $(wildcard include/config/out/of/line/pfn/to/page.h) \ - include/linux/linkage.h \ - /mnt/v/urbetter-linux2.6.28-v1.0/arch/arm/include/asm/linkage.h \ - include/linux/irqflags.h \ - $(wildcard include/config/trace/irqflags.h) \ - $(wildcard include/config/irqsoff/tracer.h) \ - $(wildcard include/config/preempt/tracer.h) \ - $(wildcard include/config/trace/irqflags/support.h) \ - $(wildcard include/config/x86.h) \ - include/linux/typecheck.h \ - /mnt/v/urbetter-linux2.6.28-v1.0/arch/arm/include/asm/irqflags.h \ - include/asm-generic/cmpxchg-local.h \ - include/asm-generic/cmpxchg.h \ - include/linux/stat.h \ - /mnt/v/urbetter-linux2.6.28-v1.0/arch/arm/include/asm/stat.h \ - include/linux/time.h \ - include/linux/cache.h \ - $(wildcard include/config/arch/has/cache/line/size.h) \ - include/linux/kernel.h \ - $(wildcard include/config/preempt/voluntary.h) \ - $(wildcard include/config/debug/spinlock/sleep.h) \ - $(wildcard include/config/printk.h) \ - $(wildcard include/config/dynamic/printk/debug.h) \ - $(wildcard include/config/numa.h) \ - $(wildcard include/config/ftrace/mcount/record.h) \ - /usr/local/arm/4.2.2-eabi/usr/bin-ccache/../lib/gcc/arm-unknown-linux-gnueabi/4.2.2/include/stdarg.h \ - include/linux/bitops.h \ - $(wildcard include/config/generic/find/first/bit.h) \ - $(wildcard include/config/generic/find/next/bit.h) \ - /mnt/v/urbetter-linux2.6.28-v1.0/arch/arm/include/asm/bitops.h \ - include/asm-generic/bitops/non-atomic.h \ - include/asm-generic/bitops/fls64.h \ - include/asm-generic/bitops/sched.h \ - include/asm-generic/bitops/hweight.h \ - include/asm-generic/bitops/lock.h \ - include/linux/log2.h \ - $(wildcard include/config/arch/has/ilog2/u32.h) \ - $(wildcard include/config/arch/has/ilog2/u64.h) \ - include/linux/ratelimit.h \ - include/linux/param.h \ - /mnt/v/urbetter-linux2.6.28-v1.0/arch/arm/include/asm/param.h \ - $(wildcard include/config/hz.h) \ - include/linux/dynamic_printk.h \ - /mnt/v/urbetter-linux2.6.28-v1.0/arch/arm/include/asm/byteorder.h \ - include/linux/byteorder/little_endian.h \ - include/linux/byteorder/swab.h \ - include/linux/byteorder/swabb.h \ - include/linux/byteorder/generic.h \ - /mnt/v/urbetter-linux2.6.28-v1.0/arch/arm/include/asm/bug.h \ - $(wildcard include/config/bug.h) \ - $(wildcard include/config/debug/bugverbose.h) \ - include/asm-generic/bug.h \ - /mnt/v/urbetter-linux2.6.28-v1.0/arch/arm/include/asm/div64.h \ - include/linux/seqlock.h \ - include/linux/spinlock.h \ - $(wildcard include/config/debug/spinlock.h) \ - $(wildcard include/config/generic/lockbreak.h) \ - $(wildcard include/config/preempt.h) \ - $(wildcard include/config/debug/lock/alloc.h) \ - include/linux/preempt.h \ - $(wildcard include/config/debug/preempt.h) \ - $(wildcard include/config/preempt/notifiers.h) \ - include/linux/thread_info.h \ - $(wildcard include/config/compat.h) \ - /mnt/v/urbetter-linux2.6.28-v1.0/arch/arm/include/asm/thread_info.h \ - $(wildcard include/config/arm/thumbee.h) \ - /mnt/v/urbetter-linux2.6.28-v1.0/arch/arm/include/asm/fpstate.h \ - $(wildcard include/config/vfpv3.h) \ - $(wildcard include/config/iwmmxt.h) \ - /mnt/v/urbetter-linux2.6.28-v1.0/arch/arm/include/asm/domain.h \ - $(wildcard include/config/io/36.h) \ - include/linux/stringify.h \ - include/linux/bottom_half.h \ - include/linux/spinlock_types.h \ - include/linux/spinlock_types_up.h \ - include/linux/lockdep.h \ - $(wildcard include/config/lockdep.h) \ - $(wildcard include/config/lock/stat.h) \ - $(wildcard include/config/generic/hardirqs.h) \ - $(wildcard include/config/prove/locking.h) \ - include/linux/spinlock_up.h \ - include/linux/spinlock_api_smp.h \ - /mnt/v/urbetter-linux2.6.28-v1.0/arch/arm/include/asm/atomic.h \ - include/asm-generic/atomic.h \ - include/linux/math64.h \ - include/linux/kmod.h \ - include/linux/gfp.h \ - $(wildcard include/config/zone/dma32.h) \ - $(wildcard include/config/highmem.h) \ - include/linux/mmzone.h \ - $(wildcard include/config/force/max/zoneorder.h) \ - $(wildcard include/config/unevictable/lru.h) \ - $(wildcard include/config/memory/hotplug.h) \ - $(wildcard include/config/arch/populates/node/map.h) \ - $(wildcard include/config/flat/node/mem/map.h) \ - $(wildcard include/config/cgroup/mem/res/ctlr.h) \ - $(wildcard include/config/have/memory/present.h) \ - $(wildcard include/config/need/node/memmap/size.h) \ - $(wildcard include/config/need/multiple/nodes.h) \ - $(wildcard include/config/have/arch/early/pfn/to/nid.h) \ - $(wildcard include/config/sparsemem/extreme.h) \ - $(wildcard include/config/nodes/span/other/nodes.h) \ - $(wildcard include/config/holes/in/zone.h) \ - include/linux/wait.h \ - /mnt/v/urbetter-linux2.6.28-v1.0/arch/arm/include/asm/current.h \ - include/linux/threads.h \ - $(wildcard include/config/nr/cpus.h) \ - $(wildcard include/config/base/small.h) \ - include/linux/numa.h \ - $(wildcard include/config/nodes/shift.h) \ - include/linux/init.h \ - $(wildcard include/config/hotplug.h) \ - include/linux/nodemask.h \ - include/linux/bitmap.h \ - include/linux/string.h \ - /mnt/v/urbetter-linux2.6.28-v1.0/arch/arm/include/asm/string.h \ - include/linux/pageblock-flags.h \ - $(wildcard include/config/hugetlb/page.h) \ - $(wildcard include/config/hugetlb/page/size/variable.h) \ - include/linux/bounds.h \ - /mnt/v/urbetter-linux2.6.28-v1.0/arch/arm/include/asm/page.h \ - $(wildcard include/config/cpu/copy/v3.h) \ - $(wildcard include/config/cpu/copy/v4wt.h) \ - $(wildcard include/config/cpu/copy/v4wb.h) \ - $(wildcard include/config/cpu/copy/feroceon.h) \ - $(wildcard include/config/cpu/xscale.h) \ - $(wildcard include/config/cpu/copy/v6.h) \ - $(wildcard include/config/aeabi.h) \ - /mnt/v/urbetter-linux2.6.28-v1.0/arch/arm/include/asm/glue.h \ - $(wildcard include/config/cpu/arm610.h) \ - $(wildcard include/config/cpu/arm710.h) \ - $(wildcard include/config/cpu/abrt/lv4t.h) \ - $(wildcard include/config/cpu/abrt/ev4.h) \ - $(wildcard include/config/cpu/abrt/ev4t.h) \ - $(wildcard include/config/cpu/abrt/ev5tj.h) \ - $(wildcard include/config/cpu/abrt/ev5t.h) \ - $(wildcard include/config/cpu/abrt/ev6.h) \ - $(wildcard include/config/cpu/abrt/ev7.h) \ - $(wildcard include/config/cpu/pabrt/ifar.h) \ - $(wildcard include/config/cpu/pabrt/noifar.h) \ - include/asm-generic/page.h \ - include/linux/memory_hotplug.h \ - $(wildcard include/config/have/arch/nodedata/extension.h) \ - $(wildcard include/config/memory/hotremove.h) \ - include/linux/notifier.h \ - include/linux/errno.h \ - /mnt/v/urbetter-linux2.6.28-v1.0/arch/arm/include/asm/errno.h \ - include/asm-generic/errno.h \ - include/asm-generic/errno-base.h \ - include/linux/mutex.h \ - $(wildcard include/config/debug/mutexes.h) \ - include/linux/mutex-debug.h \ - include/linux/rwsem.h \ - $(wildcard include/config/rwsem/generic/spinlock.h) \ - include/linux/rwsem-spinlock.h \ - include/linux/srcu.h \ - include/linux/topology.h \ - $(wildcard include/config/sched/smt.h) \ - $(wildcard include/config/sched/mc.h) \ - include/linux/cpumask.h \ - $(wildcard include/config/hotplug/cpu.h) \ - $(wildcard include/config/debug/per/cpu/maps.h) \ - $(wildcard include/config/cpumask/offstack.h) \ - include/linux/smp.h \ - $(wildcard include/config/use/generic/smp/helpers.h) \ - /mnt/v/urbetter-linux2.6.28-v1.0/arch/arm/include/asm/topology.h \ - include/asm-generic/topology.h \ - include/linux/elf.h \ - include/linux/elf-em.h \ - /mnt/v/urbetter-linux2.6.28-v1.0/arch/arm/include/asm/elf.h \ - /mnt/v/urbetter-linux2.6.28-v1.0/arch/arm/include/asm/user.h \ - include/linux/kobject.h \ - include/linux/sysfs.h \ - include/linux/kref.h \ - include/linux/moduleparam.h \ - $(wildcard include/config/alpha.h) \ - $(wildcard include/config/ia64.h) \ - $(wildcard include/config/ppc64.h) \ - include/linux/marker.h \ - include/linux/tracepoint.h \ - include/linux/rcupdate.h \ - $(wildcard include/config/classic/rcu.h) \ - include/linux/percpu.h \ - include/linux/slab.h \ - $(wildcard include/config/slab/debug.h) \ - $(wildcard include/config/debug/objects.h) \ - $(wildcard include/config/slub.h) \ - $(wildcard include/config/slob.h) \ - $(wildcard include/config/debug/slab.h) \ - include/linux/slub_def.h \ - $(wildcard include/config/slub/stats.h) \ - $(wildcard include/config/slub/debug.h) \ - include/linux/workqueue.h \ - include/linux/timer.h \ - $(wildcard include/config/timer/stats.h) \ - $(wildcard include/config/debug/objects/timers.h) \ - include/linux/ktime.h \ - $(wildcard include/config/ktime/scalar.h) \ - include/linux/jiffies.h \ - include/linux/timex.h \ - $(wildcard include/config/no/hz.h) \ - /mnt/v/urbetter-linux2.6.28-v1.0/arch/arm/include/asm/timex.h \ - arch/arm/plat-s3c/include/mach/timex.h \ - include/linux/debugobjects.h \ - $(wildcard include/config/debug/objects/free.h) \ - /mnt/v/urbetter-linux2.6.28-v1.0/arch/arm/include/asm/percpu.h \ - include/asm-generic/percpu.h \ - $(wildcard include/config/have/setup/per/cpu/area.h) \ - include/linux/completion.h \ - include/linux/rcuclassic.h \ - $(wildcard include/config/rcu/cpu/stall/detector.h) \ - /mnt/v/urbetter-linux2.6.28-v1.0/arch/arm/include/asm/local.h \ - include/asm-generic/local.h \ - include/linux/hardirq.h \ - $(wildcard include/config/virt/cpu/accounting.h) \ - $(wildcard include/config/preempt/rcu.h) \ - include/linux/smp_lock.h \ - $(wildcard include/config/lock/kernel.h) \ - /mnt/v/urbetter-linux2.6.28-v1.0/arch/arm/include/asm/hardirq.h \ - /mnt/v/urbetter-linux2.6.28-v1.0/arch/arm/include/asm/irq.h \ - arch/arm/mach-s3c6400/include/mach/irqs.h \ - arch/arm/plat-s3c64xx/include/plat/irqs.h \ - include/linux/irq_cpustat.h \ - /mnt/v/urbetter-linux2.6.28-v1.0/arch/arm/include/asm/module.h \ - include/linux/fs.h \ - $(wildcard include/config/dnotify.h) \ - $(wildcard include/config/quota.h) \ - $(wildcard include/config/inotify.h) \ - $(wildcard include/config/security.h) \ - $(wildcard include/config/epoll.h) \ - $(wildcard include/config/debug/writecount.h) \ - $(wildcard include/config/file/locking.h) \ - $(wildcard include/config/auditsyscall.h) \ - $(wildcard include/config/block.h) \ - $(wildcard include/config/fs/xip.h) \ - $(wildcard include/config/migration.h) \ - include/linux/limits.h \ - include/linux/ioctl.h \ - /mnt/v/urbetter-linux2.6.28-v1.0/arch/arm/include/asm/ioctl.h \ - include/asm-generic/ioctl.h \ - include/linux/kdev_t.h \ - include/linux/dcache.h \ - $(wildcard include/config/profiling.h) \ - include/linux/rculist.h \ - include/linux/path.h \ - include/linux/radix-tree.h \ - include/linux/prio_tree.h \ - include/linux/pid.h \ - include/linux/capability.h \ - include/linux/semaphore.h \ - include/linux/fiemap.h \ - include/linux/quota.h \ - include/linux/dqblk_xfs.h \ - include/linux/dqblk_v1.h \ - include/linux/dqblk_v2.h \ - include/linux/nfs_fs_i.h \ - include/linux/nfs.h \ - include/linux/sunrpc/msg_prot.h \ - include/linux/fcntl.h \ - /mnt/v/urbetter-linux2.6.28-v1.0/arch/arm/include/asm/fcntl.h \ - include/asm-generic/fcntl.h \ - $(wildcard include/config/64bit.h) \ - include/linux/err.h \ - include/linux/cdev.h \ - include/linux/version.h \ - include/linux/vmalloc.h \ - include/linux/ctype.h \ - include/linux/pagemap.h \ - include/linux/mm.h \ - $(wildcard include/config/sysctl.h) \ - $(wildcard include/config/stack/growsup.h) \ - $(wildcard include/config/swap.h) \ - $(wildcard include/config/shmem.h) \ - $(wildcard include/config/proc/fs.h) \ - $(wildcard include/config/debug/pagealloc.h) \ - $(wildcard include/config/hibernation.h) \ - include/linux/mmdebug.h \ - $(wildcard include/config/debug/vm.h) \ - $(wildcard include/config/debug/virtual.h) \ - include/linux/rbtree.h \ - include/linux/debug_locks.h \ - $(wildcard include/config/debug/locking/api/selftests.h) \ - include/linux/mm_types.h \ - $(wildcard include/config/split/ptlock/cpus.h) \ - $(wildcard include/config/mm/owner.h) \ - $(wildcard include/config/mmu/notifier.h) \ - include/linux/auxvec.h \ - /mnt/v/urbetter-linux2.6.28-v1.0/arch/arm/include/asm/auxvec.h \ - /mnt/v/urbetter-linux2.6.28-v1.0/arch/arm/include/asm/mmu.h \ - $(wildcard include/config/cpu/has/asid.h) \ - /mnt/v/urbetter-linux2.6.28-v1.0/arch/arm/include/asm/pgtable.h \ - include/asm-generic/4level-fixup.h \ - /mnt/v/urbetter-linux2.6.28-v1.0/arch/arm/include/asm/proc-fns.h \ - $(wildcard include/config/cpu/32.h) \ - $(wildcard include/config/cpu/arm7tdmi.h) \ - $(wildcard include/config/cpu/arm720t.h) \ - $(wildcard include/config/cpu/arm740t.h) \ - $(wildcard include/config/cpu/arm9tdmi.h) \ - $(wildcard include/config/cpu/arm920t.h) \ - $(wildcard include/config/cpu/arm922t.h) \ - $(wildcard include/config/cpu/arm925t.h) \ - $(wildcard include/config/cpu/arm926t.h) \ - $(wildcard include/config/cpu/arm940t.h) \ - $(wildcard include/config/cpu/arm946e.h) \ - $(wildcard include/config/cpu/arm1020.h) \ - $(wildcard include/config/cpu/arm1020e.h) \ - $(wildcard include/config/cpu/arm1022.h) \ - $(wildcard include/config/cpu/arm1026.h) \ - $(wildcard include/config/cpu/feroceon.h) \ - $(wildcard include/config/cpu/v6.h) \ - $(wildcard include/config/cpu/v7.h) \ - /mnt/v/urbetter-linux2.6.28-v1.0/arch/arm/include/asm/cpu-single.h \ - arch/arm/plat-s3c/include/mach/vmalloc.h \ - /mnt/v/urbetter-linux2.6.28-v1.0/arch/arm/include/asm/pgtable-hwdef.h \ - include/asm-generic/pgtable.h \ - include/linux/page-flags.h \ - $(wildcard include/config/pageflags/extended.h) \ - $(wildcard include/config/ia64/uncached/allocator.h) \ - $(wildcard include/config/s390.h) \ - include/linux/vmstat.h \ - $(wildcard include/config/vm/event/counters.h) \ - include/linux/highmem.h \ - include/linux/uaccess.h \ - /mnt/v/urbetter-linux2.6.28-v1.0/arch/arm/include/asm/uaccess.h \ - include/linux/sched.h \ - $(wildcard include/config/sched/debug.h) \ - $(wildcard include/config/detect/softlockup.h) \ - $(wildcard include/config/core/dump/default/elf/headers.h) \ - $(wildcard include/config/keys.h) \ - $(wildcard include/config/bsd/process/acct.h) \ - $(wildcard include/config/taskstats.h) \ - $(wildcard include/config/audit.h) \ - $(wildcard include/config/inotify/user.h) \ - $(wildcard include/config/posix/mqueue.h) \ - $(wildcard include/config/user/sched.h) \ - $(wildcard include/config/schedstats.h) \ - $(wildcard include/config/task/delay/acct.h) \ - $(wildcard include/config/fair/group/sched.h) \ - $(wildcard include/config/rt/group/sched.h) \ - $(wildcard include/config/blk/dev/io/trace.h) \ - $(wildcard include/config/cc/stackprotector.h) \ - $(wildcard include/config/sysvipc.h) \ - $(wildcard include/config/rt/mutexes.h) \ - $(wildcard include/config/task/xacct.h) \ - $(wildcard include/config/cpusets.h) \ - $(wildcard include/config/cgroups.h) \ - $(wildcard include/config/futex.h) \ - $(wildcard include/config/fault/injection.h) \ - $(wildcard include/config/latencytop.h) \ - $(wildcard include/config/have/unstable/sched/clock.h) \ - $(wildcard include/config/preempt/bkl.h) \ - $(wildcard include/config/tracing.h) \ - $(wildcard include/config/group/sched.h) \ - /mnt/v/urbetter-linux2.6.28-v1.0/arch/arm/include/asm/cputime.h \ - include/asm-generic/cputime.h \ - include/linux/sem.h \ - include/linux/ipc.h \ - /mnt/v/urbetter-linux2.6.28-v1.0/arch/arm/include/asm/ipcbuf.h \ - /mnt/v/urbetter-linux2.6.28-v1.0/arch/arm/include/asm/sembuf.h \ - include/linux/signal.h \ - /mnt/v/urbetter-linux2.6.28-v1.0/arch/arm/include/asm/signal.h \ - include/asm-generic/signal.h \ - /mnt/v/urbetter-linux2.6.28-v1.0/arch/arm/include/asm/sigcontext.h \ - /mnt/v/urbetter-linux2.6.28-v1.0/arch/arm/include/asm/siginfo.h \ - include/asm-generic/siginfo.h \ - include/linux/fs_struct.h \ - include/linux/proportions.h \ - include/linux/percpu_counter.h \ - include/linux/seccomp.h \ - $(wildcard include/config/seccomp.h) \ - include/linux/rtmutex.h \ - $(wildcard include/config/debug/rt/mutexes.h) \ - include/linux/plist.h \ - $(wildcard include/config/debug/pi/list.h) \ - include/linux/resource.h \ - /mnt/v/urbetter-linux2.6.28-v1.0/arch/arm/include/asm/resource.h \ - include/asm-generic/resource.h \ - include/linux/hrtimer.h \ - $(wildcard include/config/high/res/timers.h) \ - include/linux/task_io_accounting.h \ - $(wildcard include/config/task/io/accounting.h) \ - include/linux/latencytop.h \ - include/linux/cred.h \ - include/linux/aio.h \ - $(wildcard include/config/aio.h) \ - include/linux/aio_abi.h \ - include/linux/uio.h \ - /mnt/v/urbetter-linux2.6.28-v1.0/arch/arm/include/asm/cacheflush.h \ - $(wildcard include/config/cpu/cache/v3.h) \ - $(wildcard include/config/cpu/cache/v4.h) \ - $(wildcard include/config/cpu/cache/v4wb.h) \ - $(wildcard include/config/outer/cache.h) \ - $(wildcard include/config/cpu/cache/vipt.h) \ - /mnt/v/urbetter-linux2.6.28-v1.0/arch/arm/include/asm/shmparam.h \ - /mnt/v/urbetter-linux2.6.28-v1.0/arch/arm/include/asm/kmap_types.h \ - /mnt/hgfs/windows/src/1drivermodel/1-3register_chrdev/demo/demo.h \ - -/mnt/hgfs/windows/src/1drivermodel/1-3register_chrdev/demo/demo.o: $(deps_/mnt/hgfs/windows/src/1drivermodel/1-3register_chrdev/demo/demo.o) - -$(deps_/mnt/hgfs/windows/src/1drivermodel/1-3register_chrdev/demo/demo.o): diff --git a/books/fengguojin/src/1drivermodel/1-3register_chrdev/demo/.tmp_versions/demo.mod b/books/fengguojin/src/1drivermodel/1-3register_chrdev/demo/.tmp_versions/demo.mod deleted file mode 100644 index 9b3893d..0000000 --- a/books/fengguojin/src/1drivermodel/1-3register_chrdev/demo/.tmp_versions/demo.mod +++ /dev/null @@ -1,2 +0,0 @@ -/mnt/hgfs/windows/src/1drivermodel/1-3register_chrdev/demo/demo.ko -/mnt/hgfs/windows/src/1drivermodel/1-3register_chrdev/demo/demo.o diff --git a/books/fengguojin/src/1drivermodel/1-3register_chrdev/demo/1 b/books/fengguojin/src/1drivermodel/1-3register_chrdev/demo/1 new file mode 100644 index 0000000..1daddcd --- /dev/null +++ b/books/fengguojin/src/1drivermodel/1-3register_chrdev/demo/1 @@ -0,0 +1,80 @@ +# ------------------------------------------------------------------------------ +# +# Makefile for the LDD-LinuxDeviceDrivers. +# +# Author: gatieme +# Create: 2016-07-29 15:50:46 +# Last modified: 2016-07-29 16:10:29 +# Description: +# This program is loaded as a kernel(v2.6.18 or later) module. +# Use "make install" to load it into kernel. +# Use "make remove" to remove the module out of kernel. +# +# ------------------------------------------------------------------------------ + + +ROOT=../../../../../ +#PLATFORM=$(shell $(ROOT)/systype.sh) +#include $(ROOT)/Make.defines.$(PLATFORM) + +# my driver description +DRIVER_VERSION := "1.0.0" +DRIVER_AUTHOR := "Gatieme @ AderStep Inc..." +DRIVER_DESC := "Demo module for LDD-LinuxDeviceDrivers devices" +DRIVER_LICENSE := "Dual BSD/GPL" + + +MODULE_NAME := demo + +ifneq ($(KERNELRELEASE),) + +#CFG_FLAGS += -O2 -I./ +#EXTRA_CFLAGS += $(C_FLAGS) $(CFG_INC) $(CFG_INC) + + + +obj-m := $(MODULE_NAME).o #smodule.o + +else + +KERNELDIR ?= /lib/modules/$(shell uname -r)/build + +PWD := $(shell pwd) + +modules: + make -C $(KERNELDIR) M=$(PWD) modules + +modules_install: + make -C $(KERNELDIR) M=$(PWD) modules_install + + + +insmod: + sudo insmod $(MODULE_NAME).ko + sudo mknod /dev/fgj c 224 0 + +reinsmod: + sudo rmmod $(MODULE_NAME) + sudo insmod $(MODULE_NAME).ko + +rmmod: + sudo rmmod $(MODULE_NAME) + sudo /bin/rm /dev/fgj + +clean: + make -C $(KERNELDIR) M=$(PWD) clean + rm -f modules.order Module.symvers Module.markers + + +COMMIT="[1.1.4 带参数的可加载模块](http://book.51cto.com/art/201205/337663.htm)" +github: + cd $(ROOT) && make github + + +.PHNOY: + modules modules_install clean + + + +endif + diff --git a/books/fengguojin/src/1drivermodel/1-3register_chrdev/demo/Makefile b/books/fengguojin/src/1drivermodel/1-3register_chrdev/demo/Makefile new file mode 100644 index 0000000..1daddcd --- /dev/null +++ b/books/fengguojin/src/1drivermodel/1-3register_chrdev/demo/Makefile @@ -0,0 +1,80 @@ +# ------------------------------------------------------------------------------ +# +# Makefile for the LDD-LinuxDeviceDrivers. +# +# Author: gatieme +# Create: 2016-07-29 15:50:46 +# Last modified: 2016-07-29 16:10:29 +# Description: +# This program is loaded as a kernel(v2.6.18 or later) module. +# Use "make install" to load it into kernel. +# Use "make remove" to remove the module out of kernel. +# +# ------------------------------------------------------------------------------ + + +ROOT=../../../../../ +#PLATFORM=$(shell $(ROOT)/systype.sh) +#include $(ROOT)/Make.defines.$(PLATFORM) + +# my driver description +DRIVER_VERSION := "1.0.0" +DRIVER_AUTHOR := "Gatieme @ AderStep Inc..." +DRIVER_DESC := "Demo module for LDD-LinuxDeviceDrivers devices" +DRIVER_LICENSE := "Dual BSD/GPL" + + +MODULE_NAME := demo + +ifneq ($(KERNELRELEASE),) + +#CFG_FLAGS += -O2 -I./ +#EXTRA_CFLAGS += $(C_FLAGS) $(CFG_INC) $(CFG_INC) + + + +obj-m := $(MODULE_NAME).o #smodule.o + +else + +KERNELDIR ?= /lib/modules/$(shell uname -r)/build + +PWD := $(shell pwd) + +modules: + make -C $(KERNELDIR) M=$(PWD) modules + +modules_install: + make -C $(KERNELDIR) M=$(PWD) modules_install + + + +insmod: + sudo insmod $(MODULE_NAME).ko + sudo mknod /dev/fgj c 224 0 + +reinsmod: + sudo rmmod $(MODULE_NAME) + sudo insmod $(MODULE_NAME).ko + +rmmod: + sudo rmmod $(MODULE_NAME) + sudo /bin/rm /dev/fgj + +clean: + make -C $(KERNELDIR) M=$(PWD) clean + rm -f modules.order Module.symvers Module.markers + + +COMMIT="[1.1.4 带参数的可加载模块](http://book.51cto.com/art/201205/337663.htm)" +github: + cd $(ROOT) && make github + + +.PHNOY: + modules modules_install clean + + + +endif + diff --git a/books/fengguojin/src/1drivermodel/1-3register_chrdev/demo/Module.symvers b/books/fengguojin/src/1drivermodel/1-3register_chrdev/demo/Module.symvers deleted file mode 100644 index e69de29..0000000 diff --git a/books/fengguojin/src/1drivermodel/1-3register_chrdev/demo/demo.c b/books/fengguojin/src/1drivermodel/1-3register_chrdev/demo/demo.c index d93dd8d..300ed2c 100644 --- a/books/fengguojin/src/1drivermodel/1-3register_chrdev/demo/demo.c +++ b/books/fengguojin/src/1drivermodel/1-3register_chrdev/demo/demo.c @@ -37,7 +37,7 @@ ssize_t simple_read(struct file *filp, char __user *buf, size_t count,loff_t *f_ /* ݿӦóռ */ if (copy_to_user(buf,demoBuffer,count)) { - count=-EFAULT; + count=-EFAULT; } return count; } @@ -65,14 +65,14 @@ struct file_operations simple_fops = { *******************************************************/ void simple_cleanup_module(void) { - unregister_chrdev(simple_MAJOR, "simple"); + unregister_chrdev(simple_MAJOR, "simple"); printk("simple_cleanup_module!\n"); } int simple_init_module(void) { int ret; - ret = register_chrdev(simple_MAJOR, "simple", &simple_fops);//ע豸231豸 + ret = register_chrdev(simple_MAJOR, "simple", &simple_fops);//ע豸231豸 if (ret < 0) { printk("Unable to register character device %d!\n",simple_MAJOR); diff --git a/books/fengguojin/src/1drivermodel/1-3register_chrdev/demo/demo.h b/books/fengguojin/src/1drivermodel/1-3register_chrdev/demo/demo.h index 167a0ee..f617393 100644 --- a/books/fengguojin/src/1drivermodel/1-3register_chrdev/demo/demo.h +++ b/books/fengguojin/src/1drivermodel/1-3register_chrdev/demo/demo.h @@ -1,4 +1,3 @@ - #ifndef _simple_H_ #define _simple_H_ @@ -21,11 +20,15 @@ #undef PDEBUGG #define PDEBUGG(fmt, args...) /* nothing: it's a placeholder */ -//豸 +// 豸 +// error inserting 'globalmem.ko': -1 Device or resource busy +// ԭǶ豸гͻ, +// ͨcat /proc/devices鿴Щ豸Żûʹ +// ֱϵͳ̬豸 #define simple_MAJOR 224 //豸ṹ -struct simple_dev +struct simple_dev { struct cdev cdev; /* Char device structure */ }; diff --git a/books/fengguojin/src/1drivermodel/1-3register_chrdev/demo/demo.mod.c b/books/fengguojin/src/1drivermodel/1-3register_chrdev/demo/demo.mod.c deleted file mode 100644 index 147b9f6..0000000 --- a/books/fengguojin/src/1drivermodel/1-3register_chrdev/demo/demo.mod.c +++ /dev/null @@ -1,21 +0,0 @@ -#include -#include -#include - -MODULE_INFO(vermagic, VERMAGIC_STRING); - -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 char __module_depends[] -__used -__attribute__((section(".modinfo"))) = -"depends="; - diff --git a/books/fengguojin/src/1drivermodel/1-3register_chrdev/demo/modules.order b/books/fengguojin/src/1drivermodel/1-3register_chrdev/demo/modules.order deleted file mode 100644 index 3ffaa27..0000000 --- a/books/fengguojin/src/1drivermodel/1-3register_chrdev/demo/modules.order +++ /dev/null @@ -1 +0,0 @@ -kernel//mnt/hgfs/windows/src/1drivermodel/1-3register_chrdev/demo/demo.ko diff --git a/books/fengguojin/src/1drivermodel/1-3register_chrdev/test/Makefile b/books/fengguojin/src/1drivermodel/1-3register_chrdev/test/Makefile new file mode 100644 index 0000000..c49bd09 --- /dev/null +++ b/books/fengguojin/src/1drivermodel/1-3register_chrdev/test/Makefile @@ -0,0 +1,25 @@ +ROOT=../../../ + +target=test + + + +all:$(target) + + +memorylayout : test.o + $(CC) $^ -o $@ $(LDFLAGS) + @echo "测试使用register_chrdev注册的字符设备..." + +%.o : %.c + $(CC) -c $^ -o $@ $(CFLAGS) $(DEFINES) + +clean : + rm -rf *.o + rm -rf $(target) + + +run : + sudo ./test + +.PHONY : clean run diff --git a/books/fengguojin/src/1drivermodel/1-3register_chrdev/test/test b/books/fengguojin/src/1drivermodel/1-3register_chrdev/test/test deleted file mode 100644 index 76dc2003ecb6e511f2f8ea815a8974510ad8607d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9909 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 diff --git a/books/fengguojin/src/1drivermodel/1-3register_chrdev/test/test.c b/books/fengguojin/src/1drivermodel/1-3register_chrdev/test/test.c index f51ee60..868976a 100644 --- a/books/fengguojin/src/1drivermodel/1-3register_chrdev/test/test.c +++ b/books/fengguojin/src/1drivermodel/1-3register_chrdev/test/test.c @@ -1,40 +1,54 @@ -#include -#include -#include -#include -#include -#include -#include -void main(void) -{ - int fd; - int i; - char data[256]; - - int retval; - fd=open("/dev/fgj",O_RDWR); - if(fd==-1) - { - perror("error open\n"); - exit(-1); - } - printf("open /dev/fgj successfully\n"); - - retval=write(fd,"fgj",3); - if(retval==-1) - { - perror("write error\n"); - exit(-1); - } - retval=read(fd,data,3); - if(retval==-1) - { - perror("read error\n"); - exit(-1); - } - data[retval]=0; - printf("read successfully:%s\n",data); - - close(fd); -} +#include +#include +#include + +#include +#include +#include +#include +#include + + + + + +#define MAX_LINE 256 + +int main(void) +{ + int fd; + int i; + char data[MAX_LINE] = "Hello World!"; + int retval; + + fd = open("/dev/fgj",O_RDWR); + if(fd == -1) + { + perror("error open"); + exit(-1); + } + printf("open /dev/fgj successfully\n"); + + retval = write(fd, data, strlen(data)); + if(retval == -1) + { + perror("write error"); + exit(-1); + } + else + { + printf("write data successfully\n"); + } + retval = read(fd, data, MAX_LINE); + if(retval == -1) + { + perror("read error"); + exit(-1); + } + + data[retval] = '\0'; + printf("read successfully:%s\n", data); + + close(fd); +}