From 657b0d1a63becd2797576d4b796cdd2cfe32f357 Mon Sep 17 00:00:00 2001 From: wandog Date: Mon, 13 Feb 2023 08:24:14 +0000 Subject: [PATCH 1/8] modified by wandog --- .Module.symvers.cmd | 1 + .ml_driver.ko.cmd | 1 + .ml_driver.mod.cmd | 1 + .ml_driver.mod.o.cmd | 593 ++++++++++++++++++++++++++++ .ml_driver.o.cmd | 891 +++++++++++++++++++++++++++++++++++++++++++ .modules.order.cmd | 1 + Makefile | 0 Module.symvers | 0 README.md | 0 ml_driver.c | 193 +++++----- ml_driver.ko | Bin 0 -> 171512 bytes ml_driver.mod | 2 + ml_driver.mod.c | 63 +++ ml_driver.mod.o | Bin 0 -> 4136 bytes ml_driver.o | Bin 0 -> 169676 bytes ml_manage.sh | 2 +- modules.order | 1 + user-space.c | 0 18 files changed, 1655 insertions(+), 94 deletions(-) create mode 100644 .Module.symvers.cmd create mode 100644 .ml_driver.ko.cmd create mode 100644 .ml_driver.mod.cmd create mode 100644 .ml_driver.mod.o.cmd create mode 100644 .ml_driver.o.cmd create mode 100644 .modules.order.cmd mode change 100644 => 100755 Makefile create mode 100755 Module.symvers mode change 100644 => 100755 README.md mode change 100644 => 100755 ml_driver.c create mode 100644 ml_driver.ko create mode 100755 ml_driver.mod create mode 100755 ml_driver.mod.c create mode 100644 ml_driver.mod.o create mode 100644 ml_driver.o create mode 100755 modules.order mode change 100644 => 100755 user-space.c diff --git a/.Module.symvers.cmd b/.Module.symvers.cmd new file mode 100644 index 0000000..d7d32a2 --- /dev/null +++ b/.Module.symvers.cmd @@ -0,0 +1 @@ +cmd_/home/pi/ml-driver/Module.symvers := sed 's/ko$$/o/' /home/pi/ml-driver/modules.order | scripts/mod/modpost -m -a -o /home/pi/ml-driver/Module.symvers -e -i Module.symvers -T - diff --git a/.ml_driver.ko.cmd b/.ml_driver.ko.cmd new file mode 100644 index 0000000..b1854f6 --- /dev/null +++ b/.ml_driver.ko.cmd @@ -0,0 +1 @@ +cmd_/home/pi/ml-driver/ml_driver.ko := ld -r -EL --build-id=sha1 -T scripts/module.lds -o /home/pi/ml-driver/ml_driver.ko /home/pi/ml-driver/ml_driver.o /home/pi/ml-driver/ml_driver.mod.o; true diff --git a/.ml_driver.mod.cmd b/.ml_driver.mod.cmd new file mode 100644 index 0000000..98707f6 --- /dev/null +++ b/.ml_driver.mod.cmd @@ -0,0 +1 @@ +cmd_/home/pi/ml-driver/ml_driver.mod := { echo /home/pi/ml-driver/ml_driver.o; echo; } > /home/pi/ml-driver/ml_driver.mod diff --git a/.ml_driver.mod.o.cmd b/.ml_driver.mod.o.cmd new file mode 100644 index 0000000..83d824b --- /dev/null +++ b/.ml_driver.mod.o.cmd @@ -0,0 +1,593 @@ +cmd_/home/pi/ml-driver/ml_driver.mod.o := gcc -Wp,-MMD,/home/pi/ml-driver/.ml_driver.mod.o.d -nostdinc -isystem /usr/lib/gcc/arm-linux-gnueabihf/8/include -I./arch/arm/include -I./arch/arm/include/generated -I./include -I./arch/arm/include/uapi -I./arch/arm/include/generated/uapi -I./include/uapi -I./include/generated/uapi -include ./include/linux/kconfig.h -include ./include/linux/compiler_types.h -D__KERNEL__ -mlittle-endian -fmacro-prefix-map=./= -Wall -Wundef -Werror=strict-prototypes -Wno-trigraphs -fno-strict-aliasing -fno-common -fshort-wchar -fno-PIE -Werror=implicit-function-declaration -Werror=implicit-int -Werror=return-type -Wno-format-security -std=gnu89 -fno-dwarf2-cfi-asm -fno-omit-frame-pointer -mapcs -mno-sched-prolog -fno-ipa-sra -mabi=aapcs-linux -mfpu=vfp -marm -Wa,-mno-warn-deprecated -D__LINUX_ARM_ARCH__=7 -march=armv7-a -msoft-float -Uarm -fno-delete-null-pointer-checks -Wno-frame-address -Wno-format-truncation -Wno-format-overflow -O2 --param=allow-store-data-races=0 -Wframe-larger-than=1024 -fstack-protector-strong -Wimplicit-fallthrough -Wno-unused-but-set-variable -Wno-unused-const-variable -fno-omit-frame-pointer -fno-optimize-sibling-calls -pg -Wdeclaration-after-statement -Wvla -Wno-pointer-sign -Wno-stringop-truncation -Wno-array-bounds -Wno-stringop-overflow -Wno-restrict -Wno-maybe-uninitialized -fno-strict-overflow -fno-stack-check -fconserve-stack -Werror=date-time -Werror=incompatible-pointer-types -Werror=designated-init -Wno-packed-not-aligned -DMODULE -DKBUILD_BASENAME='"ml_driver.mod"' -DKBUILD_MODNAME='"ml_driver"' -c -o /home/pi/ml-driver/ml_driver.mod.o /home/pi/ml-driver/ml_driver.mod.c + +source_/home/pi/ml-driver/ml_driver.mod.o := /home/pi/ml-driver/ml_driver.mod.c + +deps_/home/pi/ml-driver/ml_driver.mod.o := \ + $(wildcard include/config/module/unload.h) \ + $(wildcard include/config/retpoline.h) \ + include/linux/kconfig.h \ + $(wildcard include/config/cc/version/text.h) \ + $(wildcard include/config/cpu/big/endian.h) \ + $(wildcard include/config/booger.h) \ + $(wildcard include/config/foo.h) \ + include/linux/compiler_types.h \ + $(wildcard include/config/have/arch/compiler/h.h) \ + $(wildcard include/config/enable/must/check.h) \ + $(wildcard include/config/cc/has/asm/inline.h) \ + include/linux/compiler_attributes.h \ + include/linux/compiler-gcc.h \ + $(wildcard include/config/arm64.h) \ + $(wildcard include/config/arch/use/builtin/bswap.h) \ + $(wildcard include/config/kcov.h) \ + include/linux/module.h \ + $(wildcard include/config/modules.h) \ + $(wildcard include/config/sysfs.h) \ + $(wildcard include/config/modules/tree/lookup.h) \ + $(wildcard include/config/livepatch.h) \ + $(wildcard include/config/unused/symbols.h) \ + $(wildcard include/config/module/sig.h) \ + $(wildcard include/config/generic/bug.h) \ + $(wildcard include/config/kallsyms.h) \ + $(wildcard include/config/smp.h) \ + $(wildcard include/config/tracepoints.h) \ + $(wildcard include/config/tree/srcu.h) \ + $(wildcard include/config/bpf/events.h) \ + $(wildcard include/config/jump/label.h) \ + $(wildcard include/config/tracing.h) \ + $(wildcard include/config/event/tracing.h) \ + $(wildcard include/config/ftrace/mcount/record.h) \ + $(wildcard include/config/kprobes.h) \ + $(wildcard include/config/have/static/call/inline.h) \ + $(wildcard include/config/constructors.h) \ + $(wildcard include/config/function/error/injection.h) \ + include/linux/list.h \ + $(wildcard include/config/debug/list.h) \ + include/linux/types.h \ + $(wildcard include/config/have/uid16.h) \ + $(wildcard include/config/uid16.h) \ + $(wildcard include/config/arch/dma/addr/t/64bit.h) \ + $(wildcard include/config/phys/addr/t/64bit.h) \ + $(wildcard include/config/64bit.h) \ + include/uapi/linux/types.h \ + arch/arm/include/uapi/asm/types.h \ + include/asm-generic/int-ll64.h \ + include/uapi/asm-generic/int-ll64.h \ + arch/arm/include/generated/uapi/asm/bitsperlong.h \ + include/asm-generic/bitsperlong.h \ + include/uapi/asm-generic/bitsperlong.h \ + include/uapi/linux/posix_types.h \ + include/linux/stddef.h \ + include/uapi/linux/stddef.h \ + include/linux/compiler_types.h \ + arch/arm/include/uapi/asm/posix_types.h \ + include/uapi/asm-generic/posix_types.h \ + include/linux/poison.h \ + $(wildcard include/config/illegal/pointer/value.h) \ + $(wildcard include/config/page/poisoning/zero.h) \ + include/linux/const.h \ + include/vdso/const.h \ + include/uapi/linux/const.h \ + include/linux/kernel.h \ + $(wildcard include/config/preempt/voluntary.h) \ + $(wildcard include/config/debug/atomic/sleep.h) \ + $(wildcard include/config/preempt/rt.h) \ + $(wildcard include/config/mmu.h) \ + $(wildcard include/config/prove/locking.h) \ + $(wildcard include/config/panic/timeout.h) \ + include/linux/limits.h \ + include/uapi/linux/limits.h \ + include/vdso/limits.h \ + include/linux/linkage.h \ + $(wildcard include/config/arch/use/sym/annotations.h) \ + include/linux/stringify.h \ + include/linux/export.h \ + $(wildcard include/config/modversions.h) \ + $(wildcard include/config/module/rel/crcs.h) \ + $(wildcard include/config/have/arch/prel32/relocations.h) \ + $(wildcard include/config/trim/unused/ksyms.h) \ + arch/arm/include/asm/linkage.h \ + include/linux/compiler.h \ + $(wildcard include/config/trace/branch/profiling.h) \ + $(wildcard include/config/profile/all/branches.h) \ + $(wildcard include/config/stack/validation.h) \ + arch/arm/include/generated/asm/rwonce.h \ + include/asm-generic/rwonce.h \ + include/linux/kasan-checks.h \ + $(wildcard include/config/kasan.h) \ + include/linux/kcsan-checks.h \ + $(wildcard include/config/kcsan.h) \ + $(wildcard include/config/kcsan/ignore/atomics.h) \ + include/linux/bitops.h \ + include/linux/bits.h \ + include/vdso/bits.h \ + include/linux/build_bug.h \ + arch/arm/include/asm/bitops.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) \ + include/linux/typecheck.h \ + arch/arm/include/asm/irqflags.h \ + $(wildcard include/config/cpu/v7m.h) \ + arch/arm/include/asm/ptrace.h \ + $(wildcard include/config/arm/thumb.h) \ + $(wildcard include/config/thumb2/kernel.h) \ + arch/arm/include/uapi/asm/ptrace.h \ + $(wildcard include/config/cpu/endian/be8.h) \ + arch/arm/include/asm/hwcap.h \ + arch/arm/include/uapi/asm/hwcap.h \ + include/asm-generic/irqflags.h \ + arch/arm/include/asm/percpu.h \ + $(wildcard include/config/cpu/v6.h) \ + include/asm-generic/percpu.h \ + $(wildcard include/config/debug/preempt.h) \ + $(wildcard include/config/have/setup/per/cpu/area.h) \ + include/linux/threads.h \ + $(wildcard include/config/nr/cpus.h) \ + $(wildcard include/config/base/small.h) \ + include/linux/percpu-defs.h \ + $(wildcard include/config/debug/force/weak/per/cpu.h) \ + $(wildcard include/config/amd/mem/encrypt.h) \ + arch/arm/include/asm/barrier.h \ + $(wildcard include/config/cpu/32v6k.h) \ + $(wildcard include/config/cpu/xsc3.h) \ + $(wildcard include/config/cpu/fa526.h) \ + $(wildcard include/config/arm/heavy/mb.h) \ + $(wildcard include/config/arm/dma/mem/bufferable.h) \ + $(wildcard include/config/cpu/spectre.h) \ + include/asm-generic/barrier.h \ + include/asm-generic/bitops/non-atomic.h \ + include/asm-generic/bitops/builtin-__fls.h \ + include/asm-generic/bitops/builtin-__ffs.h \ + include/asm-generic/bitops/builtin-fls.h \ + include/asm-generic/bitops/builtin-ffs.h \ + include/asm-generic/bitops/ffz.h \ + include/asm-generic/bitops/fls64.h \ + include/asm-generic/bitops/sched.h \ + include/asm-generic/bitops/hweight.h \ + include/asm-generic/bitops/arch_hweight.h \ + include/asm-generic/bitops/const_hweight.h \ + include/asm-generic/bitops/lock.h \ + include/linux/atomic.h \ + arch/arm/include/asm/atomic.h \ + $(wildcard include/config/generic/atomic64.h) \ + $(wildcard include/config/arm/lpae.h) \ + include/linux/prefetch.h \ + arch/arm/include/asm/processor.h \ + $(wildcard include/config/have/hw/breakpoint.h) \ + $(wildcard include/config/binfmt/elf/fdpic.h) \ + arch/arm/include/asm/hw_breakpoint.h \ + arch/arm/include/asm/unified.h \ + arch/arm/include/asm/vdso/processor.h \ + $(wildcard include/config/arm/errata/754327.h) \ + arch/arm/include/asm/cache.h \ + $(wildcard include/config/arm/l1/cache/shift.h) \ + $(wildcard include/config/aeabi.h) \ + arch/arm/include/asm/cmpxchg.h \ + $(wildcard include/config/cpu/sa1100.h) \ + $(wildcard include/config/cpu/sa110.h) \ + include/asm-generic/cmpxchg-local.h \ + include/linux/atomic-fallback.h \ + include/asm-generic/atomic-long.h \ + include/asm-generic/bitops/find.h \ + $(wildcard include/config/generic/find/first/bit.h) \ + include/asm-generic/bitops/le.h \ + arch/arm/include/uapi/asm/byteorder.h \ + include/linux/byteorder/little_endian.h \ + include/uapi/linux/byteorder/little_endian.h \ + include/linux/swab.h \ + include/uapi/linux/swab.h \ + arch/arm/include/asm/swab.h \ + arch/arm/include/uapi/asm/swab.h \ + include/linux/byteorder/generic.h \ + include/asm-generic/bitops/ext2-atomic-setbit.h \ + include/linux/log2.h \ + $(wildcard include/config/arch/has/ilog2/u32.h) \ + $(wildcard include/config/arch/has/ilog2/u64.h) \ + include/linux/minmax.h \ + include/linux/printk.h \ + $(wildcard include/config/message/loglevel/default.h) \ + $(wildcard include/config/console/loglevel/default.h) \ + $(wildcard include/config/console/loglevel/quiet.h) \ + $(wildcard include/config/early/printk.h) \ + $(wildcard include/config/printk/nmi.h) \ + $(wildcard include/config/printk.h) \ + $(wildcard include/config/dynamic/debug.h) \ + $(wildcard include/config/dynamic/debug/core.h) \ + include/linux/init.h \ + $(wildcard include/config/strict/kernel/rwx.h) \ + $(wildcard include/config/strict/module/rwx.h) \ + include/linux/kern_levels.h \ + include/linux/cache.h \ + $(wildcard include/config/arch/has/cache/line/size.h) \ + include/uapi/linux/kernel.h \ + include/uapi/linux/sysinfo.h \ + include/linux/ratelimit_types.h \ + include/uapi/linux/param.h \ + arch/arm/include/generated/uapi/asm/param.h \ + include/asm-generic/param.h \ + $(wildcard include/config/hz.h) \ + include/uapi/asm-generic/param.h \ + include/linux/spinlock_types.h \ + $(wildcard include/config/debug/spinlock.h) \ + $(wildcard include/config/debug/lock/alloc.h) \ + arch/arm/include/asm/spinlock_types.h \ + include/linux/lockdep_types.h \ + $(wildcard include/config/prove/raw/lock/nesting.h) \ + $(wildcard include/config/preempt/lock.h) \ + $(wildcard include/config/lockdep.h) \ + $(wildcard include/config/lock/stat.h) \ + include/linux/rwlock_types.h \ + arch/arm/include/asm/div64.h \ + arch/arm/include/asm/compiler.h \ + include/asm-generic/div64.h \ + include/linux/stat.h \ + arch/arm/include/uapi/asm/stat.h \ + include/uapi/linux/stat.h \ + include/linux/time.h \ + $(wildcard include/config/arch/uses/gettimeoffset.h) \ + $(wildcard include/config/posix/timers.h) \ + include/linux/math64.h \ + $(wildcard include/config/arch/supports/int128.h) \ + include/vdso/math64.h \ + include/linux/time64.h \ + include/vdso/time64.h \ + include/uapi/linux/time.h \ + include/uapi/linux/time_types.h \ + include/linux/time32.h \ + include/linux/timex.h \ + include/uapi/linux/timex.h \ + arch/arm/include/asm/timex.h \ + include/vdso/time32.h \ + include/vdso/time.h \ + include/linux/uidgid.h \ + $(wildcard include/config/multiuser.h) \ + $(wildcard include/config/user/ns.h) \ + include/linux/highuid.h \ + include/linux/kmod.h \ + include/linux/umh.h \ + include/linux/gfp.h \ + $(wildcard include/config/highmem.h) \ + $(wildcard include/config/zone/dma.h) \ + $(wildcard include/config/zone/dma32.h) \ + $(wildcard include/config/zone/device.h) \ + $(wildcard include/config/numa.h) \ + $(wildcard include/config/pm/sleep.h) \ + $(wildcard include/config/contig/alloc.h) \ + $(wildcard include/config/cma.h) \ + include/linux/mmdebug.h \ + $(wildcard include/config/debug/vm.h) \ + $(wildcard include/config/debug/virtual.h) \ + $(wildcard include/config/debug/vm/pgflags.h) \ + include/linux/bug.h \ + $(wildcard include/config/bug/on/data/corruption.h) \ + arch/arm/include/asm/bug.h \ + $(wildcard include/config/debug/bugverbose.h) \ + arch/arm/include/asm/opcodes.h \ + $(wildcard include/config/cpu/endian/be32.h) \ + include/asm-generic/bug.h \ + $(wildcard include/config/bug.h) \ + $(wildcard include/config/generic/bug/relative/pointers.h) \ + include/linux/instrumentation.h \ + $(wildcard include/config/debug/entry.h) \ + include/linux/mmzone.h \ + $(wildcard include/config/force/max/zoneorder.h) \ + $(wildcard include/config/memory/isolation.h) \ + $(wildcard include/config/zsmalloc.h) \ + $(wildcard include/config/shadow/call/stack.h) \ + $(wildcard include/config/memcg.h) \ + $(wildcard include/config/need/multiple/nodes.h) \ + $(wildcard include/config/sparsemem.h) \ + $(wildcard include/config/memory/hotplug.h) \ + $(wildcard include/config/compaction.h) \ + $(wildcard include/config/discontigmem.h) \ + $(wildcard include/config/transparent/hugepage.h) \ + $(wildcard include/config/flat/node/mem/map.h) \ + $(wildcard include/config/page/extension.h) \ + $(wildcard include/config/deferred/struct/page/init.h) \ + $(wildcard include/config/have/memoryless/nodes.h) \ + $(wildcard include/config/flatmem.h) \ + $(wildcard include/config/sparsemem/vmemmap.h) \ + $(wildcard include/config/sparsemem/extreme.h) \ + $(wildcard include/config/memory/hotremove.h) \ + $(wildcard include/config/have/arch/pfn/valid.h) \ + $(wildcard include/config/holes/in/zone.h) \ + $(wildcard include/config/arch/has/holes/memorymodel.h) \ + include/linux/spinlock.h \ + $(wildcard include/config/preemption.h) \ + include/linux/preempt.h \ + $(wildcard include/config/preempt/count.h) \ + $(wildcard include/config/trace/preempt/toggle.h) \ + $(wildcard include/config/preempt/notifiers.h) \ + arch/arm/include/generated/asm/preempt.h \ + include/asm-generic/preempt.h \ + include/linux/thread_info.h \ + $(wildcard include/config/thread/info/in/task.h) \ + $(wildcard include/config/have/arch/within/stack/frames.h) \ + $(wildcard include/config/hardened/usercopy.h) \ + include/linux/restart_block.h \ + include/linux/errno.h \ + include/uapi/linux/errno.h \ + arch/arm/include/generated/uapi/asm/errno.h \ + include/uapi/asm-generic/errno.h \ + include/uapi/asm-generic/errno-base.h \ + arch/arm/include/asm/thread_info.h \ + $(wildcard include/config/stackprotector/per/task.h) \ + $(wildcard include/config/crunch.h) \ + $(wildcard include/config/arm/thumbee.h) \ + arch/arm/include/asm/fpstate.h \ + $(wildcard include/config/vfpv3.h) \ + $(wildcard include/config/iwmmxt.h) \ + arch/arm/include/asm/page.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/copy/fa.h) \ + $(wildcard include/config/cpu/xscale.h) \ + $(wildcard include/config/cpu/copy/v6.h) \ + $(wildcard include/config/kuser/helpers.h) \ + arch/arm/include/asm/glue.h \ + arch/arm/include/asm/pgtable-3level-types.h \ + arch/arm/include/asm/memory.h \ + $(wildcard include/config/need/mach/memory/h.h) \ + $(wildcard include/config/page/offset.h) \ + $(wildcard include/config/dram/base.h) \ + $(wildcard include/config/dram/size.h) \ + $(wildcard include/config/xip/kernel.h) \ + $(wildcard include/config/have/tcm.h) \ + $(wildcard include/config/arm/patch/phys/virt.h) \ + $(wildcard include/config/phys/offset.h) \ + $(wildcard include/config/xip/phys/addr.h) \ + include/linux/sizes.h \ + include/asm-generic/memory_model.h \ + include/linux/pfn.h \ + include/asm-generic/getorder.h \ + include/linux/bottom_half.h \ + include/linux/lockdep.h \ + $(wildcard include/config/debug/locking/api/selftests.h) \ + include/linux/smp.h \ + $(wildcard include/config/up/late/init.h) \ + include/linux/cpumask.h \ + $(wildcard include/config/cpumask/offstack.h) \ + $(wildcard include/config/hotplug/cpu.h) \ + $(wildcard include/config/debug/per/cpu/maps.h) \ + include/linux/bitmap.h \ + include/linux/string.h \ + $(wildcard include/config/binary/printf.h) \ + $(wildcard include/config/fortify/source.h) \ + include/uapi/linux/string.h \ + arch/arm/include/asm/string.h \ + $(wildcard include/config/bcm2835/fast/memcpy.h) \ + include/linux/smp_types.h \ + include/linux/llist.h \ + $(wildcard include/config/arch/have/nmi/safe/cmpxchg.h) \ + arch/arm/include/asm/smp.h \ + arch/arm/include/generated/asm/mmiowb.h \ + include/asm-generic/mmiowb.h \ + $(wildcard include/config/mmiowb.h) \ + arch/arm/include/asm/spinlock.h \ + include/linux/rwlock.h \ + $(wildcard include/config/preempt.h) \ + include/linux/spinlock_api_smp.h \ + $(wildcard include/config/inline/spin/lock.h) \ + $(wildcard include/config/inline/spin/lock/bh.h) \ + $(wildcard include/config/inline/spin/lock/irq.h) \ + $(wildcard include/config/inline/spin/lock/irqsave.h) \ + $(wildcard include/config/inline/spin/trylock.h) \ + $(wildcard include/config/inline/spin/trylock/bh.h) \ + $(wildcard include/config/uninline/spin/unlock.h) \ + $(wildcard include/config/inline/spin/unlock/bh.h) \ + $(wildcard include/config/inline/spin/unlock/irq.h) \ + $(wildcard include/config/inline/spin/unlock/irqrestore.h) \ + $(wildcard include/config/generic/lockbreak.h) \ + include/linux/rwlock_api_smp.h \ + $(wildcard include/config/inline/read/lock.h) \ + $(wildcard include/config/inline/write/lock.h) \ + $(wildcard include/config/inline/read/lock/bh.h) \ + $(wildcard include/config/inline/write/lock/bh.h) \ + $(wildcard include/config/inline/read/lock/irq.h) \ + $(wildcard include/config/inline/write/lock/irq.h) \ + $(wildcard include/config/inline/read/lock/irqsave.h) \ + $(wildcard include/config/inline/write/lock/irqsave.h) \ + $(wildcard include/config/inline/read/trylock.h) \ + $(wildcard include/config/inline/write/trylock.h) \ + $(wildcard include/config/inline/read/unlock.h) \ + $(wildcard include/config/inline/write/unlock.h) \ + $(wildcard include/config/inline/read/unlock/bh.h) \ + $(wildcard include/config/inline/write/unlock/bh.h) \ + $(wildcard include/config/inline/read/unlock/irq.h) \ + $(wildcard include/config/inline/write/unlock/irq.h) \ + $(wildcard include/config/inline/read/unlock/irqrestore.h) \ + $(wildcard include/config/inline/write/unlock/irqrestore.h) \ + include/linux/wait.h \ + arch/arm/include/generated/asm/current.h \ + include/asm-generic/current.h \ + include/uapi/linux/wait.h \ + include/linux/numa.h \ + $(wildcard include/config/nodes/shift.h) \ + $(wildcard include/config/numa/keep/meminfo.h) \ + include/linux/seqlock.h \ + include/linux/mutex.h \ + $(wildcard include/config/mutex/spin/on/owner.h) \ + $(wildcard include/config/debug/mutexes.h) \ + include/linux/osq_lock.h \ + include/linux/debug_locks.h \ + include/linux/ww_mutex.h \ + $(wildcard include/config/debug/ww/mutex/slowpath.h) \ + include/linux/nodemask.h \ + include/linux/pageblock-flags.h \ + $(wildcard include/config/hugetlb/page.h) \ + $(wildcard include/config/hugetlb/page/size/variable.h) \ + include/linux/page-flags-layout.h \ + $(wildcard include/config/numa/balancing.h) \ + $(wildcard include/config/kasan/sw/tags.h) \ + include/generated/bounds.h \ + include/linux/mm_types.h \ + $(wildcard include/config/have/aligned/struct/page.h) \ + $(wildcard include/config/userfaultfd.h) \ + $(wildcard include/config/swap.h) \ + $(wildcard include/config/have/arch/compat/mmap/bases.h) \ + $(wildcard include/config/membarrier.h) \ + $(wildcard include/config/aio.h) \ + $(wildcard include/config/mmu/notifier.h) \ + $(wildcard include/config/arch/want/batched/unmap/tlb/flush.h) \ + $(wildcard include/config/iommu/support.h) \ + include/linux/mm_types_task.h \ + $(wildcard include/config/split/ptlock/cpus.h) \ + $(wildcard include/config/arch/enable/split/pmd/ptlock.h) \ + include/linux/auxvec.h \ + include/uapi/linux/auxvec.h \ + arch/arm/include/asm/auxvec.h \ + arch/arm/include/uapi/asm/auxvec.h \ + include/linux/rbtree.h \ + include/linux/rcupdate.h \ + $(wildcard include/config/preempt/rcu.h) \ + $(wildcard include/config/tiny/rcu.h) \ + $(wildcard include/config/tasks/rcu/generic.h) \ + $(wildcard include/config/rcu/stall/common.h) \ + $(wildcard include/config/no/hz/full.h) \ + $(wildcard include/config/rcu/nocb/cpu.h) \ + $(wildcard include/config/tasks/rcu.h) \ + $(wildcard include/config/tasks/trace/rcu.h) \ + $(wildcard include/config/tasks/rude/rcu.h) \ + $(wildcard include/config/tree/rcu.h) \ + $(wildcard include/config/debug/objects/rcu/head.h) \ + $(wildcard include/config/prove/rcu.h) \ + $(wildcard include/config/rcu/boost.h) \ + $(wildcard include/config/arch/weak/release/acquire.h) \ + include/linux/rcutree.h \ + include/linux/rwsem.h \ + $(wildcard include/config/rwsem/spin/on/owner.h) \ + $(wildcard include/config/debug/rwsems.h) \ + include/linux/err.h \ + include/linux/completion.h \ + include/linux/swait.h \ + include/linux/uprobes.h \ + $(wildcard include/config/uprobes.h) \ + include/linux/workqueue.h \ + $(wildcard include/config/debug/objects/work.h) \ + $(wildcard include/config/freezer.h) \ + $(wildcard include/config/wq/watchdog.h) \ + include/linux/timer.h \ + $(wildcard include/config/debug/objects/timers.h) \ + $(wildcard include/config/no/hz/common.h) \ + include/linux/ktime.h \ + include/linux/jiffies.h \ + include/vdso/jiffies.h \ + include/generated/timeconst.h \ + include/vdso/ktime.h \ + include/linux/timekeeping.h \ + include/linux/timekeeping32.h \ + include/linux/debugobjects.h \ + $(wildcard include/config/debug/objects.h) \ + $(wildcard include/config/debug/objects/free.h) \ + arch/arm/include/asm/mmu.h \ + $(wildcard include/config/cpu/has/asid.h) \ + $(wildcard include/config/vdso.h) \ + include/linux/page-flags.h \ + $(wildcard include/config/arch/uses/pg/uncached.h) \ + $(wildcard include/config/memory/failure.h) \ + $(wildcard include/config/idle/page/tracking.h) \ + $(wildcard include/config/thp/swap.h) \ + $(wildcard include/config/ksm.h) \ + include/linux/memory_hotplug.h \ + $(wildcard include/config/arch/has/add/pages.h) \ + $(wildcard include/config/have/arch/nodedata/extension.h) \ + $(wildcard include/config/have/bootmem/info/node.h) \ + include/linux/notifier.h \ + include/linux/srcu.h \ + $(wildcard include/config/tiny/srcu.h) \ + $(wildcard include/config/srcu.h) \ + include/linux/rcu_segcblist.h \ + include/linux/srcutree.h \ + include/linux/rcu_node_tree.h \ + $(wildcard include/config/rcu/fanout.h) \ + $(wildcard include/config/rcu/fanout/leaf.h) \ + include/linux/topology.h \ + $(wildcard include/config/use/percpu/numa/node/id.h) \ + $(wildcard include/config/sched/smt.h) \ + include/linux/arch_topology.h \ + $(wildcard include/config/generic/arch/topology.h) \ + include/linux/percpu.h \ + $(wildcard include/config/need/per/cpu/embed/first/chunk.h) \ + $(wildcard include/config/need/per/cpu/page/first/chunk.h) \ + arch/arm/include/asm/topology.h \ + $(wildcard include/config/arm/cpu/topology.h) \ + $(wildcard include/config/bl/switcher.h) \ + include/asm-generic/topology.h \ + include/linux/sysctl.h \ + $(wildcard include/config/sysctl.h) \ + include/uapi/linux/sysctl.h \ + include/linux/elf.h \ + $(wildcard include/config/arch/use/gnu/property.h) \ + $(wildcard include/config/arch/have/elf/prot.h) \ + arch/arm/include/asm/elf.h \ + arch/arm/include/asm/vdso_datapage.h \ + include/vdso/datapage.h \ + $(wildcard include/config/arch/has/vdso/data.h) \ + include/uapi/asm-generic/errno-base.h \ + include/vdso/clocksource.h \ + $(wildcard include/config/generic/gettimeofday.h) \ + arch/arm/include/asm/vdso/clocksource.h \ + include/vdso/processor.h \ + arch/arm/include/asm/vdso/gettimeofday.h \ + $(wildcard include/config/arm/arch/timer.h) \ + arch/arm/include/asm/unistd.h \ + $(wildcard include/config/oabi/compat.h) \ + arch/arm/include/uapi/asm/unistd.h \ + arch/arm/include/generated/uapi/asm/unistd-eabi.h \ + arch/arm/include/generated/uapi/asm/unistd-common.h \ + arch/arm/include/generated/asm/unistd-nr.h \ + arch/arm/include/asm/vdso/cp15.h \ + $(wildcard include/config/cpu/cp15.h) \ + arch/arm/include/asm/user.h \ + include/uapi/linux/elf.h \ + include/uapi/linux/elf-em.h \ + include/linux/kobject.h \ + $(wildcard include/config/uevent/helper.h) \ + $(wildcard include/config/debug/kobject/release.h) \ + include/linux/sysfs.h \ + include/linux/kernfs.h \ + $(wildcard include/config/kernfs.h) \ + include/linux/idr.h \ + include/linux/radix-tree.h \ + include/linux/xarray.h \ + $(wildcard include/config/xarray/multi.h) \ + include/linux/kconfig.h \ + include/linux/local_lock.h \ + include/linux/local_lock_internal.h \ + include/linux/kobject_ns.h \ + include/linux/kref.h \ + include/linux/refcount.h \ + include/linux/moduleparam.h \ + $(wildcard include/config/alpha.h) \ + $(wildcard include/config/ia64.h) \ + $(wildcard include/config/ppc64.h) \ + include/linux/jump_label.h \ + $(wildcard include/config/have/arch/jump/label/relative.h) \ + arch/arm/include/asm/jump_label.h \ + include/linux/rbtree_latch.h \ + include/linux/error-injection.h \ + include/asm-generic/error-injection.h \ + include/linux/tracepoint-defs.h \ + include/linux/static_key.h \ + include/linux/static_call_types.h \ + $(wildcard include/config/have/static/call.h) \ + arch/arm/include/asm/module.h \ + $(wildcard include/config/arm/unwind.h) \ + $(wildcard include/config/arm/module/plts.h) \ + include/asm-generic/module.h \ + $(wildcard include/config/have/mod/arch/specific.h) \ + $(wildcard include/config/modules/use/elf/rel.h) \ + $(wildcard include/config/modules/use/elf/rela.h) \ + include/linux/build-salt.h \ + $(wildcard include/config/build/salt.h) \ + include/linux/elfnote.h \ + include/linux/vermagic.h \ + include/generated/utsrelease.h \ + arch/arm/include/asm/vermagic.h \ + +/home/pi/ml-driver/ml_driver.mod.o: $(deps_/home/pi/ml-driver/ml_driver.mod.o) + +$(deps_/home/pi/ml-driver/ml_driver.mod.o): diff --git a/.ml_driver.o.cmd b/.ml_driver.o.cmd new file mode 100644 index 0000000..ccb95a9 --- /dev/null +++ b/.ml_driver.o.cmd @@ -0,0 +1,891 @@ +cmd_/home/pi/ml-driver/ml_driver.o := gcc -Wp,-MMD,/home/pi/ml-driver/.ml_driver.o.d -nostdinc -isystem /usr/lib/gcc/arm-linux-gnueabihf/8/include -I./arch/arm/include -I./arch/arm/include/generated -I./include -I./arch/arm/include/uapi -I./arch/arm/include/generated/uapi -I./include/uapi -I./include/generated/uapi -include ./include/linux/kconfig.h -include ./include/linux/compiler_types.h -D__KERNEL__ -mlittle-endian -fmacro-prefix-map=./= -Wall -Wundef -Werror=strict-prototypes -Wno-trigraphs -fno-strict-aliasing -fno-common -fshort-wchar -fno-PIE -Werror=implicit-function-declaration -Werror=implicit-int -Werror=return-type -Wno-format-security -std=gnu89 -fno-dwarf2-cfi-asm -fno-omit-frame-pointer -mapcs -mno-sched-prolog -fno-ipa-sra -mabi=aapcs-linux -mfpu=vfp -marm -Wa,-mno-warn-deprecated -D__LINUX_ARM_ARCH__=7 -march=armv7-a -msoft-float -Uarm -fno-delete-null-pointer-checks -Wno-frame-address -Wno-format-truncation -Wno-format-overflow -O2 --param=allow-store-data-races=0 -Wframe-larger-than=1024 -fstack-protector-strong -Wimplicit-fallthrough -Wno-unused-but-set-variable -Wno-unused-const-variable -fno-omit-frame-pointer -fno-optimize-sibling-calls -pg -Wdeclaration-after-statement -Wvla -Wno-pointer-sign -Wno-stringop-truncation -Wno-array-bounds -Wno-stringop-overflow -Wno-restrict -Wno-maybe-uninitialized -fno-strict-overflow -fno-stack-check -fconserve-stack -Werror=date-time -Werror=incompatible-pointer-types -Werror=designated-init -Wno-packed-not-aligned -O -g -DML_DEBUG -DMODULE -DKBUILD_BASENAME='"ml_driver"' -DKBUILD_MODNAME='"ml_driver"' -c -o /home/pi/ml-driver/ml_driver.o /home/pi/ml-driver/ml_driver.c + +source_/home/pi/ml-driver/ml_driver.o := /home/pi/ml-driver/ml_driver.c + +deps_/home/pi/ml-driver/ml_driver.o := \ + $(wildcard include/config/usb/dynamic/minors.h) \ + include/linux/kconfig.h \ + $(wildcard include/config/cc/version/text.h) \ + $(wildcard include/config/cpu/big/endian.h) \ + $(wildcard include/config/booger.h) \ + $(wildcard include/config/foo.h) \ + include/linux/compiler_types.h \ + $(wildcard include/config/have/arch/compiler/h.h) \ + $(wildcard include/config/enable/must/check.h) \ + $(wildcard include/config/cc/has/asm/inline.h) \ + include/linux/compiler_attributes.h \ + include/linux/compiler-gcc.h \ + $(wildcard include/config/arm64.h) \ + $(wildcard include/config/retpoline.h) \ + $(wildcard include/config/arch/use/builtin/bswap.h) \ + $(wildcard include/config/kcov.h) \ + include/linux/module.h \ + $(wildcard include/config/modules.h) \ + $(wildcard include/config/sysfs.h) \ + $(wildcard include/config/modules/tree/lookup.h) \ + $(wildcard include/config/livepatch.h) \ + $(wildcard include/config/unused/symbols.h) \ + $(wildcard include/config/module/sig.h) \ + $(wildcard include/config/generic/bug.h) \ + $(wildcard include/config/kallsyms.h) \ + $(wildcard include/config/smp.h) \ + $(wildcard include/config/tracepoints.h) \ + $(wildcard include/config/tree/srcu.h) \ + $(wildcard include/config/bpf/events.h) \ + $(wildcard include/config/jump/label.h) \ + $(wildcard include/config/tracing.h) \ + $(wildcard include/config/event/tracing.h) \ + $(wildcard include/config/ftrace/mcount/record.h) \ + $(wildcard include/config/kprobes.h) \ + $(wildcard include/config/have/static/call/inline.h) \ + $(wildcard include/config/module/unload.h) \ + $(wildcard include/config/constructors.h) \ + $(wildcard include/config/function/error/injection.h) \ + include/linux/list.h \ + $(wildcard include/config/debug/list.h) \ + include/linux/types.h \ + $(wildcard include/config/have/uid16.h) \ + $(wildcard include/config/uid16.h) \ + $(wildcard include/config/arch/dma/addr/t/64bit.h) \ + $(wildcard include/config/phys/addr/t/64bit.h) \ + $(wildcard include/config/64bit.h) \ + include/uapi/linux/types.h \ + arch/arm/include/uapi/asm/types.h \ + include/asm-generic/int-ll64.h \ + include/uapi/asm-generic/int-ll64.h \ + arch/arm/include/generated/uapi/asm/bitsperlong.h \ + include/asm-generic/bitsperlong.h \ + include/uapi/asm-generic/bitsperlong.h \ + include/uapi/linux/posix_types.h \ + include/linux/stddef.h \ + include/uapi/linux/stddef.h \ + include/linux/compiler_types.h \ + arch/arm/include/uapi/asm/posix_types.h \ + include/uapi/asm-generic/posix_types.h \ + include/linux/poison.h \ + $(wildcard include/config/illegal/pointer/value.h) \ + $(wildcard include/config/page/poisoning/zero.h) \ + include/linux/const.h \ + include/vdso/const.h \ + include/uapi/linux/const.h \ + include/linux/kernel.h \ + $(wildcard include/config/preempt/voluntary.h) \ + $(wildcard include/config/debug/atomic/sleep.h) \ + $(wildcard include/config/preempt/rt.h) \ + $(wildcard include/config/mmu.h) \ + $(wildcard include/config/prove/locking.h) \ + $(wildcard include/config/panic/timeout.h) \ + include/linux/limits.h \ + include/uapi/linux/limits.h \ + include/vdso/limits.h \ + include/linux/linkage.h \ + $(wildcard include/config/arch/use/sym/annotations.h) \ + include/linux/stringify.h \ + include/linux/export.h \ + $(wildcard include/config/modversions.h) \ + $(wildcard include/config/module/rel/crcs.h) \ + $(wildcard include/config/have/arch/prel32/relocations.h) \ + $(wildcard include/config/trim/unused/ksyms.h) \ + arch/arm/include/asm/linkage.h \ + include/linux/compiler.h \ + $(wildcard include/config/trace/branch/profiling.h) \ + $(wildcard include/config/profile/all/branches.h) \ + $(wildcard include/config/stack/validation.h) \ + arch/arm/include/generated/asm/rwonce.h \ + include/asm-generic/rwonce.h \ + include/linux/kasan-checks.h \ + $(wildcard include/config/kasan.h) \ + include/linux/kcsan-checks.h \ + $(wildcard include/config/kcsan.h) \ + $(wildcard include/config/kcsan/ignore/atomics.h) \ + include/linux/bitops.h \ + include/linux/bits.h \ + include/vdso/bits.h \ + include/linux/build_bug.h \ + arch/arm/include/asm/bitops.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) \ + include/linux/typecheck.h \ + arch/arm/include/asm/irqflags.h \ + $(wildcard include/config/cpu/v7m.h) \ + arch/arm/include/asm/ptrace.h \ + $(wildcard include/config/arm/thumb.h) \ + $(wildcard include/config/thumb2/kernel.h) \ + arch/arm/include/uapi/asm/ptrace.h \ + $(wildcard include/config/cpu/endian/be8.h) \ + arch/arm/include/asm/hwcap.h \ + arch/arm/include/uapi/asm/hwcap.h \ + include/asm-generic/irqflags.h \ + arch/arm/include/asm/percpu.h \ + $(wildcard include/config/cpu/v6.h) \ + include/asm-generic/percpu.h \ + $(wildcard include/config/debug/preempt.h) \ + $(wildcard include/config/have/setup/per/cpu/area.h) \ + include/linux/threads.h \ + $(wildcard include/config/nr/cpus.h) \ + $(wildcard include/config/base/small.h) \ + include/linux/percpu-defs.h \ + $(wildcard include/config/debug/force/weak/per/cpu.h) \ + $(wildcard include/config/amd/mem/encrypt.h) \ + arch/arm/include/asm/barrier.h \ + $(wildcard include/config/cpu/32v6k.h) \ + $(wildcard include/config/cpu/xsc3.h) \ + $(wildcard include/config/cpu/fa526.h) \ + $(wildcard include/config/arm/heavy/mb.h) \ + $(wildcard include/config/arm/dma/mem/bufferable.h) \ + $(wildcard include/config/cpu/spectre.h) \ + include/asm-generic/barrier.h \ + include/asm-generic/bitops/non-atomic.h \ + include/asm-generic/bitops/builtin-__fls.h \ + include/asm-generic/bitops/builtin-__ffs.h \ + include/asm-generic/bitops/builtin-fls.h \ + include/asm-generic/bitops/builtin-ffs.h \ + include/asm-generic/bitops/ffz.h \ + include/asm-generic/bitops/fls64.h \ + include/asm-generic/bitops/sched.h \ + include/asm-generic/bitops/hweight.h \ + include/asm-generic/bitops/arch_hweight.h \ + include/asm-generic/bitops/const_hweight.h \ + include/asm-generic/bitops/lock.h \ + include/linux/atomic.h \ + arch/arm/include/asm/atomic.h \ + $(wildcard include/config/generic/atomic64.h) \ + $(wildcard include/config/arm/lpae.h) \ + include/linux/prefetch.h \ + arch/arm/include/asm/processor.h \ + $(wildcard include/config/have/hw/breakpoint.h) \ + $(wildcard include/config/binfmt/elf/fdpic.h) \ + arch/arm/include/asm/hw_breakpoint.h \ + arch/arm/include/asm/unified.h \ + arch/arm/include/asm/vdso/processor.h \ + $(wildcard include/config/arm/errata/754327.h) \ + arch/arm/include/asm/cache.h \ + $(wildcard include/config/arm/l1/cache/shift.h) \ + $(wildcard include/config/aeabi.h) \ + arch/arm/include/asm/cmpxchg.h \ + $(wildcard include/config/cpu/sa1100.h) \ + $(wildcard include/config/cpu/sa110.h) \ + include/asm-generic/cmpxchg-local.h \ + include/linux/atomic-fallback.h \ + include/asm-generic/atomic-long.h \ + include/asm-generic/bitops/find.h \ + $(wildcard include/config/generic/find/first/bit.h) \ + include/asm-generic/bitops/le.h \ + arch/arm/include/uapi/asm/byteorder.h \ + include/linux/byteorder/little_endian.h \ + include/uapi/linux/byteorder/little_endian.h \ + include/linux/swab.h \ + include/uapi/linux/swab.h \ + arch/arm/include/asm/swab.h \ + arch/arm/include/uapi/asm/swab.h \ + include/linux/byteorder/generic.h \ + include/asm-generic/bitops/ext2-atomic-setbit.h \ + include/linux/log2.h \ + $(wildcard include/config/arch/has/ilog2/u32.h) \ + $(wildcard include/config/arch/has/ilog2/u64.h) \ + include/linux/minmax.h \ + include/linux/printk.h \ + $(wildcard include/config/message/loglevel/default.h) \ + $(wildcard include/config/console/loglevel/default.h) \ + $(wildcard include/config/console/loglevel/quiet.h) \ + $(wildcard include/config/early/printk.h) \ + $(wildcard include/config/printk/nmi.h) \ + $(wildcard include/config/printk.h) \ + $(wildcard include/config/dynamic/debug.h) \ + $(wildcard include/config/dynamic/debug/core.h) \ + include/linux/init.h \ + $(wildcard include/config/strict/kernel/rwx.h) \ + $(wildcard include/config/strict/module/rwx.h) \ + include/linux/kern_levels.h \ + include/linux/cache.h \ + $(wildcard include/config/arch/has/cache/line/size.h) \ + include/uapi/linux/kernel.h \ + include/uapi/linux/sysinfo.h \ + include/linux/ratelimit_types.h \ + include/uapi/linux/param.h \ + arch/arm/include/generated/uapi/asm/param.h \ + include/asm-generic/param.h \ + $(wildcard include/config/hz.h) \ + include/uapi/asm-generic/param.h \ + include/linux/spinlock_types.h \ + $(wildcard include/config/debug/spinlock.h) \ + $(wildcard include/config/debug/lock/alloc.h) \ + arch/arm/include/asm/spinlock_types.h \ + include/linux/lockdep_types.h \ + $(wildcard include/config/prove/raw/lock/nesting.h) \ + $(wildcard include/config/preempt/lock.h) \ + $(wildcard include/config/lockdep.h) \ + $(wildcard include/config/lock/stat.h) \ + include/linux/rwlock_types.h \ + arch/arm/include/asm/div64.h \ + arch/arm/include/asm/compiler.h \ + include/asm-generic/div64.h \ + include/linux/stat.h \ + arch/arm/include/uapi/asm/stat.h \ + include/uapi/linux/stat.h \ + include/linux/time.h \ + $(wildcard include/config/arch/uses/gettimeoffset.h) \ + $(wildcard include/config/posix/timers.h) \ + include/linux/math64.h \ + $(wildcard include/config/arch/supports/int128.h) \ + include/vdso/math64.h \ + include/linux/time64.h \ + include/vdso/time64.h \ + include/uapi/linux/time.h \ + include/uapi/linux/time_types.h \ + include/linux/time32.h \ + include/linux/timex.h \ + include/uapi/linux/timex.h \ + arch/arm/include/asm/timex.h \ + include/vdso/time32.h \ + include/vdso/time.h \ + include/linux/uidgid.h \ + $(wildcard include/config/multiuser.h) \ + $(wildcard include/config/user/ns.h) \ + include/linux/highuid.h \ + include/linux/kmod.h \ + include/linux/umh.h \ + include/linux/gfp.h \ + $(wildcard include/config/highmem.h) \ + $(wildcard include/config/zone/dma.h) \ + $(wildcard include/config/zone/dma32.h) \ + $(wildcard include/config/zone/device.h) \ + $(wildcard include/config/numa.h) \ + $(wildcard include/config/pm/sleep.h) \ + $(wildcard include/config/contig/alloc.h) \ + $(wildcard include/config/cma.h) \ + include/linux/mmdebug.h \ + $(wildcard include/config/debug/vm.h) \ + $(wildcard include/config/debug/virtual.h) \ + $(wildcard include/config/debug/vm/pgflags.h) \ + include/linux/bug.h \ + $(wildcard include/config/bug/on/data/corruption.h) \ + arch/arm/include/asm/bug.h \ + $(wildcard include/config/debug/bugverbose.h) \ + arch/arm/include/asm/opcodes.h \ + $(wildcard include/config/cpu/endian/be32.h) \ + include/asm-generic/bug.h \ + $(wildcard include/config/bug.h) \ + $(wildcard include/config/generic/bug/relative/pointers.h) \ + include/linux/instrumentation.h \ + $(wildcard include/config/debug/entry.h) \ + include/linux/mmzone.h \ + $(wildcard include/config/force/max/zoneorder.h) \ + $(wildcard include/config/memory/isolation.h) \ + $(wildcard include/config/zsmalloc.h) \ + $(wildcard include/config/shadow/call/stack.h) \ + $(wildcard include/config/memcg.h) \ + $(wildcard include/config/need/multiple/nodes.h) \ + $(wildcard include/config/sparsemem.h) \ + $(wildcard include/config/memory/hotplug.h) \ + $(wildcard include/config/compaction.h) \ + $(wildcard include/config/discontigmem.h) \ + $(wildcard include/config/transparent/hugepage.h) \ + $(wildcard include/config/flat/node/mem/map.h) \ + $(wildcard include/config/page/extension.h) \ + $(wildcard include/config/deferred/struct/page/init.h) \ + $(wildcard include/config/have/memoryless/nodes.h) \ + $(wildcard include/config/flatmem.h) \ + $(wildcard include/config/sparsemem/vmemmap.h) \ + $(wildcard include/config/sparsemem/extreme.h) \ + $(wildcard include/config/memory/hotremove.h) \ + $(wildcard include/config/have/arch/pfn/valid.h) \ + $(wildcard include/config/holes/in/zone.h) \ + $(wildcard include/config/arch/has/holes/memorymodel.h) \ + include/linux/spinlock.h \ + $(wildcard include/config/preemption.h) \ + include/linux/preempt.h \ + $(wildcard include/config/preempt/count.h) \ + $(wildcard include/config/trace/preempt/toggle.h) \ + $(wildcard include/config/preempt/notifiers.h) \ + arch/arm/include/generated/asm/preempt.h \ + include/asm-generic/preempt.h \ + include/linux/thread_info.h \ + $(wildcard include/config/thread/info/in/task.h) \ + $(wildcard include/config/have/arch/within/stack/frames.h) \ + $(wildcard include/config/hardened/usercopy.h) \ + include/linux/restart_block.h \ + include/linux/errno.h \ + include/uapi/linux/errno.h \ + arch/arm/include/generated/uapi/asm/errno.h \ + include/uapi/asm-generic/errno.h \ + include/uapi/asm-generic/errno-base.h \ + arch/arm/include/asm/thread_info.h \ + $(wildcard include/config/stackprotector/per/task.h) \ + $(wildcard include/config/crunch.h) \ + $(wildcard include/config/arm/thumbee.h) \ + arch/arm/include/asm/fpstate.h \ + $(wildcard include/config/vfpv3.h) \ + $(wildcard include/config/iwmmxt.h) \ + arch/arm/include/asm/page.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/copy/fa.h) \ + $(wildcard include/config/cpu/xscale.h) \ + $(wildcard include/config/cpu/copy/v6.h) \ + $(wildcard include/config/kuser/helpers.h) \ + arch/arm/include/asm/glue.h \ + arch/arm/include/asm/pgtable-3level-types.h \ + arch/arm/include/asm/memory.h \ + $(wildcard include/config/need/mach/memory/h.h) \ + $(wildcard include/config/page/offset.h) \ + $(wildcard include/config/dram/base.h) \ + $(wildcard include/config/dram/size.h) \ + $(wildcard include/config/xip/kernel.h) \ + $(wildcard include/config/have/tcm.h) \ + $(wildcard include/config/arm/patch/phys/virt.h) \ + $(wildcard include/config/phys/offset.h) \ + $(wildcard include/config/xip/phys/addr.h) \ + include/linux/sizes.h \ + include/asm-generic/memory_model.h \ + include/linux/pfn.h \ + include/asm-generic/getorder.h \ + include/linux/bottom_half.h \ + include/linux/lockdep.h \ + $(wildcard include/config/debug/locking/api/selftests.h) \ + include/linux/smp.h \ + $(wildcard include/config/up/late/init.h) \ + include/linux/cpumask.h \ + $(wildcard include/config/cpumask/offstack.h) \ + $(wildcard include/config/hotplug/cpu.h) \ + $(wildcard include/config/debug/per/cpu/maps.h) \ + include/linux/bitmap.h \ + include/linux/string.h \ + $(wildcard include/config/binary/printf.h) \ + $(wildcard include/config/fortify/source.h) \ + include/uapi/linux/string.h \ + arch/arm/include/asm/string.h \ + $(wildcard include/config/bcm2835/fast/memcpy.h) \ + include/linux/smp_types.h \ + include/linux/llist.h \ + $(wildcard include/config/arch/have/nmi/safe/cmpxchg.h) \ + arch/arm/include/asm/smp.h \ + arch/arm/include/generated/asm/mmiowb.h \ + include/asm-generic/mmiowb.h \ + $(wildcard include/config/mmiowb.h) \ + arch/arm/include/asm/spinlock.h \ + include/linux/rwlock.h \ + $(wildcard include/config/preempt.h) \ + include/linux/spinlock_api_smp.h \ + $(wildcard include/config/inline/spin/lock.h) \ + $(wildcard include/config/inline/spin/lock/bh.h) \ + $(wildcard include/config/inline/spin/lock/irq.h) \ + $(wildcard include/config/inline/spin/lock/irqsave.h) \ + $(wildcard include/config/inline/spin/trylock.h) \ + $(wildcard include/config/inline/spin/trylock/bh.h) \ + $(wildcard include/config/uninline/spin/unlock.h) \ + $(wildcard include/config/inline/spin/unlock/bh.h) \ + $(wildcard include/config/inline/spin/unlock/irq.h) \ + $(wildcard include/config/inline/spin/unlock/irqrestore.h) \ + $(wildcard include/config/generic/lockbreak.h) \ + include/linux/rwlock_api_smp.h \ + $(wildcard include/config/inline/read/lock.h) \ + $(wildcard include/config/inline/write/lock.h) \ + $(wildcard include/config/inline/read/lock/bh.h) \ + $(wildcard include/config/inline/write/lock/bh.h) \ + $(wildcard include/config/inline/read/lock/irq.h) \ + $(wildcard include/config/inline/write/lock/irq.h) \ + $(wildcard include/config/inline/read/lock/irqsave.h) \ + $(wildcard include/config/inline/write/lock/irqsave.h) \ + $(wildcard include/config/inline/read/trylock.h) \ + $(wildcard include/config/inline/write/trylock.h) \ + $(wildcard include/config/inline/read/unlock.h) \ + $(wildcard include/config/inline/write/unlock.h) \ + $(wildcard include/config/inline/read/unlock/bh.h) \ + $(wildcard include/config/inline/write/unlock/bh.h) \ + $(wildcard include/config/inline/read/unlock/irq.h) \ + $(wildcard include/config/inline/write/unlock/irq.h) \ + $(wildcard include/config/inline/read/unlock/irqrestore.h) \ + $(wildcard include/config/inline/write/unlock/irqrestore.h) \ + include/linux/wait.h \ + arch/arm/include/generated/asm/current.h \ + include/asm-generic/current.h \ + include/uapi/linux/wait.h \ + include/linux/numa.h \ + $(wildcard include/config/nodes/shift.h) \ + $(wildcard include/config/numa/keep/meminfo.h) \ + include/linux/seqlock.h \ + include/linux/mutex.h \ + $(wildcard include/config/mutex/spin/on/owner.h) \ + $(wildcard include/config/debug/mutexes.h) \ + include/linux/osq_lock.h \ + include/linux/debug_locks.h \ + include/linux/ww_mutex.h \ + $(wildcard include/config/debug/ww/mutex/slowpath.h) \ + include/linux/nodemask.h \ + include/linux/pageblock-flags.h \ + $(wildcard include/config/hugetlb/page.h) \ + $(wildcard include/config/hugetlb/page/size/variable.h) \ + include/linux/page-flags-layout.h \ + $(wildcard include/config/numa/balancing.h) \ + $(wildcard include/config/kasan/sw/tags.h) \ + include/generated/bounds.h \ + include/linux/mm_types.h \ + $(wildcard include/config/have/aligned/struct/page.h) \ + $(wildcard include/config/userfaultfd.h) \ + $(wildcard include/config/swap.h) \ + $(wildcard include/config/have/arch/compat/mmap/bases.h) \ + $(wildcard include/config/membarrier.h) \ + $(wildcard include/config/aio.h) \ + $(wildcard include/config/mmu/notifier.h) \ + $(wildcard include/config/arch/want/batched/unmap/tlb/flush.h) \ + $(wildcard include/config/iommu/support.h) \ + include/linux/mm_types_task.h \ + $(wildcard include/config/split/ptlock/cpus.h) \ + $(wildcard include/config/arch/enable/split/pmd/ptlock.h) \ + include/linux/auxvec.h \ + include/uapi/linux/auxvec.h \ + arch/arm/include/asm/auxvec.h \ + arch/arm/include/uapi/asm/auxvec.h \ + include/linux/rbtree.h \ + include/linux/rcupdate.h \ + $(wildcard include/config/preempt/rcu.h) \ + $(wildcard include/config/tiny/rcu.h) \ + $(wildcard include/config/tasks/rcu/generic.h) \ + $(wildcard include/config/rcu/stall/common.h) \ + $(wildcard include/config/no/hz/full.h) \ + $(wildcard include/config/rcu/nocb/cpu.h) \ + $(wildcard include/config/tasks/rcu.h) \ + $(wildcard include/config/tasks/trace/rcu.h) \ + $(wildcard include/config/tasks/rude/rcu.h) \ + $(wildcard include/config/tree/rcu.h) \ + $(wildcard include/config/debug/objects/rcu/head.h) \ + $(wildcard include/config/prove/rcu.h) \ + $(wildcard include/config/rcu/boost.h) \ + $(wildcard include/config/arch/weak/release/acquire.h) \ + include/linux/rcutree.h \ + include/linux/rwsem.h \ + $(wildcard include/config/rwsem/spin/on/owner.h) \ + $(wildcard include/config/debug/rwsems.h) \ + include/linux/err.h \ + include/linux/completion.h \ + include/linux/swait.h \ + include/linux/uprobes.h \ + $(wildcard include/config/uprobes.h) \ + include/linux/workqueue.h \ + $(wildcard include/config/debug/objects/work.h) \ + $(wildcard include/config/freezer.h) \ + $(wildcard include/config/wq/watchdog.h) \ + include/linux/timer.h \ + $(wildcard include/config/debug/objects/timers.h) \ + $(wildcard include/config/no/hz/common.h) \ + include/linux/ktime.h \ + include/linux/jiffies.h \ + include/vdso/jiffies.h \ + include/generated/timeconst.h \ + include/vdso/ktime.h \ + include/linux/timekeeping.h \ + include/linux/timekeeping32.h \ + include/linux/debugobjects.h \ + $(wildcard include/config/debug/objects.h) \ + $(wildcard include/config/debug/objects/free.h) \ + arch/arm/include/asm/mmu.h \ + $(wildcard include/config/cpu/has/asid.h) \ + $(wildcard include/config/vdso.h) \ + include/linux/page-flags.h \ + $(wildcard include/config/arch/uses/pg/uncached.h) \ + $(wildcard include/config/memory/failure.h) \ + $(wildcard include/config/idle/page/tracking.h) \ + $(wildcard include/config/thp/swap.h) \ + $(wildcard include/config/ksm.h) \ + include/linux/memory_hotplug.h \ + $(wildcard include/config/arch/has/add/pages.h) \ + $(wildcard include/config/have/arch/nodedata/extension.h) \ + $(wildcard include/config/have/bootmem/info/node.h) \ + include/linux/notifier.h \ + include/linux/srcu.h \ + $(wildcard include/config/tiny/srcu.h) \ + $(wildcard include/config/srcu.h) \ + include/linux/rcu_segcblist.h \ + include/linux/srcutree.h \ + include/linux/rcu_node_tree.h \ + $(wildcard include/config/rcu/fanout.h) \ + $(wildcard include/config/rcu/fanout/leaf.h) \ + include/linux/topology.h \ + $(wildcard include/config/use/percpu/numa/node/id.h) \ + $(wildcard include/config/sched/smt.h) \ + include/linux/arch_topology.h \ + $(wildcard include/config/generic/arch/topology.h) \ + include/linux/percpu.h \ + $(wildcard include/config/need/per/cpu/embed/first/chunk.h) \ + $(wildcard include/config/need/per/cpu/page/first/chunk.h) \ + arch/arm/include/asm/topology.h \ + $(wildcard include/config/arm/cpu/topology.h) \ + $(wildcard include/config/bl/switcher.h) \ + include/asm-generic/topology.h \ + include/linux/sysctl.h \ + $(wildcard include/config/sysctl.h) \ + include/uapi/linux/sysctl.h \ + include/linux/elf.h \ + $(wildcard include/config/arch/use/gnu/property.h) \ + $(wildcard include/config/arch/have/elf/prot.h) \ + arch/arm/include/asm/elf.h \ + arch/arm/include/asm/vdso_datapage.h \ + include/vdso/datapage.h \ + $(wildcard include/config/arch/has/vdso/data.h) \ + include/uapi/asm-generic/errno-base.h \ + include/vdso/clocksource.h \ + $(wildcard include/config/generic/gettimeofday.h) \ + arch/arm/include/asm/vdso/clocksource.h \ + include/vdso/processor.h \ + arch/arm/include/asm/vdso/gettimeofday.h \ + $(wildcard include/config/arm/arch/timer.h) \ + arch/arm/include/asm/unistd.h \ + $(wildcard include/config/oabi/compat.h) \ + arch/arm/include/uapi/asm/unistd.h \ + arch/arm/include/generated/uapi/asm/unistd-eabi.h \ + arch/arm/include/generated/uapi/asm/unistd-common.h \ + arch/arm/include/generated/asm/unistd-nr.h \ + arch/arm/include/asm/vdso/cp15.h \ + $(wildcard include/config/cpu/cp15.h) \ + arch/arm/include/asm/user.h \ + include/uapi/linux/elf.h \ + include/uapi/linux/elf-em.h \ + include/linux/kobject.h \ + $(wildcard include/config/uevent/helper.h) \ + $(wildcard include/config/debug/kobject/release.h) \ + include/linux/sysfs.h \ + include/linux/kernfs.h \ + $(wildcard include/config/kernfs.h) \ + include/linux/idr.h \ + include/linux/radix-tree.h \ + include/linux/xarray.h \ + $(wildcard include/config/xarray/multi.h) \ + include/linux/kconfig.h \ + include/linux/local_lock.h \ + include/linux/local_lock_internal.h \ + include/linux/kobject_ns.h \ + include/linux/kref.h \ + include/linux/refcount.h \ + include/linux/moduleparam.h \ + $(wildcard include/config/alpha.h) \ + $(wildcard include/config/ia64.h) \ + $(wildcard include/config/ppc64.h) \ + include/linux/jump_label.h \ + $(wildcard include/config/have/arch/jump/label/relative.h) \ + arch/arm/include/asm/jump_label.h \ + include/linux/rbtree_latch.h \ + include/linux/error-injection.h \ + include/asm-generic/error-injection.h \ + include/linux/tracepoint-defs.h \ + include/linux/static_key.h \ + include/linux/static_call_types.h \ + $(wildcard include/config/have/static/call.h) \ + arch/arm/include/asm/module.h \ + $(wildcard include/config/arm/unwind.h) \ + $(wildcard include/config/arm/module/plts.h) \ + include/asm-generic/module.h \ + $(wildcard include/config/have/mod/arch/specific.h) \ + $(wildcard include/config/modules/use/elf/rel.h) \ + $(wildcard include/config/modules/use/elf/rela.h) \ + include/linux/slab.h \ + $(wildcard include/config/debug/slab.h) \ + $(wildcard include/config/failslab.h) \ + $(wildcard include/config/memcg/kmem.h) \ + $(wildcard include/config/have/hardened/usercopy/allocator.h) \ + $(wildcard include/config/slab.h) \ + $(wildcard include/config/slub.h) \ + $(wildcard include/config/slob.h) \ + include/linux/overflow.h \ + include/linux/percpu-refcount.h \ + include/linux/kasan.h \ + $(wildcard include/config/kasan/vmalloc.h) \ + $(wildcard include/config/kasan/generic.h) \ + $(wildcard include/config/kasan/inline.h) \ + include/linux/usb.h \ + $(wildcard include/config/usb/mon.h) \ + $(wildcard include/config/pm.h) \ + $(wildcard include/config/acpi.h) \ + $(wildcard include/config/usb/led/trig.h) \ + include/linux/mod_devicetable.h \ + include/linux/uuid.h \ + include/uapi/linux/uuid.h \ + include/linux/usb/ch9.h \ + include/linux/device.h \ + $(wildcard include/config/debug/devres.h) \ + $(wildcard include/config/energy/model.h) \ + $(wildcard include/config/generic/msi/irq/domain.h) \ + $(wildcard include/config/pinctrl.h) \ + $(wildcard include/config/generic/msi/irq.h) \ + $(wildcard include/config/dma/ops.h) \ + $(wildcard include/config/dma/declare/coherent.h) \ + $(wildcard include/config/dma/cma.h) \ + $(wildcard include/config/arch/has/sync/dma/for/device.h) \ + $(wildcard include/config/arch/has/sync/dma/for/cpu.h) \ + $(wildcard include/config/arch/has/sync/dma/for/cpu/all.h) \ + $(wildcard include/config/dma/ops/bypass.h) \ + $(wildcard include/config/of.h) \ + $(wildcard include/config/devtmpfs.h) \ + $(wildcard include/config/sysfs/deprecated.h) \ + include/linux/dev_printk.h \ + include/linux/ratelimit.h \ + include/linux/sched.h \ + $(wildcard include/config/virt/cpu/accounting/native.h) \ + $(wildcard include/config/sched/info.h) \ + $(wildcard include/config/schedstats.h) \ + $(wildcard include/config/fair/group/sched.h) \ + $(wildcard include/config/rt/group/sched.h) \ + $(wildcard include/config/rt/mutexes.h) \ + $(wildcard include/config/uclamp/task.h) \ + $(wildcard include/config/uclamp/buckets/count.h) \ + $(wildcard include/config/cgroup/sched.h) \ + $(wildcard include/config/blk/dev/io/trace.h) \ + $(wildcard include/config/psi.h) \ + $(wildcard include/config/compat/brk.h) \ + $(wildcard include/config/cgroups.h) \ + $(wildcard include/config/blk/cgroup.h) \ + $(wildcard include/config/stackprotector.h) \ + $(wildcard include/config/arch/has/scaled/cputime.h) \ + $(wildcard include/config/virt/cpu/accounting/gen.h) \ + $(wildcard include/config/posix/cputimers.h) \ + $(wildcard include/config/posix/cpu/timers/task/work.h) \ + $(wildcard include/config/keys.h) \ + $(wildcard include/config/sysvipc.h) \ + $(wildcard include/config/detect/hung/task.h) \ + $(wildcard include/config/io/uring.h) \ + $(wildcard include/config/audit.h) \ + $(wildcard include/config/auditsyscall.h) \ + $(wildcard include/config/ubsan.h) \ + $(wildcard include/config/ubsan/trap.h) \ + $(wildcard include/config/block.h) \ + $(wildcard include/config/task/xacct.h) \ + $(wildcard include/config/cpusets.h) \ + $(wildcard include/config/x86/cpu/resctrl.h) \ + $(wildcard include/config/futex.h) \ + $(wildcard include/config/compat.h) \ + $(wildcard include/config/perf/events.h) \ + $(wildcard include/config/rseq.h) \ + $(wildcard include/config/task/delay/acct.h) \ + $(wildcard include/config/fault/injection.h) \ + $(wildcard include/config/latencytop.h) \ + $(wildcard include/config/kunit.h) \ + $(wildcard include/config/function/graph/tracer.h) \ + $(wildcard include/config/bcache.h) \ + $(wildcard include/config/vmap/stack.h) \ + $(wildcard include/config/security.h) \ + $(wildcard include/config/gcc/plugin/stackleak.h) \ + $(wildcard include/config/x86/mce.h) \ + $(wildcard include/config/arch/task/struct/on/stack.h) \ + $(wildcard include/config/debug/rseq.h) \ + include/uapi/linux/sched.h \ + include/linux/pid.h \ + include/linux/rculist.h \ + $(wildcard include/config/prove/rcu/list.h) \ + include/linux/sem.h \ + include/uapi/linux/sem.h \ + include/linux/ipc.h \ + include/linux/rhashtable-types.h \ + include/uapi/linux/ipc.h \ + arch/arm/include/generated/uapi/asm/ipcbuf.h \ + include/uapi/asm-generic/ipcbuf.h \ + arch/arm/include/generated/uapi/asm/sembuf.h \ + include/uapi/asm-generic/sembuf.h \ + include/linux/shm.h \ + include/uapi/linux/shm.h \ + include/uapi/asm-generic/hugetlb_encode.h \ + arch/arm/include/generated/uapi/asm/shmbuf.h \ + include/uapi/asm-generic/shmbuf.h \ + arch/arm/include/asm/shmparam.h \ + include/linux/kcov.h \ + include/uapi/linux/kcov.h \ + include/linux/plist.h \ + $(wildcard include/config/debug/plist.h) \ + include/linux/hrtimer.h \ + $(wildcard include/config/high/res/timers.h) \ + $(wildcard include/config/time/low/res.h) \ + $(wildcard include/config/timerfd.h) \ + include/linux/hrtimer_defs.h \ + include/linux/timerqueue.h \ + include/linux/seccomp.h \ + $(wildcard include/config/seccomp.h) \ + $(wildcard include/config/have/arch/seccomp/filter.h) \ + $(wildcard include/config/seccomp/filter.h) \ + $(wildcard include/config/checkpoint/restore.h) \ + include/uapi/linux/seccomp.h \ + arch/arm/include/generated/asm/seccomp.h \ + include/asm-generic/seccomp.h \ + include/uapi/linux/unistd.h \ + include/linux/resource.h \ + include/uapi/linux/resource.h \ + arch/arm/include/generated/uapi/asm/resource.h \ + include/asm-generic/resource.h \ + include/uapi/asm-generic/resource.h \ + include/linux/latencytop.h \ + include/linux/sched/prio.h \ + include/linux/sched/types.h \ + include/linux/signal_types.h \ + $(wildcard include/config/old/sigaction.h) \ + include/uapi/linux/signal.h \ + arch/arm/include/asm/signal.h \ + arch/arm/include/uapi/asm/signal.h \ + include/uapi/asm-generic/signal-defs.h \ + arch/arm/include/uapi/asm/sigcontext.h \ + arch/arm/include/generated/uapi/asm/siginfo.h \ + include/uapi/asm-generic/siginfo.h \ + include/linux/task_io_accounting.h \ + $(wildcard include/config/task/io/accounting.h) \ + include/linux/posix-timers.h \ + include/linux/alarmtimer.h \ + $(wildcard include/config/rtc/class.h) \ + include/linux/task_work.h \ + include/uapi/linux/rseq.h \ + include/linux/kcsan.h \ + include/linux/energy_model.h \ + include/linux/sched/cpufreq.h \ + $(wildcard include/config/cpu/freq.h) \ + include/linux/sched/topology.h \ + $(wildcard include/config/sched/debug.h) \ + $(wildcard include/config/sched/mc.h) \ + include/linux/sched/idle.h \ + include/linux/sched/sd_flags.h \ + include/linux/ioport.h \ + $(wildcard include/config/io/strict/devmem.h) \ + include/linux/klist.h \ + include/linux/pm.h \ + $(wildcard include/config/vt/console/sleep.h) \ + $(wildcard include/config/pm/clk.h) \ + $(wildcard include/config/pm/generic/domains.h) \ + include/linux/device/bus.h \ + include/linux/device/class.h \ + include/linux/device/driver.h \ + arch/arm/include/asm/device.h \ + $(wildcard include/config/dmabounce.h) \ + $(wildcard include/config/arm/dma/use/iommu.h) \ + $(wildcard include/config/arch/omap.h) \ + include/linux/pm_wakeup.h \ + include/uapi/linux/usb/ch9.h \ + include/linux/delay.h \ + arch/arm/include/asm/delay.h \ + include/linux/interrupt.h \ + $(wildcard include/config/irq/forced/threading.h) \ + $(wildcard include/config/generic/irq/probe.h) \ + $(wildcard include/config/proc/fs.h) \ + $(wildcard include/config/irq/timings.h) \ + include/linux/irqreturn.h \ + include/linux/irqnr.h \ + include/uapi/linux/irqnr.h \ + include/linux/hardirq.h \ + include/linux/context_tracking_state.h \ + $(wildcard include/config/context/tracking.h) \ + include/linux/ftrace_irq.h \ + $(wildcard include/config/hwlat/tracer.h) \ + include/linux/vtime.h \ + $(wildcard include/config/virt/cpu/accounting.h) \ + $(wildcard include/config/irq/time/accounting.h) \ + arch/arm/include/asm/hardirq.h \ + arch/arm/include/asm/irq.h \ + $(wildcard include/config/sparse/irq.h) \ + include/linux/irq_cpustat.h \ + arch/arm/include/asm/sections.h \ + include/asm-generic/sections.h \ + include/linux/fs.h \ + $(wildcard include/config/read/only/thp/for/fs.h) \ + $(wildcard include/config/fs/posix/acl.h) \ + $(wildcard include/config/cgroup/writeback.h) \ + $(wildcard include/config/ima.h) \ + $(wildcard include/config/file/locking.h) \ + $(wildcard include/config/fsnotify.h) \ + $(wildcard include/config/fs/encryption.h) \ + $(wildcard include/config/fs/verity.h) \ + $(wildcard include/config/epoll.h) \ + $(wildcard include/config/unicode.h) \ + $(wildcard include/config/quota.h) \ + $(wildcard include/config/fs/dax.h) \ + $(wildcard include/config/mandatory/file/locking.h) \ + $(wildcard include/config/migration.h) \ + include/linux/wait_bit.h \ + include/linux/kdev_t.h \ + include/uapi/linux/kdev_t.h \ + include/linux/dcache.h \ + include/linux/rculist_bl.h \ + include/linux/list_bl.h \ + include/linux/bit_spinlock.h \ + include/linux/lockref.h \ + $(wildcard include/config/arch/use/cmpxchg/lockref.h) \ + include/linux/stringhash.h \ + $(wildcard include/config/dcache/word/access.h) \ + include/linux/hash.h \ + $(wildcard include/config/have/arch/hash.h) \ + include/linux/path.h \ + include/linux/list_lru.h \ + include/linux/shrinker.h \ + include/linux/capability.h \ + include/uapi/linux/capability.h \ + include/linux/semaphore.h \ + include/linux/fcntl.h \ + $(wildcard include/config/arch/32bit/off/t.h) \ + include/uapi/linux/fcntl.h \ + arch/arm/include/uapi/asm/fcntl.h \ + include/uapi/asm-generic/fcntl.h \ + include/uapi/linux/openat2.h \ + include/linux/migrate_mode.h \ + include/linux/percpu-rwsem.h \ + include/linux/rcuwait.h \ + include/linux/sched/signal.h \ + $(wildcard include/config/sched/autogroup.h) \ + $(wildcard include/config/bsd/process/acct.h) \ + $(wildcard include/config/taskstats.h) \ + $(wildcard include/config/stack/growsup.h) \ + include/linux/signal.h \ + include/linux/sched/jobctl.h \ + include/linux/sched/task.h \ + $(wildcard include/config/have/exit/thread.h) \ + $(wildcard include/config/arch/wants/dynamic/task/struct.h) \ + $(wildcard include/config/have/arch/thread/struct/whitelist.h) \ + include/linux/uaccess.h \ + $(wildcard include/config/set/fs.h) \ + include/linux/fault-inject-usercopy.h \ + $(wildcard include/config/fault/injection/usercopy.h) \ + include/linux/instrumented.h \ + arch/arm/include/asm/uaccess.h \ + $(wildcard include/config/cpu/sw/domain/pan.h) \ + $(wildcard include/config/cpu/use/domains.h) \ + $(wildcard include/config/uaccess/with/memcpy.h) \ + arch/arm/include/asm/domain.h \ + $(wildcard include/config/io/36.h) \ + $(wildcard include/config/cpu/cp15/mmu.h) \ + arch/arm/include/generated/asm/extable.h \ + include/asm-generic/extable.h \ + include/linux/cred.h \ + $(wildcard include/config/debug/credentials.h) \ + include/linux/key.h \ + $(wildcard include/config/key/notifications.h) \ + $(wildcard include/config/net.h) \ + include/linux/assoc_array.h \ + $(wildcard include/config/associative/array.h) \ + include/linux/sched/user.h \ + $(wildcard include/config/fanotify.h) \ + $(wildcard include/config/posix/mqueue.h) \ + $(wildcard include/config/bpf/syscall.h) \ + $(wildcard include/config/watch/queue.h) \ + include/linux/rcu_sync.h \ + include/linux/delayed_call.h \ + include/linux/errseq.h \ + include/linux/ioprio.h \ + include/linux/sched/rt.h \ + include/linux/iocontext.h \ + include/linux/fs_types.h \ + include/uapi/linux/fs.h \ + include/uapi/linux/ioctl.h \ + arch/arm/include/generated/uapi/asm/ioctl.h \ + include/asm-generic/ioctl.h \ + include/uapi/asm-generic/ioctl.h \ + include/linux/quota.h \ + $(wildcard include/config/quota/netlink/interface.h) \ + include/linux/percpu_counter.h \ + include/uapi/linux/dqblk_xfs.h \ + include/linux/dqblk_v1.h \ + include/linux/dqblk_v2.h \ + include/linux/dqblk_qtree.h \ + include/linux/projid.h \ + include/uapi/linux/quota.h \ + include/linux/nfs_fs_i.h \ + include/linux/pm_runtime.h \ + +/home/pi/ml-driver/ml_driver.o: $(deps_/home/pi/ml-driver/ml_driver.o) + +$(deps_/home/pi/ml-driver/ml_driver.o): diff --git a/.modules.order.cmd b/.modules.order.cmd new file mode 100644 index 0000000..ac29adc --- /dev/null +++ b/.modules.order.cmd @@ -0,0 +1 @@ +cmd_/home/pi/ml-driver/modules.order := { echo /home/pi/ml-driver/ml_driver.ko; :; } | awk '!x[$$0]++' - > /home/pi/ml-driver/modules.order diff --git a/Makefile b/Makefile old mode 100644 new mode 100755 diff --git a/Module.symvers b/Module.symvers new file mode 100755 index 0000000..e69de29 diff --git a/README.md b/README.md old mode 100644 new mode 100755 diff --git a/ml_driver.c b/ml_driver.c old mode 100644 new mode 100755 index 654d54b..39e2610 --- a/ml_driver.c +++ b/ml_driver.c @@ -35,49 +35,49 @@ #define DEBUG_LEVEL_ERROR 0x03 #define DEBUG_LEVEL_CRITICAL 0x01 -#define DBG_DEBUG(fmt, args...) \ -if ((debug_level & DEBUG_LEVEL_DEBUG) == DEBUG_LEVEL_DEBUG) \ - printk( KERN_DEBUG "[debug] %s(%d): " fmt "\n", \ - __FUNCTION__, __LINE__, ## args) -#define DBG_INFO(fmt, args...) \ -if ((debug_level & DEBUG_LEVEL_INFO) == DEBUG_LEVEL_INFO) \ - printk( KERN_DEBUG "[info] %s(%d): " fmt "\n", \ - __FUNCTION__, __LINE__, ## args) -#define DBG_WARN(fmt, args...) \ -if ((debug_level & DEBUG_LEVEL_WARN) == DEBUG_LEVEL_WARN) \ - printk( KERN_DEBUG "[warn] %s(%d): " fmt "\n", \ - __FUNCTION__, __LINE__, ## args) -#define DBG_ERR(fmt, args...) \ -if ((debug_level & DEBUG_LEVEL_ERROR) == DEBUG_LEVEL_ERROR) \ - printk( KERN_DEBUG "[err] %s(%d): " fmt "\n", \ - __FUNCTION__, __LINE__, ## args) -#define DBG_CRIT(fmt, args...) \ -if ((debug_level & DEBUG_LEVEL_CRITICAL) == DEBUG_LEVEL_CRITICAL) \ - printk( KERN_DEBUG "[crit] %s(%d): " fmt "\n", \ - __FUNCTION__, __LINE__, ## args) +// #define DBG_DEBUG(fmt, args...) \ +// if ((debug_level & DEBUG_LEVEL_DEBUG) == DEBUG_LEVEL_DEBUG) \ +// printk( KERN_DEBUG "[debug] %s(%d): " fmt "\n", \ +// __FUNCTION__, __LINE__, ## args) +// #define DBG_INFO(fmt, args...) \ +// if ((debug_level & DEBUG_LEVEL_INFO) == DEBUG_LEVEL_INFO) \ +// printk( KERN_DEBUG "[info] %s(%d): " fmt "\n", \ +// __FUNCTION__, __LINE__, ## args) +// #define DBG_WARN(fmt, args...) \ +// if ((debug_level & DEBUG_LEVEL_WARN) == DEBUG_LEVEL_WARN) \ +// printk( KERN_DEBUG "[warn] %s(%d): " fmt "\n", \ +// __FUNCTION__, __LINE__, ## args) +// #define DBG_ERR(fmt, args...) \ +// if ((debug_level & DEBUG_LEVEL_ERROR) == DEBUG_LEVEL_ERROR) \ +// printk( KERN_DEBUG "[err] %s(%d): " fmt "\n", \ +// __FUNCTION__, __LINE__, ## args) +// #define DBG_CRIT(fmt, args...) \ +// if ((debug_level & DEBUG_LEVEL_CRITICAL) == DEBUG_LEVEL_CRITICAL) \ +// printk( KERN_DEBUG "[crit] %s(%d): " fmt "\n", \ +// __FUNCTION__, __LINE__, ## args) #define ML_DEFAULT 0 #define ML_THUNDER 1 -#define MISSILE_LAUNCHER ML_DEFAULT +//#define MISSILE_LAUNCHER ML_DEFAULT -#if MISSILE_LAUNCHER == ML_THUNDER +//#if MISSILE_LAUNCHER == ML_THUNDER /* * USB Missile Launcher Thunder version (with LEDs) */ -#define ML_VENDOR_ID 0x2123 -#define ML_PRODUCT_ID 0x1010 +//#define ML_VENDOR_ID 0x2123 +//#define ML_PRODUCT_ID 0x1010 -#else +//#else /* * USB Missile Launcher default version */ -#define ML_VENDOR_ID 0x1941 -#define ML_PRODUCT_ID 0x8021 +#define ML_VENDOR_ID 0x0a81 +#define ML_PRODUCT_ID 0x0701 -#endif +//#endif #define ML_CTRL_BUFFER_SIZE 8 #define ML_CTRL_REQUEST_TYPE 0x21 @@ -88,9 +88,9 @@ if ((debug_level & DEBUG_LEVEL_CRITICAL) == DEBUG_LEVEL_CRITICAL) \ #define ML_STOP 0x00 #define ML_UP 0x01 #define ML_DOWN 0x02 -#if MISSILE_LAUNCHER == ML_THUNDER -#define ML_LED 0x03 -#endif +// #if MISSILE_LAUNCHER == ML_THUNDER +// #define ML_LED 0x03 +// #endif #define ML_LEFT 0x04 #define ML_RIGHT 0x08 #define ML_UP_LEFT (ML_UP | ML_LEFT) @@ -104,11 +104,11 @@ if ((debug_level & DEBUG_LEVEL_CRITICAL) == DEBUG_LEVEL_CRITICAL) \ #define ML_MAX_LEFT 0x04 /* 00 04 00 00 00 00 00 00 */ #define ML_MAX_RIGHT 0x08 /* 00 08 00 00 00 00 00 00 */ -#ifdef CONFIG_USB_DYNAMIC_MINORS +//#ifdef CONFIG_USB_DYNAMIC_MINORS #define ML_MINOR_BASE 0 -#else -#define ML_MINOR_BASE 96 -#endif +//#else +//#define ML_MINOR_BASE 96 +//#endif struct usb_ml { struct usb_device *udev; @@ -133,24 +133,29 @@ struct usb_ml { __u8 command;/* Last issued command */ }; + static struct usb_device_id ml_table [] = { { USB_DEVICE(ML_VENDOR_ID, ML_PRODUCT_ID) }, { } }; + + MODULE_DEVICE_TABLE (usb, ml_table); static int debug_level = DEBUG_LEVEL_INFO; static int debug_trace = 0; module_param(debug_level, int, S_IRUGO | S_IWUSR); module_param(debug_trace, int, S_IRUGO | S_IWUSR); -MODULE_PARM_DESC(debug_level, "debug level (bitmask)"); -MODULE_PARM_DESC(debug_trace, "enable function tracing"); +//MODULE_PARM_DESC(debug_level, "debug level (bitmask)"); +//MODULE_PARM_DESC(debug_trace, "enable function tracing"); /* Prevent races between open() and disconnect */ + +//below is global mutex declartion static DEFINE_MUTEX(disconnect_mutex); static struct usb_driver ml_driver; -static inline void ml_debug_data(const char *function, int size, +/*static inline void ml_debug_data(const char *function, int size, const unsigned char *data) { int i; @@ -161,22 +166,22 @@ static inline void ml_debug_data(const char *function, int size, printk("%.2x ", data[i]); printk("\n"); } -} +}*/ static void ml_abort_transfers(struct usb_ml *dev) { if (! dev) { - DBG_ERR("dev is NULL"); + printk("dev is NULL"); return; } if (! dev->udev) { - DBG_ERR("udev is NULL"); + printk("udev is NULL"); return; } - if (dev->udev->state == USB_STATE_NOTATTACHED) { - DBG_ERR("udev not attached"); + if ( dev->udev->state == USB_STATE_NOTATTACHED) { + printk("udev not attached"); return; } @@ -219,7 +224,7 @@ static void ml_int_in_callback(struct urb *urb) struct usb_ml *dev = urb->context; int retval; - ml_debug_data(__FUNCTION__, urb->actual_length, urb->transfer_buffer); + //ml_debug_data(__FUNCTION__, urb->actual_length, urb->transfer_buffer); if (urb->status) { if (urb->status == -ENOENT || @@ -227,7 +232,7 @@ static void ml_int_in_callback(struct urb *urb) urb->status == -ESHUTDOWN) { return; } else { - DBG_ERR("non-zero urb status (%d)", urb->status); + //DBG_ERR("non-zero urb status (%d)", urb->status); goto resubmit; /* Maybe we can recover. */ } } @@ -260,8 +265,8 @@ static void ml_int_in_callback(struct urb *urb) spin_unlock(&dev->cmd_spinlock); retval = usb_submit_urb(dev->ctrl_urb, GFP_ATOMIC); if (retval) { - DBG_ERR("submitting correction control URB failed (%d)", - retval); + //DBG_ERR("submitting correction control URB failed (%d)", + //retval); } } else { spin_unlock(&dev->cmd_spinlock); @@ -273,7 +278,8 @@ static void ml_int_in_callback(struct urb *urb) if (dev->int_in_running && dev->udev) { retval = usb_submit_urb(dev->int_in_urb, GFP_ATOMIC); if (retval) { - DBG_ERR("resubmitting urb failed (%d)", retval); + //DBG_ERR("resubmitting urb failed (%d)", retval); + printk("resubmitting urb failed (%d)", retval); dev->int_in_running = 0; } } @@ -287,14 +293,14 @@ static int ml_open(struct inode *inode, struct file *file) int subminor; int retval = 0; - DBG_INFO("Open device"); + printk("Open device"); subminor = iminor(inode); mutex_lock(&disconnect_mutex); interface = usb_find_interface(&ml_driver, subminor); if (! interface) { - DBG_ERR("can't find device for minor %d", subminor); + printk("can't find device for minor %d", subminor); retval = -ENODEV; goto exit; } @@ -307,7 +313,7 @@ static int ml_open(struct inode *inode, struct file *file) /* lock this device */ if (down_interruptible (&dev->sem)) { - DBG_ERR("sem down failed"); + printk("sem down failed"); retval = -ERESTARTSYS; goto exit; } @@ -315,7 +321,7 @@ static int ml_open(struct inode *inode, struct file *file) /* Increment our usage count for the device. */ ++dev->open_count; if (dev->open_count > 1) - DBG_DEBUG("open_count = %d", dev->open_count); + printk("open_count = %d", dev->open_count); /* Initialize interrupt URB. */ usb_fill_int_urb(dev->int_in_urb, dev->udev, @@ -354,11 +360,11 @@ static int ml_release(struct inode *inode, struct file *file) struct usb_ml *dev = NULL; int retval = 0; - DBG_INFO("Release driver"); + printk("Release driver"); dev = file->private_data; if (! dev) { - DBG_ERR("dev is NULL"); + printk("dev is NULL"); retval = -ENODEV; goto exit; } @@ -401,13 +407,13 @@ static ssize_t ml_write(struct file *file, const char __user *user_buf, size_t struct usb_ml *dev; int retval = 0; bool policy; -#if MISSILE_LAUNCHER == ML_THUNDER - static int ml_led = 1; -#endif +// #if MISSILE_LAUNCHER == ML_THUNDER +// static int ml_led = 1; +// #endif u8 buf[8]; __u8 cmd = ML_STOP; - DBG_INFO("Send command"); + printk("Send command"); dev = file->private_data; /* Lock this object. */ @@ -419,7 +425,7 @@ static ssize_t ml_write(struct file *file, const char __user *user_buf, size_t /* Verify that the device wasn't unplugged. */ if (! dev->udev) { retval = -ENODEV; - DBG_ERR("No device or device unplugged (%d)", retval); + printk("No device or device unplugged (%d)", retval); goto unlock_exit; } @@ -440,9 +446,9 @@ static ssize_t ml_write(struct file *file, const char __user *user_buf, size_t || cmd == ML_LEFT || cmd == ML_RIGHT || cmd == ML_UP_LEFT || cmd == ML_DOWN_LEFT || cmd == ML_UP_RIGHT || cmd == ML_DOWN_RIGHT || cmd == ML_FIRE); -#if MISSILE_LAUNCHER == ML_THUNDER - policy = policy || (cmd == ML_LED); -#endif +// #if MISSILE_LAUNCHER == ML_THUNDER +// policy = policy || (cmd == ML_LED); +// #endif if (!policy) { DBG_ERR("illegal command issued"); retval = -0x2a; /* scnr */ @@ -450,19 +456,19 @@ static ssize_t ml_write(struct file *file, const char __user *user_buf, size_t } memset(&buf, 0, sizeof(buf)); -#if MISSILE_LAUNCHER == ML_THUNDER - if (cmd == ML_LED) { - buf[0] = ML_LED; - buf[1] = ml_led; - ml_led = 1 - ml_led; - } else { - buf[0] = 0x02; - buf[1] = cmd; - } -#else +// #if MISSILE_LAUNCHER == ML_THUNDER +// if (cmd == ML_LED) { +// buf[0] = ML_LED; +// buf[1] = ml_led; +// ml_led = 1 - ml_led; +// } else { +// buf[0] = 0x02; +// buf[1] = cmd; +// } +// #else buf[0] = 0x02; buf[1] = cmd; -#endif +// #endif /* The interrupt-in-endpoint handler also modifies dev->command. */ spin_lock(&dev->cmd_spinlock); dev->command = cmd; @@ -479,7 +485,7 @@ static ssize_t ml_write(struct file *file, const char __user *user_buf, size_t HZ*5); if (retval < 0) { - DBG_ERR("usb_control_msg failed (%d)", retval); + printk("usb_control_msg failed (%d)", retval); goto unlock_exit; } @@ -502,9 +508,10 @@ static struct file_operations ml_fops = { }; static struct usb_class_driver ml_class = { - .name = "ml%d", + //.name = "ml%d", + .name = "ml099", .fops = &ml_fops, - .minor_base = ML_MINOR_BASE, + .minor_base = 0,//ML_MINOR_BASE, }; static int ml_probe(struct usb_interface *interface, @@ -516,16 +523,16 @@ static int ml_probe(struct usb_interface *interface, struct usb_endpoint_descriptor *endpoint; int i, int_end_size; int retval = -ENODEV; - DBG_INFO("Probe missile launcher"); + printk("Probe missile launcher"); if (! udev) { - DBG_ERR("udev is NULL"); + printk("udev is NULL"); goto exit; } dev = kzalloc(sizeof(struct usb_ml), GFP_KERNEL); if (! dev) { - DBG_ERR("cannot allocate memory for struct usb_ml"); + printk("cannot allocate memory for struct usb_ml"); retval = -ENOMEM; goto exit; } @@ -551,7 +558,7 @@ static int ml_probe(struct usb_interface *interface, } if (! dev->int_in_endpoint) { - DBG_ERR("could not find interrupt in endpoint"); + printk("could not find interrupt in endpoint"); goto error; } @@ -559,14 +566,14 @@ static int ml_probe(struct usb_interface *interface, dev->int_in_buffer = kmalloc(int_end_size, GFP_KERNEL); if (! dev->int_in_buffer) { - DBG_ERR("could not allocate int_in_buffer"); + printk("could not allocate int_in_buffer"); retval = -ENOMEM; goto error; } dev->int_in_urb = usb_alloc_urb(0, GFP_KERNEL); if (! dev->int_in_urb) { - DBG_ERR("could not allocate int_in_urb"); + printk("could not allocate int_in_urb"); retval = -ENOMEM; goto error; } @@ -574,21 +581,21 @@ static int ml_probe(struct usb_interface *interface, /* Set up the control URB. */ dev->ctrl_urb = usb_alloc_urb(0, GFP_KERNEL); if (! dev->ctrl_urb) { - DBG_ERR("could not allocate ctrl_urb"); + printk("could not allocate ctrl_urb"); retval = -ENOMEM; goto error; } dev->ctrl_buffer = kzalloc(ML_CTRL_BUFFER_SIZE, GFP_KERNEL); if (! dev->ctrl_buffer) { - DBG_ERR("could not allocate ctrl_buffer"); + printk("could not allocate ctrl_buffer"); retval = -ENOMEM; goto error; } dev->ctrl_dr = kmalloc(sizeof(struct usb_ctrlrequest), GFP_KERNEL); if (! dev->ctrl_dr) { - DBG_ERR("could not allocate usb_ctrlrequest"); + printk("could not allocate usb_ctrlrequest"); retval = -ENOMEM; goto error; } @@ -609,7 +616,7 @@ static int ml_probe(struct usb_interface *interface, /* Retrieve a serial. */ if (! usb_string(udev, udev->descriptor.iSerialNumber, dev->serial_number, sizeof(dev->serial_number))) { - DBG_ERR("could not retrieve serial number"); + printk("could not retrieve serial number"); goto error; } @@ -619,14 +626,14 @@ static int ml_probe(struct usb_interface *interface, /* We can register the device now, as it is ready. */ retval = usb_register_dev(interface, &ml_class); if (retval) { - DBG_ERR("not able to get a minor for this device."); + printk("not able to get a minor for this device."); usb_set_intfdata(interface, NULL); goto error; } dev->minor = interface->minor; - DBG_INFO("USB missile launcher now attached to /dev/ml%d", + printk("USB missile launcher now attached to /dev/ml099", interface->minor - ML_MINOR_BASE); exit: @@ -665,7 +672,7 @@ static void ml_disconnect(struct usb_interface *interface) mutex_unlock(&disconnect_mutex); - DBG_INFO("USB missile launcher /dev/ml%d now disconnected", + printk("USB missile launcher /dev/ml099 now disconnected", minor - ML_MINOR_BASE); } @@ -681,12 +688,12 @@ static int __init usb_ml_init(void) { int result; - DBG_INFO("Register driver"); + printk("Register driver"); result = usb_register(&ml_driver); if (result) { - DBG_ERR("registering driver failed"); + printk("registering driver failed"); } else { - DBG_INFO("driver registered successfully"); + printk("driver registered successfully"); } return result; @@ -696,7 +703,7 @@ static int __init usb_ml_init(void) static void __exit usb_ml_exit(void) { usb_deregister(&ml_driver); - DBG_INFO("module deregistered"); + printk("module deregistered"); } module_init(usb_ml_init); diff --git a/ml_driver.ko b/ml_driver.ko new file mode 100644 index 0000000000000000000000000000000000000000..1282d667a6a61c5acf72529d0d703706dd5be7d6 GIT binary patch literal 171512 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�QmXMj5`5f(1Vpg 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 literal 0 HcmV?d00001 diff --git a/ml_driver.mod b/ml_driver.mod new file mode 100755 index 0000000..fbcaad3 --- /dev/null +++ b/ml_driver.mod @@ -0,0 +1,2 @@ +/home/pi/ml-driver/ml_driver.o + diff --git a/ml_driver.mod.c b/ml_driver.mod.c new file mode 100755 index 0000000..ed1b03d --- /dev/null +++ b/ml_driver.mod.c @@ -0,0 +1,63 @@ +#include +#define INCLUDE_VERMAGIC +#include +#include +#include + +BUILD_SALT; + +MODULE_INFO(vermagic, VERMAGIC_STRING); +MODULE_INFO(name, KBUILD_MODNAME); + +__visible struct module __this_module +__section(".gnu.linkonce.this_module") = { + .name = KBUILD_MODNAME, + .init = init_module, +#ifdef CONFIG_MODULE_UNLOAD + .exit = cleanup_module, +#endif + .arch = MODULE_ARCH_INIT, +}; + +#ifdef CONFIG_RETPOLINE +MODULE_INFO(retpoline, "Y"); +#endif + +static const struct modversion_info ____versions[] +__used __section("__versions") = { + { 0xcaec5711, "module_layout" }, + { 0x174de43c, "param_ops_int" }, + { 0xb9635609, "usb_deregister" }, + { 0x1742c223, "usb_register_driver" }, + { 0xb8fa3c95, "usb_deregister_dev" }, + { 0xf0ef52e8, "down" }, + { 0x5d75a61f, "usb_register_dev" }, + { 0xa9cc9062, "usb_string" }, + { 0x3abb616e, "usb_alloc_urb" }, + { 0x2d6fcc06, "__kmalloc" }, + { 0x902ae67c, "kmem_cache_alloc_trace" }, + { 0x7a90966d, "kmalloc_caches" }, + { 0x37a0cba, "kfree" }, + { 0x4b0606db, "usb_free_urb" }, + { 0x5f754e5a, "memset" }, + { 0xc962d6a0, "usb_control_msg" }, + { 0xae353d77, "arm_copy_from_user" }, + { 0x86332725, "__stack_chk_fail" }, + { 0x8f678b07, "__stack_chk_guard" }, + { 0xae577d60, "_raw_spin_lock" }, + { 0x581cde4e, "up" }, + { 0x3d2be8d8, "usb_submit_urb" }, + { 0xca5a7528, "down_interruptible" }, + { 0x67ea780, "mutex_unlock" }, + { 0xedb27d2a, "usb_find_interface" }, + { 0xc271c3be, "mutex_lock" }, + { 0xc5850110, "printk" }, + { 0x2fa44291, "usb_kill_urb" }, + { 0xb1ad28e0, "__gnu_mcount_nc" }, +}; + +MODULE_INFO(depends, ""); + +MODULE_ALIAS("usb:v0A81p0701d*dc*dsc*dp*ic*isc*ip*in*"); + +MODULE_INFO(srcversion, "F2B48BE446E108BAECC6032"); diff --git a/ml_driver.mod.o b/ml_driver.mod.o new file mode 100644 index 0000000000000000000000000000000000000000..2058d2c87dae49f6fd678ad1095838cc0cb9afa1 GIT binary patch literal 4136 zcmeGfOKclObk;|$&(`*E6z zLM22mNDzeJ!i7Uc)dQ74LgFKFC~%Zsf%m+-_S%kvmvf&y`@Zw$ z&D(ji&#x|=JSGSN2|*wk(%=aB{`Q(?PrimSWFNUBG;PDWMirY^Rl7}dOK>X#J7>VL zWjHVnH;uxv(YgH8+(JG-v5=Fd=86mR^Apn8C}A3BPQi0Z(^aWBm9wNtDW_x=IjcA@ ztSpza94HQyktK?1sfOYdh{1HV&^VH?iq6VhE{uyg34UWE)k$qQeR}bkv~DWYGc=Pa zNCx3J>EiNYbuw*@R;SX0q#*oSUBKfcH@vgKb_UPBb@6P=FS@Zf3O10y5+Y~pK z|M*ieH;gt#mx2dA^qy~yKhElel(ueM!TFABbEDklq7gHLeL0QunWmXC_3Tna*A1Dv zVUAE*(QEU&nb2bM@~_#gimvKZX7aikgyGsuR$B}^u=;yj=YrLJ7fuJm4&pENo=aBN zY_-ef+PwUjN`x`VQBZO~bWKjp|OkL$Fa8zshV# zziDm4CQO}rPMjKi_~_V03a5|B6)LY+=o;f%TatDW^uAGkD>}dIF9k z%{HiGaf8AcuC!Y0&M*CR=sC~Y-DWrK_RV3u+NtA}bneDK0U2-gI^G|6b*i@QSuQVW zF%IK}%dez#&sERXz5sD|Pe}IsC%@OuFEljoWEaq{aXvJ zE;r_T!?_4=&s};P0;$&0Di+m!g20q!s_mIIRNlz1(gl^$LAUO$>G#Hp19dg4ji z=mT@oM3bi0{^g|cCSlO!<)nO*7<)cw?V4m^c~;@|YU hVPJfiC(IrAtHU}Z?wdN-hzakpsND=WdS?f_e*v!is(Ana literal 0 HcmV?d00001 diff --git a/ml_driver.o b/ml_driver.o new file mode 100644 index 0000000000000000000000000000000000000000..199cb8406e508701b144aeb71a0e45290916256e GIT binary patch literal 169676 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�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 K%@+;lzW)nD&qw6| literal 0 HcmV?d00001 diff --git a/ml_manage.sh b/ml_manage.sh index 662c53a..3b46de4 100755 --- a/ml_manage.sh +++ b/ml_manage.sh @@ -26,7 +26,7 @@ load() { shift - rmmod usbhid + #rmmod usbhid insmod ./${module}.ko $* || exit 1 diff --git a/modules.order b/modules.order new file mode 100755 index 0000000..3c5002f --- /dev/null +++ b/modules.order @@ -0,0 +1 @@ +/home/pi/ml-driver/ml_driver.ko diff --git a/user-space.c b/user-space.c old mode 100644 new mode 100755 From db6ba3d9c56e77609b9b93388a96988430b1fa29 Mon Sep 17 00:00:00 2001 From: chiahungma Date: Tue, 14 Feb 2023 04:27:54 +0800 Subject: [PATCH 2/8] finaaly can move.... --- .ml_driver.ko.cmd | 2 +- .ml_driver.mod.cmd | 2 +- .ml_driver.mod.o.cmd | 847 +++++++++++++++++++++++------------------- .ml_driver.o.cmd | 862 ++++++++++++++++++++++--------------------- Makefile | 16 +- Module.symvers | 0 control | Bin 0 -> 17264 bytes ml_driver.c | 103 ++++-- ml_driver.ko | Bin 171512 -> 17368 bytes ml_driver.mod | 2 +- ml_driver.mod.c | 62 ++-- ml_driver.mod.o | Bin 4136 -> 4840 bytes ml_driver.o | Bin 169676 -> 13768 bytes modules.order | 2 +- test_w | Bin 0 -> 16928 bytes test_write.c | 41 ++ user-space.c | 14 +- 17 files changed, 1085 insertions(+), 868 deletions(-) mode change 100755 => 100644 Module.symvers create mode 100755 control mode change 100755 => 100644 ml_driver.mod mode change 100755 => 100644 ml_driver.mod.c mode change 100755 => 100644 modules.order create mode 100755 test_w create mode 100644 test_write.c diff --git a/.ml_driver.ko.cmd b/.ml_driver.ko.cmd index b1854f6..5b336fc 100644 --- a/.ml_driver.ko.cmd +++ b/.ml_driver.ko.cmd @@ -1 +1 @@ -cmd_/home/pi/ml-driver/ml_driver.ko := ld -r -EL --build-id=sha1 -T scripts/module.lds -o /home/pi/ml-driver/ml_driver.ko /home/pi/ml-driver/ml_driver.o /home/pi/ml-driver/ml_driver.mod.o; true +cmd_/home/wandog/workspace/ml-driver/ml_driver.ko := ld -r -m elf_x86_64 -z max-page-size=0x200000 -z noexecstack --build-id -T ./scripts/module-common.lds -o /home/wandog/workspace/ml-driver/ml_driver.ko /home/wandog/workspace/ml-driver/ml_driver.o /home/wandog/workspace/ml-driver/ml_driver.mod.o; true diff --git a/.ml_driver.mod.cmd b/.ml_driver.mod.cmd index 98707f6..7fec56f 100644 --- a/.ml_driver.mod.cmd +++ b/.ml_driver.mod.cmd @@ -1 +1 @@ -cmd_/home/pi/ml-driver/ml_driver.mod := { echo /home/pi/ml-driver/ml_driver.o; echo; } > /home/pi/ml-driver/ml_driver.mod +cmd_/home/wandog/workspace/ml-driver/ml_driver.mod := { echo /home/wandog/workspace/ml-driver/ml_driver.o; echo; } > /home/wandog/workspace/ml-driver/ml_driver.mod diff --git a/.ml_driver.mod.o.cmd b/.ml_driver.mod.o.cmd index 83d824b..562b9eb 100644 --- a/.ml_driver.mod.o.cmd +++ b/.ml_driver.mod.o.cmd @@ -1,47 +1,37 @@ -cmd_/home/pi/ml-driver/ml_driver.mod.o := gcc -Wp,-MMD,/home/pi/ml-driver/.ml_driver.mod.o.d -nostdinc -isystem /usr/lib/gcc/arm-linux-gnueabihf/8/include -I./arch/arm/include -I./arch/arm/include/generated -I./include -I./arch/arm/include/uapi -I./arch/arm/include/generated/uapi -I./include/uapi -I./include/generated/uapi -include ./include/linux/kconfig.h -include ./include/linux/compiler_types.h -D__KERNEL__ -mlittle-endian -fmacro-prefix-map=./= -Wall -Wundef -Werror=strict-prototypes -Wno-trigraphs -fno-strict-aliasing -fno-common -fshort-wchar -fno-PIE -Werror=implicit-function-declaration -Werror=implicit-int -Werror=return-type -Wno-format-security -std=gnu89 -fno-dwarf2-cfi-asm -fno-omit-frame-pointer -mapcs -mno-sched-prolog -fno-ipa-sra -mabi=aapcs-linux -mfpu=vfp -marm -Wa,-mno-warn-deprecated -D__LINUX_ARM_ARCH__=7 -march=armv7-a -msoft-float -Uarm -fno-delete-null-pointer-checks -Wno-frame-address -Wno-format-truncation -Wno-format-overflow -O2 --param=allow-store-data-races=0 -Wframe-larger-than=1024 -fstack-protector-strong -Wimplicit-fallthrough -Wno-unused-but-set-variable -Wno-unused-const-variable -fno-omit-frame-pointer -fno-optimize-sibling-calls -pg -Wdeclaration-after-statement -Wvla -Wno-pointer-sign -Wno-stringop-truncation -Wno-array-bounds -Wno-stringop-overflow -Wno-restrict -Wno-maybe-uninitialized -fno-strict-overflow -fno-stack-check -fconserve-stack -Werror=date-time -Werror=incompatible-pointer-types -Werror=designated-init -Wno-packed-not-aligned -DMODULE -DKBUILD_BASENAME='"ml_driver.mod"' -DKBUILD_MODNAME='"ml_driver"' -c -o /home/pi/ml-driver/ml_driver.mod.o /home/pi/ml-driver/ml_driver.mod.c +cmd_/home/wandog/workspace/ml-driver/ml_driver.mod.o := gcc -Wp,-MD,/home/wandog/workspace/ml-driver/.ml_driver.mod.o.d -nostdinc -isystem /usr/lib/gcc/x86_64-linux-gnu/9/include -I./arch/x86/include -I./arch/x86/include/generated -I./include -I./arch/x86/include/uapi -I./arch/x86/include/generated/uapi -I./include/uapi -I./include/generated/uapi -include ./include/linux/kconfig.h -Iubuntu/include -include ./include/linux/compiler_types.h -D__KERNEL__ -Wall -Wundef -Werror=strict-prototypes -Wno-trigraphs -fno-strict-aliasing -fno-common -fshort-wchar -fno-PIE -Werror=implicit-function-declaration -Werror=implicit-int -Werror=return-type -Wno-format-security -std=gnu89 -mno-sse -mno-mmx -mno-sse2 -mno-3dnow -mno-avx -fcf-protection=none -m64 -falign-jumps=1 -falign-loops=1 -mno-80387 -mno-fp-ret-in-387 -mpreferred-stack-boundary=3 -mskip-rax-setup -mtune=generic -mno-red-zone -mcmodel=kernel -DCONFIG_X86_X32_ABI -DCONFIG_AS_CFI=1 -DCONFIG_AS_CFI_SIGNAL_FRAME=1 -DCONFIG_AS_CFI_SECTIONS=1 -DCONFIG_AS_SSSE3=1 -DCONFIG_AS_AVX=1 -DCONFIG_AS_AVX2=1 -DCONFIG_AS_AVX512=1 -DCONFIG_AS_SHA1_NI=1 -DCONFIG_AS_SHA256_NI=1 -Wno-sign-compare -fno-asynchronous-unwind-tables -mindirect-branch=thunk-extern -mindirect-branch-register -fno-jump-tables -fno-delete-null-pointer-checks -Wno-frame-address -Wno-format-truncation -Wno-format-overflow -Wno-address-of-packed-member -O2 --param=allow-store-data-races=0 -Wframe-larger-than=1024 -fstack-protector-strong -Wimplicit-fallthrough -Wno-unused-but-set-variable -Wno-unused-const-variable -fno-omit-frame-pointer -fno-optimize-sibling-calls -fno-var-tracking-assignments -pg -mrecord-mcount -mfentry -DCC_USING_FENTRY -flive-patching=inline-clone -Wdeclaration-after-statement -Wvla -Wno-pointer-sign -Wno-stringop-truncation -Wno-array-bounds -Wno-stringop-overflow -Wno-restrict -Wno-maybe-uninitialized -fno-strict-overflow -fno-merge-all-constants -fmerge-constants -fno-stack-check -fconserve-stack -Werror=date-time -Werror=incompatible-pointer-types -Werror=designated-init -fmacro-prefix-map=./= -Wno-packed-not-aligned -DMODULE -DKBUILD_BASENAME='"ml_driver.mod"' -DKBUILD_MODNAME='"ml_driver"' -c -o /home/wandog/workspace/ml-driver/ml_driver.mod.o /home/wandog/workspace/ml-driver/ml_driver.mod.c -source_/home/pi/ml-driver/ml_driver.mod.o := /home/pi/ml-driver/ml_driver.mod.c +source_/home/wandog/workspace/ml-driver/ml_driver.mod.o := /home/wandog/workspace/ml-driver/ml_driver.mod.c -deps_/home/pi/ml-driver/ml_driver.mod.o := \ +deps_/home/wandog/workspace/ml-driver/ml_driver.mod.o := \ $(wildcard include/config/module/unload.h) \ $(wildcard include/config/retpoline.h) \ include/linux/kconfig.h \ - $(wildcard include/config/cc/version/text.h) \ $(wildcard include/config/cpu/big/endian.h) \ $(wildcard include/config/booger.h) \ $(wildcard include/config/foo.h) \ include/linux/compiler_types.h \ $(wildcard include/config/have/arch/compiler/h.h) \ $(wildcard include/config/enable/must/check.h) \ + $(wildcard include/config/optimize/inlining.h) \ $(wildcard include/config/cc/has/asm/inline.h) \ include/linux/compiler_attributes.h \ include/linux/compiler-gcc.h \ $(wildcard include/config/arm64.h) \ $(wildcard include/config/arch/use/builtin/bswap.h) \ - $(wildcard include/config/kcov.h) \ - include/linux/module.h \ - $(wildcard include/config/modules.h) \ - $(wildcard include/config/sysfs.h) \ - $(wildcard include/config/modules/tree/lookup.h) \ - $(wildcard include/config/livepatch.h) \ - $(wildcard include/config/unused/symbols.h) \ - $(wildcard include/config/module/sig.h) \ - $(wildcard include/config/generic/bug.h) \ - $(wildcard include/config/kallsyms.h) \ - $(wildcard include/config/smp.h) \ - $(wildcard include/config/tracepoints.h) \ - $(wildcard include/config/tree/srcu.h) \ - $(wildcard include/config/bpf/events.h) \ - $(wildcard include/config/jump/label.h) \ - $(wildcard include/config/tracing.h) \ - $(wildcard include/config/event/tracing.h) \ - $(wildcard include/config/ftrace/mcount/record.h) \ - $(wildcard include/config/kprobes.h) \ - $(wildcard include/config/have/static/call/inline.h) \ - $(wildcard include/config/constructors.h) \ - $(wildcard include/config/function/error/injection.h) \ - include/linux/list.h \ - $(wildcard include/config/debug/list.h) \ + include/linux/build-salt.h \ + $(wildcard include/config/build/salt.h) \ + include/linux/elfnote.h \ + include/linux/elf.h \ + arch/x86/include/asm/elf.h \ + $(wildcard include/config/x86/64.h) \ + $(wildcard include/config/x86/32.h) \ + $(wildcard include/config/ia32/emulation.h) \ + $(wildcard include/config/x86/x32/abi.h) \ + $(wildcard include/config/compat.h) \ + include/linux/thread_info.h \ + $(wildcard include/config/thread/info/in/task.h) \ + $(wildcard include/config/have/arch/within/stack/frames.h) \ + $(wildcard include/config/hardened/usercopy.h) \ include/linux/types.h \ $(wildcard include/config/have/uid16.h) \ $(wildcard include/config/uid16.h) \ @@ -49,143 +39,109 @@ deps_/home/pi/ml-driver/ml_driver.mod.o := \ $(wildcard include/config/phys/addr/t/64bit.h) \ $(wildcard include/config/64bit.h) \ include/uapi/linux/types.h \ - arch/arm/include/uapi/asm/types.h \ + arch/x86/include/generated/uapi/asm/types.h \ + include/uapi/asm-generic/types.h \ include/asm-generic/int-ll64.h \ include/uapi/asm-generic/int-ll64.h \ - arch/arm/include/generated/uapi/asm/bitsperlong.h \ + arch/x86/include/uapi/asm/bitsperlong.h \ include/asm-generic/bitsperlong.h \ include/uapi/asm-generic/bitsperlong.h \ include/uapi/linux/posix_types.h \ include/linux/stddef.h \ include/uapi/linux/stddef.h \ include/linux/compiler_types.h \ - arch/arm/include/uapi/asm/posix_types.h \ + arch/x86/include/asm/posix_types.h \ + arch/x86/include/uapi/asm/posix_types_64.h \ include/uapi/asm-generic/posix_types.h \ - include/linux/poison.h \ - $(wildcard include/config/illegal/pointer/value.h) \ - $(wildcard include/config/page/poisoning/zero.h) \ - include/linux/const.h \ - include/vdso/const.h \ - include/uapi/linux/const.h \ + include/linux/bug.h \ + $(wildcard include/config/generic/bug.h) \ + $(wildcard include/config/bug/on/data/corruption.h) \ + arch/x86/include/asm/bug.h \ + $(wildcard include/config/debug/bugverbose.h) \ + include/linux/stringify.h \ + include/asm-generic/bug.h \ + $(wildcard include/config/bug.h) \ + $(wildcard include/config/generic/bug/relative/pointers.h) \ + $(wildcard include/config/smp.h) \ + include/linux/compiler.h \ + $(wildcard include/config/trace/branch/profiling.h) \ + $(wildcard include/config/profile/all/branches.h) \ + $(wildcard include/config/stack/validation.h) \ + $(wildcard include/config/debug/entry.h) \ + $(wildcard include/config/kasan.h) \ + arch/x86/include/asm/barrier.h \ + arch/x86/include/asm/alternative.h \ + arch/x86/include/asm/asm.h \ + arch/x86/include/asm/nops.h \ + $(wildcard include/config/mk7.h) \ + $(wildcard include/config/x86/p6/nop.h) \ + include/asm-generic/barrier.h \ + include/linux/kasan-checks.h \ include/linux/kernel.h \ $(wildcard include/config/preempt/voluntary.h) \ $(wildcard include/config/debug/atomic/sleep.h) \ - $(wildcard include/config/preempt/rt.h) \ $(wildcard include/config/mmu.h) \ $(wildcard include/config/prove/locking.h) \ + $(wildcard include/config/arch/has/refcount.h) \ $(wildcard include/config/panic/timeout.h) \ + $(wildcard include/config/tracing.h) \ + $(wildcard include/config/ftrace/mcount/record.h) \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/stdarg.h \ include/linux/limits.h \ include/uapi/linux/limits.h \ - include/vdso/limits.h \ include/linux/linkage.h \ - $(wildcard include/config/arch/use/sym/annotations.h) \ - include/linux/stringify.h \ include/linux/export.h \ $(wildcard include/config/modversions.h) \ $(wildcard include/config/module/rel/crcs.h) \ $(wildcard include/config/have/arch/prel32/relocations.h) \ + $(wildcard include/config/modules.h) \ $(wildcard include/config/trim/unused/ksyms.h) \ - arch/arm/include/asm/linkage.h \ - include/linux/compiler.h \ - $(wildcard include/config/trace/branch/profiling.h) \ - $(wildcard include/config/profile/all/branches.h) \ - $(wildcard include/config/stack/validation.h) \ - arch/arm/include/generated/asm/rwonce.h \ - include/asm-generic/rwonce.h \ - include/linux/kasan-checks.h \ - $(wildcard include/config/kasan.h) \ - include/linux/kcsan-checks.h \ - $(wildcard include/config/kcsan.h) \ - $(wildcard include/config/kcsan/ignore/atomics.h) \ + $(wildcard include/config/unused/symbols.h) \ + arch/x86/include/asm/linkage.h \ + $(wildcard include/config/x86/alignment/16.h) \ include/linux/bitops.h \ include/linux/bits.h \ - include/vdso/bits.h \ - include/linux/build_bug.h \ - arch/arm/include/asm/bitops.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) \ - include/linux/typecheck.h \ - arch/arm/include/asm/irqflags.h \ - $(wildcard include/config/cpu/v7m.h) \ - arch/arm/include/asm/ptrace.h \ - $(wildcard include/config/arm/thumb.h) \ - $(wildcard include/config/thumb2/kernel.h) \ - arch/arm/include/uapi/asm/ptrace.h \ - $(wildcard include/config/cpu/endian/be8.h) \ - arch/arm/include/asm/hwcap.h \ - arch/arm/include/uapi/asm/hwcap.h \ - include/asm-generic/irqflags.h \ - arch/arm/include/asm/percpu.h \ - $(wildcard include/config/cpu/v6.h) \ - include/asm-generic/percpu.h \ - $(wildcard include/config/debug/preempt.h) \ - $(wildcard include/config/have/setup/per/cpu/area.h) \ - include/linux/threads.h \ - $(wildcard include/config/nr/cpus.h) \ - $(wildcard include/config/base/small.h) \ - include/linux/percpu-defs.h \ - $(wildcard include/config/debug/force/weak/per/cpu.h) \ - $(wildcard include/config/amd/mem/encrypt.h) \ - arch/arm/include/asm/barrier.h \ - $(wildcard include/config/cpu/32v6k.h) \ - $(wildcard include/config/cpu/xsc3.h) \ - $(wildcard include/config/cpu/fa526.h) \ - $(wildcard include/config/arm/heavy/mb.h) \ - $(wildcard include/config/arm/dma/mem/bufferable.h) \ - $(wildcard include/config/cpu/spectre.h) \ - include/asm-generic/barrier.h \ - include/asm-generic/bitops/non-atomic.h \ - include/asm-generic/bitops/builtin-__fls.h \ - include/asm-generic/bitops/builtin-__ffs.h \ - include/asm-generic/bitops/builtin-fls.h \ - include/asm-generic/bitops/builtin-ffs.h \ - include/asm-generic/bitops/ffz.h \ - include/asm-generic/bitops/fls64.h \ - include/asm-generic/bitops/sched.h \ - include/asm-generic/bitops/hweight.h \ - include/asm-generic/bitops/arch_hweight.h \ - include/asm-generic/bitops/const_hweight.h \ - include/asm-generic/bitops/lock.h \ - include/linux/atomic.h \ - arch/arm/include/asm/atomic.h \ - $(wildcard include/config/generic/atomic64.h) \ - $(wildcard include/config/arm/lpae.h) \ - include/linux/prefetch.h \ - arch/arm/include/asm/processor.h \ - $(wildcard include/config/have/hw/breakpoint.h) \ - $(wildcard include/config/binfmt/elf/fdpic.h) \ - arch/arm/include/asm/hw_breakpoint.h \ - arch/arm/include/asm/unified.h \ - arch/arm/include/asm/vdso/processor.h \ - $(wildcard include/config/arm/errata/754327.h) \ - arch/arm/include/asm/cache.h \ - $(wildcard include/config/arm/l1/cache/shift.h) \ - $(wildcard include/config/aeabi.h) \ - arch/arm/include/asm/cmpxchg.h \ - $(wildcard include/config/cpu/sa1100.h) \ - $(wildcard include/config/cpu/sa110.h) \ - include/asm-generic/cmpxchg-local.h \ - include/linux/atomic-fallback.h \ - include/asm-generic/atomic-long.h \ + include/linux/const.h \ + include/uapi/linux/const.h \ + arch/x86/include/asm/bitops.h \ + $(wildcard include/config/x86/cmov.h) \ + arch/x86/include/asm/rmwcc.h \ + $(wildcard include/config/cc/has/asm/goto.h) \ include/asm-generic/bitops/find.h \ $(wildcard include/config/generic/find/first/bit.h) \ + include/asm-generic/bitops/sched.h \ + arch/x86/include/asm/arch_hweight.h \ + arch/x86/include/asm/cpufeatures.h \ + arch/x86/include/asm/required-features.h \ + $(wildcard include/config/x86/minimum/cpu/family.h) \ + $(wildcard include/config/math/emulation.h) \ + $(wildcard include/config/x86/pae.h) \ + $(wildcard include/config/x86/cmpxchg64.h) \ + $(wildcard include/config/x86/use/3dnow.h) \ + $(wildcard include/config/matom.h) \ + $(wildcard include/config/paravirt.h) \ + arch/x86/include/asm/disabled-features.h \ + $(wildcard include/config/x86/intel/mpx.h) \ + $(wildcard include/config/x86/smap.h) \ + $(wildcard include/config/x86/intel/umip.h) \ + $(wildcard include/config/x86/intel/memory/protection/keys.h) \ + $(wildcard include/config/x86/5level.h) \ + $(wildcard include/config/page/table/isolation.h) \ + include/asm-generic/bitops/const_hweight.h \ + include/asm-generic/bitops-instrumented.h \ include/asm-generic/bitops/le.h \ - arch/arm/include/uapi/asm/byteorder.h \ + arch/x86/include/uapi/asm/byteorder.h \ include/linux/byteorder/little_endian.h \ include/uapi/linux/byteorder/little_endian.h \ include/linux/swab.h \ include/uapi/linux/swab.h \ - arch/arm/include/asm/swab.h \ - arch/arm/include/uapi/asm/swab.h \ + arch/x86/include/uapi/asm/swab.h \ include/linux/byteorder/generic.h \ include/asm-generic/bitops/ext2-atomic-setbit.h \ include/linux/log2.h \ $(wildcard include/config/arch/has/ilog2/u32.h) \ $(wildcard include/config/arch/has/ilog2/u64.h) \ - include/linux/minmax.h \ + include/linux/typecheck.h \ include/linux/printk.h \ $(wildcard include/config/message/loglevel/default.h) \ $(wildcard include/config/console/loglevel/default.h) \ @@ -193,8 +149,8 @@ deps_/home/pi/ml-driver/ml_driver.mod.o := \ $(wildcard include/config/early/printk.h) \ $(wildcard include/config/printk/nmi.h) \ $(wildcard include/config/printk.h) \ + $(wildcard include/config/kmsg/ids.h) \ $(wildcard include/config/dynamic/debug.h) \ - $(wildcard include/config/dynamic/debug/core.h) \ include/linux/init.h \ $(wildcard include/config/strict/kernel/rwx.h) \ $(wildcard include/config/strict/module/rwx.h) \ @@ -203,151 +159,131 @@ deps_/home/pi/ml-driver/ml_driver.mod.o := \ $(wildcard include/config/arch/has/cache/line/size.h) \ include/uapi/linux/kernel.h \ include/uapi/linux/sysinfo.h \ - include/linux/ratelimit_types.h \ - include/uapi/linux/param.h \ - arch/arm/include/generated/uapi/asm/param.h \ - include/asm-generic/param.h \ - $(wildcard include/config/hz.h) \ - include/uapi/asm-generic/param.h \ - include/linux/spinlock_types.h \ - $(wildcard include/config/debug/spinlock.h) \ - $(wildcard include/config/debug/lock/alloc.h) \ - arch/arm/include/asm/spinlock_types.h \ - include/linux/lockdep_types.h \ - $(wildcard include/config/prove/raw/lock/nesting.h) \ - $(wildcard include/config/preempt/lock.h) \ - $(wildcard include/config/lockdep.h) \ - $(wildcard include/config/lock/stat.h) \ - include/linux/rwlock_types.h \ - arch/arm/include/asm/div64.h \ - arch/arm/include/asm/compiler.h \ + arch/x86/include/asm/cache.h \ + $(wildcard include/config/x86/l1/cache/shift.h) \ + $(wildcard include/config/x86/internode/cache/shift.h) \ + $(wildcard include/config/x86/vsmp.h) \ + include/linux/dynamic_debug.h \ + $(wildcard include/config/jump/label.h) \ + include/linux/jump_label.h \ + $(wildcard include/config/have/arch/jump/label/relative.h) \ + arch/x86/include/asm/jump_label.h \ + include/linux/build_bug.h \ + arch/x86/include/asm/div64.h \ include/asm-generic/div64.h \ - include/linux/stat.h \ - arch/arm/include/uapi/asm/stat.h \ - include/uapi/linux/stat.h \ - include/linux/time.h \ - $(wildcard include/config/arch/uses/gettimeoffset.h) \ - $(wildcard include/config/posix/timers.h) \ + include/linux/restart_block.h \ + include/linux/time64.h \ include/linux/math64.h \ $(wildcard include/config/arch/supports/int128.h) \ - include/vdso/math64.h \ - include/linux/time64.h \ - include/vdso/time64.h \ include/uapi/linux/time.h \ include/uapi/linux/time_types.h \ - include/linux/time32.h \ - include/linux/timex.h \ - include/uapi/linux/timex.h \ - arch/arm/include/asm/timex.h \ - include/vdso/time32.h \ - include/vdso/time.h \ - include/linux/uidgid.h \ - $(wildcard include/config/multiuser.h) \ - $(wildcard include/config/user/ns.h) \ - include/linux/highuid.h \ - include/linux/kmod.h \ - include/linux/umh.h \ - include/linux/gfp.h \ - $(wildcard include/config/highmem.h) \ - $(wildcard include/config/zone/dma.h) \ - $(wildcard include/config/zone/dma32.h) \ - $(wildcard include/config/zone/device.h) \ - $(wildcard include/config/numa.h) \ - $(wildcard include/config/pm/sleep.h) \ - $(wildcard include/config/contig/alloc.h) \ - $(wildcard include/config/cma.h) \ - include/linux/mmdebug.h \ - $(wildcard include/config/debug/vm.h) \ - $(wildcard include/config/debug/virtual.h) \ - $(wildcard include/config/debug/vm/pgflags.h) \ - include/linux/bug.h \ - $(wildcard include/config/bug/on/data/corruption.h) \ - arch/arm/include/asm/bug.h \ - $(wildcard include/config/debug/bugverbose.h) \ - arch/arm/include/asm/opcodes.h \ - $(wildcard include/config/cpu/endian/be32.h) \ - include/asm-generic/bug.h \ - $(wildcard include/config/bug.h) \ - $(wildcard include/config/generic/bug/relative/pointers.h) \ - include/linux/instrumentation.h \ - $(wildcard include/config/debug/entry.h) \ - include/linux/mmzone.h \ - $(wildcard include/config/force/max/zoneorder.h) \ - $(wildcard include/config/memory/isolation.h) \ - $(wildcard include/config/zsmalloc.h) \ - $(wildcard include/config/shadow/call/stack.h) \ - $(wildcard include/config/memcg.h) \ - $(wildcard include/config/need/multiple/nodes.h) \ - $(wildcard include/config/sparsemem.h) \ - $(wildcard include/config/memory/hotplug.h) \ - $(wildcard include/config/compaction.h) \ - $(wildcard include/config/discontigmem.h) \ - $(wildcard include/config/transparent/hugepage.h) \ - $(wildcard include/config/flat/node/mem/map.h) \ - $(wildcard include/config/page/extension.h) \ - $(wildcard include/config/deferred/struct/page/init.h) \ - $(wildcard include/config/have/memoryless/nodes.h) \ - $(wildcard include/config/flatmem.h) \ - $(wildcard include/config/sparsemem/vmemmap.h) \ - $(wildcard include/config/sparsemem/extreme.h) \ - $(wildcard include/config/memory/hotremove.h) \ - $(wildcard include/config/have/arch/pfn/valid.h) \ - $(wildcard include/config/holes/in/zone.h) \ - $(wildcard include/config/arch/has/holes/memorymodel.h) \ - include/linux/spinlock.h \ - $(wildcard include/config/preemption.h) \ - include/linux/preempt.h \ - $(wildcard include/config/preempt/count.h) \ - $(wildcard include/config/trace/preempt/toggle.h) \ - $(wildcard include/config/preempt/notifiers.h) \ - arch/arm/include/generated/asm/preempt.h \ - include/asm-generic/preempt.h \ - include/linux/thread_info.h \ - $(wildcard include/config/thread/info/in/task.h) \ - $(wildcard include/config/have/arch/within/stack/frames.h) \ - $(wildcard include/config/hardened/usercopy.h) \ - include/linux/restart_block.h \ include/linux/errno.h \ include/uapi/linux/errno.h \ - arch/arm/include/generated/uapi/asm/errno.h \ + arch/x86/include/generated/uapi/asm/errno.h \ include/uapi/asm-generic/errno.h \ include/uapi/asm-generic/errno-base.h \ - arch/arm/include/asm/thread_info.h \ - $(wildcard include/config/stackprotector/per/task.h) \ - $(wildcard include/config/crunch.h) \ - $(wildcard include/config/arm/thumbee.h) \ - arch/arm/include/asm/fpstate.h \ - $(wildcard include/config/vfpv3.h) \ - $(wildcard include/config/iwmmxt.h) \ - arch/arm/include/asm/page.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/copy/fa.h) \ - $(wildcard include/config/cpu/xscale.h) \ - $(wildcard include/config/cpu/copy/v6.h) \ - $(wildcard include/config/kuser/helpers.h) \ - arch/arm/include/asm/glue.h \ - arch/arm/include/asm/pgtable-3level-types.h \ - arch/arm/include/asm/memory.h \ - $(wildcard include/config/need/mach/memory/h.h) \ - $(wildcard include/config/page/offset.h) \ - $(wildcard include/config/dram/base.h) \ - $(wildcard include/config/dram/size.h) \ - $(wildcard include/config/xip/kernel.h) \ - $(wildcard include/config/have/tcm.h) \ - $(wildcard include/config/arm/patch/phys/virt.h) \ - $(wildcard include/config/phys/offset.h) \ - $(wildcard include/config/xip/phys/addr.h) \ - include/linux/sizes.h \ + arch/x86/include/asm/current.h \ + arch/x86/include/asm/percpu.h \ + $(wildcard include/config/x86/64/smp.h) \ + include/asm-generic/percpu.h \ + $(wildcard include/config/debug/preempt.h) \ + $(wildcard include/config/have/setup/per/cpu/area.h) \ + include/linux/threads.h \ + $(wildcard include/config/nr/cpus.h) \ + $(wildcard include/config/base/small.h) \ + include/linux/percpu-defs.h \ + $(wildcard include/config/debug/force/weak/per/cpu.h) \ + $(wildcard include/config/amd/mem/encrypt.h) \ + arch/x86/include/asm/thread_info.h \ + $(wildcard include/config/vm86.h) \ + $(wildcard include/config/frame/pointer.h) \ + arch/x86/include/asm/page.h \ + arch/x86/include/asm/page_types.h \ + $(wildcard include/config/physical/start.h) \ + $(wildcard include/config/physical/align.h) \ + $(wildcard include/config/dynamic/physical/mask.h) \ + include/linux/mem_encrypt.h \ + $(wildcard include/config/arch/has/mem/encrypt.h) \ + arch/x86/include/asm/mem_encrypt.h \ + arch/x86/include/uapi/asm/bootparam.h \ + include/linux/screen_info.h \ + include/uapi/linux/screen_info.h \ + include/linux/apm_bios.h \ + include/uapi/linux/apm_bios.h \ + include/uapi/linux/ioctl.h \ + arch/x86/include/generated/uapi/asm/ioctl.h \ + include/asm-generic/ioctl.h \ + include/uapi/asm-generic/ioctl.h \ + include/linux/edd.h \ + include/uapi/linux/edd.h \ + arch/x86/include/asm/ist.h \ + arch/x86/include/uapi/asm/ist.h \ + include/video/edid.h \ + $(wildcard include/config/x86.h) \ + include/uapi/video/edid.h \ + arch/x86/include/asm/page_64_types.h \ + $(wildcard include/config/dynamic/memory/layout.h) \ + $(wildcard include/config/randomize/base.h) \ + arch/x86/include/asm/kaslr.h \ + $(wildcard include/config/randomize/memory.h) \ + arch/x86/include/asm/page_64.h \ + $(wildcard include/config/debug/virtual.h) \ + $(wildcard include/config/flatmem.h) \ + $(wildcard include/config/x86/vsyscall/emulation.h) \ + include/linux/range.h \ include/asm-generic/memory_model.h \ + $(wildcard include/config/discontigmem.h) \ + $(wildcard include/config/sparsemem/vmemmap.h) \ + $(wildcard include/config/sparsemem.h) \ include/linux/pfn.h \ include/asm-generic/getorder.h \ - include/linux/bottom_half.h \ - include/linux/lockdep.h \ - $(wildcard include/config/debug/locking/api/selftests.h) \ - include/linux/smp.h \ - $(wildcard include/config/up/late/init.h) \ + arch/x86/include/asm/cpufeature.h \ + $(wildcard include/config/x86/feature/names.h) \ + arch/x86/include/asm/processor.h \ + $(wildcard include/config/kvm.h) \ + $(wildcard include/config/stackprotector.h) \ + $(wildcard include/config/paravirt/xxl.h) \ + $(wildcard include/config/x86/debugctlmsr.h) \ + $(wildcard include/config/cpu/sup/amd.h) \ + $(wildcard include/config/xen.h) \ + arch/x86/include/asm/processor-flags.h \ + arch/x86/include/uapi/asm/processor-flags.h \ + arch/x86/include/asm/math_emu.h \ + arch/x86/include/asm/ptrace.h \ + arch/x86/include/asm/segment.h \ + $(wildcard include/config/xen/pv.h) \ + $(wildcard include/config/x86/32/lazy/gs.h) \ + arch/x86/include/uapi/asm/ptrace.h \ + arch/x86/include/uapi/asm/ptrace-abi.h \ + arch/x86/include/asm/paravirt_types.h \ + $(wildcard include/config/pgtable/levels.h) \ + $(wildcard include/config/paravirt/debug.h) \ + arch/x86/include/asm/desc_defs.h \ + arch/x86/include/asm/kmap_types.h \ + $(wildcard include/config/debug/highmem.h) \ + include/asm-generic/kmap_types.h \ + arch/x86/include/asm/pgtable_types.h \ + $(wildcard include/config/mem/soft/dirty.h) \ + $(wildcard include/config/proc/fs.h) \ + arch/x86/include/asm/pgtable_64_types.h \ + arch/x86/include/asm/sparsemem.h \ + include/asm-generic/pgtable-nop4d.h \ + arch/x86/include/asm/nospec-branch.h \ + include/linux/static_key.h \ + include/linux/frame.h \ + arch/x86/include/asm/alternative-asm.h \ + arch/x86/include/asm/msr-index.h \ + arch/x86/include/asm/unwind_hints.h \ + arch/x86/include/asm/orc_types.h \ + arch/x86/include/asm/spinlock_types.h \ + $(wildcard include/config/paravirt/spinlocks.h) \ + include/asm-generic/qspinlock_types.h \ + include/asm-generic/qrwlock_types.h \ + arch/x86/include/uapi/asm/sigcontext.h \ + arch/x86/include/asm/msr.h \ + $(wildcard include/config/tracepoints.h) \ + arch/x86/include/asm/msr-index.h \ + arch/x86/include/asm/cpumask.h \ include/linux/cpumask.h \ $(wildcard include/config/cpumask/offstack.h) \ $(wildcard include/config/hotplug/cpu.h) \ @@ -357,16 +293,88 @@ deps_/home/pi/ml-driver/ml_driver.mod.o := \ $(wildcard include/config/binary/printf.h) \ $(wildcard include/config/fortify/source.h) \ include/uapi/linux/string.h \ - arch/arm/include/asm/string.h \ - $(wildcard include/config/bcm2835/fast/memcpy.h) \ - include/linux/smp_types.h \ - include/linux/llist.h \ - $(wildcard include/config/arch/have/nmi/safe/cmpxchg.h) \ - arch/arm/include/asm/smp.h \ - arch/arm/include/generated/asm/mmiowb.h \ + arch/x86/include/asm/string.h \ + arch/x86/include/asm/string_64.h \ + $(wildcard include/config/x86/mce.h) \ + $(wildcard include/config/arch/has/uaccess/flushcache.h) \ + include/linux/atomic.h \ + arch/x86/include/asm/atomic.h \ + arch/x86/include/asm/cmpxchg.h \ + arch/x86/include/asm/cmpxchg_64.h \ + arch/x86/include/asm/atomic64_64.h \ + include/asm-generic/atomic-instrumented.h \ + include/linux/atomic-fallback.h \ + $(wildcard include/config/generic/atomic64.h) \ + include/asm-generic/atomic-long.h \ + arch/x86/include/uapi/asm/msr.h \ + include/linux/tracepoint-defs.h \ + arch/x86/include/asm/paravirt.h \ + arch/x86/include/asm/frame.h \ + arch/x86/include/asm/special_insns.h \ + arch/x86/include/asm/fpu/types.h \ + include/linux/personality.h \ + include/uapi/linux/personality.h \ + include/linux/err.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) \ + arch/x86/include/asm/irqflags.h \ + $(wildcard include/config/debug/lock/alloc.h) \ + arch/x86/include/asm/user.h \ + arch/x86/include/asm/user_64.h \ + arch/x86/include/uapi/asm/auxvec.h \ + arch/x86/include/asm/fsgsbase.h \ + arch/x86/include/asm/vdso.h \ + $(wildcard include/config/x86/x32.h) \ + include/linux/mm_types.h \ + $(wildcard include/config/have/aligned/struct/page.h) \ + $(wildcard include/config/memcg.h) \ + $(wildcard include/config/userfaultfd.h) \ + $(wildcard include/config/swap.h) \ + $(wildcard include/config/numa.h) \ + $(wildcard include/config/have/arch/compat/mmap/bases.h) \ + $(wildcard include/config/membarrier.h) \ + $(wildcard include/config/aio.h) \ + $(wildcard include/config/mmu/notifier.h) \ + $(wildcard include/config/transparent/hugepage.h) \ + $(wildcard include/config/numa/balancing.h) \ + $(wildcard include/config/arch/want/batched/unmap/tlb/flush.h) \ + $(wildcard include/config/hugetlb/page.h) \ + include/linux/mm_types_task.h \ + $(wildcard include/config/split/ptlock/cpus.h) \ + $(wildcard include/config/arch/enable/split/pmd/ptlock.h) \ + arch/x86/include/asm/tlbbatch.h \ + include/linux/auxvec.h \ + include/uapi/linux/auxvec.h \ + include/linux/list.h \ + $(wildcard include/config/debug/list.h) \ + include/linux/poison.h \ + $(wildcard include/config/illegal/pointer/value.h) \ + $(wildcard include/config/page/poisoning/zero.h) \ + include/linux/spinlock.h \ + $(wildcard include/config/debug/spinlock.h) \ + $(wildcard include/config/preemption.h) \ + include/linux/preempt.h \ + $(wildcard include/config/preempt/count.h) \ + $(wildcard include/config/trace/preempt/toggle.h) \ + $(wildcard include/config/preempt/notifiers.h) \ + arch/x86/include/asm/preempt.h \ + include/linux/bottom_half.h \ + arch/x86/include/generated/asm/mmiowb.h \ include/asm-generic/mmiowb.h \ $(wildcard include/config/mmiowb.h) \ - arch/arm/include/asm/spinlock.h \ + include/linux/spinlock_types.h \ + include/linux/lockdep.h \ + $(wildcard include/config/lockdep.h) \ + $(wildcard include/config/lock/stat.h) \ + include/linux/rwlock_types.h \ + arch/x86/include/asm/spinlock.h \ + arch/x86/include/asm/qspinlock.h \ + include/asm-generic/qspinlock.h \ + arch/x86/include/asm/qrwlock.h \ + include/asm-generic/qrwlock.h \ include/linux/rwlock.h \ $(wildcard include/config/preempt.h) \ include/linux/spinlock_api_smp.h \ @@ -400,58 +408,15 @@ deps_/home/pi/ml-driver/ml_driver.mod.o := \ $(wildcard include/config/inline/write/unlock/irq.h) \ $(wildcard include/config/inline/read/unlock/irqrestore.h) \ $(wildcard include/config/inline/write/unlock/irqrestore.h) \ - include/linux/wait.h \ - arch/arm/include/generated/asm/current.h \ - include/asm-generic/current.h \ - include/uapi/linux/wait.h \ - include/linux/numa.h \ - $(wildcard include/config/nodes/shift.h) \ - $(wildcard include/config/numa/keep/meminfo.h) \ - include/linux/seqlock.h \ - include/linux/mutex.h \ - $(wildcard include/config/mutex/spin/on/owner.h) \ - $(wildcard include/config/debug/mutexes.h) \ - include/linux/osq_lock.h \ - include/linux/debug_locks.h \ - include/linux/ww_mutex.h \ - $(wildcard include/config/debug/ww/mutex/slowpath.h) \ - include/linux/nodemask.h \ - include/linux/pageblock-flags.h \ - $(wildcard include/config/hugetlb/page.h) \ - $(wildcard include/config/hugetlb/page/size/variable.h) \ - include/linux/page-flags-layout.h \ - $(wildcard include/config/numa/balancing.h) \ - $(wildcard include/config/kasan/sw/tags.h) \ - include/generated/bounds.h \ - include/linux/mm_types.h \ - $(wildcard include/config/have/aligned/struct/page.h) \ - $(wildcard include/config/userfaultfd.h) \ - $(wildcard include/config/swap.h) \ - $(wildcard include/config/have/arch/compat/mmap/bases.h) \ - $(wildcard include/config/membarrier.h) \ - $(wildcard include/config/aio.h) \ - $(wildcard include/config/mmu/notifier.h) \ - $(wildcard include/config/arch/want/batched/unmap/tlb/flush.h) \ - $(wildcard include/config/iommu/support.h) \ - include/linux/mm_types_task.h \ - $(wildcard include/config/split/ptlock/cpus.h) \ - $(wildcard include/config/arch/enable/split/pmd/ptlock.h) \ - include/linux/auxvec.h \ - include/uapi/linux/auxvec.h \ - arch/arm/include/asm/auxvec.h \ - arch/arm/include/uapi/asm/auxvec.h \ include/linux/rbtree.h \ include/linux/rcupdate.h \ $(wildcard include/config/preempt/rcu.h) \ - $(wildcard include/config/tiny/rcu.h) \ - $(wildcard include/config/tasks/rcu/generic.h) \ $(wildcard include/config/rcu/stall/common.h) \ $(wildcard include/config/no/hz/full.h) \ $(wildcard include/config/rcu/nocb/cpu.h) \ $(wildcard include/config/tasks/rcu.h) \ - $(wildcard include/config/tasks/trace/rcu.h) \ - $(wildcard include/config/tasks/rude/rcu.h) \ $(wildcard include/config/tree/rcu.h) \ + $(wildcard include/config/tiny/rcu.h) \ $(wildcard include/config/debug/objects/rcu/head.h) \ $(wildcard include/config/prove/rcu.h) \ $(wildcard include/config/rcu/boost.h) \ @@ -460,31 +425,119 @@ deps_/home/pi/ml-driver/ml_driver.mod.o := \ include/linux/rwsem.h \ $(wildcard include/config/rwsem/spin/on/owner.h) \ $(wildcard include/config/debug/rwsems.h) \ - include/linux/err.h \ + include/linux/osq_lock.h \ include/linux/completion.h \ - include/linux/swait.h \ + include/linux/wait.h \ + include/uapi/linux/wait.h \ include/linux/uprobes.h \ $(wildcard include/config/uprobes.h) \ + arch/x86/include/asm/uprobes.h \ + include/linux/notifier.h \ + $(wildcard include/config/tree/srcu.h) \ + include/linux/mutex.h \ + $(wildcard include/config/mutex/spin/on/owner.h) \ + $(wildcard include/config/debug/mutexes.h) \ + include/linux/debug_locks.h \ + $(wildcard include/config/debug/locking/api/selftests.h) \ + include/linux/srcu.h \ + $(wildcard include/config/tiny/srcu.h) \ + $(wildcard include/config/srcu.h) \ include/linux/workqueue.h \ $(wildcard include/config/debug/objects/work.h) \ $(wildcard include/config/freezer.h) \ + $(wildcard include/config/sysfs.h) \ $(wildcard include/config/wq/watchdog.h) \ include/linux/timer.h \ $(wildcard include/config/debug/objects/timers.h) \ + $(wildcard include/config/preempt/rt.h) \ $(wildcard include/config/no/hz/common.h) \ include/linux/ktime.h \ + include/linux/time.h \ + $(wildcard include/config/arch/uses/gettimeoffset.h) \ + include/linux/seqlock.h \ + include/linux/time32.h \ + include/linux/timex.h \ + include/uapi/linux/timex.h \ + include/uapi/linux/param.h \ + arch/x86/include/generated/uapi/asm/param.h \ + include/asm-generic/param.h \ + $(wildcard include/config/hz.h) \ + include/uapi/asm-generic/param.h \ + arch/x86/include/asm/timex.h \ + $(wildcard include/config/x86/tsc.h) \ + arch/x86/include/asm/tsc.h \ include/linux/jiffies.h \ - include/vdso/jiffies.h \ include/generated/timeconst.h \ - include/vdso/ktime.h \ include/linux/timekeeping.h \ include/linux/timekeeping32.h \ include/linux/debugobjects.h \ $(wildcard include/config/debug/objects.h) \ $(wildcard include/config/debug/objects/free.h) \ - arch/arm/include/asm/mmu.h \ - $(wildcard include/config/cpu/has/asid.h) \ - $(wildcard include/config/vdso.h) \ + include/linux/rcu_segcblist.h \ + include/linux/srcutree.h \ + include/linux/rcu_node_tree.h \ + $(wildcard include/config/rcu/fanout.h) \ + $(wildcard include/config/rcu/fanout/leaf.h) \ + include/linux/page-flags-layout.h \ + $(wildcard include/config/kasan/sw/tags.h) \ + include/linux/numa.h \ + $(wildcard include/config/nodes/shift.h) \ + include/generated/bounds.h \ + arch/x86/include/asm/mmu.h \ + $(wildcard include/config/modify/ldt/syscall.h) \ + include/uapi/linux/elf.h \ + include/uapi/linux/elf-em.h \ + include/linux/module.h \ + $(wildcard include/config/modules/tree/lookup.h) \ + $(wildcard include/config/livepatch.h) \ + $(wildcard include/config/module/sig.h) \ + $(wildcard include/config/kallsyms.h) \ + $(wildcard include/config/bpf/events.h) \ + $(wildcard include/config/event/tracing.h) \ + $(wildcard include/config/constructors.h) \ + $(wildcard include/config/function/error/injection.h) \ + include/linux/stat.h \ + arch/x86/include/uapi/asm/stat.h \ + include/uapi/linux/stat.h \ + include/linux/uidgid.h \ + $(wildcard include/config/multiuser.h) \ + $(wildcard include/config/user/ns.h) \ + include/linux/highuid.h \ + include/linux/kmod.h \ + include/linux/umh.h \ + include/linux/gfp.h \ + $(wildcard include/config/highmem.h) \ + $(wildcard include/config/zone/dma.h) \ + $(wildcard include/config/zone/dma32.h) \ + $(wildcard include/config/zone/device.h) \ + $(wildcard include/config/pm/sleep.h) \ + $(wildcard include/config/contig/alloc.h) \ + $(wildcard include/config/cma.h) \ + include/linux/mmdebug.h \ + $(wildcard include/config/debug/vm.h) \ + $(wildcard include/config/debug/vm/pgflags.h) \ + include/linux/mmzone.h \ + $(wildcard include/config/force/max/zoneorder.h) \ + $(wildcard include/config/memory/isolation.h) \ + $(wildcard include/config/shuffle/page/allocator.h) \ + $(wildcard include/config/zsmalloc.h) \ + $(wildcard include/config/memory/hotplug.h) \ + $(wildcard include/config/compaction.h) \ + $(wildcard include/config/flat/node/mem/map.h) \ + $(wildcard include/config/page/extension.h) \ + $(wildcard include/config/deferred/struct/page/init.h) \ + $(wildcard include/config/have/memory/present.h) \ + $(wildcard include/config/have/memoryless/nodes.h) \ + $(wildcard include/config/have/memblock/node/map.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/memory/hotremove.h) \ + $(wildcard include/config/have/arch/pfn/valid.h) \ + $(wildcard include/config/holes/in/zone.h) \ + include/linux/nodemask.h \ + include/linux/pageblock-flags.h \ + $(wildcard include/config/hugetlb/page/size/variable.h) \ include/linux/page-flags.h \ $(wildcard include/config/arch/uses/pg/uncached.h) \ $(wildcard include/config/memory/failure.h) \ @@ -495,15 +548,73 @@ deps_/home/pi/ml-driver/ml_driver.mod.o := \ $(wildcard include/config/arch/has/add/pages.h) \ $(wildcard include/config/have/arch/nodedata/extension.h) \ $(wildcard include/config/have/bootmem/info/node.h) \ - include/linux/notifier.h \ - include/linux/srcu.h \ - $(wildcard include/config/tiny/srcu.h) \ - $(wildcard include/config/srcu.h) \ - include/linux/rcu_segcblist.h \ - include/linux/srcutree.h \ - include/linux/rcu_node_tree.h \ - $(wildcard include/config/rcu/fanout.h) \ - $(wildcard include/config/rcu/fanout/leaf.h) \ + arch/x86/include/asm/mmzone.h \ + arch/x86/include/asm/mmzone_64.h \ + arch/x86/include/asm/smp.h \ + $(wildcard include/config/x86/local/apic.h) \ + $(wildcard include/config/x86/io/apic.h) \ + $(wildcard include/config/debug/nmi/selftest.h) \ + arch/x86/include/asm/mpspec.h \ + $(wildcard include/config/eisa.h) \ + $(wildcard include/config/x86/mpparse.h) \ + arch/x86/include/asm/mpspec_def.h \ + arch/x86/include/asm/x86_init.h \ + arch/x86/include/asm/apicdef.h \ + arch/x86/include/asm/apic.h \ + $(wildcard include/config/x86/x2apic.h) \ + arch/x86/include/asm/fixmap.h \ + $(wildcard include/config/provide/ohci1394/dma/init.h) \ + $(wildcard include/config/pci/mmconfig.h) \ + $(wildcard include/config/x86/intel/mid.h) \ + $(wildcard include/config/acpi/apei/ghes.h) \ + $(wildcard include/config/intel/txt.h) \ + arch/x86/include/asm/acpi.h \ + $(wildcard include/config/acpi/apei.h) \ + $(wildcard include/config/acpi.h) \ + $(wildcard include/config/acpi/numa.h) \ + include/acpi/pdc_intel.h \ + arch/x86/include/asm/numa.h \ + $(wildcard include/config/numa/emu.h) \ + arch/x86/include/asm/topology.h \ + $(wildcard include/config/sched/mc/prio.h) \ + include/asm-generic/topology.h \ + arch/x86/include/asm/realmode.h \ + $(wildcard include/config/acpi/sleep.h) \ + arch/x86/include/asm/io.h \ + $(wildcard include/config/mtrr.h) \ + $(wildcard include/config/x86/pat.h) \ + arch/x86/include/generated/asm/early_ioremap.h \ + include/asm-generic/early_ioremap.h \ + $(wildcard include/config/generic/early/ioremap.h) \ + include/asm-generic/iomap.h \ + $(wildcard include/config/has/ioport/map.h) \ + $(wildcard include/config/pci.h) \ + $(wildcard include/config/generic/iomap.h) \ + include/asm-generic/pci_iomap.h \ + $(wildcard include/config/no/generic/pci/ioport/map.h) \ + $(wildcard include/config/generic/pci/iomap.h) \ + include/asm-generic/io.h \ + $(wildcard include/config/virt/to/bus.h) \ + include/linux/logic_pio.h \ + $(wildcard include/config/indirect/pio.h) \ + include/linux/fwnode.h \ + include/linux/vmalloc.h \ + include/linux/llist.h \ + $(wildcard include/config/arch/have/nmi/safe/cmpxchg.h) \ + include/linux/overflow.h \ + arch/x86/include/uapi/asm/vsyscall.h \ + include/asm-generic/fixmap.h \ + arch/x86/include/asm/hardirq.h \ + $(wildcard include/config/kvm/intel.h) \ + $(wildcard include/config/have/kvm.h) \ + $(wildcard include/config/x86/thermal/vector.h) \ + $(wildcard include/config/x86/mce/threshold.h) \ + $(wildcard include/config/x86/mce/amd.h) \ + $(wildcard include/config/x86/hv/callback/vector.h) \ + $(wildcard include/config/hyperv.h) \ + arch/x86/include/asm/io_apic.h \ + arch/x86/include/asm/irq_vectors.h \ + $(wildcard include/config/pci/msi.h) \ include/linux/topology.h \ $(wildcard include/config/use/percpu/numa/node/id.h) \ $(wildcard include/config/sched/smt.h) \ @@ -512,38 +623,11 @@ deps_/home/pi/ml-driver/ml_driver.mod.o := \ include/linux/percpu.h \ $(wildcard include/config/need/per/cpu/embed/first/chunk.h) \ $(wildcard include/config/need/per/cpu/page/first/chunk.h) \ - arch/arm/include/asm/topology.h \ - $(wildcard include/config/arm/cpu/topology.h) \ - $(wildcard include/config/bl/switcher.h) \ - include/asm-generic/topology.h \ + include/linux/smp.h \ + $(wildcard include/config/up/late/init.h) \ include/linux/sysctl.h \ $(wildcard include/config/sysctl.h) \ include/uapi/linux/sysctl.h \ - include/linux/elf.h \ - $(wildcard include/config/arch/use/gnu/property.h) \ - $(wildcard include/config/arch/have/elf/prot.h) \ - arch/arm/include/asm/elf.h \ - arch/arm/include/asm/vdso_datapage.h \ - include/vdso/datapage.h \ - $(wildcard include/config/arch/has/vdso/data.h) \ - include/uapi/asm-generic/errno-base.h \ - include/vdso/clocksource.h \ - $(wildcard include/config/generic/gettimeofday.h) \ - arch/arm/include/asm/vdso/clocksource.h \ - include/vdso/processor.h \ - arch/arm/include/asm/vdso/gettimeofday.h \ - $(wildcard include/config/arm/arch/timer.h) \ - arch/arm/include/asm/unistd.h \ - $(wildcard include/config/oabi/compat.h) \ - arch/arm/include/uapi/asm/unistd.h \ - arch/arm/include/generated/uapi/asm/unistd-eabi.h \ - arch/arm/include/generated/uapi/asm/unistd-common.h \ - arch/arm/include/generated/asm/unistd-nr.h \ - arch/arm/include/asm/vdso/cp15.h \ - $(wildcard include/config/cpu/cp15.h) \ - arch/arm/include/asm/user.h \ - include/uapi/linux/elf.h \ - include/uapi/linux/elf-em.h \ include/linux/kobject.h \ $(wildcard include/config/uevent/helper.h) \ $(wildcard include/config/debug/kobject/release.h) \ @@ -555,8 +639,6 @@ deps_/home/pi/ml-driver/ml_driver.mod.o := \ include/linux/xarray.h \ $(wildcard include/config/xarray/multi.h) \ include/linux/kconfig.h \ - include/linux/local_lock.h \ - include/linux/local_lock_internal.h \ include/linux/kobject_ns.h \ include/linux/kref.h \ include/linux/refcount.h \ @@ -564,30 +646,41 @@ deps_/home/pi/ml-driver/ml_driver.mod.o := \ $(wildcard include/config/alpha.h) \ $(wildcard include/config/ia64.h) \ $(wildcard include/config/ppc64.h) \ - include/linux/jump_label.h \ - $(wildcard include/config/have/arch/jump/label/relative.h) \ - arch/arm/include/asm/jump_label.h \ include/linux/rbtree_latch.h \ include/linux/error-injection.h \ include/asm-generic/error-injection.h \ - include/linux/tracepoint-defs.h \ - include/linux/static_key.h \ - include/linux/static_call_types.h \ - $(wildcard include/config/have/static/call.h) \ - arch/arm/include/asm/module.h \ - $(wildcard include/config/arm/unwind.h) \ - $(wildcard include/config/arm/module/plts.h) \ + arch/x86/include/asm/module.h \ + $(wildcard include/config/unwinder/orc.h) \ + $(wildcard include/config/m486.h) \ + $(wildcard include/config/m586.h) \ + $(wildcard include/config/m586tsc.h) \ + $(wildcard include/config/m586mmx.h) \ + $(wildcard include/config/mcore2.h) \ + $(wildcard include/config/m686.h) \ + $(wildcard include/config/mpentiumii.h) \ + $(wildcard include/config/mpentiumiii.h) \ + $(wildcard include/config/mpentiumm.h) \ + $(wildcard include/config/mpentium4.h) \ + $(wildcard include/config/mk6.h) \ + $(wildcard include/config/mk8.h) \ + $(wildcard include/config/melan.h) \ + $(wildcard include/config/mcrusoe.h) \ + $(wildcard include/config/mefficeon.h) \ + $(wildcard include/config/mwinchipc6.h) \ + $(wildcard include/config/mwinchip3d.h) \ + $(wildcard include/config/mcyrixiii.h) \ + $(wildcard include/config/mviac3/2.h) \ + $(wildcard include/config/mviac7.h) \ + $(wildcard include/config/mgeodegx1.h) \ + $(wildcard include/config/mgeode/lx.h) \ include/asm-generic/module.h \ $(wildcard include/config/have/mod/arch/specific.h) \ $(wildcard include/config/modules/use/elf/rel.h) \ $(wildcard include/config/modules/use/elf/rela.h) \ - include/linux/build-salt.h \ - $(wildcard include/config/build/salt.h) \ - include/linux/elfnote.h \ + arch/x86/include/asm/orc_types.h \ include/linux/vermagic.h \ include/generated/utsrelease.h \ - arch/arm/include/asm/vermagic.h \ -/home/pi/ml-driver/ml_driver.mod.o: $(deps_/home/pi/ml-driver/ml_driver.mod.o) +/home/wandog/workspace/ml-driver/ml_driver.mod.o: $(deps_/home/wandog/workspace/ml-driver/ml_driver.mod.o) -$(deps_/home/pi/ml-driver/ml_driver.mod.o): +$(deps_/home/wandog/workspace/ml-driver/ml_driver.mod.o): diff --git a/.ml_driver.o.cmd b/.ml_driver.o.cmd index ccb95a9..7707f93 100644 --- a/.ml_driver.o.cmd +++ b/.ml_driver.o.cmd @@ -1,24 +1,23 @@ -cmd_/home/pi/ml-driver/ml_driver.o := gcc -Wp,-MMD,/home/pi/ml-driver/.ml_driver.o.d -nostdinc -isystem /usr/lib/gcc/arm-linux-gnueabihf/8/include -I./arch/arm/include -I./arch/arm/include/generated -I./include -I./arch/arm/include/uapi -I./arch/arm/include/generated/uapi -I./include/uapi -I./include/generated/uapi -include ./include/linux/kconfig.h -include ./include/linux/compiler_types.h -D__KERNEL__ -mlittle-endian -fmacro-prefix-map=./= -Wall -Wundef -Werror=strict-prototypes -Wno-trigraphs -fno-strict-aliasing -fno-common -fshort-wchar -fno-PIE -Werror=implicit-function-declaration -Werror=implicit-int -Werror=return-type -Wno-format-security -std=gnu89 -fno-dwarf2-cfi-asm -fno-omit-frame-pointer -mapcs -mno-sched-prolog -fno-ipa-sra -mabi=aapcs-linux -mfpu=vfp -marm -Wa,-mno-warn-deprecated -D__LINUX_ARM_ARCH__=7 -march=armv7-a -msoft-float -Uarm -fno-delete-null-pointer-checks -Wno-frame-address -Wno-format-truncation -Wno-format-overflow -O2 --param=allow-store-data-races=0 -Wframe-larger-than=1024 -fstack-protector-strong -Wimplicit-fallthrough -Wno-unused-but-set-variable -Wno-unused-const-variable -fno-omit-frame-pointer -fno-optimize-sibling-calls -pg -Wdeclaration-after-statement -Wvla -Wno-pointer-sign -Wno-stringop-truncation -Wno-array-bounds -Wno-stringop-overflow -Wno-restrict -Wno-maybe-uninitialized -fno-strict-overflow -fno-stack-check -fconserve-stack -Werror=date-time -Werror=incompatible-pointer-types -Werror=designated-init -Wno-packed-not-aligned -O -g -DML_DEBUG -DMODULE -DKBUILD_BASENAME='"ml_driver"' -DKBUILD_MODNAME='"ml_driver"' -c -o /home/pi/ml-driver/ml_driver.o /home/pi/ml-driver/ml_driver.c +cmd_/home/wandog/workspace/ml-driver/ml_driver.o := gcc -Wp,-MD,/home/wandog/workspace/ml-driver/.ml_driver.o.d -nostdinc -isystem /usr/lib/gcc/x86_64-linux-gnu/9/include -I./arch/x86/include -I./arch/x86/include/generated -I./include -I./arch/x86/include/uapi -I./arch/x86/include/generated/uapi -I./include/uapi -I./include/generated/uapi -include ./include/linux/kconfig.h -Iubuntu/include -include ./include/linux/compiler_types.h -D__KERNEL__ -Wall -Wundef -Werror=strict-prototypes -Wno-trigraphs -fno-strict-aliasing -fno-common -fshort-wchar -fno-PIE -Werror=implicit-function-declaration -Werror=implicit-int -Werror=return-type -Wno-format-security -std=gnu89 -mno-sse -mno-mmx -mno-sse2 -mno-3dnow -mno-avx -fcf-protection=none -m64 -falign-jumps=1 -falign-loops=1 -mno-80387 -mno-fp-ret-in-387 -mpreferred-stack-boundary=3 -mskip-rax-setup -mtune=generic -mno-red-zone -mcmodel=kernel -DCONFIG_X86_X32_ABI -DCONFIG_AS_CFI=1 -DCONFIG_AS_CFI_SIGNAL_FRAME=1 -DCONFIG_AS_CFI_SECTIONS=1 -DCONFIG_AS_SSSE3=1 -DCONFIG_AS_AVX=1 -DCONFIG_AS_AVX2=1 -DCONFIG_AS_AVX512=1 -DCONFIG_AS_SHA1_NI=1 -DCONFIG_AS_SHA256_NI=1 -Wno-sign-compare -fno-asynchronous-unwind-tables -mindirect-branch=thunk-extern -mindirect-branch-register -fno-jump-tables -fno-delete-null-pointer-checks -Wno-frame-address -Wno-format-truncation -Wno-format-overflow -Wno-address-of-packed-member -O2 --param=allow-store-data-races=0 -Wframe-larger-than=1024 -fstack-protector-strong -Wimplicit-fallthrough -Wno-unused-but-set-variable -Wno-unused-const-variable -fno-omit-frame-pointer -fno-optimize-sibling-calls -fno-var-tracking-assignments -pg -mrecord-mcount -mfentry -DCC_USING_FENTRY -flive-patching=inline-clone -Wdeclaration-after-statement -Wvla -Wno-pointer-sign -Wno-stringop-truncation -Wno-array-bounds -Wno-stringop-overflow -Wno-restrict -Wno-maybe-uninitialized -fno-strict-overflow -fno-merge-all-constants -fmerge-constants -fno-stack-check -fconserve-stack -Werror=date-time -Werror=incompatible-pointer-types -Werror=designated-init -fmacro-prefix-map=./= -Wno-packed-not-aligned -DMODULE -DKBUILD_BASENAME='"ml_driver"' -DKBUILD_MODNAME='"ml_driver"' -c -o /home/wandog/workspace/ml-driver/ml_driver.o /home/wandog/workspace/ml-driver/ml_driver.c -source_/home/pi/ml-driver/ml_driver.o := /home/pi/ml-driver/ml_driver.c +source_/home/wandog/workspace/ml-driver/ml_driver.o := /home/wandog/workspace/ml-driver/ml_driver.c -deps_/home/pi/ml-driver/ml_driver.o := \ +deps_/home/wandog/workspace/ml-driver/ml_driver.o := \ $(wildcard include/config/usb/dynamic/minors.h) \ include/linux/kconfig.h \ - $(wildcard include/config/cc/version/text.h) \ $(wildcard include/config/cpu/big/endian.h) \ $(wildcard include/config/booger.h) \ $(wildcard include/config/foo.h) \ include/linux/compiler_types.h \ $(wildcard include/config/have/arch/compiler/h.h) \ $(wildcard include/config/enable/must/check.h) \ + $(wildcard include/config/optimize/inlining.h) \ $(wildcard include/config/cc/has/asm/inline.h) \ include/linux/compiler_attributes.h \ include/linux/compiler-gcc.h \ $(wildcard include/config/arm64.h) \ $(wildcard include/config/retpoline.h) \ $(wildcard include/config/arch/use/builtin/bswap.h) \ - $(wildcard include/config/kcov.h) \ include/linux/module.h \ $(wildcard include/config/modules.h) \ $(wildcard include/config/sysfs.h) \ @@ -36,11 +35,10 @@ deps_/home/pi/ml-driver/ml_driver.o := \ $(wildcard include/config/tracing.h) \ $(wildcard include/config/event/tracing.h) \ $(wildcard include/config/ftrace/mcount/record.h) \ - $(wildcard include/config/kprobes.h) \ - $(wildcard include/config/have/static/call/inline.h) \ $(wildcard include/config/module/unload.h) \ $(wildcard include/config/constructors.h) \ $(wildcard include/config/function/error/injection.h) \ + $(wildcard include/config/strict/module/rwx.h) \ include/linux/list.h \ $(wildcard include/config/debug/list.h) \ include/linux/types.h \ @@ -50,143 +48,101 @@ deps_/home/pi/ml-driver/ml_driver.o := \ $(wildcard include/config/phys/addr/t/64bit.h) \ $(wildcard include/config/64bit.h) \ include/uapi/linux/types.h \ - arch/arm/include/uapi/asm/types.h \ + arch/x86/include/generated/uapi/asm/types.h \ + include/uapi/asm-generic/types.h \ include/asm-generic/int-ll64.h \ include/uapi/asm-generic/int-ll64.h \ - arch/arm/include/generated/uapi/asm/bitsperlong.h \ + arch/x86/include/uapi/asm/bitsperlong.h \ include/asm-generic/bitsperlong.h \ include/uapi/asm-generic/bitsperlong.h \ include/uapi/linux/posix_types.h \ include/linux/stddef.h \ include/uapi/linux/stddef.h \ include/linux/compiler_types.h \ - arch/arm/include/uapi/asm/posix_types.h \ + arch/x86/include/asm/posix_types.h \ + $(wildcard include/config/x86/32.h) \ + arch/x86/include/uapi/asm/posix_types_64.h \ include/uapi/asm-generic/posix_types.h \ include/linux/poison.h \ $(wildcard include/config/illegal/pointer/value.h) \ $(wildcard include/config/page/poisoning/zero.h) \ include/linux/const.h \ - include/vdso/const.h \ include/uapi/linux/const.h \ include/linux/kernel.h \ $(wildcard include/config/preempt/voluntary.h) \ $(wildcard include/config/debug/atomic/sleep.h) \ - $(wildcard include/config/preempt/rt.h) \ $(wildcard include/config/mmu.h) \ $(wildcard include/config/prove/locking.h) \ + $(wildcard include/config/arch/has/refcount.h) \ $(wildcard include/config/panic/timeout.h) \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/stdarg.h \ include/linux/limits.h \ include/uapi/linux/limits.h \ - include/vdso/limits.h \ include/linux/linkage.h \ - $(wildcard include/config/arch/use/sym/annotations.h) \ include/linux/stringify.h \ include/linux/export.h \ $(wildcard include/config/modversions.h) \ $(wildcard include/config/module/rel/crcs.h) \ $(wildcard include/config/have/arch/prel32/relocations.h) \ $(wildcard include/config/trim/unused/ksyms.h) \ - arch/arm/include/asm/linkage.h \ include/linux/compiler.h \ $(wildcard include/config/trace/branch/profiling.h) \ $(wildcard include/config/profile/all/branches.h) \ $(wildcard include/config/stack/validation.h) \ - arch/arm/include/generated/asm/rwonce.h \ - include/asm-generic/rwonce.h \ - include/linux/kasan-checks.h \ + $(wildcard include/config/debug/entry.h) \ $(wildcard include/config/kasan.h) \ - include/linux/kcsan-checks.h \ - $(wildcard include/config/kcsan.h) \ - $(wildcard include/config/kcsan/ignore/atomics.h) \ + arch/x86/include/asm/barrier.h \ + arch/x86/include/asm/alternative.h \ + arch/x86/include/asm/asm.h \ + arch/x86/include/asm/nops.h \ + $(wildcard include/config/mk7.h) \ + $(wildcard include/config/x86/p6/nop.h) \ + $(wildcard include/config/x86/64.h) \ + include/asm-generic/barrier.h \ + include/linux/kasan-checks.h \ + arch/x86/include/asm/linkage.h \ + $(wildcard include/config/x86/alignment/16.h) \ include/linux/bitops.h \ include/linux/bits.h \ - include/vdso/bits.h \ - include/linux/build_bug.h \ - arch/arm/include/asm/bitops.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) \ - include/linux/typecheck.h \ - arch/arm/include/asm/irqflags.h \ - $(wildcard include/config/cpu/v7m.h) \ - arch/arm/include/asm/ptrace.h \ - $(wildcard include/config/arm/thumb.h) \ - $(wildcard include/config/thumb2/kernel.h) \ - arch/arm/include/uapi/asm/ptrace.h \ - $(wildcard include/config/cpu/endian/be8.h) \ - arch/arm/include/asm/hwcap.h \ - arch/arm/include/uapi/asm/hwcap.h \ - include/asm-generic/irqflags.h \ - arch/arm/include/asm/percpu.h \ - $(wildcard include/config/cpu/v6.h) \ - include/asm-generic/percpu.h \ - $(wildcard include/config/debug/preempt.h) \ - $(wildcard include/config/have/setup/per/cpu/area.h) \ - include/linux/threads.h \ - $(wildcard include/config/nr/cpus.h) \ - $(wildcard include/config/base/small.h) \ - include/linux/percpu-defs.h \ - $(wildcard include/config/debug/force/weak/per/cpu.h) \ - $(wildcard include/config/amd/mem/encrypt.h) \ - arch/arm/include/asm/barrier.h \ - $(wildcard include/config/cpu/32v6k.h) \ - $(wildcard include/config/cpu/xsc3.h) \ - $(wildcard include/config/cpu/fa526.h) \ - $(wildcard include/config/arm/heavy/mb.h) \ - $(wildcard include/config/arm/dma/mem/bufferable.h) \ - $(wildcard include/config/cpu/spectre.h) \ - include/asm-generic/barrier.h \ - include/asm-generic/bitops/non-atomic.h \ - include/asm-generic/bitops/builtin-__fls.h \ - include/asm-generic/bitops/builtin-__ffs.h \ - include/asm-generic/bitops/builtin-fls.h \ - include/asm-generic/bitops/builtin-ffs.h \ - include/asm-generic/bitops/ffz.h \ - include/asm-generic/bitops/fls64.h \ - include/asm-generic/bitops/sched.h \ - include/asm-generic/bitops/hweight.h \ - include/asm-generic/bitops/arch_hweight.h \ - include/asm-generic/bitops/const_hweight.h \ - include/asm-generic/bitops/lock.h \ - include/linux/atomic.h \ - arch/arm/include/asm/atomic.h \ - $(wildcard include/config/generic/atomic64.h) \ - $(wildcard include/config/arm/lpae.h) \ - include/linux/prefetch.h \ - arch/arm/include/asm/processor.h \ - $(wildcard include/config/have/hw/breakpoint.h) \ - $(wildcard include/config/binfmt/elf/fdpic.h) \ - arch/arm/include/asm/hw_breakpoint.h \ - arch/arm/include/asm/unified.h \ - arch/arm/include/asm/vdso/processor.h \ - $(wildcard include/config/arm/errata/754327.h) \ - arch/arm/include/asm/cache.h \ - $(wildcard include/config/arm/l1/cache/shift.h) \ - $(wildcard include/config/aeabi.h) \ - arch/arm/include/asm/cmpxchg.h \ - $(wildcard include/config/cpu/sa1100.h) \ - $(wildcard include/config/cpu/sa110.h) \ - include/asm-generic/cmpxchg-local.h \ - include/linux/atomic-fallback.h \ - include/asm-generic/atomic-long.h \ + arch/x86/include/asm/bitops.h \ + $(wildcard include/config/x86/cmov.h) \ + arch/x86/include/asm/rmwcc.h \ + $(wildcard include/config/cc/has/asm/goto.h) \ include/asm-generic/bitops/find.h \ $(wildcard include/config/generic/find/first/bit.h) \ + include/asm-generic/bitops/sched.h \ + arch/x86/include/asm/arch_hweight.h \ + arch/x86/include/asm/cpufeatures.h \ + arch/x86/include/asm/required-features.h \ + $(wildcard include/config/x86/minimum/cpu/family.h) \ + $(wildcard include/config/math/emulation.h) \ + $(wildcard include/config/x86/pae.h) \ + $(wildcard include/config/x86/cmpxchg64.h) \ + $(wildcard include/config/x86/use/3dnow.h) \ + $(wildcard include/config/matom.h) \ + $(wildcard include/config/paravirt.h) \ + arch/x86/include/asm/disabled-features.h \ + $(wildcard include/config/x86/intel/mpx.h) \ + $(wildcard include/config/x86/smap.h) \ + $(wildcard include/config/x86/intel/umip.h) \ + $(wildcard include/config/x86/intel/memory/protection/keys.h) \ + $(wildcard include/config/x86/5level.h) \ + $(wildcard include/config/page/table/isolation.h) \ + include/asm-generic/bitops/const_hweight.h \ + include/asm-generic/bitops-instrumented.h \ include/asm-generic/bitops/le.h \ - arch/arm/include/uapi/asm/byteorder.h \ + arch/x86/include/uapi/asm/byteorder.h \ include/linux/byteorder/little_endian.h \ include/uapi/linux/byteorder/little_endian.h \ include/linux/swab.h \ include/uapi/linux/swab.h \ - arch/arm/include/asm/swab.h \ - arch/arm/include/uapi/asm/swab.h \ + arch/x86/include/uapi/asm/swab.h \ include/linux/byteorder/generic.h \ include/asm-generic/bitops/ext2-atomic-setbit.h \ include/linux/log2.h \ $(wildcard include/config/arch/has/ilog2/u32.h) \ $(wildcard include/config/arch/has/ilog2/u64.h) \ - include/linux/minmax.h \ + include/linux/typecheck.h \ include/linux/printk.h \ $(wildcard include/config/message/loglevel/default.h) \ $(wildcard include/config/console/loglevel/default.h) \ @@ -194,161 +150,166 @@ deps_/home/pi/ml-driver/ml_driver.o := \ $(wildcard include/config/early/printk.h) \ $(wildcard include/config/printk/nmi.h) \ $(wildcard include/config/printk.h) \ + $(wildcard include/config/kmsg/ids.h) \ $(wildcard include/config/dynamic/debug.h) \ - $(wildcard include/config/dynamic/debug/core.h) \ include/linux/init.h \ $(wildcard include/config/strict/kernel/rwx.h) \ - $(wildcard include/config/strict/module/rwx.h) \ include/linux/kern_levels.h \ include/linux/cache.h \ $(wildcard include/config/arch/has/cache/line/size.h) \ include/uapi/linux/kernel.h \ include/uapi/linux/sysinfo.h \ - include/linux/ratelimit_types.h \ - include/uapi/linux/param.h \ - arch/arm/include/generated/uapi/asm/param.h \ - include/asm-generic/param.h \ - $(wildcard include/config/hz.h) \ - include/uapi/asm-generic/param.h \ - include/linux/spinlock_types.h \ - $(wildcard include/config/debug/spinlock.h) \ - $(wildcard include/config/debug/lock/alloc.h) \ - arch/arm/include/asm/spinlock_types.h \ - include/linux/lockdep_types.h \ - $(wildcard include/config/prove/raw/lock/nesting.h) \ - $(wildcard include/config/preempt/lock.h) \ - $(wildcard include/config/lockdep.h) \ - $(wildcard include/config/lock/stat.h) \ - include/linux/rwlock_types.h \ - arch/arm/include/asm/div64.h \ - arch/arm/include/asm/compiler.h \ + arch/x86/include/asm/cache.h \ + $(wildcard include/config/x86/l1/cache/shift.h) \ + $(wildcard include/config/x86/internode/cache/shift.h) \ + $(wildcard include/config/x86/vsmp.h) \ + include/linux/dynamic_debug.h \ + include/linux/jump_label.h \ + $(wildcard include/config/have/arch/jump/label/relative.h) \ + arch/x86/include/asm/jump_label.h \ + include/linux/build_bug.h \ + arch/x86/include/asm/div64.h \ include/asm-generic/div64.h \ include/linux/stat.h \ - arch/arm/include/uapi/asm/stat.h \ + arch/x86/include/uapi/asm/stat.h \ include/uapi/linux/stat.h \ include/linux/time.h \ $(wildcard include/config/arch/uses/gettimeoffset.h) \ - $(wildcard include/config/posix/timers.h) \ - include/linux/math64.h \ - $(wildcard include/config/arch/supports/int128.h) \ - include/vdso/math64.h \ - include/linux/time64.h \ - include/vdso/time64.h \ - include/uapi/linux/time.h \ - include/uapi/linux/time_types.h \ - include/linux/time32.h \ - include/linux/timex.h \ - include/uapi/linux/timex.h \ - arch/arm/include/asm/timex.h \ - include/vdso/time32.h \ - include/vdso/time.h \ - include/linux/uidgid.h \ - $(wildcard include/config/multiuser.h) \ - $(wildcard include/config/user/ns.h) \ - include/linux/highuid.h \ - include/linux/kmod.h \ - include/linux/umh.h \ - include/linux/gfp.h \ - $(wildcard include/config/highmem.h) \ - $(wildcard include/config/zone/dma.h) \ - $(wildcard include/config/zone/dma32.h) \ - $(wildcard include/config/zone/device.h) \ - $(wildcard include/config/numa.h) \ - $(wildcard include/config/pm/sleep.h) \ - $(wildcard include/config/contig/alloc.h) \ - $(wildcard include/config/cma.h) \ - include/linux/mmdebug.h \ - $(wildcard include/config/debug/vm.h) \ - $(wildcard include/config/debug/virtual.h) \ - $(wildcard include/config/debug/vm/pgflags.h) \ - include/linux/bug.h \ - $(wildcard include/config/bug/on/data/corruption.h) \ - arch/arm/include/asm/bug.h \ - $(wildcard include/config/debug/bugverbose.h) \ - arch/arm/include/asm/opcodes.h \ - $(wildcard include/config/cpu/endian/be32.h) \ - include/asm-generic/bug.h \ - $(wildcard include/config/bug.h) \ - $(wildcard include/config/generic/bug/relative/pointers.h) \ - include/linux/instrumentation.h \ - $(wildcard include/config/debug/entry.h) \ - include/linux/mmzone.h \ - $(wildcard include/config/force/max/zoneorder.h) \ - $(wildcard include/config/memory/isolation.h) \ - $(wildcard include/config/zsmalloc.h) \ - $(wildcard include/config/shadow/call/stack.h) \ - $(wildcard include/config/memcg.h) \ - $(wildcard include/config/need/multiple/nodes.h) \ - $(wildcard include/config/sparsemem.h) \ - $(wildcard include/config/memory/hotplug.h) \ - $(wildcard include/config/compaction.h) \ - $(wildcard include/config/discontigmem.h) \ - $(wildcard include/config/transparent/hugepage.h) \ - $(wildcard include/config/flat/node/mem/map.h) \ - $(wildcard include/config/page/extension.h) \ - $(wildcard include/config/deferred/struct/page/init.h) \ - $(wildcard include/config/have/memoryless/nodes.h) \ - $(wildcard include/config/flatmem.h) \ - $(wildcard include/config/sparsemem/vmemmap.h) \ - $(wildcard include/config/sparsemem/extreme.h) \ - $(wildcard include/config/memory/hotremove.h) \ - $(wildcard include/config/have/arch/pfn/valid.h) \ - $(wildcard include/config/holes/in/zone.h) \ - $(wildcard include/config/arch/has/holes/memorymodel.h) \ + include/linux/seqlock.h \ + $(wildcard include/config/debug/lock/alloc.h) \ include/linux/spinlock.h \ + $(wildcard include/config/debug/spinlock.h) \ $(wildcard include/config/preemption.h) \ include/linux/preempt.h \ $(wildcard include/config/preempt/count.h) \ + $(wildcard include/config/debug/preempt.h) \ $(wildcard include/config/trace/preempt/toggle.h) \ $(wildcard include/config/preempt/notifiers.h) \ - arch/arm/include/generated/asm/preempt.h \ - include/asm-generic/preempt.h \ + arch/x86/include/asm/preempt.h \ + arch/x86/include/asm/percpu.h \ + $(wildcard include/config/x86/64/smp.h) \ + include/asm-generic/percpu.h \ + $(wildcard include/config/have/setup/per/cpu/area.h) \ + include/linux/threads.h \ + $(wildcard include/config/nr/cpus.h) \ + $(wildcard include/config/base/small.h) \ + include/linux/percpu-defs.h \ + $(wildcard include/config/debug/force/weak/per/cpu.h) \ + $(wildcard include/config/amd/mem/encrypt.h) \ include/linux/thread_info.h \ $(wildcard include/config/thread/info/in/task.h) \ $(wildcard include/config/have/arch/within/stack/frames.h) \ $(wildcard include/config/hardened/usercopy.h) \ + include/linux/bug.h \ + $(wildcard include/config/bug/on/data/corruption.h) \ + arch/x86/include/asm/bug.h \ + $(wildcard include/config/debug/bugverbose.h) \ + include/asm-generic/bug.h \ + $(wildcard include/config/bug.h) \ + $(wildcard include/config/generic/bug/relative/pointers.h) \ include/linux/restart_block.h \ + include/linux/time64.h \ + include/linux/math64.h \ + $(wildcard include/config/arch/supports/int128.h) \ + include/uapi/linux/time.h \ + include/uapi/linux/time_types.h \ include/linux/errno.h \ include/uapi/linux/errno.h \ - arch/arm/include/generated/uapi/asm/errno.h \ + arch/x86/include/generated/uapi/asm/errno.h \ include/uapi/asm-generic/errno.h \ include/uapi/asm-generic/errno-base.h \ - arch/arm/include/asm/thread_info.h \ - $(wildcard include/config/stackprotector/per/task.h) \ - $(wildcard include/config/crunch.h) \ - $(wildcard include/config/arm/thumbee.h) \ - arch/arm/include/asm/fpstate.h \ - $(wildcard include/config/vfpv3.h) \ - $(wildcard include/config/iwmmxt.h) \ - arch/arm/include/asm/page.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/copy/fa.h) \ - $(wildcard include/config/cpu/xscale.h) \ - $(wildcard include/config/cpu/copy/v6.h) \ - $(wildcard include/config/kuser/helpers.h) \ - arch/arm/include/asm/glue.h \ - arch/arm/include/asm/pgtable-3level-types.h \ - arch/arm/include/asm/memory.h \ - $(wildcard include/config/need/mach/memory/h.h) \ - $(wildcard include/config/page/offset.h) \ - $(wildcard include/config/dram/base.h) \ - $(wildcard include/config/dram/size.h) \ - $(wildcard include/config/xip/kernel.h) \ - $(wildcard include/config/have/tcm.h) \ - $(wildcard include/config/arm/patch/phys/virt.h) \ - $(wildcard include/config/phys/offset.h) \ - $(wildcard include/config/xip/phys/addr.h) \ - include/linux/sizes.h \ + arch/x86/include/asm/current.h \ + arch/x86/include/asm/thread_info.h \ + $(wildcard include/config/vm86.h) \ + $(wildcard include/config/frame/pointer.h) \ + $(wildcard include/config/compat.h) \ + $(wildcard include/config/ia32/emulation.h) \ + arch/x86/include/asm/page.h \ + arch/x86/include/asm/page_types.h \ + $(wildcard include/config/physical/start.h) \ + $(wildcard include/config/physical/align.h) \ + $(wildcard include/config/dynamic/physical/mask.h) \ + include/linux/mem_encrypt.h \ + $(wildcard include/config/arch/has/mem/encrypt.h) \ + arch/x86/include/asm/mem_encrypt.h \ + arch/x86/include/uapi/asm/bootparam.h \ + include/linux/screen_info.h \ + include/uapi/linux/screen_info.h \ + include/linux/apm_bios.h \ + include/uapi/linux/apm_bios.h \ + include/uapi/linux/ioctl.h \ + arch/x86/include/generated/uapi/asm/ioctl.h \ + include/asm-generic/ioctl.h \ + include/uapi/asm-generic/ioctl.h \ + include/linux/edd.h \ + include/uapi/linux/edd.h \ + arch/x86/include/asm/ist.h \ + arch/x86/include/uapi/asm/ist.h \ + include/video/edid.h \ + $(wildcard include/config/x86.h) \ + include/uapi/video/edid.h \ + arch/x86/include/asm/page_64_types.h \ + $(wildcard include/config/dynamic/memory/layout.h) \ + $(wildcard include/config/randomize/base.h) \ + arch/x86/include/asm/kaslr.h \ + $(wildcard include/config/randomize/memory.h) \ + arch/x86/include/asm/page_64.h \ + $(wildcard include/config/debug/virtual.h) \ + $(wildcard include/config/flatmem.h) \ + $(wildcard include/config/x86/vsyscall/emulation.h) \ + include/linux/range.h \ include/asm-generic/memory_model.h \ + $(wildcard include/config/discontigmem.h) \ + $(wildcard include/config/sparsemem/vmemmap.h) \ + $(wildcard include/config/sparsemem.h) \ include/linux/pfn.h \ include/asm-generic/getorder.h \ - include/linux/bottom_half.h \ - include/linux/lockdep.h \ - $(wildcard include/config/debug/locking/api/selftests.h) \ - include/linux/smp.h \ - $(wildcard include/config/up/late/init.h) \ + arch/x86/include/asm/cpufeature.h \ + $(wildcard include/config/x86/feature/names.h) \ + arch/x86/include/asm/processor.h \ + $(wildcard include/config/kvm.h) \ + $(wildcard include/config/stackprotector.h) \ + $(wildcard include/config/paravirt/xxl.h) \ + $(wildcard include/config/x86/debugctlmsr.h) \ + $(wildcard include/config/cpu/sup/amd.h) \ + $(wildcard include/config/xen.h) \ + arch/x86/include/asm/processor-flags.h \ + arch/x86/include/uapi/asm/processor-flags.h \ + arch/x86/include/asm/math_emu.h \ + arch/x86/include/asm/ptrace.h \ + arch/x86/include/asm/segment.h \ + $(wildcard include/config/xen/pv.h) \ + $(wildcard include/config/x86/32/lazy/gs.h) \ + arch/x86/include/uapi/asm/ptrace.h \ + arch/x86/include/uapi/asm/ptrace-abi.h \ + arch/x86/include/asm/paravirt_types.h \ + $(wildcard include/config/pgtable/levels.h) \ + $(wildcard include/config/paravirt/debug.h) \ + arch/x86/include/asm/desc_defs.h \ + arch/x86/include/asm/kmap_types.h \ + $(wildcard include/config/debug/highmem.h) \ + include/asm-generic/kmap_types.h \ + arch/x86/include/asm/pgtable_types.h \ + $(wildcard include/config/mem/soft/dirty.h) \ + $(wildcard include/config/proc/fs.h) \ + arch/x86/include/asm/pgtable_64_types.h \ + arch/x86/include/asm/sparsemem.h \ + include/asm-generic/pgtable-nop4d.h \ + arch/x86/include/asm/nospec-branch.h \ + include/linux/static_key.h \ + include/linux/frame.h \ + arch/x86/include/asm/alternative-asm.h \ + arch/x86/include/asm/msr-index.h \ + arch/x86/include/asm/unwind_hints.h \ + arch/x86/include/asm/orc_types.h \ + arch/x86/include/asm/spinlock_types.h \ + $(wildcard include/config/paravirt/spinlocks.h) \ + include/asm-generic/qspinlock_types.h \ + include/asm-generic/qrwlock_types.h \ + arch/x86/include/uapi/asm/sigcontext.h \ + arch/x86/include/asm/msr.h \ + arch/x86/include/asm/msr-index.h \ + arch/x86/include/asm/cpumask.h \ include/linux/cpumask.h \ $(wildcard include/config/cpumask/offstack.h) \ $(wildcard include/config/hotplug/cpu.h) \ @@ -358,16 +319,48 @@ deps_/home/pi/ml-driver/ml_driver.o := \ $(wildcard include/config/binary/printf.h) \ $(wildcard include/config/fortify/source.h) \ include/uapi/linux/string.h \ - arch/arm/include/asm/string.h \ - $(wildcard include/config/bcm2835/fast/memcpy.h) \ - include/linux/smp_types.h \ - include/linux/llist.h \ - $(wildcard include/config/arch/have/nmi/safe/cmpxchg.h) \ - arch/arm/include/asm/smp.h \ - arch/arm/include/generated/asm/mmiowb.h \ + arch/x86/include/asm/string.h \ + arch/x86/include/asm/string_64.h \ + $(wildcard include/config/x86/mce.h) \ + $(wildcard include/config/arch/has/uaccess/flushcache.h) \ + include/linux/atomic.h \ + arch/x86/include/asm/atomic.h \ + arch/x86/include/asm/cmpxchg.h \ + arch/x86/include/asm/cmpxchg_64.h \ + arch/x86/include/asm/atomic64_64.h \ + include/asm-generic/atomic-instrumented.h \ + include/linux/atomic-fallback.h \ + $(wildcard include/config/generic/atomic64.h) \ + include/asm-generic/atomic-long.h \ + arch/x86/include/uapi/asm/msr.h \ + include/linux/tracepoint-defs.h \ + arch/x86/include/asm/paravirt.h \ + arch/x86/include/asm/frame.h \ + arch/x86/include/asm/special_insns.h \ + arch/x86/include/asm/fpu/types.h \ + include/linux/personality.h \ + include/uapi/linux/personality.h \ + include/linux/err.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) \ + arch/x86/include/asm/irqflags.h \ + include/linux/bottom_half.h \ + arch/x86/include/generated/asm/mmiowb.h \ include/asm-generic/mmiowb.h \ $(wildcard include/config/mmiowb.h) \ - arch/arm/include/asm/spinlock.h \ + include/linux/spinlock_types.h \ + include/linux/lockdep.h \ + $(wildcard include/config/lockdep.h) \ + $(wildcard include/config/lock/stat.h) \ + include/linux/rwlock_types.h \ + arch/x86/include/asm/spinlock.h \ + arch/x86/include/asm/qspinlock.h \ + include/asm-generic/qspinlock.h \ + arch/x86/include/asm/qrwlock.h \ + include/asm-generic/qrwlock.h \ include/linux/rwlock.h \ $(wildcard include/config/preempt.h) \ include/linux/spinlock_api_smp.h \ @@ -401,21 +394,60 @@ deps_/home/pi/ml-driver/ml_driver.o := \ $(wildcard include/config/inline/write/unlock/irq.h) \ $(wildcard include/config/inline/read/unlock/irqrestore.h) \ $(wildcard include/config/inline/write/unlock/irqrestore.h) \ + include/linux/time32.h \ + include/linux/timex.h \ + include/uapi/linux/timex.h \ + include/uapi/linux/param.h \ + arch/x86/include/generated/uapi/asm/param.h \ + include/asm-generic/param.h \ + $(wildcard include/config/hz.h) \ + include/uapi/asm-generic/param.h \ + arch/x86/include/asm/timex.h \ + $(wildcard include/config/x86/tsc.h) \ + arch/x86/include/asm/tsc.h \ + include/linux/uidgid.h \ + $(wildcard include/config/multiuser.h) \ + $(wildcard include/config/user/ns.h) \ + include/linux/highuid.h \ + include/linux/kmod.h \ + include/linux/umh.h \ + include/linux/gfp.h \ + $(wildcard include/config/highmem.h) \ + $(wildcard include/config/zone/dma.h) \ + $(wildcard include/config/zone/dma32.h) \ + $(wildcard include/config/zone/device.h) \ + $(wildcard include/config/numa.h) \ + $(wildcard include/config/pm/sleep.h) \ + $(wildcard include/config/contig/alloc.h) \ + $(wildcard include/config/cma.h) \ + include/linux/mmdebug.h \ + $(wildcard include/config/debug/vm.h) \ + $(wildcard include/config/debug/vm/pgflags.h) \ + include/linux/mmzone.h \ + $(wildcard include/config/force/max/zoneorder.h) \ + $(wildcard include/config/memory/isolation.h) \ + $(wildcard include/config/shuffle/page/allocator.h) \ + $(wildcard include/config/zsmalloc.h) \ + $(wildcard include/config/memcg.h) \ + $(wildcard include/config/memory/hotplug.h) \ + $(wildcard include/config/compaction.h) \ + $(wildcard include/config/transparent/hugepage.h) \ + $(wildcard include/config/flat/node/mem/map.h) \ + $(wildcard include/config/page/extension.h) \ + $(wildcard include/config/deferred/struct/page/init.h) \ + $(wildcard include/config/have/memory/present.h) \ + $(wildcard include/config/have/memoryless/nodes.h) \ + $(wildcard include/config/have/memblock/node/map.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/memory/hotremove.h) \ + $(wildcard include/config/have/arch/pfn/valid.h) \ + $(wildcard include/config/holes/in/zone.h) \ include/linux/wait.h \ - arch/arm/include/generated/asm/current.h \ - include/asm-generic/current.h \ include/uapi/linux/wait.h \ include/linux/numa.h \ $(wildcard include/config/nodes/shift.h) \ - $(wildcard include/config/numa/keep/meminfo.h) \ - include/linux/seqlock.h \ - include/linux/mutex.h \ - $(wildcard include/config/mutex/spin/on/owner.h) \ - $(wildcard include/config/debug/mutexes.h) \ - include/linux/osq_lock.h \ - include/linux/debug_locks.h \ - include/linux/ww_mutex.h \ - $(wildcard include/config/debug/ww/mutex/slowpath.h) \ include/linux/nodemask.h \ include/linux/pageblock-flags.h \ $(wildcard include/config/hugetlb/page.h) \ @@ -433,26 +465,22 @@ deps_/home/pi/ml-driver/ml_driver.o := \ $(wildcard include/config/aio.h) \ $(wildcard include/config/mmu/notifier.h) \ $(wildcard include/config/arch/want/batched/unmap/tlb/flush.h) \ - $(wildcard include/config/iommu/support.h) \ include/linux/mm_types_task.h \ $(wildcard include/config/split/ptlock/cpus.h) \ $(wildcard include/config/arch/enable/split/pmd/ptlock.h) \ + arch/x86/include/asm/tlbbatch.h \ include/linux/auxvec.h \ include/uapi/linux/auxvec.h \ - arch/arm/include/asm/auxvec.h \ - arch/arm/include/uapi/asm/auxvec.h \ + arch/x86/include/uapi/asm/auxvec.h \ include/linux/rbtree.h \ include/linux/rcupdate.h \ $(wildcard include/config/preempt/rcu.h) \ - $(wildcard include/config/tiny/rcu.h) \ - $(wildcard include/config/tasks/rcu/generic.h) \ $(wildcard include/config/rcu/stall/common.h) \ $(wildcard include/config/no/hz/full.h) \ $(wildcard include/config/rcu/nocb/cpu.h) \ $(wildcard include/config/tasks/rcu.h) \ - $(wildcard include/config/tasks/trace/rcu.h) \ - $(wildcard include/config/tasks/rude/rcu.h) \ $(wildcard include/config/tree/rcu.h) \ + $(wildcard include/config/tiny/rcu.h) \ $(wildcard include/config/debug/objects/rcu/head.h) \ $(wildcard include/config/prove/rcu.h) \ $(wildcard include/config/rcu/boost.h) \ @@ -461,31 +489,43 @@ deps_/home/pi/ml-driver/ml_driver.o := \ include/linux/rwsem.h \ $(wildcard include/config/rwsem/spin/on/owner.h) \ $(wildcard include/config/debug/rwsems.h) \ - include/linux/err.h \ + include/linux/osq_lock.h \ include/linux/completion.h \ - include/linux/swait.h \ include/linux/uprobes.h \ $(wildcard include/config/uprobes.h) \ + arch/x86/include/asm/uprobes.h \ + include/linux/notifier.h \ + include/linux/mutex.h \ + $(wildcard include/config/mutex/spin/on/owner.h) \ + $(wildcard include/config/debug/mutexes.h) \ + include/linux/debug_locks.h \ + $(wildcard include/config/debug/locking/api/selftests.h) \ + include/linux/srcu.h \ + $(wildcard include/config/tiny/srcu.h) \ + $(wildcard include/config/srcu.h) \ include/linux/workqueue.h \ $(wildcard include/config/debug/objects/work.h) \ $(wildcard include/config/freezer.h) \ $(wildcard include/config/wq/watchdog.h) \ include/linux/timer.h \ $(wildcard include/config/debug/objects/timers.h) \ + $(wildcard include/config/preempt/rt.h) \ $(wildcard include/config/no/hz/common.h) \ include/linux/ktime.h \ include/linux/jiffies.h \ - include/vdso/jiffies.h \ include/generated/timeconst.h \ - include/vdso/ktime.h \ include/linux/timekeeping.h \ include/linux/timekeeping32.h \ include/linux/debugobjects.h \ $(wildcard include/config/debug/objects.h) \ $(wildcard include/config/debug/objects/free.h) \ - arch/arm/include/asm/mmu.h \ - $(wildcard include/config/cpu/has/asid.h) \ - $(wildcard include/config/vdso.h) \ + include/linux/rcu_segcblist.h \ + include/linux/srcutree.h \ + include/linux/rcu_node_tree.h \ + $(wildcard include/config/rcu/fanout.h) \ + $(wildcard include/config/rcu/fanout/leaf.h) \ + arch/x86/include/asm/mmu.h \ + $(wildcard include/config/modify/ldt/syscall.h) \ include/linux/page-flags.h \ $(wildcard include/config/arch/uses/pg/uncached.h) \ $(wildcard include/config/memory/failure.h) \ @@ -496,15 +536,73 @@ deps_/home/pi/ml-driver/ml_driver.o := \ $(wildcard include/config/arch/has/add/pages.h) \ $(wildcard include/config/have/arch/nodedata/extension.h) \ $(wildcard include/config/have/bootmem/info/node.h) \ - include/linux/notifier.h \ - include/linux/srcu.h \ - $(wildcard include/config/tiny/srcu.h) \ - $(wildcard include/config/srcu.h) \ - include/linux/rcu_segcblist.h \ - include/linux/srcutree.h \ - include/linux/rcu_node_tree.h \ - $(wildcard include/config/rcu/fanout.h) \ - $(wildcard include/config/rcu/fanout/leaf.h) \ + arch/x86/include/asm/mmzone.h \ + arch/x86/include/asm/mmzone_64.h \ + arch/x86/include/asm/smp.h \ + $(wildcard include/config/x86/local/apic.h) \ + $(wildcard include/config/x86/io/apic.h) \ + $(wildcard include/config/debug/nmi/selftest.h) \ + arch/x86/include/asm/mpspec.h \ + $(wildcard include/config/eisa.h) \ + $(wildcard include/config/x86/mpparse.h) \ + arch/x86/include/asm/mpspec_def.h \ + arch/x86/include/asm/x86_init.h \ + arch/x86/include/asm/apicdef.h \ + arch/x86/include/asm/apic.h \ + $(wildcard include/config/x86/x2apic.h) \ + arch/x86/include/asm/fixmap.h \ + $(wildcard include/config/provide/ohci1394/dma/init.h) \ + $(wildcard include/config/pci/mmconfig.h) \ + $(wildcard include/config/x86/intel/mid.h) \ + $(wildcard include/config/acpi/apei/ghes.h) \ + $(wildcard include/config/intel/txt.h) \ + arch/x86/include/asm/acpi.h \ + $(wildcard include/config/acpi/apei.h) \ + $(wildcard include/config/acpi.h) \ + $(wildcard include/config/acpi/numa.h) \ + include/acpi/pdc_intel.h \ + arch/x86/include/asm/numa.h \ + $(wildcard include/config/numa/emu.h) \ + arch/x86/include/asm/topology.h \ + $(wildcard include/config/sched/mc/prio.h) \ + include/asm-generic/topology.h \ + arch/x86/include/asm/realmode.h \ + $(wildcard include/config/acpi/sleep.h) \ + arch/x86/include/asm/io.h \ + $(wildcard include/config/mtrr.h) \ + $(wildcard include/config/x86/pat.h) \ + arch/x86/include/generated/asm/early_ioremap.h \ + include/asm-generic/early_ioremap.h \ + $(wildcard include/config/generic/early/ioremap.h) \ + include/asm-generic/iomap.h \ + $(wildcard include/config/has/ioport/map.h) \ + $(wildcard include/config/pci.h) \ + $(wildcard include/config/generic/iomap.h) \ + include/asm-generic/pci_iomap.h \ + $(wildcard include/config/no/generic/pci/ioport/map.h) \ + $(wildcard include/config/generic/pci/iomap.h) \ + include/asm-generic/io.h \ + $(wildcard include/config/virt/to/bus.h) \ + include/linux/logic_pio.h \ + $(wildcard include/config/indirect/pio.h) \ + include/linux/fwnode.h \ + include/linux/vmalloc.h \ + include/linux/llist.h \ + $(wildcard include/config/arch/have/nmi/safe/cmpxchg.h) \ + include/linux/overflow.h \ + arch/x86/include/uapi/asm/vsyscall.h \ + include/asm-generic/fixmap.h \ + arch/x86/include/asm/hardirq.h \ + $(wildcard include/config/kvm/intel.h) \ + $(wildcard include/config/have/kvm.h) \ + $(wildcard include/config/x86/thermal/vector.h) \ + $(wildcard include/config/x86/mce/threshold.h) \ + $(wildcard include/config/x86/mce/amd.h) \ + $(wildcard include/config/x86/hv/callback/vector.h) \ + $(wildcard include/config/hyperv.h) \ + arch/x86/include/asm/io_apic.h \ + arch/x86/include/asm/irq_vectors.h \ + $(wildcard include/config/pci/msi.h) \ include/linux/topology.h \ $(wildcard include/config/use/percpu/numa/node/id.h) \ $(wildcard include/config/sched/smt.h) \ @@ -513,36 +611,19 @@ deps_/home/pi/ml-driver/ml_driver.o := \ include/linux/percpu.h \ $(wildcard include/config/need/per/cpu/embed/first/chunk.h) \ $(wildcard include/config/need/per/cpu/page/first/chunk.h) \ - arch/arm/include/asm/topology.h \ - $(wildcard include/config/arm/cpu/topology.h) \ - $(wildcard include/config/bl/switcher.h) \ - include/asm-generic/topology.h \ + include/linux/smp.h \ + $(wildcard include/config/up/late/init.h) \ include/linux/sysctl.h \ $(wildcard include/config/sysctl.h) \ include/uapi/linux/sysctl.h \ include/linux/elf.h \ - $(wildcard include/config/arch/use/gnu/property.h) \ - $(wildcard include/config/arch/have/elf/prot.h) \ - arch/arm/include/asm/elf.h \ - arch/arm/include/asm/vdso_datapage.h \ - include/vdso/datapage.h \ - $(wildcard include/config/arch/has/vdso/data.h) \ - include/uapi/asm-generic/errno-base.h \ - include/vdso/clocksource.h \ - $(wildcard include/config/generic/gettimeofday.h) \ - arch/arm/include/asm/vdso/clocksource.h \ - include/vdso/processor.h \ - arch/arm/include/asm/vdso/gettimeofday.h \ - $(wildcard include/config/arm/arch/timer.h) \ - arch/arm/include/asm/unistd.h \ - $(wildcard include/config/oabi/compat.h) \ - arch/arm/include/uapi/asm/unistd.h \ - arch/arm/include/generated/uapi/asm/unistd-eabi.h \ - arch/arm/include/generated/uapi/asm/unistd-common.h \ - arch/arm/include/generated/asm/unistd-nr.h \ - arch/arm/include/asm/vdso/cp15.h \ - $(wildcard include/config/cpu/cp15.h) \ - arch/arm/include/asm/user.h \ + arch/x86/include/asm/elf.h \ + $(wildcard include/config/x86/x32/abi.h) \ + arch/x86/include/asm/user.h \ + arch/x86/include/asm/user_64.h \ + arch/x86/include/asm/fsgsbase.h \ + arch/x86/include/asm/vdso.h \ + $(wildcard include/config/x86/x32.h) \ include/uapi/linux/elf.h \ include/uapi/linux/elf-em.h \ include/linux/kobject.h \ @@ -556,8 +637,6 @@ deps_/home/pi/ml-driver/ml_driver.o := \ include/linux/xarray.h \ $(wildcard include/config/xarray/multi.h) \ include/linux/kconfig.h \ - include/linux/local_lock.h \ - include/linux/local_lock_internal.h \ include/linux/kobject_ns.h \ include/linux/kref.h \ include/linux/refcount.h \ @@ -565,23 +644,38 @@ deps_/home/pi/ml-driver/ml_driver.o := \ $(wildcard include/config/alpha.h) \ $(wildcard include/config/ia64.h) \ $(wildcard include/config/ppc64.h) \ - include/linux/jump_label.h \ - $(wildcard include/config/have/arch/jump/label/relative.h) \ - arch/arm/include/asm/jump_label.h \ include/linux/rbtree_latch.h \ include/linux/error-injection.h \ include/asm-generic/error-injection.h \ - include/linux/tracepoint-defs.h \ - include/linux/static_key.h \ - include/linux/static_call_types.h \ - $(wildcard include/config/have/static/call.h) \ - arch/arm/include/asm/module.h \ - $(wildcard include/config/arm/unwind.h) \ - $(wildcard include/config/arm/module/plts.h) \ + arch/x86/include/asm/module.h \ + $(wildcard include/config/unwinder/orc.h) \ + $(wildcard include/config/m486.h) \ + $(wildcard include/config/m586.h) \ + $(wildcard include/config/m586tsc.h) \ + $(wildcard include/config/m586mmx.h) \ + $(wildcard include/config/mcore2.h) \ + $(wildcard include/config/m686.h) \ + $(wildcard include/config/mpentiumii.h) \ + $(wildcard include/config/mpentiumiii.h) \ + $(wildcard include/config/mpentiumm.h) \ + $(wildcard include/config/mpentium4.h) \ + $(wildcard include/config/mk6.h) \ + $(wildcard include/config/mk8.h) \ + $(wildcard include/config/melan.h) \ + $(wildcard include/config/mcrusoe.h) \ + $(wildcard include/config/mefficeon.h) \ + $(wildcard include/config/mwinchipc6.h) \ + $(wildcard include/config/mwinchip3d.h) \ + $(wildcard include/config/mcyrixiii.h) \ + $(wildcard include/config/mviac3/2.h) \ + $(wildcard include/config/mviac7.h) \ + $(wildcard include/config/mgeodegx1.h) \ + $(wildcard include/config/mgeode/lx.h) \ include/asm-generic/module.h \ $(wildcard include/config/have/mod/arch/specific.h) \ $(wildcard include/config/modules/use/elf/rel.h) \ $(wildcard include/config/modules/use/elf/rela.h) \ + arch/x86/include/asm/orc_types.h \ include/linux/slab.h \ $(wildcard include/config/debug/slab.h) \ $(wildcard include/config/failslab.h) \ @@ -590,16 +684,12 @@ deps_/home/pi/ml-driver/ml_driver.o := \ $(wildcard include/config/slab.h) \ $(wildcard include/config/slub.h) \ $(wildcard include/config/slob.h) \ - include/linux/overflow.h \ include/linux/percpu-refcount.h \ include/linux/kasan.h \ - $(wildcard include/config/kasan/vmalloc.h) \ $(wildcard include/config/kasan/generic.h) \ - $(wildcard include/config/kasan/inline.h) \ include/linux/usb.h \ $(wildcard include/config/usb/mon.h) \ $(wildcard include/config/pm.h) \ - $(wildcard include/config/acpi.h) \ $(wildcard include/config/usb/led/trig.h) \ include/linux/mod_devicetable.h \ include/linux/uuid.h \ @@ -607,21 +697,30 @@ deps_/home/pi/ml-driver/ml_driver.o := \ include/linux/usb/ch9.h \ include/linux/device.h \ $(wildcard include/config/debug/devres.h) \ - $(wildcard include/config/energy/model.h) \ $(wildcard include/config/generic/msi/irq/domain.h) \ $(wildcard include/config/pinctrl.h) \ $(wildcard include/config/generic/msi/irq.h) \ - $(wildcard include/config/dma/ops.h) \ $(wildcard include/config/dma/declare/coherent.h) \ $(wildcard include/config/dma/cma.h) \ $(wildcard include/config/arch/has/sync/dma/for/device.h) \ $(wildcard include/config/arch/has/sync/dma/for/cpu.h) \ $(wildcard include/config/arch/has/sync/dma/for/cpu/all.h) \ - $(wildcard include/config/dma/ops/bypass.h) \ $(wildcard include/config/of.h) \ $(wildcard include/config/devtmpfs.h) \ $(wildcard include/config/sysfs/deprecated.h) \ - include/linux/dev_printk.h \ + include/linux/ioport.h \ + $(wildcard include/config/io/strict/devmem.h) \ + include/linux/klist.h \ + include/linux/pm.h \ + $(wildcard include/config/vt/console/sleep.h) \ + $(wildcard include/config/pm/clk.h) \ + $(wildcard include/config/pm/generic/domains.h) \ + include/linux/hrtimer.h \ + $(wildcard include/config/high/res/timers.h) \ + $(wildcard include/config/time/low/res.h) \ + $(wildcard include/config/timerfd.h) \ + include/linux/hrtimer_defs.h \ + include/linux/timerqueue.h \ include/linux/ratelimit.h \ include/linux/sched.h \ $(wildcard include/config/virt/cpu/accounting/native.h) \ @@ -638,37 +737,31 @@ deps_/home/pi/ml-driver/ml_driver.o := \ $(wildcard include/config/compat/brk.h) \ $(wildcard include/config/cgroups.h) \ $(wildcard include/config/blk/cgroup.h) \ - $(wildcard include/config/stackprotector.h) \ $(wildcard include/config/arch/has/scaled/cputime.h) \ $(wildcard include/config/virt/cpu/accounting/gen.h) \ $(wildcard include/config/posix/cputimers.h) \ - $(wildcard include/config/posix/cpu/timers/task/work.h) \ $(wildcard include/config/keys.h) \ $(wildcard include/config/sysvipc.h) \ $(wildcard include/config/detect/hung/task.h) \ - $(wildcard include/config/io/uring.h) \ $(wildcard include/config/audit.h) \ $(wildcard include/config/auditsyscall.h) \ $(wildcard include/config/ubsan.h) \ - $(wildcard include/config/ubsan/trap.h) \ $(wildcard include/config/block.h) \ $(wildcard include/config/task/xacct.h) \ $(wildcard include/config/cpusets.h) \ $(wildcard include/config/x86/cpu/resctrl.h) \ $(wildcard include/config/futex.h) \ - $(wildcard include/config/compat.h) \ $(wildcard include/config/perf/events.h) \ $(wildcard include/config/rseq.h) \ $(wildcard include/config/task/delay/acct.h) \ $(wildcard include/config/fault/injection.h) \ $(wildcard include/config/latencytop.h) \ - $(wildcard include/config/kunit.h) \ $(wildcard include/config/function/graph/tracer.h) \ + $(wildcard include/config/kcov.h) \ $(wildcard include/config/bcache.h) \ $(wildcard include/config/vmap/stack.h) \ $(wildcard include/config/security.h) \ $(wildcard include/config/gcc/plugin/stackleak.h) \ - $(wildcard include/config/x86/mce.h) \ $(wildcard include/config/arch/task/struct/on/stack.h) \ $(wildcard include/config/debug/rseq.h) \ include/uapi/linux/sched.h \ @@ -680,38 +773,37 @@ deps_/home/pi/ml-driver/ml_driver.o := \ include/linux/ipc.h \ include/linux/rhashtable-types.h \ include/uapi/linux/ipc.h \ - arch/arm/include/generated/uapi/asm/ipcbuf.h \ + arch/x86/include/generated/uapi/asm/ipcbuf.h \ include/uapi/asm-generic/ipcbuf.h \ - arch/arm/include/generated/uapi/asm/sembuf.h \ - include/uapi/asm-generic/sembuf.h \ + arch/x86/include/uapi/asm/sembuf.h \ include/linux/shm.h \ include/uapi/linux/shm.h \ include/uapi/asm-generic/hugetlb_encode.h \ - arch/arm/include/generated/uapi/asm/shmbuf.h \ + arch/x86/include/uapi/asm/shmbuf.h \ include/uapi/asm-generic/shmbuf.h \ - arch/arm/include/asm/shmparam.h \ + arch/x86/include/asm/shmparam.h \ include/linux/kcov.h \ include/uapi/linux/kcov.h \ include/linux/plist.h \ $(wildcard include/config/debug/plist.h) \ - include/linux/hrtimer.h \ - $(wildcard include/config/high/res/timers.h) \ - $(wildcard include/config/time/low/res.h) \ - $(wildcard include/config/timerfd.h) \ - include/linux/hrtimer_defs.h \ - include/linux/timerqueue.h \ include/linux/seccomp.h \ $(wildcard include/config/seccomp.h) \ $(wildcard include/config/have/arch/seccomp/filter.h) \ $(wildcard include/config/seccomp/filter.h) \ $(wildcard include/config/checkpoint/restore.h) \ include/uapi/linux/seccomp.h \ - arch/arm/include/generated/asm/seccomp.h \ + arch/x86/include/asm/seccomp.h \ + arch/x86/include/asm/unistd.h \ + arch/x86/include/uapi/asm/unistd.h \ + arch/x86/include/generated/uapi/asm/unistd_64.h \ + arch/x86/include/generated/asm/unistd_64_x32.h \ + arch/x86/include/asm/ia32_unistd.h \ + arch/x86/include/generated/asm/unistd_32_ia32.h \ include/asm-generic/seccomp.h \ include/uapi/linux/unistd.h \ include/linux/resource.h \ include/uapi/linux/resource.h \ - arch/arm/include/generated/uapi/asm/resource.h \ + arch/x86/include/generated/uapi/asm/resource.h \ include/asm-generic/resource.h \ include/uapi/asm-generic/resource.h \ include/linux/latencytop.h \ @@ -720,68 +812,48 @@ deps_/home/pi/ml-driver/ml_driver.o := \ include/linux/signal_types.h \ $(wildcard include/config/old/sigaction.h) \ include/uapi/linux/signal.h \ - arch/arm/include/asm/signal.h \ - arch/arm/include/uapi/asm/signal.h \ + arch/x86/include/asm/signal.h \ + arch/x86/include/uapi/asm/signal.h \ include/uapi/asm-generic/signal-defs.h \ - arch/arm/include/uapi/asm/sigcontext.h \ - arch/arm/include/generated/uapi/asm/siginfo.h \ + arch/x86/include/uapi/asm/siginfo.h \ include/uapi/asm-generic/siginfo.h \ include/linux/task_io_accounting.h \ $(wildcard include/config/task/io/accounting.h) \ include/linux/posix-timers.h \ + $(wildcard include/config/posix/timers.h) \ include/linux/alarmtimer.h \ - $(wildcard include/config/rtc/class.h) \ - include/linux/task_work.h \ include/uapi/linux/rseq.h \ - include/linux/kcsan.h \ - include/linux/energy_model.h \ - include/linux/sched/cpufreq.h \ - $(wildcard include/config/cpu/freq.h) \ - include/linux/sched/topology.h \ - $(wildcard include/config/sched/debug.h) \ - $(wildcard include/config/sched/mc.h) \ - include/linux/sched/idle.h \ - include/linux/sched/sd_flags.h \ - include/linux/ioport.h \ - $(wildcard include/config/io/strict/devmem.h) \ - include/linux/klist.h \ - include/linux/pm.h \ - $(wildcard include/config/vt/console/sleep.h) \ - $(wildcard include/config/pm/clk.h) \ - $(wildcard include/config/pm/generic/domains.h) \ - include/linux/device/bus.h \ - include/linux/device/class.h \ - include/linux/device/driver.h \ - arch/arm/include/asm/device.h \ - $(wildcard include/config/dmabounce.h) \ - $(wildcard include/config/arm/dma/use/iommu.h) \ - $(wildcard include/config/arch/omap.h) \ + arch/x86/include/asm/device.h \ + $(wildcard include/config/intel/iommu.h) \ + $(wildcard include/config/amd/iommu.h) \ + $(wildcard include/config/sta2x11.h) \ + $(wildcard include/config/x86/dev/dma/ops.h) \ + $(wildcard include/config/pci/domains.h) \ include/linux/pm_wakeup.h \ include/uapi/linux/usb/ch9.h \ include/linux/delay.h \ - arch/arm/include/asm/delay.h \ + arch/x86/include/asm/delay.h \ + include/asm-generic/delay.h \ include/linux/interrupt.h \ $(wildcard include/config/irq/forced/threading.h) \ $(wildcard include/config/generic/irq/probe.h) \ - $(wildcard include/config/proc/fs.h) \ $(wildcard include/config/irq/timings.h) \ include/linux/irqreturn.h \ include/linux/irqnr.h \ include/uapi/linux/irqnr.h \ include/linux/hardirq.h \ - include/linux/context_tracking_state.h \ - $(wildcard include/config/context/tracking.h) \ include/linux/ftrace_irq.h \ + $(wildcard include/config/ftrace/nmi/enter.h) \ $(wildcard include/config/hwlat/tracer.h) \ include/linux/vtime.h \ $(wildcard include/config/virt/cpu/accounting.h) \ $(wildcard include/config/irq/time/accounting.h) \ - arch/arm/include/asm/hardirq.h \ - arch/arm/include/asm/irq.h \ - $(wildcard include/config/sparse/irq.h) \ - include/linux/irq_cpustat.h \ - arch/arm/include/asm/sections.h \ + include/linux/context_tracking_state.h \ + $(wildcard include/config/context/tracking.h) \ + arch/x86/include/asm/irq.h \ + arch/x86/include/asm/sections.h \ include/asm-generic/sections.h \ + arch/x86/include/asm/extable.h \ include/linux/fs.h \ $(wildcard include/config/read/only/thp/for/fs.h) \ $(wildcard include/config/fs/posix/acl.h) \ @@ -792,11 +864,12 @@ deps_/home/pi/ml-driver/ml_driver.o := \ $(wildcard include/config/fs/encryption.h) \ $(wildcard include/config/fs/verity.h) \ $(wildcard include/config/epoll.h) \ - $(wildcard include/config/unicode.h) \ $(wildcard include/config/quota.h) \ + $(wildcard include/config/blk/dev/loop.h) \ $(wildcard include/config/fs/dax.h) \ $(wildcard include/config/mandatory/file/locking.h) \ $(wildcard include/config/migration.h) \ + $(wildcard include/config/io/uring.h) \ include/linux/wait_bit.h \ include/linux/kdev_t.h \ include/uapi/linux/kdev_t.h \ @@ -819,49 +892,12 @@ deps_/home/pi/ml-driver/ml_driver.o := \ include/linux/fcntl.h \ $(wildcard include/config/arch/32bit/off/t.h) \ include/uapi/linux/fcntl.h \ - arch/arm/include/uapi/asm/fcntl.h \ + arch/x86/include/generated/uapi/asm/fcntl.h \ include/uapi/asm-generic/fcntl.h \ - include/uapi/linux/openat2.h \ + include/uapi/linux/fiemap.h \ include/linux/migrate_mode.h \ include/linux/percpu-rwsem.h \ include/linux/rcuwait.h \ - include/linux/sched/signal.h \ - $(wildcard include/config/sched/autogroup.h) \ - $(wildcard include/config/bsd/process/acct.h) \ - $(wildcard include/config/taskstats.h) \ - $(wildcard include/config/stack/growsup.h) \ - include/linux/signal.h \ - include/linux/sched/jobctl.h \ - include/linux/sched/task.h \ - $(wildcard include/config/have/exit/thread.h) \ - $(wildcard include/config/arch/wants/dynamic/task/struct.h) \ - $(wildcard include/config/have/arch/thread/struct/whitelist.h) \ - include/linux/uaccess.h \ - $(wildcard include/config/set/fs.h) \ - include/linux/fault-inject-usercopy.h \ - $(wildcard include/config/fault/injection/usercopy.h) \ - include/linux/instrumented.h \ - arch/arm/include/asm/uaccess.h \ - $(wildcard include/config/cpu/sw/domain/pan.h) \ - $(wildcard include/config/cpu/use/domains.h) \ - $(wildcard include/config/uaccess/with/memcpy.h) \ - arch/arm/include/asm/domain.h \ - $(wildcard include/config/io/36.h) \ - $(wildcard include/config/cpu/cp15/mmu.h) \ - arch/arm/include/generated/asm/extable.h \ - include/asm-generic/extable.h \ - include/linux/cred.h \ - $(wildcard include/config/debug/credentials.h) \ - include/linux/key.h \ - $(wildcard include/config/key/notifications.h) \ - $(wildcard include/config/net.h) \ - include/linux/assoc_array.h \ - $(wildcard include/config/associative/array.h) \ - include/linux/sched/user.h \ - $(wildcard include/config/fanotify.h) \ - $(wildcard include/config/posix/mqueue.h) \ - $(wildcard include/config/bpf/syscall.h) \ - $(wildcard include/config/watch/queue.h) \ include/linux/rcu_sync.h \ include/linux/delayed_call.h \ include/linux/errseq.h \ @@ -870,10 +906,6 @@ deps_/home/pi/ml-driver/ml_driver.o := \ include/linux/iocontext.h \ include/linux/fs_types.h \ include/uapi/linux/fs.h \ - include/uapi/linux/ioctl.h \ - arch/arm/include/generated/uapi/asm/ioctl.h \ - include/asm-generic/ioctl.h \ - include/uapi/asm-generic/ioctl.h \ include/linux/quota.h \ $(wildcard include/config/quota/netlink/interface.h) \ include/linux/percpu_counter.h \ @@ -885,7 +917,13 @@ deps_/home/pi/ml-driver/ml_driver.o := \ include/uapi/linux/quota.h \ include/linux/nfs_fs_i.h \ include/linux/pm_runtime.h \ + include/linux/uaccess.h \ + arch/x86/include/asm/uaccess.h \ + $(wildcard include/config/cc/has/asm/goto/tied/output.h) \ + $(wildcard include/config/x86/intel/usercopy.h) \ + arch/x86/include/asm/smap.h \ + arch/x86/include/asm/uaccess_64.h \ -/home/pi/ml-driver/ml_driver.o: $(deps_/home/pi/ml-driver/ml_driver.o) +/home/wandog/workspace/ml-driver/ml_driver.o: $(deps_/home/wandog/workspace/ml-driver/ml_driver.o) -$(deps_/home/pi/ml-driver/ml_driver.o): +$(deps_/home/wandog/workspace/ml-driver/ml_driver.o): diff --git a/Makefile b/Makefile index c6dbcd7..d11df34 100755 --- a/Makefile +++ b/Makefile @@ -1,14 +1,14 @@ # Uncomment the following to enable debug. -DEBUG = y +#DEBUG = y -ifeq ($(DEBUG),y) - DBGFLAGS = -O -g -DML_DEBUG -else - DBGFLAGS = -O2 -endif - -ccflags-y += $(DBGFLAGS) +#ifeq ($(DEBUG),y) +# DBGFLAGS = -O -g -DML_DEBUG +#else +# DBGFLAGS = -O2 +#endif +#ccflags-y += $(DBGFLAGS) +CONFIG_MODULE_SIG=n ifneq ($(KERNELRELEASE),) obj-m := ml_driver.o diff --git a/Module.symvers b/Module.symvers old mode 100755 new mode 100644 diff --git a/control b/control new file mode 100755 index 0000000000000000000000000000000000000000..c6a4075d0dea7e126b3d856a172d786f2995d86d GIT binary patch literal 17264 zcmeHOZ*UvObzhL8M9~sR+fpLSiFI|X`cF)Vk|kA=O&g#H>1dOdB9XB@wsHl5BY`pg z1$T(Zv~=Y#a)hB-tC_aZhklSf(^Q@IgF5|^bP}7Y9Lec48LFLT?8bG~PSlVlqtdL> z(urjB_xARIcPF6fWc(3}xqJJ5``+8#w|k4-yWQW5_U>y41O$gh@u(o~^sNpORtaYx zRuPb}*d^BDzDe9AR)Sw4F(*Cj5TrWc?FKJxR(K;Q>207$75XU$7EHN>L`kn!IIS{Z zD%u=L(rcoq;{EiGWTFsEIlYpfM#>19yjSScsxVC5dgPmAyCa|M^wKlRFEfg=9fo+`c89XiulI#gX=rT|3)% zZVy?x&^B2FDi`HJ-Ddxj0|I8I2vcs9ZLv=Al-{&yZ1BCWZ#X^L{m@IV-S$HMm#<7+ zWE+$x$xtADRip|}`H+mPf76SIt!N;O9?{!yT{3@|*}XXNslR^he~7Ibjsw-Iq*%bJ zDLqjGf2;-`tARgW1Ai5`hRYvr0Z^?x(Hi(CYv6a)!1vU^DbH&8o&~Pq@`r~2RFgjh zTy<@a%7fr;6&po3?7;l|ZC1GE!v*?ZoVwdiF*KAeT1jD!q->El3x!-k44ZZ?Zwp+p z!mzOH1Yl9L(x#agF*}zM@pR5Ik#1(iP`;4L+C#!H;v+F*D3y(+Q(rd0QVxa%3$~Go zrLy8^A!VCle{WCMUSnHmTWE(cdiwhe*fxh#mTeaL`}U@DS+hSjm?r(Dl zg-^TiRu^86);&=7K-~j%57a$S_rS;Rf&Xf~>lga?e6v2$^v)I`^y5=@LwQ;sf3x|# z%&ffQalnh^%};=|ZW1J)q?EECnZl4sm0k#6`m$6i?in{JWW&h>sue@qIo%>f<|o{0=w2^=Cb$OJC4S|E`b!WZ__c z?_|>jcvPQUdq9#-1O6|szYQwaPU@4LyAjbRo3;_zy=1RP(_Y2f1ZvvV<;$&`j=?+P zyrPg_E#-GK5V`*&y|kd8yZV@ZZmCfZT+lClWUqsP?&%4f2{Kcy{#yI zc0eERe2t=d>59EZpXmH1n3>U!%H^2^8skFKKY&#(w{wwM2ZYR51mmfjm?*e zGZ&-RsigX3-^@gG{%@$0>7^f*F3#+N!BX`4_}FzZ`T!~rUW;7f08!91a+nyH*C%)E z0jifSev53(>_FP3}PdZ{>l zF*>gy`C@cIlg-fdZOn7^Qgms2?A<`?E8j$#J`tVPC#V!NUqKaTzYeVR_2}IA%;5Oa z?MIK6ru4~m#{p7%y%$8uS2XCS^vU)AfVdu*ezbfUB^<@tk?hWWe!Opf#oR&Mo97eO`yf1RH9imTrTT8ds9AG=mAegg9E zKz`;5K*yW6z%rUsnmS)GRYW?YuUAlm(1H1h=(W<1;KO$u)$z-1)Rp1*6St$TcaD$E zH`pt24-{J`q6?+JJ@@{m!1Sdh)D>)MY6dQW_G>bWYp-i4EZCQ&v1^E}MuM!+_s z@htLG?_}o__X!dCd{5~|k%6Al&m;Yj()9s-vi%XjhkNh8L1X638^3@9&fRFVH*Ni~ zdY*bqi@l|*-KC#K%Ip4BA3q<^cmGTAeHu@nJra2?awPJFh;e>sDAc;?t0;#v9-UWI zj>DCaS0>kQbq~}%Q1?LH19cD7Jy7>R-2-(Ge5@V_sILoK66Tk-WYQgMJf1726IwQB zYnGW!Xz^So69ct#+EAi%bE5JIprvTVhRr?NW=ngvJu_&f3&q4xJb471tv!;l%((UF zk(L%sYtLvhWKx!uN}F0bR?NneW1^w zl4d&J(gLTO)}EFJw3Mv@%;#VMU);#|XokU5*0G#GCE`>VOUn((yzHYnjm$r&nW5nj z>T+*;x_ED;23GX~74sUkEO}Rp*;2-eWspZIV}@EpW>2M2?LFcEz9?$wDyg`MCU0@R zFdlaIkj<$U!M!DEj!+FcMmBF7L5~^ypj`e2uEV%a;Ce<;io34}`0YN7()Z(f9+!=) z4_DyM#)l80!_w=Y#LvoQT2b9|wOsy7(Cwgag8l?F4f=!sESKK}-L_CJ(`$w2K{sG| z-@jNcKLYwD=vP7Mn>~fVmk)`+NL%2}HLIFWDxCJBwJYkbxIU^pAx6$y4kg7K>?jpzeXX2kIWEd!X(C#{;}yjrXU~w2T7NH4a^IQtNhmQ7bQaGgm#?PpNaJd&8F*(PlDCbZ6 zJ1MZ-FUwB-ke!6^T}#&YgtCWESdwRdWBM=oL6!cY;<+A<^^fn)`?viTJJezztmr{S ze_PSKqQ?|Hspx4%&nh~l=(M8#e0~+*9Cjr3@7=pcyKi8yn6-=A?$Gv7NBh>I!h+fS7*(<+Na6k6q zs|5FVFWxM;A9(TAg8PpbZxP&2z4$Ga{_Mr^bXRGYMx3J1s^UR$xhmc&7OLWHmGc_j zd~X#zet2>0K-Juc6K@o^3*L|KPHn_0we2%*gyq*)_T{=$8^tFCk3(MklcL&l(1@p+ z#|^JMM!m2bapH~GN3B)Gc~o51q33;t_@KOuI58S;8_+1z?oGGA@C97ro=v*Iena6r zeuI_aw{Q=jJbKvSd3@O?@tggS0Z#ey|AC_=zJiND(#Bc6D4@)~m1q-X`u4ZDDWP9VFjy^K_ubuK}lg{r&t8fzx>b?&thJcczA&?*iAnMVH*)lbwb;1ds15@($tfC@ZZ{2{XXS z&uz-jroxvb&f3fLdx*B7oCm|p7{w-)ozv?1+M<%zG&u5pKW_j|`QD2y9TenyE6`6% zTtc4PmKylp8u(K+@Kg=_cYu@M{N?-_aLrQ^hj|tF-Bs}K0;hVF;A#r&&kGWFF!%kR zfmb^xBH{(xvWwU`5*N!SG7LLo;HXE|v~V6Hku!$VxxrZ4NZ7f8WyFdj^d>f+Hf=Kz z+SRdhYjq(y6OuAwg+gr9z)SAJs2D2X1+bAQW-_Btad8GDZI5WtG7IfiJ{C7oF!?P2 z8v71K`l3ek$!-G&L%cc(VRS$9WTdZWuQx@WLji)P|IrXBB-*^So zX&W!-KPzJ-tela=TX#A~({ljk5~-{KSHe5X6(e7(!#{p=gO;VrAW!blIUlcxb56*M zIfsV47#$Y!B6Q5iix>tD{%~v3iJ+>-e7whtycXya5`9BaN0fYt^7N7y6CrCfW5)(T z?Sey-9K&HIvyc}d`b-iU&K5)Y0_tC|M_tfhF@=+Rsf2&PS(+;JlmW7q|C7X>QLTh2x=XD0tx5&8&R7Z+({dwJ*0!CG4eO`|+rTLXR zD03C)i-^%$mi2kv!t^(lB$uD%n7)8?S{pOZ>l>z;()X8N!D12-@+s@{I*93l66E~- z_5X&_?^1HS{%6{(Dopz1Gr#_;z(|Dch~UrYb2PoLLwOex(R*d9}wm%HoF^DCxT)bqqPSdaNPeEPgTWXkWISl;hHn(tBm z-2OsSl8Sz(lHlOneo9LG01>x7uQ!?Yv!J5>{D17z=XEJlos7GJKmRL8qctA8iPtN9 zKHM+QJkt-L+v?Kib#A^LAOg!d+%nJj4J1(C<@|X)%;)|2Tt7X36j+bj(OJhW>+`xf zsV3O8UUUc6XSx#pAs2D}BCMo49Lo79w30vbYoJWFSYHb}DQ!w$5f&F(CFVqKRr&kn zSpTy=c`7RfH}!QfnI2XKlge?Q21+jBdh_^8dj+`cQc>N`&_W*Js?Rv*>!i}$yt@7$ O)4_6tjXnh*EB+Vl9)7t1 literal 0 HcmV?d00001 diff --git a/ml_driver.c b/ml_driver.c index 39e2610..dff077e 100755 --- a/ml_driver.c +++ b/ml_driver.c @@ -27,8 +27,8 @@ #include /* mutexes */ #include -#include /* copy_*_user */ - +//#include /* copy_*_user */ +#include #define DEBUG_LEVEL_DEBUG 0x1F #define DEBUG_LEVEL_INFO 0x0F #define DEBUG_LEVEL_WARN 0x07 @@ -85,9 +85,9 @@ #define ML_CTRL_VALUE 0x0 #define ML_CTRL_INDEX 0x0 -#define ML_STOP 0x00 -#define ML_UP 0x01 -#define ML_DOWN 0x02 +#define ML_STOP 0x20 +#define ML_UP 0x02 +#define ML_DOWN 0x01 // #if MISSILE_LAUNCHER == ML_THUNDER // #define ML_LED 0x03 // #endif @@ -107,7 +107,7 @@ //#ifdef CONFIG_USB_DYNAMIC_MINORS #define ML_MINOR_BASE 0 //#else -//#define ML_MINOR_BASE 96 +// #define ML_MINOR_BASE 96 //#endif struct usb_ml { @@ -134,8 +134,9 @@ struct usb_ml { }; -static struct usb_device_id ml_table [] = { +static const struct usb_device_id ml_table [] = { { USB_DEVICE(ML_VENDOR_ID, ML_PRODUCT_ID) }, + //{ USB_DEVICE_INFO(0x03,0x00,0x00) }, { } }; @@ -144,8 +145,8 @@ MODULE_DEVICE_TABLE (usb, ml_table); static int debug_level = DEBUG_LEVEL_INFO; static int debug_trace = 0; -module_param(debug_level, int, S_IRUGO | S_IWUSR); -module_param(debug_trace, int, S_IRUGO | S_IWUSR); +//module_param(debug_level, int, S_IRUGO | S_IWUSR); +//module_param(debug_trace, int, S_IRUGO | S_IWUSR); //MODULE_PARM_DESC(debug_level, "debug level (bitmask)"); //MODULE_PARM_DESC(debug_trace, "enable function tracing"); @@ -286,6 +287,9 @@ static void ml_int_in_callback(struct urb *urb) } + + + static int ml_open(struct inode *inode, struct file *file) { struct usb_ml *dev = NULL; @@ -338,7 +342,7 @@ static int ml_open(struct inode *inode, struct file *file) retval = usb_submit_urb(dev->int_in_urb, GFP_KERNEL); if (retval) { - DBG_ERR("submitting int urb failed (%d)", retval); + printk("submitting int urb failed (%d)", retval); dev->int_in_running = 0; --dev->open_count; goto unlock_exit; @@ -376,20 +380,20 @@ static int ml_release(struct inode *inode, struct file *file) } if (dev->open_count <= 0) { - DBG_ERR("device not opened"); + printk("device not opened"); retval = -ENODEV; goto unlock_exit; } if (! dev->udev) { - DBG_DEBUG("device unplugged before the file was released"); + printk("device unplugged before the file was released"); up (&dev->sem); /* Unlock here as ml_delete frees dev. */ ml_delete(dev); goto exit; } if (dev->open_count > 1) - DBG_DEBUG("open_count = %d", dev->open_count); + printk("open_count = %d", dev->open_count); ml_abort_transfers(dev); --dev->open_count; @@ -401,6 +405,16 @@ static int ml_release(struct inode *inode, struct file *file) return retval; } + + + +static long int ml_read(struct file *file , char __user *user_buf, size_t count, loff_t *ppos){ + printk("fuck read!!"); + return 0; +} + + + static ssize_t ml_write(struct file *file, const char __user *user_buf, size_t count, loff_t *ppos) { @@ -410,7 +424,14 @@ static ssize_t ml_write(struct file *file, const char __user *user_buf, size_t // #if MISSILE_LAUNCHER == ML_THUNDER // static int ml_led = 1; // #endif - u8 buf[8]; + + + void *modem_status; + modem_status= kmalloc(sizeof(char)*8, GFP_KERNEL); + if (!modem_status) + return -ENOMEM; + + __u8 cmd = ML_STOP; printk("Send command"); @@ -441,7 +462,7 @@ static ssize_t ml_write(struct file *file, const char __user *user_buf, size_t retval = -EFAULT; goto unlock_exit; } - + printk("cmd is 0x%02x",cmd); policy = (cmd == ML_STOP || cmd == ML_UP || cmd == ML_DOWN || cmd == ML_LEFT || cmd == ML_RIGHT || cmd == ML_UP_LEFT || cmd == ML_DOWN_LEFT || cmd == ML_UP_RIGHT @@ -450,24 +471,29 @@ static ssize_t ml_write(struct file *file, const char __user *user_buf, size_t // policy = policy || (cmd == ML_LED); // #endif if (!policy) { - DBG_ERR("illegal command issued"); + printk("illegal command issued"); retval = -0x2a; /* scnr */ goto unlock_exit; } - memset(&buf, 0, sizeof(buf)); + memset(modem_status, 0, sizeof(char)*8); // #if MISSILE_LAUNCHER == ML_THUNDER // if (cmd == ML_LED) { // buf[0] = ML_LED; // buf[1] = ml_led; // ml_led = 1 - ml_led; // } else { -// buf[0] = 0x02; + char buff[8]; + memset(buff,0,8); + buff[0]=0x02;buff[1]=cmd; + strncpy( modem_status, buff, 8); + // modem_status = buff; // buf[1] = cmd; // } // #else - buf[0] = 0x02; - buf[1] = cmd; + // buf[1] = cmd; + // memset(&buf[1], 0, ML_CTRL_BUFFER_SIZE - 1); + // #endif /* The interrupt-in-endpoint handler also modifies dev->command. */ spin_lock(&dev->cmd_spinlock); @@ -480,8 +506,11 @@ static ssize_t ml_write(struct file *file, const char __user *user_buf, size_t ML_CTRL_REQUEST_TYPE, ML_CTRL_VALUE, ML_CTRL_INDEX, - &buf, - sizeof(buf), + // &buf, + modem_status, + 1, + // USB_CTRL_SET_TIMEOUT); + // 2000); HZ*5); if (retval < 0) { @@ -496,6 +525,7 @@ static ssize_t ml_write(struct file *file, const char __user *user_buf, size_t up(&dev->sem); exit: + kfree(modem_status); return retval; } @@ -505,24 +535,34 @@ static struct file_operations ml_fops = { .write = ml_write, .open = ml_open, .release = ml_release, + // .read = ml_read, }; static struct usb_class_driver ml_class = { //.name = "ml%d", - .name = "ml099", + .name = "ml%d", .fops = &ml_fops, .minor_base = 0,//ML_MINOR_BASE, }; static int ml_probe(struct usb_interface *interface, - const struct usb_device_id *id) -{ - struct usb_device *udev = interface_to_usbdev(interface); - struct usb_ml *dev = NULL; + const struct usb_device_id *id){ + // printk("fuck probe!!"); + // return 0; + // dev_info(&interface->dev, "USB Driver Probed: Vendor ID : 0x%02x,\t" + // "Product ID : 0x%02x\n", id->idVendor, id->idProduct); + // return 0; + //printk("fuck!!"); + struct usb_device *udev; + + struct usb_ml *dev; + struct usb_host_interface *iface_desc; struct usb_endpoint_descriptor *endpoint; int i, int_end_size; int retval = -ENODEV; + udev= interface_to_usbdev(interface); + dev = NULL; printk("Probe missile launcher"); if (! udev) { @@ -633,7 +673,7 @@ static int ml_probe(struct usb_interface *interface, dev->minor = interface->minor; - printk("USB missile launcher now attached to /dev/ml099", + printk("USB missile launcher now attached to /dev/ml%d", interface->minor - ML_MINOR_BASE); exit: @@ -672,15 +712,16 @@ static void ml_disconnect(struct usb_interface *interface) mutex_unlock(&disconnect_mutex); - printk("USB missile launcher /dev/ml099 now disconnected", + printk("USB missile launcher /dev/ml%d now disconnected", minor - ML_MINOR_BASE); } static struct usb_driver ml_driver = { - .name = "missile_launcher", - .id_table = ml_table, + .name = "ml_driver", + //.id_table = ml_table, .probe = ml_probe, .disconnect = ml_disconnect, + .id_table = ml_table, }; diff --git a/ml_driver.ko b/ml_driver.ko index 1282d667a6a61c5acf72529d0d703706dd5be7d6..533fac8d4f8bfa42b0f876cb2e3836cdaea35a31 100644 GIT binary patch literal 17368 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 literal 171512 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�QmXMj5`5f(1Vpg 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 diff --git a/ml_driver.mod b/ml_driver.mod old mode 100755 new mode 100644 index fbcaad3..b038fa0 --- a/ml_driver.mod +++ b/ml_driver.mod @@ -1,2 +1,2 @@ -/home/pi/ml-driver/ml_driver.o +/home/wandog/workspace/ml-driver/ml_driver.o diff --git a/ml_driver.mod.c b/ml_driver.mod.c old mode 100755 new mode 100644 index ed1b03d..f001176 --- a/ml_driver.mod.c +++ b/ml_driver.mod.c @@ -1,6 +1,5 @@ -#include -#define INCLUDE_VERMAGIC #include +#include #include #include @@ -10,7 +9,7 @@ MODULE_INFO(vermagic, VERMAGIC_STRING); MODULE_INFO(name, KBUILD_MODNAME); __visible struct module __this_module -__section(".gnu.linkonce.this_module") = { +__section(.gnu.linkonce.this_module) = { .name = KBUILD_MODNAME, .init = init_module, #ifdef CONFIG_MODULE_UNLOAD @@ -24,40 +23,39 @@ MODULE_INFO(retpoline, "Y"); #endif static const struct modversion_info ____versions[] -__used __section("__versions") = { - { 0xcaec5711, "module_layout" }, - { 0x174de43c, "param_ops_int" }, - { 0xb9635609, "usb_deregister" }, - { 0x1742c223, "usb_register_driver" }, - { 0xb8fa3c95, "usb_deregister_dev" }, - { 0xf0ef52e8, "down" }, - { 0x5d75a61f, "usb_register_dev" }, - { 0xa9cc9062, "usb_string" }, - { 0x3abb616e, "usb_alloc_urb" }, - { 0x2d6fcc06, "__kmalloc" }, - { 0x902ae67c, "kmem_cache_alloc_trace" }, - { 0x7a90966d, "kmalloc_caches" }, +__used __section(__versions) = { + { 0xdd8f8694, "module_layout" }, + { 0x867847b8, "usb_deregister" }, + { 0x785cf894, "usb_register_driver" }, + { 0x7b262fbe, "usb_deregister_dev" }, + { 0x6626afca, "down" }, + { 0x5b42218f, "usb_control_msg" }, + { 0x5ab904eb, "pv_ops" }, + { 0xdbf17652, "_raw_spin_lock" }, + { 0x9166fada, "strncpy" }, + { 0x362ef408, "_copy_from_user" }, + { 0xdecd0b29, "__stack_chk_fail" }, + { 0x853bbff4, "usb_register_dev" }, + { 0x987e553d, "usb_string" }, + { 0x102ff065, "usb_alloc_urb" }, + { 0xeb233a45, "__kmalloc" }, + { 0xca7a3159, "kmem_cache_alloc_trace" }, + { 0x428db41d, "kmalloc_caches" }, { 0x37a0cba, "kfree" }, - { 0x4b0606db, "usb_free_urb" }, - { 0x5f754e5a, "memset" }, - { 0xc962d6a0, "usb_control_msg" }, - { 0xae353d77, "arm_copy_from_user" }, - { 0x86332725, "__stack_chk_fail" }, - { 0x8f678b07, "__stack_chk_guard" }, - { 0xae577d60, "_raw_spin_lock" }, - { 0x581cde4e, "up" }, - { 0x3d2be8d8, "usb_submit_urb" }, - { 0xca5a7528, "down_interruptible" }, - { 0x67ea780, "mutex_unlock" }, - { 0xedb27d2a, "usb_find_interface" }, - { 0xc271c3be, "mutex_lock" }, + { 0xbdcfd186, "usb_free_urb" }, + { 0x409bcb62, "mutex_unlock" }, + { 0xcf2a6966, "up" }, + { 0x72e2c5fd, "usb_submit_urb" }, + { 0x81b395b3, "down_interruptible" }, + { 0xaa2a8b37, "usb_find_interface" }, + { 0x2ab7989d, "mutex_lock" }, { 0xc5850110, "printk" }, - { 0x2fa44291, "usb_kill_urb" }, - { 0xb1ad28e0, "__gnu_mcount_nc" }, + { 0xf5b8840d, "usb_kill_urb" }, + { 0xbdfb6dbb, "__fentry__" }, }; MODULE_INFO(depends, ""); MODULE_ALIAS("usb:v0A81p0701d*dc*dsc*dp*ic*isc*ip*in*"); -MODULE_INFO(srcversion, "F2B48BE446E108BAECC6032"); +MODULE_INFO(srcversion, "66732B408E83CE755A0072F"); diff --git a/ml_driver.mod.o b/ml_driver.mod.o index 2058d2c87dae49f6fd678ad1095838cc0cb9afa1..e5362d184df6078eeb8a5a9ca0b2645633ba07ac 100644 GIT binary patch literal 4840 zcmeHLUuYaf7@zA!tv0DCDhMK6DO7uy?Ora)C6O!F#A_(jV%0oUg<)@Z?=sx}WB;T{ zg<7G_i%JnH1jHxbR8Xj3tEev)q#{M|K@>%N?Tdv9qKJOq?9ATY<`VDP*9_cz-}jsE zH}lQ6v$HezO8wZ89l0ElB}WdCjwMk-mhSK9HLljkZZbjwUtc!;fVoa}YN}EmpPNvp z>(k}=dS!C*u&P$Zj}XmbT2PIG#_Y0sc)H}N6}4m(4ZUat@bijHFEY>=XikwBre``v zP$j+@dalJBvwD&^nr&8XiyA(I(Fpu(t;O`}q%xtXW2N%USj%)wpXr6?o_?lay9SLM z%he22MR-A>Gl7(LaqYs-Xo6#8nbgu&-6%}8|DSq!VPy?{V0zRreY3@a5F+fmT>SH; z70H)uIn91L`QqUImnFY5K7_K|51Wu{AMS6Wr{SJ*`eSr^UD!MKA|g0{-E~6WwWuAm zx}CPLZVX*{0h_&L>UzNzj+-<+yL|H}Y@)t)iUuBYsO9SIO`LncKmOHx6X78A9o<{) z;juNe^OiD&9x!=tl{S6Xrcp4!0ywbi+g~`J2BD_6slL>vO^sPwkJ@Ry_2rZ2(Zc+9 z)=$4rpOEU}nRUsB95AQ_E&WyX*?l+AlhU@$`Tfxnual+I z*U)I&rcHHCUovSNM(At0nYeALJo@n)b1^@r@h%2fho26g&U1d#H~ScFLmX@0UH=?G ze16!)faxQRZ{DsU-;P3ah3|TUtbRh8tau&yk%#r*<)5p+@!byN52A+6!og;6>8(qz z;;6X)Q0Bni=|^738djglth`oy5BWTQ%rW9VnteTc7??aoW*V|(X)ZTGO9f$a?R z&cNLO^Yb=T$CwlG!yvjY%+Jpj9$#!kP8bzt;&X1qtu0OV5mKH-3yE#lHv1b#^1Cxm^kkSOxxu9Ow4 z&x6RN@q1!i-6YTv~y{jD0MaPtJ;Lxg^3GUc?M8QVN<3O({Bj(`u&fI{<~Lnr{-nhJG^C#P`%3WB z80uMHw6n3J-`9daDjJ6YdjNjf`QuKvA@_j&Fai~n?_-hF+41pv(u@DA$p5*787o=- Ef636JG5`Po literal 4136 zcmeGfOKclObk;|$&(`*E6z zLM22mNDzeJ!i7Uc)dQ74LgFKFC~%Zsf%m+-_S%kvmvf&y`@Zw$ z&D(ji&#x|=JSGSN2|*wk(%=aB{`Q(?PrimSWFNUBG;PDWMirY^Rl7}dOK>X#J7>VL zWjHVnH;uxv(YgH8+(JG-v5=Fd=86mR^Apn8C}A3BPQi0Z(^aWBm9wNtDW_x=IjcA@ ztSpza94HQyktK?1sfOYdh{1HV&^VH?iq6VhE{uyg34UWE)k$qQeR}bkv~DWYGc=Pa zNCx3J>EiNYbuw*@R;SX0q#*oSUBKfcH@vgKb_UPBb@6P=FS@Zf3O10y5+Y~pK z|M*ieH;gt#mx2dA^qy~yKhElel(ueM!TFABbEDklq7gHLeL0QunWmXC_3Tna*A1Dv zVUAE*(QEU&nb2bM@~_#gimvKZX7aikgyGsuR$B}^u=;yj=YrLJ7fuJm4&pENo=aBN zY_-ef+PwUjN`x`VQBZO~bWKjp|OkL$Fa8zshV# zziDm4CQO}rPMjKi_~_V03a5|B6)LY+=o;f%TatDW^uAGkD>}dIF9k z%{HiGaf8AcuC!Y0&M*CR=sC~Y-DWrK_RV3u+NtA}bneDK0U2-gI^G|6b*i@QSuQVW zF%IK}%dez#&sERXz5sD|Pe}IsC%@OuFEljoWEaq{aXvJ zE;r_T!?_4=&s};P0;$&0Di+m!g20q!s_mIIRNlz1(gl^$LAUO$>G#Hp19dg4ji z=mT@oM3bi0{^g|cCSlO!<)nO*7<)cw?V4m^c~;@|YU hVPJfiC(IrAtHU}Z?wdN-hzakpsND=WdS?f_e*v!is(Ana diff --git a/ml_driver.o b/ml_driver.o index 199cb8406e508701b144aeb71a0e45290916256e..68caab53f9835ca0280679ee2933cf35eb38ce6d 100644 GIT binary patch literal 13768 zcmeHNeQ;dWb-&WeX3d9JIIa=khUc($w0 z?z?CA=xJX&o%XLzj_2*Y_jk|NJ@>wM&%N@49g+3*b#;QMPTVG{EkcFx-cYRvWi=?S z7FUUBtoP`pM|MM54h~~ex8B-%(09!!)>XgtR<}NO!S^sidg&tFI;W3K+09Z{)7WuU z-Ei;Nl-X3?a4+)to<6OY9_#`+bAeQ&m;QLL+PV*IfNATk(5A5Uo9S;{xNsp{8u2p$ zY%&RK2Bjvf^;T+GS&LY2%QCcO>%oD5?;7cA)&I~vq0M3Ie5faE{d(`zr9y-@b?erv z&wFu1#edWE(yi#Up_dv~HX~+r9BZAD8gZy&*r}JN&VZMCsq>hj-*lI!X=jGd*w+zqX8c?=7r&I!}6MXa;3TQ46%EMmRe z;hP-sH%c&6YWFW6n=0%iE*yII`Tv{nDfgtIcI!NER>v4FH~4M8Y&U0*%pdQj?$U;P z_0pf=xL{R$cA_g;Jax`&E`D&{ytdSaD`mM}{DLr-!Mf<$t6i)X8wDFey7ge`YdDQ# zN6eQa6Y+I4#d@hN=$mYO`1o+Hcq(Wv@=bP+ynmpsFyfo+s(b%HgSpN(**3Df!E7m> zI9F~P#us9|ZA341_kxP?`U^`}qW8ESt9EAwVQPz~yrx$Qdkeu*_wd;9f({}|V5S3D ze3N&KyuZKR94nsum~`JUGW&4x)Ol)lkIdvy*@?4+w2jQ}LbWr)fTQi-(r+X1|0x3f z#&#`{*EaSj=*vJ~G@dD> zP3=}~Wxu%FNE)%cq4nny+l`#Cr8HEBoFLGZ%k&vqDv{5Fyq1g=(qJPeKt-}&^2L(L zOgv^9S|V*m6X|Fn*H^1IZswA*uiHrXYw=7f6-)Pvc&Z;q)iS)Y<;G!A$oGM7X)~8e zMpOB1%4e;4W&diCNG6SKu_Q@?RK5W2<&1oxFO@LOM0%SBrsv4qZEQ>AO(RF6OC_Uf zoH^BlQZ_^ZN@e;BFwlO3Sinds36bI->KR;F|2-hT@p1#+EVo6uBc9`O?WK5xw^co~ z>rMC$igxRlQU&afg{z=Jy+3&eK60{WrWroHdg)2r140tk$6oh6yadq5M82}i!B%iZ zMOeT_W(&`PRH<$GM7GY#FE5_2d*ISJzLeT@y>wFq_JY!~fzoh;Z&F|An+(?PKjqzj z!nf!E>=IqOj*bcuw7R-{&;CrevcZTI?6n>P48k+|3=~MZB^@knUS9mjV=gFu)Uf^P z=W)*%JF>SC3g5<~#Sa^OcfNe#$g8KUSFG`;04$F_3BNGV3+1+Zky)lYu#sVIA^i_o zFT%jCvJP>tFWj*l_<>!_UKF;zdl)LTi*vSi>x4=vR6^0CdNEys*}|0RjI`2O`U^j5 z=^T5rPzmA-)fvG3b52STvR;Du`ckN5LK5-*gG-g-P*rBOEnK|CFAAUJ9+8){2hRpz zM$9=gLS3N?5&v@HpIsPw0jD&yrQMpw9H}xO8cBDgv?GfdrJWdcPCVU9>!)+un0OxT_ug#qrJx=aNkY{*-wE?dzTWk65gCzYmzDAwy(Z(P%ED*8 zwBGN-l`ZrCtp^p`p^h>vr5C00&eG&z&=Q_lujy79&K1uon`QVsEDPYf%NQg-(;c8 z2j-jXDUW`n?O6KUKNiKP^@?6MrN26@pFQTUGbJu5)b^Em&d zwS%V`g!ocjXw&{*dUw4H&?p5)FTU6`Hnnr9;{Y;K4_<}#!5S1ZXCZ2HKdtJ!D&r^O zvGk`+Z6E=gxk?%aGC9Z-((ntrrC{4KBnI=gX38`Q>1?vFZJW`r^%gGOjJ&kQ?d1$JmoT;)THeSdAhSsq zQhil>aGa$QDvBd$KgOD@XQ4f%RJ>9p@%hDh}+fhjiQPB+`bc4)h#KsKG z8z@vWSe*=+a!J)S^;Yyq3;l^aWNm39ZbGi4vZ-qJq~#0oxRK8f6q3oE3y%51<@VRFnNBIk1-2ecLPDL+8@F!g ziilXj9L(fy?S!OzFaaxdGprsX4OwW_bGzmdyDqM~$cg?B+8f&1KCdQ2X1T$w5$oVuD0?2QYl8YLHw%b+1OL_MoS0}{HsMCv0xqy`GKfsdah&~ z9)VxC`Q(wiO)VV1Uvue`&_w;3g14%&RpM3tn-q?PM_j^Mb~Ow|y;vlO@2}Kyy9@9- zkm!Y74oQ>0Li9n2cu?_qRf!)O^ruVl`xXA6!bhP*+H4oXf)efii{g7l;g2i)Zmqg^6RRek^^+C8D#J5>3%5?>@9QB#A-3Xw-Z5>bOZV(~om1wc@LuacMV0bu_m z@kQc{n#!w~q(@*DKbL+1&3cA^k#&2-64tV-?@InEj`L0A5lg9BDbGQzj^Q-I%fWBN zsZD;alDJ1`N<*U>UqIr&Q_&l&)NuV&aRvi^1#edB94I-| z!DBAC>4HDvfEt1%JZ@pK-y@y5RNjKGm}O2^ZY&g0FGG zZ*jrzaKZ0(!TVhBZ7%rzF8H_${vE)Vut?DRxZ8#QS;;^DeLMvCDF4lc;7D(Nw`ShOtB4-at)V zHgN;}kSv-8vZ=HYt699h!b&_D%S)p>atWJDRw_2D=8)T=-sZ9sOz2CP@~R5>jA5up zqdgnLclC5c!|hR(Bdon?4r*r$Yi~r=1DUM!!;C?82V4V?Hsp3jqf+G%Tyx1=vTP1q zfVknvqj14CB)c({Mc<6vKnyPT@M6zyVrH8_edwc|dP_BhtWr@(SC!-pLv{`gKurv# zWa1l*~hZb{i;1E5YjBoHB#? zaMZrIb9iCjYT}IX{;C2IhwIODAxphctblWUP)SDR6rl}B{OktqEjGc)O00tCH*jJ? zTH%5ZGW^qwf4d9*Er#Qt6iNSX7yR!T-op5Q;({M?!SQ&AgyZ6RPD<3q`FJl?fq>6} zz#NQrXied$=SFzQ|89n_WjO9%NX~c`6pk4jW%@TCfO#^*}LkB37V*R_lv zWu}!M&5Xa9@!!sH9*4Ua&ey|N8U7ij=kFN)d4_+WaP;L1@I0y73suUCao~DZE8NMC zbAg27UU(>P#5qMG9M306nExXYPVrf-;z4*(<S*9oin-^ zj&^%hdz|6d0#1}walmdI7q#J@R+1C9(dxLUjXoeDKZ&ZTkTxrZIDa1_3MW0+sWzT-k(_$A*s!#VW9(J)8dEs(^Y87T zgFmR^N#{}IN1rJUUt#>{6VcaI#p%y;3`gHd&q0OLxNt8);`IPOuj9$s?jIjr;?WBlCiNrvN?NY8sr53c90DLo%Eey(RR1^@^PuICzs)4cph za=|x>@pC<&Q#i$Wsp9Wo{5;N^nSQi!TJgsiKi8jf(LciYx&8@?=gP0 zWTZ!zsJsTdKMN1Vd6~j#ovc&eixrHY>u+WJYAU4un;HM-nEnlnA8pY78)5uhf84?U znDQs(!oNe|I97bx>`$e-j?06O5nx|Dl8b3g!QK7yip^b#l&e-sxOT=Kxv{g!A(P=Rd0E zh4@>P-HXv_Aj0W9V54?^=!M2Nm48@ALUEM&HU0oK+C>Fl#a|leLw>Hu$xnJT7d^^d zxqemw56$Bu#ZT*Jjbi+S!g0Ov_*1S+{B(|3!SwL+3(6uPKMpCV^yAt_Lj6H_$RAuY zNTh$G;txu6e!fBHHRQ*qNyT%c3qRUJa{5F2D)!$F5BWoJAb$pxKTW6v$Qd6I$nQ+S z#SoNc&MpV32KSD!09@FaA|R{%F*7CteQ@t6+i<4@e6wX_CWl>o{H z;HoY$WWe7_=di3(EO<{D%k_goGn+{!(nd5N8!%L7HkOMe(x4Ll9-hdgmE8c|e{sL? z)>5_Mx+{?$$dD}oH=U^z+(?Q5`~lhsY}nXyy}ZP;gYm!k)j$?Qt6r0erl6{sj`xAq zKQUen6HLsd@oHw*X?;*|ObqaTw5mO2nRqG1aBx$Oo0^g}x_L~%=#?}q0 zblS&U4Kb(vpfe!AgQV2i4fw_P1~G@5g5>oIr(JQ%<6d0L|8*;D{@0W|#tU6?`j7fi zC*~xaXrI{SFi1@*w}24Vox@$E3@ujQS<+2%)W&m6E&m%oWpjApzqccy|M<;w`ac91 z>U8?wcMXn*(bf< z0St9I+!TY#zET4mHjzBFzX_FE_IqpCUktn?PxgNd7}|Hv-{Z>u7om@nbNo+3XD$1? zm3^-gKzsP^JMA9?td{+ElzrOoflZRr{$4<9*?&fDRK2#CjQHPKqB$`nG=xv8`r+u8}TJntnDK0*+i^{K4{yzcX+=HwD literal 169676 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�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 K%@+;lzW)nD&qw6| diff --git a/modules.order b/modules.order old mode 100755 new mode 100644 index 3c5002f..2a928d6 --- a/modules.order +++ b/modules.order @@ -1 +1 @@ -/home/pi/ml-driver/ml_driver.ko +/home/wandog/workspace/ml-driver/ml_driver.ko diff --git a/test_w b/test_w new file mode 100755 index 0000000000000000000000000000000000000000..ef0604989929365b3833ca7f5f304b3b88136e49 GIT binary patch literal 16928 zcmeHOeQXrR6`%9ja0ECT0*xUl-jYOuL_Ta{h@o=1vwdb=nUI2=q-x0e>|5I>?yGlu zi5*p`Tc=S@#KcjnCVzz1X;n4-k|?cIXr%@Or64sCv`UpIibAWP+EtPolMm7sw(rfp zcivr}o3`pdk#?l@oA;adG4p12ZpJ(F~(JYq3 z-#W2QECRR^o-h@==_?gh0n-4<`GKNdEoREln=Du`A7h;$umVCnD$;Y;{S`kyGidRMVb+A%6^!#zt4dl z#^pav+|7H)-$MP6rT84-d%4b5GWfibq=mW>p z&bxX9m^qFZg;Dm!D&nzxS++^AC74QiF7QPcvuG(ji6f2&{DBPT0E3X7`oWm)!EvnZ4Nb+a+^b2gx1-; zON;9{eK3(X^j!C@wqz!)cgOmYXlXE&Ns}eb5-lqzTT%g|qC$>@xxYT(eNf8dd{rW` z97oUngca5%mf+|akQQJbqIrbh`wKL`KjXqD2@ixVMV4p&l^qt2V-fvxx?scQJWB;r zHr)RH&e(9MXenK>;W#EZJx@4J@AmiOunp&T4|R^(aD2}=9k=21Qz47a*l=z$7M!!; z*Rc_gdJ*s<;6=cTfENKT0$v0@#u2z&z3%Vo*joYhK-H_8giybB+^8_msbi-CCuOV5 zEjfT^&0F(8s_O*G4`Ipd^q)-AoRB;&1ZStumv~&D%}$>v@whOXo&ITw#|7E!^m8R1 z7mTyhPcaYP_DOHBxj_5CUk#!6IsQEt|F(<2=;B{@@h{u?#Uh=fk!-tStcK7X#5{yO@OGW9@92QX7-ubJjl9D;Ycss(u8KF}@sNB!xCpb#@Xpa-2@6ITyZ-nv2B ziC$?uemeR=<*%{Npt3Wti#Q5dF?9sY7Naxj_^uBQL}z}9eXJH=D*kpV0R`&V6|=Am zX9am#vy(JuNu2Xg!kjBx`pX8`X-fD-z80-g`S->(ph25TOxXj{Ih z;t13T+ynGucqXA8I+k|?Yo4s=4Avg>M}x|EWi+_qiK_Ns!()roVDs4GoxyNA*c=Hq zM1mVygGy_#wl!GO8Vtzqaqoiq8L(sj4u&SZZI`PGV z$FUO+h)EvkwgSIcB6wWbU})EMg2$f|Un+Qy!-vSMDo)l zFaL)MI`2!Ilx-vcKkQT$8!E(2fMdJd_BQ~oI3z8m74Y?C@CN`dXJ7Q^jJ#2R6FmK5 z?(&6Zq%^qKk=FBY^&+0p29ue-SW=4{nOt6r6^2EBCY4RGL|4sltLp-TLTw#W3COP|*pOmF3map|*JT))`k$NL$k z{QnP@cgOEHq+fEQkR(y}{NdKe^)C8n{e|u;lT|s^IFIx-c8k zFtHx@|BnE}CbB;7^CoD)nMEaAVtuBIK-sP@!X(^aQTD?oSdaN-po|#%=XGZd>AU68 zmp!c@|0G^2V*T4oh?QY|JLR!s7Y&oa37Qx_359TYzZ5^77xDjDTz9+vIs9RQlyezp WzgDUBZ-H|9t=lY#wJrr0EB*y@DIRbD literal 0 HcmV?d00001 diff --git a/test_write.c b/test_write.c new file mode 100644 index 0000000..02eb9f2 --- /dev/null +++ b/test_write.c @@ -0,0 +1,41 @@ +#include +#include +#include +// #include +#include +#include + +int main( void ) +{ + int fd; + char buf[1]; + buf[0]=0x04; + + fd = open("/dev/ml0", O_RDWR); + // lseek(fd, 1, SEEK_SET); + if(-1==write(fd, &buf, 1)){ + perror("perror output:"); + } + + + usleep(1000); + + buf[0]=0x20; + if(-1==write(fd, &buf, 1)){ + perror("perror output:"); + } + + close(fd); + // perror("perror output:"); + + + + + return 0; +} + + +// if(-1 == write(fd, &buf, 4)){ + +// } +// close(fd); \ No newline at end of file diff --git a/user-space.c b/user-space.c index 6866d69..b6c25d2 100755 --- a/user-space.c +++ b/user-space.c @@ -1,14 +1,15 @@ #include #include + #include #include #define DEFAULT_DEVICE "/dev/ml0" #define DEFAULT_DURATION 800 -#define ML_STOP 0x00 -#define ML_UP 0x01 -#define ML_DOWN 0x02 +#define ML_STOP 0x20 +#define ML_UP 0x02 +#define ML_DOWN 0x01 #define ML_LED 0x03 #define ML_LEFT 0x04 #define ML_RIGHT 0x08 @@ -21,8 +22,12 @@ void send_cmd(int fd, int cmd) int retval = 0; retval = write(fd, &cmd, 1); - if (retval < 0) + if (retval < 0){ + fflush("/dev/ml0"); + // printf("the fsync rst is %d\n",ret); fprintf(stderr, "could not send command to fd=%d\n", fd); + } + } static void usage(char *name) @@ -97,6 +102,7 @@ int main(int argc, char *argv[]) } printf("Send command %i\n", cmd); + printf("command hex is 0x%2x\n", cmd); send_cmd(fd, cmd); if (cmd & ML_FIRE) From c725b63059c12e5277ef2c766260d8e60e03b06d Mon Sep 17 00:00:00 2001 From: chiahungma Date: Sat, 15 Apr 2023 16:03:13 +0800 Subject: [PATCH 3/8] can work normally --- .ml_driver.ko.cmd | 2 +- .ml_driver.mod.cmd | 2 +- .ml_driver.mod.o.cmd | 10 +- .ml_driver.mod.o.d | 1 + .ml_driver.o.cmd | 10 +- .ml_driver.o.d | 1 + kernel_module/Makefile | 24 + kernel_module/Module.symvers | 0 kernel_module/ml_driver.c | 743 ++++++++++++++++++ ml_driver.c | 22 +- ml_driver.ko | Bin 17368 -> 17368 bytes ml_driver.mod | 2 +- ml_driver.mod.c | 2 +- ml_driver.mod.o | Bin 4840 -> 4840 bytes ml_driver.o | Bin 13768 -> 13768 bytes modules.order | 2 +- userspace/CMakeCache.txt | 366 +++++++++ .../CMakeFiles/3.16.3/CMakeCCompiler.cmake | 76 ++ .../CMakeFiles/3.16.3/CMakeCXXCompiler.cmake | 88 +++ .../3.16.3/CMakeDetermineCompilerABI_C.bin | Bin 0 -> 16552 bytes .../3.16.3/CMakeDetermineCompilerABI_CXX.bin | Bin 0 -> 16560 bytes userspace/CMakeFiles/3.16.3/CMakeSystem.cmake | 15 + .../3.16.3/CompilerIdC/CMakeCCompilerId.c | 671 ++++++++++++++++ userspace/CMakeFiles/3.16.3/CompilerIdC/a.out | Bin 0 -> 16712 bytes .../CompilerIdCXX/CMakeCXXCompilerId.cpp | 660 ++++++++++++++++ .../CMakeFiles/3.16.3/CompilerIdCXX/a.out | Bin 0 -> 16720 bytes .../CMakeDirectoryInformation.cmake | 16 + userspace/CMakeFiles/CMakeOutput.log | 461 +++++++++++ userspace/CMakeFiles/Makefile.cmake | 50 ++ userspace/CMakeFiles/Makefile2 | 135 ++++ userspace/CMakeFiles/TargetDirectories.txt | 4 + .../CMakeFiles/Twrite.dir/C.includecache | 22 + .../CMakeFiles/Twrite.dir/DependInfo.cmake | 20 + userspace/CMakeFiles/Twrite.dir/Twrite.c.o | Bin 0 -> 2216 bytes userspace/CMakeFiles/Twrite.dir/build.make | 98 +++ .../CMakeFiles/Twrite.dir/cmake_clean.cmake | 10 + .../CMakeFiles/Twrite.dir/depend.internal | 5 + userspace/CMakeFiles/Twrite.dir/depend.make | 5 + userspace/CMakeFiles/Twrite.dir/flags.make | 10 + userspace/CMakeFiles/Twrite.dir/link.txt | 1 + userspace/CMakeFiles/Twrite.dir/progress.make | 3 + .../CMakeFiles/Uspace.dir/C.includecache | 18 + .../CMakeFiles/Uspace.dir/DependInfo.cmake | 20 + userspace/CMakeFiles/Uspace.dir/Uspace.c.o | Bin 0 -> 4792 bytes userspace/CMakeFiles/Uspace.dir/build.make | 98 +++ .../CMakeFiles/Uspace.dir/cmake_clean.cmake | 10 + .../CMakeFiles/Uspace.dir/depend.internal | 5 + userspace/CMakeFiles/Uspace.dir/depend.make | 5 + userspace/CMakeFiles/Uspace.dir/flags.make | 10 + userspace/CMakeFiles/Uspace.dir/link.txt | 1 + userspace/CMakeFiles/Uspace.dir/progress.make | 3 + userspace/CMakeFiles/cmake.check_cache | 1 + userspace/CMakeFiles/progress.marks | 1 + userspace/CMakeLists.txt | 16 + userspace/Makefile | 222 ++++++ userspace/Twrite | Bin 0 -> 16920 bytes userspace/Twrite.c | 50 ++ userspace/Uspace | Bin 0 -> 17264 bytes userspace/Uspace.c | 120 +++ userspace/cmake_install.cmake | 49 ++ 60 files changed, 4140 insertions(+), 26 deletions(-) create mode 100644 .ml_driver.mod.o.d create mode 100644 .ml_driver.o.d create mode 100755 kernel_module/Makefile create mode 100644 kernel_module/Module.symvers create mode 100755 kernel_module/ml_driver.c create mode 100644 userspace/CMakeCache.txt create mode 100644 userspace/CMakeFiles/3.16.3/CMakeCCompiler.cmake create mode 100644 userspace/CMakeFiles/3.16.3/CMakeCXXCompiler.cmake create mode 100755 userspace/CMakeFiles/3.16.3/CMakeDetermineCompilerABI_C.bin create mode 100755 userspace/CMakeFiles/3.16.3/CMakeDetermineCompilerABI_CXX.bin create mode 100644 userspace/CMakeFiles/3.16.3/CMakeSystem.cmake create mode 100644 userspace/CMakeFiles/3.16.3/CompilerIdC/CMakeCCompilerId.c create mode 100755 userspace/CMakeFiles/3.16.3/CompilerIdC/a.out create mode 100644 userspace/CMakeFiles/3.16.3/CompilerIdCXX/CMakeCXXCompilerId.cpp create mode 100755 userspace/CMakeFiles/3.16.3/CompilerIdCXX/a.out create mode 100644 userspace/CMakeFiles/CMakeDirectoryInformation.cmake create mode 100644 userspace/CMakeFiles/CMakeOutput.log create mode 100644 userspace/CMakeFiles/Makefile.cmake create mode 100644 userspace/CMakeFiles/Makefile2 create mode 100644 userspace/CMakeFiles/TargetDirectories.txt create mode 100644 userspace/CMakeFiles/Twrite.dir/C.includecache create mode 100644 userspace/CMakeFiles/Twrite.dir/DependInfo.cmake create mode 100644 userspace/CMakeFiles/Twrite.dir/Twrite.c.o create mode 100644 userspace/CMakeFiles/Twrite.dir/build.make create mode 100644 userspace/CMakeFiles/Twrite.dir/cmake_clean.cmake create mode 100644 userspace/CMakeFiles/Twrite.dir/depend.internal create mode 100644 userspace/CMakeFiles/Twrite.dir/depend.make create mode 100644 userspace/CMakeFiles/Twrite.dir/flags.make create mode 100644 userspace/CMakeFiles/Twrite.dir/link.txt create mode 100644 userspace/CMakeFiles/Twrite.dir/progress.make create mode 100644 userspace/CMakeFiles/Uspace.dir/C.includecache create mode 100644 userspace/CMakeFiles/Uspace.dir/DependInfo.cmake create mode 100644 userspace/CMakeFiles/Uspace.dir/Uspace.c.o create mode 100644 userspace/CMakeFiles/Uspace.dir/build.make create mode 100644 userspace/CMakeFiles/Uspace.dir/cmake_clean.cmake create mode 100644 userspace/CMakeFiles/Uspace.dir/depend.internal create mode 100644 userspace/CMakeFiles/Uspace.dir/depend.make create mode 100644 userspace/CMakeFiles/Uspace.dir/flags.make create mode 100644 userspace/CMakeFiles/Uspace.dir/link.txt create mode 100644 userspace/CMakeFiles/Uspace.dir/progress.make create mode 100644 userspace/CMakeFiles/cmake.check_cache create mode 100644 userspace/CMakeFiles/progress.marks create mode 100644 userspace/CMakeLists.txt create mode 100644 userspace/Makefile create mode 100755 userspace/Twrite create mode 100644 userspace/Twrite.c create mode 100755 userspace/Uspace create mode 100755 userspace/Uspace.c create mode 100644 userspace/cmake_install.cmake diff --git a/.ml_driver.ko.cmd b/.ml_driver.ko.cmd index 5b336fc..db93163 100644 --- a/.ml_driver.ko.cmd +++ b/.ml_driver.ko.cmd @@ -1 +1 @@ -cmd_/home/wandog/workspace/ml-driver/ml_driver.ko := ld -r -m elf_x86_64 -z max-page-size=0x200000 -z noexecstack --build-id -T ./scripts/module-common.lds -o /home/wandog/workspace/ml-driver/ml_driver.ko /home/wandog/workspace/ml-driver/ml_driver.o /home/wandog/workspace/ml-driver/ml_driver.mod.o; true +cmd_/home/wandog/workspace/missile_related/ml-driver/ml_driver.ko := ld -r -m elf_x86_64 -z max-page-size=0x200000 -z noexecstack --build-id -T ./scripts/module-common.lds -o /home/wandog/workspace/missile_related/ml-driver/ml_driver.ko /home/wandog/workspace/missile_related/ml-driver/ml_driver.o /home/wandog/workspace/missile_related/ml-driver/ml_driver.mod.o; true diff --git a/.ml_driver.mod.cmd b/.ml_driver.mod.cmd index 7fec56f..6ed3b1d 100644 --- a/.ml_driver.mod.cmd +++ b/.ml_driver.mod.cmd @@ -1 +1 @@ -cmd_/home/wandog/workspace/ml-driver/ml_driver.mod := { echo /home/wandog/workspace/ml-driver/ml_driver.o; echo; } > /home/wandog/workspace/ml-driver/ml_driver.mod +cmd_/home/wandog/workspace/missile_related/ml-driver/ml_driver.mod := { echo /home/wandog/workspace/missile_related/ml-driver/ml_driver.o; echo; } > /home/wandog/workspace/missile_related/ml-driver/ml_driver.mod diff --git a/.ml_driver.mod.o.cmd b/.ml_driver.mod.o.cmd index 562b9eb..01dab1c 100644 --- a/.ml_driver.mod.o.cmd +++ b/.ml_driver.mod.o.cmd @@ -1,8 +1,8 @@ -cmd_/home/wandog/workspace/ml-driver/ml_driver.mod.o := gcc -Wp,-MD,/home/wandog/workspace/ml-driver/.ml_driver.mod.o.d -nostdinc -isystem /usr/lib/gcc/x86_64-linux-gnu/9/include -I./arch/x86/include -I./arch/x86/include/generated -I./include -I./arch/x86/include/uapi -I./arch/x86/include/generated/uapi -I./include/uapi -I./include/generated/uapi -include ./include/linux/kconfig.h -Iubuntu/include -include ./include/linux/compiler_types.h -D__KERNEL__ -Wall -Wundef -Werror=strict-prototypes -Wno-trigraphs -fno-strict-aliasing -fno-common -fshort-wchar -fno-PIE -Werror=implicit-function-declaration -Werror=implicit-int -Werror=return-type -Wno-format-security -std=gnu89 -mno-sse -mno-mmx -mno-sse2 -mno-3dnow -mno-avx -fcf-protection=none -m64 -falign-jumps=1 -falign-loops=1 -mno-80387 -mno-fp-ret-in-387 -mpreferred-stack-boundary=3 -mskip-rax-setup -mtune=generic -mno-red-zone -mcmodel=kernel -DCONFIG_X86_X32_ABI -DCONFIG_AS_CFI=1 -DCONFIG_AS_CFI_SIGNAL_FRAME=1 -DCONFIG_AS_CFI_SECTIONS=1 -DCONFIG_AS_SSSE3=1 -DCONFIG_AS_AVX=1 -DCONFIG_AS_AVX2=1 -DCONFIG_AS_AVX512=1 -DCONFIG_AS_SHA1_NI=1 -DCONFIG_AS_SHA256_NI=1 -Wno-sign-compare -fno-asynchronous-unwind-tables -mindirect-branch=thunk-extern -mindirect-branch-register -fno-jump-tables -fno-delete-null-pointer-checks -Wno-frame-address -Wno-format-truncation -Wno-format-overflow -Wno-address-of-packed-member -O2 --param=allow-store-data-races=0 -Wframe-larger-than=1024 -fstack-protector-strong -Wimplicit-fallthrough -Wno-unused-but-set-variable -Wno-unused-const-variable -fno-omit-frame-pointer -fno-optimize-sibling-calls -fno-var-tracking-assignments -pg -mrecord-mcount -mfentry -DCC_USING_FENTRY -flive-patching=inline-clone -Wdeclaration-after-statement -Wvla -Wno-pointer-sign -Wno-stringop-truncation -Wno-array-bounds -Wno-stringop-overflow -Wno-restrict -Wno-maybe-uninitialized -fno-strict-overflow -fno-merge-all-constants -fmerge-constants -fno-stack-check -fconserve-stack -Werror=date-time -Werror=incompatible-pointer-types -Werror=designated-init -fmacro-prefix-map=./= -Wno-packed-not-aligned -DMODULE -DKBUILD_BASENAME='"ml_driver.mod"' -DKBUILD_MODNAME='"ml_driver"' -c -o /home/wandog/workspace/ml-driver/ml_driver.mod.o /home/wandog/workspace/ml-driver/ml_driver.mod.c +cmd_/home/wandog/workspace/missile_related/ml-driver/ml_driver.mod.o := gcc -Wp,-MD,/home/wandog/workspace/missile_related/ml-driver/.ml_driver.mod.o.d -nostdinc -isystem /usr/lib/gcc/x86_64-linux-gnu/9/include -I./arch/x86/include -I./arch/x86/include/generated -I./include -I./arch/x86/include/uapi -I./arch/x86/include/generated/uapi -I./include/uapi -I./include/generated/uapi -include ./include/linux/kconfig.h -Iubuntu/include -include ./include/linux/compiler_types.h -D__KERNEL__ -Wall -Wundef -Werror=strict-prototypes -Wno-trigraphs -fno-strict-aliasing -fno-common -fshort-wchar -fno-PIE -Werror=implicit-function-declaration -Werror=implicit-int -Werror=return-type -Wno-format-security -std=gnu89 -mno-sse -mno-mmx -mno-sse2 -mno-3dnow -mno-avx -fcf-protection=none -m64 -falign-jumps=1 -falign-loops=1 -mno-80387 -mno-fp-ret-in-387 -mpreferred-stack-boundary=3 -mskip-rax-setup -mtune=generic -mno-red-zone -mcmodel=kernel -DCONFIG_X86_X32_ABI -DCONFIG_AS_CFI=1 -DCONFIG_AS_CFI_SIGNAL_FRAME=1 -DCONFIG_AS_CFI_SECTIONS=1 -DCONFIG_AS_SSSE3=1 -DCONFIG_AS_AVX=1 -DCONFIG_AS_AVX2=1 -DCONFIG_AS_AVX512=1 -DCONFIG_AS_SHA1_NI=1 -DCONFIG_AS_SHA256_NI=1 -Wno-sign-compare -fno-asynchronous-unwind-tables -mindirect-branch=thunk-extern -mindirect-branch-register -fno-jump-tables -fno-delete-null-pointer-checks -Wno-frame-address -Wno-format-truncation -Wno-format-overflow -Wno-address-of-packed-member -O2 --param=allow-store-data-races=0 -Wframe-larger-than=1024 -fstack-protector-strong -Wimplicit-fallthrough -Wno-unused-but-set-variable -Wno-unused-const-variable -fno-omit-frame-pointer -fno-optimize-sibling-calls -fno-var-tracking-assignments -pg -mrecord-mcount -mfentry -DCC_USING_FENTRY -flive-patching=inline-clone -Wdeclaration-after-statement -Wvla -Wno-pointer-sign -Wno-stringop-truncation -Wno-array-bounds -Wno-stringop-overflow -Wno-restrict -Wno-maybe-uninitialized -fno-strict-overflow -fno-merge-all-constants -fmerge-constants -fno-stack-check -fconserve-stack -Werror=date-time -Werror=incompatible-pointer-types -Werror=designated-init -fmacro-prefix-map=./= -Wno-packed-not-aligned -DMODULE -DKBUILD_BASENAME='"ml_driver.mod"' -DKBUILD_MODNAME='"ml_driver"' -c -o /home/wandog/workspace/missile_related/ml-driver/ml_driver.mod.o /home/wandog/workspace/missile_related/ml-driver/ml_driver.mod.c -source_/home/wandog/workspace/ml-driver/ml_driver.mod.o := /home/wandog/workspace/ml-driver/ml_driver.mod.c +source_/home/wandog/workspace/missile_related/ml-driver/ml_driver.mod.o := /home/wandog/workspace/missile_related/ml-driver/ml_driver.mod.c -deps_/home/wandog/workspace/ml-driver/ml_driver.mod.o := \ +deps_/home/wandog/workspace/missile_related/ml-driver/ml_driver.mod.o := \ $(wildcard include/config/module/unload.h) \ $(wildcard include/config/retpoline.h) \ include/linux/kconfig.h \ @@ -681,6 +681,6 @@ deps_/home/wandog/workspace/ml-driver/ml_driver.mod.o := \ include/linux/vermagic.h \ include/generated/utsrelease.h \ -/home/wandog/workspace/ml-driver/ml_driver.mod.o: $(deps_/home/wandog/workspace/ml-driver/ml_driver.mod.o) +/home/wandog/workspace/missile_related/ml-driver/ml_driver.mod.o: $(deps_/home/wandog/workspace/missile_related/ml-driver/ml_driver.mod.o) -$(deps_/home/wandog/workspace/ml-driver/ml_driver.mod.o): +$(deps_/home/wandog/workspace/missile_related/ml-driver/ml_driver.mod.o): diff --git a/.ml_driver.mod.o.d b/.ml_driver.mod.o.d new file mode 100644 index 0000000..ff21f30 --- /dev/null +++ b/.ml_driver.mod.o.d @@ -0,0 +1 @@ +null.o: /dev/null diff --git a/.ml_driver.o.cmd b/.ml_driver.o.cmd index 7707f93..876c320 100644 --- a/.ml_driver.o.cmd +++ b/.ml_driver.o.cmd @@ -1,8 +1,8 @@ -cmd_/home/wandog/workspace/ml-driver/ml_driver.o := gcc -Wp,-MD,/home/wandog/workspace/ml-driver/.ml_driver.o.d -nostdinc -isystem /usr/lib/gcc/x86_64-linux-gnu/9/include -I./arch/x86/include -I./arch/x86/include/generated -I./include -I./arch/x86/include/uapi -I./arch/x86/include/generated/uapi -I./include/uapi -I./include/generated/uapi -include ./include/linux/kconfig.h -Iubuntu/include -include ./include/linux/compiler_types.h -D__KERNEL__ -Wall -Wundef -Werror=strict-prototypes -Wno-trigraphs -fno-strict-aliasing -fno-common -fshort-wchar -fno-PIE -Werror=implicit-function-declaration -Werror=implicit-int -Werror=return-type -Wno-format-security -std=gnu89 -mno-sse -mno-mmx -mno-sse2 -mno-3dnow -mno-avx -fcf-protection=none -m64 -falign-jumps=1 -falign-loops=1 -mno-80387 -mno-fp-ret-in-387 -mpreferred-stack-boundary=3 -mskip-rax-setup -mtune=generic -mno-red-zone -mcmodel=kernel -DCONFIG_X86_X32_ABI -DCONFIG_AS_CFI=1 -DCONFIG_AS_CFI_SIGNAL_FRAME=1 -DCONFIG_AS_CFI_SECTIONS=1 -DCONFIG_AS_SSSE3=1 -DCONFIG_AS_AVX=1 -DCONFIG_AS_AVX2=1 -DCONFIG_AS_AVX512=1 -DCONFIG_AS_SHA1_NI=1 -DCONFIG_AS_SHA256_NI=1 -Wno-sign-compare -fno-asynchronous-unwind-tables -mindirect-branch=thunk-extern -mindirect-branch-register -fno-jump-tables -fno-delete-null-pointer-checks -Wno-frame-address -Wno-format-truncation -Wno-format-overflow -Wno-address-of-packed-member -O2 --param=allow-store-data-races=0 -Wframe-larger-than=1024 -fstack-protector-strong -Wimplicit-fallthrough -Wno-unused-but-set-variable -Wno-unused-const-variable -fno-omit-frame-pointer -fno-optimize-sibling-calls -fno-var-tracking-assignments -pg -mrecord-mcount -mfentry -DCC_USING_FENTRY -flive-patching=inline-clone -Wdeclaration-after-statement -Wvla -Wno-pointer-sign -Wno-stringop-truncation -Wno-array-bounds -Wno-stringop-overflow -Wno-restrict -Wno-maybe-uninitialized -fno-strict-overflow -fno-merge-all-constants -fmerge-constants -fno-stack-check -fconserve-stack -Werror=date-time -Werror=incompatible-pointer-types -Werror=designated-init -fmacro-prefix-map=./= -Wno-packed-not-aligned -DMODULE -DKBUILD_BASENAME='"ml_driver"' -DKBUILD_MODNAME='"ml_driver"' -c -o /home/wandog/workspace/ml-driver/ml_driver.o /home/wandog/workspace/ml-driver/ml_driver.c +cmd_/home/wandog/workspace/missile_related/ml-driver/ml_driver.o := gcc -Wp,-MD,/home/wandog/workspace/missile_related/ml-driver/.ml_driver.o.d -nostdinc -isystem /usr/lib/gcc/x86_64-linux-gnu/9/include -I./arch/x86/include -I./arch/x86/include/generated -I./include -I./arch/x86/include/uapi -I./arch/x86/include/generated/uapi -I./include/uapi -I./include/generated/uapi -include ./include/linux/kconfig.h -Iubuntu/include -include ./include/linux/compiler_types.h -D__KERNEL__ -Wall -Wundef -Werror=strict-prototypes -Wno-trigraphs -fno-strict-aliasing -fno-common -fshort-wchar -fno-PIE -Werror=implicit-function-declaration -Werror=implicit-int -Werror=return-type -Wno-format-security -std=gnu89 -mno-sse -mno-mmx -mno-sse2 -mno-3dnow -mno-avx -fcf-protection=none -m64 -falign-jumps=1 -falign-loops=1 -mno-80387 -mno-fp-ret-in-387 -mpreferred-stack-boundary=3 -mskip-rax-setup -mtune=generic -mno-red-zone -mcmodel=kernel -DCONFIG_X86_X32_ABI -DCONFIG_AS_CFI=1 -DCONFIG_AS_CFI_SIGNAL_FRAME=1 -DCONFIG_AS_CFI_SECTIONS=1 -DCONFIG_AS_SSSE3=1 -DCONFIG_AS_AVX=1 -DCONFIG_AS_AVX2=1 -DCONFIG_AS_AVX512=1 -DCONFIG_AS_SHA1_NI=1 -DCONFIG_AS_SHA256_NI=1 -Wno-sign-compare -fno-asynchronous-unwind-tables -mindirect-branch=thunk-extern -mindirect-branch-register -fno-jump-tables -fno-delete-null-pointer-checks -Wno-frame-address -Wno-format-truncation -Wno-format-overflow -Wno-address-of-packed-member -O2 --param=allow-store-data-races=0 -Wframe-larger-than=1024 -fstack-protector-strong -Wimplicit-fallthrough -Wno-unused-but-set-variable -Wno-unused-const-variable -fno-omit-frame-pointer -fno-optimize-sibling-calls -fno-var-tracking-assignments -pg -mrecord-mcount -mfentry -DCC_USING_FENTRY -flive-patching=inline-clone -Wdeclaration-after-statement -Wvla -Wno-pointer-sign -Wno-stringop-truncation -Wno-array-bounds -Wno-stringop-overflow -Wno-restrict -Wno-maybe-uninitialized -fno-strict-overflow -fno-merge-all-constants -fmerge-constants -fno-stack-check -fconserve-stack -Werror=date-time -Werror=incompatible-pointer-types -Werror=designated-init -fmacro-prefix-map=./= -Wno-packed-not-aligned -DMODULE -DKBUILD_BASENAME='"ml_driver"' -DKBUILD_MODNAME='"ml_driver"' -c -o /home/wandog/workspace/missile_related/ml-driver/ml_driver.o /home/wandog/workspace/missile_related/ml-driver/ml_driver.c -source_/home/wandog/workspace/ml-driver/ml_driver.o := /home/wandog/workspace/ml-driver/ml_driver.c +source_/home/wandog/workspace/missile_related/ml-driver/ml_driver.o := /home/wandog/workspace/missile_related/ml-driver/ml_driver.c -deps_/home/wandog/workspace/ml-driver/ml_driver.o := \ +deps_/home/wandog/workspace/missile_related/ml-driver/ml_driver.o := \ $(wildcard include/config/usb/dynamic/minors.h) \ include/linux/kconfig.h \ $(wildcard include/config/cpu/big/endian.h) \ @@ -924,6 +924,6 @@ deps_/home/wandog/workspace/ml-driver/ml_driver.o := \ arch/x86/include/asm/smap.h \ arch/x86/include/asm/uaccess_64.h \ -/home/wandog/workspace/ml-driver/ml_driver.o: $(deps_/home/wandog/workspace/ml-driver/ml_driver.o) +/home/wandog/workspace/missile_related/ml-driver/ml_driver.o: $(deps_/home/wandog/workspace/missile_related/ml-driver/ml_driver.o) -$(deps_/home/wandog/workspace/ml-driver/ml_driver.o): +$(deps_/home/wandog/workspace/missile_related/ml-driver/ml_driver.o): diff --git a/.ml_driver.o.d b/.ml_driver.o.d new file mode 100644 index 0000000..ff21f30 --- /dev/null +++ b/.ml_driver.o.d @@ -0,0 +1 @@ +null.o: /dev/null diff --git a/kernel_module/Makefile b/kernel_module/Makefile new file mode 100755 index 0000000..2d22c5c --- /dev/null +++ b/kernel_module/Makefile @@ -0,0 +1,24 @@ +# Uncomment the following to enable debug. +#DEBUG = y + +#ifeq ($(DEBUG),y) +# DBGFLAGS = -O -g -DML_DEBUG +#else +# DBGFLAGS = -O2 +#endif + +#ccflags-y += $(DBGFLAGS) +CONFIG_MODULE_SIG=n + +obj-m := ml_driver.o + +KERNELDIR ?= /lib/modules/$(shell uname -r)/build +PWD := $(shell pwd) + +default: + $(MAKE) -C $(KERNELDIR) M=$(PWD) modules + +clean: + $(MAKE) -C $(KERNELDIR) M=$(PWD) clean + #rm *.symvers + diff --git a/kernel_module/Module.symvers b/kernel_module/Module.symvers new file mode 100644 index 0000000..e69de29 diff --git a/kernel_module/ml_driver.c b/kernel_module/ml_driver.c new file mode 100755 index 0000000..be42911 --- /dev/null +++ b/kernel_module/ml_driver.c @@ -0,0 +1,743 @@ +/* + * Dream Cheeky USB Missile Launcher driver + * + * Copyright (C) 2007 Matthias Vallentin + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation, version 2. + * + * derived from USB Skeleton driver 2.0 + * Copyright (C) 2001-2004 Greg Kroah-Hartman (greg@kroah.com) + * + * also inspired from LEGO USB Tower driver + * Copyright (C) 2003 David Glance + * 2001-2004 Juergen Stuber + * + * Notes: + * - Apparently it fails sometimes to submit the correction control URB in the + * interrupt-in-endpoint hanlder (-EINVAL). + */ + +#include +#include + +#include /* kmalloc() */ +#include /* USB stuff */ +#include /* mutexes */ +#include + +//#include /* copy_*_user */ +#include +// #define DEBUG_LEVEL_DEBUG 0x1F +// #define DEBUG_LEVEL_INFO 0x0F +// #define DEBUG_LEVEL_WARN 0x07 +// #define DEBUG_LEVEL_ERROR 0x03 +// #define DEBUG_LEVEL_CRITICAL 0x01 + + + +// #define ML_DEFAULT 0 +// #define ML_THUNDER 1 + +//#define MISSILE_LAUNCHER ML_DEFAULT + +//#if MISSILE_LAUNCHER == ML_THUNDER + +/* + * USB Missile Launcher Thunder version (with LEDs) + */ +//#define ML_VENDOR_ID 0x2123 +//#define ML_PRODUCT_ID 0x1010 + +//#else + +/* + * USB Missile Launcher default version + */ +#define ML_VENDOR_ID 0x0a81 +#define ML_PRODUCT_ID 0x0701 + +//#endif + +#define ML_CTRL_BUFFER_SIZE 8 +#define ML_CTRL_REQUEST_TYPE 0x21 +#define ML_CTRL_REQUEST 0x09 +#define ML_CTRL_VALUE 0x0200 +#define ML_CTRL_INDEX 0x0 + +#define ML_STOP 0x00 +#define ML_UP 0x01 +#define ML_DOWN 0x02 +// #if MISSILE_LAUNCHER == ML_THUNDER +// #define ML_LED 0x03 +// #endif +#define ML_LEFT 0x04 +#define ML_RIGHT 0x08 +#define ML_UP_LEFT (ML_UP | ML_LEFT) +#define ML_DOWN_LEFT (ML_DOWN | ML_LEFT) +#define ML_UP_RIGHT (ML_UP | ML_RIGHT) +#define ML_DOWN_RIGHT (ML_DOWN | ML_RIGHT) +#define ML_FIRE 0x10 + +#define ML_MAX_UP 0x80 /* 80 00 00 00 00 00 00 00 */ +#define ML_MAX_DOWN 0x40 /* 40 00 00 00 00 00 00 00 */ +#define ML_MAX_LEFT 0x04 /* 00 04 00 00 00 00 00 00 */ +#define ML_MAX_RIGHT 0x08 /* 00 08 00 00 00 00 00 00 */ + +//#ifdef CONFIG_USB_DYNAMIC_MINORS +#define ML_MINOR_BASE 0 +//#else +// #define ML_MINOR_BASE 96 +//#endif + +struct usb_ml { + struct usb_device *udev; + struct usb_interface *interface; + unsigned char minor; + char serial_number[8]; + + int open_count; /* Open count for this port */ + struct semaphore sem; /* Locks this structure */ + spinlock_t cmd_spinlock; /* locks dev->command */ + + char *int_in_buffer; + struct usb_endpoint_descriptor *int_in_endpoint; + struct urb *int_in_urb; + int int_in_running; + + char *ctrl_buffer; /* 8 byte buffer for ctrl msg */ + struct urb *ctrl_urb; + struct usb_ctrlrequest *ctrl_dr; /* Setup packet information */ + int correction_required; + + __u8 command;/* Last issued command */ +}; + + +static const struct usb_device_id ml_table [] = { + { USB_DEVICE(ML_VENDOR_ID, ML_PRODUCT_ID) }, + //{ USB_DEVICE_INFO(0x03,0x00,0x00) }, + { } +}; + + +MODULE_DEVICE_TABLE (usb, ml_table); + +// static int debug_level = DEBUG_LEVEL_INFO; +// static int debug_trace = 0; +//module_param(debug_level, int, S_IRUGO | S_IWUSR); +//module_param(debug_trace, int, S_IRUGO | S_IWUSR); +//MODULE_PARM_DESC(debug_level, "debug level (bitmask)"); +//MODULE_PARM_DESC(debug_trace, "enable function tracing"); + +/* Prevent races between open() and disconnect */ + +//below is global mutex declartion +// static DEFINE_MUTEX(disconnect_mutex); +static struct usb_driver ml_driver; + +/*static inline void ml_debug_data(const char *function, int size, + const unsigned char *data) +{ + int i; + if ((debug_level & DEBUG_LEVEL_DEBUG) == DEBUG_LEVEL_DEBUG) { + printk(KERN_DEBUG "[debug] %s: length = %d, data = ", + function, size); + for (i = 0; i < size; ++i) + printk("%.2x ", data[i]); + printk("\n"); + } +}*/ + +// static void ml_abort_transfers(struct usb_ml *dev) +// { +// if (! dev) { +// printk("dev is NULL"); +// return; +// } + +// if (! dev->udev) { +// printk("udev is NULL"); +// return; +// } + +// if ( dev->udev->state == USB_STATE_NOTATTACHED) { +// printk("udev not attached"); +// return; +// } + +// /* Shutdown transfer */ +// if (dev->int_in_running) { +// dev->int_in_running = 0; +// mb(); +// if (dev->int_in_urb) +// usb_kill_urb(dev->int_in_urb); +// } + +// if (dev->ctrl_urb) +// usb_kill_urb(dev->ctrl_urb); +// } + +static inline void ml_delete(struct usb_ml *dev) +{ + // ml_abort_transfers(dev); + + /* Free data structures. */ + if (dev->int_in_urb) + usb_free_urb(dev->int_in_urb); + if (dev->ctrl_urb) + usb_free_urb(dev->ctrl_urb); + + kfree(dev->int_in_buffer); + kfree(dev->ctrl_buffer); + kfree(dev->ctrl_dr); + kfree(dev); +} + +// static void ml_ctrl_callback(struct urb *urb) +// { +// struct usb_ml *dev = urb->context; +// dev->correction_required = 0; /* TODO: do we need race protection? */ +// } + +// static void ml_int_in_callback(struct urb *urb) +// { +// struct usb_ml *dev = urb->context; +// int retval; + +// //ml_debug_data(__FUNCTION__, urb->actual_length, urb->transfer_buffer); + +// if (urb->status) { +// if (urb->status == -ENOENT || +// urb->status == -ECONNRESET || +// urb->status == -ESHUTDOWN) { +// return; +// } else { +// //DBG_ERR("non-zero urb status (%d)", urb->status); +// goto resubmit; /* Maybe we can recover. */ +// } +// } + +// if (urb->actual_length > 0) { +// spin_lock(&dev->cmd_spinlock); + +// if (dev->int_in_buffer[0] & ML_MAX_UP && dev->command & ML_UP) { +// dev->command &= ~ML_UP; +// dev->correction_required = 1; +// } else if (dev->int_in_buffer[0] & ML_MAX_DOWN && +// dev->command & ML_DOWN) { +// dev->command &= ~ML_DOWN; +// dev->correction_required = 1; +// } + +// if (dev->int_in_buffer[1] & ML_MAX_LEFT +// && dev->command & ML_LEFT) { +// dev->command &= ~ML_LEFT; +// dev->correction_required = 1; +// } else if (dev->int_in_buffer[1] & ML_MAX_RIGHT +// && dev->command & ML_RIGHT) { +// dev->command &= ~ML_RIGHT; +// dev->correction_required = 1; +// } + + +// if (dev->correction_required) { +// dev->ctrl_buffer[0] = dev->command; +// spin_unlock(&dev->cmd_spinlock); +// retval = usb_submit_urb(dev->ctrl_urb, GFP_ATOMIC); +// if (retval) { +// //DBG_ERR("submitting correction control URB failed (%d)", +// //retval); +// } +// } else { +// spin_unlock(&dev->cmd_spinlock); +// } +// } + +// resubmit: +// /* Resubmit if we're still running. */ +// if (dev->int_in_running && dev->udev) { +// retval = usb_submit_urb(dev->int_in_urb, GFP_ATOMIC); +// if (retval) { +// //DBG_ERR("resubmitting urb failed (%d)", retval); +// printk("resubmitting urb failed (%d)", retval); +// dev->int_in_running = 0; +// } +// } +// } + + + + + +static int ml_open(struct inode *inode, struct file *file) +{ + struct usb_ml *dev = NULL; + struct usb_interface *interface; + int subminor; + int retval = 0; + + printk("Open device"); + subminor = iminor(inode); + + // mutex_lock(&disconnect_mutex); + + interface = usb_find_interface(&ml_driver, subminor); + if (! interface) { + printk("can't find device for minor %d", subminor); + retval = -ENODEV; + goto exit; + } + + file->private_data = usb_get_intfdata(interface); + // if (! dev) { + // retval = -ENODEV; + // goto exit; + // } + + goto exit; + /* lock this device */ + // if (down_interruptible (&dev->sem)) { + // printk("sem down failed"); + // retval = -ERESTARTSYS; + // goto exit; + // } + + /* Increment our usage count for the device. */ + // ++dev->open_count; + // if (dev->open_count > 1) + // printk("open_count = %d", dev->open_count); + + /* Initialize interrupt URB. */ + // usb_fill_int_urb(dev->int_in_urb, dev->udev, + // usb_rcvintpipe(dev->udev, + // dev->int_in_endpoint->bEndpointAddress), + // dev->int_in_buffer, + // le16_to_cpu(dev->int_in_endpoint->wMaxPacketSize), + // ml_int_in_callback, + // dev, + // dev->int_in_endpoint->bInterval); + +// dev->int_in_running = 1; +// mb(); + +// retval = usb_submit_urb(dev->int_in_urb, GFP_KERNEL); +// if (retval) { +// printk("submitting int urb failed (%d)", retval); +// dev->int_in_running = 0; +// --dev->open_count; +// goto unlock_exit; +// } + +// /* Save our object in the file's private structure. */ +// file->private_data = dev; + +// unlock_exit: + // up(&dev->sem); + +exit: + // mutex_unlock(&disconnect_mutex); + return retval; +} + +// static int ml_release(struct inode *inode, struct file *file) +// { +// struct usb_ml *dev = NULL; +// int retval = 0; + +// printk("Release driver"); +// dev = file->private_data; + +// if (! dev) { +// printk("dev is NULL"); +// retval = -ENODEV; +// goto exit; +// } + +// /* Lock our device */ +// if (down_interruptible(&dev->sem)) { +// retval = -ERESTARTSYS; +// goto exit; +// } + +// if (dev->open_count <= 0) { +// printk("device not opened"); +// retval = -ENODEV; +// goto unlock_exit; +// } + +// if (! dev->udev) { +// printk("device unplugged before the file was released"); +// up (&dev->sem); /* Unlock here as ml_delete frees dev. */ +// ml_delete(dev); +// goto exit; +// } + +// if (dev->open_count > 1) +// printk("open_count = %d", dev->open_count); + +// ml_abort_transfers(dev); +// --dev->open_count; + +// unlock_exit: +// up(&dev->sem); + +// exit: +// return retval; +// } + + + + +// static long int ml_read(struct file *file , char __user *user_buf, size_t count, loff_t *ppos){ +// printk("fuck read!!"); +// return 0; +// } + + + +static ssize_t ml_write(struct file *file, const char __user *user_buf, size_t + count, loff_t *ppos) +{ + struct usb_ml *dev; + int retval = 0; + bool policy; +// #if MISSILE_LAUNCHER == ML_THUNDER +// static int ml_led = 1; +// #endif + char buff[8]; + __u8 cmd = ML_STOP; + void *modem_status; + if((modem_status= kmalloc(sizeof(char)*8, GFP_KERNEL))<=0){ + return -ENOMEM; + } + // if (modem_status<=0) + + + + + + // printk("Send command"); + dev = file->private_data; + + /* Lock this object. */ + // if (down_interruptible(&dev->sem)) { + // retval = -ERESTARTSYS; + // goto exit; + // } + + /* Verify that the device wasn't unplugged. */ + if (! dev->udev) { + retval = -ENODEV; + printk("No device or device unplugged (%d)", retval); + goto unlock_exit; + } + + /* Verify that we actually have some data to write. */ + if (count == 0) + goto unlock_exit; + + /* We only accept one-byte writes. */ + if (count != 1) + count = 1; + + if (copy_from_user(&cmd, user_buf, count)) { + retval = -EFAULT; + goto unlock_exit; + } + printk("cmd is 0x%02x",cmd); + policy = (cmd == ML_STOP || cmd == ML_UP || cmd == ML_DOWN + || cmd == ML_LEFT || cmd == ML_RIGHT || cmd == ML_UP_LEFT + || cmd == ML_DOWN_LEFT || cmd == ML_UP_RIGHT + || cmd == ML_DOWN_RIGHT || cmd == ML_FIRE); +// #if MISSILE_LAUNCHER == ML_THUNDER +// policy = policy || (cmd == ML_LED); +// #endif + if (!policy) { + printk("illegal command issued"); + retval = -0x2a; /* scnr */ + goto unlock_exit; + } + + +// #if MISSILE_LAUNCHER == ML_THUNDER +// if (cmd == ML_LED) { +// buf[0] = ML_LED; +// buf[1] = ml_led; +// ml_led = 1 - ml_led; +// } else { + + memset(buff,0,8); + memset(modem_status, 0, sizeof(char)*8); + buff[0]=cmd; + // buff[1]=cmd; + strncpy( modem_status, buff, 8); + // modem_status = buff; +// buf[1] = cmd; +// } +// #else + // buf[1] = cmd; + // memset(&buf[1], 0, ML_CTRL_BUFFER_SIZE - 1); + +// #endif + /* The interrupt-in-endpoint handler also modifies dev->command. */ + // spin_lock(&dev->cmd_spinlock); + dev->command = cmd; + // spin_unlock(&dev->cmd_spinlock); + + retval = usb_control_msg(dev->udev, + usb_sndctrlpipe(dev->udev, 0), + ML_CTRL_REQUEST, + ML_CTRL_REQUEST_TYPE, + ML_CTRL_VALUE, + ML_CTRL_INDEX, + // &buf, + modem_status, + 8, + // USB_CTRL_SET_TIMEOUT); + 2000); + // HZ*5); + + if (retval < 0) { + printk("usb_control_msg failed (%d)", retval); + goto unlock_exit; + } + + /* We should have written only one byte. */ + retval = count; + +unlock_exit: + // up(&dev->sem); + +exit: + kfree(modem_status); + return retval; +} + + +static struct file_operations ml_fops = { + .owner = THIS_MODULE, + .write = ml_write, + .open = ml_open, + // .release = ml_release, + // .read = ml_read, +}; + +static struct usb_class_driver ml_class = { + //.name = "ml%d", + .name = "ml%d", + .fops = &ml_fops, + // .minor_base = 0,//ML_MINOR_BASE, +}; + +static int ml_probe(struct usb_interface *interface, + const struct usb_device_id *id){ + // printk("fuck probe!!"); + // return 0; + // dev_info(&interface->dev, "USB Driver Probed: Vendor ID : 0x%02x,\t" + // "Product ID : 0x%02x\n", id->idVendor, id->idProduct); + // return 0; + //printk("fuck!!"); + struct usb_device *udev; + + struct usb_ml *dev; + + struct usb_host_interface *iface_desc; + struct usb_endpoint_descriptor *endpoint; + int i, int_end_size; + int retval = -ENODEV; + udev= interface_to_usbdev(interface); + dev = NULL; + printk("Probe missile launcher"); + + if (! udev) { + printk("udev is NULL"); + goto exit; + } + + // dev = kzalloc(sizeof(struct usb_ml), GFP_KERNEL); + // if (! dev) { + // printk("cannot allocate memory for struct usb_ml"); + // retval = -ENOMEM; + // goto exit; + // } + + // dev->command = ML_STOP; + + // sema_init(&dev->sem, 1); + // spin_lock_init(&dev->cmd_spinlock); + + // dev->udev = udev; + // dev->interface = interface; + // iface_desc = interface->cur_altsetting; + + /* Set up interrupt endpoint information. */ + // for (i = 0; i < iface_desc->desc.bNumEndpoints; ++i) { + // endpoint = &iface_desc->endpoint[i].desc; + + // if (((endpoint->bEndpointAddress & USB_ENDPOINT_DIR_MASK) + // == USB_DIR_IN) + // && ((endpoint->bmAttributes & USB_ENDPOINT_XFERTYPE_MASK) + // == USB_ENDPOINT_XFER_INT)) + // dev->int_in_endpoint = endpoint; + + // } + // if (! dev->int_in_endpoint) { + // printk("could not find interrupt in endpoint"); + // goto error; + // } + + // int_end_size = le16_to_cpu(dev->int_in_endpoint->wMaxPacketSize); + + // dev->int_in_buffer = kmalloc(int_end_size, GFP_KERNEL); + // if (! dev->int_in_buffer) { + // printk("could not allocate int_in_buffer"); + // retval = -ENOMEM; + // goto error; + // } + + // dev->int_in_urb = usb_alloc_urb(0, GFP_KERNEL); + // if (! dev->int_in_urb) { + // printk("could not allocate int_in_urb"); + // retval = -ENOMEM; + // goto error; + // } + + // /* Set up the control URB. */ + // dev->ctrl_urb = usb_alloc_urb(0, GFP_KERNEL); + // if (! dev->ctrl_urb) { + // printk("could not allocate ctrl_urb"); + // retval = -ENOMEM; + // goto error; + // } + + // dev->ctrl_buffer = kzalloc(ML_CTRL_BUFFER_SIZE, GFP_KERNEL); + // if (! dev->ctrl_buffer) { + // printk("could not allocate ctrl_buffer"); + // retval = -ENOMEM; + // goto error; + // } + + // dev->ctrl_dr = kmalloc(sizeof(struct usb_ctrlrequest), GFP_KERNEL); + // if (! dev->ctrl_dr) { + // printk("could not allocate usb_ctrlrequest"); + // retval = -ENOMEM; + // goto error; + // } + // dev->ctrl_dr->bRequestType = ML_CTRL_REQUEST_TYPE; + // dev->ctrl_dr->bRequest = ML_CTRL_REQUEST; + // dev->ctrl_dr->wValue = cpu_to_le16(ML_CTRL_VALUE); + // dev->ctrl_dr->wIndex = cpu_to_le16(ML_CTRL_INDEX); + // dev->ctrl_dr->wLength = cpu_to_le16(ML_CTRL_BUFFER_SIZE); + + // usb_fill_control_urb(dev->ctrl_urb, dev->udev, + // usb_sndctrlpipe(dev->udev, 0), + // (unsigned char *)dev->ctrl_dr, + // dev->ctrl_buffer, + // ML_CTRL_BUFFER_SIZE, + // ml_ctrl_callback, + // dev); + + /* Retrieve a serial. */ + // if (! usb_string(udev, udev->descriptor.iSerialNumber, + // dev->serial_number, sizeof(dev->serial_number))) { + // printk("could not retrieve serial number"); + // goto error; + // } + + /* Save our data pointer in this interface device. */ + // usb_set_intfdata(interface, dev); + usb_set_intfdata(interface, udev); + + /* We can register the device now, as it is ready. */ + retval = usb_register_dev(interface, &ml_class); + if (retval) { + printk("not able to get a minor for this device."); + usb_set_intfdata(interface, NULL); + goto error; + } + + // dev->minor = interface->minor; + + printk("USB missile launcher now attached to /dev/ml%d", + interface->minor - ML_MINOR_BASE); + +exit: + return retval; + +error: + ml_delete(dev); + return retval; +} + +static void ml_disconnect(struct usb_interface *interface) +{ + // struct usb_ml *dev; + // int minor; + + // // mutex_lock(&disconnect_mutex); /* Not interruptible */ + + // dev = usb_get_intfdata(interface); + // usb_set_intfdata(interface, NULL); + + // // down(&dev->sem); /* Not interruptible */ + + // minor = dev->minor; + + /* Give back our minor. */ + usb_deregister_dev(interface, &ml_class); + + /* If the device is not opened, then we clean up right now. */ + // if (! dev->open_count) { + // // up(&dev->sem); + // ml_delete(dev); + // } else { + // dev->udev = NULL; + // // up(&dev->sem); + // } + + // mutex_unlock(&disconnect_mutex); + + // printk("USB missile launcher /dev/ml%d now disconnected", + // minor - ML_MINOR_BASE); +} + +static struct usb_driver ml_driver = { + .name = "ml_driver", + //.id_table = ml_table, + .probe = ml_probe, + .disconnect = ml_disconnect, + .id_table = ml_table, +}; + + +static int __init usb_ml_init(void) +{ + int result; + + printk("Register driver"); + result = usb_register(&ml_driver); + if (result) { + printk("registering driver failed"); + } else { + printk("driver registered successfully"); + } + + return result; +} + + +static void __exit usb_ml_exit(void) +{ + usb_deregister(&ml_driver); + printk("module deregistered"); +} + +module_init(usb_ml_init); +module_exit(usb_ml_exit); + +MODULE_AUTHOR("Matthias Vallentin"); +MODULE_LICENSE("GPL"); + +// vim: ts=4 diff --git a/ml_driver.c b/ml_driver.c index dff077e..58b3c4a 100755 --- a/ml_driver.c +++ b/ml_driver.c @@ -332,7 +332,7 @@ static int ml_open(struct inode *inode, struct file *file) usb_rcvintpipe(dev->udev, dev->int_in_endpoint->bEndpointAddress), dev->int_in_buffer, - le16_to_cpu(dev->int_in_endpoint->wMaxPacketSize), + dev->int_in_endpoint->wMaxPacketSize, ml_int_in_callback, dev, dev->int_in_endpoint->bInterval); @@ -427,7 +427,7 @@ static ssize_t ml_write(struct file *file, const char __user *user_buf, size_t void *modem_status; - modem_status= kmalloc(sizeof(char)*8, GFP_KERNEL); + modem_status= kmalloc(1, GFP_KERNEL); if (!modem_status) return -ENOMEM; @@ -483,10 +483,10 @@ static ssize_t ml_write(struct file *file, const char __user *user_buf, size_t // buf[1] = ml_led; // ml_led = 1 - ml_led; // } else { - char buff[8]; - memset(buff,0,8); - buff[0]=0x02;buff[1]=cmd; - strncpy( modem_status, buff, 8); + char buff[1]; + //memset(buff,0,1); + buff[0]=cmd;//buff[1]=cmd; + strncpy( modem_status, buff, 1); // modem_status = buff; // buf[1] = cmd; // } @@ -508,7 +508,7 @@ static ssize_t ml_write(struct file *file, const char __user *user_buf, size_t ML_CTRL_INDEX, // &buf, modem_status, - 1, + sizeof(modem_status), // USB_CTRL_SET_TIMEOUT); // 2000); HZ*5); @@ -602,7 +602,7 @@ static int ml_probe(struct usb_interface *interface, goto error; } - int_end_size = le16_to_cpu(dev->int_in_endpoint->wMaxPacketSize); + int_end_size = dev->int_in_endpoint->wMaxPacketSize; dev->int_in_buffer = kmalloc(int_end_size, GFP_KERNEL); if (! dev->int_in_buffer) { @@ -641,9 +641,9 @@ static int ml_probe(struct usb_interface *interface, } dev->ctrl_dr->bRequestType = ML_CTRL_REQUEST_TYPE; dev->ctrl_dr->bRequest = ML_CTRL_REQUEST; - dev->ctrl_dr->wValue = cpu_to_le16(ML_CTRL_VALUE); - dev->ctrl_dr->wIndex = cpu_to_le16(ML_CTRL_INDEX); - dev->ctrl_dr->wLength = cpu_to_le16(ML_CTRL_BUFFER_SIZE); + dev->ctrl_dr->wValue = ML_CTRL_VALUE; + dev->ctrl_dr->wIndex = ML_CTRL_INDEX; + dev->ctrl_dr->wLength = ML_CTRL_BUFFER_SIZE; usb_fill_control_urb(dev->ctrl_urb, dev->udev, usb_sndctrlpipe(dev->udev, 0), diff --git a/ml_driver.ko b/ml_driver.ko index 533fac8d4f8bfa42b0f876cb2e3836cdaea35a31..224679f281d7ad1eb6214e278479751a05edbd84 100644 GIT binary patch delta 531 zcmcc7&UmApaYBHIw?$RjU&)QtTXr36tG?*;Gm8JonvE&4j2w&%3=AI4ZzMK%GX7?l zIj7*+dE^C9h{3me+X*1$+3Tj@(RtjX)AhjQ1)NUx2f&iAPk6N6F8Qzvq}iwQokwr& zIk31#>wyvu$NiuF|NsB`692Z+a~{W!gA4;p@^5oJXQNQgw`+GZLxTt7B@h0^hl)g? zDjfG;18Ra8J_Bs7M{ntQpU&qUuID|Ev#5Yf@$JnMvH&ab>3k12a&iloCL_n>bzIuK z!ayS&_k$eulH>p8XIx24o85V*F^O9^nVK6|n3}jb8ydKpm^fQFxf(kwAIzh&m$&51A+X>jX>FQBv~sY+0MxufwEhXWL=PCPfdOZls%6mi)`|X$%5wMjBh9ZG?U-# zVV=Om*tU74B|i((U$)7+Y|A)5asf>Og2>4i<%K8v*rhOfP2Ol%&zLdU(7v8=!{m+j Y_KX&jKLW{u$%YQ~jB_?`bWmpo0J_D&qyPW_ delta 545 zcmcc7&UmApaYBGd7yHUg)xMyg3(va;#-G_Hvh2?c&5bFtj2s*c3=AI4Zxl9nGX7?l zIj-Q@dE^C9h{3me+X*1$+3Tj@(RtjX({;z>1)NUxJHV2!Pk6N6F8Q#F5vana^PNX; z?QyWUN9%zS4#)kU{{R2~`V#-P(&HY-kAn;YOY(0EJ>Kw3ptL9TrH{om%RTuDruEqJFgiJO_38yh*9 z7+APk7(2U~o0>Wr7?>NmO@6|k%w%ji*;7D$bAv#GAY<-iMkRH|FPk-$_H!|Q*!)r_ zos-dXa-f;GWC+MzK)?dT?m+wpXcGuDOl}0qb|A@GA<52~yb&mS3`y1nN%r>Shi2l8 z4<>7x%TJat7m)ggqz>5*F80k%=4nif(>JfQ3A@&Zt_VtVhCvUX3XY`o-5lA*nHgu?GT(fzjgE}(+U|Y$r diff --git a/ml_driver.mod b/ml_driver.mod index b038fa0..1346c97 100644 --- a/ml_driver.mod +++ b/ml_driver.mod @@ -1,2 +1,2 @@ -/home/wandog/workspace/ml-driver/ml_driver.o +/home/wandog/workspace/missile_related/ml-driver/ml_driver.o diff --git a/ml_driver.mod.c b/ml_driver.mod.c index f001176..4d233a6 100644 --- a/ml_driver.mod.c +++ b/ml_driver.mod.c @@ -58,4 +58,4 @@ MODULE_INFO(depends, ""); MODULE_ALIAS("usb:v0A81p0701d*dc*dsc*dp*ic*isc*ip*in*"); -MODULE_INFO(srcversion, "66732B408E83CE755A0072F"); +MODULE_INFO(srcversion, "8B570854FC10E44C8BE3AC9"); diff --git a/ml_driver.mod.o b/ml_driver.mod.o index e5362d184df6078eeb8a5a9ca0b2645633ba07ac..25a248a41a90408affe987a9c41350334e2b5885 100644 GIT binary patch delta 40 vcmaE%`a*Srx44CqskwoLsfnAjp@FN3iL-^1tFfcA<;0|9CKI!b#}$PD`JD^8 delta 40 vcmaE%`a*Srx44;^xv`OxiGhWyg|V}%xv8n6fq}V^+r*?~CS%Ku#}$PD_AU#H diff --git a/ml_driver.o b/ml_driver.o index 68caab53f9835ca0280679ee2933cf35eb38ce6d..297fbd6ff628294fc05d5a552f3646fff89ea26f 100644 GIT binary patch delta 425 zcmX?+eIk2k8&ZD>X+++bh(d2U;$B%>L!HW2|xt_C8DCgU?yP2WEgYl9F|KdYMB2X2M`>*}~ z{~u!546r#Ky`|@UI-hsAp7%V?q5?9-w>QrMtiq@BJ>0~}Gx;{MMdNzLyOS3h*E9VV+^l4>j1d617MFGa delta 446 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 literal 0 HcmV?d00001 diff --git a/userspace/CMakeFiles/3.16.3/CMakeSystem.cmake b/userspace/CMakeFiles/3.16.3/CMakeSystem.cmake new file mode 100644 index 0000000..c447609 --- /dev/null +++ b/userspace/CMakeFiles/3.16.3/CMakeSystem.cmake @@ -0,0 +1,15 @@ +set(CMAKE_HOST_SYSTEM "Linux-5.4.0-139-generic") +set(CMAKE_HOST_SYSTEM_NAME "Linux") +set(CMAKE_HOST_SYSTEM_VERSION "5.4.0-139-generic") +set(CMAKE_HOST_SYSTEM_PROCESSOR "x86_64") + + + +set(CMAKE_SYSTEM "Linux-5.4.0-139-generic") +set(CMAKE_SYSTEM_NAME "Linux") +set(CMAKE_SYSTEM_VERSION "5.4.0-139-generic") +set(CMAKE_SYSTEM_PROCESSOR "x86_64") + +set(CMAKE_CROSSCOMPILING "FALSE") + +set(CMAKE_SYSTEM_LOADED 1) diff --git a/userspace/CMakeFiles/3.16.3/CompilerIdC/CMakeCCompilerId.c b/userspace/CMakeFiles/3.16.3/CompilerIdC/CMakeCCompilerId.c new file mode 100644 index 0000000..d884b50 --- /dev/null +++ b/userspace/CMakeFiles/3.16.3/CompilerIdC/CMakeCCompilerId.c @@ -0,0 +1,671 @@ +#ifdef __cplusplus +# error "A C++ compiler has been selected for C." +#endif + +#if defined(__18CXX) +# define ID_VOID_MAIN +#endif +#if defined(__CLASSIC_C__) +/* cv-qualifiers did not exist in K&R C */ +# define const +# define volatile +#endif + + +/* Version number components: V=Version, R=Revision, P=Patch + Version date components: YYYY=Year, MM=Month, DD=Day */ + +#if defined(__INTEL_COMPILER) || defined(__ICC) +# define COMPILER_ID "Intel" +# if defined(_MSC_VER) +# define SIMULATE_ID "MSVC" +# endif +# if defined(__GNUC__) +# define SIMULATE_ID "GNU" +# endif + /* __INTEL_COMPILER = VRP */ +# define COMPILER_VERSION_MAJOR DEC(__INTEL_COMPILER/100) +# define COMPILER_VERSION_MINOR DEC(__INTEL_COMPILER/10 % 10) +# if defined(__INTEL_COMPILER_UPDATE) +# define COMPILER_VERSION_PATCH DEC(__INTEL_COMPILER_UPDATE) +# else +# define COMPILER_VERSION_PATCH DEC(__INTEL_COMPILER % 10) +# endif +# if defined(__INTEL_COMPILER_BUILD_DATE) + /* __INTEL_COMPILER_BUILD_DATE = YYYYMMDD */ +# define COMPILER_VERSION_TWEAK DEC(__INTEL_COMPILER_BUILD_DATE) +# endif +# if defined(_MSC_VER) + /* _MSC_VER = VVRR */ +# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100) +# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100) +# endif +# if defined(__GNUC__) +# define SIMULATE_VERSION_MAJOR DEC(__GNUC__) +# elif defined(__GNUG__) +# define SIMULATE_VERSION_MAJOR DEC(__GNUG__) +# endif +# if defined(__GNUC_MINOR__) +# define SIMULATE_VERSION_MINOR DEC(__GNUC_MINOR__) +# endif +# if defined(__GNUC_PATCHLEVEL__) +# define SIMULATE_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__) +# endif + +#elif defined(__PATHCC__) +# define COMPILER_ID "PathScale" +# define COMPILER_VERSION_MAJOR DEC(__PATHCC__) +# define COMPILER_VERSION_MINOR DEC(__PATHCC_MINOR__) +# if defined(__PATHCC_PATCHLEVEL__) +# define COMPILER_VERSION_PATCH DEC(__PATHCC_PATCHLEVEL__) +# endif + +#elif defined(__BORLANDC__) && defined(__CODEGEARC_VERSION__) +# define COMPILER_ID "Embarcadero" +# define COMPILER_VERSION_MAJOR HEX(__CODEGEARC_VERSION__>>24 & 0x00FF) +# define COMPILER_VERSION_MINOR HEX(__CODEGEARC_VERSION__>>16 & 0x00FF) +# define COMPILER_VERSION_PATCH DEC(__CODEGEARC_VERSION__ & 0xFFFF) + +#elif defined(__BORLANDC__) +# define COMPILER_ID "Borland" + /* __BORLANDC__ = 0xVRR */ +# define COMPILER_VERSION_MAJOR HEX(__BORLANDC__>>8) +# define COMPILER_VERSION_MINOR HEX(__BORLANDC__ & 0xFF) + +#elif defined(__WATCOMC__) && __WATCOMC__ < 1200 +# define COMPILER_ID "Watcom" + /* __WATCOMC__ = VVRR */ +# define COMPILER_VERSION_MAJOR DEC(__WATCOMC__ / 100) +# define COMPILER_VERSION_MINOR DEC((__WATCOMC__ / 10) % 10) +# if (__WATCOMC__ % 10) > 0 +# define COMPILER_VERSION_PATCH DEC(__WATCOMC__ % 10) +# endif + +#elif defined(__WATCOMC__) +# define COMPILER_ID "OpenWatcom" + /* __WATCOMC__ = VVRP + 1100 */ +# define COMPILER_VERSION_MAJOR DEC((__WATCOMC__ - 1100) / 100) +# define COMPILER_VERSION_MINOR DEC((__WATCOMC__ / 10) % 10) +# if (__WATCOMC__ % 10) > 0 +# define COMPILER_VERSION_PATCH DEC(__WATCOMC__ % 10) +# endif + +#elif defined(__SUNPRO_C) +# define COMPILER_ID "SunPro" +# if __SUNPRO_C >= 0x5100 + /* __SUNPRO_C = 0xVRRP */ +# define COMPILER_VERSION_MAJOR HEX(__SUNPRO_C>>12) +# define COMPILER_VERSION_MINOR HEX(__SUNPRO_C>>4 & 0xFF) +# define COMPILER_VERSION_PATCH HEX(__SUNPRO_C & 0xF) +# else + /* __SUNPRO_CC = 0xVRP */ +# define COMPILER_VERSION_MAJOR HEX(__SUNPRO_C>>8) +# define COMPILER_VERSION_MINOR HEX(__SUNPRO_C>>4 & 0xF) +# define COMPILER_VERSION_PATCH HEX(__SUNPRO_C & 0xF) +# endif + +#elif defined(__HP_cc) +# define COMPILER_ID "HP" + /* __HP_cc = VVRRPP */ +# define COMPILER_VERSION_MAJOR DEC(__HP_cc/10000) +# define COMPILER_VERSION_MINOR DEC(__HP_cc/100 % 100) +# define COMPILER_VERSION_PATCH DEC(__HP_cc % 100) + +#elif defined(__DECC) +# define COMPILER_ID "Compaq" + /* __DECC_VER = VVRRTPPPP */ +# define COMPILER_VERSION_MAJOR DEC(__DECC_VER/10000000) +# define COMPILER_VERSION_MINOR DEC(__DECC_VER/100000 % 100) +# define COMPILER_VERSION_PATCH DEC(__DECC_VER % 10000) + +#elif defined(__IBMC__) && defined(__COMPILER_VER__) +# define COMPILER_ID "zOS" + /* __IBMC__ = VRP */ +# define COMPILER_VERSION_MAJOR DEC(__IBMC__/100) +# define COMPILER_VERSION_MINOR DEC(__IBMC__/10 % 10) +# define COMPILER_VERSION_PATCH DEC(__IBMC__ % 10) + +#elif defined(__ibmxl__) && defined(__clang__) +# define COMPILER_ID "XLClang" +# define COMPILER_VERSION_MAJOR DEC(__ibmxl_version__) +# define COMPILER_VERSION_MINOR DEC(__ibmxl_release__) +# define COMPILER_VERSION_PATCH DEC(__ibmxl_modification__) +# define COMPILER_VERSION_TWEAK DEC(__ibmxl_ptf_fix_level__) + + +#elif defined(__IBMC__) && !defined(__COMPILER_VER__) && __IBMC__ >= 800 +# define COMPILER_ID "XL" + /* __IBMC__ = VRP */ +# define COMPILER_VERSION_MAJOR DEC(__IBMC__/100) +# define COMPILER_VERSION_MINOR DEC(__IBMC__/10 % 10) +# define COMPILER_VERSION_PATCH DEC(__IBMC__ % 10) + +#elif defined(__IBMC__) && !defined(__COMPILER_VER__) && __IBMC__ < 800 +# define COMPILER_ID "VisualAge" + /* __IBMC__ = VRP */ +# define COMPILER_VERSION_MAJOR DEC(__IBMC__/100) +# define COMPILER_VERSION_MINOR DEC(__IBMC__/10 % 10) +# define COMPILER_VERSION_PATCH DEC(__IBMC__ % 10) + +#elif defined(__PGI) +# define COMPILER_ID "PGI" +# define COMPILER_VERSION_MAJOR DEC(__PGIC__) +# define COMPILER_VERSION_MINOR DEC(__PGIC_MINOR__) +# if defined(__PGIC_PATCHLEVEL__) +# define COMPILER_VERSION_PATCH DEC(__PGIC_PATCHLEVEL__) +# endif + +#elif defined(_CRAYC) +# define COMPILER_ID "Cray" +# define COMPILER_VERSION_MAJOR DEC(_RELEASE_MAJOR) +# define COMPILER_VERSION_MINOR DEC(_RELEASE_MINOR) + +#elif defined(__TI_COMPILER_VERSION__) +# define COMPILER_ID "TI" + /* __TI_COMPILER_VERSION__ = VVVRRRPPP */ +# define COMPILER_VERSION_MAJOR DEC(__TI_COMPILER_VERSION__/1000000) +# define COMPILER_VERSION_MINOR DEC(__TI_COMPILER_VERSION__/1000 % 1000) +# define COMPILER_VERSION_PATCH DEC(__TI_COMPILER_VERSION__ % 1000) + +#elif defined(__FUJITSU) || defined(__FCC_VERSION) || defined(__fcc_version) +# define COMPILER_ID "Fujitsu" + +#elif defined(__ghs__) +# define COMPILER_ID "GHS" +/* __GHS_VERSION_NUMBER = VVVVRP */ +# ifdef __GHS_VERSION_NUMBER +# define COMPILER_VERSION_MAJOR DEC(__GHS_VERSION_NUMBER / 100) +# define COMPILER_VERSION_MINOR DEC(__GHS_VERSION_NUMBER / 10 % 10) +# define COMPILER_VERSION_PATCH DEC(__GHS_VERSION_NUMBER % 10) +# endif + +#elif defined(__TINYC__) +# define COMPILER_ID "TinyCC" + +#elif defined(__BCC__) +# define COMPILER_ID "Bruce" + +#elif defined(__SCO_VERSION__) +# define COMPILER_ID "SCO" + +#elif defined(__ARMCC_VERSION) && !defined(__clang__) +# define COMPILER_ID "ARMCC" +#if __ARMCC_VERSION >= 1000000 + /* __ARMCC_VERSION = VRRPPPP */ + # define COMPILER_VERSION_MAJOR DEC(__ARMCC_VERSION/1000000) + # define COMPILER_VERSION_MINOR DEC(__ARMCC_VERSION/10000 % 100) + # define COMPILER_VERSION_PATCH DEC(__ARMCC_VERSION % 10000) +#else + /* __ARMCC_VERSION = VRPPPP */ + # define COMPILER_VERSION_MAJOR DEC(__ARMCC_VERSION/100000) + # define COMPILER_VERSION_MINOR DEC(__ARMCC_VERSION/10000 % 10) + # define COMPILER_VERSION_PATCH DEC(__ARMCC_VERSION % 10000) +#endif + + +#elif defined(__clang__) && defined(__apple_build_version__) +# define COMPILER_ID "AppleClang" +# if defined(_MSC_VER) +# define SIMULATE_ID "MSVC" +# endif +# define COMPILER_VERSION_MAJOR DEC(__clang_major__) +# define COMPILER_VERSION_MINOR DEC(__clang_minor__) +# define COMPILER_VERSION_PATCH DEC(__clang_patchlevel__) +# if defined(_MSC_VER) + /* _MSC_VER = VVRR */ +# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100) +# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100) +# endif +# define COMPILER_VERSION_TWEAK DEC(__apple_build_version__) + +#elif defined(__clang__) && defined(__ARMCOMPILER_VERSION) +# define COMPILER_ID "ARMClang" + # define COMPILER_VERSION_MAJOR DEC(__ARMCOMPILER_VERSION/1000000) + # define COMPILER_VERSION_MINOR DEC(__ARMCOMPILER_VERSION/10000 % 100) + # define COMPILER_VERSION_PATCH DEC(__ARMCOMPILER_VERSION % 10000) +# define COMPILER_VERSION_INTERNAL DEC(__ARMCOMPILER_VERSION) + +#elif defined(__clang__) +# define COMPILER_ID "Clang" +# if defined(_MSC_VER) +# define SIMULATE_ID "MSVC" +# endif +# define COMPILER_VERSION_MAJOR DEC(__clang_major__) +# define COMPILER_VERSION_MINOR DEC(__clang_minor__) +# define COMPILER_VERSION_PATCH DEC(__clang_patchlevel__) +# if defined(_MSC_VER) + /* _MSC_VER = VVRR */ +# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100) +# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100) +# endif + +#elif defined(__GNUC__) +# define COMPILER_ID "GNU" +# define COMPILER_VERSION_MAJOR DEC(__GNUC__) +# if defined(__GNUC_MINOR__) +# define COMPILER_VERSION_MINOR DEC(__GNUC_MINOR__) +# endif +# if defined(__GNUC_PATCHLEVEL__) +# define COMPILER_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__) +# endif + +#elif defined(_MSC_VER) +# define COMPILER_ID "MSVC" + /* _MSC_VER = VVRR */ +# define COMPILER_VERSION_MAJOR DEC(_MSC_VER / 100) +# define COMPILER_VERSION_MINOR DEC(_MSC_VER % 100) +# if defined(_MSC_FULL_VER) +# if _MSC_VER >= 1400 + /* _MSC_FULL_VER = VVRRPPPPP */ +# define COMPILER_VERSION_PATCH DEC(_MSC_FULL_VER % 100000) +# else + /* _MSC_FULL_VER = VVRRPPPP */ +# define COMPILER_VERSION_PATCH DEC(_MSC_FULL_VER % 10000) +# endif +# endif +# if defined(_MSC_BUILD) +# define COMPILER_VERSION_TWEAK DEC(_MSC_BUILD) +# endif + +#elif defined(__VISUALDSPVERSION__) || defined(__ADSPBLACKFIN__) || defined(__ADSPTS__) || defined(__ADSP21000__) +# define COMPILER_ID "ADSP" +#if defined(__VISUALDSPVERSION__) + /* __VISUALDSPVERSION__ = 0xVVRRPP00 */ +# define COMPILER_VERSION_MAJOR HEX(__VISUALDSPVERSION__>>24) +# define COMPILER_VERSION_MINOR HEX(__VISUALDSPVERSION__>>16 & 0xFF) +# define COMPILER_VERSION_PATCH HEX(__VISUALDSPVERSION__>>8 & 0xFF) +#endif + +#elif defined(__IAR_SYSTEMS_ICC__) || defined(__IAR_SYSTEMS_ICC) +# define COMPILER_ID "IAR" +# if defined(__VER__) && defined(__ICCARM__) +# define COMPILER_VERSION_MAJOR DEC((__VER__) / 1000000) +# define COMPILER_VERSION_MINOR DEC(((__VER__) / 1000) % 1000) +# define COMPILER_VERSION_PATCH DEC((__VER__) % 1000) +# define COMPILER_VERSION_INTERNAL DEC(__IAR_SYSTEMS_ICC__) +# elif defined(__VER__) && (defined(__ICCAVR__) || defined(__ICCRX__) || defined(__ICCRH850__) || defined(__ICCRL78__) || defined(__ICC430__) || defined(__ICCRISCV__) || defined(__ICCV850__) || defined(__ICC8051__)) +# define COMPILER_VERSION_MAJOR DEC((__VER__) / 100) +# define COMPILER_VERSION_MINOR DEC((__VER__) - (((__VER__) / 100)*100)) +# define COMPILER_VERSION_PATCH DEC(__SUBVERSION__) +# define COMPILER_VERSION_INTERNAL DEC(__IAR_SYSTEMS_ICC__) +# endif + +#elif defined(__SDCC_VERSION_MAJOR) || defined(SDCC) +# define COMPILER_ID "SDCC" +# if defined(__SDCC_VERSION_MAJOR) +# define COMPILER_VERSION_MAJOR DEC(__SDCC_VERSION_MAJOR) +# define COMPILER_VERSION_MINOR DEC(__SDCC_VERSION_MINOR) +# define COMPILER_VERSION_PATCH DEC(__SDCC_VERSION_PATCH) +# else + /* SDCC = VRP */ +# define COMPILER_VERSION_MAJOR DEC(SDCC/100) +# define COMPILER_VERSION_MINOR DEC(SDCC/10 % 10) +# define COMPILER_VERSION_PATCH DEC(SDCC % 10) +# endif + + +/* These compilers are either not known or too old to define an + identification macro. Try to identify the platform and guess that + it is the native compiler. */ +#elif defined(__hpux) || defined(__hpua) +# define COMPILER_ID "HP" + +#else /* unknown compiler */ +# define COMPILER_ID "" +#endif + +/* Construct the string literal in pieces to prevent the source from + getting matched. Store it in a pointer rather than an array + because some compilers will just produce instructions to fill the + array rather than assigning a pointer to a static array. */ +char const* info_compiler = "INFO" ":" "compiler[" COMPILER_ID "]"; +#ifdef SIMULATE_ID +char const* info_simulate = "INFO" ":" "simulate[" SIMULATE_ID "]"; +#endif + +#ifdef __QNXNTO__ +char const* qnxnto = "INFO" ":" "qnxnto[]"; +#endif + +#if defined(__CRAYXE) || defined(__CRAYXC) +char const *info_cray = "INFO" ":" "compiler_wrapper[CrayPrgEnv]"; +#endif + +#define STRINGIFY_HELPER(X) #X +#define STRINGIFY(X) STRINGIFY_HELPER(X) + +/* Identify known platforms by name. */ +#if defined(__linux) || defined(__linux__) || defined(linux) +# define PLATFORM_ID "Linux" + +#elif defined(__CYGWIN__) +# define PLATFORM_ID "Cygwin" + +#elif defined(__MINGW32__) +# define PLATFORM_ID "MinGW" + +#elif defined(__APPLE__) +# define PLATFORM_ID "Darwin" + +#elif defined(_WIN32) || defined(__WIN32__) || defined(WIN32) +# define PLATFORM_ID "Windows" + +#elif defined(__FreeBSD__) || defined(__FreeBSD) +# define PLATFORM_ID "FreeBSD" + +#elif defined(__NetBSD__) || defined(__NetBSD) +# define PLATFORM_ID "NetBSD" + +#elif defined(__OpenBSD__) || defined(__OPENBSD) +# define PLATFORM_ID "OpenBSD" + +#elif defined(__sun) || defined(sun) +# define PLATFORM_ID "SunOS" + +#elif defined(_AIX) || defined(__AIX) || defined(__AIX__) || defined(__aix) || defined(__aix__) +# define PLATFORM_ID "AIX" + +#elif defined(__hpux) || defined(__hpux__) +# define PLATFORM_ID "HP-UX" + +#elif defined(__HAIKU__) +# define PLATFORM_ID "Haiku" + +#elif defined(__BeOS) || defined(__BEOS__) || defined(_BEOS) +# define PLATFORM_ID "BeOS" + +#elif defined(__QNX__) || defined(__QNXNTO__) +# define PLATFORM_ID "QNX" + +#elif defined(__tru64) || defined(_tru64) || defined(__TRU64__) +# define PLATFORM_ID "Tru64" + +#elif defined(__riscos) || defined(__riscos__) +# define PLATFORM_ID "RISCos" + +#elif defined(__sinix) || defined(__sinix__) || defined(__SINIX__) +# define PLATFORM_ID "SINIX" + +#elif defined(__UNIX_SV__) +# define PLATFORM_ID "UNIX_SV" + +#elif defined(__bsdos__) +# define PLATFORM_ID "BSDOS" + +#elif defined(_MPRAS) || defined(MPRAS) +# define PLATFORM_ID "MP-RAS" + +#elif defined(__osf) || defined(__osf__) +# define PLATFORM_ID "OSF1" + +#elif defined(_SCO_SV) || defined(SCO_SV) || defined(sco_sv) +# define PLATFORM_ID "SCO_SV" + +#elif defined(__ultrix) || defined(__ultrix__) || defined(_ULTRIX) +# define PLATFORM_ID "ULTRIX" + +#elif defined(__XENIX__) || defined(_XENIX) || defined(XENIX) +# define PLATFORM_ID "Xenix" + +#elif defined(__WATCOMC__) +# if defined(__LINUX__) +# define PLATFORM_ID "Linux" + +# elif defined(__DOS__) +# define PLATFORM_ID "DOS" + +# elif defined(__OS2__) +# define PLATFORM_ID "OS2" + +# elif defined(__WINDOWS__) +# define PLATFORM_ID "Windows3x" + +# else /* unknown platform */ +# define PLATFORM_ID +# endif + +#elif defined(__INTEGRITY) +# if defined(INT_178B) +# define PLATFORM_ID "Integrity178" + +# else /* regular Integrity */ +# define PLATFORM_ID "Integrity" +# endif + +#else /* unknown platform */ +# define PLATFORM_ID + +#endif + +/* For windows compilers MSVC and Intel we can determine + the architecture of the compiler being used. This is because + the compilers do not have flags that can change the architecture, + but rather depend on which compiler is being used +*/ +#if defined(_WIN32) && defined(_MSC_VER) +# if defined(_M_IA64) +# define ARCHITECTURE_ID "IA64" + +# elif defined(_M_X64) || defined(_M_AMD64) +# define ARCHITECTURE_ID "x64" + +# elif defined(_M_IX86) +# define ARCHITECTURE_ID "X86" + +# elif defined(_M_ARM64) +# define ARCHITECTURE_ID "ARM64" + +# elif defined(_M_ARM) +# if _M_ARM == 4 +# define ARCHITECTURE_ID "ARMV4I" +# elif _M_ARM == 5 +# define ARCHITECTURE_ID "ARMV5I" +# else +# define ARCHITECTURE_ID "ARMV" STRINGIFY(_M_ARM) +# endif + +# elif defined(_M_MIPS) +# define ARCHITECTURE_ID "MIPS" + +# elif defined(_M_SH) +# define ARCHITECTURE_ID "SHx" + +# else /* unknown architecture */ +# define ARCHITECTURE_ID "" +# endif + +#elif defined(__WATCOMC__) +# if defined(_M_I86) +# define ARCHITECTURE_ID "I86" + +# elif defined(_M_IX86) +# define ARCHITECTURE_ID "X86" + +# else /* unknown architecture */ +# define ARCHITECTURE_ID "" +# endif + +#elif defined(__IAR_SYSTEMS_ICC__) || defined(__IAR_SYSTEMS_ICC) +# if defined(__ICCARM__) +# define ARCHITECTURE_ID "ARM" + +# elif defined(__ICCRX__) +# define ARCHITECTURE_ID "RX" + +# elif defined(__ICCRH850__) +# define ARCHITECTURE_ID "RH850" + +# elif defined(__ICCRL78__) +# define ARCHITECTURE_ID "RL78" + +# elif defined(__ICCRISCV__) +# define ARCHITECTURE_ID "RISCV" + +# elif defined(__ICCAVR__) +# define ARCHITECTURE_ID "AVR" + +# elif defined(__ICC430__) +# define ARCHITECTURE_ID "MSP430" + +# elif defined(__ICCV850__) +# define ARCHITECTURE_ID "V850" + +# elif defined(__ICC8051__) +# define ARCHITECTURE_ID "8051" + +# else /* unknown architecture */ +# define ARCHITECTURE_ID "" +# endif + +#elif defined(__ghs__) +# if defined(__PPC64__) +# define ARCHITECTURE_ID "PPC64" + +# elif defined(__ppc__) +# define ARCHITECTURE_ID "PPC" + +# elif defined(__ARM__) +# define ARCHITECTURE_ID "ARM" + +# elif defined(__x86_64__) +# define ARCHITECTURE_ID "x64" + +# elif defined(__i386__) +# define ARCHITECTURE_ID "X86" + +# else /* unknown architecture */ +# define ARCHITECTURE_ID "" +# endif +#else +# define ARCHITECTURE_ID +#endif + +/* Convert integer to decimal digit literals. */ +#define DEC(n) \ + ('0' + (((n) / 10000000)%10)), \ + ('0' + (((n) / 1000000)%10)), \ + ('0' + (((n) / 100000)%10)), \ + ('0' + (((n) / 10000)%10)), \ + ('0' + (((n) / 1000)%10)), \ + ('0' + (((n) / 100)%10)), \ + ('0' + (((n) / 10)%10)), \ + ('0' + ((n) % 10)) + +/* Convert integer to hex digit literals. */ +#define HEX(n) \ + ('0' + ((n)>>28 & 0xF)), \ + ('0' + ((n)>>24 & 0xF)), \ + ('0' + ((n)>>20 & 0xF)), \ + ('0' + ((n)>>16 & 0xF)), \ + ('0' + ((n)>>12 & 0xF)), \ + ('0' + ((n)>>8 & 0xF)), \ + ('0' + ((n)>>4 & 0xF)), \ + ('0' + ((n) & 0xF)) + +/* Construct a string literal encoding the version number components. */ +#ifdef COMPILER_VERSION_MAJOR +char const info_version[] = { + 'I', 'N', 'F', 'O', ':', + 'c','o','m','p','i','l','e','r','_','v','e','r','s','i','o','n','[', + COMPILER_VERSION_MAJOR, +# ifdef COMPILER_VERSION_MINOR + '.', COMPILER_VERSION_MINOR, +# ifdef COMPILER_VERSION_PATCH + '.', COMPILER_VERSION_PATCH, +# ifdef COMPILER_VERSION_TWEAK + '.', COMPILER_VERSION_TWEAK, +# endif +# endif +# endif + ']','\0'}; +#endif + +/* Construct a string literal encoding the internal version number. */ +#ifdef COMPILER_VERSION_INTERNAL +char const info_version_internal[] = { + 'I', 'N', 'F', 'O', ':', + 'c','o','m','p','i','l','e','r','_','v','e','r','s','i','o','n','_', + 'i','n','t','e','r','n','a','l','[', + COMPILER_VERSION_INTERNAL,']','\0'}; +#endif + +/* Construct a string literal encoding the version number components. */ +#ifdef SIMULATE_VERSION_MAJOR +char const info_simulate_version[] = { + 'I', 'N', 'F', 'O', ':', + 's','i','m','u','l','a','t','e','_','v','e','r','s','i','o','n','[', + SIMULATE_VERSION_MAJOR, +# ifdef SIMULATE_VERSION_MINOR + '.', SIMULATE_VERSION_MINOR, +# ifdef SIMULATE_VERSION_PATCH + '.', SIMULATE_VERSION_PATCH, +# ifdef SIMULATE_VERSION_TWEAK + '.', SIMULATE_VERSION_TWEAK, +# endif +# endif +# endif + ']','\0'}; +#endif + +/* Construct the string literal in pieces to prevent the source from + getting matched. Store it in a pointer rather than an array + because some compilers will just produce instructions to fill the + array rather than assigning a pointer to a static array. */ +char const* info_platform = "INFO" ":" "platform[" PLATFORM_ID "]"; +char const* info_arch = "INFO" ":" "arch[" ARCHITECTURE_ID "]"; + + + + +#if !defined(__STDC__) +# if (defined(_MSC_VER) && !defined(__clang__)) \ + || (defined(__ibmxl__) || defined(__IBMC__)) +# define C_DIALECT "90" +# else +# define C_DIALECT +# endif +#elif __STDC_VERSION__ >= 201000L +# define C_DIALECT "11" +#elif __STDC_VERSION__ >= 199901L +# define C_DIALECT "99" +#else +# define C_DIALECT "90" +#endif +const char* info_language_dialect_default = + "INFO" ":" "dialect_default[" C_DIALECT "]"; + +/*--------------------------------------------------------------------------*/ + +#ifdef ID_VOID_MAIN +void main() {} +#else +# if defined(__CLASSIC_C__) +int main(argc, argv) int argc; char *argv[]; +# else +int main(int argc, char* argv[]) +# endif +{ + int require = 0; + require += info_compiler[argc]; + require += info_platform[argc]; + require += info_arch[argc]; +#ifdef COMPILER_VERSION_MAJOR + require += info_version[argc]; +#endif +#ifdef COMPILER_VERSION_INTERNAL + require += info_version_internal[argc]; +#endif +#ifdef SIMULATE_ID + require += info_simulate[argc]; +#endif +#ifdef SIMULATE_VERSION_MAJOR + require += info_simulate_version[argc]; +#endif +#if defined(__CRAYXE) || defined(__CRAYXC) + require += info_cray[argc]; +#endif + require += info_language_dialect_default[argc]; + (void)argv; + return require; +} +#endif diff --git a/userspace/CMakeFiles/3.16.3/CompilerIdC/a.out b/userspace/CMakeFiles/3.16.3/CompilerIdC/a.out new file mode 100755 index 0000000000000000000000000000000000000000..e82fab493fdf7ab5d55eaa479346af6ef1f959e7 GIT binary patch literal 16712 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 literal 0 HcmV?d00001 diff --git a/userspace/CMakeFiles/3.16.3/CompilerIdCXX/CMakeCXXCompilerId.cpp b/userspace/CMakeFiles/3.16.3/CompilerIdCXX/CMakeCXXCompilerId.cpp new file mode 100644 index 0000000..69cfdba --- /dev/null +++ b/userspace/CMakeFiles/3.16.3/CompilerIdCXX/CMakeCXXCompilerId.cpp @@ -0,0 +1,660 @@ +/* This source file must have a .cpp extension so that all C++ compilers + recognize the extension without flags. Borland does not know .cxx for + example. */ +#ifndef __cplusplus +# error "A C compiler has been selected for C++." +#endif + + +/* Version number components: V=Version, R=Revision, P=Patch + Version date components: YYYY=Year, MM=Month, DD=Day */ + +#if defined(__COMO__) +# define COMPILER_ID "Comeau" + /* __COMO_VERSION__ = VRR */ +# define COMPILER_VERSION_MAJOR DEC(__COMO_VERSION__ / 100) +# define COMPILER_VERSION_MINOR DEC(__COMO_VERSION__ % 100) + +#elif defined(__INTEL_COMPILER) || defined(__ICC) +# define COMPILER_ID "Intel" +# if defined(_MSC_VER) +# define SIMULATE_ID "MSVC" +# endif +# if defined(__GNUC__) +# define SIMULATE_ID "GNU" +# endif + /* __INTEL_COMPILER = VRP */ +# define COMPILER_VERSION_MAJOR DEC(__INTEL_COMPILER/100) +# define COMPILER_VERSION_MINOR DEC(__INTEL_COMPILER/10 % 10) +# if defined(__INTEL_COMPILER_UPDATE) +# define COMPILER_VERSION_PATCH DEC(__INTEL_COMPILER_UPDATE) +# else +# define COMPILER_VERSION_PATCH DEC(__INTEL_COMPILER % 10) +# endif +# if defined(__INTEL_COMPILER_BUILD_DATE) + /* __INTEL_COMPILER_BUILD_DATE = YYYYMMDD */ +# define COMPILER_VERSION_TWEAK DEC(__INTEL_COMPILER_BUILD_DATE) +# endif +# if defined(_MSC_VER) + /* _MSC_VER = VVRR */ +# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100) +# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100) +# endif +# if defined(__GNUC__) +# define SIMULATE_VERSION_MAJOR DEC(__GNUC__) +# elif defined(__GNUG__) +# define SIMULATE_VERSION_MAJOR DEC(__GNUG__) +# endif +# if defined(__GNUC_MINOR__) +# define SIMULATE_VERSION_MINOR DEC(__GNUC_MINOR__) +# endif +# if defined(__GNUC_PATCHLEVEL__) +# define SIMULATE_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__) +# endif + +#elif defined(__PATHCC__) +# define COMPILER_ID "PathScale" +# define COMPILER_VERSION_MAJOR DEC(__PATHCC__) +# define COMPILER_VERSION_MINOR DEC(__PATHCC_MINOR__) +# if defined(__PATHCC_PATCHLEVEL__) +# define COMPILER_VERSION_PATCH DEC(__PATHCC_PATCHLEVEL__) +# endif + +#elif defined(__BORLANDC__) && defined(__CODEGEARC_VERSION__) +# define COMPILER_ID "Embarcadero" +# define COMPILER_VERSION_MAJOR HEX(__CODEGEARC_VERSION__>>24 & 0x00FF) +# define COMPILER_VERSION_MINOR HEX(__CODEGEARC_VERSION__>>16 & 0x00FF) +# define COMPILER_VERSION_PATCH DEC(__CODEGEARC_VERSION__ & 0xFFFF) + +#elif defined(__BORLANDC__) +# define COMPILER_ID "Borland" + /* __BORLANDC__ = 0xVRR */ +# define COMPILER_VERSION_MAJOR HEX(__BORLANDC__>>8) +# define COMPILER_VERSION_MINOR HEX(__BORLANDC__ & 0xFF) + +#elif defined(__WATCOMC__) && __WATCOMC__ < 1200 +# define COMPILER_ID "Watcom" + /* __WATCOMC__ = VVRR */ +# define COMPILER_VERSION_MAJOR DEC(__WATCOMC__ / 100) +# define COMPILER_VERSION_MINOR DEC((__WATCOMC__ / 10) % 10) +# if (__WATCOMC__ % 10) > 0 +# define COMPILER_VERSION_PATCH DEC(__WATCOMC__ % 10) +# endif + +#elif defined(__WATCOMC__) +# define COMPILER_ID "OpenWatcom" + /* __WATCOMC__ = VVRP + 1100 */ +# define COMPILER_VERSION_MAJOR DEC((__WATCOMC__ - 1100) / 100) +# define COMPILER_VERSION_MINOR DEC((__WATCOMC__ / 10) % 10) +# if (__WATCOMC__ % 10) > 0 +# define COMPILER_VERSION_PATCH DEC(__WATCOMC__ % 10) +# endif + +#elif defined(__SUNPRO_CC) +# define COMPILER_ID "SunPro" +# if __SUNPRO_CC >= 0x5100 + /* __SUNPRO_CC = 0xVRRP */ +# define COMPILER_VERSION_MAJOR HEX(__SUNPRO_CC>>12) +# define COMPILER_VERSION_MINOR HEX(__SUNPRO_CC>>4 & 0xFF) +# define COMPILER_VERSION_PATCH HEX(__SUNPRO_CC & 0xF) +# else + /* __SUNPRO_CC = 0xVRP */ +# define COMPILER_VERSION_MAJOR HEX(__SUNPRO_CC>>8) +# define COMPILER_VERSION_MINOR HEX(__SUNPRO_CC>>4 & 0xF) +# define COMPILER_VERSION_PATCH HEX(__SUNPRO_CC & 0xF) +# endif + +#elif defined(__HP_aCC) +# define COMPILER_ID "HP" + /* __HP_aCC = VVRRPP */ +# define COMPILER_VERSION_MAJOR DEC(__HP_aCC/10000) +# define COMPILER_VERSION_MINOR DEC(__HP_aCC/100 % 100) +# define COMPILER_VERSION_PATCH DEC(__HP_aCC % 100) + +#elif defined(__DECCXX) +# define COMPILER_ID "Compaq" + /* __DECCXX_VER = VVRRTPPPP */ +# define COMPILER_VERSION_MAJOR DEC(__DECCXX_VER/10000000) +# define COMPILER_VERSION_MINOR DEC(__DECCXX_VER/100000 % 100) +# define COMPILER_VERSION_PATCH DEC(__DECCXX_VER % 10000) + +#elif defined(__IBMCPP__) && defined(__COMPILER_VER__) +# define COMPILER_ID "zOS" + /* __IBMCPP__ = VRP */ +# define COMPILER_VERSION_MAJOR DEC(__IBMCPP__/100) +# define COMPILER_VERSION_MINOR DEC(__IBMCPP__/10 % 10) +# define COMPILER_VERSION_PATCH DEC(__IBMCPP__ % 10) + +#elif defined(__ibmxl__) && defined(__clang__) +# define COMPILER_ID "XLClang" +# define COMPILER_VERSION_MAJOR DEC(__ibmxl_version__) +# define COMPILER_VERSION_MINOR DEC(__ibmxl_release__) +# define COMPILER_VERSION_PATCH DEC(__ibmxl_modification__) +# define COMPILER_VERSION_TWEAK DEC(__ibmxl_ptf_fix_level__) + + +#elif defined(__IBMCPP__) && !defined(__COMPILER_VER__) && __IBMCPP__ >= 800 +# define COMPILER_ID "XL" + /* __IBMCPP__ = VRP */ +# define COMPILER_VERSION_MAJOR DEC(__IBMCPP__/100) +# define COMPILER_VERSION_MINOR DEC(__IBMCPP__/10 % 10) +# define COMPILER_VERSION_PATCH DEC(__IBMCPP__ % 10) + +#elif defined(__IBMCPP__) && !defined(__COMPILER_VER__) && __IBMCPP__ < 800 +# define COMPILER_ID "VisualAge" + /* __IBMCPP__ = VRP */ +# define COMPILER_VERSION_MAJOR DEC(__IBMCPP__/100) +# define COMPILER_VERSION_MINOR DEC(__IBMCPP__/10 % 10) +# define COMPILER_VERSION_PATCH DEC(__IBMCPP__ % 10) + +#elif defined(__PGI) +# define COMPILER_ID "PGI" +# define COMPILER_VERSION_MAJOR DEC(__PGIC__) +# define COMPILER_VERSION_MINOR DEC(__PGIC_MINOR__) +# if defined(__PGIC_PATCHLEVEL__) +# define COMPILER_VERSION_PATCH DEC(__PGIC_PATCHLEVEL__) +# endif + +#elif defined(_CRAYC) +# define COMPILER_ID "Cray" +# define COMPILER_VERSION_MAJOR DEC(_RELEASE_MAJOR) +# define COMPILER_VERSION_MINOR DEC(_RELEASE_MINOR) + +#elif defined(__TI_COMPILER_VERSION__) +# define COMPILER_ID "TI" + /* __TI_COMPILER_VERSION__ = VVVRRRPPP */ +# define COMPILER_VERSION_MAJOR DEC(__TI_COMPILER_VERSION__/1000000) +# define COMPILER_VERSION_MINOR DEC(__TI_COMPILER_VERSION__/1000 % 1000) +# define COMPILER_VERSION_PATCH DEC(__TI_COMPILER_VERSION__ % 1000) + +#elif defined(__FUJITSU) || defined(__FCC_VERSION) || defined(__fcc_version) +# define COMPILER_ID "Fujitsu" + +#elif defined(__ghs__) +# define COMPILER_ID "GHS" +/* __GHS_VERSION_NUMBER = VVVVRP */ +# ifdef __GHS_VERSION_NUMBER +# define COMPILER_VERSION_MAJOR DEC(__GHS_VERSION_NUMBER / 100) +# define COMPILER_VERSION_MINOR DEC(__GHS_VERSION_NUMBER / 10 % 10) +# define COMPILER_VERSION_PATCH DEC(__GHS_VERSION_NUMBER % 10) +# endif + +#elif defined(__SCO_VERSION__) +# define COMPILER_ID "SCO" + +#elif defined(__ARMCC_VERSION) && !defined(__clang__) +# define COMPILER_ID "ARMCC" +#if __ARMCC_VERSION >= 1000000 + /* __ARMCC_VERSION = VRRPPPP */ + # define COMPILER_VERSION_MAJOR DEC(__ARMCC_VERSION/1000000) + # define COMPILER_VERSION_MINOR DEC(__ARMCC_VERSION/10000 % 100) + # define COMPILER_VERSION_PATCH DEC(__ARMCC_VERSION % 10000) +#else + /* __ARMCC_VERSION = VRPPPP */ + # define COMPILER_VERSION_MAJOR DEC(__ARMCC_VERSION/100000) + # define COMPILER_VERSION_MINOR DEC(__ARMCC_VERSION/10000 % 10) + # define COMPILER_VERSION_PATCH DEC(__ARMCC_VERSION % 10000) +#endif + + +#elif defined(__clang__) && defined(__apple_build_version__) +# define COMPILER_ID "AppleClang" +# if defined(_MSC_VER) +# define SIMULATE_ID "MSVC" +# endif +# define COMPILER_VERSION_MAJOR DEC(__clang_major__) +# define COMPILER_VERSION_MINOR DEC(__clang_minor__) +# define COMPILER_VERSION_PATCH DEC(__clang_patchlevel__) +# if defined(_MSC_VER) + /* _MSC_VER = VVRR */ +# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100) +# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100) +# endif +# define COMPILER_VERSION_TWEAK DEC(__apple_build_version__) + +#elif defined(__clang__) && defined(__ARMCOMPILER_VERSION) +# define COMPILER_ID "ARMClang" + # define COMPILER_VERSION_MAJOR DEC(__ARMCOMPILER_VERSION/1000000) + # define COMPILER_VERSION_MINOR DEC(__ARMCOMPILER_VERSION/10000 % 100) + # define COMPILER_VERSION_PATCH DEC(__ARMCOMPILER_VERSION % 10000) +# define COMPILER_VERSION_INTERNAL DEC(__ARMCOMPILER_VERSION) + +#elif defined(__clang__) +# define COMPILER_ID "Clang" +# if defined(_MSC_VER) +# define SIMULATE_ID "MSVC" +# endif +# define COMPILER_VERSION_MAJOR DEC(__clang_major__) +# define COMPILER_VERSION_MINOR DEC(__clang_minor__) +# define COMPILER_VERSION_PATCH DEC(__clang_patchlevel__) +# if defined(_MSC_VER) + /* _MSC_VER = VVRR */ +# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100) +# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100) +# endif + +#elif defined(__GNUC__) || defined(__GNUG__) +# define COMPILER_ID "GNU" +# if defined(__GNUC__) +# define COMPILER_VERSION_MAJOR DEC(__GNUC__) +# else +# define COMPILER_VERSION_MAJOR DEC(__GNUG__) +# endif +# if defined(__GNUC_MINOR__) +# define COMPILER_VERSION_MINOR DEC(__GNUC_MINOR__) +# endif +# if defined(__GNUC_PATCHLEVEL__) +# define COMPILER_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__) +# endif + +#elif defined(_MSC_VER) +# define COMPILER_ID "MSVC" + /* _MSC_VER = VVRR */ +# define COMPILER_VERSION_MAJOR DEC(_MSC_VER / 100) +# define COMPILER_VERSION_MINOR DEC(_MSC_VER % 100) +# if defined(_MSC_FULL_VER) +# if _MSC_VER >= 1400 + /* _MSC_FULL_VER = VVRRPPPPP */ +# define COMPILER_VERSION_PATCH DEC(_MSC_FULL_VER % 100000) +# else + /* _MSC_FULL_VER = VVRRPPPP */ +# define COMPILER_VERSION_PATCH DEC(_MSC_FULL_VER % 10000) +# endif +# endif +# if defined(_MSC_BUILD) +# define COMPILER_VERSION_TWEAK DEC(_MSC_BUILD) +# endif + +#elif defined(__VISUALDSPVERSION__) || defined(__ADSPBLACKFIN__) || defined(__ADSPTS__) || defined(__ADSP21000__) +# define COMPILER_ID "ADSP" +#if defined(__VISUALDSPVERSION__) + /* __VISUALDSPVERSION__ = 0xVVRRPP00 */ +# define COMPILER_VERSION_MAJOR HEX(__VISUALDSPVERSION__>>24) +# define COMPILER_VERSION_MINOR HEX(__VISUALDSPVERSION__>>16 & 0xFF) +# define COMPILER_VERSION_PATCH HEX(__VISUALDSPVERSION__>>8 & 0xFF) +#endif + +#elif defined(__IAR_SYSTEMS_ICC__) || defined(__IAR_SYSTEMS_ICC) +# define COMPILER_ID "IAR" +# if defined(__VER__) && defined(__ICCARM__) +# define COMPILER_VERSION_MAJOR DEC((__VER__) / 1000000) +# define COMPILER_VERSION_MINOR DEC(((__VER__) / 1000) % 1000) +# define COMPILER_VERSION_PATCH DEC((__VER__) % 1000) +# define COMPILER_VERSION_INTERNAL DEC(__IAR_SYSTEMS_ICC__) +# elif defined(__VER__) && (defined(__ICCAVR__) || defined(__ICCRX__) || defined(__ICCRH850__) || defined(__ICCRL78__) || defined(__ICC430__) || defined(__ICCRISCV__) || defined(__ICCV850__) || defined(__ICC8051__)) +# define COMPILER_VERSION_MAJOR DEC((__VER__) / 100) +# define COMPILER_VERSION_MINOR DEC((__VER__) - (((__VER__) / 100)*100)) +# define COMPILER_VERSION_PATCH DEC(__SUBVERSION__) +# define COMPILER_VERSION_INTERNAL DEC(__IAR_SYSTEMS_ICC__) +# endif + + +/* These compilers are either not known or too old to define an + identification macro. Try to identify the platform and guess that + it is the native compiler. */ +#elif defined(__hpux) || defined(__hpua) +# define COMPILER_ID "HP" + +#else /* unknown compiler */ +# define COMPILER_ID "" +#endif + +/* Construct the string literal in pieces to prevent the source from + getting matched. Store it in a pointer rather than an array + because some compilers will just produce instructions to fill the + array rather than assigning a pointer to a static array. */ +char const* info_compiler = "INFO" ":" "compiler[" COMPILER_ID "]"; +#ifdef SIMULATE_ID +char const* info_simulate = "INFO" ":" "simulate[" SIMULATE_ID "]"; +#endif + +#ifdef __QNXNTO__ +char const* qnxnto = "INFO" ":" "qnxnto[]"; +#endif + +#if defined(__CRAYXE) || defined(__CRAYXC) +char const *info_cray = "INFO" ":" "compiler_wrapper[CrayPrgEnv]"; +#endif + +#define STRINGIFY_HELPER(X) #X +#define STRINGIFY(X) STRINGIFY_HELPER(X) + +/* Identify known platforms by name. */ +#if defined(__linux) || defined(__linux__) || defined(linux) +# define PLATFORM_ID "Linux" + +#elif defined(__CYGWIN__) +# define PLATFORM_ID "Cygwin" + +#elif defined(__MINGW32__) +# define PLATFORM_ID "MinGW" + +#elif defined(__APPLE__) +# define PLATFORM_ID "Darwin" + +#elif defined(_WIN32) || defined(__WIN32__) || defined(WIN32) +# define PLATFORM_ID "Windows" + +#elif defined(__FreeBSD__) || defined(__FreeBSD) +# define PLATFORM_ID "FreeBSD" + +#elif defined(__NetBSD__) || defined(__NetBSD) +# define PLATFORM_ID "NetBSD" + +#elif defined(__OpenBSD__) || defined(__OPENBSD) +# define PLATFORM_ID "OpenBSD" + +#elif defined(__sun) || defined(sun) +# define PLATFORM_ID "SunOS" + +#elif defined(_AIX) || defined(__AIX) || defined(__AIX__) || defined(__aix) || defined(__aix__) +# define PLATFORM_ID "AIX" + +#elif defined(__hpux) || defined(__hpux__) +# define PLATFORM_ID "HP-UX" + +#elif defined(__HAIKU__) +# define PLATFORM_ID "Haiku" + +#elif defined(__BeOS) || defined(__BEOS__) || defined(_BEOS) +# define PLATFORM_ID "BeOS" + +#elif defined(__QNX__) || defined(__QNXNTO__) +# define PLATFORM_ID "QNX" + +#elif defined(__tru64) || defined(_tru64) || defined(__TRU64__) +# define PLATFORM_ID "Tru64" + +#elif defined(__riscos) || defined(__riscos__) +# define PLATFORM_ID "RISCos" + +#elif defined(__sinix) || defined(__sinix__) || defined(__SINIX__) +# define PLATFORM_ID "SINIX" + +#elif defined(__UNIX_SV__) +# define PLATFORM_ID "UNIX_SV" + +#elif defined(__bsdos__) +# define PLATFORM_ID "BSDOS" + +#elif defined(_MPRAS) || defined(MPRAS) +# define PLATFORM_ID "MP-RAS" + +#elif defined(__osf) || defined(__osf__) +# define PLATFORM_ID "OSF1" + +#elif defined(_SCO_SV) || defined(SCO_SV) || defined(sco_sv) +# define PLATFORM_ID "SCO_SV" + +#elif defined(__ultrix) || defined(__ultrix__) || defined(_ULTRIX) +# define PLATFORM_ID "ULTRIX" + +#elif defined(__XENIX__) || defined(_XENIX) || defined(XENIX) +# define PLATFORM_ID "Xenix" + +#elif defined(__WATCOMC__) +# if defined(__LINUX__) +# define PLATFORM_ID "Linux" + +# elif defined(__DOS__) +# define PLATFORM_ID "DOS" + +# elif defined(__OS2__) +# define PLATFORM_ID "OS2" + +# elif defined(__WINDOWS__) +# define PLATFORM_ID "Windows3x" + +# else /* unknown platform */ +# define PLATFORM_ID +# endif + +#elif defined(__INTEGRITY) +# if defined(INT_178B) +# define PLATFORM_ID "Integrity178" + +# else /* regular Integrity */ +# define PLATFORM_ID "Integrity" +# endif + +#else /* unknown platform */ +# define PLATFORM_ID + +#endif + +/* For windows compilers MSVC and Intel we can determine + the architecture of the compiler being used. This is because + the compilers do not have flags that can change the architecture, + but rather depend on which compiler is being used +*/ +#if defined(_WIN32) && defined(_MSC_VER) +# if defined(_M_IA64) +# define ARCHITECTURE_ID "IA64" + +# elif defined(_M_X64) || defined(_M_AMD64) +# define ARCHITECTURE_ID "x64" + +# elif defined(_M_IX86) +# define ARCHITECTURE_ID "X86" + +# elif defined(_M_ARM64) +# define ARCHITECTURE_ID "ARM64" + +# elif defined(_M_ARM) +# if _M_ARM == 4 +# define ARCHITECTURE_ID "ARMV4I" +# elif _M_ARM == 5 +# define ARCHITECTURE_ID "ARMV5I" +# else +# define ARCHITECTURE_ID "ARMV" STRINGIFY(_M_ARM) +# endif + +# elif defined(_M_MIPS) +# define ARCHITECTURE_ID "MIPS" + +# elif defined(_M_SH) +# define ARCHITECTURE_ID "SHx" + +# else /* unknown architecture */ +# define ARCHITECTURE_ID "" +# endif + +#elif defined(__WATCOMC__) +# if defined(_M_I86) +# define ARCHITECTURE_ID "I86" + +# elif defined(_M_IX86) +# define ARCHITECTURE_ID "X86" + +# else /* unknown architecture */ +# define ARCHITECTURE_ID "" +# endif + +#elif defined(__IAR_SYSTEMS_ICC__) || defined(__IAR_SYSTEMS_ICC) +# if defined(__ICCARM__) +# define ARCHITECTURE_ID "ARM" + +# elif defined(__ICCRX__) +# define ARCHITECTURE_ID "RX" + +# elif defined(__ICCRH850__) +# define ARCHITECTURE_ID "RH850" + +# elif defined(__ICCRL78__) +# define ARCHITECTURE_ID "RL78" + +# elif defined(__ICCRISCV__) +# define ARCHITECTURE_ID "RISCV" + +# elif defined(__ICCAVR__) +# define ARCHITECTURE_ID "AVR" + +# elif defined(__ICC430__) +# define ARCHITECTURE_ID "MSP430" + +# elif defined(__ICCV850__) +# define ARCHITECTURE_ID "V850" + +# elif defined(__ICC8051__) +# define ARCHITECTURE_ID "8051" + +# else /* unknown architecture */ +# define ARCHITECTURE_ID "" +# endif + +#elif defined(__ghs__) +# if defined(__PPC64__) +# define ARCHITECTURE_ID "PPC64" + +# elif defined(__ppc__) +# define ARCHITECTURE_ID "PPC" + +# elif defined(__ARM__) +# define ARCHITECTURE_ID "ARM" + +# elif defined(__x86_64__) +# define ARCHITECTURE_ID "x64" + +# elif defined(__i386__) +# define ARCHITECTURE_ID "X86" + +# else /* unknown architecture */ +# define ARCHITECTURE_ID "" +# endif +#else +# define ARCHITECTURE_ID +#endif + +/* Convert integer to decimal digit literals. */ +#define DEC(n) \ + ('0' + (((n) / 10000000)%10)), \ + ('0' + (((n) / 1000000)%10)), \ + ('0' + (((n) / 100000)%10)), \ + ('0' + (((n) / 10000)%10)), \ + ('0' + (((n) / 1000)%10)), \ + ('0' + (((n) / 100)%10)), \ + ('0' + (((n) / 10)%10)), \ + ('0' + ((n) % 10)) + +/* Convert integer to hex digit literals. */ +#define HEX(n) \ + ('0' + ((n)>>28 & 0xF)), \ + ('0' + ((n)>>24 & 0xF)), \ + ('0' + ((n)>>20 & 0xF)), \ + ('0' + ((n)>>16 & 0xF)), \ + ('0' + ((n)>>12 & 0xF)), \ + ('0' + ((n)>>8 & 0xF)), \ + ('0' + ((n)>>4 & 0xF)), \ + ('0' + ((n) & 0xF)) + +/* Construct a string literal encoding the version number components. */ +#ifdef COMPILER_VERSION_MAJOR +char const info_version[] = { + 'I', 'N', 'F', 'O', ':', + 'c','o','m','p','i','l','e','r','_','v','e','r','s','i','o','n','[', + COMPILER_VERSION_MAJOR, +# ifdef COMPILER_VERSION_MINOR + '.', COMPILER_VERSION_MINOR, +# ifdef COMPILER_VERSION_PATCH + '.', COMPILER_VERSION_PATCH, +# ifdef COMPILER_VERSION_TWEAK + '.', COMPILER_VERSION_TWEAK, +# endif +# endif +# endif + ']','\0'}; +#endif + +/* Construct a string literal encoding the internal version number. */ +#ifdef COMPILER_VERSION_INTERNAL +char const info_version_internal[] = { + 'I', 'N', 'F', 'O', ':', + 'c','o','m','p','i','l','e','r','_','v','e','r','s','i','o','n','_', + 'i','n','t','e','r','n','a','l','[', + COMPILER_VERSION_INTERNAL,']','\0'}; +#endif + +/* Construct a string literal encoding the version number components. */ +#ifdef SIMULATE_VERSION_MAJOR +char const info_simulate_version[] = { + 'I', 'N', 'F', 'O', ':', + 's','i','m','u','l','a','t','e','_','v','e','r','s','i','o','n','[', + SIMULATE_VERSION_MAJOR, +# ifdef SIMULATE_VERSION_MINOR + '.', SIMULATE_VERSION_MINOR, +# ifdef SIMULATE_VERSION_PATCH + '.', SIMULATE_VERSION_PATCH, +# ifdef SIMULATE_VERSION_TWEAK + '.', SIMULATE_VERSION_TWEAK, +# endif +# endif +# endif + ']','\0'}; +#endif + +/* Construct the string literal in pieces to prevent the source from + getting matched. Store it in a pointer rather than an array + because some compilers will just produce instructions to fill the + array rather than assigning a pointer to a static array. */ +char const* info_platform = "INFO" ":" "platform[" PLATFORM_ID "]"; +char const* info_arch = "INFO" ":" "arch[" ARCHITECTURE_ID "]"; + + + + +#if defined(__INTEL_COMPILER) && defined(_MSVC_LANG) && _MSVC_LANG < 201403L +# if defined(__INTEL_CXX11_MODE__) +# if defined(__cpp_aggregate_nsdmi) +# define CXX_STD 201402L +# else +# define CXX_STD 201103L +# endif +# else +# define CXX_STD 199711L +# endif +#elif defined(_MSC_VER) && defined(_MSVC_LANG) +# define CXX_STD _MSVC_LANG +#else +# define CXX_STD __cplusplus +#endif + +const char* info_language_dialect_default = "INFO" ":" "dialect_default[" +#if CXX_STD > 201703L + "20" +#elif CXX_STD >= 201703L + "17" +#elif CXX_STD >= 201402L + "14" +#elif CXX_STD >= 201103L + "11" +#else + "98" +#endif +"]"; + +/*--------------------------------------------------------------------------*/ + +int main(int argc, char* argv[]) +{ + int require = 0; + require += info_compiler[argc]; + require += info_platform[argc]; +#ifdef COMPILER_VERSION_MAJOR + require += info_version[argc]; +#endif +#ifdef COMPILER_VERSION_INTERNAL + require += info_version_internal[argc]; +#endif +#ifdef SIMULATE_ID + require += info_simulate[argc]; +#endif +#ifdef SIMULATE_VERSION_MAJOR + require += info_simulate_version[argc]; +#endif +#if defined(__CRAYXE) || defined(__CRAYXC) + require += info_cray[argc]; +#endif + require += info_language_dialect_default[argc]; + (void)argv; + return require; +} diff --git a/userspace/CMakeFiles/3.16.3/CompilerIdCXX/a.out b/userspace/CMakeFiles/3.16.3/CompilerIdCXX/a.out new file mode 100755 index 0000000000000000000000000000000000000000..34ec4a035bbb8902315ba9a0b3b352eb275bc2d7 GIT binary patch literal 16720 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 literal 0 HcmV?d00001 diff --git a/userspace/CMakeFiles/CMakeDirectoryInformation.cmake b/userspace/CMakeFiles/CMakeDirectoryInformation.cmake new file mode 100644 index 0000000..2e23aef --- /dev/null +++ b/userspace/CMakeFiles/CMakeDirectoryInformation.cmake @@ -0,0 +1,16 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.16 + +# Relative path conversion top directories. +set(CMAKE_RELATIVE_PATH_TOP_SOURCE "/home/wandog/workspace/missile_related/ml-driver/userspace") +set(CMAKE_RELATIVE_PATH_TOP_BINARY "/home/wandog/workspace/missile_related/ml-driver/userspace") + +# Force unix paths in dependencies. +set(CMAKE_FORCE_UNIX_PATHS 1) + + +# The C and CXX include file regular expressions for this directory. +set(CMAKE_C_INCLUDE_REGEX_SCAN "^.*$") +set(CMAKE_C_INCLUDE_REGEX_COMPLAIN "^$") +set(CMAKE_CXX_INCLUDE_REGEX_SCAN ${CMAKE_C_INCLUDE_REGEX_SCAN}) +set(CMAKE_CXX_INCLUDE_REGEX_COMPLAIN ${CMAKE_C_INCLUDE_REGEX_COMPLAIN}) diff --git a/userspace/CMakeFiles/CMakeOutput.log b/userspace/CMakeFiles/CMakeOutput.log new file mode 100644 index 0000000..3b8eb3e --- /dev/null +++ b/userspace/CMakeFiles/CMakeOutput.log @@ -0,0 +1,461 @@ +The system is: Linux - 5.4.0-139-generic - x86_64 +Compiling the C compiler identification source file "CMakeCCompilerId.c" succeeded. +Compiler: /usr/bin/cc +Build flags: +Id flags: + +The output was: +0 + + +Compilation of the C compiler identification source "CMakeCCompilerId.c" produced "a.out" + +The C compiler identification is GNU, found in "/home/wandog/workspace/missile_related/ml-driver/userspace/CMakeFiles/3.16.3/CompilerIdC/a.out" + +Compiling the CXX compiler identification source file "CMakeCXXCompilerId.cpp" succeeded. +Compiler: /usr/bin/c++ +Build flags: +Id flags: + +The output was: +0 + + +Compilation of the CXX compiler identification source "CMakeCXXCompilerId.cpp" produced "a.out" + +The CXX compiler identification is GNU, found in "/home/wandog/workspace/missile_related/ml-driver/userspace/CMakeFiles/3.16.3/CompilerIdCXX/a.out" + +Determining if the C compiler works passed with the following output: +Change Dir: /home/wandog/workspace/missile_related/ml-driver/userspace/CMakeFiles/CMakeTmp + +Run Build Command(s):/usr/bin/make cmTC_dce55/fast && /usr/bin/make -f CMakeFiles/cmTC_dce55.dir/build.make CMakeFiles/cmTC_dce55.dir/build +make[1]: Entering directory '/home/wandog/workspace/missile_related/ml-driver/userspace/CMakeFiles/CMakeTmp' +Building C object CMakeFiles/cmTC_dce55.dir/testCCompiler.c.o +/usr/bin/cc -o CMakeFiles/cmTC_dce55.dir/testCCompiler.c.o -c /home/wandog/workspace/missile_related/ml-driver/userspace/CMakeFiles/CMakeTmp/testCCompiler.c +Linking C executable cmTC_dce55 +/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_dce55.dir/link.txt --verbose=1 +/usr/bin/cc CMakeFiles/cmTC_dce55.dir/testCCompiler.c.o -o cmTC_dce55 +make[1]: Leaving directory '/home/wandog/workspace/missile_related/ml-driver/userspace/CMakeFiles/CMakeTmp' + + + +Detecting C compiler ABI info compiled with the following output: +Change Dir: /home/wandog/workspace/missile_related/ml-driver/userspace/CMakeFiles/CMakeTmp + +Run Build Command(s):/usr/bin/make cmTC_bdbb4/fast && /usr/bin/make -f CMakeFiles/cmTC_bdbb4.dir/build.make CMakeFiles/cmTC_bdbb4.dir/build +make[1]: Entering directory '/home/wandog/workspace/missile_related/ml-driver/userspace/CMakeFiles/CMakeTmp' +Building C object CMakeFiles/cmTC_bdbb4.dir/CMakeCCompilerABI.c.o +/usr/bin/cc -v -o CMakeFiles/cmTC_bdbb4.dir/CMakeCCompilerABI.c.o -c /usr/share/cmake-3.16/Modules/CMakeCCompilerABI.c +Using built-in specs. +COLLECT_GCC=/usr/bin/cc +OFFLOAD_TARGET_NAMES=nvptx-none:hsa +OFFLOAD_TARGET_DEFAULT=1 +Target: x86_64-linux-gnu +Configured with: ../src/configure -v --with-pkgversion='Ubuntu 9.4.0-1ubuntu1~20.04.1' --with-bugurl=file:///usr/share/doc/gcc-9/README.Bugs --enable-languages=c,ada,c++,go,brig,d,fortran,objc,obj-c++,gm2 --prefix=/usr --with-gcc-major-version-only --program-suffix=-9 --program-prefix=x86_64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-vtable-verify --enable-plugin --enable-default-pie --with-system-zlib --with-target-system-zlib=auto --enable-objc-gc=auto --enable-multiarch --disable-werror --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64,mx32 --enable-multilib --with-tune=generic --enable-offload-targets=nvptx-none=/build/gcc-9-Av3uEd/gcc-9-9.4.0/debian/tmp-nvptx/usr,hsa --without-cuda-driver --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu +Thread model: posix +gcc version 9.4.0 (Ubuntu 9.4.0-1ubuntu1~20.04.1) +COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_bdbb4.dir/CMakeCCompilerABI.c.o' '-c' '-mtune=generic' '-march=x86-64' + /usr/lib/gcc/x86_64-linux-gnu/9/cc1 -quiet -v -imultiarch x86_64-linux-gnu /usr/share/cmake-3.16/Modules/CMakeCCompilerABI.c -quiet -dumpbase CMakeCCompilerABI.c -mtune=generic -march=x86-64 -auxbase-strip CMakeFiles/cmTC_bdbb4.dir/CMakeCCompilerABI.c.o -version -fasynchronous-unwind-tables -fstack-protector-strong -Wformat -Wformat-security -fstack-clash-protection -fcf-protection -o /tmp/cckWyolY.s +GNU C17 (Ubuntu 9.4.0-1ubuntu1~20.04.1) version 9.4.0 (x86_64-linux-gnu) + compiled by GNU C version 9.4.0, GMP version 6.2.0, MPFR version 4.0.2, MPC version 1.1.0, isl version isl-0.22.1-GMP + +GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072 +ignoring nonexistent directory "/usr/local/include/x86_64-linux-gnu" +ignoring nonexistent directory "/usr/lib/gcc/x86_64-linux-gnu/9/include-fixed" +ignoring nonexistent directory "/usr/lib/gcc/x86_64-linux-gnu/9/../../../../x86_64-linux-gnu/include" +#include "..." search starts here: +#include <...> search starts here: + /usr/lib/gcc/x86_64-linux-gnu/9/include + /usr/local/include + /usr/include/x86_64-linux-gnu + /usr/include +End of search list. +GNU C17 (Ubuntu 9.4.0-1ubuntu1~20.04.1) version 9.4.0 (x86_64-linux-gnu) + compiled by GNU C version 9.4.0, GMP version 6.2.0, MPFR version 4.0.2, MPC version 1.1.0, isl version isl-0.22.1-GMP + +GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072 +Compiler executable checksum: c0c95c0b4209efec1c1892d5ff24030b +COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_bdbb4.dir/CMakeCCompilerABI.c.o' '-c' '-mtune=generic' '-march=x86-64' + as -v --64 -o CMakeFiles/cmTC_bdbb4.dir/CMakeCCompilerABI.c.o /tmp/cckWyolY.s +GNU assembler version 2.34 (x86_64-linux-gnu) using BFD version (GNU Binutils for Ubuntu) 2.34 +COMPILER_PATH=/usr/lib/gcc/x86_64-linux-gnu/9/:/usr/lib/gcc/x86_64-linux-gnu/9/:/usr/lib/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/9/:/usr/lib/gcc/x86_64-linux-gnu/ +LIBRARY_PATH=/usr/lib/gcc/x86_64-linux-gnu/9/:/usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/9/../../../../lib/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/9/../../../:/lib/:/usr/lib/ +COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_bdbb4.dir/CMakeCCompilerABI.c.o' '-c' '-mtune=generic' '-march=x86-64' +Linking C executable cmTC_bdbb4 +/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_bdbb4.dir/link.txt --verbose=1 +/usr/bin/cc -v CMakeFiles/cmTC_bdbb4.dir/CMakeCCompilerABI.c.o -o cmTC_bdbb4 +Using built-in specs. +COLLECT_GCC=/usr/bin/cc +COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/9/lto-wrapper +OFFLOAD_TARGET_NAMES=nvptx-none:hsa +OFFLOAD_TARGET_DEFAULT=1 +Target: x86_64-linux-gnu +Configured with: ../src/configure -v --with-pkgversion='Ubuntu 9.4.0-1ubuntu1~20.04.1' --with-bugurl=file:///usr/share/doc/gcc-9/README.Bugs --enable-languages=c,ada,c++,go,brig,d,fortran,objc,obj-c++,gm2 --prefix=/usr --with-gcc-major-version-only --program-suffix=-9 --program-prefix=x86_64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-vtable-verify --enable-plugin --enable-default-pie --with-system-zlib --with-target-system-zlib=auto --enable-objc-gc=auto --enable-multiarch --disable-werror --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64,mx32 --enable-multilib --with-tune=generic --enable-offload-targets=nvptx-none=/build/gcc-9-Av3uEd/gcc-9-9.4.0/debian/tmp-nvptx/usr,hsa --without-cuda-driver --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu +Thread model: posix +gcc version 9.4.0 (Ubuntu 9.4.0-1ubuntu1~20.04.1) +COMPILER_PATH=/usr/lib/gcc/x86_64-linux-gnu/9/:/usr/lib/gcc/x86_64-linux-gnu/9/:/usr/lib/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/9/:/usr/lib/gcc/x86_64-linux-gnu/ +LIBRARY_PATH=/usr/lib/gcc/x86_64-linux-gnu/9/:/usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/9/../../../../lib/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/9/../../../:/lib/:/usr/lib/ +COLLECT_GCC_OPTIONS='-v' '-o' 'cmTC_bdbb4' '-mtune=generic' '-march=x86-64' + /usr/lib/gcc/x86_64-linux-gnu/9/collect2 -plugin /usr/lib/gcc/x86_64-linux-gnu/9/liblto_plugin.so -plugin-opt=/usr/lib/gcc/x86_64-linux-gnu/9/lto-wrapper -plugin-opt=-fresolution=/tmp/ccefBexn.res -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lgcc_s --build-id --eh-frame-hdr -m elf_x86_64 --hash-style=gnu --as-needed -dynamic-linker /lib64/ld-linux-x86-64.so.2 -pie -z now -z relro -o cmTC_bdbb4 /usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu/Scrt1.o /usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu/crti.o /usr/lib/gcc/x86_64-linux-gnu/9/crtbeginS.o -L/usr/lib/gcc/x86_64-linux-gnu/9 -L/usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/9/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/9/../../.. CMakeFiles/cmTC_bdbb4.dir/CMakeCCompilerABI.c.o -lgcc --push-state --as-needed -lgcc_s --pop-state -lc -lgcc --push-state --as-needed -lgcc_s --pop-state /usr/lib/gcc/x86_64-linux-gnu/9/crtendS.o /usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu/crtn.o +COLLECT_GCC_OPTIONS='-v' '-o' 'cmTC_bdbb4' '-mtune=generic' '-march=x86-64' +make[1]: Leaving directory '/home/wandog/workspace/missile_related/ml-driver/userspace/CMakeFiles/CMakeTmp' + + + +Parsed C implicit include dir info from above output: rv=done + found start of include info + found start of implicit include info + add: [/usr/lib/gcc/x86_64-linux-gnu/9/include] + add: [/usr/local/include] + add: [/usr/include/x86_64-linux-gnu] + add: [/usr/include] + end of search list found + collapse include dir [/usr/lib/gcc/x86_64-linux-gnu/9/include] ==> [/usr/lib/gcc/x86_64-linux-gnu/9/include] + collapse include dir [/usr/local/include] ==> [/usr/local/include] + collapse include dir [/usr/include/x86_64-linux-gnu] ==> [/usr/include/x86_64-linux-gnu] + collapse include dir [/usr/include] ==> [/usr/include] + implicit include dirs: [/usr/lib/gcc/x86_64-linux-gnu/9/include;/usr/local/include;/usr/include/x86_64-linux-gnu;/usr/include] + + +Parsed C implicit link information from above output: + link line regex: [^( *|.*[/\])(ld|CMAKE_LINK_STARTFILE-NOTFOUND|([^/\]+-)?ld|collect2)[^/\]*( |$)] + ignore line: [Change Dir: /home/wandog/workspace/missile_related/ml-driver/userspace/CMakeFiles/CMakeTmp] + ignore line: [] + ignore line: [Run Build Command(s):/usr/bin/make cmTC_bdbb4/fast && /usr/bin/make -f CMakeFiles/cmTC_bdbb4.dir/build.make CMakeFiles/cmTC_bdbb4.dir/build] + ignore line: [make[1]: Entering directory '/home/wandog/workspace/missile_related/ml-driver/userspace/CMakeFiles/CMakeTmp'] + ignore line: [Building C object CMakeFiles/cmTC_bdbb4.dir/CMakeCCompilerABI.c.o] + ignore line: [/usr/bin/cc -v -o CMakeFiles/cmTC_bdbb4.dir/CMakeCCompilerABI.c.o -c /usr/share/cmake-3.16/Modules/CMakeCCompilerABI.c] + ignore line: [Using built-in specs.] + ignore line: [COLLECT_GCC=/usr/bin/cc] + ignore line: [OFFLOAD_TARGET_NAMES=nvptx-none:hsa] + ignore line: [OFFLOAD_TARGET_DEFAULT=1] + ignore line: [Target: x86_64-linux-gnu] + ignore line: [Configured with: ../src/configure -v --with-pkgversion='Ubuntu 9.4.0-1ubuntu1~20.04.1' --with-bugurl=file:///usr/share/doc/gcc-9/README.Bugs --enable-languages=c ada c++ go brig d fortran objc obj-c++ gm2 --prefix=/usr --with-gcc-major-version-only --program-suffix=-9 --program-prefix=x86_64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-vtable-verify --enable-plugin --enable-default-pie --with-system-zlib --with-target-system-zlib=auto --enable-objc-gc=auto --enable-multiarch --disable-werror --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32 m64 mx32 --enable-multilib --with-tune=generic --enable-offload-targets=nvptx-none=/build/gcc-9-Av3uEd/gcc-9-9.4.0/debian/tmp-nvptx/usr hsa --without-cuda-driver --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu] + ignore line: [Thread model: posix] + ignore line: [gcc version 9.4.0 (Ubuntu 9.4.0-1ubuntu1~20.04.1) ] + ignore line: [COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_bdbb4.dir/CMakeCCompilerABI.c.o' '-c' '-mtune=generic' '-march=x86-64'] + ignore line: [ /usr/lib/gcc/x86_64-linux-gnu/9/cc1 -quiet -v -imultiarch x86_64-linux-gnu /usr/share/cmake-3.16/Modules/CMakeCCompilerABI.c -quiet -dumpbase CMakeCCompilerABI.c -mtune=generic -march=x86-64 -auxbase-strip CMakeFiles/cmTC_bdbb4.dir/CMakeCCompilerABI.c.o -version -fasynchronous-unwind-tables -fstack-protector-strong -Wformat -Wformat-security -fstack-clash-protection -fcf-protection -o /tmp/cckWyolY.s] + ignore line: [GNU C17 (Ubuntu 9.4.0-1ubuntu1~20.04.1) version 9.4.0 (x86_64-linux-gnu)] + ignore line: [ compiled by GNU C version 9.4.0 GMP version 6.2.0 MPFR version 4.0.2 MPC version 1.1.0 isl version isl-0.22.1-GMP] + ignore line: [] + ignore line: [GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072] + ignore line: [ignoring nonexistent directory "/usr/local/include/x86_64-linux-gnu"] + ignore line: [ignoring nonexistent directory "/usr/lib/gcc/x86_64-linux-gnu/9/include-fixed"] + ignore line: [ignoring nonexistent directory "/usr/lib/gcc/x86_64-linux-gnu/9/../../../../x86_64-linux-gnu/include"] + ignore line: [#include "..." search starts here:] + ignore line: [#include <...> search starts here:] + ignore line: [ /usr/lib/gcc/x86_64-linux-gnu/9/include] + ignore line: [ /usr/local/include] + ignore line: [ /usr/include/x86_64-linux-gnu] + ignore line: [ /usr/include] + ignore line: [End of search list.] + ignore line: [GNU C17 (Ubuntu 9.4.0-1ubuntu1~20.04.1) version 9.4.0 (x86_64-linux-gnu)] + ignore line: [ compiled by GNU C version 9.4.0 GMP version 6.2.0 MPFR version 4.0.2 MPC version 1.1.0 isl version isl-0.22.1-GMP] + ignore line: [] + ignore line: [GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072] + ignore line: [Compiler executable checksum: c0c95c0b4209efec1c1892d5ff24030b] + ignore line: [COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_bdbb4.dir/CMakeCCompilerABI.c.o' '-c' '-mtune=generic' '-march=x86-64'] + ignore line: [ as -v --64 -o CMakeFiles/cmTC_bdbb4.dir/CMakeCCompilerABI.c.o /tmp/cckWyolY.s] + ignore line: [GNU assembler version 2.34 (x86_64-linux-gnu) using BFD version (GNU Binutils for Ubuntu) 2.34] + ignore line: [COMPILER_PATH=/usr/lib/gcc/x86_64-linux-gnu/9/:/usr/lib/gcc/x86_64-linux-gnu/9/:/usr/lib/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/9/:/usr/lib/gcc/x86_64-linux-gnu/] + ignore line: [LIBRARY_PATH=/usr/lib/gcc/x86_64-linux-gnu/9/:/usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/9/../../../../lib/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/9/../../../:/lib/:/usr/lib/] + ignore line: [COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_bdbb4.dir/CMakeCCompilerABI.c.o' '-c' '-mtune=generic' '-march=x86-64'] + ignore line: [Linking C executable cmTC_bdbb4] + ignore line: [/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_bdbb4.dir/link.txt --verbose=1] + ignore line: [/usr/bin/cc -v CMakeFiles/cmTC_bdbb4.dir/CMakeCCompilerABI.c.o -o cmTC_bdbb4 ] + ignore line: [Using built-in specs.] + ignore line: [COLLECT_GCC=/usr/bin/cc] + ignore line: [COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/9/lto-wrapper] + ignore line: [OFFLOAD_TARGET_NAMES=nvptx-none:hsa] + ignore line: [OFFLOAD_TARGET_DEFAULT=1] + ignore line: [Target: x86_64-linux-gnu] + ignore line: [Configured with: ../src/configure -v --with-pkgversion='Ubuntu 9.4.0-1ubuntu1~20.04.1' --with-bugurl=file:///usr/share/doc/gcc-9/README.Bugs --enable-languages=c ada c++ go brig d fortran objc obj-c++ gm2 --prefix=/usr --with-gcc-major-version-only --program-suffix=-9 --program-prefix=x86_64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-vtable-verify --enable-plugin --enable-default-pie --with-system-zlib --with-target-system-zlib=auto --enable-objc-gc=auto --enable-multiarch --disable-werror --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32 m64 mx32 --enable-multilib --with-tune=generic --enable-offload-targets=nvptx-none=/build/gcc-9-Av3uEd/gcc-9-9.4.0/debian/tmp-nvptx/usr hsa --without-cuda-driver --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu] + ignore line: [Thread model: posix] + ignore line: [gcc version 9.4.0 (Ubuntu 9.4.0-1ubuntu1~20.04.1) ] + ignore line: [COMPILER_PATH=/usr/lib/gcc/x86_64-linux-gnu/9/:/usr/lib/gcc/x86_64-linux-gnu/9/:/usr/lib/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/9/:/usr/lib/gcc/x86_64-linux-gnu/] + ignore line: [LIBRARY_PATH=/usr/lib/gcc/x86_64-linux-gnu/9/:/usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/9/../../../../lib/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/9/../../../:/lib/:/usr/lib/] + ignore line: [COLLECT_GCC_OPTIONS='-v' '-o' 'cmTC_bdbb4' '-mtune=generic' '-march=x86-64'] + link line: [ /usr/lib/gcc/x86_64-linux-gnu/9/collect2 -plugin /usr/lib/gcc/x86_64-linux-gnu/9/liblto_plugin.so -plugin-opt=/usr/lib/gcc/x86_64-linux-gnu/9/lto-wrapper -plugin-opt=-fresolution=/tmp/ccefBexn.res -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lgcc_s --build-id --eh-frame-hdr -m elf_x86_64 --hash-style=gnu --as-needed -dynamic-linker /lib64/ld-linux-x86-64.so.2 -pie -z now -z relro -o cmTC_bdbb4 /usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu/Scrt1.o /usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu/crti.o /usr/lib/gcc/x86_64-linux-gnu/9/crtbeginS.o -L/usr/lib/gcc/x86_64-linux-gnu/9 -L/usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/9/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/9/../../.. CMakeFiles/cmTC_bdbb4.dir/CMakeCCompilerABI.c.o -lgcc --push-state --as-needed -lgcc_s --pop-state -lc -lgcc --push-state --as-needed -lgcc_s --pop-state /usr/lib/gcc/x86_64-linux-gnu/9/crtendS.o /usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu/crtn.o] + arg [/usr/lib/gcc/x86_64-linux-gnu/9/collect2] ==> ignore + arg [-plugin] ==> ignore + arg [/usr/lib/gcc/x86_64-linux-gnu/9/liblto_plugin.so] ==> ignore + arg [-plugin-opt=/usr/lib/gcc/x86_64-linux-gnu/9/lto-wrapper] ==> ignore + arg [-plugin-opt=-fresolution=/tmp/ccefBexn.res] ==> ignore + arg [-plugin-opt=-pass-through=-lgcc] ==> ignore + arg [-plugin-opt=-pass-through=-lgcc_s] ==> ignore + arg [-plugin-opt=-pass-through=-lc] ==> ignore + arg [-plugin-opt=-pass-through=-lgcc] ==> ignore + arg [-plugin-opt=-pass-through=-lgcc_s] ==> ignore + arg [--build-id] ==> ignore + arg [--eh-frame-hdr] ==> ignore + arg [-m] ==> ignore + arg [elf_x86_64] ==> ignore + arg [--hash-style=gnu] ==> ignore + arg [--as-needed] ==> ignore + arg [-dynamic-linker] ==> ignore + arg [/lib64/ld-linux-x86-64.so.2] ==> ignore + arg [-pie] ==> ignore + arg [-znow] ==> ignore + arg [-zrelro] ==> ignore + arg [-o] ==> ignore + arg [cmTC_bdbb4] ==> ignore + arg [/usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu/Scrt1.o] ==> ignore + arg [/usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu/crti.o] ==> ignore + arg [/usr/lib/gcc/x86_64-linux-gnu/9/crtbeginS.o] ==> ignore + arg [-L/usr/lib/gcc/x86_64-linux-gnu/9] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/9] + arg [-L/usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu] + arg [-L/usr/lib/gcc/x86_64-linux-gnu/9/../../../../lib] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/9/../../../../lib] + arg [-L/lib/x86_64-linux-gnu] ==> dir [/lib/x86_64-linux-gnu] + arg [-L/lib/../lib] ==> dir [/lib/../lib] + arg [-L/usr/lib/x86_64-linux-gnu] ==> dir [/usr/lib/x86_64-linux-gnu] + arg [-L/usr/lib/../lib] ==> dir [/usr/lib/../lib] + arg [-L/usr/lib/gcc/x86_64-linux-gnu/9/../../..] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/9/../../..] + arg [CMakeFiles/cmTC_bdbb4.dir/CMakeCCompilerABI.c.o] ==> ignore + arg [-lgcc] ==> lib [gcc] + arg [--push-state] ==> ignore + arg [--as-needed] ==> ignore + arg [-lgcc_s] ==> lib [gcc_s] + arg [--pop-state] ==> ignore + arg [-lc] ==> lib [c] + arg [-lgcc] ==> lib [gcc] + arg [--push-state] ==> ignore + arg [--as-needed] ==> ignore + arg [-lgcc_s] ==> lib [gcc_s] + arg [--pop-state] ==> ignore + arg [/usr/lib/gcc/x86_64-linux-gnu/9/crtendS.o] ==> ignore + arg [/usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu/crtn.o] ==> ignore + collapse library dir [/usr/lib/gcc/x86_64-linux-gnu/9] ==> [/usr/lib/gcc/x86_64-linux-gnu/9] + collapse library dir [/usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu] ==> [/usr/lib/x86_64-linux-gnu] + collapse library dir [/usr/lib/gcc/x86_64-linux-gnu/9/../../../../lib] ==> [/usr/lib] + collapse library dir [/lib/x86_64-linux-gnu] ==> [/lib/x86_64-linux-gnu] + collapse library dir [/lib/../lib] ==> [/lib] + collapse library dir [/usr/lib/x86_64-linux-gnu] ==> [/usr/lib/x86_64-linux-gnu] + collapse library dir [/usr/lib/../lib] ==> [/usr/lib] + collapse library dir [/usr/lib/gcc/x86_64-linux-gnu/9/../../..] ==> [/usr/lib] + implicit libs: [gcc;gcc_s;c;gcc;gcc_s] + implicit dirs: [/usr/lib/gcc/x86_64-linux-gnu/9;/usr/lib/x86_64-linux-gnu;/usr/lib;/lib/x86_64-linux-gnu;/lib] + implicit fwks: [] + + +Determining if the CXX compiler works passed with the following output: +Change Dir: /home/wandog/workspace/missile_related/ml-driver/userspace/CMakeFiles/CMakeTmp + +Run Build Command(s):/usr/bin/make cmTC_37d8d/fast && /usr/bin/make -f CMakeFiles/cmTC_37d8d.dir/build.make CMakeFiles/cmTC_37d8d.dir/build +make[1]: Entering directory '/home/wandog/workspace/missile_related/ml-driver/userspace/CMakeFiles/CMakeTmp' +Building CXX object CMakeFiles/cmTC_37d8d.dir/testCXXCompiler.cxx.o +/usr/bin/c++ -o CMakeFiles/cmTC_37d8d.dir/testCXXCompiler.cxx.o -c /home/wandog/workspace/missile_related/ml-driver/userspace/CMakeFiles/CMakeTmp/testCXXCompiler.cxx +Linking CXX executable cmTC_37d8d +/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_37d8d.dir/link.txt --verbose=1 +/usr/bin/c++ CMakeFiles/cmTC_37d8d.dir/testCXXCompiler.cxx.o -o cmTC_37d8d +make[1]: Leaving directory '/home/wandog/workspace/missile_related/ml-driver/userspace/CMakeFiles/CMakeTmp' + + + +Detecting CXX compiler ABI info compiled with the following output: +Change Dir: /home/wandog/workspace/missile_related/ml-driver/userspace/CMakeFiles/CMakeTmp + +Run Build Command(s):/usr/bin/make cmTC_3ece1/fast && /usr/bin/make -f CMakeFiles/cmTC_3ece1.dir/build.make CMakeFiles/cmTC_3ece1.dir/build +make[1]: Entering directory '/home/wandog/workspace/missile_related/ml-driver/userspace/CMakeFiles/CMakeTmp' +Building CXX object CMakeFiles/cmTC_3ece1.dir/CMakeCXXCompilerABI.cpp.o +/usr/bin/c++ -v -o CMakeFiles/cmTC_3ece1.dir/CMakeCXXCompilerABI.cpp.o -c /usr/share/cmake-3.16/Modules/CMakeCXXCompilerABI.cpp +Using built-in specs. +COLLECT_GCC=/usr/bin/c++ +OFFLOAD_TARGET_NAMES=nvptx-none:hsa +OFFLOAD_TARGET_DEFAULT=1 +Target: x86_64-linux-gnu +Configured with: ../src/configure -v --with-pkgversion='Ubuntu 9.4.0-1ubuntu1~20.04.1' --with-bugurl=file:///usr/share/doc/gcc-9/README.Bugs --enable-languages=c,ada,c++,go,brig,d,fortran,objc,obj-c++,gm2 --prefix=/usr --with-gcc-major-version-only --program-suffix=-9 --program-prefix=x86_64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-vtable-verify --enable-plugin --enable-default-pie --with-system-zlib --with-target-system-zlib=auto --enable-objc-gc=auto --enable-multiarch --disable-werror --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64,mx32 --enable-multilib --with-tune=generic --enable-offload-targets=nvptx-none=/build/gcc-9-Av3uEd/gcc-9-9.4.0/debian/tmp-nvptx/usr,hsa --without-cuda-driver --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu +Thread model: posix +gcc version 9.4.0 (Ubuntu 9.4.0-1ubuntu1~20.04.1) +COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_3ece1.dir/CMakeCXXCompilerABI.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64' + /usr/lib/gcc/x86_64-linux-gnu/9/cc1plus -quiet -v -imultiarch x86_64-linux-gnu -D_GNU_SOURCE /usr/share/cmake-3.16/Modules/CMakeCXXCompilerABI.cpp -quiet -dumpbase CMakeCXXCompilerABI.cpp -mtune=generic -march=x86-64 -auxbase-strip CMakeFiles/cmTC_3ece1.dir/CMakeCXXCompilerABI.cpp.o -version -fasynchronous-unwind-tables -fstack-protector-strong -Wformat -Wformat-security -fstack-clash-protection -fcf-protection -o /tmp/ccCkSXJU.s +GNU C++14 (Ubuntu 9.4.0-1ubuntu1~20.04.1) version 9.4.0 (x86_64-linux-gnu) + compiled by GNU C version 9.4.0, GMP version 6.2.0, MPFR version 4.0.2, MPC version 1.1.0, isl version isl-0.22.1-GMP + +GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072 +ignoring duplicate directory "/usr/include/x86_64-linux-gnu/c++/9" +ignoring nonexistent directory "/usr/local/include/x86_64-linux-gnu" +ignoring nonexistent directory "/usr/lib/gcc/x86_64-linux-gnu/9/include-fixed" +ignoring nonexistent directory "/usr/lib/gcc/x86_64-linux-gnu/9/../../../../x86_64-linux-gnu/include" +#include "..." search starts here: +#include <...> search starts here: + /usr/include/c++/9 + /usr/include/x86_64-linux-gnu/c++/9 + /usr/include/c++/9/backward + /usr/lib/gcc/x86_64-linux-gnu/9/include + /usr/local/include + /usr/include/x86_64-linux-gnu + /usr/include +End of search list. +GNU C++14 (Ubuntu 9.4.0-1ubuntu1~20.04.1) version 9.4.0 (x86_64-linux-gnu) + compiled by GNU C version 9.4.0, GMP version 6.2.0, MPFR version 4.0.2, MPC version 1.1.0, isl version isl-0.22.1-GMP + +GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072 +Compiler executable checksum: 65fe925b83d3956b533de4aaba7dace0 +COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_3ece1.dir/CMakeCXXCompilerABI.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64' + as -v --64 -o CMakeFiles/cmTC_3ece1.dir/CMakeCXXCompilerABI.cpp.o /tmp/ccCkSXJU.s +GNU assembler version 2.34 (x86_64-linux-gnu) using BFD version (GNU Binutils for Ubuntu) 2.34 +COMPILER_PATH=/usr/lib/gcc/x86_64-linux-gnu/9/:/usr/lib/gcc/x86_64-linux-gnu/9/:/usr/lib/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/9/:/usr/lib/gcc/x86_64-linux-gnu/ +LIBRARY_PATH=/usr/lib/gcc/x86_64-linux-gnu/9/:/usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/9/../../../../lib/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/9/../../../:/lib/:/usr/lib/ +COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_3ece1.dir/CMakeCXXCompilerABI.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64' +Linking CXX executable cmTC_3ece1 +/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_3ece1.dir/link.txt --verbose=1 +/usr/bin/c++ -v CMakeFiles/cmTC_3ece1.dir/CMakeCXXCompilerABI.cpp.o -o cmTC_3ece1 +Using built-in specs. +COLLECT_GCC=/usr/bin/c++ +COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/9/lto-wrapper +OFFLOAD_TARGET_NAMES=nvptx-none:hsa +OFFLOAD_TARGET_DEFAULT=1 +Target: x86_64-linux-gnu +Configured with: ../src/configure -v --with-pkgversion='Ubuntu 9.4.0-1ubuntu1~20.04.1' --with-bugurl=file:///usr/share/doc/gcc-9/README.Bugs --enable-languages=c,ada,c++,go,brig,d,fortran,objc,obj-c++,gm2 --prefix=/usr --with-gcc-major-version-only --program-suffix=-9 --program-prefix=x86_64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-vtable-verify --enable-plugin --enable-default-pie --with-system-zlib --with-target-system-zlib=auto --enable-objc-gc=auto --enable-multiarch --disable-werror --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64,mx32 --enable-multilib --with-tune=generic --enable-offload-targets=nvptx-none=/build/gcc-9-Av3uEd/gcc-9-9.4.0/debian/tmp-nvptx/usr,hsa --without-cuda-driver --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu +Thread model: posix +gcc version 9.4.0 (Ubuntu 9.4.0-1ubuntu1~20.04.1) +COMPILER_PATH=/usr/lib/gcc/x86_64-linux-gnu/9/:/usr/lib/gcc/x86_64-linux-gnu/9/:/usr/lib/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/9/:/usr/lib/gcc/x86_64-linux-gnu/ +LIBRARY_PATH=/usr/lib/gcc/x86_64-linux-gnu/9/:/usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/9/../../../../lib/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/9/../../../:/lib/:/usr/lib/ +COLLECT_GCC_OPTIONS='-v' '-o' 'cmTC_3ece1' '-shared-libgcc' '-mtune=generic' '-march=x86-64' + /usr/lib/gcc/x86_64-linux-gnu/9/collect2 -plugin /usr/lib/gcc/x86_64-linux-gnu/9/liblto_plugin.so -plugin-opt=/usr/lib/gcc/x86_64-linux-gnu/9/lto-wrapper -plugin-opt=-fresolution=/tmp/ccxPCJmm.res -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc --build-id --eh-frame-hdr -m elf_x86_64 --hash-style=gnu --as-needed -dynamic-linker /lib64/ld-linux-x86-64.so.2 -pie -z now -z relro -o cmTC_3ece1 /usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu/Scrt1.o /usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu/crti.o /usr/lib/gcc/x86_64-linux-gnu/9/crtbeginS.o -L/usr/lib/gcc/x86_64-linux-gnu/9 -L/usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/9/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/9/../../.. CMakeFiles/cmTC_3ece1.dir/CMakeCXXCompilerABI.cpp.o -lstdc++ -lm -lgcc_s -lgcc -lc -lgcc_s -lgcc /usr/lib/gcc/x86_64-linux-gnu/9/crtendS.o /usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu/crtn.o +COLLECT_GCC_OPTIONS='-v' '-o' 'cmTC_3ece1' '-shared-libgcc' '-mtune=generic' '-march=x86-64' +make[1]: Leaving directory '/home/wandog/workspace/missile_related/ml-driver/userspace/CMakeFiles/CMakeTmp' + + + +Parsed CXX implicit include dir info from above output: rv=done + found start of include info + found start of implicit include info + add: [/usr/include/c++/9] + add: [/usr/include/x86_64-linux-gnu/c++/9] + add: [/usr/include/c++/9/backward] + add: [/usr/lib/gcc/x86_64-linux-gnu/9/include] + add: [/usr/local/include] + add: [/usr/include/x86_64-linux-gnu] + add: [/usr/include] + end of search list found + collapse include dir [/usr/include/c++/9] ==> [/usr/include/c++/9] + collapse include dir [/usr/include/x86_64-linux-gnu/c++/9] ==> [/usr/include/x86_64-linux-gnu/c++/9] + collapse include dir [/usr/include/c++/9/backward] ==> [/usr/include/c++/9/backward] + collapse include dir [/usr/lib/gcc/x86_64-linux-gnu/9/include] ==> [/usr/lib/gcc/x86_64-linux-gnu/9/include] + collapse include dir [/usr/local/include] ==> [/usr/local/include] + collapse include dir [/usr/include/x86_64-linux-gnu] ==> [/usr/include/x86_64-linux-gnu] + collapse include dir [/usr/include] ==> [/usr/include] + implicit include dirs: [/usr/include/c++/9;/usr/include/x86_64-linux-gnu/c++/9;/usr/include/c++/9/backward;/usr/lib/gcc/x86_64-linux-gnu/9/include;/usr/local/include;/usr/include/x86_64-linux-gnu;/usr/include] + + +Parsed CXX implicit link information from above output: + link line regex: [^( *|.*[/\])(ld|CMAKE_LINK_STARTFILE-NOTFOUND|([^/\]+-)?ld|collect2)[^/\]*( |$)] + ignore line: [Change Dir: /home/wandog/workspace/missile_related/ml-driver/userspace/CMakeFiles/CMakeTmp] + ignore line: [] + ignore line: [Run Build Command(s):/usr/bin/make cmTC_3ece1/fast && /usr/bin/make -f CMakeFiles/cmTC_3ece1.dir/build.make CMakeFiles/cmTC_3ece1.dir/build] + ignore line: [make[1]: Entering directory '/home/wandog/workspace/missile_related/ml-driver/userspace/CMakeFiles/CMakeTmp'] + ignore line: [Building CXX object CMakeFiles/cmTC_3ece1.dir/CMakeCXXCompilerABI.cpp.o] + ignore line: [/usr/bin/c++ -v -o CMakeFiles/cmTC_3ece1.dir/CMakeCXXCompilerABI.cpp.o -c /usr/share/cmake-3.16/Modules/CMakeCXXCompilerABI.cpp] + ignore line: [Using built-in specs.] + ignore line: [COLLECT_GCC=/usr/bin/c++] + ignore line: [OFFLOAD_TARGET_NAMES=nvptx-none:hsa] + ignore line: [OFFLOAD_TARGET_DEFAULT=1] + ignore line: [Target: x86_64-linux-gnu] + ignore line: [Configured with: ../src/configure -v --with-pkgversion='Ubuntu 9.4.0-1ubuntu1~20.04.1' --with-bugurl=file:///usr/share/doc/gcc-9/README.Bugs --enable-languages=c ada c++ go brig d fortran objc obj-c++ gm2 --prefix=/usr --with-gcc-major-version-only --program-suffix=-9 --program-prefix=x86_64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-vtable-verify --enable-plugin --enable-default-pie --with-system-zlib --with-target-system-zlib=auto --enable-objc-gc=auto --enable-multiarch --disable-werror --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32 m64 mx32 --enable-multilib --with-tune=generic --enable-offload-targets=nvptx-none=/build/gcc-9-Av3uEd/gcc-9-9.4.0/debian/tmp-nvptx/usr hsa --without-cuda-driver --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu] + ignore line: [Thread model: posix] + ignore line: [gcc version 9.4.0 (Ubuntu 9.4.0-1ubuntu1~20.04.1) ] + ignore line: [COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_3ece1.dir/CMakeCXXCompilerABI.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64'] + ignore line: [ /usr/lib/gcc/x86_64-linux-gnu/9/cc1plus -quiet -v -imultiarch x86_64-linux-gnu -D_GNU_SOURCE /usr/share/cmake-3.16/Modules/CMakeCXXCompilerABI.cpp -quiet -dumpbase CMakeCXXCompilerABI.cpp -mtune=generic -march=x86-64 -auxbase-strip CMakeFiles/cmTC_3ece1.dir/CMakeCXXCompilerABI.cpp.o -version -fasynchronous-unwind-tables -fstack-protector-strong -Wformat -Wformat-security -fstack-clash-protection -fcf-protection -o /tmp/ccCkSXJU.s] + ignore line: [GNU C++14 (Ubuntu 9.4.0-1ubuntu1~20.04.1) version 9.4.0 (x86_64-linux-gnu)] + ignore line: [ compiled by GNU C version 9.4.0 GMP version 6.2.0 MPFR version 4.0.2 MPC version 1.1.0 isl version isl-0.22.1-GMP] + ignore line: [] + ignore line: [GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072] + ignore line: [ignoring duplicate directory "/usr/include/x86_64-linux-gnu/c++/9"] + ignore line: [ignoring nonexistent directory "/usr/local/include/x86_64-linux-gnu"] + ignore line: [ignoring nonexistent directory "/usr/lib/gcc/x86_64-linux-gnu/9/include-fixed"] + ignore line: [ignoring nonexistent directory "/usr/lib/gcc/x86_64-linux-gnu/9/../../../../x86_64-linux-gnu/include"] + ignore line: [#include "..." search starts here:] + ignore line: [#include <...> search starts here:] + ignore line: [ /usr/include/c++/9] + ignore line: [ /usr/include/x86_64-linux-gnu/c++/9] + ignore line: [ /usr/include/c++/9/backward] + ignore line: [ /usr/lib/gcc/x86_64-linux-gnu/9/include] + ignore line: [ /usr/local/include] + ignore line: [ /usr/include/x86_64-linux-gnu] + ignore line: [ /usr/include] + ignore line: [End of search list.] + ignore line: [GNU C++14 (Ubuntu 9.4.0-1ubuntu1~20.04.1) version 9.4.0 (x86_64-linux-gnu)] + ignore line: [ compiled by GNU C version 9.4.0 GMP version 6.2.0 MPFR version 4.0.2 MPC version 1.1.0 isl version isl-0.22.1-GMP] + ignore line: [] + ignore line: [GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072] + ignore line: [Compiler executable checksum: 65fe925b83d3956b533de4aaba7dace0] + ignore line: [COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_3ece1.dir/CMakeCXXCompilerABI.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64'] + ignore line: [ as -v --64 -o CMakeFiles/cmTC_3ece1.dir/CMakeCXXCompilerABI.cpp.o /tmp/ccCkSXJU.s] + ignore line: [GNU assembler version 2.34 (x86_64-linux-gnu) using BFD version (GNU Binutils for Ubuntu) 2.34] + ignore line: [COMPILER_PATH=/usr/lib/gcc/x86_64-linux-gnu/9/:/usr/lib/gcc/x86_64-linux-gnu/9/:/usr/lib/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/9/:/usr/lib/gcc/x86_64-linux-gnu/] + ignore line: [LIBRARY_PATH=/usr/lib/gcc/x86_64-linux-gnu/9/:/usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/9/../../../../lib/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/9/../../../:/lib/:/usr/lib/] + ignore line: [COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_3ece1.dir/CMakeCXXCompilerABI.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64'] + ignore line: [Linking CXX executable cmTC_3ece1] + ignore line: [/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_3ece1.dir/link.txt --verbose=1] + ignore line: [/usr/bin/c++ -v CMakeFiles/cmTC_3ece1.dir/CMakeCXXCompilerABI.cpp.o -o cmTC_3ece1 ] + ignore line: [Using built-in specs.] + ignore line: [COLLECT_GCC=/usr/bin/c++] + ignore line: [COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/9/lto-wrapper] + ignore line: [OFFLOAD_TARGET_NAMES=nvptx-none:hsa] + ignore line: [OFFLOAD_TARGET_DEFAULT=1] + ignore line: [Target: x86_64-linux-gnu] + ignore line: [Configured with: ../src/configure -v --with-pkgversion='Ubuntu 9.4.0-1ubuntu1~20.04.1' --with-bugurl=file:///usr/share/doc/gcc-9/README.Bugs --enable-languages=c ada c++ go brig d fortran objc obj-c++ gm2 --prefix=/usr --with-gcc-major-version-only --program-suffix=-9 --program-prefix=x86_64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-vtable-verify --enable-plugin --enable-default-pie --with-system-zlib --with-target-system-zlib=auto --enable-objc-gc=auto --enable-multiarch --disable-werror --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32 m64 mx32 --enable-multilib --with-tune=generic --enable-offload-targets=nvptx-none=/build/gcc-9-Av3uEd/gcc-9-9.4.0/debian/tmp-nvptx/usr hsa --without-cuda-driver --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu] + ignore line: [Thread model: posix] + ignore line: [gcc version 9.4.0 (Ubuntu 9.4.0-1ubuntu1~20.04.1) ] + ignore line: [COMPILER_PATH=/usr/lib/gcc/x86_64-linux-gnu/9/:/usr/lib/gcc/x86_64-linux-gnu/9/:/usr/lib/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/9/:/usr/lib/gcc/x86_64-linux-gnu/] + ignore line: [LIBRARY_PATH=/usr/lib/gcc/x86_64-linux-gnu/9/:/usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/9/../../../../lib/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/9/../../../:/lib/:/usr/lib/] + ignore line: [COLLECT_GCC_OPTIONS='-v' '-o' 'cmTC_3ece1' '-shared-libgcc' '-mtune=generic' '-march=x86-64'] + link line: [ /usr/lib/gcc/x86_64-linux-gnu/9/collect2 -plugin /usr/lib/gcc/x86_64-linux-gnu/9/liblto_plugin.so -plugin-opt=/usr/lib/gcc/x86_64-linux-gnu/9/lto-wrapper -plugin-opt=-fresolution=/tmp/ccxPCJmm.res -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc --build-id --eh-frame-hdr -m elf_x86_64 --hash-style=gnu --as-needed -dynamic-linker /lib64/ld-linux-x86-64.so.2 -pie -z now -z relro -o cmTC_3ece1 /usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu/Scrt1.o /usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu/crti.o /usr/lib/gcc/x86_64-linux-gnu/9/crtbeginS.o -L/usr/lib/gcc/x86_64-linux-gnu/9 -L/usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/9/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/9/../../.. CMakeFiles/cmTC_3ece1.dir/CMakeCXXCompilerABI.cpp.o -lstdc++ -lm -lgcc_s -lgcc -lc -lgcc_s -lgcc /usr/lib/gcc/x86_64-linux-gnu/9/crtendS.o /usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu/crtn.o] + arg [/usr/lib/gcc/x86_64-linux-gnu/9/collect2] ==> ignore + arg [-plugin] ==> ignore + arg [/usr/lib/gcc/x86_64-linux-gnu/9/liblto_plugin.so] ==> ignore + arg [-plugin-opt=/usr/lib/gcc/x86_64-linux-gnu/9/lto-wrapper] ==> ignore + arg [-plugin-opt=-fresolution=/tmp/ccxPCJmm.res] ==> ignore + arg [-plugin-opt=-pass-through=-lgcc_s] ==> ignore + arg [-plugin-opt=-pass-through=-lgcc] ==> ignore + arg [-plugin-opt=-pass-through=-lc] ==> ignore + arg [-plugin-opt=-pass-through=-lgcc_s] ==> ignore + arg [-plugin-opt=-pass-through=-lgcc] ==> ignore + arg [--build-id] ==> ignore + arg [--eh-frame-hdr] ==> ignore + arg [-m] ==> ignore + arg [elf_x86_64] ==> ignore + arg [--hash-style=gnu] ==> ignore + arg [--as-needed] ==> ignore + arg [-dynamic-linker] ==> ignore + arg [/lib64/ld-linux-x86-64.so.2] ==> ignore + arg [-pie] ==> ignore + arg [-znow] ==> ignore + arg [-zrelro] ==> ignore + arg [-o] ==> ignore + arg [cmTC_3ece1] ==> ignore + arg [/usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu/Scrt1.o] ==> ignore + arg [/usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu/crti.o] ==> ignore + arg [/usr/lib/gcc/x86_64-linux-gnu/9/crtbeginS.o] ==> ignore + arg [-L/usr/lib/gcc/x86_64-linux-gnu/9] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/9] + arg [-L/usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu] + arg [-L/usr/lib/gcc/x86_64-linux-gnu/9/../../../../lib] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/9/../../../../lib] + arg [-L/lib/x86_64-linux-gnu] ==> dir [/lib/x86_64-linux-gnu] + arg [-L/lib/../lib] ==> dir [/lib/../lib] + arg [-L/usr/lib/x86_64-linux-gnu] ==> dir [/usr/lib/x86_64-linux-gnu] + arg [-L/usr/lib/../lib] ==> dir [/usr/lib/../lib] + arg [-L/usr/lib/gcc/x86_64-linux-gnu/9/../../..] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/9/../../..] + arg [CMakeFiles/cmTC_3ece1.dir/CMakeCXXCompilerABI.cpp.o] ==> ignore + arg [-lstdc++] ==> lib [stdc++] + arg [-lm] ==> lib [m] + arg [-lgcc_s] ==> lib [gcc_s] + arg [-lgcc] ==> lib [gcc] + arg [-lc] ==> lib [c] + arg [-lgcc_s] ==> lib [gcc_s] + arg [-lgcc] ==> lib [gcc] + arg [/usr/lib/gcc/x86_64-linux-gnu/9/crtendS.o] ==> ignore + arg [/usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu/crtn.o] ==> ignore + collapse library dir [/usr/lib/gcc/x86_64-linux-gnu/9] ==> [/usr/lib/gcc/x86_64-linux-gnu/9] + collapse library dir [/usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu] ==> [/usr/lib/x86_64-linux-gnu] + collapse library dir [/usr/lib/gcc/x86_64-linux-gnu/9/../../../../lib] ==> [/usr/lib] + collapse library dir [/lib/x86_64-linux-gnu] ==> [/lib/x86_64-linux-gnu] + collapse library dir [/lib/../lib] ==> [/lib] + collapse library dir [/usr/lib/x86_64-linux-gnu] ==> [/usr/lib/x86_64-linux-gnu] + collapse library dir [/usr/lib/../lib] ==> [/usr/lib] + collapse library dir [/usr/lib/gcc/x86_64-linux-gnu/9/../../..] ==> [/usr/lib] + implicit libs: [stdc++;m;gcc_s;gcc;c;gcc_s;gcc] + implicit dirs: [/usr/lib/gcc/x86_64-linux-gnu/9;/usr/lib/x86_64-linux-gnu;/usr/lib;/lib/x86_64-linux-gnu;/lib] + implicit fwks: [] + + diff --git a/userspace/CMakeFiles/Makefile.cmake b/userspace/CMakeFiles/Makefile.cmake new file mode 100644 index 0000000..9252e53 --- /dev/null +++ b/userspace/CMakeFiles/Makefile.cmake @@ -0,0 +1,50 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.16 + +# The generator used is: +set(CMAKE_DEPENDS_GENERATOR "Unix Makefiles") + +# The top level Makefile was generated from the following files: +set(CMAKE_MAKEFILE_DEPENDS + "CMakeCache.txt" + "CMakeFiles/3.16.3/CMakeCCompiler.cmake" + "CMakeFiles/3.16.3/CMakeCXXCompiler.cmake" + "CMakeFiles/3.16.3/CMakeSystem.cmake" + "CMakeLists.txt" + "/usr/share/cmake-3.16/Modules/CMakeCInformation.cmake" + "/usr/share/cmake-3.16/Modules/CMakeCXXInformation.cmake" + "/usr/share/cmake-3.16/Modules/CMakeCheckCompilerFlagCommonPatterns.cmake" + "/usr/share/cmake-3.16/Modules/CMakeCommonLanguageInclude.cmake" + "/usr/share/cmake-3.16/Modules/CMakeGenericSystem.cmake" + "/usr/share/cmake-3.16/Modules/CMakeInitializeConfigs.cmake" + "/usr/share/cmake-3.16/Modules/CMakeLanguageInformation.cmake" + "/usr/share/cmake-3.16/Modules/CMakeSystemSpecificInformation.cmake" + "/usr/share/cmake-3.16/Modules/CMakeSystemSpecificInitialize.cmake" + "/usr/share/cmake-3.16/Modules/Compiler/CMakeCommonCompilerMacros.cmake" + "/usr/share/cmake-3.16/Modules/Compiler/GNU-C.cmake" + "/usr/share/cmake-3.16/Modules/Compiler/GNU-CXX.cmake" + "/usr/share/cmake-3.16/Modules/Compiler/GNU.cmake" + "/usr/share/cmake-3.16/Modules/Internal/CMakeCheckCompilerFlag.cmake" + "/usr/share/cmake-3.16/Modules/Platform/Linux-GNU-C.cmake" + "/usr/share/cmake-3.16/Modules/Platform/Linux-GNU-CXX.cmake" + "/usr/share/cmake-3.16/Modules/Platform/Linux-GNU.cmake" + "/usr/share/cmake-3.16/Modules/Platform/Linux.cmake" + "/usr/share/cmake-3.16/Modules/Platform/UnixPaths.cmake" + ) + +# The corresponding makefile is: +set(CMAKE_MAKEFILE_OUTPUTS + "Makefile" + "CMakeFiles/cmake.check_cache" + ) + +# Byproducts of CMake generate step: +set(CMAKE_MAKEFILE_PRODUCTS + "CMakeFiles/CMakeDirectoryInformation.cmake" + ) + +# Dependency information for all targets: +set(CMAKE_DEPEND_INFO_FILES + "CMakeFiles/Uspace.dir/DependInfo.cmake" + "CMakeFiles/Twrite.dir/DependInfo.cmake" + ) diff --git a/userspace/CMakeFiles/Makefile2 b/userspace/CMakeFiles/Makefile2 new file mode 100644 index 0000000..b6dd2c8 --- /dev/null +++ b/userspace/CMakeFiles/Makefile2 @@ -0,0 +1,135 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.16 + +# Default target executed when no arguments are given to make. +default_target: all + +.PHONY : default_target + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + + +# Remove some rules from gmake that .SUFFIXES does not remove. +SUFFIXES = + +.SUFFIXES: .hpux_make_needs_suffix_list + + +# Suppress display of executed commands. +$(VERBOSE).SILENT: + + +# A target that is always out of date. +cmake_force: + +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/bin/cmake + +# The command to remove a file. +RM = /usr/bin/cmake -E remove -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = /home/wandog/workspace/missile_related/ml-driver/userspace + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = /home/wandog/workspace/missile_related/ml-driver/userspace + +#============================================================================= +# Directory level rules for the build root directory + +# The main recursive "all" target. +all: CMakeFiles/Uspace.dir/all +all: CMakeFiles/Twrite.dir/all + +.PHONY : all + +# The main recursive "preinstall" target. +preinstall: + +.PHONY : preinstall + +# The main recursive "clean" target. +clean: CMakeFiles/Uspace.dir/clean +clean: CMakeFiles/Twrite.dir/clean + +.PHONY : clean + +#============================================================================= +# Target rules for target CMakeFiles/Uspace.dir + +# All Build rule for target. +CMakeFiles/Uspace.dir/all: + $(MAKE) -f CMakeFiles/Uspace.dir/build.make CMakeFiles/Uspace.dir/depend + $(MAKE) -f CMakeFiles/Uspace.dir/build.make CMakeFiles/Uspace.dir/build + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/wandog/workspace/missile_related/ml-driver/userspace/CMakeFiles --progress-num=3,4 "Built target Uspace" +.PHONY : CMakeFiles/Uspace.dir/all + +# Build rule for subdir invocation for target. +CMakeFiles/Uspace.dir/rule: cmake_check_build_system + $(CMAKE_COMMAND) -E cmake_progress_start /home/wandog/workspace/missile_related/ml-driver/userspace/CMakeFiles 2 + $(MAKE) -f CMakeFiles/Makefile2 CMakeFiles/Uspace.dir/all + $(CMAKE_COMMAND) -E cmake_progress_start /home/wandog/workspace/missile_related/ml-driver/userspace/CMakeFiles 0 +.PHONY : CMakeFiles/Uspace.dir/rule + +# Convenience name for target. +Uspace: CMakeFiles/Uspace.dir/rule + +.PHONY : Uspace + +# clean rule for target. +CMakeFiles/Uspace.dir/clean: + $(MAKE) -f CMakeFiles/Uspace.dir/build.make CMakeFiles/Uspace.dir/clean +.PHONY : CMakeFiles/Uspace.dir/clean + +#============================================================================= +# Target rules for target CMakeFiles/Twrite.dir + +# All Build rule for target. +CMakeFiles/Twrite.dir/all: + $(MAKE) -f CMakeFiles/Twrite.dir/build.make CMakeFiles/Twrite.dir/depend + $(MAKE) -f CMakeFiles/Twrite.dir/build.make CMakeFiles/Twrite.dir/build + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/wandog/workspace/missile_related/ml-driver/userspace/CMakeFiles --progress-num=1,2 "Built target Twrite" +.PHONY : CMakeFiles/Twrite.dir/all + +# Build rule for subdir invocation for target. +CMakeFiles/Twrite.dir/rule: cmake_check_build_system + $(CMAKE_COMMAND) -E cmake_progress_start /home/wandog/workspace/missile_related/ml-driver/userspace/CMakeFiles 2 + $(MAKE) -f CMakeFiles/Makefile2 CMakeFiles/Twrite.dir/all + $(CMAKE_COMMAND) -E cmake_progress_start /home/wandog/workspace/missile_related/ml-driver/userspace/CMakeFiles 0 +.PHONY : CMakeFiles/Twrite.dir/rule + +# Convenience name for target. +Twrite: CMakeFiles/Twrite.dir/rule + +.PHONY : Twrite + +# clean rule for target. +CMakeFiles/Twrite.dir/clean: + $(MAKE) -f CMakeFiles/Twrite.dir/build.make CMakeFiles/Twrite.dir/clean +.PHONY : CMakeFiles/Twrite.dir/clean + +#============================================================================= +# Special targets to cleanup operation of make. + +# Special rule to run CMake to check the build system integrity. +# No rule that depends on this can have commands that come from listfiles +# because they might be regenerated. +cmake_check_build_system: + $(CMAKE_COMMAND) -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 0 +.PHONY : cmake_check_build_system + diff --git a/userspace/CMakeFiles/TargetDirectories.txt b/userspace/CMakeFiles/TargetDirectories.txt new file mode 100644 index 0000000..9dfcce7 --- /dev/null +++ b/userspace/CMakeFiles/TargetDirectories.txt @@ -0,0 +1,4 @@ +/home/wandog/workspace/missile_related/ml-driver/userspace/CMakeFiles/rebuild_cache.dir +/home/wandog/workspace/missile_related/ml-driver/userspace/CMakeFiles/edit_cache.dir +/home/wandog/workspace/missile_related/ml-driver/userspace/CMakeFiles/Uspace.dir +/home/wandog/workspace/missile_related/ml-driver/userspace/CMakeFiles/Twrite.dir diff --git a/userspace/CMakeFiles/Twrite.dir/C.includecache b/userspace/CMakeFiles/Twrite.dir/C.includecache new file mode 100644 index 0000000..bae2917 --- /dev/null +++ b/userspace/CMakeFiles/Twrite.dir/C.includecache @@ -0,0 +1,22 @@ +#IncludeRegexLine: ^[ ]*[#%][ ]*(include|import)[ ]*[<"]([^">]+)([">]) + +#IncludeRegexScan: ^.*$ + +#IncludeRegexComplain: ^$ + +#IncludeRegexTransform: + +/home/wandog/workspace/missile_related/ml-driver/userspace/Twrite.c +stdio.h +- +fcntl.h +- +sys/ioctl.h +- +errno.h +- +unistd.h +- +stdlib.h +- + diff --git a/userspace/CMakeFiles/Twrite.dir/DependInfo.cmake b/userspace/CMakeFiles/Twrite.dir/DependInfo.cmake new file mode 100644 index 0000000..27f8361 --- /dev/null +++ b/userspace/CMakeFiles/Twrite.dir/DependInfo.cmake @@ -0,0 +1,20 @@ +# The set of languages for which implicit dependencies are needed: +set(CMAKE_DEPENDS_LANGUAGES + "C" + ) +# The set of files for implicit dependencies of each language: +set(CMAKE_DEPENDS_CHECK_C + "/home/wandog/workspace/missile_related/ml-driver/userspace/Twrite.c" "/home/wandog/workspace/missile_related/ml-driver/userspace/CMakeFiles/Twrite.dir/Twrite.c.o" + ) +set(CMAKE_C_COMPILER_ID "GNU") + +# The include file search paths: +set(CMAKE_C_TARGET_INCLUDE_PATH + ) + +# Targets to which this target links. +set(CMAKE_TARGET_LINKED_INFO_FILES + ) + +# Fortran module output directory. +set(CMAKE_Fortran_TARGET_MODULE_DIR "") diff --git a/userspace/CMakeFiles/Twrite.dir/Twrite.c.o b/userspace/CMakeFiles/Twrite.dir/Twrite.c.o new file mode 100644 index 0000000000000000000000000000000000000000..50a42c7c21aedca5ecb3f626fc8991e0f15a015c GIT binary patch literal 2216 zcmbu9&ubGw6vtnZ{!-I6N)JLs0#d1Bw}}>Pi%Oc3Hiu}XZM-hqWNTydi_Jz`p$Znn zP=y{n3!c36C?2#RC|>+81VIlK4;B&X`_9g!+wJC}UwAujKJ(tp+nJqxn958A0|8PB z&^6lcDM~chzV9c5o1h-*rk}m1e`nK;FX{E~k$ifiZD5cG(~Z<_eEV$>?z5|ievQXh zJQ}H;^|c*Zjmi-LH&Q!|kHUM0#fA4F^^0S!|KhPXfa%6(8IxY$-K&TF^Tk5xjqGkd zeW_0rW4DXxKD{5#n|Fsx#TZph%c@w>O5Lv3?Qx>%$;t8PV0NKiw(HR`ZA6O=#p|LM ze{eCT#YVLFIfoOqaU~HpY{&GCEb%*TgN4|jKBu9;{aFgEL<0Tc&aO=^{}gi=^a_tu zPvmiMvb!Vrf+GO@g*R`bAA5eIA>WfiEvlM>Ss_vVL55yPyp134JPbv=f59O-(jva& z5I@S~gsXnBC(L@;u)kgnF!1B&Tkv=bez^s|(t;;jaGJko6>L+>QOPKjNuSQlBquWZ z%+%CeYF?k8NM=$xRjOuLer=R1R%#}hD+QZGCh2<3Hgd~)ZfRLxGzvvth;_zk@Lh>h z`LpL}NOF8@VK&9Z?c%8_poX=GLaX>Rp(eb&L(Jx}hflS!db6y?=&p81#{xt~qjnJ|yW@uapik^9GyDy`^~Yp> zl*ims`>)s?b`a{#zbW%aRiJFW`S=R`&i^?eOYI-dAAez$uejgZ$a^B!-;!;Z8UD@Q he9Y-Rdqy-W;T$?H$?2K|ciS(2OV)2UBOS+^{}+{w^6vlu literal 0 HcmV?d00001 diff --git a/userspace/CMakeFiles/Twrite.dir/build.make b/userspace/CMakeFiles/Twrite.dir/build.make new file mode 100644 index 0000000..695c4b3 --- /dev/null +++ b/userspace/CMakeFiles/Twrite.dir/build.make @@ -0,0 +1,98 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.16 + +# Delete rule output on recipe failure. +.DELETE_ON_ERROR: + + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + + +# Remove some rules from gmake that .SUFFIXES does not remove. +SUFFIXES = + +.SUFFIXES: .hpux_make_needs_suffix_list + + +# Suppress display of executed commands. +$(VERBOSE).SILENT: + + +# A target that is always out of date. +cmake_force: + +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/bin/cmake + +# The command to remove a file. +RM = /usr/bin/cmake -E remove -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = /home/wandog/workspace/missile_related/ml-driver/userspace + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = /home/wandog/workspace/missile_related/ml-driver/userspace + +# Include any dependencies generated for this target. +include CMakeFiles/Twrite.dir/depend.make + +# Include the progress variables for this target. +include CMakeFiles/Twrite.dir/progress.make + +# Include the compile flags for this target's objects. +include CMakeFiles/Twrite.dir/flags.make + +CMakeFiles/Twrite.dir/Twrite.c.o: CMakeFiles/Twrite.dir/flags.make +CMakeFiles/Twrite.dir/Twrite.c.o: Twrite.c + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/home/wandog/workspace/missile_related/ml-driver/userspace/CMakeFiles --progress-num=$(CMAKE_PROGRESS_1) "Building C object CMakeFiles/Twrite.dir/Twrite.c.o" + /usr/bin/cc $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -o CMakeFiles/Twrite.dir/Twrite.c.o -c /home/wandog/workspace/missile_related/ml-driver/userspace/Twrite.c + +CMakeFiles/Twrite.dir/Twrite.c.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing C source to CMakeFiles/Twrite.dir/Twrite.c.i" + /usr/bin/cc $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -E /home/wandog/workspace/missile_related/ml-driver/userspace/Twrite.c > CMakeFiles/Twrite.dir/Twrite.c.i + +CMakeFiles/Twrite.dir/Twrite.c.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling C source to assembly CMakeFiles/Twrite.dir/Twrite.c.s" + /usr/bin/cc $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -S /home/wandog/workspace/missile_related/ml-driver/userspace/Twrite.c -o CMakeFiles/Twrite.dir/Twrite.c.s + +# Object files for target Twrite +Twrite_OBJECTS = \ +"CMakeFiles/Twrite.dir/Twrite.c.o" + +# External object files for target Twrite +Twrite_EXTERNAL_OBJECTS = + +Twrite: CMakeFiles/Twrite.dir/Twrite.c.o +Twrite: CMakeFiles/Twrite.dir/build.make +Twrite: CMakeFiles/Twrite.dir/link.txt + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --bold --progress-dir=/home/wandog/workspace/missile_related/ml-driver/userspace/CMakeFiles --progress-num=$(CMAKE_PROGRESS_2) "Linking C executable Twrite" + $(CMAKE_COMMAND) -E cmake_link_script CMakeFiles/Twrite.dir/link.txt --verbose=$(VERBOSE) + +# Rule to build all files generated by this target. +CMakeFiles/Twrite.dir/build: Twrite + +.PHONY : CMakeFiles/Twrite.dir/build + +CMakeFiles/Twrite.dir/clean: + $(CMAKE_COMMAND) -P CMakeFiles/Twrite.dir/cmake_clean.cmake +.PHONY : CMakeFiles/Twrite.dir/clean + +CMakeFiles/Twrite.dir/depend: + cd /home/wandog/workspace/missile_related/ml-driver/userspace && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /home/wandog/workspace/missile_related/ml-driver/userspace /home/wandog/workspace/missile_related/ml-driver/userspace /home/wandog/workspace/missile_related/ml-driver/userspace /home/wandog/workspace/missile_related/ml-driver/userspace /home/wandog/workspace/missile_related/ml-driver/userspace/CMakeFiles/Twrite.dir/DependInfo.cmake --color=$(COLOR) +.PHONY : CMakeFiles/Twrite.dir/depend + diff --git a/userspace/CMakeFiles/Twrite.dir/cmake_clean.cmake b/userspace/CMakeFiles/Twrite.dir/cmake_clean.cmake new file mode 100644 index 0000000..9f07a4f --- /dev/null +++ b/userspace/CMakeFiles/Twrite.dir/cmake_clean.cmake @@ -0,0 +1,10 @@ +file(REMOVE_RECURSE + "CMakeFiles/Twrite.dir/Twrite.c.o" + "Twrite" + "Twrite.pdb" +) + +# Per-language clean rules from dependency scanning. +foreach(lang C) + include(CMakeFiles/Twrite.dir/cmake_clean_${lang}.cmake OPTIONAL) +endforeach() diff --git a/userspace/CMakeFiles/Twrite.dir/depend.internal b/userspace/CMakeFiles/Twrite.dir/depend.internal new file mode 100644 index 0000000..9aa0759 --- /dev/null +++ b/userspace/CMakeFiles/Twrite.dir/depend.internal @@ -0,0 +1,5 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.16 + +CMakeFiles/Twrite.dir/Twrite.c.o + /home/wandog/workspace/missile_related/ml-driver/userspace/Twrite.c diff --git a/userspace/CMakeFiles/Twrite.dir/depend.make b/userspace/CMakeFiles/Twrite.dir/depend.make new file mode 100644 index 0000000..63aece3 --- /dev/null +++ b/userspace/CMakeFiles/Twrite.dir/depend.make @@ -0,0 +1,5 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.16 + +CMakeFiles/Twrite.dir/Twrite.c.o: Twrite.c + diff --git a/userspace/CMakeFiles/Twrite.dir/flags.make b/userspace/CMakeFiles/Twrite.dir/flags.make new file mode 100644 index 0000000..7d3ebbb --- /dev/null +++ b/userspace/CMakeFiles/Twrite.dir/flags.make @@ -0,0 +1,10 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.16 + +# compile C with /usr/bin/cc +C_FLAGS = + +C_DEFINES = + +C_INCLUDES = + diff --git a/userspace/CMakeFiles/Twrite.dir/link.txt b/userspace/CMakeFiles/Twrite.dir/link.txt new file mode 100644 index 0000000..b3ee192 --- /dev/null +++ b/userspace/CMakeFiles/Twrite.dir/link.txt @@ -0,0 +1 @@ +/usr/bin/cc CMakeFiles/Twrite.dir/Twrite.c.o -o Twrite diff --git a/userspace/CMakeFiles/Twrite.dir/progress.make b/userspace/CMakeFiles/Twrite.dir/progress.make new file mode 100644 index 0000000..abadeb0 --- /dev/null +++ b/userspace/CMakeFiles/Twrite.dir/progress.make @@ -0,0 +1,3 @@ +CMAKE_PROGRESS_1 = 1 +CMAKE_PROGRESS_2 = 2 + diff --git a/userspace/CMakeFiles/Uspace.dir/C.includecache b/userspace/CMakeFiles/Uspace.dir/C.includecache new file mode 100644 index 0000000..af7db35 --- /dev/null +++ b/userspace/CMakeFiles/Uspace.dir/C.includecache @@ -0,0 +1,18 @@ +#IncludeRegexLine: ^[ ]*[#%][ ]*(include|import)[ ]*[<"]([^">]+)([">]) + +#IncludeRegexScan: ^.*$ + +#IncludeRegexComplain: ^$ + +#IncludeRegexTransform: + +/home/wandog/workspace/missile_related/ml-driver/userspace/Uspace.c +fcntl.h +- +stdio.h +- +stdlib.h +- +unistd.h +- + diff --git a/userspace/CMakeFiles/Uspace.dir/DependInfo.cmake b/userspace/CMakeFiles/Uspace.dir/DependInfo.cmake new file mode 100644 index 0000000..b04c8ad --- /dev/null +++ b/userspace/CMakeFiles/Uspace.dir/DependInfo.cmake @@ -0,0 +1,20 @@ +# The set of languages for which implicit dependencies are needed: +set(CMAKE_DEPENDS_LANGUAGES + "C" + ) +# The set of files for implicit dependencies of each language: +set(CMAKE_DEPENDS_CHECK_C + "/home/wandog/workspace/missile_related/ml-driver/userspace/Uspace.c" "/home/wandog/workspace/missile_related/ml-driver/userspace/CMakeFiles/Uspace.dir/Uspace.c.o" + ) +set(CMAKE_C_COMPILER_ID "GNU") + +# The include file search paths: +set(CMAKE_C_TARGET_INCLUDE_PATH + ) + +# Targets to which this target links. +set(CMAKE_TARGET_LINKED_INFO_FILES + ) + +# Fortran module output directory. +set(CMAKE_Fortran_TARGET_MODULE_DIR "") diff --git a/userspace/CMakeFiles/Uspace.dir/Uspace.c.o b/userspace/CMakeFiles/Uspace.dir/Uspace.c.o new file mode 100644 index 0000000000000000000000000000000000000000..9c4493bee45398ef87978c61d5068bc17fe5e29b GIT binary patch literal 4792 zcmb`LUu+ab7{KRR(4!z2soGS_!lFe`tQrC9-rZhrVej^`J8Q2> z1wBwUXN3?Sh#ED~C?-Cb=!5YA5u$|`Q(sI>2;s$8y*^;hfuFxgY9bnq&~VHTY50| z71rVC(Q{{{N!s;bWSSf3)&A)?i*Inw&{i_+3`WlDfj>T`O;Q*h(=O3gj53^B547pZ z$oWLuk&j_auWI9Z6{DDVwO+6Pb_`hCNv&3yNLQv84h;pT^wC9!01ET!tQP&aKDszW ziSh3GMG+zRtvyxQIytMh9iDS*kHE8~wh^9*S~rB!4koqr(12J-Z50o$w!C34mhDol zO$w`arC!&oTgR)~c`Rw12XyO$9&keFvq=#r8v|*gRPH!wVtTWtEZ17B(B63BRqXT?$Tr z`}=K)@gJuH?GkjYQxmWx4eP0s6oQ@U@>ZD8xic`dI%~eLx?p!gGn99z zmS&tn!GM}MG?#sFMK&q)lD=mQnq72-M|XA<(w^=5*<2>S8+wdBQ1Hx**S$NLq_m?z zLn&CEXW1sT4ZoPln=aicrrwQOUZmwQr-WTQ>N4LgQrpZiWUj+F>oViEg9J~cM78Da7+Jg4iT6*WtZrKGIgxmz^ z0puVX@FB*bNufLg1?5*fQ^i>8g+yo^j>JDueHQtn9yi(=`-Q<=L^fAjwT9VW&9K)R zuEy0Ix2XmEhq*#K%!#YC5=b~kTFJZ^ivHs_y_L-Qhd%Dj4N_iW{+og0m@2CQ#Bu!o z#c|xDINsZYKiY(E2aa*R2Q^B#uTb|xiSxg!2{)SXjZJvI2`@C^tOKoX$Y10nv$$=*ydbm#;AVaRjOp?plzLzH+%bKoBawXR) zvK%qX79$12D#Gc&40n(i%(2Lz2}e4M4vZ40J1)#*n`Vh*Y{wJZP40&HQ1G`oAIfF; z2&3GO5Cp%u*FX`x2ihp8k5??gHzNc={Wd6qKaLPY__;3XlIM7hesCX!ewlOCPetMw z&pO^e%4^ln+Y-MX+QR>7&P6|up;h%8+k;3N*j@8yZ|_NeVBU zDYy`Ic+AM`<^92;pDMX3?6c*f?>KWGOV literal 0 HcmV?d00001 diff --git a/userspace/CMakeFiles/Uspace.dir/build.make b/userspace/CMakeFiles/Uspace.dir/build.make new file mode 100644 index 0000000..f4c9847 --- /dev/null +++ b/userspace/CMakeFiles/Uspace.dir/build.make @@ -0,0 +1,98 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.16 + +# Delete rule output on recipe failure. +.DELETE_ON_ERROR: + + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + + +# Remove some rules from gmake that .SUFFIXES does not remove. +SUFFIXES = + +.SUFFIXES: .hpux_make_needs_suffix_list + + +# Suppress display of executed commands. +$(VERBOSE).SILENT: + + +# A target that is always out of date. +cmake_force: + +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/bin/cmake + +# The command to remove a file. +RM = /usr/bin/cmake -E remove -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = /home/wandog/workspace/missile_related/ml-driver/userspace + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = /home/wandog/workspace/missile_related/ml-driver/userspace + +# Include any dependencies generated for this target. +include CMakeFiles/Uspace.dir/depend.make + +# Include the progress variables for this target. +include CMakeFiles/Uspace.dir/progress.make + +# Include the compile flags for this target's objects. +include CMakeFiles/Uspace.dir/flags.make + +CMakeFiles/Uspace.dir/Uspace.c.o: CMakeFiles/Uspace.dir/flags.make +CMakeFiles/Uspace.dir/Uspace.c.o: Uspace.c + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/home/wandog/workspace/missile_related/ml-driver/userspace/CMakeFiles --progress-num=$(CMAKE_PROGRESS_1) "Building C object CMakeFiles/Uspace.dir/Uspace.c.o" + /usr/bin/cc $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -o CMakeFiles/Uspace.dir/Uspace.c.o -c /home/wandog/workspace/missile_related/ml-driver/userspace/Uspace.c + +CMakeFiles/Uspace.dir/Uspace.c.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing C source to CMakeFiles/Uspace.dir/Uspace.c.i" + /usr/bin/cc $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -E /home/wandog/workspace/missile_related/ml-driver/userspace/Uspace.c > CMakeFiles/Uspace.dir/Uspace.c.i + +CMakeFiles/Uspace.dir/Uspace.c.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling C source to assembly CMakeFiles/Uspace.dir/Uspace.c.s" + /usr/bin/cc $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -S /home/wandog/workspace/missile_related/ml-driver/userspace/Uspace.c -o CMakeFiles/Uspace.dir/Uspace.c.s + +# Object files for target Uspace +Uspace_OBJECTS = \ +"CMakeFiles/Uspace.dir/Uspace.c.o" + +# External object files for target Uspace +Uspace_EXTERNAL_OBJECTS = + +Uspace: CMakeFiles/Uspace.dir/Uspace.c.o +Uspace: CMakeFiles/Uspace.dir/build.make +Uspace: CMakeFiles/Uspace.dir/link.txt + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --bold --progress-dir=/home/wandog/workspace/missile_related/ml-driver/userspace/CMakeFiles --progress-num=$(CMAKE_PROGRESS_2) "Linking C executable Uspace" + $(CMAKE_COMMAND) -E cmake_link_script CMakeFiles/Uspace.dir/link.txt --verbose=$(VERBOSE) + +# Rule to build all files generated by this target. +CMakeFiles/Uspace.dir/build: Uspace + +.PHONY : CMakeFiles/Uspace.dir/build + +CMakeFiles/Uspace.dir/clean: + $(CMAKE_COMMAND) -P CMakeFiles/Uspace.dir/cmake_clean.cmake +.PHONY : CMakeFiles/Uspace.dir/clean + +CMakeFiles/Uspace.dir/depend: + cd /home/wandog/workspace/missile_related/ml-driver/userspace && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /home/wandog/workspace/missile_related/ml-driver/userspace /home/wandog/workspace/missile_related/ml-driver/userspace /home/wandog/workspace/missile_related/ml-driver/userspace /home/wandog/workspace/missile_related/ml-driver/userspace /home/wandog/workspace/missile_related/ml-driver/userspace/CMakeFiles/Uspace.dir/DependInfo.cmake --color=$(COLOR) +.PHONY : CMakeFiles/Uspace.dir/depend + diff --git a/userspace/CMakeFiles/Uspace.dir/cmake_clean.cmake b/userspace/CMakeFiles/Uspace.dir/cmake_clean.cmake new file mode 100644 index 0000000..8fd391c --- /dev/null +++ b/userspace/CMakeFiles/Uspace.dir/cmake_clean.cmake @@ -0,0 +1,10 @@ +file(REMOVE_RECURSE + "CMakeFiles/Uspace.dir/Uspace.c.o" + "Uspace" + "Uspace.pdb" +) + +# Per-language clean rules from dependency scanning. +foreach(lang C) + include(CMakeFiles/Uspace.dir/cmake_clean_${lang}.cmake OPTIONAL) +endforeach() diff --git a/userspace/CMakeFiles/Uspace.dir/depend.internal b/userspace/CMakeFiles/Uspace.dir/depend.internal new file mode 100644 index 0000000..2b3e58b --- /dev/null +++ b/userspace/CMakeFiles/Uspace.dir/depend.internal @@ -0,0 +1,5 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.16 + +CMakeFiles/Uspace.dir/Uspace.c.o + /home/wandog/workspace/missile_related/ml-driver/userspace/Uspace.c diff --git a/userspace/CMakeFiles/Uspace.dir/depend.make b/userspace/CMakeFiles/Uspace.dir/depend.make new file mode 100644 index 0000000..d63c67e --- /dev/null +++ b/userspace/CMakeFiles/Uspace.dir/depend.make @@ -0,0 +1,5 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.16 + +CMakeFiles/Uspace.dir/Uspace.c.o: Uspace.c + diff --git a/userspace/CMakeFiles/Uspace.dir/flags.make b/userspace/CMakeFiles/Uspace.dir/flags.make new file mode 100644 index 0000000..7d3ebbb --- /dev/null +++ b/userspace/CMakeFiles/Uspace.dir/flags.make @@ -0,0 +1,10 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.16 + +# compile C with /usr/bin/cc +C_FLAGS = + +C_DEFINES = + +C_INCLUDES = + diff --git a/userspace/CMakeFiles/Uspace.dir/link.txt b/userspace/CMakeFiles/Uspace.dir/link.txt new file mode 100644 index 0000000..c55d1a8 --- /dev/null +++ b/userspace/CMakeFiles/Uspace.dir/link.txt @@ -0,0 +1 @@ +/usr/bin/cc CMakeFiles/Uspace.dir/Uspace.c.o -o Uspace diff --git a/userspace/CMakeFiles/Uspace.dir/progress.make b/userspace/CMakeFiles/Uspace.dir/progress.make new file mode 100644 index 0000000..8c8fb6f --- /dev/null +++ b/userspace/CMakeFiles/Uspace.dir/progress.make @@ -0,0 +1,3 @@ +CMAKE_PROGRESS_1 = 3 +CMAKE_PROGRESS_2 = 4 + diff --git a/userspace/CMakeFiles/cmake.check_cache b/userspace/CMakeFiles/cmake.check_cache new file mode 100644 index 0000000..3dccd73 --- /dev/null +++ b/userspace/CMakeFiles/cmake.check_cache @@ -0,0 +1 @@ +# This file is generated by cmake for dependency checking of the CMakeCache.txt file diff --git a/userspace/CMakeFiles/progress.marks b/userspace/CMakeFiles/progress.marks new file mode 100644 index 0000000..b8626c4 --- /dev/null +++ b/userspace/CMakeFiles/progress.marks @@ -0,0 +1 @@ +4 diff --git a/userspace/CMakeLists.txt b/userspace/CMakeLists.txt new file mode 100644 index 0000000..5591d27 --- /dev/null +++ b/userspace/CMakeLists.txt @@ -0,0 +1,16 @@ +cmake_minimum_required(VERSION 3.16) +PROJECT (CTRL_PAiNEL) + +SET(APP_SRCS Twrite.c Uspace.c ) + +foreach(ggfile ${APP_SRCS}) + string( REPLACE ".c" "" GGNAME ${ggfile} ) + ADD_EXECUTABLE (${GGNAME} ${ggfile}) +endforeach(ggfile ${APP_SRCS}) + +#file( GLOB APP_SOURCES app/*.cxx ) +#foreach( testsourcefile ${APP_SOURCES} ) +# string( REPLACE ".cpp" "" testname ${testsourcefile} ) +# add_executable( ${testname} ${testsourcefile} ) +# target_link_libraries( ${testname} YourLib ) +#endforeach( testsourcefile ${APP_SOURCES} ) diff --git a/userspace/Makefile b/userspace/Makefile new file mode 100644 index 0000000..5fbcfd3 --- /dev/null +++ b/userspace/Makefile @@ -0,0 +1,222 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.16 + +# Default target executed when no arguments are given to make. +default_target: all + +.PHONY : default_target + +# Allow only one "make -f Makefile2" at a time, but pass parallelism. +.NOTPARALLEL: + + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + + +# Remove some rules from gmake that .SUFFIXES does not remove. +SUFFIXES = + +.SUFFIXES: .hpux_make_needs_suffix_list + + +# Suppress display of executed commands. +$(VERBOSE).SILENT: + + +# A target that is always out of date. +cmake_force: + +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/bin/cmake + +# The command to remove a file. +RM = /usr/bin/cmake -E remove -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = /home/wandog/workspace/missile_related/ml-driver/userspace + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = /home/wandog/workspace/missile_related/ml-driver/userspace + +#============================================================================= +# Targets provided globally by CMake. + +# Special rule for the target rebuild_cache +rebuild_cache: + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Running CMake to regenerate build system..." + /usr/bin/cmake -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) +.PHONY : rebuild_cache + +# Special rule for the target rebuild_cache +rebuild_cache/fast: rebuild_cache + +.PHONY : rebuild_cache/fast + +# Special rule for the target edit_cache +edit_cache: + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "No interactive CMake dialog available..." + /usr/bin/cmake -E echo No\ interactive\ CMake\ dialog\ available. +.PHONY : edit_cache + +# Special rule for the target edit_cache +edit_cache/fast: edit_cache + +.PHONY : edit_cache/fast + +# The main all target +all: cmake_check_build_system + $(CMAKE_COMMAND) -E cmake_progress_start /home/wandog/workspace/missile_related/ml-driver/userspace/CMakeFiles /home/wandog/workspace/missile_related/ml-driver/userspace/CMakeFiles/progress.marks + $(MAKE) -f CMakeFiles/Makefile2 all + $(CMAKE_COMMAND) -E cmake_progress_start /home/wandog/workspace/missile_related/ml-driver/userspace/CMakeFiles 0 +.PHONY : all + +# The main clean target +clean: + $(MAKE) -f CMakeFiles/Makefile2 clean +.PHONY : clean + +# The main clean target +clean/fast: clean + +.PHONY : clean/fast + +# Prepare targets for installation. +preinstall: all + $(MAKE) -f CMakeFiles/Makefile2 preinstall +.PHONY : preinstall + +# Prepare targets for installation. +preinstall/fast: + $(MAKE) -f CMakeFiles/Makefile2 preinstall +.PHONY : preinstall/fast + +# clear depends +depend: + $(CMAKE_COMMAND) -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 1 +.PHONY : depend + +#============================================================================= +# Target rules for targets named Uspace + +# Build rule for target. +Uspace: cmake_check_build_system + $(MAKE) -f CMakeFiles/Makefile2 Uspace +.PHONY : Uspace + +# fast build rule for target. +Uspace/fast: + $(MAKE) -f CMakeFiles/Uspace.dir/build.make CMakeFiles/Uspace.dir/build +.PHONY : Uspace/fast + +#============================================================================= +# Target rules for targets named Twrite + +# Build rule for target. +Twrite: cmake_check_build_system + $(MAKE) -f CMakeFiles/Makefile2 Twrite +.PHONY : Twrite + +# fast build rule for target. +Twrite/fast: + $(MAKE) -f CMakeFiles/Twrite.dir/build.make CMakeFiles/Twrite.dir/build +.PHONY : Twrite/fast + +Twrite.o: Twrite.c.o + +.PHONY : Twrite.o + +# target to build an object file +Twrite.c.o: + $(MAKE) -f CMakeFiles/Twrite.dir/build.make CMakeFiles/Twrite.dir/Twrite.c.o +.PHONY : Twrite.c.o + +Twrite.i: Twrite.c.i + +.PHONY : Twrite.i + +# target to preprocess a source file +Twrite.c.i: + $(MAKE) -f CMakeFiles/Twrite.dir/build.make CMakeFiles/Twrite.dir/Twrite.c.i +.PHONY : Twrite.c.i + +Twrite.s: Twrite.c.s + +.PHONY : Twrite.s + +# target to generate assembly for a file +Twrite.c.s: + $(MAKE) -f CMakeFiles/Twrite.dir/build.make CMakeFiles/Twrite.dir/Twrite.c.s +.PHONY : Twrite.c.s + +Uspace.o: Uspace.c.o + +.PHONY : Uspace.o + +# target to build an object file +Uspace.c.o: + $(MAKE) -f CMakeFiles/Uspace.dir/build.make CMakeFiles/Uspace.dir/Uspace.c.o +.PHONY : Uspace.c.o + +Uspace.i: Uspace.c.i + +.PHONY : Uspace.i + +# target to preprocess a source file +Uspace.c.i: + $(MAKE) -f CMakeFiles/Uspace.dir/build.make CMakeFiles/Uspace.dir/Uspace.c.i +.PHONY : Uspace.c.i + +Uspace.s: Uspace.c.s + +.PHONY : Uspace.s + +# target to generate assembly for a file +Uspace.c.s: + $(MAKE) -f CMakeFiles/Uspace.dir/build.make CMakeFiles/Uspace.dir/Uspace.c.s +.PHONY : Uspace.c.s + +# Help Target +help: + @echo "The following are some of the valid targets for this Makefile:" + @echo "... all (the default if no target is provided)" + @echo "... clean" + @echo "... depend" + @echo "... rebuild_cache" + @echo "... edit_cache" + @echo "... Uspace" + @echo "... Twrite" + @echo "... Twrite.o" + @echo "... Twrite.i" + @echo "... Twrite.s" + @echo "... Uspace.o" + @echo "... Uspace.i" + @echo "... Uspace.s" +.PHONY : help + + + +#============================================================================= +# Special targets to cleanup operation of make. + +# Special rule to run CMake to check the build system integrity. +# No rule that depends on this can have commands that come from listfiles +# because they might be regenerated. +cmake_check_build_system: + $(CMAKE_COMMAND) -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 0 +.PHONY : cmake_check_build_system + diff --git a/userspace/Twrite b/userspace/Twrite new file mode 100755 index 0000000000000000000000000000000000000000..cc79f332cdd5a66b33e4b4b9eadb5fdc4d087f74 GIT binary patch literal 16920 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 +#include +#include +// #include +#include +#include +#include + +int main( void ) +{ + int fd; + char buf[1]; + //open file + fd = open("/dev/ml0", O_RDWR); + + printf("the file descriptor is %d\n",fd); + if(fd<0){ + perror("perror output:"); + close(fd); + exit(1); + } + + + + + + buf[0]=0x20; + + + if(-1==write(fd, &buf, 1)){ + perror("perror output:"); + } + + + + + close(fd); + + + + + + return 0; +} + + +// if(-1 == write(fd, &buf, 4)){ + +// } +// close(fd); diff --git a/userspace/Uspace b/userspace/Uspace new file mode 100755 index 0000000000000000000000000000000000000000..ae3611001af7128fe003664ab46bad4d9f19d0f2 GIT binary patch literal 17264 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 +#include + +#include +#include + +#define DEFAULT_DEVICE "/dev/ml0" +#define DEFAULT_DURATION 800 + +#define ML_STOP 0x20 +#define ML_UP 0x02 +#define ML_DOWN 0x01 +#define ML_LED 0x03 +#define ML_LEFT 0x04 +#define ML_RIGHT 0x08 +#define ML_FIRE 0x10 + +#define ML_FIRE_DELAY 5000 + +void send_cmd(int fd, int cmd) +{ + int retval = 0; + + retval = write(fd, &cmd, 1); + if (retval < 0){ + fflush("/dev/ml0"); + // printf("the fsync rst is %d\n",ret); + fprintf(stderr, "could not send command to fd=%d\n", fd); + } + +} + +static void usage(char *name) +{ + fprintf(stderr, + "\nusage: %s [-mbslrudfch] [-t ]\n\n" + " -m missile launcher [/dev/ml0]\n" + " -s stop\n" + " -l turn left\n" + " -r turn right\n" + " -u turn up\n" + " -d turn down\n" + " -f fire\n" + " -b blink leds\n" + " -t specify send_cmdment duration in milli seconds\n" + " -c calibrate the missile launcher axes\n" + " -h display this help\n\n" + "notes:\n" + "* it is possible to combine the directions of the two axes, e.g.\n" + " '-lu' send_cmds the missile launcher up and left at the same time.\n" + "" , name); + exit(1); +} + + +int main(int argc, char *argv[]) +{ + char c; + int fd; + int cmd = ML_STOP; + int duration = DEFAULT_DURATION; + char *dev = DEFAULT_DEVICE; + + if (argc < 2) + usage(argv[0]); + + while ((c = getopt(argc, argv, "m:bslrudfcht:")) != -1) { + switch (c) { + case 'm': dev = optarg; + break; + case 'l': cmd |= ML_LEFT; + break; + case 'r': cmd |= ML_RIGHT; + break; + case 'u': cmd |= ML_UP; + break; + case 'd': cmd |= ML_DOWN; + break; + case 'f': cmd = ML_FIRE; + break; + case 'b': cmd = ML_LED; + break; + case 's': cmd = ML_STOP; + break; + case 't': duration = atoi(optarg); + break; + case 'c': /* + retval = ioctl(fd, ML_IOCTCALIBRATE, ML_CALIBRATE_FULL); + if (retval < 0) + perror("ioctl"); + */ + break; + default: usage(argv[0]); + } + } + + printf("Open device %s\n", dev); + fd = open(dev, O_RDWR); + if (fd == -1) { + perror("open"); + exit(1); + } + + printf("Send command %i\n", cmd); + printf("command hex is 0x%2x\n", cmd); + send_cmd(fd, cmd); + + if (cmd & ML_FIRE) + duration = ML_FIRE_DELAY; + else if (cmd == ML_UP || cmd == ML_DOWN) + duration /= 2; + usleep(duration * 1000); + + send_cmd(fd, ML_STOP); + + close(fd); + + return EXIT_SUCCESS; +} + diff --git a/userspace/cmake_install.cmake b/userspace/cmake_install.cmake new file mode 100644 index 0000000..d65f8bd --- /dev/null +++ b/userspace/cmake_install.cmake @@ -0,0 +1,49 @@ +# Install script for directory: /home/wandog/workspace/missile_related/ml-driver/userspace + +# Set the install prefix +if(NOT DEFINED CMAKE_INSTALL_PREFIX) + set(CMAKE_INSTALL_PREFIX "/usr/local") +endif() +string(REGEX REPLACE "/$" "" CMAKE_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}") + +# Set the install configuration name. +if(NOT DEFINED CMAKE_INSTALL_CONFIG_NAME) + if(BUILD_TYPE) + string(REGEX REPLACE "^[^A-Za-z0-9_]+" "" + CMAKE_INSTALL_CONFIG_NAME "${BUILD_TYPE}") + else() + set(CMAKE_INSTALL_CONFIG_NAME "") + endif() + message(STATUS "Install configuration: \"${CMAKE_INSTALL_CONFIG_NAME}\"") +endif() + +# Set the component getting installed. +if(NOT CMAKE_INSTALL_COMPONENT) + if(COMPONENT) + message(STATUS "Install component: \"${COMPONENT}\"") + set(CMAKE_INSTALL_COMPONENT "${COMPONENT}") + else() + set(CMAKE_INSTALL_COMPONENT) + endif() +endif() + +# Install shared libraries without execute permission? +if(NOT DEFINED CMAKE_INSTALL_SO_NO_EXE) + set(CMAKE_INSTALL_SO_NO_EXE "1") +endif() + +# Is this installation the result of a crosscompile? +if(NOT DEFINED CMAKE_CROSSCOMPILING) + set(CMAKE_CROSSCOMPILING "FALSE") +endif() + +if(CMAKE_INSTALL_COMPONENT) + set(CMAKE_INSTALL_MANIFEST "install_manifest_${CMAKE_INSTALL_COMPONENT}.txt") +else() + set(CMAKE_INSTALL_MANIFEST "install_manifest.txt") +endif() + +string(REPLACE ";" "\n" CMAKE_INSTALL_MANIFEST_CONTENT + "${CMAKE_INSTALL_MANIFEST_FILES}") +file(WRITE "/home/wandog/workspace/missile_related/ml-driver/userspace/${CMAKE_INSTALL_MANIFEST}" + "${CMAKE_INSTALL_MANIFEST_CONTENT}") From 3c8fc057475542456de62a25508c669f19ae9cbd Mon Sep 17 00:00:00 2001 From: chiahungma Date: Sat, 15 Apr 2023 16:11:30 +0800 Subject: [PATCH 4/8] remove useless files --- .Module.symvers.cmd | 1 - .ml_driver.ko.cmd | 1 - .ml_driver.mod.cmd | 1 - .ml_driver.mod.o.cmd | 686 --------------- .ml_driver.mod.o.d | 1 - .ml_driver.o.cmd | 929 --------------------- .ml_driver.o.d | 1 - .modules.order.cmd | 1 - Module.symvers | 0 README.md | 5 + ml_driver.ko | Bin 17368 -> 0 bytes ml_driver.mod | 2 - ml_driver.mod.c | 61 -- ml_driver.mod.o | Bin 4840 -> 0 bytes ml_driver.o | Bin 13768 -> 0 bytes modules.order | 1 - test_w | Bin 16928 -> 0 bytes test_write.c | 41 - user-space.c | 120 --- userspace/CMakeFiles/Twrite.dir/Twrite.c.o | Bin 2216 -> 0 bytes userspace/CMakeFiles/Uspace.dir/Uspace.c.o | Bin 4792 -> 0 bytes 21 files changed, 5 insertions(+), 1846 deletions(-) delete mode 100644 .Module.symvers.cmd delete mode 100644 .ml_driver.ko.cmd delete mode 100644 .ml_driver.mod.cmd delete mode 100644 .ml_driver.mod.o.cmd delete mode 100644 .ml_driver.mod.o.d delete mode 100644 .ml_driver.o.cmd delete mode 100644 .ml_driver.o.d delete mode 100644 .modules.order.cmd delete mode 100644 Module.symvers delete mode 100644 ml_driver.ko delete mode 100644 ml_driver.mod delete mode 100644 ml_driver.mod.c delete mode 100644 ml_driver.mod.o delete mode 100644 ml_driver.o delete mode 100644 modules.order delete mode 100755 test_w delete mode 100644 test_write.c delete mode 100755 user-space.c delete mode 100644 userspace/CMakeFiles/Twrite.dir/Twrite.c.o delete mode 100644 userspace/CMakeFiles/Uspace.dir/Uspace.c.o diff --git a/.Module.symvers.cmd b/.Module.symvers.cmd deleted file mode 100644 index d7d32a2..0000000 --- a/.Module.symvers.cmd +++ /dev/null @@ -1 +0,0 @@ -cmd_/home/pi/ml-driver/Module.symvers := sed 's/ko$$/o/' /home/pi/ml-driver/modules.order | scripts/mod/modpost -m -a -o /home/pi/ml-driver/Module.symvers -e -i Module.symvers -T - diff --git a/.ml_driver.ko.cmd b/.ml_driver.ko.cmd deleted file mode 100644 index db93163..0000000 --- a/.ml_driver.ko.cmd +++ /dev/null @@ -1 +0,0 @@ -cmd_/home/wandog/workspace/missile_related/ml-driver/ml_driver.ko := ld -r -m elf_x86_64 -z max-page-size=0x200000 -z noexecstack --build-id -T ./scripts/module-common.lds -o /home/wandog/workspace/missile_related/ml-driver/ml_driver.ko /home/wandog/workspace/missile_related/ml-driver/ml_driver.o /home/wandog/workspace/missile_related/ml-driver/ml_driver.mod.o; true diff --git a/.ml_driver.mod.cmd b/.ml_driver.mod.cmd deleted file mode 100644 index 6ed3b1d..0000000 --- a/.ml_driver.mod.cmd +++ /dev/null @@ -1 +0,0 @@ -cmd_/home/wandog/workspace/missile_related/ml-driver/ml_driver.mod := { echo /home/wandog/workspace/missile_related/ml-driver/ml_driver.o; echo; } > /home/wandog/workspace/missile_related/ml-driver/ml_driver.mod diff --git a/.ml_driver.mod.o.cmd b/.ml_driver.mod.o.cmd deleted file mode 100644 index 01dab1c..0000000 --- a/.ml_driver.mod.o.cmd +++ /dev/null @@ -1,686 +0,0 @@ -cmd_/home/wandog/workspace/missile_related/ml-driver/ml_driver.mod.o := gcc -Wp,-MD,/home/wandog/workspace/missile_related/ml-driver/.ml_driver.mod.o.d -nostdinc -isystem /usr/lib/gcc/x86_64-linux-gnu/9/include -I./arch/x86/include -I./arch/x86/include/generated -I./include -I./arch/x86/include/uapi -I./arch/x86/include/generated/uapi -I./include/uapi -I./include/generated/uapi -include ./include/linux/kconfig.h -Iubuntu/include -include ./include/linux/compiler_types.h -D__KERNEL__ -Wall -Wundef -Werror=strict-prototypes -Wno-trigraphs -fno-strict-aliasing -fno-common -fshort-wchar -fno-PIE -Werror=implicit-function-declaration -Werror=implicit-int -Werror=return-type -Wno-format-security -std=gnu89 -mno-sse -mno-mmx -mno-sse2 -mno-3dnow -mno-avx -fcf-protection=none -m64 -falign-jumps=1 -falign-loops=1 -mno-80387 -mno-fp-ret-in-387 -mpreferred-stack-boundary=3 -mskip-rax-setup -mtune=generic -mno-red-zone -mcmodel=kernel -DCONFIG_X86_X32_ABI -DCONFIG_AS_CFI=1 -DCONFIG_AS_CFI_SIGNAL_FRAME=1 -DCONFIG_AS_CFI_SECTIONS=1 -DCONFIG_AS_SSSE3=1 -DCONFIG_AS_AVX=1 -DCONFIG_AS_AVX2=1 -DCONFIG_AS_AVX512=1 -DCONFIG_AS_SHA1_NI=1 -DCONFIG_AS_SHA256_NI=1 -Wno-sign-compare -fno-asynchronous-unwind-tables -mindirect-branch=thunk-extern -mindirect-branch-register -fno-jump-tables -fno-delete-null-pointer-checks -Wno-frame-address -Wno-format-truncation -Wno-format-overflow -Wno-address-of-packed-member -O2 --param=allow-store-data-races=0 -Wframe-larger-than=1024 -fstack-protector-strong -Wimplicit-fallthrough -Wno-unused-but-set-variable -Wno-unused-const-variable -fno-omit-frame-pointer -fno-optimize-sibling-calls -fno-var-tracking-assignments -pg -mrecord-mcount -mfentry -DCC_USING_FENTRY -flive-patching=inline-clone -Wdeclaration-after-statement -Wvla -Wno-pointer-sign -Wno-stringop-truncation -Wno-array-bounds -Wno-stringop-overflow -Wno-restrict -Wno-maybe-uninitialized -fno-strict-overflow -fno-merge-all-constants -fmerge-constants -fno-stack-check -fconserve-stack -Werror=date-time -Werror=incompatible-pointer-types -Werror=designated-init -fmacro-prefix-map=./= -Wno-packed-not-aligned -DMODULE -DKBUILD_BASENAME='"ml_driver.mod"' -DKBUILD_MODNAME='"ml_driver"' -c -o /home/wandog/workspace/missile_related/ml-driver/ml_driver.mod.o /home/wandog/workspace/missile_related/ml-driver/ml_driver.mod.c - -source_/home/wandog/workspace/missile_related/ml-driver/ml_driver.mod.o := /home/wandog/workspace/missile_related/ml-driver/ml_driver.mod.c - -deps_/home/wandog/workspace/missile_related/ml-driver/ml_driver.mod.o := \ - $(wildcard include/config/module/unload.h) \ - $(wildcard include/config/retpoline.h) \ - include/linux/kconfig.h \ - $(wildcard include/config/cpu/big/endian.h) \ - $(wildcard include/config/booger.h) \ - $(wildcard include/config/foo.h) \ - include/linux/compiler_types.h \ - $(wildcard include/config/have/arch/compiler/h.h) \ - $(wildcard include/config/enable/must/check.h) \ - $(wildcard include/config/optimize/inlining.h) \ - $(wildcard include/config/cc/has/asm/inline.h) \ - include/linux/compiler_attributes.h \ - include/linux/compiler-gcc.h \ - $(wildcard include/config/arm64.h) \ - $(wildcard include/config/arch/use/builtin/bswap.h) \ - include/linux/build-salt.h \ - $(wildcard include/config/build/salt.h) \ - include/linux/elfnote.h \ - include/linux/elf.h \ - arch/x86/include/asm/elf.h \ - $(wildcard include/config/x86/64.h) \ - $(wildcard include/config/x86/32.h) \ - $(wildcard include/config/ia32/emulation.h) \ - $(wildcard include/config/x86/x32/abi.h) \ - $(wildcard include/config/compat.h) \ - include/linux/thread_info.h \ - $(wildcard include/config/thread/info/in/task.h) \ - $(wildcard include/config/have/arch/within/stack/frames.h) \ - $(wildcard include/config/hardened/usercopy.h) \ - include/linux/types.h \ - $(wildcard include/config/have/uid16.h) \ - $(wildcard include/config/uid16.h) \ - $(wildcard include/config/arch/dma/addr/t/64bit.h) \ - $(wildcard include/config/phys/addr/t/64bit.h) \ - $(wildcard include/config/64bit.h) \ - include/uapi/linux/types.h \ - arch/x86/include/generated/uapi/asm/types.h \ - include/uapi/asm-generic/types.h \ - include/asm-generic/int-ll64.h \ - include/uapi/asm-generic/int-ll64.h \ - arch/x86/include/uapi/asm/bitsperlong.h \ - include/asm-generic/bitsperlong.h \ - include/uapi/asm-generic/bitsperlong.h \ - include/uapi/linux/posix_types.h \ - include/linux/stddef.h \ - include/uapi/linux/stddef.h \ - include/linux/compiler_types.h \ - arch/x86/include/asm/posix_types.h \ - arch/x86/include/uapi/asm/posix_types_64.h \ - include/uapi/asm-generic/posix_types.h \ - include/linux/bug.h \ - $(wildcard include/config/generic/bug.h) \ - $(wildcard include/config/bug/on/data/corruption.h) \ - arch/x86/include/asm/bug.h \ - $(wildcard include/config/debug/bugverbose.h) \ - include/linux/stringify.h \ - include/asm-generic/bug.h \ - $(wildcard include/config/bug.h) \ - $(wildcard include/config/generic/bug/relative/pointers.h) \ - $(wildcard include/config/smp.h) \ - include/linux/compiler.h \ - $(wildcard include/config/trace/branch/profiling.h) \ - $(wildcard include/config/profile/all/branches.h) \ - $(wildcard include/config/stack/validation.h) \ - $(wildcard include/config/debug/entry.h) \ - $(wildcard include/config/kasan.h) \ - arch/x86/include/asm/barrier.h \ - arch/x86/include/asm/alternative.h \ - arch/x86/include/asm/asm.h \ - arch/x86/include/asm/nops.h \ - $(wildcard include/config/mk7.h) \ - $(wildcard include/config/x86/p6/nop.h) \ - include/asm-generic/barrier.h \ - include/linux/kasan-checks.h \ - include/linux/kernel.h \ - $(wildcard include/config/preempt/voluntary.h) \ - $(wildcard include/config/debug/atomic/sleep.h) \ - $(wildcard include/config/mmu.h) \ - $(wildcard include/config/prove/locking.h) \ - $(wildcard include/config/arch/has/refcount.h) \ - $(wildcard include/config/panic/timeout.h) \ - $(wildcard include/config/tracing.h) \ - $(wildcard include/config/ftrace/mcount/record.h) \ - /usr/lib/gcc/x86_64-linux-gnu/9/include/stdarg.h \ - include/linux/limits.h \ - include/uapi/linux/limits.h \ - include/linux/linkage.h \ - include/linux/export.h \ - $(wildcard include/config/modversions.h) \ - $(wildcard include/config/module/rel/crcs.h) \ - $(wildcard include/config/have/arch/prel32/relocations.h) \ - $(wildcard include/config/modules.h) \ - $(wildcard include/config/trim/unused/ksyms.h) \ - $(wildcard include/config/unused/symbols.h) \ - arch/x86/include/asm/linkage.h \ - $(wildcard include/config/x86/alignment/16.h) \ - include/linux/bitops.h \ - include/linux/bits.h \ - include/linux/const.h \ - include/uapi/linux/const.h \ - arch/x86/include/asm/bitops.h \ - $(wildcard include/config/x86/cmov.h) \ - arch/x86/include/asm/rmwcc.h \ - $(wildcard include/config/cc/has/asm/goto.h) \ - include/asm-generic/bitops/find.h \ - $(wildcard include/config/generic/find/first/bit.h) \ - include/asm-generic/bitops/sched.h \ - arch/x86/include/asm/arch_hweight.h \ - arch/x86/include/asm/cpufeatures.h \ - arch/x86/include/asm/required-features.h \ - $(wildcard include/config/x86/minimum/cpu/family.h) \ - $(wildcard include/config/math/emulation.h) \ - $(wildcard include/config/x86/pae.h) \ - $(wildcard include/config/x86/cmpxchg64.h) \ - $(wildcard include/config/x86/use/3dnow.h) \ - $(wildcard include/config/matom.h) \ - $(wildcard include/config/paravirt.h) \ - arch/x86/include/asm/disabled-features.h \ - $(wildcard include/config/x86/intel/mpx.h) \ - $(wildcard include/config/x86/smap.h) \ - $(wildcard include/config/x86/intel/umip.h) \ - $(wildcard include/config/x86/intel/memory/protection/keys.h) \ - $(wildcard include/config/x86/5level.h) \ - $(wildcard include/config/page/table/isolation.h) \ - include/asm-generic/bitops/const_hweight.h \ - include/asm-generic/bitops-instrumented.h \ - include/asm-generic/bitops/le.h \ - arch/x86/include/uapi/asm/byteorder.h \ - include/linux/byteorder/little_endian.h \ - include/uapi/linux/byteorder/little_endian.h \ - include/linux/swab.h \ - include/uapi/linux/swab.h \ - arch/x86/include/uapi/asm/swab.h \ - include/linux/byteorder/generic.h \ - include/asm-generic/bitops/ext2-atomic-setbit.h \ - include/linux/log2.h \ - $(wildcard include/config/arch/has/ilog2/u32.h) \ - $(wildcard include/config/arch/has/ilog2/u64.h) \ - include/linux/typecheck.h \ - include/linux/printk.h \ - $(wildcard include/config/message/loglevel/default.h) \ - $(wildcard include/config/console/loglevel/default.h) \ - $(wildcard include/config/console/loglevel/quiet.h) \ - $(wildcard include/config/early/printk.h) \ - $(wildcard include/config/printk/nmi.h) \ - $(wildcard include/config/printk.h) \ - $(wildcard include/config/kmsg/ids.h) \ - $(wildcard include/config/dynamic/debug.h) \ - include/linux/init.h \ - $(wildcard include/config/strict/kernel/rwx.h) \ - $(wildcard include/config/strict/module/rwx.h) \ - include/linux/kern_levels.h \ - include/linux/cache.h \ - $(wildcard include/config/arch/has/cache/line/size.h) \ - include/uapi/linux/kernel.h \ - include/uapi/linux/sysinfo.h \ - arch/x86/include/asm/cache.h \ - $(wildcard include/config/x86/l1/cache/shift.h) \ - $(wildcard include/config/x86/internode/cache/shift.h) \ - $(wildcard include/config/x86/vsmp.h) \ - include/linux/dynamic_debug.h \ - $(wildcard include/config/jump/label.h) \ - include/linux/jump_label.h \ - $(wildcard include/config/have/arch/jump/label/relative.h) \ - arch/x86/include/asm/jump_label.h \ - include/linux/build_bug.h \ - arch/x86/include/asm/div64.h \ - include/asm-generic/div64.h \ - include/linux/restart_block.h \ - include/linux/time64.h \ - include/linux/math64.h \ - $(wildcard include/config/arch/supports/int128.h) \ - include/uapi/linux/time.h \ - include/uapi/linux/time_types.h \ - include/linux/errno.h \ - include/uapi/linux/errno.h \ - arch/x86/include/generated/uapi/asm/errno.h \ - include/uapi/asm-generic/errno.h \ - include/uapi/asm-generic/errno-base.h \ - arch/x86/include/asm/current.h \ - arch/x86/include/asm/percpu.h \ - $(wildcard include/config/x86/64/smp.h) \ - include/asm-generic/percpu.h \ - $(wildcard include/config/debug/preempt.h) \ - $(wildcard include/config/have/setup/per/cpu/area.h) \ - include/linux/threads.h \ - $(wildcard include/config/nr/cpus.h) \ - $(wildcard include/config/base/small.h) \ - include/linux/percpu-defs.h \ - $(wildcard include/config/debug/force/weak/per/cpu.h) \ - $(wildcard include/config/amd/mem/encrypt.h) \ - arch/x86/include/asm/thread_info.h \ - $(wildcard include/config/vm86.h) \ - $(wildcard include/config/frame/pointer.h) \ - arch/x86/include/asm/page.h \ - arch/x86/include/asm/page_types.h \ - $(wildcard include/config/physical/start.h) \ - $(wildcard include/config/physical/align.h) \ - $(wildcard include/config/dynamic/physical/mask.h) \ - include/linux/mem_encrypt.h \ - $(wildcard include/config/arch/has/mem/encrypt.h) \ - arch/x86/include/asm/mem_encrypt.h \ - arch/x86/include/uapi/asm/bootparam.h \ - include/linux/screen_info.h \ - include/uapi/linux/screen_info.h \ - include/linux/apm_bios.h \ - include/uapi/linux/apm_bios.h \ - include/uapi/linux/ioctl.h \ - arch/x86/include/generated/uapi/asm/ioctl.h \ - include/asm-generic/ioctl.h \ - include/uapi/asm-generic/ioctl.h \ - include/linux/edd.h \ - include/uapi/linux/edd.h \ - arch/x86/include/asm/ist.h \ - arch/x86/include/uapi/asm/ist.h \ - include/video/edid.h \ - $(wildcard include/config/x86.h) \ - include/uapi/video/edid.h \ - arch/x86/include/asm/page_64_types.h \ - $(wildcard include/config/dynamic/memory/layout.h) \ - $(wildcard include/config/randomize/base.h) \ - arch/x86/include/asm/kaslr.h \ - $(wildcard include/config/randomize/memory.h) \ - arch/x86/include/asm/page_64.h \ - $(wildcard include/config/debug/virtual.h) \ - $(wildcard include/config/flatmem.h) \ - $(wildcard include/config/x86/vsyscall/emulation.h) \ - include/linux/range.h \ - include/asm-generic/memory_model.h \ - $(wildcard include/config/discontigmem.h) \ - $(wildcard include/config/sparsemem/vmemmap.h) \ - $(wildcard include/config/sparsemem.h) \ - include/linux/pfn.h \ - include/asm-generic/getorder.h \ - arch/x86/include/asm/cpufeature.h \ - $(wildcard include/config/x86/feature/names.h) \ - arch/x86/include/asm/processor.h \ - $(wildcard include/config/kvm.h) \ - $(wildcard include/config/stackprotector.h) \ - $(wildcard include/config/paravirt/xxl.h) \ - $(wildcard include/config/x86/debugctlmsr.h) \ - $(wildcard include/config/cpu/sup/amd.h) \ - $(wildcard include/config/xen.h) \ - arch/x86/include/asm/processor-flags.h \ - arch/x86/include/uapi/asm/processor-flags.h \ - arch/x86/include/asm/math_emu.h \ - arch/x86/include/asm/ptrace.h \ - arch/x86/include/asm/segment.h \ - $(wildcard include/config/xen/pv.h) \ - $(wildcard include/config/x86/32/lazy/gs.h) \ - arch/x86/include/uapi/asm/ptrace.h \ - arch/x86/include/uapi/asm/ptrace-abi.h \ - arch/x86/include/asm/paravirt_types.h \ - $(wildcard include/config/pgtable/levels.h) \ - $(wildcard include/config/paravirt/debug.h) \ - arch/x86/include/asm/desc_defs.h \ - arch/x86/include/asm/kmap_types.h \ - $(wildcard include/config/debug/highmem.h) \ - include/asm-generic/kmap_types.h \ - arch/x86/include/asm/pgtable_types.h \ - $(wildcard include/config/mem/soft/dirty.h) \ - $(wildcard include/config/proc/fs.h) \ - arch/x86/include/asm/pgtable_64_types.h \ - arch/x86/include/asm/sparsemem.h \ - include/asm-generic/pgtable-nop4d.h \ - arch/x86/include/asm/nospec-branch.h \ - include/linux/static_key.h \ - include/linux/frame.h \ - arch/x86/include/asm/alternative-asm.h \ - arch/x86/include/asm/msr-index.h \ - arch/x86/include/asm/unwind_hints.h \ - arch/x86/include/asm/orc_types.h \ - arch/x86/include/asm/spinlock_types.h \ - $(wildcard include/config/paravirt/spinlocks.h) \ - include/asm-generic/qspinlock_types.h \ - include/asm-generic/qrwlock_types.h \ - arch/x86/include/uapi/asm/sigcontext.h \ - arch/x86/include/asm/msr.h \ - $(wildcard include/config/tracepoints.h) \ - arch/x86/include/asm/msr-index.h \ - arch/x86/include/asm/cpumask.h \ - include/linux/cpumask.h \ - $(wildcard include/config/cpumask/offstack.h) \ - $(wildcard include/config/hotplug/cpu.h) \ - $(wildcard include/config/debug/per/cpu/maps.h) \ - include/linux/bitmap.h \ - include/linux/string.h \ - $(wildcard include/config/binary/printf.h) \ - $(wildcard include/config/fortify/source.h) \ - include/uapi/linux/string.h \ - arch/x86/include/asm/string.h \ - arch/x86/include/asm/string_64.h \ - $(wildcard include/config/x86/mce.h) \ - $(wildcard include/config/arch/has/uaccess/flushcache.h) \ - include/linux/atomic.h \ - arch/x86/include/asm/atomic.h \ - arch/x86/include/asm/cmpxchg.h \ - arch/x86/include/asm/cmpxchg_64.h \ - arch/x86/include/asm/atomic64_64.h \ - include/asm-generic/atomic-instrumented.h \ - include/linux/atomic-fallback.h \ - $(wildcard include/config/generic/atomic64.h) \ - include/asm-generic/atomic-long.h \ - arch/x86/include/uapi/asm/msr.h \ - include/linux/tracepoint-defs.h \ - arch/x86/include/asm/paravirt.h \ - arch/x86/include/asm/frame.h \ - arch/x86/include/asm/special_insns.h \ - arch/x86/include/asm/fpu/types.h \ - include/linux/personality.h \ - include/uapi/linux/personality.h \ - include/linux/err.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) \ - arch/x86/include/asm/irqflags.h \ - $(wildcard include/config/debug/lock/alloc.h) \ - arch/x86/include/asm/user.h \ - arch/x86/include/asm/user_64.h \ - arch/x86/include/uapi/asm/auxvec.h \ - arch/x86/include/asm/fsgsbase.h \ - arch/x86/include/asm/vdso.h \ - $(wildcard include/config/x86/x32.h) \ - include/linux/mm_types.h \ - $(wildcard include/config/have/aligned/struct/page.h) \ - $(wildcard include/config/memcg.h) \ - $(wildcard include/config/userfaultfd.h) \ - $(wildcard include/config/swap.h) \ - $(wildcard include/config/numa.h) \ - $(wildcard include/config/have/arch/compat/mmap/bases.h) \ - $(wildcard include/config/membarrier.h) \ - $(wildcard include/config/aio.h) \ - $(wildcard include/config/mmu/notifier.h) \ - $(wildcard include/config/transparent/hugepage.h) \ - $(wildcard include/config/numa/balancing.h) \ - $(wildcard include/config/arch/want/batched/unmap/tlb/flush.h) \ - $(wildcard include/config/hugetlb/page.h) \ - include/linux/mm_types_task.h \ - $(wildcard include/config/split/ptlock/cpus.h) \ - $(wildcard include/config/arch/enable/split/pmd/ptlock.h) \ - arch/x86/include/asm/tlbbatch.h \ - include/linux/auxvec.h \ - include/uapi/linux/auxvec.h \ - include/linux/list.h \ - $(wildcard include/config/debug/list.h) \ - include/linux/poison.h \ - $(wildcard include/config/illegal/pointer/value.h) \ - $(wildcard include/config/page/poisoning/zero.h) \ - include/linux/spinlock.h \ - $(wildcard include/config/debug/spinlock.h) \ - $(wildcard include/config/preemption.h) \ - include/linux/preempt.h \ - $(wildcard include/config/preempt/count.h) \ - $(wildcard include/config/trace/preempt/toggle.h) \ - $(wildcard include/config/preempt/notifiers.h) \ - arch/x86/include/asm/preempt.h \ - include/linux/bottom_half.h \ - arch/x86/include/generated/asm/mmiowb.h \ - include/asm-generic/mmiowb.h \ - $(wildcard include/config/mmiowb.h) \ - include/linux/spinlock_types.h \ - include/linux/lockdep.h \ - $(wildcard include/config/lockdep.h) \ - $(wildcard include/config/lock/stat.h) \ - include/linux/rwlock_types.h \ - arch/x86/include/asm/spinlock.h \ - arch/x86/include/asm/qspinlock.h \ - include/asm-generic/qspinlock.h \ - arch/x86/include/asm/qrwlock.h \ - include/asm-generic/qrwlock.h \ - include/linux/rwlock.h \ - $(wildcard include/config/preempt.h) \ - include/linux/spinlock_api_smp.h \ - $(wildcard include/config/inline/spin/lock.h) \ - $(wildcard include/config/inline/spin/lock/bh.h) \ - $(wildcard include/config/inline/spin/lock/irq.h) \ - $(wildcard include/config/inline/spin/lock/irqsave.h) \ - $(wildcard include/config/inline/spin/trylock.h) \ - $(wildcard include/config/inline/spin/trylock/bh.h) \ - $(wildcard include/config/uninline/spin/unlock.h) \ - $(wildcard include/config/inline/spin/unlock/bh.h) \ - $(wildcard include/config/inline/spin/unlock/irq.h) \ - $(wildcard include/config/inline/spin/unlock/irqrestore.h) \ - $(wildcard include/config/generic/lockbreak.h) \ - include/linux/rwlock_api_smp.h \ - $(wildcard include/config/inline/read/lock.h) \ - $(wildcard include/config/inline/write/lock.h) \ - $(wildcard include/config/inline/read/lock/bh.h) \ - $(wildcard include/config/inline/write/lock/bh.h) \ - $(wildcard include/config/inline/read/lock/irq.h) \ - $(wildcard include/config/inline/write/lock/irq.h) \ - $(wildcard include/config/inline/read/lock/irqsave.h) \ - $(wildcard include/config/inline/write/lock/irqsave.h) \ - $(wildcard include/config/inline/read/trylock.h) \ - $(wildcard include/config/inline/write/trylock.h) \ - $(wildcard include/config/inline/read/unlock.h) \ - $(wildcard include/config/inline/write/unlock.h) \ - $(wildcard include/config/inline/read/unlock/bh.h) \ - $(wildcard include/config/inline/write/unlock/bh.h) \ - $(wildcard include/config/inline/read/unlock/irq.h) \ - $(wildcard include/config/inline/write/unlock/irq.h) \ - $(wildcard include/config/inline/read/unlock/irqrestore.h) \ - $(wildcard include/config/inline/write/unlock/irqrestore.h) \ - include/linux/rbtree.h \ - include/linux/rcupdate.h \ - $(wildcard include/config/preempt/rcu.h) \ - $(wildcard include/config/rcu/stall/common.h) \ - $(wildcard include/config/no/hz/full.h) \ - $(wildcard include/config/rcu/nocb/cpu.h) \ - $(wildcard include/config/tasks/rcu.h) \ - $(wildcard include/config/tree/rcu.h) \ - $(wildcard include/config/tiny/rcu.h) \ - $(wildcard include/config/debug/objects/rcu/head.h) \ - $(wildcard include/config/prove/rcu.h) \ - $(wildcard include/config/rcu/boost.h) \ - $(wildcard include/config/arch/weak/release/acquire.h) \ - include/linux/rcutree.h \ - include/linux/rwsem.h \ - $(wildcard include/config/rwsem/spin/on/owner.h) \ - $(wildcard include/config/debug/rwsems.h) \ - include/linux/osq_lock.h \ - include/linux/completion.h \ - include/linux/wait.h \ - include/uapi/linux/wait.h \ - include/linux/uprobes.h \ - $(wildcard include/config/uprobes.h) \ - arch/x86/include/asm/uprobes.h \ - include/linux/notifier.h \ - $(wildcard include/config/tree/srcu.h) \ - include/linux/mutex.h \ - $(wildcard include/config/mutex/spin/on/owner.h) \ - $(wildcard include/config/debug/mutexes.h) \ - include/linux/debug_locks.h \ - $(wildcard include/config/debug/locking/api/selftests.h) \ - include/linux/srcu.h \ - $(wildcard include/config/tiny/srcu.h) \ - $(wildcard include/config/srcu.h) \ - include/linux/workqueue.h \ - $(wildcard include/config/debug/objects/work.h) \ - $(wildcard include/config/freezer.h) \ - $(wildcard include/config/sysfs.h) \ - $(wildcard include/config/wq/watchdog.h) \ - include/linux/timer.h \ - $(wildcard include/config/debug/objects/timers.h) \ - $(wildcard include/config/preempt/rt.h) \ - $(wildcard include/config/no/hz/common.h) \ - include/linux/ktime.h \ - include/linux/time.h \ - $(wildcard include/config/arch/uses/gettimeoffset.h) \ - include/linux/seqlock.h \ - include/linux/time32.h \ - include/linux/timex.h \ - include/uapi/linux/timex.h \ - include/uapi/linux/param.h \ - arch/x86/include/generated/uapi/asm/param.h \ - include/asm-generic/param.h \ - $(wildcard include/config/hz.h) \ - include/uapi/asm-generic/param.h \ - arch/x86/include/asm/timex.h \ - $(wildcard include/config/x86/tsc.h) \ - arch/x86/include/asm/tsc.h \ - include/linux/jiffies.h \ - include/generated/timeconst.h \ - include/linux/timekeeping.h \ - include/linux/timekeeping32.h \ - include/linux/debugobjects.h \ - $(wildcard include/config/debug/objects.h) \ - $(wildcard include/config/debug/objects/free.h) \ - include/linux/rcu_segcblist.h \ - include/linux/srcutree.h \ - include/linux/rcu_node_tree.h \ - $(wildcard include/config/rcu/fanout.h) \ - $(wildcard include/config/rcu/fanout/leaf.h) \ - include/linux/page-flags-layout.h \ - $(wildcard include/config/kasan/sw/tags.h) \ - include/linux/numa.h \ - $(wildcard include/config/nodes/shift.h) \ - include/generated/bounds.h \ - arch/x86/include/asm/mmu.h \ - $(wildcard include/config/modify/ldt/syscall.h) \ - include/uapi/linux/elf.h \ - include/uapi/linux/elf-em.h \ - include/linux/module.h \ - $(wildcard include/config/modules/tree/lookup.h) \ - $(wildcard include/config/livepatch.h) \ - $(wildcard include/config/module/sig.h) \ - $(wildcard include/config/kallsyms.h) \ - $(wildcard include/config/bpf/events.h) \ - $(wildcard include/config/event/tracing.h) \ - $(wildcard include/config/constructors.h) \ - $(wildcard include/config/function/error/injection.h) \ - include/linux/stat.h \ - arch/x86/include/uapi/asm/stat.h \ - include/uapi/linux/stat.h \ - include/linux/uidgid.h \ - $(wildcard include/config/multiuser.h) \ - $(wildcard include/config/user/ns.h) \ - include/linux/highuid.h \ - include/linux/kmod.h \ - include/linux/umh.h \ - include/linux/gfp.h \ - $(wildcard include/config/highmem.h) \ - $(wildcard include/config/zone/dma.h) \ - $(wildcard include/config/zone/dma32.h) \ - $(wildcard include/config/zone/device.h) \ - $(wildcard include/config/pm/sleep.h) \ - $(wildcard include/config/contig/alloc.h) \ - $(wildcard include/config/cma.h) \ - include/linux/mmdebug.h \ - $(wildcard include/config/debug/vm.h) \ - $(wildcard include/config/debug/vm/pgflags.h) \ - include/linux/mmzone.h \ - $(wildcard include/config/force/max/zoneorder.h) \ - $(wildcard include/config/memory/isolation.h) \ - $(wildcard include/config/shuffle/page/allocator.h) \ - $(wildcard include/config/zsmalloc.h) \ - $(wildcard include/config/memory/hotplug.h) \ - $(wildcard include/config/compaction.h) \ - $(wildcard include/config/flat/node/mem/map.h) \ - $(wildcard include/config/page/extension.h) \ - $(wildcard include/config/deferred/struct/page/init.h) \ - $(wildcard include/config/have/memory/present.h) \ - $(wildcard include/config/have/memoryless/nodes.h) \ - $(wildcard include/config/have/memblock/node/map.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/memory/hotremove.h) \ - $(wildcard include/config/have/arch/pfn/valid.h) \ - $(wildcard include/config/holes/in/zone.h) \ - include/linux/nodemask.h \ - include/linux/pageblock-flags.h \ - $(wildcard include/config/hugetlb/page/size/variable.h) \ - include/linux/page-flags.h \ - $(wildcard include/config/arch/uses/pg/uncached.h) \ - $(wildcard include/config/memory/failure.h) \ - $(wildcard include/config/idle/page/tracking.h) \ - $(wildcard include/config/thp/swap.h) \ - $(wildcard include/config/ksm.h) \ - include/linux/memory_hotplug.h \ - $(wildcard include/config/arch/has/add/pages.h) \ - $(wildcard include/config/have/arch/nodedata/extension.h) \ - $(wildcard include/config/have/bootmem/info/node.h) \ - arch/x86/include/asm/mmzone.h \ - arch/x86/include/asm/mmzone_64.h \ - arch/x86/include/asm/smp.h \ - $(wildcard include/config/x86/local/apic.h) \ - $(wildcard include/config/x86/io/apic.h) \ - $(wildcard include/config/debug/nmi/selftest.h) \ - arch/x86/include/asm/mpspec.h \ - $(wildcard include/config/eisa.h) \ - $(wildcard include/config/x86/mpparse.h) \ - arch/x86/include/asm/mpspec_def.h \ - arch/x86/include/asm/x86_init.h \ - arch/x86/include/asm/apicdef.h \ - arch/x86/include/asm/apic.h \ - $(wildcard include/config/x86/x2apic.h) \ - arch/x86/include/asm/fixmap.h \ - $(wildcard include/config/provide/ohci1394/dma/init.h) \ - $(wildcard include/config/pci/mmconfig.h) \ - $(wildcard include/config/x86/intel/mid.h) \ - $(wildcard include/config/acpi/apei/ghes.h) \ - $(wildcard include/config/intel/txt.h) \ - arch/x86/include/asm/acpi.h \ - $(wildcard include/config/acpi/apei.h) \ - $(wildcard include/config/acpi.h) \ - $(wildcard include/config/acpi/numa.h) \ - include/acpi/pdc_intel.h \ - arch/x86/include/asm/numa.h \ - $(wildcard include/config/numa/emu.h) \ - arch/x86/include/asm/topology.h \ - $(wildcard include/config/sched/mc/prio.h) \ - include/asm-generic/topology.h \ - arch/x86/include/asm/realmode.h \ - $(wildcard include/config/acpi/sleep.h) \ - arch/x86/include/asm/io.h \ - $(wildcard include/config/mtrr.h) \ - $(wildcard include/config/x86/pat.h) \ - arch/x86/include/generated/asm/early_ioremap.h \ - include/asm-generic/early_ioremap.h \ - $(wildcard include/config/generic/early/ioremap.h) \ - include/asm-generic/iomap.h \ - $(wildcard include/config/has/ioport/map.h) \ - $(wildcard include/config/pci.h) \ - $(wildcard include/config/generic/iomap.h) \ - include/asm-generic/pci_iomap.h \ - $(wildcard include/config/no/generic/pci/ioport/map.h) \ - $(wildcard include/config/generic/pci/iomap.h) \ - include/asm-generic/io.h \ - $(wildcard include/config/virt/to/bus.h) \ - include/linux/logic_pio.h \ - $(wildcard include/config/indirect/pio.h) \ - include/linux/fwnode.h \ - include/linux/vmalloc.h \ - include/linux/llist.h \ - $(wildcard include/config/arch/have/nmi/safe/cmpxchg.h) \ - include/linux/overflow.h \ - arch/x86/include/uapi/asm/vsyscall.h \ - include/asm-generic/fixmap.h \ - arch/x86/include/asm/hardirq.h \ - $(wildcard include/config/kvm/intel.h) \ - $(wildcard include/config/have/kvm.h) \ - $(wildcard include/config/x86/thermal/vector.h) \ - $(wildcard include/config/x86/mce/threshold.h) \ - $(wildcard include/config/x86/mce/amd.h) \ - $(wildcard include/config/x86/hv/callback/vector.h) \ - $(wildcard include/config/hyperv.h) \ - arch/x86/include/asm/io_apic.h \ - arch/x86/include/asm/irq_vectors.h \ - $(wildcard include/config/pci/msi.h) \ - include/linux/topology.h \ - $(wildcard include/config/use/percpu/numa/node/id.h) \ - $(wildcard include/config/sched/smt.h) \ - include/linux/arch_topology.h \ - $(wildcard include/config/generic/arch/topology.h) \ - include/linux/percpu.h \ - $(wildcard include/config/need/per/cpu/embed/first/chunk.h) \ - $(wildcard include/config/need/per/cpu/page/first/chunk.h) \ - include/linux/smp.h \ - $(wildcard include/config/up/late/init.h) \ - include/linux/sysctl.h \ - $(wildcard include/config/sysctl.h) \ - include/uapi/linux/sysctl.h \ - include/linux/kobject.h \ - $(wildcard include/config/uevent/helper.h) \ - $(wildcard include/config/debug/kobject/release.h) \ - include/linux/sysfs.h \ - include/linux/kernfs.h \ - $(wildcard include/config/kernfs.h) \ - include/linux/idr.h \ - include/linux/radix-tree.h \ - include/linux/xarray.h \ - $(wildcard include/config/xarray/multi.h) \ - include/linux/kconfig.h \ - include/linux/kobject_ns.h \ - include/linux/kref.h \ - include/linux/refcount.h \ - include/linux/moduleparam.h \ - $(wildcard include/config/alpha.h) \ - $(wildcard include/config/ia64.h) \ - $(wildcard include/config/ppc64.h) \ - include/linux/rbtree_latch.h \ - include/linux/error-injection.h \ - include/asm-generic/error-injection.h \ - arch/x86/include/asm/module.h \ - $(wildcard include/config/unwinder/orc.h) \ - $(wildcard include/config/m486.h) \ - $(wildcard include/config/m586.h) \ - $(wildcard include/config/m586tsc.h) \ - $(wildcard include/config/m586mmx.h) \ - $(wildcard include/config/mcore2.h) \ - $(wildcard include/config/m686.h) \ - $(wildcard include/config/mpentiumii.h) \ - $(wildcard include/config/mpentiumiii.h) \ - $(wildcard include/config/mpentiumm.h) \ - $(wildcard include/config/mpentium4.h) \ - $(wildcard include/config/mk6.h) \ - $(wildcard include/config/mk8.h) \ - $(wildcard include/config/melan.h) \ - $(wildcard include/config/mcrusoe.h) \ - $(wildcard include/config/mefficeon.h) \ - $(wildcard include/config/mwinchipc6.h) \ - $(wildcard include/config/mwinchip3d.h) \ - $(wildcard include/config/mcyrixiii.h) \ - $(wildcard include/config/mviac3/2.h) \ - $(wildcard include/config/mviac7.h) \ - $(wildcard include/config/mgeodegx1.h) \ - $(wildcard include/config/mgeode/lx.h) \ - include/asm-generic/module.h \ - $(wildcard include/config/have/mod/arch/specific.h) \ - $(wildcard include/config/modules/use/elf/rel.h) \ - $(wildcard include/config/modules/use/elf/rela.h) \ - arch/x86/include/asm/orc_types.h \ - include/linux/vermagic.h \ - include/generated/utsrelease.h \ - -/home/wandog/workspace/missile_related/ml-driver/ml_driver.mod.o: $(deps_/home/wandog/workspace/missile_related/ml-driver/ml_driver.mod.o) - -$(deps_/home/wandog/workspace/missile_related/ml-driver/ml_driver.mod.o): diff --git a/.ml_driver.mod.o.d b/.ml_driver.mod.o.d deleted file mode 100644 index ff21f30..0000000 --- a/.ml_driver.mod.o.d +++ /dev/null @@ -1 +0,0 @@ -null.o: /dev/null diff --git a/.ml_driver.o.cmd b/.ml_driver.o.cmd deleted file mode 100644 index 876c320..0000000 --- a/.ml_driver.o.cmd +++ /dev/null @@ -1,929 +0,0 @@ -cmd_/home/wandog/workspace/missile_related/ml-driver/ml_driver.o := gcc -Wp,-MD,/home/wandog/workspace/missile_related/ml-driver/.ml_driver.o.d -nostdinc -isystem /usr/lib/gcc/x86_64-linux-gnu/9/include -I./arch/x86/include -I./arch/x86/include/generated -I./include -I./arch/x86/include/uapi -I./arch/x86/include/generated/uapi -I./include/uapi -I./include/generated/uapi -include ./include/linux/kconfig.h -Iubuntu/include -include ./include/linux/compiler_types.h -D__KERNEL__ -Wall -Wundef -Werror=strict-prototypes -Wno-trigraphs -fno-strict-aliasing -fno-common -fshort-wchar -fno-PIE -Werror=implicit-function-declaration -Werror=implicit-int -Werror=return-type -Wno-format-security -std=gnu89 -mno-sse -mno-mmx -mno-sse2 -mno-3dnow -mno-avx -fcf-protection=none -m64 -falign-jumps=1 -falign-loops=1 -mno-80387 -mno-fp-ret-in-387 -mpreferred-stack-boundary=3 -mskip-rax-setup -mtune=generic -mno-red-zone -mcmodel=kernel -DCONFIG_X86_X32_ABI -DCONFIG_AS_CFI=1 -DCONFIG_AS_CFI_SIGNAL_FRAME=1 -DCONFIG_AS_CFI_SECTIONS=1 -DCONFIG_AS_SSSE3=1 -DCONFIG_AS_AVX=1 -DCONFIG_AS_AVX2=1 -DCONFIG_AS_AVX512=1 -DCONFIG_AS_SHA1_NI=1 -DCONFIG_AS_SHA256_NI=1 -Wno-sign-compare -fno-asynchronous-unwind-tables -mindirect-branch=thunk-extern -mindirect-branch-register -fno-jump-tables -fno-delete-null-pointer-checks -Wno-frame-address -Wno-format-truncation -Wno-format-overflow -Wno-address-of-packed-member -O2 --param=allow-store-data-races=0 -Wframe-larger-than=1024 -fstack-protector-strong -Wimplicit-fallthrough -Wno-unused-but-set-variable -Wno-unused-const-variable -fno-omit-frame-pointer -fno-optimize-sibling-calls -fno-var-tracking-assignments -pg -mrecord-mcount -mfentry -DCC_USING_FENTRY -flive-patching=inline-clone -Wdeclaration-after-statement -Wvla -Wno-pointer-sign -Wno-stringop-truncation -Wno-array-bounds -Wno-stringop-overflow -Wno-restrict -Wno-maybe-uninitialized -fno-strict-overflow -fno-merge-all-constants -fmerge-constants -fno-stack-check -fconserve-stack -Werror=date-time -Werror=incompatible-pointer-types -Werror=designated-init -fmacro-prefix-map=./= -Wno-packed-not-aligned -DMODULE -DKBUILD_BASENAME='"ml_driver"' -DKBUILD_MODNAME='"ml_driver"' -c -o /home/wandog/workspace/missile_related/ml-driver/ml_driver.o /home/wandog/workspace/missile_related/ml-driver/ml_driver.c - -source_/home/wandog/workspace/missile_related/ml-driver/ml_driver.o := /home/wandog/workspace/missile_related/ml-driver/ml_driver.c - -deps_/home/wandog/workspace/missile_related/ml-driver/ml_driver.o := \ - $(wildcard include/config/usb/dynamic/minors.h) \ - include/linux/kconfig.h \ - $(wildcard include/config/cpu/big/endian.h) \ - $(wildcard include/config/booger.h) \ - $(wildcard include/config/foo.h) \ - include/linux/compiler_types.h \ - $(wildcard include/config/have/arch/compiler/h.h) \ - $(wildcard include/config/enable/must/check.h) \ - $(wildcard include/config/optimize/inlining.h) \ - $(wildcard include/config/cc/has/asm/inline.h) \ - include/linux/compiler_attributes.h \ - include/linux/compiler-gcc.h \ - $(wildcard include/config/arm64.h) \ - $(wildcard include/config/retpoline.h) \ - $(wildcard include/config/arch/use/builtin/bswap.h) \ - include/linux/module.h \ - $(wildcard include/config/modules.h) \ - $(wildcard include/config/sysfs.h) \ - $(wildcard include/config/modules/tree/lookup.h) \ - $(wildcard include/config/livepatch.h) \ - $(wildcard include/config/unused/symbols.h) \ - $(wildcard include/config/module/sig.h) \ - $(wildcard include/config/generic/bug.h) \ - $(wildcard include/config/kallsyms.h) \ - $(wildcard include/config/smp.h) \ - $(wildcard include/config/tracepoints.h) \ - $(wildcard include/config/tree/srcu.h) \ - $(wildcard include/config/bpf/events.h) \ - $(wildcard include/config/jump/label.h) \ - $(wildcard include/config/tracing.h) \ - $(wildcard include/config/event/tracing.h) \ - $(wildcard include/config/ftrace/mcount/record.h) \ - $(wildcard include/config/module/unload.h) \ - $(wildcard include/config/constructors.h) \ - $(wildcard include/config/function/error/injection.h) \ - $(wildcard include/config/strict/module/rwx.h) \ - include/linux/list.h \ - $(wildcard include/config/debug/list.h) \ - include/linux/types.h \ - $(wildcard include/config/have/uid16.h) \ - $(wildcard include/config/uid16.h) \ - $(wildcard include/config/arch/dma/addr/t/64bit.h) \ - $(wildcard include/config/phys/addr/t/64bit.h) \ - $(wildcard include/config/64bit.h) \ - include/uapi/linux/types.h \ - arch/x86/include/generated/uapi/asm/types.h \ - include/uapi/asm-generic/types.h \ - include/asm-generic/int-ll64.h \ - include/uapi/asm-generic/int-ll64.h \ - arch/x86/include/uapi/asm/bitsperlong.h \ - include/asm-generic/bitsperlong.h \ - include/uapi/asm-generic/bitsperlong.h \ - include/uapi/linux/posix_types.h \ - include/linux/stddef.h \ - include/uapi/linux/stddef.h \ - include/linux/compiler_types.h \ - arch/x86/include/asm/posix_types.h \ - $(wildcard include/config/x86/32.h) \ - arch/x86/include/uapi/asm/posix_types_64.h \ - include/uapi/asm-generic/posix_types.h \ - include/linux/poison.h \ - $(wildcard include/config/illegal/pointer/value.h) \ - $(wildcard include/config/page/poisoning/zero.h) \ - include/linux/const.h \ - include/uapi/linux/const.h \ - include/linux/kernel.h \ - $(wildcard include/config/preempt/voluntary.h) \ - $(wildcard include/config/debug/atomic/sleep.h) \ - $(wildcard include/config/mmu.h) \ - $(wildcard include/config/prove/locking.h) \ - $(wildcard include/config/arch/has/refcount.h) \ - $(wildcard include/config/panic/timeout.h) \ - /usr/lib/gcc/x86_64-linux-gnu/9/include/stdarg.h \ - include/linux/limits.h \ - include/uapi/linux/limits.h \ - include/linux/linkage.h \ - include/linux/stringify.h \ - include/linux/export.h \ - $(wildcard include/config/modversions.h) \ - $(wildcard include/config/module/rel/crcs.h) \ - $(wildcard include/config/have/arch/prel32/relocations.h) \ - $(wildcard include/config/trim/unused/ksyms.h) \ - include/linux/compiler.h \ - $(wildcard include/config/trace/branch/profiling.h) \ - $(wildcard include/config/profile/all/branches.h) \ - $(wildcard include/config/stack/validation.h) \ - $(wildcard include/config/debug/entry.h) \ - $(wildcard include/config/kasan.h) \ - arch/x86/include/asm/barrier.h \ - arch/x86/include/asm/alternative.h \ - arch/x86/include/asm/asm.h \ - arch/x86/include/asm/nops.h \ - $(wildcard include/config/mk7.h) \ - $(wildcard include/config/x86/p6/nop.h) \ - $(wildcard include/config/x86/64.h) \ - include/asm-generic/barrier.h \ - include/linux/kasan-checks.h \ - arch/x86/include/asm/linkage.h \ - $(wildcard include/config/x86/alignment/16.h) \ - include/linux/bitops.h \ - include/linux/bits.h \ - arch/x86/include/asm/bitops.h \ - $(wildcard include/config/x86/cmov.h) \ - arch/x86/include/asm/rmwcc.h \ - $(wildcard include/config/cc/has/asm/goto.h) \ - include/asm-generic/bitops/find.h \ - $(wildcard include/config/generic/find/first/bit.h) \ - include/asm-generic/bitops/sched.h \ - arch/x86/include/asm/arch_hweight.h \ - arch/x86/include/asm/cpufeatures.h \ - arch/x86/include/asm/required-features.h \ - $(wildcard include/config/x86/minimum/cpu/family.h) \ - $(wildcard include/config/math/emulation.h) \ - $(wildcard include/config/x86/pae.h) \ - $(wildcard include/config/x86/cmpxchg64.h) \ - $(wildcard include/config/x86/use/3dnow.h) \ - $(wildcard include/config/matom.h) \ - $(wildcard include/config/paravirt.h) \ - arch/x86/include/asm/disabled-features.h \ - $(wildcard include/config/x86/intel/mpx.h) \ - $(wildcard include/config/x86/smap.h) \ - $(wildcard include/config/x86/intel/umip.h) \ - $(wildcard include/config/x86/intel/memory/protection/keys.h) \ - $(wildcard include/config/x86/5level.h) \ - $(wildcard include/config/page/table/isolation.h) \ - include/asm-generic/bitops/const_hweight.h \ - include/asm-generic/bitops-instrumented.h \ - include/asm-generic/bitops/le.h \ - arch/x86/include/uapi/asm/byteorder.h \ - include/linux/byteorder/little_endian.h \ - include/uapi/linux/byteorder/little_endian.h \ - include/linux/swab.h \ - include/uapi/linux/swab.h \ - arch/x86/include/uapi/asm/swab.h \ - include/linux/byteorder/generic.h \ - include/asm-generic/bitops/ext2-atomic-setbit.h \ - include/linux/log2.h \ - $(wildcard include/config/arch/has/ilog2/u32.h) \ - $(wildcard include/config/arch/has/ilog2/u64.h) \ - include/linux/typecheck.h \ - include/linux/printk.h \ - $(wildcard include/config/message/loglevel/default.h) \ - $(wildcard include/config/console/loglevel/default.h) \ - $(wildcard include/config/console/loglevel/quiet.h) \ - $(wildcard include/config/early/printk.h) \ - $(wildcard include/config/printk/nmi.h) \ - $(wildcard include/config/printk.h) \ - $(wildcard include/config/kmsg/ids.h) \ - $(wildcard include/config/dynamic/debug.h) \ - include/linux/init.h \ - $(wildcard include/config/strict/kernel/rwx.h) \ - include/linux/kern_levels.h \ - include/linux/cache.h \ - $(wildcard include/config/arch/has/cache/line/size.h) \ - include/uapi/linux/kernel.h \ - include/uapi/linux/sysinfo.h \ - arch/x86/include/asm/cache.h \ - $(wildcard include/config/x86/l1/cache/shift.h) \ - $(wildcard include/config/x86/internode/cache/shift.h) \ - $(wildcard include/config/x86/vsmp.h) \ - include/linux/dynamic_debug.h \ - include/linux/jump_label.h \ - $(wildcard include/config/have/arch/jump/label/relative.h) \ - arch/x86/include/asm/jump_label.h \ - include/linux/build_bug.h \ - arch/x86/include/asm/div64.h \ - include/asm-generic/div64.h \ - include/linux/stat.h \ - arch/x86/include/uapi/asm/stat.h \ - include/uapi/linux/stat.h \ - include/linux/time.h \ - $(wildcard include/config/arch/uses/gettimeoffset.h) \ - include/linux/seqlock.h \ - $(wildcard include/config/debug/lock/alloc.h) \ - include/linux/spinlock.h \ - $(wildcard include/config/debug/spinlock.h) \ - $(wildcard include/config/preemption.h) \ - include/linux/preempt.h \ - $(wildcard include/config/preempt/count.h) \ - $(wildcard include/config/debug/preempt.h) \ - $(wildcard include/config/trace/preempt/toggle.h) \ - $(wildcard include/config/preempt/notifiers.h) \ - arch/x86/include/asm/preempt.h \ - arch/x86/include/asm/percpu.h \ - $(wildcard include/config/x86/64/smp.h) \ - include/asm-generic/percpu.h \ - $(wildcard include/config/have/setup/per/cpu/area.h) \ - include/linux/threads.h \ - $(wildcard include/config/nr/cpus.h) \ - $(wildcard include/config/base/small.h) \ - include/linux/percpu-defs.h \ - $(wildcard include/config/debug/force/weak/per/cpu.h) \ - $(wildcard include/config/amd/mem/encrypt.h) \ - include/linux/thread_info.h \ - $(wildcard include/config/thread/info/in/task.h) \ - $(wildcard include/config/have/arch/within/stack/frames.h) \ - $(wildcard include/config/hardened/usercopy.h) \ - include/linux/bug.h \ - $(wildcard include/config/bug/on/data/corruption.h) \ - arch/x86/include/asm/bug.h \ - $(wildcard include/config/debug/bugverbose.h) \ - include/asm-generic/bug.h \ - $(wildcard include/config/bug.h) \ - $(wildcard include/config/generic/bug/relative/pointers.h) \ - include/linux/restart_block.h \ - include/linux/time64.h \ - include/linux/math64.h \ - $(wildcard include/config/arch/supports/int128.h) \ - include/uapi/linux/time.h \ - include/uapi/linux/time_types.h \ - include/linux/errno.h \ - include/uapi/linux/errno.h \ - arch/x86/include/generated/uapi/asm/errno.h \ - include/uapi/asm-generic/errno.h \ - include/uapi/asm-generic/errno-base.h \ - arch/x86/include/asm/current.h \ - arch/x86/include/asm/thread_info.h \ - $(wildcard include/config/vm86.h) \ - $(wildcard include/config/frame/pointer.h) \ - $(wildcard include/config/compat.h) \ - $(wildcard include/config/ia32/emulation.h) \ - arch/x86/include/asm/page.h \ - arch/x86/include/asm/page_types.h \ - $(wildcard include/config/physical/start.h) \ - $(wildcard include/config/physical/align.h) \ - $(wildcard include/config/dynamic/physical/mask.h) \ - include/linux/mem_encrypt.h \ - $(wildcard include/config/arch/has/mem/encrypt.h) \ - arch/x86/include/asm/mem_encrypt.h \ - arch/x86/include/uapi/asm/bootparam.h \ - include/linux/screen_info.h \ - include/uapi/linux/screen_info.h \ - include/linux/apm_bios.h \ - include/uapi/linux/apm_bios.h \ - include/uapi/linux/ioctl.h \ - arch/x86/include/generated/uapi/asm/ioctl.h \ - include/asm-generic/ioctl.h \ - include/uapi/asm-generic/ioctl.h \ - include/linux/edd.h \ - include/uapi/linux/edd.h \ - arch/x86/include/asm/ist.h \ - arch/x86/include/uapi/asm/ist.h \ - include/video/edid.h \ - $(wildcard include/config/x86.h) \ - include/uapi/video/edid.h \ - arch/x86/include/asm/page_64_types.h \ - $(wildcard include/config/dynamic/memory/layout.h) \ - $(wildcard include/config/randomize/base.h) \ - arch/x86/include/asm/kaslr.h \ - $(wildcard include/config/randomize/memory.h) \ - arch/x86/include/asm/page_64.h \ - $(wildcard include/config/debug/virtual.h) \ - $(wildcard include/config/flatmem.h) \ - $(wildcard include/config/x86/vsyscall/emulation.h) \ - include/linux/range.h \ - include/asm-generic/memory_model.h \ - $(wildcard include/config/discontigmem.h) \ - $(wildcard include/config/sparsemem/vmemmap.h) \ - $(wildcard include/config/sparsemem.h) \ - include/linux/pfn.h \ - include/asm-generic/getorder.h \ - arch/x86/include/asm/cpufeature.h \ - $(wildcard include/config/x86/feature/names.h) \ - arch/x86/include/asm/processor.h \ - $(wildcard include/config/kvm.h) \ - $(wildcard include/config/stackprotector.h) \ - $(wildcard include/config/paravirt/xxl.h) \ - $(wildcard include/config/x86/debugctlmsr.h) \ - $(wildcard include/config/cpu/sup/amd.h) \ - $(wildcard include/config/xen.h) \ - arch/x86/include/asm/processor-flags.h \ - arch/x86/include/uapi/asm/processor-flags.h \ - arch/x86/include/asm/math_emu.h \ - arch/x86/include/asm/ptrace.h \ - arch/x86/include/asm/segment.h \ - $(wildcard include/config/xen/pv.h) \ - $(wildcard include/config/x86/32/lazy/gs.h) \ - arch/x86/include/uapi/asm/ptrace.h \ - arch/x86/include/uapi/asm/ptrace-abi.h \ - arch/x86/include/asm/paravirt_types.h \ - $(wildcard include/config/pgtable/levels.h) \ - $(wildcard include/config/paravirt/debug.h) \ - arch/x86/include/asm/desc_defs.h \ - arch/x86/include/asm/kmap_types.h \ - $(wildcard include/config/debug/highmem.h) \ - include/asm-generic/kmap_types.h \ - arch/x86/include/asm/pgtable_types.h \ - $(wildcard include/config/mem/soft/dirty.h) \ - $(wildcard include/config/proc/fs.h) \ - arch/x86/include/asm/pgtable_64_types.h \ - arch/x86/include/asm/sparsemem.h \ - include/asm-generic/pgtable-nop4d.h \ - arch/x86/include/asm/nospec-branch.h \ - include/linux/static_key.h \ - include/linux/frame.h \ - arch/x86/include/asm/alternative-asm.h \ - arch/x86/include/asm/msr-index.h \ - arch/x86/include/asm/unwind_hints.h \ - arch/x86/include/asm/orc_types.h \ - arch/x86/include/asm/spinlock_types.h \ - $(wildcard include/config/paravirt/spinlocks.h) \ - include/asm-generic/qspinlock_types.h \ - include/asm-generic/qrwlock_types.h \ - arch/x86/include/uapi/asm/sigcontext.h \ - arch/x86/include/asm/msr.h \ - arch/x86/include/asm/msr-index.h \ - arch/x86/include/asm/cpumask.h \ - include/linux/cpumask.h \ - $(wildcard include/config/cpumask/offstack.h) \ - $(wildcard include/config/hotplug/cpu.h) \ - $(wildcard include/config/debug/per/cpu/maps.h) \ - include/linux/bitmap.h \ - include/linux/string.h \ - $(wildcard include/config/binary/printf.h) \ - $(wildcard include/config/fortify/source.h) \ - include/uapi/linux/string.h \ - arch/x86/include/asm/string.h \ - arch/x86/include/asm/string_64.h \ - $(wildcard include/config/x86/mce.h) \ - $(wildcard include/config/arch/has/uaccess/flushcache.h) \ - include/linux/atomic.h \ - arch/x86/include/asm/atomic.h \ - arch/x86/include/asm/cmpxchg.h \ - arch/x86/include/asm/cmpxchg_64.h \ - arch/x86/include/asm/atomic64_64.h \ - include/asm-generic/atomic-instrumented.h \ - include/linux/atomic-fallback.h \ - $(wildcard include/config/generic/atomic64.h) \ - include/asm-generic/atomic-long.h \ - arch/x86/include/uapi/asm/msr.h \ - include/linux/tracepoint-defs.h \ - arch/x86/include/asm/paravirt.h \ - arch/x86/include/asm/frame.h \ - arch/x86/include/asm/special_insns.h \ - arch/x86/include/asm/fpu/types.h \ - include/linux/personality.h \ - include/uapi/linux/personality.h \ - include/linux/err.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) \ - arch/x86/include/asm/irqflags.h \ - include/linux/bottom_half.h \ - arch/x86/include/generated/asm/mmiowb.h \ - include/asm-generic/mmiowb.h \ - $(wildcard include/config/mmiowb.h) \ - include/linux/spinlock_types.h \ - include/linux/lockdep.h \ - $(wildcard include/config/lockdep.h) \ - $(wildcard include/config/lock/stat.h) \ - include/linux/rwlock_types.h \ - arch/x86/include/asm/spinlock.h \ - arch/x86/include/asm/qspinlock.h \ - include/asm-generic/qspinlock.h \ - arch/x86/include/asm/qrwlock.h \ - include/asm-generic/qrwlock.h \ - include/linux/rwlock.h \ - $(wildcard include/config/preempt.h) \ - include/linux/spinlock_api_smp.h \ - $(wildcard include/config/inline/spin/lock.h) \ - $(wildcard include/config/inline/spin/lock/bh.h) \ - $(wildcard include/config/inline/spin/lock/irq.h) \ - $(wildcard include/config/inline/spin/lock/irqsave.h) \ - $(wildcard include/config/inline/spin/trylock.h) \ - $(wildcard include/config/inline/spin/trylock/bh.h) \ - $(wildcard include/config/uninline/spin/unlock.h) \ - $(wildcard include/config/inline/spin/unlock/bh.h) \ - $(wildcard include/config/inline/spin/unlock/irq.h) \ - $(wildcard include/config/inline/spin/unlock/irqrestore.h) \ - $(wildcard include/config/generic/lockbreak.h) \ - include/linux/rwlock_api_smp.h \ - $(wildcard include/config/inline/read/lock.h) \ - $(wildcard include/config/inline/write/lock.h) \ - $(wildcard include/config/inline/read/lock/bh.h) \ - $(wildcard include/config/inline/write/lock/bh.h) \ - $(wildcard include/config/inline/read/lock/irq.h) \ - $(wildcard include/config/inline/write/lock/irq.h) \ - $(wildcard include/config/inline/read/lock/irqsave.h) \ - $(wildcard include/config/inline/write/lock/irqsave.h) \ - $(wildcard include/config/inline/read/trylock.h) \ - $(wildcard include/config/inline/write/trylock.h) \ - $(wildcard include/config/inline/read/unlock.h) \ - $(wildcard include/config/inline/write/unlock.h) \ - $(wildcard include/config/inline/read/unlock/bh.h) \ - $(wildcard include/config/inline/write/unlock/bh.h) \ - $(wildcard include/config/inline/read/unlock/irq.h) \ - $(wildcard include/config/inline/write/unlock/irq.h) \ - $(wildcard include/config/inline/read/unlock/irqrestore.h) \ - $(wildcard include/config/inline/write/unlock/irqrestore.h) \ - include/linux/time32.h \ - include/linux/timex.h \ - include/uapi/linux/timex.h \ - include/uapi/linux/param.h \ - arch/x86/include/generated/uapi/asm/param.h \ - include/asm-generic/param.h \ - $(wildcard include/config/hz.h) \ - include/uapi/asm-generic/param.h \ - arch/x86/include/asm/timex.h \ - $(wildcard include/config/x86/tsc.h) \ - arch/x86/include/asm/tsc.h \ - include/linux/uidgid.h \ - $(wildcard include/config/multiuser.h) \ - $(wildcard include/config/user/ns.h) \ - include/linux/highuid.h \ - include/linux/kmod.h \ - include/linux/umh.h \ - include/linux/gfp.h \ - $(wildcard include/config/highmem.h) \ - $(wildcard include/config/zone/dma.h) \ - $(wildcard include/config/zone/dma32.h) \ - $(wildcard include/config/zone/device.h) \ - $(wildcard include/config/numa.h) \ - $(wildcard include/config/pm/sleep.h) \ - $(wildcard include/config/contig/alloc.h) \ - $(wildcard include/config/cma.h) \ - include/linux/mmdebug.h \ - $(wildcard include/config/debug/vm.h) \ - $(wildcard include/config/debug/vm/pgflags.h) \ - include/linux/mmzone.h \ - $(wildcard include/config/force/max/zoneorder.h) \ - $(wildcard include/config/memory/isolation.h) \ - $(wildcard include/config/shuffle/page/allocator.h) \ - $(wildcard include/config/zsmalloc.h) \ - $(wildcard include/config/memcg.h) \ - $(wildcard include/config/memory/hotplug.h) \ - $(wildcard include/config/compaction.h) \ - $(wildcard include/config/transparent/hugepage.h) \ - $(wildcard include/config/flat/node/mem/map.h) \ - $(wildcard include/config/page/extension.h) \ - $(wildcard include/config/deferred/struct/page/init.h) \ - $(wildcard include/config/have/memory/present.h) \ - $(wildcard include/config/have/memoryless/nodes.h) \ - $(wildcard include/config/have/memblock/node/map.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/memory/hotremove.h) \ - $(wildcard include/config/have/arch/pfn/valid.h) \ - $(wildcard include/config/holes/in/zone.h) \ - include/linux/wait.h \ - include/uapi/linux/wait.h \ - include/linux/numa.h \ - $(wildcard include/config/nodes/shift.h) \ - include/linux/nodemask.h \ - include/linux/pageblock-flags.h \ - $(wildcard include/config/hugetlb/page.h) \ - $(wildcard include/config/hugetlb/page/size/variable.h) \ - include/linux/page-flags-layout.h \ - $(wildcard include/config/numa/balancing.h) \ - $(wildcard include/config/kasan/sw/tags.h) \ - include/generated/bounds.h \ - include/linux/mm_types.h \ - $(wildcard include/config/have/aligned/struct/page.h) \ - $(wildcard include/config/userfaultfd.h) \ - $(wildcard include/config/swap.h) \ - $(wildcard include/config/have/arch/compat/mmap/bases.h) \ - $(wildcard include/config/membarrier.h) \ - $(wildcard include/config/aio.h) \ - $(wildcard include/config/mmu/notifier.h) \ - $(wildcard include/config/arch/want/batched/unmap/tlb/flush.h) \ - include/linux/mm_types_task.h \ - $(wildcard include/config/split/ptlock/cpus.h) \ - $(wildcard include/config/arch/enable/split/pmd/ptlock.h) \ - arch/x86/include/asm/tlbbatch.h \ - include/linux/auxvec.h \ - include/uapi/linux/auxvec.h \ - arch/x86/include/uapi/asm/auxvec.h \ - include/linux/rbtree.h \ - include/linux/rcupdate.h \ - $(wildcard include/config/preempt/rcu.h) \ - $(wildcard include/config/rcu/stall/common.h) \ - $(wildcard include/config/no/hz/full.h) \ - $(wildcard include/config/rcu/nocb/cpu.h) \ - $(wildcard include/config/tasks/rcu.h) \ - $(wildcard include/config/tree/rcu.h) \ - $(wildcard include/config/tiny/rcu.h) \ - $(wildcard include/config/debug/objects/rcu/head.h) \ - $(wildcard include/config/prove/rcu.h) \ - $(wildcard include/config/rcu/boost.h) \ - $(wildcard include/config/arch/weak/release/acquire.h) \ - include/linux/rcutree.h \ - include/linux/rwsem.h \ - $(wildcard include/config/rwsem/spin/on/owner.h) \ - $(wildcard include/config/debug/rwsems.h) \ - include/linux/osq_lock.h \ - include/linux/completion.h \ - include/linux/uprobes.h \ - $(wildcard include/config/uprobes.h) \ - arch/x86/include/asm/uprobes.h \ - include/linux/notifier.h \ - include/linux/mutex.h \ - $(wildcard include/config/mutex/spin/on/owner.h) \ - $(wildcard include/config/debug/mutexes.h) \ - include/linux/debug_locks.h \ - $(wildcard include/config/debug/locking/api/selftests.h) \ - include/linux/srcu.h \ - $(wildcard include/config/tiny/srcu.h) \ - $(wildcard include/config/srcu.h) \ - include/linux/workqueue.h \ - $(wildcard include/config/debug/objects/work.h) \ - $(wildcard include/config/freezer.h) \ - $(wildcard include/config/wq/watchdog.h) \ - include/linux/timer.h \ - $(wildcard include/config/debug/objects/timers.h) \ - $(wildcard include/config/preempt/rt.h) \ - $(wildcard include/config/no/hz/common.h) \ - include/linux/ktime.h \ - include/linux/jiffies.h \ - include/generated/timeconst.h \ - include/linux/timekeeping.h \ - include/linux/timekeeping32.h \ - include/linux/debugobjects.h \ - $(wildcard include/config/debug/objects.h) \ - $(wildcard include/config/debug/objects/free.h) \ - include/linux/rcu_segcblist.h \ - include/linux/srcutree.h \ - include/linux/rcu_node_tree.h \ - $(wildcard include/config/rcu/fanout.h) \ - $(wildcard include/config/rcu/fanout/leaf.h) \ - arch/x86/include/asm/mmu.h \ - $(wildcard include/config/modify/ldt/syscall.h) \ - include/linux/page-flags.h \ - $(wildcard include/config/arch/uses/pg/uncached.h) \ - $(wildcard include/config/memory/failure.h) \ - $(wildcard include/config/idle/page/tracking.h) \ - $(wildcard include/config/thp/swap.h) \ - $(wildcard include/config/ksm.h) \ - include/linux/memory_hotplug.h \ - $(wildcard include/config/arch/has/add/pages.h) \ - $(wildcard include/config/have/arch/nodedata/extension.h) \ - $(wildcard include/config/have/bootmem/info/node.h) \ - arch/x86/include/asm/mmzone.h \ - arch/x86/include/asm/mmzone_64.h \ - arch/x86/include/asm/smp.h \ - $(wildcard include/config/x86/local/apic.h) \ - $(wildcard include/config/x86/io/apic.h) \ - $(wildcard include/config/debug/nmi/selftest.h) \ - arch/x86/include/asm/mpspec.h \ - $(wildcard include/config/eisa.h) \ - $(wildcard include/config/x86/mpparse.h) \ - arch/x86/include/asm/mpspec_def.h \ - arch/x86/include/asm/x86_init.h \ - arch/x86/include/asm/apicdef.h \ - arch/x86/include/asm/apic.h \ - $(wildcard include/config/x86/x2apic.h) \ - arch/x86/include/asm/fixmap.h \ - $(wildcard include/config/provide/ohci1394/dma/init.h) \ - $(wildcard include/config/pci/mmconfig.h) \ - $(wildcard include/config/x86/intel/mid.h) \ - $(wildcard include/config/acpi/apei/ghes.h) \ - $(wildcard include/config/intel/txt.h) \ - arch/x86/include/asm/acpi.h \ - $(wildcard include/config/acpi/apei.h) \ - $(wildcard include/config/acpi.h) \ - $(wildcard include/config/acpi/numa.h) \ - include/acpi/pdc_intel.h \ - arch/x86/include/asm/numa.h \ - $(wildcard include/config/numa/emu.h) \ - arch/x86/include/asm/topology.h \ - $(wildcard include/config/sched/mc/prio.h) \ - include/asm-generic/topology.h \ - arch/x86/include/asm/realmode.h \ - $(wildcard include/config/acpi/sleep.h) \ - arch/x86/include/asm/io.h \ - $(wildcard include/config/mtrr.h) \ - $(wildcard include/config/x86/pat.h) \ - arch/x86/include/generated/asm/early_ioremap.h \ - include/asm-generic/early_ioremap.h \ - $(wildcard include/config/generic/early/ioremap.h) \ - include/asm-generic/iomap.h \ - $(wildcard include/config/has/ioport/map.h) \ - $(wildcard include/config/pci.h) \ - $(wildcard include/config/generic/iomap.h) \ - include/asm-generic/pci_iomap.h \ - $(wildcard include/config/no/generic/pci/ioport/map.h) \ - $(wildcard include/config/generic/pci/iomap.h) \ - include/asm-generic/io.h \ - $(wildcard include/config/virt/to/bus.h) \ - include/linux/logic_pio.h \ - $(wildcard include/config/indirect/pio.h) \ - include/linux/fwnode.h \ - include/linux/vmalloc.h \ - include/linux/llist.h \ - $(wildcard include/config/arch/have/nmi/safe/cmpxchg.h) \ - include/linux/overflow.h \ - arch/x86/include/uapi/asm/vsyscall.h \ - include/asm-generic/fixmap.h \ - arch/x86/include/asm/hardirq.h \ - $(wildcard include/config/kvm/intel.h) \ - $(wildcard include/config/have/kvm.h) \ - $(wildcard include/config/x86/thermal/vector.h) \ - $(wildcard include/config/x86/mce/threshold.h) \ - $(wildcard include/config/x86/mce/amd.h) \ - $(wildcard include/config/x86/hv/callback/vector.h) \ - $(wildcard include/config/hyperv.h) \ - arch/x86/include/asm/io_apic.h \ - arch/x86/include/asm/irq_vectors.h \ - $(wildcard include/config/pci/msi.h) \ - include/linux/topology.h \ - $(wildcard include/config/use/percpu/numa/node/id.h) \ - $(wildcard include/config/sched/smt.h) \ - include/linux/arch_topology.h \ - $(wildcard include/config/generic/arch/topology.h) \ - include/linux/percpu.h \ - $(wildcard include/config/need/per/cpu/embed/first/chunk.h) \ - $(wildcard include/config/need/per/cpu/page/first/chunk.h) \ - include/linux/smp.h \ - $(wildcard include/config/up/late/init.h) \ - include/linux/sysctl.h \ - $(wildcard include/config/sysctl.h) \ - include/uapi/linux/sysctl.h \ - include/linux/elf.h \ - arch/x86/include/asm/elf.h \ - $(wildcard include/config/x86/x32/abi.h) \ - arch/x86/include/asm/user.h \ - arch/x86/include/asm/user_64.h \ - arch/x86/include/asm/fsgsbase.h \ - arch/x86/include/asm/vdso.h \ - $(wildcard include/config/x86/x32.h) \ - include/uapi/linux/elf.h \ - include/uapi/linux/elf-em.h \ - include/linux/kobject.h \ - $(wildcard include/config/uevent/helper.h) \ - $(wildcard include/config/debug/kobject/release.h) \ - include/linux/sysfs.h \ - include/linux/kernfs.h \ - $(wildcard include/config/kernfs.h) \ - include/linux/idr.h \ - include/linux/radix-tree.h \ - include/linux/xarray.h \ - $(wildcard include/config/xarray/multi.h) \ - include/linux/kconfig.h \ - include/linux/kobject_ns.h \ - include/linux/kref.h \ - include/linux/refcount.h \ - include/linux/moduleparam.h \ - $(wildcard include/config/alpha.h) \ - $(wildcard include/config/ia64.h) \ - $(wildcard include/config/ppc64.h) \ - include/linux/rbtree_latch.h \ - include/linux/error-injection.h \ - include/asm-generic/error-injection.h \ - arch/x86/include/asm/module.h \ - $(wildcard include/config/unwinder/orc.h) \ - $(wildcard include/config/m486.h) \ - $(wildcard include/config/m586.h) \ - $(wildcard include/config/m586tsc.h) \ - $(wildcard include/config/m586mmx.h) \ - $(wildcard include/config/mcore2.h) \ - $(wildcard include/config/m686.h) \ - $(wildcard include/config/mpentiumii.h) \ - $(wildcard include/config/mpentiumiii.h) \ - $(wildcard include/config/mpentiumm.h) \ - $(wildcard include/config/mpentium4.h) \ - $(wildcard include/config/mk6.h) \ - $(wildcard include/config/mk8.h) \ - $(wildcard include/config/melan.h) \ - $(wildcard include/config/mcrusoe.h) \ - $(wildcard include/config/mefficeon.h) \ - $(wildcard include/config/mwinchipc6.h) \ - $(wildcard include/config/mwinchip3d.h) \ - $(wildcard include/config/mcyrixiii.h) \ - $(wildcard include/config/mviac3/2.h) \ - $(wildcard include/config/mviac7.h) \ - $(wildcard include/config/mgeodegx1.h) \ - $(wildcard include/config/mgeode/lx.h) \ - include/asm-generic/module.h \ - $(wildcard include/config/have/mod/arch/specific.h) \ - $(wildcard include/config/modules/use/elf/rel.h) \ - $(wildcard include/config/modules/use/elf/rela.h) \ - arch/x86/include/asm/orc_types.h \ - include/linux/slab.h \ - $(wildcard include/config/debug/slab.h) \ - $(wildcard include/config/failslab.h) \ - $(wildcard include/config/memcg/kmem.h) \ - $(wildcard include/config/have/hardened/usercopy/allocator.h) \ - $(wildcard include/config/slab.h) \ - $(wildcard include/config/slub.h) \ - $(wildcard include/config/slob.h) \ - include/linux/percpu-refcount.h \ - include/linux/kasan.h \ - $(wildcard include/config/kasan/generic.h) \ - include/linux/usb.h \ - $(wildcard include/config/usb/mon.h) \ - $(wildcard include/config/pm.h) \ - $(wildcard include/config/usb/led/trig.h) \ - include/linux/mod_devicetable.h \ - include/linux/uuid.h \ - include/uapi/linux/uuid.h \ - include/linux/usb/ch9.h \ - include/linux/device.h \ - $(wildcard include/config/debug/devres.h) \ - $(wildcard include/config/generic/msi/irq/domain.h) \ - $(wildcard include/config/pinctrl.h) \ - $(wildcard include/config/generic/msi/irq.h) \ - $(wildcard include/config/dma/declare/coherent.h) \ - $(wildcard include/config/dma/cma.h) \ - $(wildcard include/config/arch/has/sync/dma/for/device.h) \ - $(wildcard include/config/arch/has/sync/dma/for/cpu.h) \ - $(wildcard include/config/arch/has/sync/dma/for/cpu/all.h) \ - $(wildcard include/config/of.h) \ - $(wildcard include/config/devtmpfs.h) \ - $(wildcard include/config/sysfs/deprecated.h) \ - include/linux/ioport.h \ - $(wildcard include/config/io/strict/devmem.h) \ - include/linux/klist.h \ - include/linux/pm.h \ - $(wildcard include/config/vt/console/sleep.h) \ - $(wildcard include/config/pm/clk.h) \ - $(wildcard include/config/pm/generic/domains.h) \ - include/linux/hrtimer.h \ - $(wildcard include/config/high/res/timers.h) \ - $(wildcard include/config/time/low/res.h) \ - $(wildcard include/config/timerfd.h) \ - include/linux/hrtimer_defs.h \ - include/linux/timerqueue.h \ - include/linux/ratelimit.h \ - include/linux/sched.h \ - $(wildcard include/config/virt/cpu/accounting/native.h) \ - $(wildcard include/config/sched/info.h) \ - $(wildcard include/config/schedstats.h) \ - $(wildcard include/config/fair/group/sched.h) \ - $(wildcard include/config/rt/group/sched.h) \ - $(wildcard include/config/rt/mutexes.h) \ - $(wildcard include/config/uclamp/task.h) \ - $(wildcard include/config/uclamp/buckets/count.h) \ - $(wildcard include/config/cgroup/sched.h) \ - $(wildcard include/config/blk/dev/io/trace.h) \ - $(wildcard include/config/psi.h) \ - $(wildcard include/config/compat/brk.h) \ - $(wildcard include/config/cgroups.h) \ - $(wildcard include/config/blk/cgroup.h) \ - $(wildcard include/config/arch/has/scaled/cputime.h) \ - $(wildcard include/config/virt/cpu/accounting/gen.h) \ - $(wildcard include/config/posix/cputimers.h) \ - $(wildcard include/config/keys.h) \ - $(wildcard include/config/sysvipc.h) \ - $(wildcard include/config/detect/hung/task.h) \ - $(wildcard include/config/audit.h) \ - $(wildcard include/config/auditsyscall.h) \ - $(wildcard include/config/ubsan.h) \ - $(wildcard include/config/block.h) \ - $(wildcard include/config/task/xacct.h) \ - $(wildcard include/config/cpusets.h) \ - $(wildcard include/config/x86/cpu/resctrl.h) \ - $(wildcard include/config/futex.h) \ - $(wildcard include/config/perf/events.h) \ - $(wildcard include/config/rseq.h) \ - $(wildcard include/config/task/delay/acct.h) \ - $(wildcard include/config/fault/injection.h) \ - $(wildcard include/config/latencytop.h) \ - $(wildcard include/config/function/graph/tracer.h) \ - $(wildcard include/config/kcov.h) \ - $(wildcard include/config/bcache.h) \ - $(wildcard include/config/vmap/stack.h) \ - $(wildcard include/config/security.h) \ - $(wildcard include/config/gcc/plugin/stackleak.h) \ - $(wildcard include/config/arch/task/struct/on/stack.h) \ - $(wildcard include/config/debug/rseq.h) \ - include/uapi/linux/sched.h \ - include/linux/pid.h \ - include/linux/rculist.h \ - $(wildcard include/config/prove/rcu/list.h) \ - include/linux/sem.h \ - include/uapi/linux/sem.h \ - include/linux/ipc.h \ - include/linux/rhashtable-types.h \ - include/uapi/linux/ipc.h \ - arch/x86/include/generated/uapi/asm/ipcbuf.h \ - include/uapi/asm-generic/ipcbuf.h \ - arch/x86/include/uapi/asm/sembuf.h \ - include/linux/shm.h \ - include/uapi/linux/shm.h \ - include/uapi/asm-generic/hugetlb_encode.h \ - arch/x86/include/uapi/asm/shmbuf.h \ - include/uapi/asm-generic/shmbuf.h \ - arch/x86/include/asm/shmparam.h \ - include/linux/kcov.h \ - include/uapi/linux/kcov.h \ - include/linux/plist.h \ - $(wildcard include/config/debug/plist.h) \ - include/linux/seccomp.h \ - $(wildcard include/config/seccomp.h) \ - $(wildcard include/config/have/arch/seccomp/filter.h) \ - $(wildcard include/config/seccomp/filter.h) \ - $(wildcard include/config/checkpoint/restore.h) \ - include/uapi/linux/seccomp.h \ - arch/x86/include/asm/seccomp.h \ - arch/x86/include/asm/unistd.h \ - arch/x86/include/uapi/asm/unistd.h \ - arch/x86/include/generated/uapi/asm/unistd_64.h \ - arch/x86/include/generated/asm/unistd_64_x32.h \ - arch/x86/include/asm/ia32_unistd.h \ - arch/x86/include/generated/asm/unistd_32_ia32.h \ - include/asm-generic/seccomp.h \ - include/uapi/linux/unistd.h \ - include/linux/resource.h \ - include/uapi/linux/resource.h \ - arch/x86/include/generated/uapi/asm/resource.h \ - include/asm-generic/resource.h \ - include/uapi/asm-generic/resource.h \ - include/linux/latencytop.h \ - include/linux/sched/prio.h \ - include/linux/sched/types.h \ - include/linux/signal_types.h \ - $(wildcard include/config/old/sigaction.h) \ - include/uapi/linux/signal.h \ - arch/x86/include/asm/signal.h \ - arch/x86/include/uapi/asm/signal.h \ - include/uapi/asm-generic/signal-defs.h \ - arch/x86/include/uapi/asm/siginfo.h \ - include/uapi/asm-generic/siginfo.h \ - include/linux/task_io_accounting.h \ - $(wildcard include/config/task/io/accounting.h) \ - include/linux/posix-timers.h \ - $(wildcard include/config/posix/timers.h) \ - include/linux/alarmtimer.h \ - include/uapi/linux/rseq.h \ - arch/x86/include/asm/device.h \ - $(wildcard include/config/intel/iommu.h) \ - $(wildcard include/config/amd/iommu.h) \ - $(wildcard include/config/sta2x11.h) \ - $(wildcard include/config/x86/dev/dma/ops.h) \ - $(wildcard include/config/pci/domains.h) \ - include/linux/pm_wakeup.h \ - include/uapi/linux/usb/ch9.h \ - include/linux/delay.h \ - arch/x86/include/asm/delay.h \ - include/asm-generic/delay.h \ - include/linux/interrupt.h \ - $(wildcard include/config/irq/forced/threading.h) \ - $(wildcard include/config/generic/irq/probe.h) \ - $(wildcard include/config/irq/timings.h) \ - include/linux/irqreturn.h \ - include/linux/irqnr.h \ - include/uapi/linux/irqnr.h \ - include/linux/hardirq.h \ - include/linux/ftrace_irq.h \ - $(wildcard include/config/ftrace/nmi/enter.h) \ - $(wildcard include/config/hwlat/tracer.h) \ - include/linux/vtime.h \ - $(wildcard include/config/virt/cpu/accounting.h) \ - $(wildcard include/config/irq/time/accounting.h) \ - include/linux/context_tracking_state.h \ - $(wildcard include/config/context/tracking.h) \ - arch/x86/include/asm/irq.h \ - arch/x86/include/asm/sections.h \ - include/asm-generic/sections.h \ - arch/x86/include/asm/extable.h \ - include/linux/fs.h \ - $(wildcard include/config/read/only/thp/for/fs.h) \ - $(wildcard include/config/fs/posix/acl.h) \ - $(wildcard include/config/cgroup/writeback.h) \ - $(wildcard include/config/ima.h) \ - $(wildcard include/config/file/locking.h) \ - $(wildcard include/config/fsnotify.h) \ - $(wildcard include/config/fs/encryption.h) \ - $(wildcard include/config/fs/verity.h) \ - $(wildcard include/config/epoll.h) \ - $(wildcard include/config/quota.h) \ - $(wildcard include/config/blk/dev/loop.h) \ - $(wildcard include/config/fs/dax.h) \ - $(wildcard include/config/mandatory/file/locking.h) \ - $(wildcard include/config/migration.h) \ - $(wildcard include/config/io/uring.h) \ - include/linux/wait_bit.h \ - include/linux/kdev_t.h \ - include/uapi/linux/kdev_t.h \ - include/linux/dcache.h \ - include/linux/rculist_bl.h \ - include/linux/list_bl.h \ - include/linux/bit_spinlock.h \ - include/linux/lockref.h \ - $(wildcard include/config/arch/use/cmpxchg/lockref.h) \ - include/linux/stringhash.h \ - $(wildcard include/config/dcache/word/access.h) \ - include/linux/hash.h \ - $(wildcard include/config/have/arch/hash.h) \ - include/linux/path.h \ - include/linux/list_lru.h \ - include/linux/shrinker.h \ - include/linux/capability.h \ - include/uapi/linux/capability.h \ - include/linux/semaphore.h \ - include/linux/fcntl.h \ - $(wildcard include/config/arch/32bit/off/t.h) \ - include/uapi/linux/fcntl.h \ - arch/x86/include/generated/uapi/asm/fcntl.h \ - include/uapi/asm-generic/fcntl.h \ - include/uapi/linux/fiemap.h \ - include/linux/migrate_mode.h \ - include/linux/percpu-rwsem.h \ - include/linux/rcuwait.h \ - include/linux/rcu_sync.h \ - include/linux/delayed_call.h \ - include/linux/errseq.h \ - include/linux/ioprio.h \ - include/linux/sched/rt.h \ - include/linux/iocontext.h \ - include/linux/fs_types.h \ - include/uapi/linux/fs.h \ - include/linux/quota.h \ - $(wildcard include/config/quota/netlink/interface.h) \ - include/linux/percpu_counter.h \ - include/uapi/linux/dqblk_xfs.h \ - include/linux/dqblk_v1.h \ - include/linux/dqblk_v2.h \ - include/linux/dqblk_qtree.h \ - include/linux/projid.h \ - include/uapi/linux/quota.h \ - include/linux/nfs_fs_i.h \ - include/linux/pm_runtime.h \ - include/linux/uaccess.h \ - arch/x86/include/asm/uaccess.h \ - $(wildcard include/config/cc/has/asm/goto/tied/output.h) \ - $(wildcard include/config/x86/intel/usercopy.h) \ - arch/x86/include/asm/smap.h \ - arch/x86/include/asm/uaccess_64.h \ - -/home/wandog/workspace/missile_related/ml-driver/ml_driver.o: $(deps_/home/wandog/workspace/missile_related/ml-driver/ml_driver.o) - -$(deps_/home/wandog/workspace/missile_related/ml-driver/ml_driver.o): diff --git a/.ml_driver.o.d b/.ml_driver.o.d deleted file mode 100644 index ff21f30..0000000 --- a/.ml_driver.o.d +++ /dev/null @@ -1 +0,0 @@ -null.o: /dev/null diff --git a/.modules.order.cmd b/.modules.order.cmd deleted file mode 100644 index ac29adc..0000000 --- a/.modules.order.cmd +++ /dev/null @@ -1 +0,0 @@ -cmd_/home/pi/ml-driver/modules.order := { echo /home/pi/ml-driver/ml_driver.ko; :; } | awk '!x[$$0]++' - > /home/pi/ml-driver/modules.order diff --git a/Module.symvers b/Module.symvers deleted file mode 100644 index e69de29..0000000 diff --git a/README.md b/README.md index 3bbd803..91ca62e 100755 --- a/README.md +++ b/README.md @@ -1,3 +1,8 @@ +had modify the driver to let it workable on ubuntu 20.04 + +as for rasp pi, not test yet. +================================================================================== + ML-driver ========= diff --git a/ml_driver.ko b/ml_driver.ko deleted file mode 100644 index 224679f281d7ad1eb6214e278479751a05edbd84..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 17368 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 -#include -#include -#include - -BUILD_SALT; - -MODULE_INFO(vermagic, VERMAGIC_STRING); -MODULE_INFO(name, KBUILD_MODNAME); - -__visible struct module __this_module -__section(.gnu.linkonce.this_module) = { - .name = KBUILD_MODNAME, - .init = init_module, -#ifdef CONFIG_MODULE_UNLOAD - .exit = cleanup_module, -#endif - .arch = MODULE_ARCH_INIT, -}; - -#ifdef CONFIG_RETPOLINE -MODULE_INFO(retpoline, "Y"); -#endif - -static const struct modversion_info ____versions[] -__used __section(__versions) = { - { 0xdd8f8694, "module_layout" }, - { 0x867847b8, "usb_deregister" }, - { 0x785cf894, "usb_register_driver" }, - { 0x7b262fbe, "usb_deregister_dev" }, - { 0x6626afca, "down" }, - { 0x5b42218f, "usb_control_msg" }, - { 0x5ab904eb, "pv_ops" }, - { 0xdbf17652, "_raw_spin_lock" }, - { 0x9166fada, "strncpy" }, - { 0x362ef408, "_copy_from_user" }, - { 0xdecd0b29, "__stack_chk_fail" }, - { 0x853bbff4, "usb_register_dev" }, - { 0x987e553d, "usb_string" }, - { 0x102ff065, "usb_alloc_urb" }, - { 0xeb233a45, "__kmalloc" }, - { 0xca7a3159, "kmem_cache_alloc_trace" }, - { 0x428db41d, "kmalloc_caches" }, - { 0x37a0cba, "kfree" }, - { 0xbdcfd186, "usb_free_urb" }, - { 0x409bcb62, "mutex_unlock" }, - { 0xcf2a6966, "up" }, - { 0x72e2c5fd, "usb_submit_urb" }, - { 0x81b395b3, "down_interruptible" }, - { 0xaa2a8b37, "usb_find_interface" }, - { 0x2ab7989d, "mutex_lock" }, - { 0xc5850110, "printk" }, - { 0xf5b8840d, "usb_kill_urb" }, - { 0xbdfb6dbb, "__fentry__" }, -}; - -MODULE_INFO(depends, ""); - -MODULE_ALIAS("usb:v0A81p0701d*dc*dsc*dp*ic*isc*ip*in*"); - -MODULE_INFO(srcversion, "8B570854FC10E44C8BE3AC9"); diff --git a/ml_driver.mod.o b/ml_driver.mod.o deleted file mode 100644 index 25a248a41a90408affe987a9c41350334e2b5885..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4840 zcmeHLO^6&t6t2mv8qIFppn@R6gg`Wd+v#ylkN(;0 zMu-uTy{H5s!h(46rh-BQ6N7q5Kq3+Z527gIH5UUBL=knXw6Va;$o2 zwxTww)!E6J#^}M>DWX|S3u;l&oL*87PF6g1Lai8OLoXWv{Jb*L%M3IIno}l*>6wlZ z)QE3}o@+73teqf^W}7wJqK404Gy*?cTVQ%^OsOjBNToVHvS2!<&-Bvq=bkUwu0bQm zay0{05nfR0OdzFQSUvwUn&22&CbhH`Hwshj|EFG>TV6#Um>xAu-&|lp2odHk7yf)@ zS@I=YPBTv@U+&-gs^oXZhftRCunD>T@!l4C8tzFaAEVpr{O*~T5yAQEt`qvMMeSgr z+i4T)=D_8bu-RLpt`}_LxIxnkOSgW)ChBV^Y2Y!3TCU#Sz_|zf<6o_}5e`D%(Y=)( z9-BkkZ!6>I0h9MuXv=qP8U=kUfPFi@{e|;s5Ndjx>WgjK(wMdRsGZi^Up;dUEzEys z{p5Z6gw*CwuSq`SfI0ae9S_3%egClJYZm05Mt+mGG1rF&c)Yp zRNQ|kb71fEBQIo4D`zq%-Y9>7e4an%7;zu1T+beP@2!1SMj7X?zr6!_!-aF#PQ|Xed&B`@4m0C9=0;Dm4V(F zxEEl4-iGQ3b0U5iMAy05+3C`g^UcT!qtaA-&W*TLIsLS%s8yx1FUEU!EKuxwfZY1G zms7FlNuQ7++1AS)aQ>-V*H(lPvSk+lg%rL=IN)ZBxU?049}xI4Vc#z#iXyouWyR`? zAPQ;xz8KdyK0x@P67<0s=5>)^wz~_S_%I%R2nJnVbKVqqB-|&2L{TK$Q&z0L52BF5 zA5D1_$pa~?qZUbemNEVzh+U~T&xn*?2Am(XI&`k#$EO!gk_}vetBs<=0c-x~;bZd+ zdiYt|xwKU)T@C!IR#m$&aUmO>0+dpDo9c2&u4`-fh4ENZM%+cD(PqyoP!d-xQg!DHhhFh49*>$ zAK_>EbToIYKL$*kTXqH4H|SBMDQVpe8e$?%30_aMZY9fq0-ABv-zono;9{TIouv*K zmXBhQ)Y@Ukm=QXdDFWA^2tIk2~GE+ynN*5L8gUk3~{v$H(tUFaED0|7R0stYrEB E0W$rgVE_OC diff --git a/ml_driver.o b/ml_driver.o deleted file mode 100644 index 297fbd6ff628294fc05d5a552f3646fff89ea26f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 13768 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 WzgDUBZ-H|9t=lY#wJrr0EB*y@DIRbD diff --git a/test_write.c b/test_write.c deleted file mode 100644 index 02eb9f2..0000000 --- a/test_write.c +++ /dev/null @@ -1,41 +0,0 @@ -#include -#include -#include -// #include -#include -#include - -int main( void ) -{ - int fd; - char buf[1]; - buf[0]=0x04; - - fd = open("/dev/ml0", O_RDWR); - // lseek(fd, 1, SEEK_SET); - if(-1==write(fd, &buf, 1)){ - perror("perror output:"); - } - - - usleep(1000); - - buf[0]=0x20; - if(-1==write(fd, &buf, 1)){ - perror("perror output:"); - } - - close(fd); - // perror("perror output:"); - - - - - return 0; -} - - -// if(-1 == write(fd, &buf, 4)){ - -// } -// close(fd); \ No newline at end of file diff --git a/user-space.c b/user-space.c deleted file mode 100755 index b6c25d2..0000000 --- a/user-space.c +++ /dev/null @@ -1,120 +0,0 @@ -#include -#include - -#include -#include - -#define DEFAULT_DEVICE "/dev/ml0" -#define DEFAULT_DURATION 800 - -#define ML_STOP 0x20 -#define ML_UP 0x02 -#define ML_DOWN 0x01 -#define ML_LED 0x03 -#define ML_LEFT 0x04 -#define ML_RIGHT 0x08 -#define ML_FIRE 0x10 - -#define ML_FIRE_DELAY 5000 - -void send_cmd(int fd, int cmd) -{ - int retval = 0; - - retval = write(fd, &cmd, 1); - if (retval < 0){ - fflush("/dev/ml0"); - // printf("the fsync rst is %d\n",ret); - fprintf(stderr, "could not send command to fd=%d\n", fd); - } - -} - -static void usage(char *name) -{ - fprintf(stderr, - "\nusage: %s [-mbslrudfch] [-t ]\n\n" - " -m missile launcher [/dev/ml0]\n" - " -s stop\n" - " -l turn left\n" - " -r turn right\n" - " -u turn up\n" - " -d turn down\n" - " -f fire\n" - " -b blink leds\n" - " -t specify send_cmdment duration in milli seconds\n" - " -c calibrate the missile launcher axes\n" - " -h display this help\n\n" - "notes:\n" - "* it is possible to combine the directions of the two axes, e.g.\n" - " '-lu' send_cmds the missile launcher up and left at the same time.\n" - "" , name); - exit(1); -} - - -int main(int argc, char *argv[]) -{ - char c; - int fd; - int cmd = ML_STOP; - int duration = DEFAULT_DURATION; - char *dev = DEFAULT_DEVICE; - - if (argc < 2) - usage(argv[0]); - - while ((c = getopt(argc, argv, "m:bslrudfcht:")) != -1) { - switch (c) { - case 'm': dev = optarg; - break; - case 'l': cmd |= ML_LEFT; - break; - case 'r': cmd |= ML_RIGHT; - break; - case 'u': cmd |= ML_UP; - break; - case 'd': cmd |= ML_DOWN; - break; - case 'f': cmd = ML_FIRE; - break; - case 'b': cmd = ML_LED; - break; - case 's': cmd = ML_STOP; - break; - case 't': duration = atoi(optarg); - break; - case 'c': /* - retval = ioctl(fd, ML_IOCTCALIBRATE, ML_CALIBRATE_FULL); - if (retval < 0) - perror("ioctl"); - */ - break; - default: usage(argv[0]); - } - } - - printf("Open device %s\n", dev); - fd = open(dev, O_RDWR); - if (fd == -1) { - perror("open"); - exit(1); - } - - printf("Send command %i\n", cmd); - printf("command hex is 0x%2x\n", cmd); - send_cmd(fd, cmd); - - if (cmd & ML_FIRE) - duration = ML_FIRE_DELAY; - else if (cmd == ML_UP || cmd == ML_DOWN) - duration /= 2; - usleep(duration * 1000); - - send_cmd(fd, ML_STOP); - - close(fd); - - return EXIT_SUCCESS; -} - diff --git a/userspace/CMakeFiles/Twrite.dir/Twrite.c.o b/userspace/CMakeFiles/Twrite.dir/Twrite.c.o deleted file mode 100644 index 50a42c7c21aedca5ecb3f626fc8991e0f15a015c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2216 zcmbu9&ubGw6vtnZ{!-I6N)JLs0#d1Bw}}>Pi%Oc3Hiu}XZM-hqWNTydi_Jz`p$Znn zP=y{n3!c36C?2#RC|>+81VIlK4;B&X`_9g!+wJC}UwAujKJ(tp+nJqxn958A0|8PB z&^6lcDM~chzV9c5o1h-*rk}m1e`nK;FX{E~k$ifiZD5cG(~Z<_eEV$>?z5|ievQXh zJQ}H;^|c*Zjmi-LH&Q!|kHUM0#fA4F^^0S!|KhPXfa%6(8IxY$-K&TF^Tk5xjqGkd zeW_0rW4DXxKD{5#n|Fsx#TZph%c@w>O5Lv3?Qx>%$;t8PV0NKiw(HR`ZA6O=#p|LM ze{eCT#YVLFIfoOqaU~HpY{&GCEb%*TgN4|jKBu9;{aFgEL<0Tc&aO=^{}gi=^a_tu zPvmiMvb!Vrf+GO@g*R`bAA5eIA>WfiEvlM>Ss_vVL55yPyp134JPbv=f59O-(jva& z5I@S~gsXnBC(L@;u)kgnF!1B&Tkv=bez^s|(t;;jaGJko6>L+>QOPKjNuSQlBquWZ z%+%CeYF?k8NM=$xRjOuLer=R1R%#}hD+QZGCh2<3Hgd~)ZfRLxGzvvth;_zk@Lh>h z`LpL}NOF8@VK&9Z?c%8_poX=GLaX>Rp(eb&L(Jx}hflS!db6y?=&p81#{xt~qjnJ|yW@uapik^9GyDy`^~Yp> zl*ims`>)s?b`a{#zbW%aRiJFW`S=R`&i^?eOYI-dAAez$uejgZ$a^B!-;!;Z8UD@Q he9Y-Rdqy-W;T$?H$?2K|ciS(2OV)2UBOS+^{}+{w^6vlu diff --git a/userspace/CMakeFiles/Uspace.dir/Uspace.c.o b/userspace/CMakeFiles/Uspace.dir/Uspace.c.o deleted file mode 100644 index 9c4493bee45398ef87978c61d5068bc17fe5e29b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4792 zcmb`LUu+ab7{KRR(4!z2soGS_!lFe`tQrC9-rZhrVej^`J8Q2> z1wBwUXN3?Sh#ED~C?-Cb=!5YA5u$|`Q(sI>2;s$8y*^;hfuFxgY9bnq&~VHTY50| z71rVC(Q{{{N!s;bWSSf3)&A)?i*Inw&{i_+3`WlDfj>T`O;Q*h(=O3gj53^B547pZ z$oWLuk&j_auWI9Z6{DDVwO+6Pb_`hCNv&3yNLQv84h;pT^wC9!01ET!tQP&aKDszW ziSh3GMG+zRtvyxQIytMh9iDS*kHE8~wh^9*S~rB!4koqr(12J-Z50o$w!C34mhDol zO$w`arC!&oTgR)~c`Rw12XyO$9&keFvq=#r8v|*gRPH!wVtTWtEZ17B(B63BRqXT?$Tr z`}=K)@gJuH?GkjYQxmWx4eP0s6oQ@U@>ZD8xic`dI%~eLx?p!gGn99z zmS&tn!GM}MG?#sFMK&q)lD=mQnq72-M|XA<(w^=5*<2>S8+wdBQ1Hx**S$NLq_m?z zLn&CEXW1sT4ZoPln=aicrrwQOUZmwQr-WTQ>N4LgQrpZiWUj+F>oViEg9J~cM78Da7+Jg4iT6*WtZrKGIgxmz^ z0puVX@FB*bNufLg1?5*fQ^i>8g+yo^j>JDueHQtn9yi(=`-Q<=L^fAjwT9VW&9K)R zuEy0Ix2XmEhq*#K%!#YC5=b~kTFJZ^ivHs_y_L-Qhd%Dj4N_iW{+og0m@2CQ#Bu!o z#c|xDINsZYKiY(E2aa*R2Q^B#uTb|xiSxg!2{)SXjZJvI2`@C^tOKoX$Y10nv$$=*ydbm#;AVaRjOp?plzLzH+%bKoBawXR) zvK%qX79$12D#Gc&40n(i%(2Lz2}e4M4vZ40J1)#*n`Vh*Y{wJZP40&HQ1G`oAIfF; z2&3GO5Cp%u*FX`x2ihp8k5??gHzNc={Wd6qKaLPY__;3XlIM7hesCX!ewlOCPetMw z&pO^e%4^ln+Y-MX+QR>7&P6|up;h%8+k;3N*j@8yZ|_NeVBU zDYy`Ic+AM`<^92;pDMX3?6c*f?>KWGOV From 19771089823b5d951299d94d8f2a750500fbb527 Mon Sep 17 00:00:00 2001 From: chiahungma Date: Sat, 15 Apr 2023 16:13:52 +0800 Subject: [PATCH 5/8] remove useless files --- Makefile | 1 - kernel_module/Makefile | 24 -- kernel_module/Module.symvers | 0 kernel_module/ml_driver.c | 743 ----------------------------------- 4 files changed, 768 deletions(-) delete mode 100755 kernel_module/Makefile delete mode 100644 kernel_module/Module.symvers delete mode 100755 kernel_module/ml_driver.c diff --git a/Makefile b/Makefile index d11df34..462dbc1 100755 --- a/Makefile +++ b/Makefile @@ -22,6 +22,5 @@ default: clean: $(MAKE) -C $(KERNELDIR) M=$(PWD) clean - rm *.symvers endif diff --git a/kernel_module/Makefile b/kernel_module/Makefile deleted file mode 100755 index 2d22c5c..0000000 --- a/kernel_module/Makefile +++ /dev/null @@ -1,24 +0,0 @@ -# Uncomment the following to enable debug. -#DEBUG = y - -#ifeq ($(DEBUG),y) -# DBGFLAGS = -O -g -DML_DEBUG -#else -# DBGFLAGS = -O2 -#endif - -#ccflags-y += $(DBGFLAGS) -CONFIG_MODULE_SIG=n - -obj-m := ml_driver.o - -KERNELDIR ?= /lib/modules/$(shell uname -r)/build -PWD := $(shell pwd) - -default: - $(MAKE) -C $(KERNELDIR) M=$(PWD) modules - -clean: - $(MAKE) -C $(KERNELDIR) M=$(PWD) clean - #rm *.symvers - diff --git a/kernel_module/Module.symvers b/kernel_module/Module.symvers deleted file mode 100644 index e69de29..0000000 diff --git a/kernel_module/ml_driver.c b/kernel_module/ml_driver.c deleted file mode 100755 index be42911..0000000 --- a/kernel_module/ml_driver.c +++ /dev/null @@ -1,743 +0,0 @@ -/* - * Dream Cheeky USB Missile Launcher driver - * - * Copyright (C) 2007 Matthias Vallentin - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License as - * published by the Free Software Foundation, version 2. - * - * derived from USB Skeleton driver 2.0 - * Copyright (C) 2001-2004 Greg Kroah-Hartman (greg@kroah.com) - * - * also inspired from LEGO USB Tower driver - * Copyright (C) 2003 David Glance - * 2001-2004 Juergen Stuber - * - * Notes: - * - Apparently it fails sometimes to submit the correction control URB in the - * interrupt-in-endpoint hanlder (-EINVAL). - */ - -#include -#include - -#include /* kmalloc() */ -#include /* USB stuff */ -#include /* mutexes */ -#include - -//#include /* copy_*_user */ -#include -// #define DEBUG_LEVEL_DEBUG 0x1F -// #define DEBUG_LEVEL_INFO 0x0F -// #define DEBUG_LEVEL_WARN 0x07 -// #define DEBUG_LEVEL_ERROR 0x03 -// #define DEBUG_LEVEL_CRITICAL 0x01 - - - -// #define ML_DEFAULT 0 -// #define ML_THUNDER 1 - -//#define MISSILE_LAUNCHER ML_DEFAULT - -//#if MISSILE_LAUNCHER == ML_THUNDER - -/* - * USB Missile Launcher Thunder version (with LEDs) - */ -//#define ML_VENDOR_ID 0x2123 -//#define ML_PRODUCT_ID 0x1010 - -//#else - -/* - * USB Missile Launcher default version - */ -#define ML_VENDOR_ID 0x0a81 -#define ML_PRODUCT_ID 0x0701 - -//#endif - -#define ML_CTRL_BUFFER_SIZE 8 -#define ML_CTRL_REQUEST_TYPE 0x21 -#define ML_CTRL_REQUEST 0x09 -#define ML_CTRL_VALUE 0x0200 -#define ML_CTRL_INDEX 0x0 - -#define ML_STOP 0x00 -#define ML_UP 0x01 -#define ML_DOWN 0x02 -// #if MISSILE_LAUNCHER == ML_THUNDER -// #define ML_LED 0x03 -// #endif -#define ML_LEFT 0x04 -#define ML_RIGHT 0x08 -#define ML_UP_LEFT (ML_UP | ML_LEFT) -#define ML_DOWN_LEFT (ML_DOWN | ML_LEFT) -#define ML_UP_RIGHT (ML_UP | ML_RIGHT) -#define ML_DOWN_RIGHT (ML_DOWN | ML_RIGHT) -#define ML_FIRE 0x10 - -#define ML_MAX_UP 0x80 /* 80 00 00 00 00 00 00 00 */ -#define ML_MAX_DOWN 0x40 /* 40 00 00 00 00 00 00 00 */ -#define ML_MAX_LEFT 0x04 /* 00 04 00 00 00 00 00 00 */ -#define ML_MAX_RIGHT 0x08 /* 00 08 00 00 00 00 00 00 */ - -//#ifdef CONFIG_USB_DYNAMIC_MINORS -#define ML_MINOR_BASE 0 -//#else -// #define ML_MINOR_BASE 96 -//#endif - -struct usb_ml { - struct usb_device *udev; - struct usb_interface *interface; - unsigned char minor; - char serial_number[8]; - - int open_count; /* Open count for this port */ - struct semaphore sem; /* Locks this structure */ - spinlock_t cmd_spinlock; /* locks dev->command */ - - char *int_in_buffer; - struct usb_endpoint_descriptor *int_in_endpoint; - struct urb *int_in_urb; - int int_in_running; - - char *ctrl_buffer; /* 8 byte buffer for ctrl msg */ - struct urb *ctrl_urb; - struct usb_ctrlrequest *ctrl_dr; /* Setup packet information */ - int correction_required; - - __u8 command;/* Last issued command */ -}; - - -static const struct usb_device_id ml_table [] = { - { USB_DEVICE(ML_VENDOR_ID, ML_PRODUCT_ID) }, - //{ USB_DEVICE_INFO(0x03,0x00,0x00) }, - { } -}; - - -MODULE_DEVICE_TABLE (usb, ml_table); - -// static int debug_level = DEBUG_LEVEL_INFO; -// static int debug_trace = 0; -//module_param(debug_level, int, S_IRUGO | S_IWUSR); -//module_param(debug_trace, int, S_IRUGO | S_IWUSR); -//MODULE_PARM_DESC(debug_level, "debug level (bitmask)"); -//MODULE_PARM_DESC(debug_trace, "enable function tracing"); - -/* Prevent races between open() and disconnect */ - -//below is global mutex declartion -// static DEFINE_MUTEX(disconnect_mutex); -static struct usb_driver ml_driver; - -/*static inline void ml_debug_data(const char *function, int size, - const unsigned char *data) -{ - int i; - if ((debug_level & DEBUG_LEVEL_DEBUG) == DEBUG_LEVEL_DEBUG) { - printk(KERN_DEBUG "[debug] %s: length = %d, data = ", - function, size); - for (i = 0; i < size; ++i) - printk("%.2x ", data[i]); - printk("\n"); - } -}*/ - -// static void ml_abort_transfers(struct usb_ml *dev) -// { -// if (! dev) { -// printk("dev is NULL"); -// return; -// } - -// if (! dev->udev) { -// printk("udev is NULL"); -// return; -// } - -// if ( dev->udev->state == USB_STATE_NOTATTACHED) { -// printk("udev not attached"); -// return; -// } - -// /* Shutdown transfer */ -// if (dev->int_in_running) { -// dev->int_in_running = 0; -// mb(); -// if (dev->int_in_urb) -// usb_kill_urb(dev->int_in_urb); -// } - -// if (dev->ctrl_urb) -// usb_kill_urb(dev->ctrl_urb); -// } - -static inline void ml_delete(struct usb_ml *dev) -{ - // ml_abort_transfers(dev); - - /* Free data structures. */ - if (dev->int_in_urb) - usb_free_urb(dev->int_in_urb); - if (dev->ctrl_urb) - usb_free_urb(dev->ctrl_urb); - - kfree(dev->int_in_buffer); - kfree(dev->ctrl_buffer); - kfree(dev->ctrl_dr); - kfree(dev); -} - -// static void ml_ctrl_callback(struct urb *urb) -// { -// struct usb_ml *dev = urb->context; -// dev->correction_required = 0; /* TODO: do we need race protection? */ -// } - -// static void ml_int_in_callback(struct urb *urb) -// { -// struct usb_ml *dev = urb->context; -// int retval; - -// //ml_debug_data(__FUNCTION__, urb->actual_length, urb->transfer_buffer); - -// if (urb->status) { -// if (urb->status == -ENOENT || -// urb->status == -ECONNRESET || -// urb->status == -ESHUTDOWN) { -// return; -// } else { -// //DBG_ERR("non-zero urb status (%d)", urb->status); -// goto resubmit; /* Maybe we can recover. */ -// } -// } - -// if (urb->actual_length > 0) { -// spin_lock(&dev->cmd_spinlock); - -// if (dev->int_in_buffer[0] & ML_MAX_UP && dev->command & ML_UP) { -// dev->command &= ~ML_UP; -// dev->correction_required = 1; -// } else if (dev->int_in_buffer[0] & ML_MAX_DOWN && -// dev->command & ML_DOWN) { -// dev->command &= ~ML_DOWN; -// dev->correction_required = 1; -// } - -// if (dev->int_in_buffer[1] & ML_MAX_LEFT -// && dev->command & ML_LEFT) { -// dev->command &= ~ML_LEFT; -// dev->correction_required = 1; -// } else if (dev->int_in_buffer[1] & ML_MAX_RIGHT -// && dev->command & ML_RIGHT) { -// dev->command &= ~ML_RIGHT; -// dev->correction_required = 1; -// } - - -// if (dev->correction_required) { -// dev->ctrl_buffer[0] = dev->command; -// spin_unlock(&dev->cmd_spinlock); -// retval = usb_submit_urb(dev->ctrl_urb, GFP_ATOMIC); -// if (retval) { -// //DBG_ERR("submitting correction control URB failed (%d)", -// //retval); -// } -// } else { -// spin_unlock(&dev->cmd_spinlock); -// } -// } - -// resubmit: -// /* Resubmit if we're still running. */ -// if (dev->int_in_running && dev->udev) { -// retval = usb_submit_urb(dev->int_in_urb, GFP_ATOMIC); -// if (retval) { -// //DBG_ERR("resubmitting urb failed (%d)", retval); -// printk("resubmitting urb failed (%d)", retval); -// dev->int_in_running = 0; -// } -// } -// } - - - - - -static int ml_open(struct inode *inode, struct file *file) -{ - struct usb_ml *dev = NULL; - struct usb_interface *interface; - int subminor; - int retval = 0; - - printk("Open device"); - subminor = iminor(inode); - - // mutex_lock(&disconnect_mutex); - - interface = usb_find_interface(&ml_driver, subminor); - if (! interface) { - printk("can't find device for minor %d", subminor); - retval = -ENODEV; - goto exit; - } - - file->private_data = usb_get_intfdata(interface); - // if (! dev) { - // retval = -ENODEV; - // goto exit; - // } - - goto exit; - /* lock this device */ - // if (down_interruptible (&dev->sem)) { - // printk("sem down failed"); - // retval = -ERESTARTSYS; - // goto exit; - // } - - /* Increment our usage count for the device. */ - // ++dev->open_count; - // if (dev->open_count > 1) - // printk("open_count = %d", dev->open_count); - - /* Initialize interrupt URB. */ - // usb_fill_int_urb(dev->int_in_urb, dev->udev, - // usb_rcvintpipe(dev->udev, - // dev->int_in_endpoint->bEndpointAddress), - // dev->int_in_buffer, - // le16_to_cpu(dev->int_in_endpoint->wMaxPacketSize), - // ml_int_in_callback, - // dev, - // dev->int_in_endpoint->bInterval); - -// dev->int_in_running = 1; -// mb(); - -// retval = usb_submit_urb(dev->int_in_urb, GFP_KERNEL); -// if (retval) { -// printk("submitting int urb failed (%d)", retval); -// dev->int_in_running = 0; -// --dev->open_count; -// goto unlock_exit; -// } - -// /* Save our object in the file's private structure. */ -// file->private_data = dev; - -// unlock_exit: - // up(&dev->sem); - -exit: - // mutex_unlock(&disconnect_mutex); - return retval; -} - -// static int ml_release(struct inode *inode, struct file *file) -// { -// struct usb_ml *dev = NULL; -// int retval = 0; - -// printk("Release driver"); -// dev = file->private_data; - -// if (! dev) { -// printk("dev is NULL"); -// retval = -ENODEV; -// goto exit; -// } - -// /* Lock our device */ -// if (down_interruptible(&dev->sem)) { -// retval = -ERESTARTSYS; -// goto exit; -// } - -// if (dev->open_count <= 0) { -// printk("device not opened"); -// retval = -ENODEV; -// goto unlock_exit; -// } - -// if (! dev->udev) { -// printk("device unplugged before the file was released"); -// up (&dev->sem); /* Unlock here as ml_delete frees dev. */ -// ml_delete(dev); -// goto exit; -// } - -// if (dev->open_count > 1) -// printk("open_count = %d", dev->open_count); - -// ml_abort_transfers(dev); -// --dev->open_count; - -// unlock_exit: -// up(&dev->sem); - -// exit: -// return retval; -// } - - - - -// static long int ml_read(struct file *file , char __user *user_buf, size_t count, loff_t *ppos){ -// printk("fuck read!!"); -// return 0; -// } - - - -static ssize_t ml_write(struct file *file, const char __user *user_buf, size_t - count, loff_t *ppos) -{ - struct usb_ml *dev; - int retval = 0; - bool policy; -// #if MISSILE_LAUNCHER == ML_THUNDER -// static int ml_led = 1; -// #endif - char buff[8]; - __u8 cmd = ML_STOP; - void *modem_status; - if((modem_status= kmalloc(sizeof(char)*8, GFP_KERNEL))<=0){ - return -ENOMEM; - } - // if (modem_status<=0) - - - - - - // printk("Send command"); - dev = file->private_data; - - /* Lock this object. */ - // if (down_interruptible(&dev->sem)) { - // retval = -ERESTARTSYS; - // goto exit; - // } - - /* Verify that the device wasn't unplugged. */ - if (! dev->udev) { - retval = -ENODEV; - printk("No device or device unplugged (%d)", retval); - goto unlock_exit; - } - - /* Verify that we actually have some data to write. */ - if (count == 0) - goto unlock_exit; - - /* We only accept one-byte writes. */ - if (count != 1) - count = 1; - - if (copy_from_user(&cmd, user_buf, count)) { - retval = -EFAULT; - goto unlock_exit; - } - printk("cmd is 0x%02x",cmd); - policy = (cmd == ML_STOP || cmd == ML_UP || cmd == ML_DOWN - || cmd == ML_LEFT || cmd == ML_RIGHT || cmd == ML_UP_LEFT - || cmd == ML_DOWN_LEFT || cmd == ML_UP_RIGHT - || cmd == ML_DOWN_RIGHT || cmd == ML_FIRE); -// #if MISSILE_LAUNCHER == ML_THUNDER -// policy = policy || (cmd == ML_LED); -// #endif - if (!policy) { - printk("illegal command issued"); - retval = -0x2a; /* scnr */ - goto unlock_exit; - } - - -// #if MISSILE_LAUNCHER == ML_THUNDER -// if (cmd == ML_LED) { -// buf[0] = ML_LED; -// buf[1] = ml_led; -// ml_led = 1 - ml_led; -// } else { - - memset(buff,0,8); - memset(modem_status, 0, sizeof(char)*8); - buff[0]=cmd; - // buff[1]=cmd; - strncpy( modem_status, buff, 8); - // modem_status = buff; -// buf[1] = cmd; -// } -// #else - // buf[1] = cmd; - // memset(&buf[1], 0, ML_CTRL_BUFFER_SIZE - 1); - -// #endif - /* The interrupt-in-endpoint handler also modifies dev->command. */ - // spin_lock(&dev->cmd_spinlock); - dev->command = cmd; - // spin_unlock(&dev->cmd_spinlock); - - retval = usb_control_msg(dev->udev, - usb_sndctrlpipe(dev->udev, 0), - ML_CTRL_REQUEST, - ML_CTRL_REQUEST_TYPE, - ML_CTRL_VALUE, - ML_CTRL_INDEX, - // &buf, - modem_status, - 8, - // USB_CTRL_SET_TIMEOUT); - 2000); - // HZ*5); - - if (retval < 0) { - printk("usb_control_msg failed (%d)", retval); - goto unlock_exit; - } - - /* We should have written only one byte. */ - retval = count; - -unlock_exit: - // up(&dev->sem); - -exit: - kfree(modem_status); - return retval; -} - - -static struct file_operations ml_fops = { - .owner = THIS_MODULE, - .write = ml_write, - .open = ml_open, - // .release = ml_release, - // .read = ml_read, -}; - -static struct usb_class_driver ml_class = { - //.name = "ml%d", - .name = "ml%d", - .fops = &ml_fops, - // .minor_base = 0,//ML_MINOR_BASE, -}; - -static int ml_probe(struct usb_interface *interface, - const struct usb_device_id *id){ - // printk("fuck probe!!"); - // return 0; - // dev_info(&interface->dev, "USB Driver Probed: Vendor ID : 0x%02x,\t" - // "Product ID : 0x%02x\n", id->idVendor, id->idProduct); - // return 0; - //printk("fuck!!"); - struct usb_device *udev; - - struct usb_ml *dev; - - struct usb_host_interface *iface_desc; - struct usb_endpoint_descriptor *endpoint; - int i, int_end_size; - int retval = -ENODEV; - udev= interface_to_usbdev(interface); - dev = NULL; - printk("Probe missile launcher"); - - if (! udev) { - printk("udev is NULL"); - goto exit; - } - - // dev = kzalloc(sizeof(struct usb_ml), GFP_KERNEL); - // if (! dev) { - // printk("cannot allocate memory for struct usb_ml"); - // retval = -ENOMEM; - // goto exit; - // } - - // dev->command = ML_STOP; - - // sema_init(&dev->sem, 1); - // spin_lock_init(&dev->cmd_spinlock); - - // dev->udev = udev; - // dev->interface = interface; - // iface_desc = interface->cur_altsetting; - - /* Set up interrupt endpoint information. */ - // for (i = 0; i < iface_desc->desc.bNumEndpoints; ++i) { - // endpoint = &iface_desc->endpoint[i].desc; - - // if (((endpoint->bEndpointAddress & USB_ENDPOINT_DIR_MASK) - // == USB_DIR_IN) - // && ((endpoint->bmAttributes & USB_ENDPOINT_XFERTYPE_MASK) - // == USB_ENDPOINT_XFER_INT)) - // dev->int_in_endpoint = endpoint; - - // } - // if (! dev->int_in_endpoint) { - // printk("could not find interrupt in endpoint"); - // goto error; - // } - - // int_end_size = le16_to_cpu(dev->int_in_endpoint->wMaxPacketSize); - - // dev->int_in_buffer = kmalloc(int_end_size, GFP_KERNEL); - // if (! dev->int_in_buffer) { - // printk("could not allocate int_in_buffer"); - // retval = -ENOMEM; - // goto error; - // } - - // dev->int_in_urb = usb_alloc_urb(0, GFP_KERNEL); - // if (! dev->int_in_urb) { - // printk("could not allocate int_in_urb"); - // retval = -ENOMEM; - // goto error; - // } - - // /* Set up the control URB. */ - // dev->ctrl_urb = usb_alloc_urb(0, GFP_KERNEL); - // if (! dev->ctrl_urb) { - // printk("could not allocate ctrl_urb"); - // retval = -ENOMEM; - // goto error; - // } - - // dev->ctrl_buffer = kzalloc(ML_CTRL_BUFFER_SIZE, GFP_KERNEL); - // if (! dev->ctrl_buffer) { - // printk("could not allocate ctrl_buffer"); - // retval = -ENOMEM; - // goto error; - // } - - // dev->ctrl_dr = kmalloc(sizeof(struct usb_ctrlrequest), GFP_KERNEL); - // if (! dev->ctrl_dr) { - // printk("could not allocate usb_ctrlrequest"); - // retval = -ENOMEM; - // goto error; - // } - // dev->ctrl_dr->bRequestType = ML_CTRL_REQUEST_TYPE; - // dev->ctrl_dr->bRequest = ML_CTRL_REQUEST; - // dev->ctrl_dr->wValue = cpu_to_le16(ML_CTRL_VALUE); - // dev->ctrl_dr->wIndex = cpu_to_le16(ML_CTRL_INDEX); - // dev->ctrl_dr->wLength = cpu_to_le16(ML_CTRL_BUFFER_SIZE); - - // usb_fill_control_urb(dev->ctrl_urb, dev->udev, - // usb_sndctrlpipe(dev->udev, 0), - // (unsigned char *)dev->ctrl_dr, - // dev->ctrl_buffer, - // ML_CTRL_BUFFER_SIZE, - // ml_ctrl_callback, - // dev); - - /* Retrieve a serial. */ - // if (! usb_string(udev, udev->descriptor.iSerialNumber, - // dev->serial_number, sizeof(dev->serial_number))) { - // printk("could not retrieve serial number"); - // goto error; - // } - - /* Save our data pointer in this interface device. */ - // usb_set_intfdata(interface, dev); - usb_set_intfdata(interface, udev); - - /* We can register the device now, as it is ready. */ - retval = usb_register_dev(interface, &ml_class); - if (retval) { - printk("not able to get a minor for this device."); - usb_set_intfdata(interface, NULL); - goto error; - } - - // dev->minor = interface->minor; - - printk("USB missile launcher now attached to /dev/ml%d", - interface->minor - ML_MINOR_BASE); - -exit: - return retval; - -error: - ml_delete(dev); - return retval; -} - -static void ml_disconnect(struct usb_interface *interface) -{ - // struct usb_ml *dev; - // int minor; - - // // mutex_lock(&disconnect_mutex); /* Not interruptible */ - - // dev = usb_get_intfdata(interface); - // usb_set_intfdata(interface, NULL); - - // // down(&dev->sem); /* Not interruptible */ - - // minor = dev->minor; - - /* Give back our minor. */ - usb_deregister_dev(interface, &ml_class); - - /* If the device is not opened, then we clean up right now. */ - // if (! dev->open_count) { - // // up(&dev->sem); - // ml_delete(dev); - // } else { - // dev->udev = NULL; - // // up(&dev->sem); - // } - - // mutex_unlock(&disconnect_mutex); - - // printk("USB missile launcher /dev/ml%d now disconnected", - // minor - ML_MINOR_BASE); -} - -static struct usb_driver ml_driver = { - .name = "ml_driver", - //.id_table = ml_table, - .probe = ml_probe, - .disconnect = ml_disconnect, - .id_table = ml_table, -}; - - -static int __init usb_ml_init(void) -{ - int result; - - printk("Register driver"); - result = usb_register(&ml_driver); - if (result) { - printk("registering driver failed"); - } else { - printk("driver registered successfully"); - } - - return result; -} - - -static void __exit usb_ml_exit(void) -{ - usb_deregister(&ml_driver); - printk("module deregistered"); -} - -module_init(usb_ml_init); -module_exit(usb_ml_exit); - -MODULE_AUTHOR("Matthias Vallentin"); -MODULE_LICENSE("GPL"); - -// vim: ts=4 From 6bb5dc1022d1d66a1390d652d302ac607b125894 Mon Sep 17 00:00:00 2001 From: chiahungma Date: Sun, 16 Apr 2023 00:50:54 +0800 Subject: [PATCH 6/8] add userspace control program implemented by ncurse --- userspace/CMakeCache.txt | 75 ++++++++++ userspace/CMakeFiles/Makefile.cmake | 8 +- userspace/CMakeFiles/Makefile2 | 61 +++----- userspace/CMakeFiles/TargetDirectories.txt | 3 +- .../CMakeFiles/controlHID.dir/C.includecache | 28 ++++ .../controlHID.dir/DependInfo.cmake | 20 +++ .../CMakeFiles/controlHID.dir/build.make | 100 +++++++++++++ .../controlHID.dir/cmake_clean.cmake | 10 ++ .../CMakeFiles/controlHID.dir/controlHID.c.o | Bin 0 -> 6536 bytes .../CMakeFiles/controlHID.dir/depend.internal | 5 + .../CMakeFiles/controlHID.dir/depend.make | 5 + .../CMakeFiles/controlHID.dir/flags.make | 10 ++ userspace/CMakeFiles/controlHID.dir/link.txt | 1 + .../CMakeFiles/controlHID.dir/progress.make | 3 + userspace/CMakeFiles/progress.marks | 2 +- userspace/CMakeLists.txt | 20 ++- userspace/Makefile | 96 ++++--------- userspace/Twrite | Bin 16920 -> 0 bytes userspace/Twrite.c | 50 ------- userspace/Uspace | Bin 17264 -> 0 bytes userspace/Uspace.c | 120 ---------------- userspace/controlHID | Bin 0 -> 18024 bytes userspace/controlHID.c | 134 ++++++++++++++++++ 23 files changed, 454 insertions(+), 297 deletions(-) create mode 100644 userspace/CMakeFiles/controlHID.dir/C.includecache create mode 100644 userspace/CMakeFiles/controlHID.dir/DependInfo.cmake create mode 100644 userspace/CMakeFiles/controlHID.dir/build.make create mode 100644 userspace/CMakeFiles/controlHID.dir/cmake_clean.cmake create mode 100644 userspace/CMakeFiles/controlHID.dir/controlHID.c.o create mode 100644 userspace/CMakeFiles/controlHID.dir/depend.internal create mode 100644 userspace/CMakeFiles/controlHID.dir/depend.make create mode 100644 userspace/CMakeFiles/controlHID.dir/flags.make create mode 100644 userspace/CMakeFiles/controlHID.dir/link.txt create mode 100644 userspace/CMakeFiles/controlHID.dir/progress.make delete mode 100755 userspace/Twrite delete mode 100644 userspace/Twrite.c delete mode 100755 userspace/Uspace delete mode 100755 userspace/Uspace.c create mode 100755 userspace/controlHID create mode 100644 userspace/controlHID.c diff --git a/userspace/CMakeCache.txt b/userspace/CMakeCache.txt index 34c3b3f..aa2f86d 100644 --- a/userspace/CMakeCache.txt +++ b/userspace/CMakeCache.txt @@ -215,6 +215,27 @@ CTRL_PAiNEL_BINARY_DIR:STATIC=/home/wandog/workspace/missile_related/ml-driver/u //Value Computed by CMake CTRL_PAiNEL_SOURCE_DIR:STATIC=/home/wandog/workspace/missile_related/ml-driver/userspace +//Path to a library. +CURSES_CURSES_LIBRARY:FILEPATH=/usr/lib/x86_64-linux-gnu/libcurses.so + +//Path to a library. +CURSES_FORM_LIBRARY:FILEPATH=/usr/lib/x86_64-linux-gnu/libform.so + +//Path to a file. +CURSES_INCLUDE_PATH:PATH=/usr/include + +//Path to a library. +CURSES_NCURSES_LIBRARY:FILEPATH=/usr/lib/x86_64-linux-gnu/libncurses.so + +//pkg-config executable +PKG_CONFIG_EXECUTABLE:FILEPATH=/usr/bin/pkg-config + +//Path to a library. +pkgcfg_lib_NCURSES_ncurses:FILEPATH=/usr/lib/x86_64-linux-gnu/libncurses.so + +//Path to a library. +pkgcfg_lib_NCURSES_tinfo:FILEPATH=/usr/lib/x86_64-linux-gnu/libtinfo.so + ######################## # INTERNAL cache entries @@ -363,4 +384,58 @@ CMAKE_STRIP-ADVANCED:INTERNAL=1 CMAKE_UNAME:INTERNAL=/bin/uname //ADVANCED property for variable: CMAKE_VERBOSE_MAKEFILE CMAKE_VERBOSE_MAKEFILE-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CURSES_CURSES_LIBRARY +CURSES_CURSES_LIBRARY-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CURSES_FORM_LIBRARY +CURSES_FORM_LIBRARY-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CURSES_INCLUDE_PATH +CURSES_INCLUDE_PATH-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CURSES_NCURSES_LIBRARY +CURSES_NCURSES_LIBRARY-ADVANCED:INTERNAL=1 +//Details about finding Curses +FIND_PACKAGE_MESSAGE_DETAILS_Curses:INTERNAL=[/usr/lib/x86_64-linux-gnu/libcurses.so][/usr/include][v()] +NCURSES_CFLAGS:INTERNAL=-D_DEFAULT_SOURCE;-D_XOPEN_SOURCE=600 +NCURSES_CFLAGS_I:INTERNAL= +NCURSES_CFLAGS_OTHER:INTERNAL=-D_DEFAULT_SOURCE;-D_XOPEN_SOURCE=600 +NCURSES_FOUND:INTERNAL=1 +NCURSES_INCLUDEDIR:INTERNAL=/usr/include +NCURSES_INCLUDE_DIRS:INTERNAL= +NCURSES_LDFLAGS:INTERNAL=-Wl,-Bsymbolic-functions;-lncurses;-ltinfo +NCURSES_LDFLAGS_OTHER:INTERNAL=-Wl,-Bsymbolic-functions +NCURSES_LIBDIR:INTERNAL=/usr/lib/x86_64-linux-gnu +NCURSES_LIBRARIES:INTERNAL=ncurses;tinfo +NCURSES_LIBRARY_DIRS:INTERNAL= +NCURSES_LIBS:INTERNAL= +NCURSES_LIBS_L:INTERNAL= +NCURSES_LIBS_OTHER:INTERNAL= +NCURSES_LIBS_PATHS:INTERNAL= +NCURSES_MODULE_NAME:INTERNAL=ncurses +NCURSES_PREFIX:INTERNAL=/usr +NCURSES_STATIC_CFLAGS:INTERNAL=-D_DEFAULT_SOURCE;-D_XOPEN_SOURCE=600 +NCURSES_STATIC_CFLAGS_I:INTERNAL= +NCURSES_STATIC_CFLAGS_OTHER:INTERNAL=-D_DEFAULT_SOURCE;-D_XOPEN_SOURCE=600 +NCURSES_STATIC_INCLUDE_DIRS:INTERNAL= +NCURSES_STATIC_LDFLAGS:INTERNAL=-Wl,-Bsymbolic-functions;-lncurses;-ltinfo;-ldl +NCURSES_STATIC_LDFLAGS_OTHER:INTERNAL=-Wl,-Bsymbolic-functions +NCURSES_STATIC_LIBDIR:INTERNAL= +NCURSES_STATIC_LIBRARIES:INTERNAL=ncurses;tinfo;dl +NCURSES_STATIC_LIBRARY_DIRS:INTERNAL= +NCURSES_STATIC_LIBS:INTERNAL= +NCURSES_STATIC_LIBS_L:INTERNAL= +NCURSES_STATIC_LIBS_OTHER:INTERNAL= +NCURSES_STATIC_LIBS_PATHS:INTERNAL= +NCURSES_VERSION:INTERNAL=6.2.20200212 +NCURSES_ncurses_INCLUDEDIR:INTERNAL= +NCURSES_ncurses_LIBDIR:INTERNAL= +NCURSES_ncurses_PREFIX:INTERNAL= +NCURSES_ncurses_VERSION:INTERNAL= +//ADVANCED property for variable: PKG_CONFIG_EXECUTABLE +PKG_CONFIG_EXECUTABLE-ADVANCED:INTERNAL=1 +__pkg_config_arguments_NCURSES:INTERNAL=QUIET;ncurses +__pkg_config_checked_NCURSES:INTERNAL=1 +//ADVANCED property for variable: pkgcfg_lib_NCURSES_ncurses +pkgcfg_lib_NCURSES_ncurses-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: pkgcfg_lib_NCURSES_tinfo +pkgcfg_lib_NCURSES_tinfo-ADVANCED:INTERNAL=1 +prefix_result:INTERNAL=/usr/lib/x86_64-linux-gnu diff --git a/userspace/CMakeFiles/Makefile.cmake b/userspace/CMakeFiles/Makefile.cmake index 9252e53..36c43c4 100644 --- a/userspace/CMakeFiles/Makefile.cmake +++ b/userspace/CMakeFiles/Makefile.cmake @@ -20,10 +20,15 @@ set(CMAKE_MAKEFILE_DEPENDS "/usr/share/cmake-3.16/Modules/CMakeLanguageInformation.cmake" "/usr/share/cmake-3.16/Modules/CMakeSystemSpecificInformation.cmake" "/usr/share/cmake-3.16/Modules/CMakeSystemSpecificInitialize.cmake" + "/usr/share/cmake-3.16/Modules/CheckLibraryExists.cmake" "/usr/share/cmake-3.16/Modules/Compiler/CMakeCommonCompilerMacros.cmake" "/usr/share/cmake-3.16/Modules/Compiler/GNU-C.cmake" "/usr/share/cmake-3.16/Modules/Compiler/GNU-CXX.cmake" "/usr/share/cmake-3.16/Modules/Compiler/GNU.cmake" + "/usr/share/cmake-3.16/Modules/FindCurses.cmake" + "/usr/share/cmake-3.16/Modules/FindPackageHandleStandardArgs.cmake" + "/usr/share/cmake-3.16/Modules/FindPackageMessage.cmake" + "/usr/share/cmake-3.16/Modules/FindPkgConfig.cmake" "/usr/share/cmake-3.16/Modules/Internal/CMakeCheckCompilerFlag.cmake" "/usr/share/cmake-3.16/Modules/Platform/Linux-GNU-C.cmake" "/usr/share/cmake-3.16/Modules/Platform/Linux-GNU-CXX.cmake" @@ -45,6 +50,5 @@ set(CMAKE_MAKEFILE_PRODUCTS # Dependency information for all targets: set(CMAKE_DEPEND_INFO_FILES - "CMakeFiles/Uspace.dir/DependInfo.cmake" - "CMakeFiles/Twrite.dir/DependInfo.cmake" + "CMakeFiles/controlHID.dir/DependInfo.cmake" ) diff --git a/userspace/CMakeFiles/Makefile2 b/userspace/CMakeFiles/Makefile2 index b6dd2c8..82ee532 100644 --- a/userspace/CMakeFiles/Makefile2 +++ b/userspace/CMakeFiles/Makefile2 @@ -53,8 +53,7 @@ CMAKE_BINARY_DIR = /home/wandog/workspace/missile_related/ml-driver/userspace # Directory level rules for the build root directory # The main recursive "all" target. -all: CMakeFiles/Uspace.dir/all -all: CMakeFiles/Twrite.dir/all +all: CMakeFiles/controlHID.dir/all .PHONY : all @@ -64,64 +63,36 @@ preinstall: .PHONY : preinstall # The main recursive "clean" target. -clean: CMakeFiles/Uspace.dir/clean -clean: CMakeFiles/Twrite.dir/clean +clean: CMakeFiles/controlHID.dir/clean .PHONY : clean #============================================================================= -# Target rules for target CMakeFiles/Uspace.dir +# Target rules for target CMakeFiles/controlHID.dir # All Build rule for target. -CMakeFiles/Uspace.dir/all: - $(MAKE) -f CMakeFiles/Uspace.dir/build.make CMakeFiles/Uspace.dir/depend - $(MAKE) -f CMakeFiles/Uspace.dir/build.make CMakeFiles/Uspace.dir/build - @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/wandog/workspace/missile_related/ml-driver/userspace/CMakeFiles --progress-num=3,4 "Built target Uspace" -.PHONY : CMakeFiles/Uspace.dir/all +CMakeFiles/controlHID.dir/all: + $(MAKE) -f CMakeFiles/controlHID.dir/build.make CMakeFiles/controlHID.dir/depend + $(MAKE) -f CMakeFiles/controlHID.dir/build.make CMakeFiles/controlHID.dir/build + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/wandog/workspace/missile_related/ml-driver/userspace/CMakeFiles --progress-num=1,2 "Built target controlHID" +.PHONY : CMakeFiles/controlHID.dir/all # Build rule for subdir invocation for target. -CMakeFiles/Uspace.dir/rule: cmake_check_build_system +CMakeFiles/controlHID.dir/rule: cmake_check_build_system $(CMAKE_COMMAND) -E cmake_progress_start /home/wandog/workspace/missile_related/ml-driver/userspace/CMakeFiles 2 - $(MAKE) -f CMakeFiles/Makefile2 CMakeFiles/Uspace.dir/all + $(MAKE) -f CMakeFiles/Makefile2 CMakeFiles/controlHID.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/wandog/workspace/missile_related/ml-driver/userspace/CMakeFiles 0 -.PHONY : CMakeFiles/Uspace.dir/rule +.PHONY : CMakeFiles/controlHID.dir/rule # Convenience name for target. -Uspace: CMakeFiles/Uspace.dir/rule +controlHID: CMakeFiles/controlHID.dir/rule -.PHONY : Uspace +.PHONY : controlHID # clean rule for target. -CMakeFiles/Uspace.dir/clean: - $(MAKE) -f CMakeFiles/Uspace.dir/build.make CMakeFiles/Uspace.dir/clean -.PHONY : CMakeFiles/Uspace.dir/clean - -#============================================================================= -# Target rules for target CMakeFiles/Twrite.dir - -# All Build rule for target. -CMakeFiles/Twrite.dir/all: - $(MAKE) -f CMakeFiles/Twrite.dir/build.make CMakeFiles/Twrite.dir/depend - $(MAKE) -f CMakeFiles/Twrite.dir/build.make CMakeFiles/Twrite.dir/build - @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/wandog/workspace/missile_related/ml-driver/userspace/CMakeFiles --progress-num=1,2 "Built target Twrite" -.PHONY : CMakeFiles/Twrite.dir/all - -# Build rule for subdir invocation for target. -CMakeFiles/Twrite.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/wandog/workspace/missile_related/ml-driver/userspace/CMakeFiles 2 - $(MAKE) -f CMakeFiles/Makefile2 CMakeFiles/Twrite.dir/all - $(CMAKE_COMMAND) -E cmake_progress_start /home/wandog/workspace/missile_related/ml-driver/userspace/CMakeFiles 0 -.PHONY : CMakeFiles/Twrite.dir/rule - -# Convenience name for target. -Twrite: CMakeFiles/Twrite.dir/rule - -.PHONY : Twrite - -# clean rule for target. -CMakeFiles/Twrite.dir/clean: - $(MAKE) -f CMakeFiles/Twrite.dir/build.make CMakeFiles/Twrite.dir/clean -.PHONY : CMakeFiles/Twrite.dir/clean +CMakeFiles/controlHID.dir/clean: + $(MAKE) -f CMakeFiles/controlHID.dir/build.make CMakeFiles/controlHID.dir/clean +.PHONY : CMakeFiles/controlHID.dir/clean #============================================================================= # Special targets to cleanup operation of make. diff --git a/userspace/CMakeFiles/TargetDirectories.txt b/userspace/CMakeFiles/TargetDirectories.txt index 9dfcce7..a34225c 100644 --- a/userspace/CMakeFiles/TargetDirectories.txt +++ b/userspace/CMakeFiles/TargetDirectories.txt @@ -1,4 +1,3 @@ /home/wandog/workspace/missile_related/ml-driver/userspace/CMakeFiles/rebuild_cache.dir /home/wandog/workspace/missile_related/ml-driver/userspace/CMakeFiles/edit_cache.dir -/home/wandog/workspace/missile_related/ml-driver/userspace/CMakeFiles/Uspace.dir -/home/wandog/workspace/missile_related/ml-driver/userspace/CMakeFiles/Twrite.dir +/home/wandog/workspace/missile_related/ml-driver/userspace/CMakeFiles/controlHID.dir diff --git a/userspace/CMakeFiles/controlHID.dir/C.includecache b/userspace/CMakeFiles/controlHID.dir/C.includecache new file mode 100644 index 0000000..d49b1c9 --- /dev/null +++ b/userspace/CMakeFiles/controlHID.dir/C.includecache @@ -0,0 +1,28 @@ +#IncludeRegexLine: ^[ ]*[#%][ ]*(include|import)[ ]*[<"]([^">]+)([">]) + +#IncludeRegexScan: ^.*$ + +#IncludeRegexComplain: ^$ + +#IncludeRegexTransform: + +/home/wandog/workspace/missile_related/ml-driver/userspace/controlHID.c +stdio.h +- +fcntl.h +- +sys/ioctl.h +- +errno.h +- +unistd.h +- +stdlib.h +- +unistd.h +- +stdlib.h +- +ncurses.h +- + diff --git a/userspace/CMakeFiles/controlHID.dir/DependInfo.cmake b/userspace/CMakeFiles/controlHID.dir/DependInfo.cmake new file mode 100644 index 0000000..db86ba2 --- /dev/null +++ b/userspace/CMakeFiles/controlHID.dir/DependInfo.cmake @@ -0,0 +1,20 @@ +# The set of languages for which implicit dependencies are needed: +set(CMAKE_DEPENDS_LANGUAGES + "C" + ) +# The set of files for implicit dependencies of each language: +set(CMAKE_DEPENDS_CHECK_C + "/home/wandog/workspace/missile_related/ml-driver/userspace/controlHID.c" "/home/wandog/workspace/missile_related/ml-driver/userspace/CMakeFiles/controlHID.dir/controlHID.c.o" + ) +set(CMAKE_C_COMPILER_ID "GNU") + +# The include file search paths: +set(CMAKE_C_TARGET_INCLUDE_PATH + ) + +# Targets to which this target links. +set(CMAKE_TARGET_LINKED_INFO_FILES + ) + +# Fortran module output directory. +set(CMAKE_Fortran_TARGET_MODULE_DIR "") diff --git a/userspace/CMakeFiles/controlHID.dir/build.make b/userspace/CMakeFiles/controlHID.dir/build.make new file mode 100644 index 0000000..b18dd24 --- /dev/null +++ b/userspace/CMakeFiles/controlHID.dir/build.make @@ -0,0 +1,100 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.16 + +# Delete rule output on recipe failure. +.DELETE_ON_ERROR: + + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + + +# Remove some rules from gmake that .SUFFIXES does not remove. +SUFFIXES = + +.SUFFIXES: .hpux_make_needs_suffix_list + + +# Suppress display of executed commands. +$(VERBOSE).SILENT: + + +# A target that is always out of date. +cmake_force: + +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/bin/cmake + +# The command to remove a file. +RM = /usr/bin/cmake -E remove -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = /home/wandog/workspace/missile_related/ml-driver/userspace + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = /home/wandog/workspace/missile_related/ml-driver/userspace + +# Include any dependencies generated for this target. +include CMakeFiles/controlHID.dir/depend.make + +# Include the progress variables for this target. +include CMakeFiles/controlHID.dir/progress.make + +# Include the compile flags for this target's objects. +include CMakeFiles/controlHID.dir/flags.make + +CMakeFiles/controlHID.dir/controlHID.c.o: CMakeFiles/controlHID.dir/flags.make +CMakeFiles/controlHID.dir/controlHID.c.o: controlHID.c + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/home/wandog/workspace/missile_related/ml-driver/userspace/CMakeFiles --progress-num=$(CMAKE_PROGRESS_1) "Building C object CMakeFiles/controlHID.dir/controlHID.c.o" + /usr/bin/cc $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -o CMakeFiles/controlHID.dir/controlHID.c.o -c /home/wandog/workspace/missile_related/ml-driver/userspace/controlHID.c + +CMakeFiles/controlHID.dir/controlHID.c.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing C source to CMakeFiles/controlHID.dir/controlHID.c.i" + /usr/bin/cc $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -E /home/wandog/workspace/missile_related/ml-driver/userspace/controlHID.c > CMakeFiles/controlHID.dir/controlHID.c.i + +CMakeFiles/controlHID.dir/controlHID.c.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling C source to assembly CMakeFiles/controlHID.dir/controlHID.c.s" + /usr/bin/cc $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -S /home/wandog/workspace/missile_related/ml-driver/userspace/controlHID.c -o CMakeFiles/controlHID.dir/controlHID.c.s + +# Object files for target controlHID +controlHID_OBJECTS = \ +"CMakeFiles/controlHID.dir/controlHID.c.o" + +# External object files for target controlHID +controlHID_EXTERNAL_OBJECTS = + +controlHID: CMakeFiles/controlHID.dir/controlHID.c.o +controlHID: CMakeFiles/controlHID.dir/build.make +controlHID: /usr/lib/x86_64-linux-gnu/libcurses.so +controlHID: /usr/lib/x86_64-linux-gnu/libform.so +controlHID: CMakeFiles/controlHID.dir/link.txt + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --bold --progress-dir=/home/wandog/workspace/missile_related/ml-driver/userspace/CMakeFiles --progress-num=$(CMAKE_PROGRESS_2) "Linking C executable controlHID" + $(CMAKE_COMMAND) -E cmake_link_script CMakeFiles/controlHID.dir/link.txt --verbose=$(VERBOSE) + +# Rule to build all files generated by this target. +CMakeFiles/controlHID.dir/build: controlHID + +.PHONY : CMakeFiles/controlHID.dir/build + +CMakeFiles/controlHID.dir/clean: + $(CMAKE_COMMAND) -P CMakeFiles/controlHID.dir/cmake_clean.cmake +.PHONY : CMakeFiles/controlHID.dir/clean + +CMakeFiles/controlHID.dir/depend: + cd /home/wandog/workspace/missile_related/ml-driver/userspace && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /home/wandog/workspace/missile_related/ml-driver/userspace /home/wandog/workspace/missile_related/ml-driver/userspace /home/wandog/workspace/missile_related/ml-driver/userspace /home/wandog/workspace/missile_related/ml-driver/userspace /home/wandog/workspace/missile_related/ml-driver/userspace/CMakeFiles/controlHID.dir/DependInfo.cmake --color=$(COLOR) +.PHONY : CMakeFiles/controlHID.dir/depend + diff --git a/userspace/CMakeFiles/controlHID.dir/cmake_clean.cmake b/userspace/CMakeFiles/controlHID.dir/cmake_clean.cmake new file mode 100644 index 0000000..c41c59f --- /dev/null +++ b/userspace/CMakeFiles/controlHID.dir/cmake_clean.cmake @@ -0,0 +1,10 @@ +file(REMOVE_RECURSE + "CMakeFiles/controlHID.dir/controlHID.c.o" + "controlHID" + "controlHID.pdb" +) + +# Per-language clean rules from dependency scanning. +foreach(lang C) + include(CMakeFiles/controlHID.dir/cmake_clean_${lang}.cmake OPTIONAL) +endforeach() diff --git a/userspace/CMakeFiles/controlHID.dir/controlHID.c.o b/userspace/CMakeFiles/controlHID.dir/controlHID.c.o new file mode 100644 index 0000000000000000000000000000000000000000..16d9771addda5e2f402bf48d1c18e357a5bc1c41 GIT binary patch literal 6536 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 -#include -#include -// #include -#include -#include -#include - -int main( void ) -{ - int fd; - char buf[1]; - //open file - fd = open("/dev/ml0", O_RDWR); - - printf("the file descriptor is %d\n",fd); - if(fd<0){ - perror("perror output:"); - close(fd); - exit(1); - } - - - - - - buf[0]=0x20; - - - if(-1==write(fd, &buf, 1)){ - perror("perror output:"); - } - - - - - close(fd); - - - - - - return 0; -} - - -// if(-1 == write(fd, &buf, 4)){ - -// } -// close(fd); diff --git a/userspace/Uspace b/userspace/Uspace deleted file mode 100755 index ae3611001af7128fe003664ab46bad4d9f19d0f2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 17264 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 -#include - -#include -#include - -#define DEFAULT_DEVICE "/dev/ml0" -#define DEFAULT_DURATION 800 - -#define ML_STOP 0x20 -#define ML_UP 0x02 -#define ML_DOWN 0x01 -#define ML_LED 0x03 -#define ML_LEFT 0x04 -#define ML_RIGHT 0x08 -#define ML_FIRE 0x10 - -#define ML_FIRE_DELAY 5000 - -void send_cmd(int fd, int cmd) -{ - int retval = 0; - - retval = write(fd, &cmd, 1); - if (retval < 0){ - fflush("/dev/ml0"); - // printf("the fsync rst is %d\n",ret); - fprintf(stderr, "could not send command to fd=%d\n", fd); - } - -} - -static void usage(char *name) -{ - fprintf(stderr, - "\nusage: %s [-mbslrudfch] [-t ]\n\n" - " -m missile launcher [/dev/ml0]\n" - " -s stop\n" - " -l turn left\n" - " -r turn right\n" - " -u turn up\n" - " -d turn down\n" - " -f fire\n" - " -b blink leds\n" - " -t specify send_cmdment duration in milli seconds\n" - " -c calibrate the missile launcher axes\n" - " -h display this help\n\n" - "notes:\n" - "* it is possible to combine the directions of the two axes, e.g.\n" - " '-lu' send_cmds the missile launcher up and left at the same time.\n" - "" , name); - exit(1); -} - - -int main(int argc, char *argv[]) -{ - char c; - int fd; - int cmd = ML_STOP; - int duration = DEFAULT_DURATION; - char *dev = DEFAULT_DEVICE; - - if (argc < 2) - usage(argv[0]); - - while ((c = getopt(argc, argv, "m:bslrudfcht:")) != -1) { - switch (c) { - case 'm': dev = optarg; - break; - case 'l': cmd |= ML_LEFT; - break; - case 'r': cmd |= ML_RIGHT; - break; - case 'u': cmd |= ML_UP; - break; - case 'd': cmd |= ML_DOWN; - break; - case 'f': cmd = ML_FIRE; - break; - case 'b': cmd = ML_LED; - break; - case 's': cmd = ML_STOP; - break; - case 't': duration = atoi(optarg); - break; - case 'c': /* - retval = ioctl(fd, ML_IOCTCALIBRATE, ML_CALIBRATE_FULL); - if (retval < 0) - perror("ioctl"); - */ - break; - default: usage(argv[0]); - } - } - - printf("Open device %s\n", dev); - fd = open(dev, O_RDWR); - if (fd == -1) { - perror("open"); - exit(1); - } - - printf("Send command %i\n", cmd); - printf("command hex is 0x%2x\n", cmd); - send_cmd(fd, cmd); - - if (cmd & ML_FIRE) - duration = ML_FIRE_DELAY; - else if (cmd == ML_UP || cmd == ML_DOWN) - duration /= 2; - usleep(duration * 1000); - - send_cmd(fd, ML_STOP); - - close(fd); - - return EXIT_SUCCESS; -} - diff --git a/userspace/controlHID b/userspace/controlHID new file mode 100755 index 0000000000000000000000000000000000000000..ab8ffdab3554e8d275b7f5e5a736f5b7cf31cc98 GIT binary patch literal 18024 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 literal 0 HcmV?d00001 diff --git a/userspace/controlHID.c b/userspace/controlHID.c new file mode 100644 index 0000000..527b3c5 --- /dev/null +++ b/userspace/controlHID.c @@ -0,0 +1,134 @@ +#define _DEFAULT_SOURCE +#include +#include +#include +#include +#include +#include +#include +#include +#include + + + +#define ESC 27 +#define ML_STOP 0x20 +#define ML_UP 0x02 +#define ML_DOWN 0x01 +#define ML_FIRE 0x10 +#define ML_LEFT 0x04 +#define ML_RIGHT 0x08 + + +int max_x, max_y, mid_x, mid_y; + +void show_cmd(void){ + mvprintw(20, 20, "Fire!! when you press \"f\""); + mvprintw(mid_y, mid_x, "@"); + mvprintw(mid_y, mid_x-20, "left turn"); + mvprintw(mid_y, mid_x+10, "right turn"); + mvprintw(mid_y+5, mid_x, "down"); + mvprintw(mid_y-5, mid_x, "up"); + wbkgd(stdscr, COLOR_PAIR(1)); +} + +void cmd_send(char cmd){ + int fd; + char buf[1]; + //open file + fd = open("/dev/ml0", O_RDWR); + if(fd<0){ + perror("perror output:"); + close(fd); + exit(1); + } + + buf[0]=cmd; + //send cmd for 1 sec period + if(-1==write(fd, &buf, 1)){ + perror("perror output:"); + } + if(buf[0]!=ML_FIRE){ + usleep(500000); + }else{ + sleep(10); + } + + buf[0]=0x20;//ML_STOP + if(-1==write(fd, &buf, 1)){ + perror("perror output:"); + } + close(fd); +} + +int main(){ + + + + initscr(); + noecho(); + keypad(stdscr, TRUE); + start_color(); + curs_set(FALSE); + getmaxyx(stdscr, max_y, max_x); + init_pair(1, COLOR_WHITE, COLOR_BLUE); + init_pair(2, COLOR_WHITE, COLOR_BLACK); + + + + mid_y=max_y/2; + mid_x=max_x/2; + + show_cmd(); + + refresh(); + + while(1){ + + refresh(); + int ch=getch(); + if (ch==KEY_LEFT){ + clear(); + // wbkgd(stdscr, COLOR_PAIR(1)); + show_cmd(); + mvchgat(mid_y, mid_x-20, 9, A_NORMAL, 2, NULL); + cmd_send(ML_LEFT); + } + else if(ch==KEY_RIGHT){ + clear(); + // wbkgd(stdscr, COLOR_PAIR(1)); + show_cmd(); + mvchgat(mid_y, mid_x+10, 10, A_NORMAL, 2, NULL); + cmd_send(ML_RIGHT); + } + else if(ch==KEY_DOWN){ + clear(); + // wbkgd(stdscr, COLOR_PAIR(1)); + show_cmd(); + mvchgat(mid_y+5, mid_x, 4, A_NORMAL, 2, NULL); + cmd_send(ML_DOWN); + } + else if(ch==KEY_UP){ + clear(); + // wbkgd(stdscr, COLOR_PAIR(1)); + show_cmd(); + mvchgat(mid_y-5, mid_x, 2, A_NORMAL, 2, NULL); + cmd_send(ML_UP); + } + else if(ch=='f'){ + cmd_send(ML_FIRE); + } + else if(ch==ESC){ + break; + } + else{ + //do nothing!! + + } + + } + + endwin(); + exit(EXIT_SUCCESS); + +} From d7f957823ea433926de6c9e05e81b395c2db2aeb Mon Sep 17 00:00:00 2001 From: chiahungma Date: Sun, 16 Apr 2023 00:54:24 +0800 Subject: [PATCH 7/8] mod. readme file --- .ml_driver.ko.cmd | 1 + .ml_driver.mod.cmd | 1 + .ml_driver.mod.o.cmd | 686 ++++++++++++++++++++++++++++++++ .ml_driver.o.cmd | 929 +++++++++++++++++++++++++++++++++++++++++++ Module.symvers | 0 README.md | 11 +- control | Bin 17264 -> 0 bytes ml_driver.ko | Bin 0 -> 17368 bytes ml_driver.mod | 2 + ml_driver.mod.c | 61 +++ ml_driver.mod.o | Bin 0 -> 4840 bytes ml_driver.o | Bin 0 -> 13768 bytes ml_manage.sh | 57 --- modules.order | 1 + 14 files changed, 1689 insertions(+), 60 deletions(-) create mode 100644 .ml_driver.ko.cmd create mode 100644 .ml_driver.mod.cmd create mode 100644 .ml_driver.mod.o.cmd create mode 100644 .ml_driver.o.cmd create mode 100644 Module.symvers delete mode 100755 control create mode 100644 ml_driver.ko create mode 100644 ml_driver.mod create mode 100644 ml_driver.mod.c create mode 100644 ml_driver.mod.o create mode 100644 ml_driver.o delete mode 100755 ml_manage.sh create mode 100644 modules.order diff --git a/.ml_driver.ko.cmd b/.ml_driver.ko.cmd new file mode 100644 index 0000000..db93163 --- /dev/null +++ b/.ml_driver.ko.cmd @@ -0,0 +1 @@ +cmd_/home/wandog/workspace/missile_related/ml-driver/ml_driver.ko := ld -r -m elf_x86_64 -z max-page-size=0x200000 -z noexecstack --build-id -T ./scripts/module-common.lds -o /home/wandog/workspace/missile_related/ml-driver/ml_driver.ko /home/wandog/workspace/missile_related/ml-driver/ml_driver.o /home/wandog/workspace/missile_related/ml-driver/ml_driver.mod.o; true diff --git a/.ml_driver.mod.cmd b/.ml_driver.mod.cmd new file mode 100644 index 0000000..6ed3b1d --- /dev/null +++ b/.ml_driver.mod.cmd @@ -0,0 +1 @@ +cmd_/home/wandog/workspace/missile_related/ml-driver/ml_driver.mod := { echo /home/wandog/workspace/missile_related/ml-driver/ml_driver.o; echo; } > /home/wandog/workspace/missile_related/ml-driver/ml_driver.mod diff --git a/.ml_driver.mod.o.cmd b/.ml_driver.mod.o.cmd new file mode 100644 index 0000000..01dab1c --- /dev/null +++ b/.ml_driver.mod.o.cmd @@ -0,0 +1,686 @@ +cmd_/home/wandog/workspace/missile_related/ml-driver/ml_driver.mod.o := gcc -Wp,-MD,/home/wandog/workspace/missile_related/ml-driver/.ml_driver.mod.o.d -nostdinc -isystem /usr/lib/gcc/x86_64-linux-gnu/9/include -I./arch/x86/include -I./arch/x86/include/generated -I./include -I./arch/x86/include/uapi -I./arch/x86/include/generated/uapi -I./include/uapi -I./include/generated/uapi -include ./include/linux/kconfig.h -Iubuntu/include -include ./include/linux/compiler_types.h -D__KERNEL__ -Wall -Wundef -Werror=strict-prototypes -Wno-trigraphs -fno-strict-aliasing -fno-common -fshort-wchar -fno-PIE -Werror=implicit-function-declaration -Werror=implicit-int -Werror=return-type -Wno-format-security -std=gnu89 -mno-sse -mno-mmx -mno-sse2 -mno-3dnow -mno-avx -fcf-protection=none -m64 -falign-jumps=1 -falign-loops=1 -mno-80387 -mno-fp-ret-in-387 -mpreferred-stack-boundary=3 -mskip-rax-setup -mtune=generic -mno-red-zone -mcmodel=kernel -DCONFIG_X86_X32_ABI -DCONFIG_AS_CFI=1 -DCONFIG_AS_CFI_SIGNAL_FRAME=1 -DCONFIG_AS_CFI_SECTIONS=1 -DCONFIG_AS_SSSE3=1 -DCONFIG_AS_AVX=1 -DCONFIG_AS_AVX2=1 -DCONFIG_AS_AVX512=1 -DCONFIG_AS_SHA1_NI=1 -DCONFIG_AS_SHA256_NI=1 -Wno-sign-compare -fno-asynchronous-unwind-tables -mindirect-branch=thunk-extern -mindirect-branch-register -fno-jump-tables -fno-delete-null-pointer-checks -Wno-frame-address -Wno-format-truncation -Wno-format-overflow -Wno-address-of-packed-member -O2 --param=allow-store-data-races=0 -Wframe-larger-than=1024 -fstack-protector-strong -Wimplicit-fallthrough -Wno-unused-but-set-variable -Wno-unused-const-variable -fno-omit-frame-pointer -fno-optimize-sibling-calls -fno-var-tracking-assignments -pg -mrecord-mcount -mfentry -DCC_USING_FENTRY -flive-patching=inline-clone -Wdeclaration-after-statement -Wvla -Wno-pointer-sign -Wno-stringop-truncation -Wno-array-bounds -Wno-stringop-overflow -Wno-restrict -Wno-maybe-uninitialized -fno-strict-overflow -fno-merge-all-constants -fmerge-constants -fno-stack-check -fconserve-stack -Werror=date-time -Werror=incompatible-pointer-types -Werror=designated-init -fmacro-prefix-map=./= -Wno-packed-not-aligned -DMODULE -DKBUILD_BASENAME='"ml_driver.mod"' -DKBUILD_MODNAME='"ml_driver"' -c -o /home/wandog/workspace/missile_related/ml-driver/ml_driver.mod.o /home/wandog/workspace/missile_related/ml-driver/ml_driver.mod.c + +source_/home/wandog/workspace/missile_related/ml-driver/ml_driver.mod.o := /home/wandog/workspace/missile_related/ml-driver/ml_driver.mod.c + +deps_/home/wandog/workspace/missile_related/ml-driver/ml_driver.mod.o := \ + $(wildcard include/config/module/unload.h) \ + $(wildcard include/config/retpoline.h) \ + include/linux/kconfig.h \ + $(wildcard include/config/cpu/big/endian.h) \ + $(wildcard include/config/booger.h) \ + $(wildcard include/config/foo.h) \ + include/linux/compiler_types.h \ + $(wildcard include/config/have/arch/compiler/h.h) \ + $(wildcard include/config/enable/must/check.h) \ + $(wildcard include/config/optimize/inlining.h) \ + $(wildcard include/config/cc/has/asm/inline.h) \ + include/linux/compiler_attributes.h \ + include/linux/compiler-gcc.h \ + $(wildcard include/config/arm64.h) \ + $(wildcard include/config/arch/use/builtin/bswap.h) \ + include/linux/build-salt.h \ + $(wildcard include/config/build/salt.h) \ + include/linux/elfnote.h \ + include/linux/elf.h \ + arch/x86/include/asm/elf.h \ + $(wildcard include/config/x86/64.h) \ + $(wildcard include/config/x86/32.h) \ + $(wildcard include/config/ia32/emulation.h) \ + $(wildcard include/config/x86/x32/abi.h) \ + $(wildcard include/config/compat.h) \ + include/linux/thread_info.h \ + $(wildcard include/config/thread/info/in/task.h) \ + $(wildcard include/config/have/arch/within/stack/frames.h) \ + $(wildcard include/config/hardened/usercopy.h) \ + include/linux/types.h \ + $(wildcard include/config/have/uid16.h) \ + $(wildcard include/config/uid16.h) \ + $(wildcard include/config/arch/dma/addr/t/64bit.h) \ + $(wildcard include/config/phys/addr/t/64bit.h) \ + $(wildcard include/config/64bit.h) \ + include/uapi/linux/types.h \ + arch/x86/include/generated/uapi/asm/types.h \ + include/uapi/asm-generic/types.h \ + include/asm-generic/int-ll64.h \ + include/uapi/asm-generic/int-ll64.h \ + arch/x86/include/uapi/asm/bitsperlong.h \ + include/asm-generic/bitsperlong.h \ + include/uapi/asm-generic/bitsperlong.h \ + include/uapi/linux/posix_types.h \ + include/linux/stddef.h \ + include/uapi/linux/stddef.h \ + include/linux/compiler_types.h \ + arch/x86/include/asm/posix_types.h \ + arch/x86/include/uapi/asm/posix_types_64.h \ + include/uapi/asm-generic/posix_types.h \ + include/linux/bug.h \ + $(wildcard include/config/generic/bug.h) \ + $(wildcard include/config/bug/on/data/corruption.h) \ + arch/x86/include/asm/bug.h \ + $(wildcard include/config/debug/bugverbose.h) \ + include/linux/stringify.h \ + include/asm-generic/bug.h \ + $(wildcard include/config/bug.h) \ + $(wildcard include/config/generic/bug/relative/pointers.h) \ + $(wildcard include/config/smp.h) \ + include/linux/compiler.h \ + $(wildcard include/config/trace/branch/profiling.h) \ + $(wildcard include/config/profile/all/branches.h) \ + $(wildcard include/config/stack/validation.h) \ + $(wildcard include/config/debug/entry.h) \ + $(wildcard include/config/kasan.h) \ + arch/x86/include/asm/barrier.h \ + arch/x86/include/asm/alternative.h \ + arch/x86/include/asm/asm.h \ + arch/x86/include/asm/nops.h \ + $(wildcard include/config/mk7.h) \ + $(wildcard include/config/x86/p6/nop.h) \ + include/asm-generic/barrier.h \ + include/linux/kasan-checks.h \ + include/linux/kernel.h \ + $(wildcard include/config/preempt/voluntary.h) \ + $(wildcard include/config/debug/atomic/sleep.h) \ + $(wildcard include/config/mmu.h) \ + $(wildcard include/config/prove/locking.h) \ + $(wildcard include/config/arch/has/refcount.h) \ + $(wildcard include/config/panic/timeout.h) \ + $(wildcard include/config/tracing.h) \ + $(wildcard include/config/ftrace/mcount/record.h) \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/stdarg.h \ + include/linux/limits.h \ + include/uapi/linux/limits.h \ + include/linux/linkage.h \ + include/linux/export.h \ + $(wildcard include/config/modversions.h) \ + $(wildcard include/config/module/rel/crcs.h) \ + $(wildcard include/config/have/arch/prel32/relocations.h) \ + $(wildcard include/config/modules.h) \ + $(wildcard include/config/trim/unused/ksyms.h) \ + $(wildcard include/config/unused/symbols.h) \ + arch/x86/include/asm/linkage.h \ + $(wildcard include/config/x86/alignment/16.h) \ + include/linux/bitops.h \ + include/linux/bits.h \ + include/linux/const.h \ + include/uapi/linux/const.h \ + arch/x86/include/asm/bitops.h \ + $(wildcard include/config/x86/cmov.h) \ + arch/x86/include/asm/rmwcc.h \ + $(wildcard include/config/cc/has/asm/goto.h) \ + include/asm-generic/bitops/find.h \ + $(wildcard include/config/generic/find/first/bit.h) \ + include/asm-generic/bitops/sched.h \ + arch/x86/include/asm/arch_hweight.h \ + arch/x86/include/asm/cpufeatures.h \ + arch/x86/include/asm/required-features.h \ + $(wildcard include/config/x86/minimum/cpu/family.h) \ + $(wildcard include/config/math/emulation.h) \ + $(wildcard include/config/x86/pae.h) \ + $(wildcard include/config/x86/cmpxchg64.h) \ + $(wildcard include/config/x86/use/3dnow.h) \ + $(wildcard include/config/matom.h) \ + $(wildcard include/config/paravirt.h) \ + arch/x86/include/asm/disabled-features.h \ + $(wildcard include/config/x86/intel/mpx.h) \ + $(wildcard include/config/x86/smap.h) \ + $(wildcard include/config/x86/intel/umip.h) \ + $(wildcard include/config/x86/intel/memory/protection/keys.h) \ + $(wildcard include/config/x86/5level.h) \ + $(wildcard include/config/page/table/isolation.h) \ + include/asm-generic/bitops/const_hweight.h \ + include/asm-generic/bitops-instrumented.h \ + include/asm-generic/bitops/le.h \ + arch/x86/include/uapi/asm/byteorder.h \ + include/linux/byteorder/little_endian.h \ + include/uapi/linux/byteorder/little_endian.h \ + include/linux/swab.h \ + include/uapi/linux/swab.h \ + arch/x86/include/uapi/asm/swab.h \ + include/linux/byteorder/generic.h \ + include/asm-generic/bitops/ext2-atomic-setbit.h \ + include/linux/log2.h \ + $(wildcard include/config/arch/has/ilog2/u32.h) \ + $(wildcard include/config/arch/has/ilog2/u64.h) \ + include/linux/typecheck.h \ + include/linux/printk.h \ + $(wildcard include/config/message/loglevel/default.h) \ + $(wildcard include/config/console/loglevel/default.h) \ + $(wildcard include/config/console/loglevel/quiet.h) \ + $(wildcard include/config/early/printk.h) \ + $(wildcard include/config/printk/nmi.h) \ + $(wildcard include/config/printk.h) \ + $(wildcard include/config/kmsg/ids.h) \ + $(wildcard include/config/dynamic/debug.h) \ + include/linux/init.h \ + $(wildcard include/config/strict/kernel/rwx.h) \ + $(wildcard include/config/strict/module/rwx.h) \ + include/linux/kern_levels.h \ + include/linux/cache.h \ + $(wildcard include/config/arch/has/cache/line/size.h) \ + include/uapi/linux/kernel.h \ + include/uapi/linux/sysinfo.h \ + arch/x86/include/asm/cache.h \ + $(wildcard include/config/x86/l1/cache/shift.h) \ + $(wildcard include/config/x86/internode/cache/shift.h) \ + $(wildcard include/config/x86/vsmp.h) \ + include/linux/dynamic_debug.h \ + $(wildcard include/config/jump/label.h) \ + include/linux/jump_label.h \ + $(wildcard include/config/have/arch/jump/label/relative.h) \ + arch/x86/include/asm/jump_label.h \ + include/linux/build_bug.h \ + arch/x86/include/asm/div64.h \ + include/asm-generic/div64.h \ + include/linux/restart_block.h \ + include/linux/time64.h \ + include/linux/math64.h \ + $(wildcard include/config/arch/supports/int128.h) \ + include/uapi/linux/time.h \ + include/uapi/linux/time_types.h \ + include/linux/errno.h \ + include/uapi/linux/errno.h \ + arch/x86/include/generated/uapi/asm/errno.h \ + include/uapi/asm-generic/errno.h \ + include/uapi/asm-generic/errno-base.h \ + arch/x86/include/asm/current.h \ + arch/x86/include/asm/percpu.h \ + $(wildcard include/config/x86/64/smp.h) \ + include/asm-generic/percpu.h \ + $(wildcard include/config/debug/preempt.h) \ + $(wildcard include/config/have/setup/per/cpu/area.h) \ + include/linux/threads.h \ + $(wildcard include/config/nr/cpus.h) \ + $(wildcard include/config/base/small.h) \ + include/linux/percpu-defs.h \ + $(wildcard include/config/debug/force/weak/per/cpu.h) \ + $(wildcard include/config/amd/mem/encrypt.h) \ + arch/x86/include/asm/thread_info.h \ + $(wildcard include/config/vm86.h) \ + $(wildcard include/config/frame/pointer.h) \ + arch/x86/include/asm/page.h \ + arch/x86/include/asm/page_types.h \ + $(wildcard include/config/physical/start.h) \ + $(wildcard include/config/physical/align.h) \ + $(wildcard include/config/dynamic/physical/mask.h) \ + include/linux/mem_encrypt.h \ + $(wildcard include/config/arch/has/mem/encrypt.h) \ + arch/x86/include/asm/mem_encrypt.h \ + arch/x86/include/uapi/asm/bootparam.h \ + include/linux/screen_info.h \ + include/uapi/linux/screen_info.h \ + include/linux/apm_bios.h \ + include/uapi/linux/apm_bios.h \ + include/uapi/linux/ioctl.h \ + arch/x86/include/generated/uapi/asm/ioctl.h \ + include/asm-generic/ioctl.h \ + include/uapi/asm-generic/ioctl.h \ + include/linux/edd.h \ + include/uapi/linux/edd.h \ + arch/x86/include/asm/ist.h \ + arch/x86/include/uapi/asm/ist.h \ + include/video/edid.h \ + $(wildcard include/config/x86.h) \ + include/uapi/video/edid.h \ + arch/x86/include/asm/page_64_types.h \ + $(wildcard include/config/dynamic/memory/layout.h) \ + $(wildcard include/config/randomize/base.h) \ + arch/x86/include/asm/kaslr.h \ + $(wildcard include/config/randomize/memory.h) \ + arch/x86/include/asm/page_64.h \ + $(wildcard include/config/debug/virtual.h) \ + $(wildcard include/config/flatmem.h) \ + $(wildcard include/config/x86/vsyscall/emulation.h) \ + include/linux/range.h \ + include/asm-generic/memory_model.h \ + $(wildcard include/config/discontigmem.h) \ + $(wildcard include/config/sparsemem/vmemmap.h) \ + $(wildcard include/config/sparsemem.h) \ + include/linux/pfn.h \ + include/asm-generic/getorder.h \ + arch/x86/include/asm/cpufeature.h \ + $(wildcard include/config/x86/feature/names.h) \ + arch/x86/include/asm/processor.h \ + $(wildcard include/config/kvm.h) \ + $(wildcard include/config/stackprotector.h) \ + $(wildcard include/config/paravirt/xxl.h) \ + $(wildcard include/config/x86/debugctlmsr.h) \ + $(wildcard include/config/cpu/sup/amd.h) \ + $(wildcard include/config/xen.h) \ + arch/x86/include/asm/processor-flags.h \ + arch/x86/include/uapi/asm/processor-flags.h \ + arch/x86/include/asm/math_emu.h \ + arch/x86/include/asm/ptrace.h \ + arch/x86/include/asm/segment.h \ + $(wildcard include/config/xen/pv.h) \ + $(wildcard include/config/x86/32/lazy/gs.h) \ + arch/x86/include/uapi/asm/ptrace.h \ + arch/x86/include/uapi/asm/ptrace-abi.h \ + arch/x86/include/asm/paravirt_types.h \ + $(wildcard include/config/pgtable/levels.h) \ + $(wildcard include/config/paravirt/debug.h) \ + arch/x86/include/asm/desc_defs.h \ + arch/x86/include/asm/kmap_types.h \ + $(wildcard include/config/debug/highmem.h) \ + include/asm-generic/kmap_types.h \ + arch/x86/include/asm/pgtable_types.h \ + $(wildcard include/config/mem/soft/dirty.h) \ + $(wildcard include/config/proc/fs.h) \ + arch/x86/include/asm/pgtable_64_types.h \ + arch/x86/include/asm/sparsemem.h \ + include/asm-generic/pgtable-nop4d.h \ + arch/x86/include/asm/nospec-branch.h \ + include/linux/static_key.h \ + include/linux/frame.h \ + arch/x86/include/asm/alternative-asm.h \ + arch/x86/include/asm/msr-index.h \ + arch/x86/include/asm/unwind_hints.h \ + arch/x86/include/asm/orc_types.h \ + arch/x86/include/asm/spinlock_types.h \ + $(wildcard include/config/paravirt/spinlocks.h) \ + include/asm-generic/qspinlock_types.h \ + include/asm-generic/qrwlock_types.h \ + arch/x86/include/uapi/asm/sigcontext.h \ + arch/x86/include/asm/msr.h \ + $(wildcard include/config/tracepoints.h) \ + arch/x86/include/asm/msr-index.h \ + arch/x86/include/asm/cpumask.h \ + include/linux/cpumask.h \ + $(wildcard include/config/cpumask/offstack.h) \ + $(wildcard include/config/hotplug/cpu.h) \ + $(wildcard include/config/debug/per/cpu/maps.h) \ + include/linux/bitmap.h \ + include/linux/string.h \ + $(wildcard include/config/binary/printf.h) \ + $(wildcard include/config/fortify/source.h) \ + include/uapi/linux/string.h \ + arch/x86/include/asm/string.h \ + arch/x86/include/asm/string_64.h \ + $(wildcard include/config/x86/mce.h) \ + $(wildcard include/config/arch/has/uaccess/flushcache.h) \ + include/linux/atomic.h \ + arch/x86/include/asm/atomic.h \ + arch/x86/include/asm/cmpxchg.h \ + arch/x86/include/asm/cmpxchg_64.h \ + arch/x86/include/asm/atomic64_64.h \ + include/asm-generic/atomic-instrumented.h \ + include/linux/atomic-fallback.h \ + $(wildcard include/config/generic/atomic64.h) \ + include/asm-generic/atomic-long.h \ + arch/x86/include/uapi/asm/msr.h \ + include/linux/tracepoint-defs.h \ + arch/x86/include/asm/paravirt.h \ + arch/x86/include/asm/frame.h \ + arch/x86/include/asm/special_insns.h \ + arch/x86/include/asm/fpu/types.h \ + include/linux/personality.h \ + include/uapi/linux/personality.h \ + include/linux/err.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) \ + arch/x86/include/asm/irqflags.h \ + $(wildcard include/config/debug/lock/alloc.h) \ + arch/x86/include/asm/user.h \ + arch/x86/include/asm/user_64.h \ + arch/x86/include/uapi/asm/auxvec.h \ + arch/x86/include/asm/fsgsbase.h \ + arch/x86/include/asm/vdso.h \ + $(wildcard include/config/x86/x32.h) \ + include/linux/mm_types.h \ + $(wildcard include/config/have/aligned/struct/page.h) \ + $(wildcard include/config/memcg.h) \ + $(wildcard include/config/userfaultfd.h) \ + $(wildcard include/config/swap.h) \ + $(wildcard include/config/numa.h) \ + $(wildcard include/config/have/arch/compat/mmap/bases.h) \ + $(wildcard include/config/membarrier.h) \ + $(wildcard include/config/aio.h) \ + $(wildcard include/config/mmu/notifier.h) \ + $(wildcard include/config/transparent/hugepage.h) \ + $(wildcard include/config/numa/balancing.h) \ + $(wildcard include/config/arch/want/batched/unmap/tlb/flush.h) \ + $(wildcard include/config/hugetlb/page.h) \ + include/linux/mm_types_task.h \ + $(wildcard include/config/split/ptlock/cpus.h) \ + $(wildcard include/config/arch/enable/split/pmd/ptlock.h) \ + arch/x86/include/asm/tlbbatch.h \ + include/linux/auxvec.h \ + include/uapi/linux/auxvec.h \ + include/linux/list.h \ + $(wildcard include/config/debug/list.h) \ + include/linux/poison.h \ + $(wildcard include/config/illegal/pointer/value.h) \ + $(wildcard include/config/page/poisoning/zero.h) \ + include/linux/spinlock.h \ + $(wildcard include/config/debug/spinlock.h) \ + $(wildcard include/config/preemption.h) \ + include/linux/preempt.h \ + $(wildcard include/config/preempt/count.h) \ + $(wildcard include/config/trace/preempt/toggle.h) \ + $(wildcard include/config/preempt/notifiers.h) \ + arch/x86/include/asm/preempt.h \ + include/linux/bottom_half.h \ + arch/x86/include/generated/asm/mmiowb.h \ + include/asm-generic/mmiowb.h \ + $(wildcard include/config/mmiowb.h) \ + include/linux/spinlock_types.h \ + include/linux/lockdep.h \ + $(wildcard include/config/lockdep.h) \ + $(wildcard include/config/lock/stat.h) \ + include/linux/rwlock_types.h \ + arch/x86/include/asm/spinlock.h \ + arch/x86/include/asm/qspinlock.h \ + include/asm-generic/qspinlock.h \ + arch/x86/include/asm/qrwlock.h \ + include/asm-generic/qrwlock.h \ + include/linux/rwlock.h \ + $(wildcard include/config/preempt.h) \ + include/linux/spinlock_api_smp.h \ + $(wildcard include/config/inline/spin/lock.h) \ + $(wildcard include/config/inline/spin/lock/bh.h) \ + $(wildcard include/config/inline/spin/lock/irq.h) \ + $(wildcard include/config/inline/spin/lock/irqsave.h) \ + $(wildcard include/config/inline/spin/trylock.h) \ + $(wildcard include/config/inline/spin/trylock/bh.h) \ + $(wildcard include/config/uninline/spin/unlock.h) \ + $(wildcard include/config/inline/spin/unlock/bh.h) \ + $(wildcard include/config/inline/spin/unlock/irq.h) \ + $(wildcard include/config/inline/spin/unlock/irqrestore.h) \ + $(wildcard include/config/generic/lockbreak.h) \ + include/linux/rwlock_api_smp.h \ + $(wildcard include/config/inline/read/lock.h) \ + $(wildcard include/config/inline/write/lock.h) \ + $(wildcard include/config/inline/read/lock/bh.h) \ + $(wildcard include/config/inline/write/lock/bh.h) \ + $(wildcard include/config/inline/read/lock/irq.h) \ + $(wildcard include/config/inline/write/lock/irq.h) \ + $(wildcard include/config/inline/read/lock/irqsave.h) \ + $(wildcard include/config/inline/write/lock/irqsave.h) \ + $(wildcard include/config/inline/read/trylock.h) \ + $(wildcard include/config/inline/write/trylock.h) \ + $(wildcard include/config/inline/read/unlock.h) \ + $(wildcard include/config/inline/write/unlock.h) \ + $(wildcard include/config/inline/read/unlock/bh.h) \ + $(wildcard include/config/inline/write/unlock/bh.h) \ + $(wildcard include/config/inline/read/unlock/irq.h) \ + $(wildcard include/config/inline/write/unlock/irq.h) \ + $(wildcard include/config/inline/read/unlock/irqrestore.h) \ + $(wildcard include/config/inline/write/unlock/irqrestore.h) \ + include/linux/rbtree.h \ + include/linux/rcupdate.h \ + $(wildcard include/config/preempt/rcu.h) \ + $(wildcard include/config/rcu/stall/common.h) \ + $(wildcard include/config/no/hz/full.h) \ + $(wildcard include/config/rcu/nocb/cpu.h) \ + $(wildcard include/config/tasks/rcu.h) \ + $(wildcard include/config/tree/rcu.h) \ + $(wildcard include/config/tiny/rcu.h) \ + $(wildcard include/config/debug/objects/rcu/head.h) \ + $(wildcard include/config/prove/rcu.h) \ + $(wildcard include/config/rcu/boost.h) \ + $(wildcard include/config/arch/weak/release/acquire.h) \ + include/linux/rcutree.h \ + include/linux/rwsem.h \ + $(wildcard include/config/rwsem/spin/on/owner.h) \ + $(wildcard include/config/debug/rwsems.h) \ + include/linux/osq_lock.h \ + include/linux/completion.h \ + include/linux/wait.h \ + include/uapi/linux/wait.h \ + include/linux/uprobes.h \ + $(wildcard include/config/uprobes.h) \ + arch/x86/include/asm/uprobes.h \ + include/linux/notifier.h \ + $(wildcard include/config/tree/srcu.h) \ + include/linux/mutex.h \ + $(wildcard include/config/mutex/spin/on/owner.h) \ + $(wildcard include/config/debug/mutexes.h) \ + include/linux/debug_locks.h \ + $(wildcard include/config/debug/locking/api/selftests.h) \ + include/linux/srcu.h \ + $(wildcard include/config/tiny/srcu.h) \ + $(wildcard include/config/srcu.h) \ + include/linux/workqueue.h \ + $(wildcard include/config/debug/objects/work.h) \ + $(wildcard include/config/freezer.h) \ + $(wildcard include/config/sysfs.h) \ + $(wildcard include/config/wq/watchdog.h) \ + include/linux/timer.h \ + $(wildcard include/config/debug/objects/timers.h) \ + $(wildcard include/config/preempt/rt.h) \ + $(wildcard include/config/no/hz/common.h) \ + include/linux/ktime.h \ + include/linux/time.h \ + $(wildcard include/config/arch/uses/gettimeoffset.h) \ + include/linux/seqlock.h \ + include/linux/time32.h \ + include/linux/timex.h \ + include/uapi/linux/timex.h \ + include/uapi/linux/param.h \ + arch/x86/include/generated/uapi/asm/param.h \ + include/asm-generic/param.h \ + $(wildcard include/config/hz.h) \ + include/uapi/asm-generic/param.h \ + arch/x86/include/asm/timex.h \ + $(wildcard include/config/x86/tsc.h) \ + arch/x86/include/asm/tsc.h \ + include/linux/jiffies.h \ + include/generated/timeconst.h \ + include/linux/timekeeping.h \ + include/linux/timekeeping32.h \ + include/linux/debugobjects.h \ + $(wildcard include/config/debug/objects.h) \ + $(wildcard include/config/debug/objects/free.h) \ + include/linux/rcu_segcblist.h \ + include/linux/srcutree.h \ + include/linux/rcu_node_tree.h \ + $(wildcard include/config/rcu/fanout.h) \ + $(wildcard include/config/rcu/fanout/leaf.h) \ + include/linux/page-flags-layout.h \ + $(wildcard include/config/kasan/sw/tags.h) \ + include/linux/numa.h \ + $(wildcard include/config/nodes/shift.h) \ + include/generated/bounds.h \ + arch/x86/include/asm/mmu.h \ + $(wildcard include/config/modify/ldt/syscall.h) \ + include/uapi/linux/elf.h \ + include/uapi/linux/elf-em.h \ + include/linux/module.h \ + $(wildcard include/config/modules/tree/lookup.h) \ + $(wildcard include/config/livepatch.h) \ + $(wildcard include/config/module/sig.h) \ + $(wildcard include/config/kallsyms.h) \ + $(wildcard include/config/bpf/events.h) \ + $(wildcard include/config/event/tracing.h) \ + $(wildcard include/config/constructors.h) \ + $(wildcard include/config/function/error/injection.h) \ + include/linux/stat.h \ + arch/x86/include/uapi/asm/stat.h \ + include/uapi/linux/stat.h \ + include/linux/uidgid.h \ + $(wildcard include/config/multiuser.h) \ + $(wildcard include/config/user/ns.h) \ + include/linux/highuid.h \ + include/linux/kmod.h \ + include/linux/umh.h \ + include/linux/gfp.h \ + $(wildcard include/config/highmem.h) \ + $(wildcard include/config/zone/dma.h) \ + $(wildcard include/config/zone/dma32.h) \ + $(wildcard include/config/zone/device.h) \ + $(wildcard include/config/pm/sleep.h) \ + $(wildcard include/config/contig/alloc.h) \ + $(wildcard include/config/cma.h) \ + include/linux/mmdebug.h \ + $(wildcard include/config/debug/vm.h) \ + $(wildcard include/config/debug/vm/pgflags.h) \ + include/linux/mmzone.h \ + $(wildcard include/config/force/max/zoneorder.h) \ + $(wildcard include/config/memory/isolation.h) \ + $(wildcard include/config/shuffle/page/allocator.h) \ + $(wildcard include/config/zsmalloc.h) \ + $(wildcard include/config/memory/hotplug.h) \ + $(wildcard include/config/compaction.h) \ + $(wildcard include/config/flat/node/mem/map.h) \ + $(wildcard include/config/page/extension.h) \ + $(wildcard include/config/deferred/struct/page/init.h) \ + $(wildcard include/config/have/memory/present.h) \ + $(wildcard include/config/have/memoryless/nodes.h) \ + $(wildcard include/config/have/memblock/node/map.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/memory/hotremove.h) \ + $(wildcard include/config/have/arch/pfn/valid.h) \ + $(wildcard include/config/holes/in/zone.h) \ + include/linux/nodemask.h \ + include/linux/pageblock-flags.h \ + $(wildcard include/config/hugetlb/page/size/variable.h) \ + include/linux/page-flags.h \ + $(wildcard include/config/arch/uses/pg/uncached.h) \ + $(wildcard include/config/memory/failure.h) \ + $(wildcard include/config/idle/page/tracking.h) \ + $(wildcard include/config/thp/swap.h) \ + $(wildcard include/config/ksm.h) \ + include/linux/memory_hotplug.h \ + $(wildcard include/config/arch/has/add/pages.h) \ + $(wildcard include/config/have/arch/nodedata/extension.h) \ + $(wildcard include/config/have/bootmem/info/node.h) \ + arch/x86/include/asm/mmzone.h \ + arch/x86/include/asm/mmzone_64.h \ + arch/x86/include/asm/smp.h \ + $(wildcard include/config/x86/local/apic.h) \ + $(wildcard include/config/x86/io/apic.h) \ + $(wildcard include/config/debug/nmi/selftest.h) \ + arch/x86/include/asm/mpspec.h \ + $(wildcard include/config/eisa.h) \ + $(wildcard include/config/x86/mpparse.h) \ + arch/x86/include/asm/mpspec_def.h \ + arch/x86/include/asm/x86_init.h \ + arch/x86/include/asm/apicdef.h \ + arch/x86/include/asm/apic.h \ + $(wildcard include/config/x86/x2apic.h) \ + arch/x86/include/asm/fixmap.h \ + $(wildcard include/config/provide/ohci1394/dma/init.h) \ + $(wildcard include/config/pci/mmconfig.h) \ + $(wildcard include/config/x86/intel/mid.h) \ + $(wildcard include/config/acpi/apei/ghes.h) \ + $(wildcard include/config/intel/txt.h) \ + arch/x86/include/asm/acpi.h \ + $(wildcard include/config/acpi/apei.h) \ + $(wildcard include/config/acpi.h) \ + $(wildcard include/config/acpi/numa.h) \ + include/acpi/pdc_intel.h \ + arch/x86/include/asm/numa.h \ + $(wildcard include/config/numa/emu.h) \ + arch/x86/include/asm/topology.h \ + $(wildcard include/config/sched/mc/prio.h) \ + include/asm-generic/topology.h \ + arch/x86/include/asm/realmode.h \ + $(wildcard include/config/acpi/sleep.h) \ + arch/x86/include/asm/io.h \ + $(wildcard include/config/mtrr.h) \ + $(wildcard include/config/x86/pat.h) \ + arch/x86/include/generated/asm/early_ioremap.h \ + include/asm-generic/early_ioremap.h \ + $(wildcard include/config/generic/early/ioremap.h) \ + include/asm-generic/iomap.h \ + $(wildcard include/config/has/ioport/map.h) \ + $(wildcard include/config/pci.h) \ + $(wildcard include/config/generic/iomap.h) \ + include/asm-generic/pci_iomap.h \ + $(wildcard include/config/no/generic/pci/ioport/map.h) \ + $(wildcard include/config/generic/pci/iomap.h) \ + include/asm-generic/io.h \ + $(wildcard include/config/virt/to/bus.h) \ + include/linux/logic_pio.h \ + $(wildcard include/config/indirect/pio.h) \ + include/linux/fwnode.h \ + include/linux/vmalloc.h \ + include/linux/llist.h \ + $(wildcard include/config/arch/have/nmi/safe/cmpxchg.h) \ + include/linux/overflow.h \ + arch/x86/include/uapi/asm/vsyscall.h \ + include/asm-generic/fixmap.h \ + arch/x86/include/asm/hardirq.h \ + $(wildcard include/config/kvm/intel.h) \ + $(wildcard include/config/have/kvm.h) \ + $(wildcard include/config/x86/thermal/vector.h) \ + $(wildcard include/config/x86/mce/threshold.h) \ + $(wildcard include/config/x86/mce/amd.h) \ + $(wildcard include/config/x86/hv/callback/vector.h) \ + $(wildcard include/config/hyperv.h) \ + arch/x86/include/asm/io_apic.h \ + arch/x86/include/asm/irq_vectors.h \ + $(wildcard include/config/pci/msi.h) \ + include/linux/topology.h \ + $(wildcard include/config/use/percpu/numa/node/id.h) \ + $(wildcard include/config/sched/smt.h) \ + include/linux/arch_topology.h \ + $(wildcard include/config/generic/arch/topology.h) \ + include/linux/percpu.h \ + $(wildcard include/config/need/per/cpu/embed/first/chunk.h) \ + $(wildcard include/config/need/per/cpu/page/first/chunk.h) \ + include/linux/smp.h \ + $(wildcard include/config/up/late/init.h) \ + include/linux/sysctl.h \ + $(wildcard include/config/sysctl.h) \ + include/uapi/linux/sysctl.h \ + include/linux/kobject.h \ + $(wildcard include/config/uevent/helper.h) \ + $(wildcard include/config/debug/kobject/release.h) \ + include/linux/sysfs.h \ + include/linux/kernfs.h \ + $(wildcard include/config/kernfs.h) \ + include/linux/idr.h \ + include/linux/radix-tree.h \ + include/linux/xarray.h \ + $(wildcard include/config/xarray/multi.h) \ + include/linux/kconfig.h \ + include/linux/kobject_ns.h \ + include/linux/kref.h \ + include/linux/refcount.h \ + include/linux/moduleparam.h \ + $(wildcard include/config/alpha.h) \ + $(wildcard include/config/ia64.h) \ + $(wildcard include/config/ppc64.h) \ + include/linux/rbtree_latch.h \ + include/linux/error-injection.h \ + include/asm-generic/error-injection.h \ + arch/x86/include/asm/module.h \ + $(wildcard include/config/unwinder/orc.h) \ + $(wildcard include/config/m486.h) \ + $(wildcard include/config/m586.h) \ + $(wildcard include/config/m586tsc.h) \ + $(wildcard include/config/m586mmx.h) \ + $(wildcard include/config/mcore2.h) \ + $(wildcard include/config/m686.h) \ + $(wildcard include/config/mpentiumii.h) \ + $(wildcard include/config/mpentiumiii.h) \ + $(wildcard include/config/mpentiumm.h) \ + $(wildcard include/config/mpentium4.h) \ + $(wildcard include/config/mk6.h) \ + $(wildcard include/config/mk8.h) \ + $(wildcard include/config/melan.h) \ + $(wildcard include/config/mcrusoe.h) \ + $(wildcard include/config/mefficeon.h) \ + $(wildcard include/config/mwinchipc6.h) \ + $(wildcard include/config/mwinchip3d.h) \ + $(wildcard include/config/mcyrixiii.h) \ + $(wildcard include/config/mviac3/2.h) \ + $(wildcard include/config/mviac7.h) \ + $(wildcard include/config/mgeodegx1.h) \ + $(wildcard include/config/mgeode/lx.h) \ + include/asm-generic/module.h \ + $(wildcard include/config/have/mod/arch/specific.h) \ + $(wildcard include/config/modules/use/elf/rel.h) \ + $(wildcard include/config/modules/use/elf/rela.h) \ + arch/x86/include/asm/orc_types.h \ + include/linux/vermagic.h \ + include/generated/utsrelease.h \ + +/home/wandog/workspace/missile_related/ml-driver/ml_driver.mod.o: $(deps_/home/wandog/workspace/missile_related/ml-driver/ml_driver.mod.o) + +$(deps_/home/wandog/workspace/missile_related/ml-driver/ml_driver.mod.o): diff --git a/.ml_driver.o.cmd b/.ml_driver.o.cmd new file mode 100644 index 0000000..876c320 --- /dev/null +++ b/.ml_driver.o.cmd @@ -0,0 +1,929 @@ +cmd_/home/wandog/workspace/missile_related/ml-driver/ml_driver.o := gcc -Wp,-MD,/home/wandog/workspace/missile_related/ml-driver/.ml_driver.o.d -nostdinc -isystem /usr/lib/gcc/x86_64-linux-gnu/9/include -I./arch/x86/include -I./arch/x86/include/generated -I./include -I./arch/x86/include/uapi -I./arch/x86/include/generated/uapi -I./include/uapi -I./include/generated/uapi -include ./include/linux/kconfig.h -Iubuntu/include -include ./include/linux/compiler_types.h -D__KERNEL__ -Wall -Wundef -Werror=strict-prototypes -Wno-trigraphs -fno-strict-aliasing -fno-common -fshort-wchar -fno-PIE -Werror=implicit-function-declaration -Werror=implicit-int -Werror=return-type -Wno-format-security -std=gnu89 -mno-sse -mno-mmx -mno-sse2 -mno-3dnow -mno-avx -fcf-protection=none -m64 -falign-jumps=1 -falign-loops=1 -mno-80387 -mno-fp-ret-in-387 -mpreferred-stack-boundary=3 -mskip-rax-setup -mtune=generic -mno-red-zone -mcmodel=kernel -DCONFIG_X86_X32_ABI -DCONFIG_AS_CFI=1 -DCONFIG_AS_CFI_SIGNAL_FRAME=1 -DCONFIG_AS_CFI_SECTIONS=1 -DCONFIG_AS_SSSE3=1 -DCONFIG_AS_AVX=1 -DCONFIG_AS_AVX2=1 -DCONFIG_AS_AVX512=1 -DCONFIG_AS_SHA1_NI=1 -DCONFIG_AS_SHA256_NI=1 -Wno-sign-compare -fno-asynchronous-unwind-tables -mindirect-branch=thunk-extern -mindirect-branch-register -fno-jump-tables -fno-delete-null-pointer-checks -Wno-frame-address -Wno-format-truncation -Wno-format-overflow -Wno-address-of-packed-member -O2 --param=allow-store-data-races=0 -Wframe-larger-than=1024 -fstack-protector-strong -Wimplicit-fallthrough -Wno-unused-but-set-variable -Wno-unused-const-variable -fno-omit-frame-pointer -fno-optimize-sibling-calls -fno-var-tracking-assignments -pg -mrecord-mcount -mfentry -DCC_USING_FENTRY -flive-patching=inline-clone -Wdeclaration-after-statement -Wvla -Wno-pointer-sign -Wno-stringop-truncation -Wno-array-bounds -Wno-stringop-overflow -Wno-restrict -Wno-maybe-uninitialized -fno-strict-overflow -fno-merge-all-constants -fmerge-constants -fno-stack-check -fconserve-stack -Werror=date-time -Werror=incompatible-pointer-types -Werror=designated-init -fmacro-prefix-map=./= -Wno-packed-not-aligned -DMODULE -DKBUILD_BASENAME='"ml_driver"' -DKBUILD_MODNAME='"ml_driver"' -c -o /home/wandog/workspace/missile_related/ml-driver/ml_driver.o /home/wandog/workspace/missile_related/ml-driver/ml_driver.c + +source_/home/wandog/workspace/missile_related/ml-driver/ml_driver.o := /home/wandog/workspace/missile_related/ml-driver/ml_driver.c + +deps_/home/wandog/workspace/missile_related/ml-driver/ml_driver.o := \ + $(wildcard include/config/usb/dynamic/minors.h) \ + include/linux/kconfig.h \ + $(wildcard include/config/cpu/big/endian.h) \ + $(wildcard include/config/booger.h) \ + $(wildcard include/config/foo.h) \ + include/linux/compiler_types.h \ + $(wildcard include/config/have/arch/compiler/h.h) \ + $(wildcard include/config/enable/must/check.h) \ + $(wildcard include/config/optimize/inlining.h) \ + $(wildcard include/config/cc/has/asm/inline.h) \ + include/linux/compiler_attributes.h \ + include/linux/compiler-gcc.h \ + $(wildcard include/config/arm64.h) \ + $(wildcard include/config/retpoline.h) \ + $(wildcard include/config/arch/use/builtin/bswap.h) \ + include/linux/module.h \ + $(wildcard include/config/modules.h) \ + $(wildcard include/config/sysfs.h) \ + $(wildcard include/config/modules/tree/lookup.h) \ + $(wildcard include/config/livepatch.h) \ + $(wildcard include/config/unused/symbols.h) \ + $(wildcard include/config/module/sig.h) \ + $(wildcard include/config/generic/bug.h) \ + $(wildcard include/config/kallsyms.h) \ + $(wildcard include/config/smp.h) \ + $(wildcard include/config/tracepoints.h) \ + $(wildcard include/config/tree/srcu.h) \ + $(wildcard include/config/bpf/events.h) \ + $(wildcard include/config/jump/label.h) \ + $(wildcard include/config/tracing.h) \ + $(wildcard include/config/event/tracing.h) \ + $(wildcard include/config/ftrace/mcount/record.h) \ + $(wildcard include/config/module/unload.h) \ + $(wildcard include/config/constructors.h) \ + $(wildcard include/config/function/error/injection.h) \ + $(wildcard include/config/strict/module/rwx.h) \ + include/linux/list.h \ + $(wildcard include/config/debug/list.h) \ + include/linux/types.h \ + $(wildcard include/config/have/uid16.h) \ + $(wildcard include/config/uid16.h) \ + $(wildcard include/config/arch/dma/addr/t/64bit.h) \ + $(wildcard include/config/phys/addr/t/64bit.h) \ + $(wildcard include/config/64bit.h) \ + include/uapi/linux/types.h \ + arch/x86/include/generated/uapi/asm/types.h \ + include/uapi/asm-generic/types.h \ + include/asm-generic/int-ll64.h \ + include/uapi/asm-generic/int-ll64.h \ + arch/x86/include/uapi/asm/bitsperlong.h \ + include/asm-generic/bitsperlong.h \ + include/uapi/asm-generic/bitsperlong.h \ + include/uapi/linux/posix_types.h \ + include/linux/stddef.h \ + include/uapi/linux/stddef.h \ + include/linux/compiler_types.h \ + arch/x86/include/asm/posix_types.h \ + $(wildcard include/config/x86/32.h) \ + arch/x86/include/uapi/asm/posix_types_64.h \ + include/uapi/asm-generic/posix_types.h \ + include/linux/poison.h \ + $(wildcard include/config/illegal/pointer/value.h) \ + $(wildcard include/config/page/poisoning/zero.h) \ + include/linux/const.h \ + include/uapi/linux/const.h \ + include/linux/kernel.h \ + $(wildcard include/config/preempt/voluntary.h) \ + $(wildcard include/config/debug/atomic/sleep.h) \ + $(wildcard include/config/mmu.h) \ + $(wildcard include/config/prove/locking.h) \ + $(wildcard include/config/arch/has/refcount.h) \ + $(wildcard include/config/panic/timeout.h) \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/stdarg.h \ + include/linux/limits.h \ + include/uapi/linux/limits.h \ + include/linux/linkage.h \ + include/linux/stringify.h \ + include/linux/export.h \ + $(wildcard include/config/modversions.h) \ + $(wildcard include/config/module/rel/crcs.h) \ + $(wildcard include/config/have/arch/prel32/relocations.h) \ + $(wildcard include/config/trim/unused/ksyms.h) \ + include/linux/compiler.h \ + $(wildcard include/config/trace/branch/profiling.h) \ + $(wildcard include/config/profile/all/branches.h) \ + $(wildcard include/config/stack/validation.h) \ + $(wildcard include/config/debug/entry.h) \ + $(wildcard include/config/kasan.h) \ + arch/x86/include/asm/barrier.h \ + arch/x86/include/asm/alternative.h \ + arch/x86/include/asm/asm.h \ + arch/x86/include/asm/nops.h \ + $(wildcard include/config/mk7.h) \ + $(wildcard include/config/x86/p6/nop.h) \ + $(wildcard include/config/x86/64.h) \ + include/asm-generic/barrier.h \ + include/linux/kasan-checks.h \ + arch/x86/include/asm/linkage.h \ + $(wildcard include/config/x86/alignment/16.h) \ + include/linux/bitops.h \ + include/linux/bits.h \ + arch/x86/include/asm/bitops.h \ + $(wildcard include/config/x86/cmov.h) \ + arch/x86/include/asm/rmwcc.h \ + $(wildcard include/config/cc/has/asm/goto.h) \ + include/asm-generic/bitops/find.h \ + $(wildcard include/config/generic/find/first/bit.h) \ + include/asm-generic/bitops/sched.h \ + arch/x86/include/asm/arch_hweight.h \ + arch/x86/include/asm/cpufeatures.h \ + arch/x86/include/asm/required-features.h \ + $(wildcard include/config/x86/minimum/cpu/family.h) \ + $(wildcard include/config/math/emulation.h) \ + $(wildcard include/config/x86/pae.h) \ + $(wildcard include/config/x86/cmpxchg64.h) \ + $(wildcard include/config/x86/use/3dnow.h) \ + $(wildcard include/config/matom.h) \ + $(wildcard include/config/paravirt.h) \ + arch/x86/include/asm/disabled-features.h \ + $(wildcard include/config/x86/intel/mpx.h) \ + $(wildcard include/config/x86/smap.h) \ + $(wildcard include/config/x86/intel/umip.h) \ + $(wildcard include/config/x86/intel/memory/protection/keys.h) \ + $(wildcard include/config/x86/5level.h) \ + $(wildcard include/config/page/table/isolation.h) \ + include/asm-generic/bitops/const_hweight.h \ + include/asm-generic/bitops-instrumented.h \ + include/asm-generic/bitops/le.h \ + arch/x86/include/uapi/asm/byteorder.h \ + include/linux/byteorder/little_endian.h \ + include/uapi/linux/byteorder/little_endian.h \ + include/linux/swab.h \ + include/uapi/linux/swab.h \ + arch/x86/include/uapi/asm/swab.h \ + include/linux/byteorder/generic.h \ + include/asm-generic/bitops/ext2-atomic-setbit.h \ + include/linux/log2.h \ + $(wildcard include/config/arch/has/ilog2/u32.h) \ + $(wildcard include/config/arch/has/ilog2/u64.h) \ + include/linux/typecheck.h \ + include/linux/printk.h \ + $(wildcard include/config/message/loglevel/default.h) \ + $(wildcard include/config/console/loglevel/default.h) \ + $(wildcard include/config/console/loglevel/quiet.h) \ + $(wildcard include/config/early/printk.h) \ + $(wildcard include/config/printk/nmi.h) \ + $(wildcard include/config/printk.h) \ + $(wildcard include/config/kmsg/ids.h) \ + $(wildcard include/config/dynamic/debug.h) \ + include/linux/init.h \ + $(wildcard include/config/strict/kernel/rwx.h) \ + include/linux/kern_levels.h \ + include/linux/cache.h \ + $(wildcard include/config/arch/has/cache/line/size.h) \ + include/uapi/linux/kernel.h \ + include/uapi/linux/sysinfo.h \ + arch/x86/include/asm/cache.h \ + $(wildcard include/config/x86/l1/cache/shift.h) \ + $(wildcard include/config/x86/internode/cache/shift.h) \ + $(wildcard include/config/x86/vsmp.h) \ + include/linux/dynamic_debug.h \ + include/linux/jump_label.h \ + $(wildcard include/config/have/arch/jump/label/relative.h) \ + arch/x86/include/asm/jump_label.h \ + include/linux/build_bug.h \ + arch/x86/include/asm/div64.h \ + include/asm-generic/div64.h \ + include/linux/stat.h \ + arch/x86/include/uapi/asm/stat.h \ + include/uapi/linux/stat.h \ + include/linux/time.h \ + $(wildcard include/config/arch/uses/gettimeoffset.h) \ + include/linux/seqlock.h \ + $(wildcard include/config/debug/lock/alloc.h) \ + include/linux/spinlock.h \ + $(wildcard include/config/debug/spinlock.h) \ + $(wildcard include/config/preemption.h) \ + include/linux/preempt.h \ + $(wildcard include/config/preempt/count.h) \ + $(wildcard include/config/debug/preempt.h) \ + $(wildcard include/config/trace/preempt/toggle.h) \ + $(wildcard include/config/preempt/notifiers.h) \ + arch/x86/include/asm/preempt.h \ + arch/x86/include/asm/percpu.h \ + $(wildcard include/config/x86/64/smp.h) \ + include/asm-generic/percpu.h \ + $(wildcard include/config/have/setup/per/cpu/area.h) \ + include/linux/threads.h \ + $(wildcard include/config/nr/cpus.h) \ + $(wildcard include/config/base/small.h) \ + include/linux/percpu-defs.h \ + $(wildcard include/config/debug/force/weak/per/cpu.h) \ + $(wildcard include/config/amd/mem/encrypt.h) \ + include/linux/thread_info.h \ + $(wildcard include/config/thread/info/in/task.h) \ + $(wildcard include/config/have/arch/within/stack/frames.h) \ + $(wildcard include/config/hardened/usercopy.h) \ + include/linux/bug.h \ + $(wildcard include/config/bug/on/data/corruption.h) \ + arch/x86/include/asm/bug.h \ + $(wildcard include/config/debug/bugverbose.h) \ + include/asm-generic/bug.h \ + $(wildcard include/config/bug.h) \ + $(wildcard include/config/generic/bug/relative/pointers.h) \ + include/linux/restart_block.h \ + include/linux/time64.h \ + include/linux/math64.h \ + $(wildcard include/config/arch/supports/int128.h) \ + include/uapi/linux/time.h \ + include/uapi/linux/time_types.h \ + include/linux/errno.h \ + include/uapi/linux/errno.h \ + arch/x86/include/generated/uapi/asm/errno.h \ + include/uapi/asm-generic/errno.h \ + include/uapi/asm-generic/errno-base.h \ + arch/x86/include/asm/current.h \ + arch/x86/include/asm/thread_info.h \ + $(wildcard include/config/vm86.h) \ + $(wildcard include/config/frame/pointer.h) \ + $(wildcard include/config/compat.h) \ + $(wildcard include/config/ia32/emulation.h) \ + arch/x86/include/asm/page.h \ + arch/x86/include/asm/page_types.h \ + $(wildcard include/config/physical/start.h) \ + $(wildcard include/config/physical/align.h) \ + $(wildcard include/config/dynamic/physical/mask.h) \ + include/linux/mem_encrypt.h \ + $(wildcard include/config/arch/has/mem/encrypt.h) \ + arch/x86/include/asm/mem_encrypt.h \ + arch/x86/include/uapi/asm/bootparam.h \ + include/linux/screen_info.h \ + include/uapi/linux/screen_info.h \ + include/linux/apm_bios.h \ + include/uapi/linux/apm_bios.h \ + include/uapi/linux/ioctl.h \ + arch/x86/include/generated/uapi/asm/ioctl.h \ + include/asm-generic/ioctl.h \ + include/uapi/asm-generic/ioctl.h \ + include/linux/edd.h \ + include/uapi/linux/edd.h \ + arch/x86/include/asm/ist.h \ + arch/x86/include/uapi/asm/ist.h \ + include/video/edid.h \ + $(wildcard include/config/x86.h) \ + include/uapi/video/edid.h \ + arch/x86/include/asm/page_64_types.h \ + $(wildcard include/config/dynamic/memory/layout.h) \ + $(wildcard include/config/randomize/base.h) \ + arch/x86/include/asm/kaslr.h \ + $(wildcard include/config/randomize/memory.h) \ + arch/x86/include/asm/page_64.h \ + $(wildcard include/config/debug/virtual.h) \ + $(wildcard include/config/flatmem.h) \ + $(wildcard include/config/x86/vsyscall/emulation.h) \ + include/linux/range.h \ + include/asm-generic/memory_model.h \ + $(wildcard include/config/discontigmem.h) \ + $(wildcard include/config/sparsemem/vmemmap.h) \ + $(wildcard include/config/sparsemem.h) \ + include/linux/pfn.h \ + include/asm-generic/getorder.h \ + arch/x86/include/asm/cpufeature.h \ + $(wildcard include/config/x86/feature/names.h) \ + arch/x86/include/asm/processor.h \ + $(wildcard include/config/kvm.h) \ + $(wildcard include/config/stackprotector.h) \ + $(wildcard include/config/paravirt/xxl.h) \ + $(wildcard include/config/x86/debugctlmsr.h) \ + $(wildcard include/config/cpu/sup/amd.h) \ + $(wildcard include/config/xen.h) \ + arch/x86/include/asm/processor-flags.h \ + arch/x86/include/uapi/asm/processor-flags.h \ + arch/x86/include/asm/math_emu.h \ + arch/x86/include/asm/ptrace.h \ + arch/x86/include/asm/segment.h \ + $(wildcard include/config/xen/pv.h) \ + $(wildcard include/config/x86/32/lazy/gs.h) \ + arch/x86/include/uapi/asm/ptrace.h \ + arch/x86/include/uapi/asm/ptrace-abi.h \ + arch/x86/include/asm/paravirt_types.h \ + $(wildcard include/config/pgtable/levels.h) \ + $(wildcard include/config/paravirt/debug.h) \ + arch/x86/include/asm/desc_defs.h \ + arch/x86/include/asm/kmap_types.h \ + $(wildcard include/config/debug/highmem.h) \ + include/asm-generic/kmap_types.h \ + arch/x86/include/asm/pgtable_types.h \ + $(wildcard include/config/mem/soft/dirty.h) \ + $(wildcard include/config/proc/fs.h) \ + arch/x86/include/asm/pgtable_64_types.h \ + arch/x86/include/asm/sparsemem.h \ + include/asm-generic/pgtable-nop4d.h \ + arch/x86/include/asm/nospec-branch.h \ + include/linux/static_key.h \ + include/linux/frame.h \ + arch/x86/include/asm/alternative-asm.h \ + arch/x86/include/asm/msr-index.h \ + arch/x86/include/asm/unwind_hints.h \ + arch/x86/include/asm/orc_types.h \ + arch/x86/include/asm/spinlock_types.h \ + $(wildcard include/config/paravirt/spinlocks.h) \ + include/asm-generic/qspinlock_types.h \ + include/asm-generic/qrwlock_types.h \ + arch/x86/include/uapi/asm/sigcontext.h \ + arch/x86/include/asm/msr.h \ + arch/x86/include/asm/msr-index.h \ + arch/x86/include/asm/cpumask.h \ + include/linux/cpumask.h \ + $(wildcard include/config/cpumask/offstack.h) \ + $(wildcard include/config/hotplug/cpu.h) \ + $(wildcard include/config/debug/per/cpu/maps.h) \ + include/linux/bitmap.h \ + include/linux/string.h \ + $(wildcard include/config/binary/printf.h) \ + $(wildcard include/config/fortify/source.h) \ + include/uapi/linux/string.h \ + arch/x86/include/asm/string.h \ + arch/x86/include/asm/string_64.h \ + $(wildcard include/config/x86/mce.h) \ + $(wildcard include/config/arch/has/uaccess/flushcache.h) \ + include/linux/atomic.h \ + arch/x86/include/asm/atomic.h \ + arch/x86/include/asm/cmpxchg.h \ + arch/x86/include/asm/cmpxchg_64.h \ + arch/x86/include/asm/atomic64_64.h \ + include/asm-generic/atomic-instrumented.h \ + include/linux/atomic-fallback.h \ + $(wildcard include/config/generic/atomic64.h) \ + include/asm-generic/atomic-long.h \ + arch/x86/include/uapi/asm/msr.h \ + include/linux/tracepoint-defs.h \ + arch/x86/include/asm/paravirt.h \ + arch/x86/include/asm/frame.h \ + arch/x86/include/asm/special_insns.h \ + arch/x86/include/asm/fpu/types.h \ + include/linux/personality.h \ + include/uapi/linux/personality.h \ + include/linux/err.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) \ + arch/x86/include/asm/irqflags.h \ + include/linux/bottom_half.h \ + arch/x86/include/generated/asm/mmiowb.h \ + include/asm-generic/mmiowb.h \ + $(wildcard include/config/mmiowb.h) \ + include/linux/spinlock_types.h \ + include/linux/lockdep.h \ + $(wildcard include/config/lockdep.h) \ + $(wildcard include/config/lock/stat.h) \ + include/linux/rwlock_types.h \ + arch/x86/include/asm/spinlock.h \ + arch/x86/include/asm/qspinlock.h \ + include/asm-generic/qspinlock.h \ + arch/x86/include/asm/qrwlock.h \ + include/asm-generic/qrwlock.h \ + include/linux/rwlock.h \ + $(wildcard include/config/preempt.h) \ + include/linux/spinlock_api_smp.h \ + $(wildcard include/config/inline/spin/lock.h) \ + $(wildcard include/config/inline/spin/lock/bh.h) \ + $(wildcard include/config/inline/spin/lock/irq.h) \ + $(wildcard include/config/inline/spin/lock/irqsave.h) \ + $(wildcard include/config/inline/spin/trylock.h) \ + $(wildcard include/config/inline/spin/trylock/bh.h) \ + $(wildcard include/config/uninline/spin/unlock.h) \ + $(wildcard include/config/inline/spin/unlock/bh.h) \ + $(wildcard include/config/inline/spin/unlock/irq.h) \ + $(wildcard include/config/inline/spin/unlock/irqrestore.h) \ + $(wildcard include/config/generic/lockbreak.h) \ + include/linux/rwlock_api_smp.h \ + $(wildcard include/config/inline/read/lock.h) \ + $(wildcard include/config/inline/write/lock.h) \ + $(wildcard include/config/inline/read/lock/bh.h) \ + $(wildcard include/config/inline/write/lock/bh.h) \ + $(wildcard include/config/inline/read/lock/irq.h) \ + $(wildcard include/config/inline/write/lock/irq.h) \ + $(wildcard include/config/inline/read/lock/irqsave.h) \ + $(wildcard include/config/inline/write/lock/irqsave.h) \ + $(wildcard include/config/inline/read/trylock.h) \ + $(wildcard include/config/inline/write/trylock.h) \ + $(wildcard include/config/inline/read/unlock.h) \ + $(wildcard include/config/inline/write/unlock.h) \ + $(wildcard include/config/inline/read/unlock/bh.h) \ + $(wildcard include/config/inline/write/unlock/bh.h) \ + $(wildcard include/config/inline/read/unlock/irq.h) \ + $(wildcard include/config/inline/write/unlock/irq.h) \ + $(wildcard include/config/inline/read/unlock/irqrestore.h) \ + $(wildcard include/config/inline/write/unlock/irqrestore.h) \ + include/linux/time32.h \ + include/linux/timex.h \ + include/uapi/linux/timex.h \ + include/uapi/linux/param.h \ + arch/x86/include/generated/uapi/asm/param.h \ + include/asm-generic/param.h \ + $(wildcard include/config/hz.h) \ + include/uapi/asm-generic/param.h \ + arch/x86/include/asm/timex.h \ + $(wildcard include/config/x86/tsc.h) \ + arch/x86/include/asm/tsc.h \ + include/linux/uidgid.h \ + $(wildcard include/config/multiuser.h) \ + $(wildcard include/config/user/ns.h) \ + include/linux/highuid.h \ + include/linux/kmod.h \ + include/linux/umh.h \ + include/linux/gfp.h \ + $(wildcard include/config/highmem.h) \ + $(wildcard include/config/zone/dma.h) \ + $(wildcard include/config/zone/dma32.h) \ + $(wildcard include/config/zone/device.h) \ + $(wildcard include/config/numa.h) \ + $(wildcard include/config/pm/sleep.h) \ + $(wildcard include/config/contig/alloc.h) \ + $(wildcard include/config/cma.h) \ + include/linux/mmdebug.h \ + $(wildcard include/config/debug/vm.h) \ + $(wildcard include/config/debug/vm/pgflags.h) \ + include/linux/mmzone.h \ + $(wildcard include/config/force/max/zoneorder.h) \ + $(wildcard include/config/memory/isolation.h) \ + $(wildcard include/config/shuffle/page/allocator.h) \ + $(wildcard include/config/zsmalloc.h) \ + $(wildcard include/config/memcg.h) \ + $(wildcard include/config/memory/hotplug.h) \ + $(wildcard include/config/compaction.h) \ + $(wildcard include/config/transparent/hugepage.h) \ + $(wildcard include/config/flat/node/mem/map.h) \ + $(wildcard include/config/page/extension.h) \ + $(wildcard include/config/deferred/struct/page/init.h) \ + $(wildcard include/config/have/memory/present.h) \ + $(wildcard include/config/have/memoryless/nodes.h) \ + $(wildcard include/config/have/memblock/node/map.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/memory/hotremove.h) \ + $(wildcard include/config/have/arch/pfn/valid.h) \ + $(wildcard include/config/holes/in/zone.h) \ + include/linux/wait.h \ + include/uapi/linux/wait.h \ + include/linux/numa.h \ + $(wildcard include/config/nodes/shift.h) \ + include/linux/nodemask.h \ + include/linux/pageblock-flags.h \ + $(wildcard include/config/hugetlb/page.h) \ + $(wildcard include/config/hugetlb/page/size/variable.h) \ + include/linux/page-flags-layout.h \ + $(wildcard include/config/numa/balancing.h) \ + $(wildcard include/config/kasan/sw/tags.h) \ + include/generated/bounds.h \ + include/linux/mm_types.h \ + $(wildcard include/config/have/aligned/struct/page.h) \ + $(wildcard include/config/userfaultfd.h) \ + $(wildcard include/config/swap.h) \ + $(wildcard include/config/have/arch/compat/mmap/bases.h) \ + $(wildcard include/config/membarrier.h) \ + $(wildcard include/config/aio.h) \ + $(wildcard include/config/mmu/notifier.h) \ + $(wildcard include/config/arch/want/batched/unmap/tlb/flush.h) \ + include/linux/mm_types_task.h \ + $(wildcard include/config/split/ptlock/cpus.h) \ + $(wildcard include/config/arch/enable/split/pmd/ptlock.h) \ + arch/x86/include/asm/tlbbatch.h \ + include/linux/auxvec.h \ + include/uapi/linux/auxvec.h \ + arch/x86/include/uapi/asm/auxvec.h \ + include/linux/rbtree.h \ + include/linux/rcupdate.h \ + $(wildcard include/config/preempt/rcu.h) \ + $(wildcard include/config/rcu/stall/common.h) \ + $(wildcard include/config/no/hz/full.h) \ + $(wildcard include/config/rcu/nocb/cpu.h) \ + $(wildcard include/config/tasks/rcu.h) \ + $(wildcard include/config/tree/rcu.h) \ + $(wildcard include/config/tiny/rcu.h) \ + $(wildcard include/config/debug/objects/rcu/head.h) \ + $(wildcard include/config/prove/rcu.h) \ + $(wildcard include/config/rcu/boost.h) \ + $(wildcard include/config/arch/weak/release/acquire.h) \ + include/linux/rcutree.h \ + include/linux/rwsem.h \ + $(wildcard include/config/rwsem/spin/on/owner.h) \ + $(wildcard include/config/debug/rwsems.h) \ + include/linux/osq_lock.h \ + include/linux/completion.h \ + include/linux/uprobes.h \ + $(wildcard include/config/uprobes.h) \ + arch/x86/include/asm/uprobes.h \ + include/linux/notifier.h \ + include/linux/mutex.h \ + $(wildcard include/config/mutex/spin/on/owner.h) \ + $(wildcard include/config/debug/mutexes.h) \ + include/linux/debug_locks.h \ + $(wildcard include/config/debug/locking/api/selftests.h) \ + include/linux/srcu.h \ + $(wildcard include/config/tiny/srcu.h) \ + $(wildcard include/config/srcu.h) \ + include/linux/workqueue.h \ + $(wildcard include/config/debug/objects/work.h) \ + $(wildcard include/config/freezer.h) \ + $(wildcard include/config/wq/watchdog.h) \ + include/linux/timer.h \ + $(wildcard include/config/debug/objects/timers.h) \ + $(wildcard include/config/preempt/rt.h) \ + $(wildcard include/config/no/hz/common.h) \ + include/linux/ktime.h \ + include/linux/jiffies.h \ + include/generated/timeconst.h \ + include/linux/timekeeping.h \ + include/linux/timekeeping32.h \ + include/linux/debugobjects.h \ + $(wildcard include/config/debug/objects.h) \ + $(wildcard include/config/debug/objects/free.h) \ + include/linux/rcu_segcblist.h \ + include/linux/srcutree.h \ + include/linux/rcu_node_tree.h \ + $(wildcard include/config/rcu/fanout.h) \ + $(wildcard include/config/rcu/fanout/leaf.h) \ + arch/x86/include/asm/mmu.h \ + $(wildcard include/config/modify/ldt/syscall.h) \ + include/linux/page-flags.h \ + $(wildcard include/config/arch/uses/pg/uncached.h) \ + $(wildcard include/config/memory/failure.h) \ + $(wildcard include/config/idle/page/tracking.h) \ + $(wildcard include/config/thp/swap.h) \ + $(wildcard include/config/ksm.h) \ + include/linux/memory_hotplug.h \ + $(wildcard include/config/arch/has/add/pages.h) \ + $(wildcard include/config/have/arch/nodedata/extension.h) \ + $(wildcard include/config/have/bootmem/info/node.h) \ + arch/x86/include/asm/mmzone.h \ + arch/x86/include/asm/mmzone_64.h \ + arch/x86/include/asm/smp.h \ + $(wildcard include/config/x86/local/apic.h) \ + $(wildcard include/config/x86/io/apic.h) \ + $(wildcard include/config/debug/nmi/selftest.h) \ + arch/x86/include/asm/mpspec.h \ + $(wildcard include/config/eisa.h) \ + $(wildcard include/config/x86/mpparse.h) \ + arch/x86/include/asm/mpspec_def.h \ + arch/x86/include/asm/x86_init.h \ + arch/x86/include/asm/apicdef.h \ + arch/x86/include/asm/apic.h \ + $(wildcard include/config/x86/x2apic.h) \ + arch/x86/include/asm/fixmap.h \ + $(wildcard include/config/provide/ohci1394/dma/init.h) \ + $(wildcard include/config/pci/mmconfig.h) \ + $(wildcard include/config/x86/intel/mid.h) \ + $(wildcard include/config/acpi/apei/ghes.h) \ + $(wildcard include/config/intel/txt.h) \ + arch/x86/include/asm/acpi.h \ + $(wildcard include/config/acpi/apei.h) \ + $(wildcard include/config/acpi.h) \ + $(wildcard include/config/acpi/numa.h) \ + include/acpi/pdc_intel.h \ + arch/x86/include/asm/numa.h \ + $(wildcard include/config/numa/emu.h) \ + arch/x86/include/asm/topology.h \ + $(wildcard include/config/sched/mc/prio.h) \ + include/asm-generic/topology.h \ + arch/x86/include/asm/realmode.h \ + $(wildcard include/config/acpi/sleep.h) \ + arch/x86/include/asm/io.h \ + $(wildcard include/config/mtrr.h) \ + $(wildcard include/config/x86/pat.h) \ + arch/x86/include/generated/asm/early_ioremap.h \ + include/asm-generic/early_ioremap.h \ + $(wildcard include/config/generic/early/ioremap.h) \ + include/asm-generic/iomap.h \ + $(wildcard include/config/has/ioport/map.h) \ + $(wildcard include/config/pci.h) \ + $(wildcard include/config/generic/iomap.h) \ + include/asm-generic/pci_iomap.h \ + $(wildcard include/config/no/generic/pci/ioport/map.h) \ + $(wildcard include/config/generic/pci/iomap.h) \ + include/asm-generic/io.h \ + $(wildcard include/config/virt/to/bus.h) \ + include/linux/logic_pio.h \ + $(wildcard include/config/indirect/pio.h) \ + include/linux/fwnode.h \ + include/linux/vmalloc.h \ + include/linux/llist.h \ + $(wildcard include/config/arch/have/nmi/safe/cmpxchg.h) \ + include/linux/overflow.h \ + arch/x86/include/uapi/asm/vsyscall.h \ + include/asm-generic/fixmap.h \ + arch/x86/include/asm/hardirq.h \ + $(wildcard include/config/kvm/intel.h) \ + $(wildcard include/config/have/kvm.h) \ + $(wildcard include/config/x86/thermal/vector.h) \ + $(wildcard include/config/x86/mce/threshold.h) \ + $(wildcard include/config/x86/mce/amd.h) \ + $(wildcard include/config/x86/hv/callback/vector.h) \ + $(wildcard include/config/hyperv.h) \ + arch/x86/include/asm/io_apic.h \ + arch/x86/include/asm/irq_vectors.h \ + $(wildcard include/config/pci/msi.h) \ + include/linux/topology.h \ + $(wildcard include/config/use/percpu/numa/node/id.h) \ + $(wildcard include/config/sched/smt.h) \ + include/linux/arch_topology.h \ + $(wildcard include/config/generic/arch/topology.h) \ + include/linux/percpu.h \ + $(wildcard include/config/need/per/cpu/embed/first/chunk.h) \ + $(wildcard include/config/need/per/cpu/page/first/chunk.h) \ + include/linux/smp.h \ + $(wildcard include/config/up/late/init.h) \ + include/linux/sysctl.h \ + $(wildcard include/config/sysctl.h) \ + include/uapi/linux/sysctl.h \ + include/linux/elf.h \ + arch/x86/include/asm/elf.h \ + $(wildcard include/config/x86/x32/abi.h) \ + arch/x86/include/asm/user.h \ + arch/x86/include/asm/user_64.h \ + arch/x86/include/asm/fsgsbase.h \ + arch/x86/include/asm/vdso.h \ + $(wildcard include/config/x86/x32.h) \ + include/uapi/linux/elf.h \ + include/uapi/linux/elf-em.h \ + include/linux/kobject.h \ + $(wildcard include/config/uevent/helper.h) \ + $(wildcard include/config/debug/kobject/release.h) \ + include/linux/sysfs.h \ + include/linux/kernfs.h \ + $(wildcard include/config/kernfs.h) \ + include/linux/idr.h \ + include/linux/radix-tree.h \ + include/linux/xarray.h \ + $(wildcard include/config/xarray/multi.h) \ + include/linux/kconfig.h \ + include/linux/kobject_ns.h \ + include/linux/kref.h \ + include/linux/refcount.h \ + include/linux/moduleparam.h \ + $(wildcard include/config/alpha.h) \ + $(wildcard include/config/ia64.h) \ + $(wildcard include/config/ppc64.h) \ + include/linux/rbtree_latch.h \ + include/linux/error-injection.h \ + include/asm-generic/error-injection.h \ + arch/x86/include/asm/module.h \ + $(wildcard include/config/unwinder/orc.h) \ + $(wildcard include/config/m486.h) \ + $(wildcard include/config/m586.h) \ + $(wildcard include/config/m586tsc.h) \ + $(wildcard include/config/m586mmx.h) \ + $(wildcard include/config/mcore2.h) \ + $(wildcard include/config/m686.h) \ + $(wildcard include/config/mpentiumii.h) \ + $(wildcard include/config/mpentiumiii.h) \ + $(wildcard include/config/mpentiumm.h) \ + $(wildcard include/config/mpentium4.h) \ + $(wildcard include/config/mk6.h) \ + $(wildcard include/config/mk8.h) \ + $(wildcard include/config/melan.h) \ + $(wildcard include/config/mcrusoe.h) \ + $(wildcard include/config/mefficeon.h) \ + $(wildcard include/config/mwinchipc6.h) \ + $(wildcard include/config/mwinchip3d.h) \ + $(wildcard include/config/mcyrixiii.h) \ + $(wildcard include/config/mviac3/2.h) \ + $(wildcard include/config/mviac7.h) \ + $(wildcard include/config/mgeodegx1.h) \ + $(wildcard include/config/mgeode/lx.h) \ + include/asm-generic/module.h \ + $(wildcard include/config/have/mod/arch/specific.h) \ + $(wildcard include/config/modules/use/elf/rel.h) \ + $(wildcard include/config/modules/use/elf/rela.h) \ + arch/x86/include/asm/orc_types.h \ + include/linux/slab.h \ + $(wildcard include/config/debug/slab.h) \ + $(wildcard include/config/failslab.h) \ + $(wildcard include/config/memcg/kmem.h) \ + $(wildcard include/config/have/hardened/usercopy/allocator.h) \ + $(wildcard include/config/slab.h) \ + $(wildcard include/config/slub.h) \ + $(wildcard include/config/slob.h) \ + include/linux/percpu-refcount.h \ + include/linux/kasan.h \ + $(wildcard include/config/kasan/generic.h) \ + include/linux/usb.h \ + $(wildcard include/config/usb/mon.h) \ + $(wildcard include/config/pm.h) \ + $(wildcard include/config/usb/led/trig.h) \ + include/linux/mod_devicetable.h \ + include/linux/uuid.h \ + include/uapi/linux/uuid.h \ + include/linux/usb/ch9.h \ + include/linux/device.h \ + $(wildcard include/config/debug/devres.h) \ + $(wildcard include/config/generic/msi/irq/domain.h) \ + $(wildcard include/config/pinctrl.h) \ + $(wildcard include/config/generic/msi/irq.h) \ + $(wildcard include/config/dma/declare/coherent.h) \ + $(wildcard include/config/dma/cma.h) \ + $(wildcard include/config/arch/has/sync/dma/for/device.h) \ + $(wildcard include/config/arch/has/sync/dma/for/cpu.h) \ + $(wildcard include/config/arch/has/sync/dma/for/cpu/all.h) \ + $(wildcard include/config/of.h) \ + $(wildcard include/config/devtmpfs.h) \ + $(wildcard include/config/sysfs/deprecated.h) \ + include/linux/ioport.h \ + $(wildcard include/config/io/strict/devmem.h) \ + include/linux/klist.h \ + include/linux/pm.h \ + $(wildcard include/config/vt/console/sleep.h) \ + $(wildcard include/config/pm/clk.h) \ + $(wildcard include/config/pm/generic/domains.h) \ + include/linux/hrtimer.h \ + $(wildcard include/config/high/res/timers.h) \ + $(wildcard include/config/time/low/res.h) \ + $(wildcard include/config/timerfd.h) \ + include/linux/hrtimer_defs.h \ + include/linux/timerqueue.h \ + include/linux/ratelimit.h \ + include/linux/sched.h \ + $(wildcard include/config/virt/cpu/accounting/native.h) \ + $(wildcard include/config/sched/info.h) \ + $(wildcard include/config/schedstats.h) \ + $(wildcard include/config/fair/group/sched.h) \ + $(wildcard include/config/rt/group/sched.h) \ + $(wildcard include/config/rt/mutexes.h) \ + $(wildcard include/config/uclamp/task.h) \ + $(wildcard include/config/uclamp/buckets/count.h) \ + $(wildcard include/config/cgroup/sched.h) \ + $(wildcard include/config/blk/dev/io/trace.h) \ + $(wildcard include/config/psi.h) \ + $(wildcard include/config/compat/brk.h) \ + $(wildcard include/config/cgroups.h) \ + $(wildcard include/config/blk/cgroup.h) \ + $(wildcard include/config/arch/has/scaled/cputime.h) \ + $(wildcard include/config/virt/cpu/accounting/gen.h) \ + $(wildcard include/config/posix/cputimers.h) \ + $(wildcard include/config/keys.h) \ + $(wildcard include/config/sysvipc.h) \ + $(wildcard include/config/detect/hung/task.h) \ + $(wildcard include/config/audit.h) \ + $(wildcard include/config/auditsyscall.h) \ + $(wildcard include/config/ubsan.h) \ + $(wildcard include/config/block.h) \ + $(wildcard include/config/task/xacct.h) \ + $(wildcard include/config/cpusets.h) \ + $(wildcard include/config/x86/cpu/resctrl.h) \ + $(wildcard include/config/futex.h) \ + $(wildcard include/config/perf/events.h) \ + $(wildcard include/config/rseq.h) \ + $(wildcard include/config/task/delay/acct.h) \ + $(wildcard include/config/fault/injection.h) \ + $(wildcard include/config/latencytop.h) \ + $(wildcard include/config/function/graph/tracer.h) \ + $(wildcard include/config/kcov.h) \ + $(wildcard include/config/bcache.h) \ + $(wildcard include/config/vmap/stack.h) \ + $(wildcard include/config/security.h) \ + $(wildcard include/config/gcc/plugin/stackleak.h) \ + $(wildcard include/config/arch/task/struct/on/stack.h) \ + $(wildcard include/config/debug/rseq.h) \ + include/uapi/linux/sched.h \ + include/linux/pid.h \ + include/linux/rculist.h \ + $(wildcard include/config/prove/rcu/list.h) \ + include/linux/sem.h \ + include/uapi/linux/sem.h \ + include/linux/ipc.h \ + include/linux/rhashtable-types.h \ + include/uapi/linux/ipc.h \ + arch/x86/include/generated/uapi/asm/ipcbuf.h \ + include/uapi/asm-generic/ipcbuf.h \ + arch/x86/include/uapi/asm/sembuf.h \ + include/linux/shm.h \ + include/uapi/linux/shm.h \ + include/uapi/asm-generic/hugetlb_encode.h \ + arch/x86/include/uapi/asm/shmbuf.h \ + include/uapi/asm-generic/shmbuf.h \ + arch/x86/include/asm/shmparam.h \ + include/linux/kcov.h \ + include/uapi/linux/kcov.h \ + include/linux/plist.h \ + $(wildcard include/config/debug/plist.h) \ + include/linux/seccomp.h \ + $(wildcard include/config/seccomp.h) \ + $(wildcard include/config/have/arch/seccomp/filter.h) \ + $(wildcard include/config/seccomp/filter.h) \ + $(wildcard include/config/checkpoint/restore.h) \ + include/uapi/linux/seccomp.h \ + arch/x86/include/asm/seccomp.h \ + arch/x86/include/asm/unistd.h \ + arch/x86/include/uapi/asm/unistd.h \ + arch/x86/include/generated/uapi/asm/unistd_64.h \ + arch/x86/include/generated/asm/unistd_64_x32.h \ + arch/x86/include/asm/ia32_unistd.h \ + arch/x86/include/generated/asm/unistd_32_ia32.h \ + include/asm-generic/seccomp.h \ + include/uapi/linux/unistd.h \ + include/linux/resource.h \ + include/uapi/linux/resource.h \ + arch/x86/include/generated/uapi/asm/resource.h \ + include/asm-generic/resource.h \ + include/uapi/asm-generic/resource.h \ + include/linux/latencytop.h \ + include/linux/sched/prio.h \ + include/linux/sched/types.h \ + include/linux/signal_types.h \ + $(wildcard include/config/old/sigaction.h) \ + include/uapi/linux/signal.h \ + arch/x86/include/asm/signal.h \ + arch/x86/include/uapi/asm/signal.h \ + include/uapi/asm-generic/signal-defs.h \ + arch/x86/include/uapi/asm/siginfo.h \ + include/uapi/asm-generic/siginfo.h \ + include/linux/task_io_accounting.h \ + $(wildcard include/config/task/io/accounting.h) \ + include/linux/posix-timers.h \ + $(wildcard include/config/posix/timers.h) \ + include/linux/alarmtimer.h \ + include/uapi/linux/rseq.h \ + arch/x86/include/asm/device.h \ + $(wildcard include/config/intel/iommu.h) \ + $(wildcard include/config/amd/iommu.h) \ + $(wildcard include/config/sta2x11.h) \ + $(wildcard include/config/x86/dev/dma/ops.h) \ + $(wildcard include/config/pci/domains.h) \ + include/linux/pm_wakeup.h \ + include/uapi/linux/usb/ch9.h \ + include/linux/delay.h \ + arch/x86/include/asm/delay.h \ + include/asm-generic/delay.h \ + include/linux/interrupt.h \ + $(wildcard include/config/irq/forced/threading.h) \ + $(wildcard include/config/generic/irq/probe.h) \ + $(wildcard include/config/irq/timings.h) \ + include/linux/irqreturn.h \ + include/linux/irqnr.h \ + include/uapi/linux/irqnr.h \ + include/linux/hardirq.h \ + include/linux/ftrace_irq.h \ + $(wildcard include/config/ftrace/nmi/enter.h) \ + $(wildcard include/config/hwlat/tracer.h) \ + include/linux/vtime.h \ + $(wildcard include/config/virt/cpu/accounting.h) \ + $(wildcard include/config/irq/time/accounting.h) \ + include/linux/context_tracking_state.h \ + $(wildcard include/config/context/tracking.h) \ + arch/x86/include/asm/irq.h \ + arch/x86/include/asm/sections.h \ + include/asm-generic/sections.h \ + arch/x86/include/asm/extable.h \ + include/linux/fs.h \ + $(wildcard include/config/read/only/thp/for/fs.h) \ + $(wildcard include/config/fs/posix/acl.h) \ + $(wildcard include/config/cgroup/writeback.h) \ + $(wildcard include/config/ima.h) \ + $(wildcard include/config/file/locking.h) \ + $(wildcard include/config/fsnotify.h) \ + $(wildcard include/config/fs/encryption.h) \ + $(wildcard include/config/fs/verity.h) \ + $(wildcard include/config/epoll.h) \ + $(wildcard include/config/quota.h) \ + $(wildcard include/config/blk/dev/loop.h) \ + $(wildcard include/config/fs/dax.h) \ + $(wildcard include/config/mandatory/file/locking.h) \ + $(wildcard include/config/migration.h) \ + $(wildcard include/config/io/uring.h) \ + include/linux/wait_bit.h \ + include/linux/kdev_t.h \ + include/uapi/linux/kdev_t.h \ + include/linux/dcache.h \ + include/linux/rculist_bl.h \ + include/linux/list_bl.h \ + include/linux/bit_spinlock.h \ + include/linux/lockref.h \ + $(wildcard include/config/arch/use/cmpxchg/lockref.h) \ + include/linux/stringhash.h \ + $(wildcard include/config/dcache/word/access.h) \ + include/linux/hash.h \ + $(wildcard include/config/have/arch/hash.h) \ + include/linux/path.h \ + include/linux/list_lru.h \ + include/linux/shrinker.h \ + include/linux/capability.h \ + include/uapi/linux/capability.h \ + include/linux/semaphore.h \ + include/linux/fcntl.h \ + $(wildcard include/config/arch/32bit/off/t.h) \ + include/uapi/linux/fcntl.h \ + arch/x86/include/generated/uapi/asm/fcntl.h \ + include/uapi/asm-generic/fcntl.h \ + include/uapi/linux/fiemap.h \ + include/linux/migrate_mode.h \ + include/linux/percpu-rwsem.h \ + include/linux/rcuwait.h \ + include/linux/rcu_sync.h \ + include/linux/delayed_call.h \ + include/linux/errseq.h \ + include/linux/ioprio.h \ + include/linux/sched/rt.h \ + include/linux/iocontext.h \ + include/linux/fs_types.h \ + include/uapi/linux/fs.h \ + include/linux/quota.h \ + $(wildcard include/config/quota/netlink/interface.h) \ + include/linux/percpu_counter.h \ + include/uapi/linux/dqblk_xfs.h \ + include/linux/dqblk_v1.h \ + include/linux/dqblk_v2.h \ + include/linux/dqblk_qtree.h \ + include/linux/projid.h \ + include/uapi/linux/quota.h \ + include/linux/nfs_fs_i.h \ + include/linux/pm_runtime.h \ + include/linux/uaccess.h \ + arch/x86/include/asm/uaccess.h \ + $(wildcard include/config/cc/has/asm/goto/tied/output.h) \ + $(wildcard include/config/x86/intel/usercopy.h) \ + arch/x86/include/asm/smap.h \ + arch/x86/include/asm/uaccess_64.h \ + +/home/wandog/workspace/missile_related/ml-driver/ml_driver.o: $(deps_/home/wandog/workspace/missile_related/ml-driver/ml_driver.o) + +$(deps_/home/wandog/workspace/missile_related/ml-driver/ml_driver.o): diff --git a/Module.symvers b/Module.symvers new file mode 100644 index 0000000..e69de29 diff --git a/README.md b/README.md index 91ca62e..fa0f204 100755 --- a/README.md +++ b/README.md @@ -1,7 +1,12 @@ -had modify the driver to let it workable on ubuntu 20.04 -as for rasp pi, not test yet. -================================================================================== +4/16/2023 +================= +add userspace control panel program in folder "userspace" by cmake + +4/15/2023 +================== +had modify the driver to let it workable on ubuntu 20.04;as for rasp pi, not test yet. + ML-driver ========= diff --git a/control b/control deleted file mode 100755 index c6a4075d0dea7e126b3d856a172d786f2995d86d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 17264 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 O)4_6tjXnh*EB+Vl9)7t1 diff --git a/ml_driver.ko b/ml_driver.ko new file mode 100644 index 0000000000000000000000000000000000000000..224679f281d7ad1eb6214e278479751a05edbd84 GIT binary patch literal 17368 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 +#include +#include +#include + +BUILD_SALT; + +MODULE_INFO(vermagic, VERMAGIC_STRING); +MODULE_INFO(name, KBUILD_MODNAME); + +__visible struct module __this_module +__section(.gnu.linkonce.this_module) = { + .name = KBUILD_MODNAME, + .init = init_module, +#ifdef CONFIG_MODULE_UNLOAD + .exit = cleanup_module, +#endif + .arch = MODULE_ARCH_INIT, +}; + +#ifdef CONFIG_RETPOLINE +MODULE_INFO(retpoline, "Y"); +#endif + +static const struct modversion_info ____versions[] +__used __section(__versions) = { + { 0xdd8f8694, "module_layout" }, + { 0x867847b8, "usb_deregister" }, + { 0x785cf894, "usb_register_driver" }, + { 0x7b262fbe, "usb_deregister_dev" }, + { 0x6626afca, "down" }, + { 0x5b42218f, "usb_control_msg" }, + { 0x5ab904eb, "pv_ops" }, + { 0xdbf17652, "_raw_spin_lock" }, + { 0x9166fada, "strncpy" }, + { 0x362ef408, "_copy_from_user" }, + { 0xdecd0b29, "__stack_chk_fail" }, + { 0x853bbff4, "usb_register_dev" }, + { 0x987e553d, "usb_string" }, + { 0x102ff065, "usb_alloc_urb" }, + { 0xeb233a45, "__kmalloc" }, + { 0xca7a3159, "kmem_cache_alloc_trace" }, + { 0x428db41d, "kmalloc_caches" }, + { 0x37a0cba, "kfree" }, + { 0xbdcfd186, "usb_free_urb" }, + { 0x409bcb62, "mutex_unlock" }, + { 0xcf2a6966, "up" }, + { 0x72e2c5fd, "usb_submit_urb" }, + { 0x81b395b3, "down_interruptible" }, + { 0xaa2a8b37, "usb_find_interface" }, + { 0x2ab7989d, "mutex_lock" }, + { 0xc5850110, "printk" }, + { 0xf5b8840d, "usb_kill_urb" }, + { 0xbdfb6dbb, "__fentry__" }, +}; + +MODULE_INFO(depends, ""); + +MODULE_ALIAS("usb:v0A81p0701d*dc*dsc*dp*ic*isc*ip*in*"); + +MODULE_INFO(srcversion, "8B570854FC10E44C8BE3AC9"); diff --git a/ml_driver.mod.o b/ml_driver.mod.o new file mode 100644 index 0000000000000000000000000000000000000000..25a248a41a90408affe987a9c41350334e2b5885 GIT binary patch literal 4840 zcmeHLO^6&t6t2mv8qIFppn@R6gg`Wd+v#ylkN(;0 zMu-uTy{H5s!h(46rh-BQ6N7q5Kq3+Z527gIH5UUBL=knXw6Va;$o2 zwxTww)!E6J#^}M>DWX|S3u;l&oL*87PF6g1Lai8OLoXWv{Jb*L%M3IIno}l*>6wlZ z)QE3}o@+73teqf^W}7wJqK404Gy*?cTVQ%^OsOjBNToVHvS2!<&-Bvq=bkUwu0bQm zay0{05nfR0OdzFQSUvwUn&22&CbhH`Hwshj|EFG>TV6#Um>xAu-&|lp2odHk7yf)@ zS@I=YPBTv@U+&-gs^oXZhftRCunD>T@!l4C8tzFaAEVpr{O*~T5yAQEt`qvMMeSgr z+i4T)=D_8bu-RLpt`}_LxIxnkOSgW)ChBV^Y2Y!3TCU#Sz_|zf<6o_}5e`D%(Y=)( z9-BkkZ!6>I0h9MuXv=qP8U=kUfPFi@{e|;s5Ndjx>WgjK(wMdRsGZi^Up;dUEzEys z{p5Z6gw*CwuSq`SfI0ae9S_3%egClJYZm05Mt+mGG1rF&c)Yp zRNQ|kb71fEBQIo4D`zq%-Y9>7e4an%7;zu1T+beP@2!1SMj7X?zr6!_!-aF#PQ|Xed&B`@4m0C9=0;Dm4V(F zxEEl4-iGQ3b0U5iMAy05+3C`g^UcT!qtaA-&W*TLIsLS%s8yx1FUEU!EKuxwfZY1G zms7FlNuQ7++1AS)aQ>-V*H(lPvSk+lg%rL=IN)ZBxU?049}xI4Vc#z#iXyouWyR`? zAPQ;xz8KdyK0x@P67<0s=5>)^wz~_S_%I%R2nJnVbKVqqB-|&2L{TK$Q&z0L52BF5 zA5D1_$pa~?qZUbemNEVzh+U~T&xn*?2Am(XI&`k#$EO!gk_}vetBs<=0c-x~;bZd+ zdiYt|xwKU)T@C!IR#m$&aUmO>0+dpDo9c2&u4`-fh4ENZM%+cD(PqyoP!d-xQg!DHhhFh49*>$ zAK_>EbToIYKL$*kTXqH4H|SBMDQVpe8e$?%30_aMZY9fq0-ABv-zono;9{TIouv*K zmXBhQ)Y@Ukm=QXdDFWA^2tIk2~GE+ynN*5L8gUk3~{v$H(tUFaED0|7R0stYrEB E0W$rgVE_OC literal 0 HcmV?d00001 diff --git a/ml_driver.o b/ml_driver.o new file mode 100644 index 0000000000000000000000000000000000000000..297fbd6ff628294fc05d5a552f3646fff89ea26f GIT binary patch literal 13768 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" - ;; -esac diff --git a/modules.order b/modules.order new file mode 100644 index 0000000..8e2a081 --- /dev/null +++ b/modules.order @@ -0,0 +1 @@ +/home/wandog/workspace/missile_related/ml-driver/ml_driver.ko From 98c2ded96c8674b8de9d1024f8219e22685a34c9 Mon Sep 17 00:00:00 2001 From: chiahungma Date: Sun, 16 Apr 2023 00:55:50 +0800 Subject: [PATCH 8/8] remove middle files --- .ml_driver.ko.cmd | 1 - .ml_driver.mod.cmd | 1 - .ml_driver.mod.o.cmd | 686 ------------- .ml_driver.o.cmd | 929 ------------------ Module.symvers | 0 ml_driver.ko | Bin 17368 -> 0 bytes ml_driver.mod | 2 - ml_driver.mod.c | 61 -- ml_driver.mod.o | Bin 4840 -> 0 bytes ml_driver.o | Bin 13768 -> 0 bytes modules.order | 1 - .../CMakeFiles/controlHID.dir/controlHID.c.o | Bin 6536 -> 0 bytes userspace/controlHID | Bin 18024 -> 0 bytes 13 files changed, 1681 deletions(-) delete mode 100644 .ml_driver.ko.cmd delete mode 100644 .ml_driver.mod.cmd delete mode 100644 .ml_driver.mod.o.cmd delete mode 100644 .ml_driver.o.cmd delete mode 100644 Module.symvers delete mode 100644 ml_driver.ko delete mode 100644 ml_driver.mod delete mode 100644 ml_driver.mod.c delete mode 100644 ml_driver.mod.o delete mode 100644 ml_driver.o delete mode 100644 modules.order delete mode 100644 userspace/CMakeFiles/controlHID.dir/controlHID.c.o delete mode 100755 userspace/controlHID diff --git a/.ml_driver.ko.cmd b/.ml_driver.ko.cmd deleted file mode 100644 index db93163..0000000 --- a/.ml_driver.ko.cmd +++ /dev/null @@ -1 +0,0 @@ -cmd_/home/wandog/workspace/missile_related/ml-driver/ml_driver.ko := ld -r -m elf_x86_64 -z max-page-size=0x200000 -z noexecstack --build-id -T ./scripts/module-common.lds -o /home/wandog/workspace/missile_related/ml-driver/ml_driver.ko /home/wandog/workspace/missile_related/ml-driver/ml_driver.o /home/wandog/workspace/missile_related/ml-driver/ml_driver.mod.o; true diff --git a/.ml_driver.mod.cmd b/.ml_driver.mod.cmd deleted file mode 100644 index 6ed3b1d..0000000 --- a/.ml_driver.mod.cmd +++ /dev/null @@ -1 +0,0 @@ -cmd_/home/wandog/workspace/missile_related/ml-driver/ml_driver.mod := { echo /home/wandog/workspace/missile_related/ml-driver/ml_driver.o; echo; } > /home/wandog/workspace/missile_related/ml-driver/ml_driver.mod diff --git a/.ml_driver.mod.o.cmd b/.ml_driver.mod.o.cmd deleted file mode 100644 index 01dab1c..0000000 --- a/.ml_driver.mod.o.cmd +++ /dev/null @@ -1,686 +0,0 @@ -cmd_/home/wandog/workspace/missile_related/ml-driver/ml_driver.mod.o := gcc -Wp,-MD,/home/wandog/workspace/missile_related/ml-driver/.ml_driver.mod.o.d -nostdinc -isystem /usr/lib/gcc/x86_64-linux-gnu/9/include -I./arch/x86/include -I./arch/x86/include/generated -I./include -I./arch/x86/include/uapi -I./arch/x86/include/generated/uapi -I./include/uapi -I./include/generated/uapi -include ./include/linux/kconfig.h -Iubuntu/include -include ./include/linux/compiler_types.h -D__KERNEL__ -Wall -Wundef -Werror=strict-prototypes -Wno-trigraphs -fno-strict-aliasing -fno-common -fshort-wchar -fno-PIE -Werror=implicit-function-declaration -Werror=implicit-int -Werror=return-type -Wno-format-security -std=gnu89 -mno-sse -mno-mmx -mno-sse2 -mno-3dnow -mno-avx -fcf-protection=none -m64 -falign-jumps=1 -falign-loops=1 -mno-80387 -mno-fp-ret-in-387 -mpreferred-stack-boundary=3 -mskip-rax-setup -mtune=generic -mno-red-zone -mcmodel=kernel -DCONFIG_X86_X32_ABI -DCONFIG_AS_CFI=1 -DCONFIG_AS_CFI_SIGNAL_FRAME=1 -DCONFIG_AS_CFI_SECTIONS=1 -DCONFIG_AS_SSSE3=1 -DCONFIG_AS_AVX=1 -DCONFIG_AS_AVX2=1 -DCONFIG_AS_AVX512=1 -DCONFIG_AS_SHA1_NI=1 -DCONFIG_AS_SHA256_NI=1 -Wno-sign-compare -fno-asynchronous-unwind-tables -mindirect-branch=thunk-extern -mindirect-branch-register -fno-jump-tables -fno-delete-null-pointer-checks -Wno-frame-address -Wno-format-truncation -Wno-format-overflow -Wno-address-of-packed-member -O2 --param=allow-store-data-races=0 -Wframe-larger-than=1024 -fstack-protector-strong -Wimplicit-fallthrough -Wno-unused-but-set-variable -Wno-unused-const-variable -fno-omit-frame-pointer -fno-optimize-sibling-calls -fno-var-tracking-assignments -pg -mrecord-mcount -mfentry -DCC_USING_FENTRY -flive-patching=inline-clone -Wdeclaration-after-statement -Wvla -Wno-pointer-sign -Wno-stringop-truncation -Wno-array-bounds -Wno-stringop-overflow -Wno-restrict -Wno-maybe-uninitialized -fno-strict-overflow -fno-merge-all-constants -fmerge-constants -fno-stack-check -fconserve-stack -Werror=date-time -Werror=incompatible-pointer-types -Werror=designated-init -fmacro-prefix-map=./= -Wno-packed-not-aligned -DMODULE -DKBUILD_BASENAME='"ml_driver.mod"' -DKBUILD_MODNAME='"ml_driver"' -c -o /home/wandog/workspace/missile_related/ml-driver/ml_driver.mod.o /home/wandog/workspace/missile_related/ml-driver/ml_driver.mod.c - -source_/home/wandog/workspace/missile_related/ml-driver/ml_driver.mod.o := /home/wandog/workspace/missile_related/ml-driver/ml_driver.mod.c - -deps_/home/wandog/workspace/missile_related/ml-driver/ml_driver.mod.o := \ - $(wildcard include/config/module/unload.h) \ - $(wildcard include/config/retpoline.h) \ - include/linux/kconfig.h \ - $(wildcard include/config/cpu/big/endian.h) \ - $(wildcard include/config/booger.h) \ - $(wildcard include/config/foo.h) \ - include/linux/compiler_types.h \ - $(wildcard include/config/have/arch/compiler/h.h) \ - $(wildcard include/config/enable/must/check.h) \ - $(wildcard include/config/optimize/inlining.h) \ - $(wildcard include/config/cc/has/asm/inline.h) \ - include/linux/compiler_attributes.h \ - include/linux/compiler-gcc.h \ - $(wildcard include/config/arm64.h) \ - $(wildcard include/config/arch/use/builtin/bswap.h) \ - include/linux/build-salt.h \ - $(wildcard include/config/build/salt.h) \ - include/linux/elfnote.h \ - include/linux/elf.h \ - arch/x86/include/asm/elf.h \ - $(wildcard include/config/x86/64.h) \ - $(wildcard include/config/x86/32.h) \ - $(wildcard include/config/ia32/emulation.h) \ - $(wildcard include/config/x86/x32/abi.h) \ - $(wildcard include/config/compat.h) \ - include/linux/thread_info.h \ - $(wildcard include/config/thread/info/in/task.h) \ - $(wildcard include/config/have/arch/within/stack/frames.h) \ - $(wildcard include/config/hardened/usercopy.h) \ - include/linux/types.h \ - $(wildcard include/config/have/uid16.h) \ - $(wildcard include/config/uid16.h) \ - $(wildcard include/config/arch/dma/addr/t/64bit.h) \ - $(wildcard include/config/phys/addr/t/64bit.h) \ - $(wildcard include/config/64bit.h) \ - include/uapi/linux/types.h \ - arch/x86/include/generated/uapi/asm/types.h \ - include/uapi/asm-generic/types.h \ - include/asm-generic/int-ll64.h \ - include/uapi/asm-generic/int-ll64.h \ - arch/x86/include/uapi/asm/bitsperlong.h \ - include/asm-generic/bitsperlong.h \ - include/uapi/asm-generic/bitsperlong.h \ - include/uapi/linux/posix_types.h \ - include/linux/stddef.h \ - include/uapi/linux/stddef.h \ - include/linux/compiler_types.h \ - arch/x86/include/asm/posix_types.h \ - arch/x86/include/uapi/asm/posix_types_64.h \ - include/uapi/asm-generic/posix_types.h \ - include/linux/bug.h \ - $(wildcard include/config/generic/bug.h) \ - $(wildcard include/config/bug/on/data/corruption.h) \ - arch/x86/include/asm/bug.h \ - $(wildcard include/config/debug/bugverbose.h) \ - include/linux/stringify.h \ - include/asm-generic/bug.h \ - $(wildcard include/config/bug.h) \ - $(wildcard include/config/generic/bug/relative/pointers.h) \ - $(wildcard include/config/smp.h) \ - include/linux/compiler.h \ - $(wildcard include/config/trace/branch/profiling.h) \ - $(wildcard include/config/profile/all/branches.h) \ - $(wildcard include/config/stack/validation.h) \ - $(wildcard include/config/debug/entry.h) \ - $(wildcard include/config/kasan.h) \ - arch/x86/include/asm/barrier.h \ - arch/x86/include/asm/alternative.h \ - arch/x86/include/asm/asm.h \ - arch/x86/include/asm/nops.h \ - $(wildcard include/config/mk7.h) \ - $(wildcard include/config/x86/p6/nop.h) \ - include/asm-generic/barrier.h \ - include/linux/kasan-checks.h \ - include/linux/kernel.h \ - $(wildcard include/config/preempt/voluntary.h) \ - $(wildcard include/config/debug/atomic/sleep.h) \ - $(wildcard include/config/mmu.h) \ - $(wildcard include/config/prove/locking.h) \ - $(wildcard include/config/arch/has/refcount.h) \ - $(wildcard include/config/panic/timeout.h) \ - $(wildcard include/config/tracing.h) \ - $(wildcard include/config/ftrace/mcount/record.h) \ - /usr/lib/gcc/x86_64-linux-gnu/9/include/stdarg.h \ - include/linux/limits.h \ - include/uapi/linux/limits.h \ - include/linux/linkage.h \ - include/linux/export.h \ - $(wildcard include/config/modversions.h) \ - $(wildcard include/config/module/rel/crcs.h) \ - $(wildcard include/config/have/arch/prel32/relocations.h) \ - $(wildcard include/config/modules.h) \ - $(wildcard include/config/trim/unused/ksyms.h) \ - $(wildcard include/config/unused/symbols.h) \ - arch/x86/include/asm/linkage.h \ - $(wildcard include/config/x86/alignment/16.h) \ - include/linux/bitops.h \ - include/linux/bits.h \ - include/linux/const.h \ - include/uapi/linux/const.h \ - arch/x86/include/asm/bitops.h \ - $(wildcard include/config/x86/cmov.h) \ - arch/x86/include/asm/rmwcc.h \ - $(wildcard include/config/cc/has/asm/goto.h) \ - include/asm-generic/bitops/find.h \ - $(wildcard include/config/generic/find/first/bit.h) \ - include/asm-generic/bitops/sched.h \ - arch/x86/include/asm/arch_hweight.h \ - arch/x86/include/asm/cpufeatures.h \ - arch/x86/include/asm/required-features.h \ - $(wildcard include/config/x86/minimum/cpu/family.h) \ - $(wildcard include/config/math/emulation.h) \ - $(wildcard include/config/x86/pae.h) \ - $(wildcard include/config/x86/cmpxchg64.h) \ - $(wildcard include/config/x86/use/3dnow.h) \ - $(wildcard include/config/matom.h) \ - $(wildcard include/config/paravirt.h) \ - arch/x86/include/asm/disabled-features.h \ - $(wildcard include/config/x86/intel/mpx.h) \ - $(wildcard include/config/x86/smap.h) \ - $(wildcard include/config/x86/intel/umip.h) \ - $(wildcard include/config/x86/intel/memory/protection/keys.h) \ - $(wildcard include/config/x86/5level.h) \ - $(wildcard include/config/page/table/isolation.h) \ - include/asm-generic/bitops/const_hweight.h \ - include/asm-generic/bitops-instrumented.h \ - include/asm-generic/bitops/le.h \ - arch/x86/include/uapi/asm/byteorder.h \ - include/linux/byteorder/little_endian.h \ - include/uapi/linux/byteorder/little_endian.h \ - include/linux/swab.h \ - include/uapi/linux/swab.h \ - arch/x86/include/uapi/asm/swab.h \ - include/linux/byteorder/generic.h \ - include/asm-generic/bitops/ext2-atomic-setbit.h \ - include/linux/log2.h \ - $(wildcard include/config/arch/has/ilog2/u32.h) \ - $(wildcard include/config/arch/has/ilog2/u64.h) \ - include/linux/typecheck.h \ - include/linux/printk.h \ - $(wildcard include/config/message/loglevel/default.h) \ - $(wildcard include/config/console/loglevel/default.h) \ - $(wildcard include/config/console/loglevel/quiet.h) \ - $(wildcard include/config/early/printk.h) \ - $(wildcard include/config/printk/nmi.h) \ - $(wildcard include/config/printk.h) \ - $(wildcard include/config/kmsg/ids.h) \ - $(wildcard include/config/dynamic/debug.h) \ - include/linux/init.h \ - $(wildcard include/config/strict/kernel/rwx.h) \ - $(wildcard include/config/strict/module/rwx.h) \ - include/linux/kern_levels.h \ - include/linux/cache.h \ - $(wildcard include/config/arch/has/cache/line/size.h) \ - include/uapi/linux/kernel.h \ - include/uapi/linux/sysinfo.h \ - arch/x86/include/asm/cache.h \ - $(wildcard include/config/x86/l1/cache/shift.h) \ - $(wildcard include/config/x86/internode/cache/shift.h) \ - $(wildcard include/config/x86/vsmp.h) \ - include/linux/dynamic_debug.h \ - $(wildcard include/config/jump/label.h) \ - include/linux/jump_label.h \ - $(wildcard include/config/have/arch/jump/label/relative.h) \ - arch/x86/include/asm/jump_label.h \ - include/linux/build_bug.h \ - arch/x86/include/asm/div64.h \ - include/asm-generic/div64.h \ - include/linux/restart_block.h \ - include/linux/time64.h \ - include/linux/math64.h \ - $(wildcard include/config/arch/supports/int128.h) \ - include/uapi/linux/time.h \ - include/uapi/linux/time_types.h \ - include/linux/errno.h \ - include/uapi/linux/errno.h \ - arch/x86/include/generated/uapi/asm/errno.h \ - include/uapi/asm-generic/errno.h \ - include/uapi/asm-generic/errno-base.h \ - arch/x86/include/asm/current.h \ - arch/x86/include/asm/percpu.h \ - $(wildcard include/config/x86/64/smp.h) \ - include/asm-generic/percpu.h \ - $(wildcard include/config/debug/preempt.h) \ - $(wildcard include/config/have/setup/per/cpu/area.h) \ - include/linux/threads.h \ - $(wildcard include/config/nr/cpus.h) \ - $(wildcard include/config/base/small.h) \ - include/linux/percpu-defs.h \ - $(wildcard include/config/debug/force/weak/per/cpu.h) \ - $(wildcard include/config/amd/mem/encrypt.h) \ - arch/x86/include/asm/thread_info.h \ - $(wildcard include/config/vm86.h) \ - $(wildcard include/config/frame/pointer.h) \ - arch/x86/include/asm/page.h \ - arch/x86/include/asm/page_types.h \ - $(wildcard include/config/physical/start.h) \ - $(wildcard include/config/physical/align.h) \ - $(wildcard include/config/dynamic/physical/mask.h) \ - include/linux/mem_encrypt.h \ - $(wildcard include/config/arch/has/mem/encrypt.h) \ - arch/x86/include/asm/mem_encrypt.h \ - arch/x86/include/uapi/asm/bootparam.h \ - include/linux/screen_info.h \ - include/uapi/linux/screen_info.h \ - include/linux/apm_bios.h \ - include/uapi/linux/apm_bios.h \ - include/uapi/linux/ioctl.h \ - arch/x86/include/generated/uapi/asm/ioctl.h \ - include/asm-generic/ioctl.h \ - include/uapi/asm-generic/ioctl.h \ - include/linux/edd.h \ - include/uapi/linux/edd.h \ - arch/x86/include/asm/ist.h \ - arch/x86/include/uapi/asm/ist.h \ - include/video/edid.h \ - $(wildcard include/config/x86.h) \ - include/uapi/video/edid.h \ - arch/x86/include/asm/page_64_types.h \ - $(wildcard include/config/dynamic/memory/layout.h) \ - $(wildcard include/config/randomize/base.h) \ - arch/x86/include/asm/kaslr.h \ - $(wildcard include/config/randomize/memory.h) \ - arch/x86/include/asm/page_64.h \ - $(wildcard include/config/debug/virtual.h) \ - $(wildcard include/config/flatmem.h) \ - $(wildcard include/config/x86/vsyscall/emulation.h) \ - include/linux/range.h \ - include/asm-generic/memory_model.h \ - $(wildcard include/config/discontigmem.h) \ - $(wildcard include/config/sparsemem/vmemmap.h) \ - $(wildcard include/config/sparsemem.h) \ - include/linux/pfn.h \ - include/asm-generic/getorder.h \ - arch/x86/include/asm/cpufeature.h \ - $(wildcard include/config/x86/feature/names.h) \ - arch/x86/include/asm/processor.h \ - $(wildcard include/config/kvm.h) \ - $(wildcard include/config/stackprotector.h) \ - $(wildcard include/config/paravirt/xxl.h) \ - $(wildcard include/config/x86/debugctlmsr.h) \ - $(wildcard include/config/cpu/sup/amd.h) \ - $(wildcard include/config/xen.h) \ - arch/x86/include/asm/processor-flags.h \ - arch/x86/include/uapi/asm/processor-flags.h \ - arch/x86/include/asm/math_emu.h \ - arch/x86/include/asm/ptrace.h \ - arch/x86/include/asm/segment.h \ - $(wildcard include/config/xen/pv.h) \ - $(wildcard include/config/x86/32/lazy/gs.h) \ - arch/x86/include/uapi/asm/ptrace.h \ - arch/x86/include/uapi/asm/ptrace-abi.h \ - arch/x86/include/asm/paravirt_types.h \ - $(wildcard include/config/pgtable/levels.h) \ - $(wildcard include/config/paravirt/debug.h) \ - arch/x86/include/asm/desc_defs.h \ - arch/x86/include/asm/kmap_types.h \ - $(wildcard include/config/debug/highmem.h) \ - include/asm-generic/kmap_types.h \ - arch/x86/include/asm/pgtable_types.h \ - $(wildcard include/config/mem/soft/dirty.h) \ - $(wildcard include/config/proc/fs.h) \ - arch/x86/include/asm/pgtable_64_types.h \ - arch/x86/include/asm/sparsemem.h \ - include/asm-generic/pgtable-nop4d.h \ - arch/x86/include/asm/nospec-branch.h \ - include/linux/static_key.h \ - include/linux/frame.h \ - arch/x86/include/asm/alternative-asm.h \ - arch/x86/include/asm/msr-index.h \ - arch/x86/include/asm/unwind_hints.h \ - arch/x86/include/asm/orc_types.h \ - arch/x86/include/asm/spinlock_types.h \ - $(wildcard include/config/paravirt/spinlocks.h) \ - include/asm-generic/qspinlock_types.h \ - include/asm-generic/qrwlock_types.h \ - arch/x86/include/uapi/asm/sigcontext.h \ - arch/x86/include/asm/msr.h \ - $(wildcard include/config/tracepoints.h) \ - arch/x86/include/asm/msr-index.h \ - arch/x86/include/asm/cpumask.h \ - include/linux/cpumask.h \ - $(wildcard include/config/cpumask/offstack.h) \ - $(wildcard include/config/hotplug/cpu.h) \ - $(wildcard include/config/debug/per/cpu/maps.h) \ - include/linux/bitmap.h \ - include/linux/string.h \ - $(wildcard include/config/binary/printf.h) \ - $(wildcard include/config/fortify/source.h) \ - include/uapi/linux/string.h \ - arch/x86/include/asm/string.h \ - arch/x86/include/asm/string_64.h \ - $(wildcard include/config/x86/mce.h) \ - $(wildcard include/config/arch/has/uaccess/flushcache.h) \ - include/linux/atomic.h \ - arch/x86/include/asm/atomic.h \ - arch/x86/include/asm/cmpxchg.h \ - arch/x86/include/asm/cmpxchg_64.h \ - arch/x86/include/asm/atomic64_64.h \ - include/asm-generic/atomic-instrumented.h \ - include/linux/atomic-fallback.h \ - $(wildcard include/config/generic/atomic64.h) \ - include/asm-generic/atomic-long.h \ - arch/x86/include/uapi/asm/msr.h \ - include/linux/tracepoint-defs.h \ - arch/x86/include/asm/paravirt.h \ - arch/x86/include/asm/frame.h \ - arch/x86/include/asm/special_insns.h \ - arch/x86/include/asm/fpu/types.h \ - include/linux/personality.h \ - include/uapi/linux/personality.h \ - include/linux/err.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) \ - arch/x86/include/asm/irqflags.h \ - $(wildcard include/config/debug/lock/alloc.h) \ - arch/x86/include/asm/user.h \ - arch/x86/include/asm/user_64.h \ - arch/x86/include/uapi/asm/auxvec.h \ - arch/x86/include/asm/fsgsbase.h \ - arch/x86/include/asm/vdso.h \ - $(wildcard include/config/x86/x32.h) \ - include/linux/mm_types.h \ - $(wildcard include/config/have/aligned/struct/page.h) \ - $(wildcard include/config/memcg.h) \ - $(wildcard include/config/userfaultfd.h) \ - $(wildcard include/config/swap.h) \ - $(wildcard include/config/numa.h) \ - $(wildcard include/config/have/arch/compat/mmap/bases.h) \ - $(wildcard include/config/membarrier.h) \ - $(wildcard include/config/aio.h) \ - $(wildcard include/config/mmu/notifier.h) \ - $(wildcard include/config/transparent/hugepage.h) \ - $(wildcard include/config/numa/balancing.h) \ - $(wildcard include/config/arch/want/batched/unmap/tlb/flush.h) \ - $(wildcard include/config/hugetlb/page.h) \ - include/linux/mm_types_task.h \ - $(wildcard include/config/split/ptlock/cpus.h) \ - $(wildcard include/config/arch/enable/split/pmd/ptlock.h) \ - arch/x86/include/asm/tlbbatch.h \ - include/linux/auxvec.h \ - include/uapi/linux/auxvec.h \ - include/linux/list.h \ - $(wildcard include/config/debug/list.h) \ - include/linux/poison.h \ - $(wildcard include/config/illegal/pointer/value.h) \ - $(wildcard include/config/page/poisoning/zero.h) \ - include/linux/spinlock.h \ - $(wildcard include/config/debug/spinlock.h) \ - $(wildcard include/config/preemption.h) \ - include/linux/preempt.h \ - $(wildcard include/config/preempt/count.h) \ - $(wildcard include/config/trace/preempt/toggle.h) \ - $(wildcard include/config/preempt/notifiers.h) \ - arch/x86/include/asm/preempt.h \ - include/linux/bottom_half.h \ - arch/x86/include/generated/asm/mmiowb.h \ - include/asm-generic/mmiowb.h \ - $(wildcard include/config/mmiowb.h) \ - include/linux/spinlock_types.h \ - include/linux/lockdep.h \ - $(wildcard include/config/lockdep.h) \ - $(wildcard include/config/lock/stat.h) \ - include/linux/rwlock_types.h \ - arch/x86/include/asm/spinlock.h \ - arch/x86/include/asm/qspinlock.h \ - include/asm-generic/qspinlock.h \ - arch/x86/include/asm/qrwlock.h \ - include/asm-generic/qrwlock.h \ - include/linux/rwlock.h \ - $(wildcard include/config/preempt.h) \ - include/linux/spinlock_api_smp.h \ - $(wildcard include/config/inline/spin/lock.h) \ - $(wildcard include/config/inline/spin/lock/bh.h) \ - $(wildcard include/config/inline/spin/lock/irq.h) \ - $(wildcard include/config/inline/spin/lock/irqsave.h) \ - $(wildcard include/config/inline/spin/trylock.h) \ - $(wildcard include/config/inline/spin/trylock/bh.h) \ - $(wildcard include/config/uninline/spin/unlock.h) \ - $(wildcard include/config/inline/spin/unlock/bh.h) \ - $(wildcard include/config/inline/spin/unlock/irq.h) \ - $(wildcard include/config/inline/spin/unlock/irqrestore.h) \ - $(wildcard include/config/generic/lockbreak.h) \ - include/linux/rwlock_api_smp.h \ - $(wildcard include/config/inline/read/lock.h) \ - $(wildcard include/config/inline/write/lock.h) \ - $(wildcard include/config/inline/read/lock/bh.h) \ - $(wildcard include/config/inline/write/lock/bh.h) \ - $(wildcard include/config/inline/read/lock/irq.h) \ - $(wildcard include/config/inline/write/lock/irq.h) \ - $(wildcard include/config/inline/read/lock/irqsave.h) \ - $(wildcard include/config/inline/write/lock/irqsave.h) \ - $(wildcard include/config/inline/read/trylock.h) \ - $(wildcard include/config/inline/write/trylock.h) \ - $(wildcard include/config/inline/read/unlock.h) \ - $(wildcard include/config/inline/write/unlock.h) \ - $(wildcard include/config/inline/read/unlock/bh.h) \ - $(wildcard include/config/inline/write/unlock/bh.h) \ - $(wildcard include/config/inline/read/unlock/irq.h) \ - $(wildcard include/config/inline/write/unlock/irq.h) \ - $(wildcard include/config/inline/read/unlock/irqrestore.h) \ - $(wildcard include/config/inline/write/unlock/irqrestore.h) \ - include/linux/rbtree.h \ - include/linux/rcupdate.h \ - $(wildcard include/config/preempt/rcu.h) \ - $(wildcard include/config/rcu/stall/common.h) \ - $(wildcard include/config/no/hz/full.h) \ - $(wildcard include/config/rcu/nocb/cpu.h) \ - $(wildcard include/config/tasks/rcu.h) \ - $(wildcard include/config/tree/rcu.h) \ - $(wildcard include/config/tiny/rcu.h) \ - $(wildcard include/config/debug/objects/rcu/head.h) \ - $(wildcard include/config/prove/rcu.h) \ - $(wildcard include/config/rcu/boost.h) \ - $(wildcard include/config/arch/weak/release/acquire.h) \ - include/linux/rcutree.h \ - include/linux/rwsem.h \ - $(wildcard include/config/rwsem/spin/on/owner.h) \ - $(wildcard include/config/debug/rwsems.h) \ - include/linux/osq_lock.h \ - include/linux/completion.h \ - include/linux/wait.h \ - include/uapi/linux/wait.h \ - include/linux/uprobes.h \ - $(wildcard include/config/uprobes.h) \ - arch/x86/include/asm/uprobes.h \ - include/linux/notifier.h \ - $(wildcard include/config/tree/srcu.h) \ - include/linux/mutex.h \ - $(wildcard include/config/mutex/spin/on/owner.h) \ - $(wildcard include/config/debug/mutexes.h) \ - include/linux/debug_locks.h \ - $(wildcard include/config/debug/locking/api/selftests.h) \ - include/linux/srcu.h \ - $(wildcard include/config/tiny/srcu.h) \ - $(wildcard include/config/srcu.h) \ - include/linux/workqueue.h \ - $(wildcard include/config/debug/objects/work.h) \ - $(wildcard include/config/freezer.h) \ - $(wildcard include/config/sysfs.h) \ - $(wildcard include/config/wq/watchdog.h) \ - include/linux/timer.h \ - $(wildcard include/config/debug/objects/timers.h) \ - $(wildcard include/config/preempt/rt.h) \ - $(wildcard include/config/no/hz/common.h) \ - include/linux/ktime.h \ - include/linux/time.h \ - $(wildcard include/config/arch/uses/gettimeoffset.h) \ - include/linux/seqlock.h \ - include/linux/time32.h \ - include/linux/timex.h \ - include/uapi/linux/timex.h \ - include/uapi/linux/param.h \ - arch/x86/include/generated/uapi/asm/param.h \ - include/asm-generic/param.h \ - $(wildcard include/config/hz.h) \ - include/uapi/asm-generic/param.h \ - arch/x86/include/asm/timex.h \ - $(wildcard include/config/x86/tsc.h) \ - arch/x86/include/asm/tsc.h \ - include/linux/jiffies.h \ - include/generated/timeconst.h \ - include/linux/timekeeping.h \ - include/linux/timekeeping32.h \ - include/linux/debugobjects.h \ - $(wildcard include/config/debug/objects.h) \ - $(wildcard include/config/debug/objects/free.h) \ - include/linux/rcu_segcblist.h \ - include/linux/srcutree.h \ - include/linux/rcu_node_tree.h \ - $(wildcard include/config/rcu/fanout.h) \ - $(wildcard include/config/rcu/fanout/leaf.h) \ - include/linux/page-flags-layout.h \ - $(wildcard include/config/kasan/sw/tags.h) \ - include/linux/numa.h \ - $(wildcard include/config/nodes/shift.h) \ - include/generated/bounds.h \ - arch/x86/include/asm/mmu.h \ - $(wildcard include/config/modify/ldt/syscall.h) \ - include/uapi/linux/elf.h \ - include/uapi/linux/elf-em.h \ - include/linux/module.h \ - $(wildcard include/config/modules/tree/lookup.h) \ - $(wildcard include/config/livepatch.h) \ - $(wildcard include/config/module/sig.h) \ - $(wildcard include/config/kallsyms.h) \ - $(wildcard include/config/bpf/events.h) \ - $(wildcard include/config/event/tracing.h) \ - $(wildcard include/config/constructors.h) \ - $(wildcard include/config/function/error/injection.h) \ - include/linux/stat.h \ - arch/x86/include/uapi/asm/stat.h \ - include/uapi/linux/stat.h \ - include/linux/uidgid.h \ - $(wildcard include/config/multiuser.h) \ - $(wildcard include/config/user/ns.h) \ - include/linux/highuid.h \ - include/linux/kmod.h \ - include/linux/umh.h \ - include/linux/gfp.h \ - $(wildcard include/config/highmem.h) \ - $(wildcard include/config/zone/dma.h) \ - $(wildcard include/config/zone/dma32.h) \ - $(wildcard include/config/zone/device.h) \ - $(wildcard include/config/pm/sleep.h) \ - $(wildcard include/config/contig/alloc.h) \ - $(wildcard include/config/cma.h) \ - include/linux/mmdebug.h \ - $(wildcard include/config/debug/vm.h) \ - $(wildcard include/config/debug/vm/pgflags.h) \ - include/linux/mmzone.h \ - $(wildcard include/config/force/max/zoneorder.h) \ - $(wildcard include/config/memory/isolation.h) \ - $(wildcard include/config/shuffle/page/allocator.h) \ - $(wildcard include/config/zsmalloc.h) \ - $(wildcard include/config/memory/hotplug.h) \ - $(wildcard include/config/compaction.h) \ - $(wildcard include/config/flat/node/mem/map.h) \ - $(wildcard include/config/page/extension.h) \ - $(wildcard include/config/deferred/struct/page/init.h) \ - $(wildcard include/config/have/memory/present.h) \ - $(wildcard include/config/have/memoryless/nodes.h) \ - $(wildcard include/config/have/memblock/node/map.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/memory/hotremove.h) \ - $(wildcard include/config/have/arch/pfn/valid.h) \ - $(wildcard include/config/holes/in/zone.h) \ - include/linux/nodemask.h \ - include/linux/pageblock-flags.h \ - $(wildcard include/config/hugetlb/page/size/variable.h) \ - include/linux/page-flags.h \ - $(wildcard include/config/arch/uses/pg/uncached.h) \ - $(wildcard include/config/memory/failure.h) \ - $(wildcard include/config/idle/page/tracking.h) \ - $(wildcard include/config/thp/swap.h) \ - $(wildcard include/config/ksm.h) \ - include/linux/memory_hotplug.h \ - $(wildcard include/config/arch/has/add/pages.h) \ - $(wildcard include/config/have/arch/nodedata/extension.h) \ - $(wildcard include/config/have/bootmem/info/node.h) \ - arch/x86/include/asm/mmzone.h \ - arch/x86/include/asm/mmzone_64.h \ - arch/x86/include/asm/smp.h \ - $(wildcard include/config/x86/local/apic.h) \ - $(wildcard include/config/x86/io/apic.h) \ - $(wildcard include/config/debug/nmi/selftest.h) \ - arch/x86/include/asm/mpspec.h \ - $(wildcard include/config/eisa.h) \ - $(wildcard include/config/x86/mpparse.h) \ - arch/x86/include/asm/mpspec_def.h \ - arch/x86/include/asm/x86_init.h \ - arch/x86/include/asm/apicdef.h \ - arch/x86/include/asm/apic.h \ - $(wildcard include/config/x86/x2apic.h) \ - arch/x86/include/asm/fixmap.h \ - $(wildcard include/config/provide/ohci1394/dma/init.h) \ - $(wildcard include/config/pci/mmconfig.h) \ - $(wildcard include/config/x86/intel/mid.h) \ - $(wildcard include/config/acpi/apei/ghes.h) \ - $(wildcard include/config/intel/txt.h) \ - arch/x86/include/asm/acpi.h \ - $(wildcard include/config/acpi/apei.h) \ - $(wildcard include/config/acpi.h) \ - $(wildcard include/config/acpi/numa.h) \ - include/acpi/pdc_intel.h \ - arch/x86/include/asm/numa.h \ - $(wildcard include/config/numa/emu.h) \ - arch/x86/include/asm/topology.h \ - $(wildcard include/config/sched/mc/prio.h) \ - include/asm-generic/topology.h \ - arch/x86/include/asm/realmode.h \ - $(wildcard include/config/acpi/sleep.h) \ - arch/x86/include/asm/io.h \ - $(wildcard include/config/mtrr.h) \ - $(wildcard include/config/x86/pat.h) \ - arch/x86/include/generated/asm/early_ioremap.h \ - include/asm-generic/early_ioremap.h \ - $(wildcard include/config/generic/early/ioremap.h) \ - include/asm-generic/iomap.h \ - $(wildcard include/config/has/ioport/map.h) \ - $(wildcard include/config/pci.h) \ - $(wildcard include/config/generic/iomap.h) \ - include/asm-generic/pci_iomap.h \ - $(wildcard include/config/no/generic/pci/ioport/map.h) \ - $(wildcard include/config/generic/pci/iomap.h) \ - include/asm-generic/io.h \ - $(wildcard include/config/virt/to/bus.h) \ - include/linux/logic_pio.h \ - $(wildcard include/config/indirect/pio.h) \ - include/linux/fwnode.h \ - include/linux/vmalloc.h \ - include/linux/llist.h \ - $(wildcard include/config/arch/have/nmi/safe/cmpxchg.h) \ - include/linux/overflow.h \ - arch/x86/include/uapi/asm/vsyscall.h \ - include/asm-generic/fixmap.h \ - arch/x86/include/asm/hardirq.h \ - $(wildcard include/config/kvm/intel.h) \ - $(wildcard include/config/have/kvm.h) \ - $(wildcard include/config/x86/thermal/vector.h) \ - $(wildcard include/config/x86/mce/threshold.h) \ - $(wildcard include/config/x86/mce/amd.h) \ - $(wildcard include/config/x86/hv/callback/vector.h) \ - $(wildcard include/config/hyperv.h) \ - arch/x86/include/asm/io_apic.h \ - arch/x86/include/asm/irq_vectors.h \ - $(wildcard include/config/pci/msi.h) \ - include/linux/topology.h \ - $(wildcard include/config/use/percpu/numa/node/id.h) \ - $(wildcard include/config/sched/smt.h) \ - include/linux/arch_topology.h \ - $(wildcard include/config/generic/arch/topology.h) \ - include/linux/percpu.h \ - $(wildcard include/config/need/per/cpu/embed/first/chunk.h) \ - $(wildcard include/config/need/per/cpu/page/first/chunk.h) \ - include/linux/smp.h \ - $(wildcard include/config/up/late/init.h) \ - include/linux/sysctl.h \ - $(wildcard include/config/sysctl.h) \ - include/uapi/linux/sysctl.h \ - include/linux/kobject.h \ - $(wildcard include/config/uevent/helper.h) \ - $(wildcard include/config/debug/kobject/release.h) \ - include/linux/sysfs.h \ - include/linux/kernfs.h \ - $(wildcard include/config/kernfs.h) \ - include/linux/idr.h \ - include/linux/radix-tree.h \ - include/linux/xarray.h \ - $(wildcard include/config/xarray/multi.h) \ - include/linux/kconfig.h \ - include/linux/kobject_ns.h \ - include/linux/kref.h \ - include/linux/refcount.h \ - include/linux/moduleparam.h \ - $(wildcard include/config/alpha.h) \ - $(wildcard include/config/ia64.h) \ - $(wildcard include/config/ppc64.h) \ - include/linux/rbtree_latch.h \ - include/linux/error-injection.h \ - include/asm-generic/error-injection.h \ - arch/x86/include/asm/module.h \ - $(wildcard include/config/unwinder/orc.h) \ - $(wildcard include/config/m486.h) \ - $(wildcard include/config/m586.h) \ - $(wildcard include/config/m586tsc.h) \ - $(wildcard include/config/m586mmx.h) \ - $(wildcard include/config/mcore2.h) \ - $(wildcard include/config/m686.h) \ - $(wildcard include/config/mpentiumii.h) \ - $(wildcard include/config/mpentiumiii.h) \ - $(wildcard include/config/mpentiumm.h) \ - $(wildcard include/config/mpentium4.h) \ - $(wildcard include/config/mk6.h) \ - $(wildcard include/config/mk8.h) \ - $(wildcard include/config/melan.h) \ - $(wildcard include/config/mcrusoe.h) \ - $(wildcard include/config/mefficeon.h) \ - $(wildcard include/config/mwinchipc6.h) \ - $(wildcard include/config/mwinchip3d.h) \ - $(wildcard include/config/mcyrixiii.h) \ - $(wildcard include/config/mviac3/2.h) \ - $(wildcard include/config/mviac7.h) \ - $(wildcard include/config/mgeodegx1.h) \ - $(wildcard include/config/mgeode/lx.h) \ - include/asm-generic/module.h \ - $(wildcard include/config/have/mod/arch/specific.h) \ - $(wildcard include/config/modules/use/elf/rel.h) \ - $(wildcard include/config/modules/use/elf/rela.h) \ - arch/x86/include/asm/orc_types.h \ - include/linux/vermagic.h \ - include/generated/utsrelease.h \ - -/home/wandog/workspace/missile_related/ml-driver/ml_driver.mod.o: $(deps_/home/wandog/workspace/missile_related/ml-driver/ml_driver.mod.o) - -$(deps_/home/wandog/workspace/missile_related/ml-driver/ml_driver.mod.o): diff --git a/.ml_driver.o.cmd b/.ml_driver.o.cmd deleted file mode 100644 index 876c320..0000000 --- a/.ml_driver.o.cmd +++ /dev/null @@ -1,929 +0,0 @@ -cmd_/home/wandog/workspace/missile_related/ml-driver/ml_driver.o := gcc -Wp,-MD,/home/wandog/workspace/missile_related/ml-driver/.ml_driver.o.d -nostdinc -isystem /usr/lib/gcc/x86_64-linux-gnu/9/include -I./arch/x86/include -I./arch/x86/include/generated -I./include -I./arch/x86/include/uapi -I./arch/x86/include/generated/uapi -I./include/uapi -I./include/generated/uapi -include ./include/linux/kconfig.h -Iubuntu/include -include ./include/linux/compiler_types.h -D__KERNEL__ -Wall -Wundef -Werror=strict-prototypes -Wno-trigraphs -fno-strict-aliasing -fno-common -fshort-wchar -fno-PIE -Werror=implicit-function-declaration -Werror=implicit-int -Werror=return-type -Wno-format-security -std=gnu89 -mno-sse -mno-mmx -mno-sse2 -mno-3dnow -mno-avx -fcf-protection=none -m64 -falign-jumps=1 -falign-loops=1 -mno-80387 -mno-fp-ret-in-387 -mpreferred-stack-boundary=3 -mskip-rax-setup -mtune=generic -mno-red-zone -mcmodel=kernel -DCONFIG_X86_X32_ABI -DCONFIG_AS_CFI=1 -DCONFIG_AS_CFI_SIGNAL_FRAME=1 -DCONFIG_AS_CFI_SECTIONS=1 -DCONFIG_AS_SSSE3=1 -DCONFIG_AS_AVX=1 -DCONFIG_AS_AVX2=1 -DCONFIG_AS_AVX512=1 -DCONFIG_AS_SHA1_NI=1 -DCONFIG_AS_SHA256_NI=1 -Wno-sign-compare -fno-asynchronous-unwind-tables -mindirect-branch=thunk-extern -mindirect-branch-register -fno-jump-tables -fno-delete-null-pointer-checks -Wno-frame-address -Wno-format-truncation -Wno-format-overflow -Wno-address-of-packed-member -O2 --param=allow-store-data-races=0 -Wframe-larger-than=1024 -fstack-protector-strong -Wimplicit-fallthrough -Wno-unused-but-set-variable -Wno-unused-const-variable -fno-omit-frame-pointer -fno-optimize-sibling-calls -fno-var-tracking-assignments -pg -mrecord-mcount -mfentry -DCC_USING_FENTRY -flive-patching=inline-clone -Wdeclaration-after-statement -Wvla -Wno-pointer-sign -Wno-stringop-truncation -Wno-array-bounds -Wno-stringop-overflow -Wno-restrict -Wno-maybe-uninitialized -fno-strict-overflow -fno-merge-all-constants -fmerge-constants -fno-stack-check -fconserve-stack -Werror=date-time -Werror=incompatible-pointer-types -Werror=designated-init -fmacro-prefix-map=./= -Wno-packed-not-aligned -DMODULE -DKBUILD_BASENAME='"ml_driver"' -DKBUILD_MODNAME='"ml_driver"' -c -o /home/wandog/workspace/missile_related/ml-driver/ml_driver.o /home/wandog/workspace/missile_related/ml-driver/ml_driver.c - -source_/home/wandog/workspace/missile_related/ml-driver/ml_driver.o := /home/wandog/workspace/missile_related/ml-driver/ml_driver.c - -deps_/home/wandog/workspace/missile_related/ml-driver/ml_driver.o := \ - $(wildcard include/config/usb/dynamic/minors.h) \ - include/linux/kconfig.h \ - $(wildcard include/config/cpu/big/endian.h) \ - $(wildcard include/config/booger.h) \ - $(wildcard include/config/foo.h) \ - include/linux/compiler_types.h \ - $(wildcard include/config/have/arch/compiler/h.h) \ - $(wildcard include/config/enable/must/check.h) \ - $(wildcard include/config/optimize/inlining.h) \ - $(wildcard include/config/cc/has/asm/inline.h) \ - include/linux/compiler_attributes.h \ - include/linux/compiler-gcc.h \ - $(wildcard include/config/arm64.h) \ - $(wildcard include/config/retpoline.h) \ - $(wildcard include/config/arch/use/builtin/bswap.h) \ - include/linux/module.h \ - $(wildcard include/config/modules.h) \ - $(wildcard include/config/sysfs.h) \ - $(wildcard include/config/modules/tree/lookup.h) \ - $(wildcard include/config/livepatch.h) \ - $(wildcard include/config/unused/symbols.h) \ - $(wildcard include/config/module/sig.h) \ - $(wildcard include/config/generic/bug.h) \ - $(wildcard include/config/kallsyms.h) \ - $(wildcard include/config/smp.h) \ - $(wildcard include/config/tracepoints.h) \ - $(wildcard include/config/tree/srcu.h) \ - $(wildcard include/config/bpf/events.h) \ - $(wildcard include/config/jump/label.h) \ - $(wildcard include/config/tracing.h) \ - $(wildcard include/config/event/tracing.h) \ - $(wildcard include/config/ftrace/mcount/record.h) \ - $(wildcard include/config/module/unload.h) \ - $(wildcard include/config/constructors.h) \ - $(wildcard include/config/function/error/injection.h) \ - $(wildcard include/config/strict/module/rwx.h) \ - include/linux/list.h \ - $(wildcard include/config/debug/list.h) \ - include/linux/types.h \ - $(wildcard include/config/have/uid16.h) \ - $(wildcard include/config/uid16.h) \ - $(wildcard include/config/arch/dma/addr/t/64bit.h) \ - $(wildcard include/config/phys/addr/t/64bit.h) \ - $(wildcard include/config/64bit.h) \ - include/uapi/linux/types.h \ - arch/x86/include/generated/uapi/asm/types.h \ - include/uapi/asm-generic/types.h \ - include/asm-generic/int-ll64.h \ - include/uapi/asm-generic/int-ll64.h \ - arch/x86/include/uapi/asm/bitsperlong.h \ - include/asm-generic/bitsperlong.h \ - include/uapi/asm-generic/bitsperlong.h \ - include/uapi/linux/posix_types.h \ - include/linux/stddef.h \ - include/uapi/linux/stddef.h \ - include/linux/compiler_types.h \ - arch/x86/include/asm/posix_types.h \ - $(wildcard include/config/x86/32.h) \ - arch/x86/include/uapi/asm/posix_types_64.h \ - include/uapi/asm-generic/posix_types.h \ - include/linux/poison.h \ - $(wildcard include/config/illegal/pointer/value.h) \ - $(wildcard include/config/page/poisoning/zero.h) \ - include/linux/const.h \ - include/uapi/linux/const.h \ - include/linux/kernel.h \ - $(wildcard include/config/preempt/voluntary.h) \ - $(wildcard include/config/debug/atomic/sleep.h) \ - $(wildcard include/config/mmu.h) \ - $(wildcard include/config/prove/locking.h) \ - $(wildcard include/config/arch/has/refcount.h) \ - $(wildcard include/config/panic/timeout.h) \ - /usr/lib/gcc/x86_64-linux-gnu/9/include/stdarg.h \ - include/linux/limits.h \ - include/uapi/linux/limits.h \ - include/linux/linkage.h \ - include/linux/stringify.h \ - include/linux/export.h \ - $(wildcard include/config/modversions.h) \ - $(wildcard include/config/module/rel/crcs.h) \ - $(wildcard include/config/have/arch/prel32/relocations.h) \ - $(wildcard include/config/trim/unused/ksyms.h) \ - include/linux/compiler.h \ - $(wildcard include/config/trace/branch/profiling.h) \ - $(wildcard include/config/profile/all/branches.h) \ - $(wildcard include/config/stack/validation.h) \ - $(wildcard include/config/debug/entry.h) \ - $(wildcard include/config/kasan.h) \ - arch/x86/include/asm/barrier.h \ - arch/x86/include/asm/alternative.h \ - arch/x86/include/asm/asm.h \ - arch/x86/include/asm/nops.h \ - $(wildcard include/config/mk7.h) \ - $(wildcard include/config/x86/p6/nop.h) \ - $(wildcard include/config/x86/64.h) \ - include/asm-generic/barrier.h \ - include/linux/kasan-checks.h \ - arch/x86/include/asm/linkage.h \ - $(wildcard include/config/x86/alignment/16.h) \ - include/linux/bitops.h \ - include/linux/bits.h \ - arch/x86/include/asm/bitops.h \ - $(wildcard include/config/x86/cmov.h) \ - arch/x86/include/asm/rmwcc.h \ - $(wildcard include/config/cc/has/asm/goto.h) \ - include/asm-generic/bitops/find.h \ - $(wildcard include/config/generic/find/first/bit.h) \ - include/asm-generic/bitops/sched.h \ - arch/x86/include/asm/arch_hweight.h \ - arch/x86/include/asm/cpufeatures.h \ - arch/x86/include/asm/required-features.h \ - $(wildcard include/config/x86/minimum/cpu/family.h) \ - $(wildcard include/config/math/emulation.h) \ - $(wildcard include/config/x86/pae.h) \ - $(wildcard include/config/x86/cmpxchg64.h) \ - $(wildcard include/config/x86/use/3dnow.h) \ - $(wildcard include/config/matom.h) \ - $(wildcard include/config/paravirt.h) \ - arch/x86/include/asm/disabled-features.h \ - $(wildcard include/config/x86/intel/mpx.h) \ - $(wildcard include/config/x86/smap.h) \ - $(wildcard include/config/x86/intel/umip.h) \ - $(wildcard include/config/x86/intel/memory/protection/keys.h) \ - $(wildcard include/config/x86/5level.h) \ - $(wildcard include/config/page/table/isolation.h) \ - include/asm-generic/bitops/const_hweight.h \ - include/asm-generic/bitops-instrumented.h \ - include/asm-generic/bitops/le.h \ - arch/x86/include/uapi/asm/byteorder.h \ - include/linux/byteorder/little_endian.h \ - include/uapi/linux/byteorder/little_endian.h \ - include/linux/swab.h \ - include/uapi/linux/swab.h \ - arch/x86/include/uapi/asm/swab.h \ - include/linux/byteorder/generic.h \ - include/asm-generic/bitops/ext2-atomic-setbit.h \ - include/linux/log2.h \ - $(wildcard include/config/arch/has/ilog2/u32.h) \ - $(wildcard include/config/arch/has/ilog2/u64.h) \ - include/linux/typecheck.h \ - include/linux/printk.h \ - $(wildcard include/config/message/loglevel/default.h) \ - $(wildcard include/config/console/loglevel/default.h) \ - $(wildcard include/config/console/loglevel/quiet.h) \ - $(wildcard include/config/early/printk.h) \ - $(wildcard include/config/printk/nmi.h) \ - $(wildcard include/config/printk.h) \ - $(wildcard include/config/kmsg/ids.h) \ - $(wildcard include/config/dynamic/debug.h) \ - include/linux/init.h \ - $(wildcard include/config/strict/kernel/rwx.h) \ - include/linux/kern_levels.h \ - include/linux/cache.h \ - $(wildcard include/config/arch/has/cache/line/size.h) \ - include/uapi/linux/kernel.h \ - include/uapi/linux/sysinfo.h \ - arch/x86/include/asm/cache.h \ - $(wildcard include/config/x86/l1/cache/shift.h) \ - $(wildcard include/config/x86/internode/cache/shift.h) \ - $(wildcard include/config/x86/vsmp.h) \ - include/linux/dynamic_debug.h \ - include/linux/jump_label.h \ - $(wildcard include/config/have/arch/jump/label/relative.h) \ - arch/x86/include/asm/jump_label.h \ - include/linux/build_bug.h \ - arch/x86/include/asm/div64.h \ - include/asm-generic/div64.h \ - include/linux/stat.h \ - arch/x86/include/uapi/asm/stat.h \ - include/uapi/linux/stat.h \ - include/linux/time.h \ - $(wildcard include/config/arch/uses/gettimeoffset.h) \ - include/linux/seqlock.h \ - $(wildcard include/config/debug/lock/alloc.h) \ - include/linux/spinlock.h \ - $(wildcard include/config/debug/spinlock.h) \ - $(wildcard include/config/preemption.h) \ - include/linux/preempt.h \ - $(wildcard include/config/preempt/count.h) \ - $(wildcard include/config/debug/preempt.h) \ - $(wildcard include/config/trace/preempt/toggle.h) \ - $(wildcard include/config/preempt/notifiers.h) \ - arch/x86/include/asm/preempt.h \ - arch/x86/include/asm/percpu.h \ - $(wildcard include/config/x86/64/smp.h) \ - include/asm-generic/percpu.h \ - $(wildcard include/config/have/setup/per/cpu/area.h) \ - include/linux/threads.h \ - $(wildcard include/config/nr/cpus.h) \ - $(wildcard include/config/base/small.h) \ - include/linux/percpu-defs.h \ - $(wildcard include/config/debug/force/weak/per/cpu.h) \ - $(wildcard include/config/amd/mem/encrypt.h) \ - include/linux/thread_info.h \ - $(wildcard include/config/thread/info/in/task.h) \ - $(wildcard include/config/have/arch/within/stack/frames.h) \ - $(wildcard include/config/hardened/usercopy.h) \ - include/linux/bug.h \ - $(wildcard include/config/bug/on/data/corruption.h) \ - arch/x86/include/asm/bug.h \ - $(wildcard include/config/debug/bugverbose.h) \ - include/asm-generic/bug.h \ - $(wildcard include/config/bug.h) \ - $(wildcard include/config/generic/bug/relative/pointers.h) \ - include/linux/restart_block.h \ - include/linux/time64.h \ - include/linux/math64.h \ - $(wildcard include/config/arch/supports/int128.h) \ - include/uapi/linux/time.h \ - include/uapi/linux/time_types.h \ - include/linux/errno.h \ - include/uapi/linux/errno.h \ - arch/x86/include/generated/uapi/asm/errno.h \ - include/uapi/asm-generic/errno.h \ - include/uapi/asm-generic/errno-base.h \ - arch/x86/include/asm/current.h \ - arch/x86/include/asm/thread_info.h \ - $(wildcard include/config/vm86.h) \ - $(wildcard include/config/frame/pointer.h) \ - $(wildcard include/config/compat.h) \ - $(wildcard include/config/ia32/emulation.h) \ - arch/x86/include/asm/page.h \ - arch/x86/include/asm/page_types.h \ - $(wildcard include/config/physical/start.h) \ - $(wildcard include/config/physical/align.h) \ - $(wildcard include/config/dynamic/physical/mask.h) \ - include/linux/mem_encrypt.h \ - $(wildcard include/config/arch/has/mem/encrypt.h) \ - arch/x86/include/asm/mem_encrypt.h \ - arch/x86/include/uapi/asm/bootparam.h \ - include/linux/screen_info.h \ - include/uapi/linux/screen_info.h \ - include/linux/apm_bios.h \ - include/uapi/linux/apm_bios.h \ - include/uapi/linux/ioctl.h \ - arch/x86/include/generated/uapi/asm/ioctl.h \ - include/asm-generic/ioctl.h \ - include/uapi/asm-generic/ioctl.h \ - include/linux/edd.h \ - include/uapi/linux/edd.h \ - arch/x86/include/asm/ist.h \ - arch/x86/include/uapi/asm/ist.h \ - include/video/edid.h \ - $(wildcard include/config/x86.h) \ - include/uapi/video/edid.h \ - arch/x86/include/asm/page_64_types.h \ - $(wildcard include/config/dynamic/memory/layout.h) \ - $(wildcard include/config/randomize/base.h) \ - arch/x86/include/asm/kaslr.h \ - $(wildcard include/config/randomize/memory.h) \ - arch/x86/include/asm/page_64.h \ - $(wildcard include/config/debug/virtual.h) \ - $(wildcard include/config/flatmem.h) \ - $(wildcard include/config/x86/vsyscall/emulation.h) \ - include/linux/range.h \ - include/asm-generic/memory_model.h \ - $(wildcard include/config/discontigmem.h) \ - $(wildcard include/config/sparsemem/vmemmap.h) \ - $(wildcard include/config/sparsemem.h) \ - include/linux/pfn.h \ - include/asm-generic/getorder.h \ - arch/x86/include/asm/cpufeature.h \ - $(wildcard include/config/x86/feature/names.h) \ - arch/x86/include/asm/processor.h \ - $(wildcard include/config/kvm.h) \ - $(wildcard include/config/stackprotector.h) \ - $(wildcard include/config/paravirt/xxl.h) \ - $(wildcard include/config/x86/debugctlmsr.h) \ - $(wildcard include/config/cpu/sup/amd.h) \ - $(wildcard include/config/xen.h) \ - arch/x86/include/asm/processor-flags.h \ - arch/x86/include/uapi/asm/processor-flags.h \ - arch/x86/include/asm/math_emu.h \ - arch/x86/include/asm/ptrace.h \ - arch/x86/include/asm/segment.h \ - $(wildcard include/config/xen/pv.h) \ - $(wildcard include/config/x86/32/lazy/gs.h) \ - arch/x86/include/uapi/asm/ptrace.h \ - arch/x86/include/uapi/asm/ptrace-abi.h \ - arch/x86/include/asm/paravirt_types.h \ - $(wildcard include/config/pgtable/levels.h) \ - $(wildcard include/config/paravirt/debug.h) \ - arch/x86/include/asm/desc_defs.h \ - arch/x86/include/asm/kmap_types.h \ - $(wildcard include/config/debug/highmem.h) \ - include/asm-generic/kmap_types.h \ - arch/x86/include/asm/pgtable_types.h \ - $(wildcard include/config/mem/soft/dirty.h) \ - $(wildcard include/config/proc/fs.h) \ - arch/x86/include/asm/pgtable_64_types.h \ - arch/x86/include/asm/sparsemem.h \ - include/asm-generic/pgtable-nop4d.h \ - arch/x86/include/asm/nospec-branch.h \ - include/linux/static_key.h \ - include/linux/frame.h \ - arch/x86/include/asm/alternative-asm.h \ - arch/x86/include/asm/msr-index.h \ - arch/x86/include/asm/unwind_hints.h \ - arch/x86/include/asm/orc_types.h \ - arch/x86/include/asm/spinlock_types.h \ - $(wildcard include/config/paravirt/spinlocks.h) \ - include/asm-generic/qspinlock_types.h \ - include/asm-generic/qrwlock_types.h \ - arch/x86/include/uapi/asm/sigcontext.h \ - arch/x86/include/asm/msr.h \ - arch/x86/include/asm/msr-index.h \ - arch/x86/include/asm/cpumask.h \ - include/linux/cpumask.h \ - $(wildcard include/config/cpumask/offstack.h) \ - $(wildcard include/config/hotplug/cpu.h) \ - $(wildcard include/config/debug/per/cpu/maps.h) \ - include/linux/bitmap.h \ - include/linux/string.h \ - $(wildcard include/config/binary/printf.h) \ - $(wildcard include/config/fortify/source.h) \ - include/uapi/linux/string.h \ - arch/x86/include/asm/string.h \ - arch/x86/include/asm/string_64.h \ - $(wildcard include/config/x86/mce.h) \ - $(wildcard include/config/arch/has/uaccess/flushcache.h) \ - include/linux/atomic.h \ - arch/x86/include/asm/atomic.h \ - arch/x86/include/asm/cmpxchg.h \ - arch/x86/include/asm/cmpxchg_64.h \ - arch/x86/include/asm/atomic64_64.h \ - include/asm-generic/atomic-instrumented.h \ - include/linux/atomic-fallback.h \ - $(wildcard include/config/generic/atomic64.h) \ - include/asm-generic/atomic-long.h \ - arch/x86/include/uapi/asm/msr.h \ - include/linux/tracepoint-defs.h \ - arch/x86/include/asm/paravirt.h \ - arch/x86/include/asm/frame.h \ - arch/x86/include/asm/special_insns.h \ - arch/x86/include/asm/fpu/types.h \ - include/linux/personality.h \ - include/uapi/linux/personality.h \ - include/linux/err.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) \ - arch/x86/include/asm/irqflags.h \ - include/linux/bottom_half.h \ - arch/x86/include/generated/asm/mmiowb.h \ - include/asm-generic/mmiowb.h \ - $(wildcard include/config/mmiowb.h) \ - include/linux/spinlock_types.h \ - include/linux/lockdep.h \ - $(wildcard include/config/lockdep.h) \ - $(wildcard include/config/lock/stat.h) \ - include/linux/rwlock_types.h \ - arch/x86/include/asm/spinlock.h \ - arch/x86/include/asm/qspinlock.h \ - include/asm-generic/qspinlock.h \ - arch/x86/include/asm/qrwlock.h \ - include/asm-generic/qrwlock.h \ - include/linux/rwlock.h \ - $(wildcard include/config/preempt.h) \ - include/linux/spinlock_api_smp.h \ - $(wildcard include/config/inline/spin/lock.h) \ - $(wildcard include/config/inline/spin/lock/bh.h) \ - $(wildcard include/config/inline/spin/lock/irq.h) \ - $(wildcard include/config/inline/spin/lock/irqsave.h) \ - $(wildcard include/config/inline/spin/trylock.h) \ - $(wildcard include/config/inline/spin/trylock/bh.h) \ - $(wildcard include/config/uninline/spin/unlock.h) \ - $(wildcard include/config/inline/spin/unlock/bh.h) \ - $(wildcard include/config/inline/spin/unlock/irq.h) \ - $(wildcard include/config/inline/spin/unlock/irqrestore.h) \ - $(wildcard include/config/generic/lockbreak.h) \ - include/linux/rwlock_api_smp.h \ - $(wildcard include/config/inline/read/lock.h) \ - $(wildcard include/config/inline/write/lock.h) \ - $(wildcard include/config/inline/read/lock/bh.h) \ - $(wildcard include/config/inline/write/lock/bh.h) \ - $(wildcard include/config/inline/read/lock/irq.h) \ - $(wildcard include/config/inline/write/lock/irq.h) \ - $(wildcard include/config/inline/read/lock/irqsave.h) \ - $(wildcard include/config/inline/write/lock/irqsave.h) \ - $(wildcard include/config/inline/read/trylock.h) \ - $(wildcard include/config/inline/write/trylock.h) \ - $(wildcard include/config/inline/read/unlock.h) \ - $(wildcard include/config/inline/write/unlock.h) \ - $(wildcard include/config/inline/read/unlock/bh.h) \ - $(wildcard include/config/inline/write/unlock/bh.h) \ - $(wildcard include/config/inline/read/unlock/irq.h) \ - $(wildcard include/config/inline/write/unlock/irq.h) \ - $(wildcard include/config/inline/read/unlock/irqrestore.h) \ - $(wildcard include/config/inline/write/unlock/irqrestore.h) \ - include/linux/time32.h \ - include/linux/timex.h \ - include/uapi/linux/timex.h \ - include/uapi/linux/param.h \ - arch/x86/include/generated/uapi/asm/param.h \ - include/asm-generic/param.h \ - $(wildcard include/config/hz.h) \ - include/uapi/asm-generic/param.h \ - arch/x86/include/asm/timex.h \ - $(wildcard include/config/x86/tsc.h) \ - arch/x86/include/asm/tsc.h \ - include/linux/uidgid.h \ - $(wildcard include/config/multiuser.h) \ - $(wildcard include/config/user/ns.h) \ - include/linux/highuid.h \ - include/linux/kmod.h \ - include/linux/umh.h \ - include/linux/gfp.h \ - $(wildcard include/config/highmem.h) \ - $(wildcard include/config/zone/dma.h) \ - $(wildcard include/config/zone/dma32.h) \ - $(wildcard include/config/zone/device.h) \ - $(wildcard include/config/numa.h) \ - $(wildcard include/config/pm/sleep.h) \ - $(wildcard include/config/contig/alloc.h) \ - $(wildcard include/config/cma.h) \ - include/linux/mmdebug.h \ - $(wildcard include/config/debug/vm.h) \ - $(wildcard include/config/debug/vm/pgflags.h) \ - include/linux/mmzone.h \ - $(wildcard include/config/force/max/zoneorder.h) \ - $(wildcard include/config/memory/isolation.h) \ - $(wildcard include/config/shuffle/page/allocator.h) \ - $(wildcard include/config/zsmalloc.h) \ - $(wildcard include/config/memcg.h) \ - $(wildcard include/config/memory/hotplug.h) \ - $(wildcard include/config/compaction.h) \ - $(wildcard include/config/transparent/hugepage.h) \ - $(wildcard include/config/flat/node/mem/map.h) \ - $(wildcard include/config/page/extension.h) \ - $(wildcard include/config/deferred/struct/page/init.h) \ - $(wildcard include/config/have/memory/present.h) \ - $(wildcard include/config/have/memoryless/nodes.h) \ - $(wildcard include/config/have/memblock/node/map.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/memory/hotremove.h) \ - $(wildcard include/config/have/arch/pfn/valid.h) \ - $(wildcard include/config/holes/in/zone.h) \ - include/linux/wait.h \ - include/uapi/linux/wait.h \ - include/linux/numa.h \ - $(wildcard include/config/nodes/shift.h) \ - include/linux/nodemask.h \ - include/linux/pageblock-flags.h \ - $(wildcard include/config/hugetlb/page.h) \ - $(wildcard include/config/hugetlb/page/size/variable.h) \ - include/linux/page-flags-layout.h \ - $(wildcard include/config/numa/balancing.h) \ - $(wildcard include/config/kasan/sw/tags.h) \ - include/generated/bounds.h \ - include/linux/mm_types.h \ - $(wildcard include/config/have/aligned/struct/page.h) \ - $(wildcard include/config/userfaultfd.h) \ - $(wildcard include/config/swap.h) \ - $(wildcard include/config/have/arch/compat/mmap/bases.h) \ - $(wildcard include/config/membarrier.h) \ - $(wildcard include/config/aio.h) \ - $(wildcard include/config/mmu/notifier.h) \ - $(wildcard include/config/arch/want/batched/unmap/tlb/flush.h) \ - include/linux/mm_types_task.h \ - $(wildcard include/config/split/ptlock/cpus.h) \ - $(wildcard include/config/arch/enable/split/pmd/ptlock.h) \ - arch/x86/include/asm/tlbbatch.h \ - include/linux/auxvec.h \ - include/uapi/linux/auxvec.h \ - arch/x86/include/uapi/asm/auxvec.h \ - include/linux/rbtree.h \ - include/linux/rcupdate.h \ - $(wildcard include/config/preempt/rcu.h) \ - $(wildcard include/config/rcu/stall/common.h) \ - $(wildcard include/config/no/hz/full.h) \ - $(wildcard include/config/rcu/nocb/cpu.h) \ - $(wildcard include/config/tasks/rcu.h) \ - $(wildcard include/config/tree/rcu.h) \ - $(wildcard include/config/tiny/rcu.h) \ - $(wildcard include/config/debug/objects/rcu/head.h) \ - $(wildcard include/config/prove/rcu.h) \ - $(wildcard include/config/rcu/boost.h) \ - $(wildcard include/config/arch/weak/release/acquire.h) \ - include/linux/rcutree.h \ - include/linux/rwsem.h \ - $(wildcard include/config/rwsem/spin/on/owner.h) \ - $(wildcard include/config/debug/rwsems.h) \ - include/linux/osq_lock.h \ - include/linux/completion.h \ - include/linux/uprobes.h \ - $(wildcard include/config/uprobes.h) \ - arch/x86/include/asm/uprobes.h \ - include/linux/notifier.h \ - include/linux/mutex.h \ - $(wildcard include/config/mutex/spin/on/owner.h) \ - $(wildcard include/config/debug/mutexes.h) \ - include/linux/debug_locks.h \ - $(wildcard include/config/debug/locking/api/selftests.h) \ - include/linux/srcu.h \ - $(wildcard include/config/tiny/srcu.h) \ - $(wildcard include/config/srcu.h) \ - include/linux/workqueue.h \ - $(wildcard include/config/debug/objects/work.h) \ - $(wildcard include/config/freezer.h) \ - $(wildcard include/config/wq/watchdog.h) \ - include/linux/timer.h \ - $(wildcard include/config/debug/objects/timers.h) \ - $(wildcard include/config/preempt/rt.h) \ - $(wildcard include/config/no/hz/common.h) \ - include/linux/ktime.h \ - include/linux/jiffies.h \ - include/generated/timeconst.h \ - include/linux/timekeeping.h \ - include/linux/timekeeping32.h \ - include/linux/debugobjects.h \ - $(wildcard include/config/debug/objects.h) \ - $(wildcard include/config/debug/objects/free.h) \ - include/linux/rcu_segcblist.h \ - include/linux/srcutree.h \ - include/linux/rcu_node_tree.h \ - $(wildcard include/config/rcu/fanout.h) \ - $(wildcard include/config/rcu/fanout/leaf.h) \ - arch/x86/include/asm/mmu.h \ - $(wildcard include/config/modify/ldt/syscall.h) \ - include/linux/page-flags.h \ - $(wildcard include/config/arch/uses/pg/uncached.h) \ - $(wildcard include/config/memory/failure.h) \ - $(wildcard include/config/idle/page/tracking.h) \ - $(wildcard include/config/thp/swap.h) \ - $(wildcard include/config/ksm.h) \ - include/linux/memory_hotplug.h \ - $(wildcard include/config/arch/has/add/pages.h) \ - $(wildcard include/config/have/arch/nodedata/extension.h) \ - $(wildcard include/config/have/bootmem/info/node.h) \ - arch/x86/include/asm/mmzone.h \ - arch/x86/include/asm/mmzone_64.h \ - arch/x86/include/asm/smp.h \ - $(wildcard include/config/x86/local/apic.h) \ - $(wildcard include/config/x86/io/apic.h) \ - $(wildcard include/config/debug/nmi/selftest.h) \ - arch/x86/include/asm/mpspec.h \ - $(wildcard include/config/eisa.h) \ - $(wildcard include/config/x86/mpparse.h) \ - arch/x86/include/asm/mpspec_def.h \ - arch/x86/include/asm/x86_init.h \ - arch/x86/include/asm/apicdef.h \ - arch/x86/include/asm/apic.h \ - $(wildcard include/config/x86/x2apic.h) \ - arch/x86/include/asm/fixmap.h \ - $(wildcard include/config/provide/ohci1394/dma/init.h) \ - $(wildcard include/config/pci/mmconfig.h) \ - $(wildcard include/config/x86/intel/mid.h) \ - $(wildcard include/config/acpi/apei/ghes.h) \ - $(wildcard include/config/intel/txt.h) \ - arch/x86/include/asm/acpi.h \ - $(wildcard include/config/acpi/apei.h) \ - $(wildcard include/config/acpi.h) \ - $(wildcard include/config/acpi/numa.h) \ - include/acpi/pdc_intel.h \ - arch/x86/include/asm/numa.h \ - $(wildcard include/config/numa/emu.h) \ - arch/x86/include/asm/topology.h \ - $(wildcard include/config/sched/mc/prio.h) \ - include/asm-generic/topology.h \ - arch/x86/include/asm/realmode.h \ - $(wildcard include/config/acpi/sleep.h) \ - arch/x86/include/asm/io.h \ - $(wildcard include/config/mtrr.h) \ - $(wildcard include/config/x86/pat.h) \ - arch/x86/include/generated/asm/early_ioremap.h \ - include/asm-generic/early_ioremap.h \ - $(wildcard include/config/generic/early/ioremap.h) \ - include/asm-generic/iomap.h \ - $(wildcard include/config/has/ioport/map.h) \ - $(wildcard include/config/pci.h) \ - $(wildcard include/config/generic/iomap.h) \ - include/asm-generic/pci_iomap.h \ - $(wildcard include/config/no/generic/pci/ioport/map.h) \ - $(wildcard include/config/generic/pci/iomap.h) \ - include/asm-generic/io.h \ - $(wildcard include/config/virt/to/bus.h) \ - include/linux/logic_pio.h \ - $(wildcard include/config/indirect/pio.h) \ - include/linux/fwnode.h \ - include/linux/vmalloc.h \ - include/linux/llist.h \ - $(wildcard include/config/arch/have/nmi/safe/cmpxchg.h) \ - include/linux/overflow.h \ - arch/x86/include/uapi/asm/vsyscall.h \ - include/asm-generic/fixmap.h \ - arch/x86/include/asm/hardirq.h \ - $(wildcard include/config/kvm/intel.h) \ - $(wildcard include/config/have/kvm.h) \ - $(wildcard include/config/x86/thermal/vector.h) \ - $(wildcard include/config/x86/mce/threshold.h) \ - $(wildcard include/config/x86/mce/amd.h) \ - $(wildcard include/config/x86/hv/callback/vector.h) \ - $(wildcard include/config/hyperv.h) \ - arch/x86/include/asm/io_apic.h \ - arch/x86/include/asm/irq_vectors.h \ - $(wildcard include/config/pci/msi.h) \ - include/linux/topology.h \ - $(wildcard include/config/use/percpu/numa/node/id.h) \ - $(wildcard include/config/sched/smt.h) \ - include/linux/arch_topology.h \ - $(wildcard include/config/generic/arch/topology.h) \ - include/linux/percpu.h \ - $(wildcard include/config/need/per/cpu/embed/first/chunk.h) \ - $(wildcard include/config/need/per/cpu/page/first/chunk.h) \ - include/linux/smp.h \ - $(wildcard include/config/up/late/init.h) \ - include/linux/sysctl.h \ - $(wildcard include/config/sysctl.h) \ - include/uapi/linux/sysctl.h \ - include/linux/elf.h \ - arch/x86/include/asm/elf.h \ - $(wildcard include/config/x86/x32/abi.h) \ - arch/x86/include/asm/user.h \ - arch/x86/include/asm/user_64.h \ - arch/x86/include/asm/fsgsbase.h \ - arch/x86/include/asm/vdso.h \ - $(wildcard include/config/x86/x32.h) \ - include/uapi/linux/elf.h \ - include/uapi/linux/elf-em.h \ - include/linux/kobject.h \ - $(wildcard include/config/uevent/helper.h) \ - $(wildcard include/config/debug/kobject/release.h) \ - include/linux/sysfs.h \ - include/linux/kernfs.h \ - $(wildcard include/config/kernfs.h) \ - include/linux/idr.h \ - include/linux/radix-tree.h \ - include/linux/xarray.h \ - $(wildcard include/config/xarray/multi.h) \ - include/linux/kconfig.h \ - include/linux/kobject_ns.h \ - include/linux/kref.h \ - include/linux/refcount.h \ - include/linux/moduleparam.h \ - $(wildcard include/config/alpha.h) \ - $(wildcard include/config/ia64.h) \ - $(wildcard include/config/ppc64.h) \ - include/linux/rbtree_latch.h \ - include/linux/error-injection.h \ - include/asm-generic/error-injection.h \ - arch/x86/include/asm/module.h \ - $(wildcard include/config/unwinder/orc.h) \ - $(wildcard include/config/m486.h) \ - $(wildcard include/config/m586.h) \ - $(wildcard include/config/m586tsc.h) \ - $(wildcard include/config/m586mmx.h) \ - $(wildcard include/config/mcore2.h) \ - $(wildcard include/config/m686.h) \ - $(wildcard include/config/mpentiumii.h) \ - $(wildcard include/config/mpentiumiii.h) \ - $(wildcard include/config/mpentiumm.h) \ - $(wildcard include/config/mpentium4.h) \ - $(wildcard include/config/mk6.h) \ - $(wildcard include/config/mk8.h) \ - $(wildcard include/config/melan.h) \ - $(wildcard include/config/mcrusoe.h) \ - $(wildcard include/config/mefficeon.h) \ - $(wildcard include/config/mwinchipc6.h) \ - $(wildcard include/config/mwinchip3d.h) \ - $(wildcard include/config/mcyrixiii.h) \ - $(wildcard include/config/mviac3/2.h) \ - $(wildcard include/config/mviac7.h) \ - $(wildcard include/config/mgeodegx1.h) \ - $(wildcard include/config/mgeode/lx.h) \ - include/asm-generic/module.h \ - $(wildcard include/config/have/mod/arch/specific.h) \ - $(wildcard include/config/modules/use/elf/rel.h) \ - $(wildcard include/config/modules/use/elf/rela.h) \ - arch/x86/include/asm/orc_types.h \ - include/linux/slab.h \ - $(wildcard include/config/debug/slab.h) \ - $(wildcard include/config/failslab.h) \ - $(wildcard include/config/memcg/kmem.h) \ - $(wildcard include/config/have/hardened/usercopy/allocator.h) \ - $(wildcard include/config/slab.h) \ - $(wildcard include/config/slub.h) \ - $(wildcard include/config/slob.h) \ - include/linux/percpu-refcount.h \ - include/linux/kasan.h \ - $(wildcard include/config/kasan/generic.h) \ - include/linux/usb.h \ - $(wildcard include/config/usb/mon.h) \ - $(wildcard include/config/pm.h) \ - $(wildcard include/config/usb/led/trig.h) \ - include/linux/mod_devicetable.h \ - include/linux/uuid.h \ - include/uapi/linux/uuid.h \ - include/linux/usb/ch9.h \ - include/linux/device.h \ - $(wildcard include/config/debug/devres.h) \ - $(wildcard include/config/generic/msi/irq/domain.h) \ - $(wildcard include/config/pinctrl.h) \ - $(wildcard include/config/generic/msi/irq.h) \ - $(wildcard include/config/dma/declare/coherent.h) \ - $(wildcard include/config/dma/cma.h) \ - $(wildcard include/config/arch/has/sync/dma/for/device.h) \ - $(wildcard include/config/arch/has/sync/dma/for/cpu.h) \ - $(wildcard include/config/arch/has/sync/dma/for/cpu/all.h) \ - $(wildcard include/config/of.h) \ - $(wildcard include/config/devtmpfs.h) \ - $(wildcard include/config/sysfs/deprecated.h) \ - include/linux/ioport.h \ - $(wildcard include/config/io/strict/devmem.h) \ - include/linux/klist.h \ - include/linux/pm.h \ - $(wildcard include/config/vt/console/sleep.h) \ - $(wildcard include/config/pm/clk.h) \ - $(wildcard include/config/pm/generic/domains.h) \ - include/linux/hrtimer.h \ - $(wildcard include/config/high/res/timers.h) \ - $(wildcard include/config/time/low/res.h) \ - $(wildcard include/config/timerfd.h) \ - include/linux/hrtimer_defs.h \ - include/linux/timerqueue.h \ - include/linux/ratelimit.h \ - include/linux/sched.h \ - $(wildcard include/config/virt/cpu/accounting/native.h) \ - $(wildcard include/config/sched/info.h) \ - $(wildcard include/config/schedstats.h) \ - $(wildcard include/config/fair/group/sched.h) \ - $(wildcard include/config/rt/group/sched.h) \ - $(wildcard include/config/rt/mutexes.h) \ - $(wildcard include/config/uclamp/task.h) \ - $(wildcard include/config/uclamp/buckets/count.h) \ - $(wildcard include/config/cgroup/sched.h) \ - $(wildcard include/config/blk/dev/io/trace.h) \ - $(wildcard include/config/psi.h) \ - $(wildcard include/config/compat/brk.h) \ - $(wildcard include/config/cgroups.h) \ - $(wildcard include/config/blk/cgroup.h) \ - $(wildcard include/config/arch/has/scaled/cputime.h) \ - $(wildcard include/config/virt/cpu/accounting/gen.h) \ - $(wildcard include/config/posix/cputimers.h) \ - $(wildcard include/config/keys.h) \ - $(wildcard include/config/sysvipc.h) \ - $(wildcard include/config/detect/hung/task.h) \ - $(wildcard include/config/audit.h) \ - $(wildcard include/config/auditsyscall.h) \ - $(wildcard include/config/ubsan.h) \ - $(wildcard include/config/block.h) \ - $(wildcard include/config/task/xacct.h) \ - $(wildcard include/config/cpusets.h) \ - $(wildcard include/config/x86/cpu/resctrl.h) \ - $(wildcard include/config/futex.h) \ - $(wildcard include/config/perf/events.h) \ - $(wildcard include/config/rseq.h) \ - $(wildcard include/config/task/delay/acct.h) \ - $(wildcard include/config/fault/injection.h) \ - $(wildcard include/config/latencytop.h) \ - $(wildcard include/config/function/graph/tracer.h) \ - $(wildcard include/config/kcov.h) \ - $(wildcard include/config/bcache.h) \ - $(wildcard include/config/vmap/stack.h) \ - $(wildcard include/config/security.h) \ - $(wildcard include/config/gcc/plugin/stackleak.h) \ - $(wildcard include/config/arch/task/struct/on/stack.h) \ - $(wildcard include/config/debug/rseq.h) \ - include/uapi/linux/sched.h \ - include/linux/pid.h \ - include/linux/rculist.h \ - $(wildcard include/config/prove/rcu/list.h) \ - include/linux/sem.h \ - include/uapi/linux/sem.h \ - include/linux/ipc.h \ - include/linux/rhashtable-types.h \ - include/uapi/linux/ipc.h \ - arch/x86/include/generated/uapi/asm/ipcbuf.h \ - include/uapi/asm-generic/ipcbuf.h \ - arch/x86/include/uapi/asm/sembuf.h \ - include/linux/shm.h \ - include/uapi/linux/shm.h \ - include/uapi/asm-generic/hugetlb_encode.h \ - arch/x86/include/uapi/asm/shmbuf.h \ - include/uapi/asm-generic/shmbuf.h \ - arch/x86/include/asm/shmparam.h \ - include/linux/kcov.h \ - include/uapi/linux/kcov.h \ - include/linux/plist.h \ - $(wildcard include/config/debug/plist.h) \ - include/linux/seccomp.h \ - $(wildcard include/config/seccomp.h) \ - $(wildcard include/config/have/arch/seccomp/filter.h) \ - $(wildcard include/config/seccomp/filter.h) \ - $(wildcard include/config/checkpoint/restore.h) \ - include/uapi/linux/seccomp.h \ - arch/x86/include/asm/seccomp.h \ - arch/x86/include/asm/unistd.h \ - arch/x86/include/uapi/asm/unistd.h \ - arch/x86/include/generated/uapi/asm/unistd_64.h \ - arch/x86/include/generated/asm/unistd_64_x32.h \ - arch/x86/include/asm/ia32_unistd.h \ - arch/x86/include/generated/asm/unistd_32_ia32.h \ - include/asm-generic/seccomp.h \ - include/uapi/linux/unistd.h \ - include/linux/resource.h \ - include/uapi/linux/resource.h \ - arch/x86/include/generated/uapi/asm/resource.h \ - include/asm-generic/resource.h \ - include/uapi/asm-generic/resource.h \ - include/linux/latencytop.h \ - include/linux/sched/prio.h \ - include/linux/sched/types.h \ - include/linux/signal_types.h \ - $(wildcard include/config/old/sigaction.h) \ - include/uapi/linux/signal.h \ - arch/x86/include/asm/signal.h \ - arch/x86/include/uapi/asm/signal.h \ - include/uapi/asm-generic/signal-defs.h \ - arch/x86/include/uapi/asm/siginfo.h \ - include/uapi/asm-generic/siginfo.h \ - include/linux/task_io_accounting.h \ - $(wildcard include/config/task/io/accounting.h) \ - include/linux/posix-timers.h \ - $(wildcard include/config/posix/timers.h) \ - include/linux/alarmtimer.h \ - include/uapi/linux/rseq.h \ - arch/x86/include/asm/device.h \ - $(wildcard include/config/intel/iommu.h) \ - $(wildcard include/config/amd/iommu.h) \ - $(wildcard include/config/sta2x11.h) \ - $(wildcard include/config/x86/dev/dma/ops.h) \ - $(wildcard include/config/pci/domains.h) \ - include/linux/pm_wakeup.h \ - include/uapi/linux/usb/ch9.h \ - include/linux/delay.h \ - arch/x86/include/asm/delay.h \ - include/asm-generic/delay.h \ - include/linux/interrupt.h \ - $(wildcard include/config/irq/forced/threading.h) \ - $(wildcard include/config/generic/irq/probe.h) \ - $(wildcard include/config/irq/timings.h) \ - include/linux/irqreturn.h \ - include/linux/irqnr.h \ - include/uapi/linux/irqnr.h \ - include/linux/hardirq.h \ - include/linux/ftrace_irq.h \ - $(wildcard include/config/ftrace/nmi/enter.h) \ - $(wildcard include/config/hwlat/tracer.h) \ - include/linux/vtime.h \ - $(wildcard include/config/virt/cpu/accounting.h) \ - $(wildcard include/config/irq/time/accounting.h) \ - include/linux/context_tracking_state.h \ - $(wildcard include/config/context/tracking.h) \ - arch/x86/include/asm/irq.h \ - arch/x86/include/asm/sections.h \ - include/asm-generic/sections.h \ - arch/x86/include/asm/extable.h \ - include/linux/fs.h \ - $(wildcard include/config/read/only/thp/for/fs.h) \ - $(wildcard include/config/fs/posix/acl.h) \ - $(wildcard include/config/cgroup/writeback.h) \ - $(wildcard include/config/ima.h) \ - $(wildcard include/config/file/locking.h) \ - $(wildcard include/config/fsnotify.h) \ - $(wildcard include/config/fs/encryption.h) \ - $(wildcard include/config/fs/verity.h) \ - $(wildcard include/config/epoll.h) \ - $(wildcard include/config/quota.h) \ - $(wildcard include/config/blk/dev/loop.h) \ - $(wildcard include/config/fs/dax.h) \ - $(wildcard include/config/mandatory/file/locking.h) \ - $(wildcard include/config/migration.h) \ - $(wildcard include/config/io/uring.h) \ - include/linux/wait_bit.h \ - include/linux/kdev_t.h \ - include/uapi/linux/kdev_t.h \ - include/linux/dcache.h \ - include/linux/rculist_bl.h \ - include/linux/list_bl.h \ - include/linux/bit_spinlock.h \ - include/linux/lockref.h \ - $(wildcard include/config/arch/use/cmpxchg/lockref.h) \ - include/linux/stringhash.h \ - $(wildcard include/config/dcache/word/access.h) \ - include/linux/hash.h \ - $(wildcard include/config/have/arch/hash.h) \ - include/linux/path.h \ - include/linux/list_lru.h \ - include/linux/shrinker.h \ - include/linux/capability.h \ - include/uapi/linux/capability.h \ - include/linux/semaphore.h \ - include/linux/fcntl.h \ - $(wildcard include/config/arch/32bit/off/t.h) \ - include/uapi/linux/fcntl.h \ - arch/x86/include/generated/uapi/asm/fcntl.h \ - include/uapi/asm-generic/fcntl.h \ - include/uapi/linux/fiemap.h \ - include/linux/migrate_mode.h \ - include/linux/percpu-rwsem.h \ - include/linux/rcuwait.h \ - include/linux/rcu_sync.h \ - include/linux/delayed_call.h \ - include/linux/errseq.h \ - include/linux/ioprio.h \ - include/linux/sched/rt.h \ - include/linux/iocontext.h \ - include/linux/fs_types.h \ - include/uapi/linux/fs.h \ - include/linux/quota.h \ - $(wildcard include/config/quota/netlink/interface.h) \ - include/linux/percpu_counter.h \ - include/uapi/linux/dqblk_xfs.h \ - include/linux/dqblk_v1.h \ - include/linux/dqblk_v2.h \ - include/linux/dqblk_qtree.h \ - include/linux/projid.h \ - include/uapi/linux/quota.h \ - include/linux/nfs_fs_i.h \ - include/linux/pm_runtime.h \ - include/linux/uaccess.h \ - arch/x86/include/asm/uaccess.h \ - $(wildcard include/config/cc/has/asm/goto/tied/output.h) \ - $(wildcard include/config/x86/intel/usercopy.h) \ - arch/x86/include/asm/smap.h \ - arch/x86/include/asm/uaccess_64.h \ - -/home/wandog/workspace/missile_related/ml-driver/ml_driver.o: $(deps_/home/wandog/workspace/missile_related/ml-driver/ml_driver.o) - -$(deps_/home/wandog/workspace/missile_related/ml-driver/ml_driver.o): diff --git a/Module.symvers b/Module.symvers deleted file mode 100644 index e69de29..0000000 diff --git a/ml_driver.ko b/ml_driver.ko deleted file mode 100644 index 224679f281d7ad1eb6214e278479751a05edbd84..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 17368 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 -#include -#include -#include - -BUILD_SALT; - -MODULE_INFO(vermagic, VERMAGIC_STRING); -MODULE_INFO(name, KBUILD_MODNAME); - -__visible struct module __this_module -__section(.gnu.linkonce.this_module) = { - .name = KBUILD_MODNAME, - .init = init_module, -#ifdef CONFIG_MODULE_UNLOAD - .exit = cleanup_module, -#endif - .arch = MODULE_ARCH_INIT, -}; - -#ifdef CONFIG_RETPOLINE -MODULE_INFO(retpoline, "Y"); -#endif - -static const struct modversion_info ____versions[] -__used __section(__versions) = { - { 0xdd8f8694, "module_layout" }, - { 0x867847b8, "usb_deregister" }, - { 0x785cf894, "usb_register_driver" }, - { 0x7b262fbe, "usb_deregister_dev" }, - { 0x6626afca, "down" }, - { 0x5b42218f, "usb_control_msg" }, - { 0x5ab904eb, "pv_ops" }, - { 0xdbf17652, "_raw_spin_lock" }, - { 0x9166fada, "strncpy" }, - { 0x362ef408, "_copy_from_user" }, - { 0xdecd0b29, "__stack_chk_fail" }, - { 0x853bbff4, "usb_register_dev" }, - { 0x987e553d, "usb_string" }, - { 0x102ff065, "usb_alloc_urb" }, - { 0xeb233a45, "__kmalloc" }, - { 0xca7a3159, "kmem_cache_alloc_trace" }, - { 0x428db41d, "kmalloc_caches" }, - { 0x37a0cba, "kfree" }, - { 0xbdcfd186, "usb_free_urb" }, - { 0x409bcb62, "mutex_unlock" }, - { 0xcf2a6966, "up" }, - { 0x72e2c5fd, "usb_submit_urb" }, - { 0x81b395b3, "down_interruptible" }, - { 0xaa2a8b37, "usb_find_interface" }, - { 0x2ab7989d, "mutex_lock" }, - { 0xc5850110, "printk" }, - { 0xf5b8840d, "usb_kill_urb" }, - { 0xbdfb6dbb, "__fentry__" }, -}; - -MODULE_INFO(depends, ""); - -MODULE_ALIAS("usb:v0A81p0701d*dc*dsc*dp*ic*isc*ip*in*"); - -MODULE_INFO(srcversion, "8B570854FC10E44C8BE3AC9"); diff --git a/ml_driver.mod.o b/ml_driver.mod.o deleted file mode 100644 index 25a248a41a90408affe987a9c41350334e2b5885..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4840 zcmeHLO^6&t6t2mv8qIFppn@R6gg`Wd+v#ylkN(;0 zMu-uTy{H5s!h(46rh-BQ6N7q5Kq3+Z527gIH5UUBL=knXw6Va;$o2 zwxTww)!E6J#^}M>DWX|S3u;l&oL*87PF6g1Lai8OLoXWv{Jb*L%M3IIno}l*>6wlZ z)QE3}o@+73teqf^W}7wJqK404Gy*?cTVQ%^OsOjBNToVHvS2!<&-Bvq=bkUwu0bQm zay0{05nfR0OdzFQSUvwUn&22&CbhH`Hwshj|EFG>TV6#Um>xAu-&|lp2odHk7yf)@ zS@I=YPBTv@U+&-gs^oXZhftRCunD>T@!l4C8tzFaAEVpr{O*~T5yAQEt`qvMMeSgr z+i4T)=D_8bu-RLpt`}_LxIxnkOSgW)ChBV^Y2Y!3TCU#Sz_|zf<6o_}5e`D%(Y=)( z9-BkkZ!6>I0h9MuXv=qP8U=kUfPFi@{e|;s5Ndjx>WgjK(wMdRsGZi^Up;dUEzEys z{p5Z6gw*CwuSq`SfI0ae9S_3%egClJYZm05Mt+mGG1rF&c)Yp zRNQ|kb71fEBQIo4D`zq%-Y9>7e4an%7;zu1T+beP@2!1SMj7X?zr6!_!-aF#PQ|Xed&B`@4m0C9=0;Dm4V(F zxEEl4-iGQ3b0U5iMAy05+3C`g^UcT!qtaA-&W*TLIsLS%s8yx1FUEU!EKuxwfZY1G zms7FlNuQ7++1AS)aQ>-V*H(lPvSk+lg%rL=IN)ZBxU?049}xI4Vc#z#iXyouWyR`? zAPQ;xz8KdyK0x@P67<0s=5>)^wz~_S_%I%R2nJnVbKVqqB-|&2L{TK$Q&z0L52BF5 zA5D1_$pa~?qZUbemNEVzh+U~T&xn*?2Am(XI&`k#$EO!gk_}vetBs<=0c-x~;bZd+ zdiYt|xwKU)T@C!IR#m$&aUmO>0+dpDo9c2&u4`-fh4ENZM%+cD(PqyoP!d-xQg!DHhhFh49*>$ zAK_>EbToIYKL$*kTXqH4H|SBMDQVpe8e$?%30_aMZY9fq0-ABv-zono;9{TIouv*K zmXBhQ)Y@Ukm=QXdDFWA^2tIk2~GE+ynN*5L8gUk3~{v$H(tUFaED0|7R0stYrEB E0W$rgVE_OC diff --git a/ml_driver.o b/ml_driver.o deleted file mode 100644 index 297fbd6ff628294fc05d5a552f3646fff89ea26f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 13768 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