diff --git a/interrupt/interrupt.c b/interrupt/interrupt.c new file mode 100644 index 0000000..23f4990 --- /dev/null +++ b/interrupt/interrupt.c @@ -0,0 +1,30 @@ +#include +#include +#include +#include +#include + +irqreturn_t myIRQ(int irq, void *devid){ + //Clear pending interrupt + return IRQ_HANDLED; +} + +int my_open(void){ + //Set polarity and type of interrupt + + //this is the api to register interrupt to + //kernel driver. + requet_irq(30, myIRQ, 0, "MYIRQ", 1); + //This 30 is the line number in interrupt register + //stored. It's like a id to the interrupt handler. + //The last line is the decive number. If multiple + //device uses same IRQ handler, then this last argument + //is used to diffrentiate between various devices using + //the same IRQ Handler. +} + +void my_release(void){ + //To release the interrupt handler + //free_irq api is used. + free_irq(30,1); +} \ No newline at end of file diff --git a/ioctl/ioctl_app b/ioctl/ioctl_app deleted file mode 100755 index 27b4886..0000000 Binary files a/ioctl/ioctl_app and /dev/null differ diff --git a/kernel_timer/.Module.symvers.cmd b/kernel_timer/.Module.symvers.cmd new file mode 100644 index 0000000..25e0358 --- /dev/null +++ b/kernel_timer/.Module.symvers.cmd @@ -0,0 +1 @@ +savedcmd_/home/junet/driver-tutorial/kernel_timer/Module.symvers := scripts/mod/modpost -M -m -a -o /home/junet/driver-tutorial/kernel_timer/Module.symvers -T /home/junet/driver-tutorial/kernel_timer/modules.order -i Module.symvers -e diff --git a/kernel_timer/.demo_timer_driver.ko.cmd b/kernel_timer/.demo_timer_driver.ko.cmd new file mode 100644 index 0000000..1e9769d --- /dev/null +++ b/kernel_timer/.demo_timer_driver.ko.cmd @@ -0,0 +1 @@ +savedcmd_/home/junet/driver-tutorial/kernel_timer/demo_timer_driver.ko := ld -r -m elf_x86_64 -z noexecstack --no-warn-rwx-segments --build-id=sha1 -T scripts/module.lds -o /home/junet/driver-tutorial/kernel_timer/demo_timer_driver.ko /home/junet/driver-tutorial/kernel_timer/demo_timer_driver.o /home/junet/driver-tutorial/kernel_timer/demo_timer_driver.mod.o diff --git a/kernel_timer/.demo_timer_driver.mod.cmd b/kernel_timer/.demo_timer_driver.mod.cmd new file mode 100644 index 0000000..af02342 --- /dev/null +++ b/kernel_timer/.demo_timer_driver.mod.cmd @@ -0,0 +1 @@ +savedcmd_/home/junet/driver-tutorial/kernel_timer/demo_timer_driver.mod := printf '%s\n' demo_timer_driver.o | awk '!x[$$0]++ { print("/home/junet/driver-tutorial/kernel_timer/"$$0) }' > /home/junet/driver-tutorial/kernel_timer/demo_timer_driver.mod diff --git a/kernel_timer/.demo_timer_driver.mod.o.cmd b/kernel_timer/.demo_timer_driver.mod.o.cmd new file mode 100644 index 0000000..b316e1a --- /dev/null +++ b/kernel_timer/.demo_timer_driver.mod.o.cmd @@ -0,0 +1,1069 @@ +savedcmd_/home/junet/driver-tutorial/kernel_timer/demo_timer_driver.mod.o := gcc-13 -Wp,-MMD,/home/junet/driver-tutorial/kernel_timer/.demo_timer_driver.mod.o.d -nostdinc -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/compiler-version.h -include ./include/linux/kconfig.h -I./ubuntu/include -include ./include/linux/compiler_types.h -D__KERNEL__ -fmacro-prefix-map=./= -std=gnu11 -fshort-wchar -funsigned-char -fno-common -fno-PIE -fno-strict-aliasing -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 -Wno-sign-compare -fno-asynchronous-unwind-tables -mindirect-branch=thunk-extern -mindirect-branch-register -mindirect-branch-cs-prefix -mfunction-return=thunk-extern -fno-jump-tables -mharden-sls=all -fpatchable-function-entry=16,16 -fno-delete-null-pointer-checks -O2 -fno-allow-store-data-races -fstack-protector-strong -fno-omit-frame-pointer -fno-optimize-sibling-calls -ftrivial-auto-var-init=zero -fno-stack-clash-protection -fzero-call-used-regs=used-gpr -pg -mrecord-mcount -mfentry -DCC_USING_FENTRY -falign-functions=16 -fstrict-flex-arrays=3 -fno-strict-overflow -fno-stack-check -fconserve-stack -Wall -Wundef -Werror=implicit-function-declaration -Werror=implicit-int -Werror=return-type -Werror=strict-prototypes -Wno-format-security -Wno-trigraphs -Wno-frame-address -Wno-address-of-packed-member -Wmissing-declarations -Wmissing-prototypes -Wframe-larger-than=1024 -Wno-main -Wno-unused-but-set-variable -Wno-unused-const-variable -Wno-dangling-pointer -Wvla -Wno-pointer-sign -Wcast-function-type -Wno-stringop-overflow -Wno-array-bounds -Wno-alloc-size-larger-than -Wimplicit-fallthrough=5 -Werror=date-time -Werror=incompatible-pointer-types -Werror=designated-init -Wenum-conversion -Wno-unused-but-set-variable -Wno-unused-const-variable -Wno-restrict -Wno-packed-not-aligned -Wno-format-overflow -Wno-format-truncation -Wno-stringop-truncation -Wno-override-init -Wno-missing-field-initializers -Wno-type-limits -Wno-shift-negative-value -Wno-maybe-uninitialized -Wno-sign-compare -g -gdwarf-5 -fsanitize=bounds-strict -fsanitize=shift -fsanitize=bool -fsanitize=enum -DMODULE -DKBUILD_BASENAME='"demo_timer_driver.mod"' -DKBUILD_MODNAME='"demo_timer_driver"' -D__KBUILD_MODNAME=kmod_demo_timer_driver -c -o /home/junet/driver-tutorial/kernel_timer/demo_timer_driver.mod.o /home/junet/driver-tutorial/kernel_timer/demo_timer_driver.mod.c + +source_/home/junet/driver-tutorial/kernel_timer/demo_timer_driver.mod.o := /home/junet/driver-tutorial/kernel_timer/demo_timer_driver.mod.c + +deps_/home/junet/driver-tutorial/kernel_timer/demo_timer_driver.mod.o := \ + $(wildcard include/config/UNWINDER_ORC) \ + $(wildcard include/config/MODULE_UNLOAD) \ + $(wildcard include/config/RETPOLINE) \ + include/linux/compiler-version.h \ + $(wildcard include/config/CC_VERSION_TEXT) \ + include/linux/kconfig.h \ + $(wildcard include/config/CPU_BIG_ENDIAN) \ + $(wildcard include/config/BOOGER) \ + $(wildcard include/config/FOO) \ + include/linux/compiler_types.h \ + $(wildcard include/config/DEBUG_INFO_BTF) \ + $(wildcard include/config/PAHOLE_HAS_BTF_TAG) \ + $(wildcard include/config/FUNCTION_ALIGNMENT) \ + $(wildcard include/config/CC_IS_GCC) \ + $(wildcard include/config/X86_64) \ + $(wildcard include/config/ARM64) \ + $(wildcard include/config/HAVE_ARCH_COMPILER_H) \ + $(wildcard include/config/CC_HAS_ASM_INLINE) \ + include/linux/compiler_attributes.h \ + include/linux/compiler-gcc.h \ + $(wildcard include/config/GCC_ASM_GOTO_OUTPUT_WORKAROUND) \ + $(wildcard include/config/ARCH_USE_BUILTIN_BSWAP) \ + $(wildcard include/config/SHADOW_CALL_STACK) \ + $(wildcard include/config/KCOV) \ + include/linux/module.h \ + $(wildcard include/config/MODULES) \ + $(wildcard include/config/SYSFS) \ + $(wildcard include/config/MODULES_TREE_LOOKUP) \ + $(wildcard include/config/LIVEPATCH) \ + $(wildcard include/config/STACKTRACE_BUILD_ID) \ + $(wildcard include/config/ARCH_USES_CFI_TRAPS) \ + $(wildcard include/config/MODULE_SIG) \ + $(wildcard include/config/GENERIC_BUG) \ + $(wildcard include/config/KALLSYMS) \ + $(wildcard include/config/SMP) \ + $(wildcard include/config/TRACEPOINTS) \ + $(wildcard include/config/TREE_SRCU) \ + $(wildcard include/config/BPF_EVENTS) \ + $(wildcard include/config/DEBUG_INFO_BTF_MODULES) \ + $(wildcard include/config/JUMP_LABEL) \ + $(wildcard include/config/TRACING) \ + $(wildcard include/config/EVENT_TRACING) \ + $(wildcard include/config/FTRACE_MCOUNT_RECORD) \ + $(wildcard include/config/KPROBES) \ + $(wildcard include/config/HAVE_STATIC_CALL_INLINE) \ + $(wildcard include/config/KUNIT) \ + $(wildcard include/config/PRINTK_INDEX) \ + $(wildcard include/config/CONSTRUCTORS) \ + $(wildcard include/config/FUNCTION_ERROR_INJECTION) \ + $(wildcard include/config/DYNAMIC_DEBUG_CORE) \ + include/linux/list.h \ + $(wildcard include/config/LIST_HARDENED) \ + $(wildcard include/config/DEBUG_LIST) \ + include/linux/container_of.h \ + include/linux/build_bug.h \ + include/linux/compiler.h \ + $(wildcard include/config/TRACE_BRANCH_PROFILING) \ + $(wildcard include/config/PROFILE_ALL_BRANCHES) \ + $(wildcard include/config/OBJTOOL) \ + arch/x86/include/generated/asm/rwonce.h \ + include/asm-generic/rwonce.h \ + include/linux/kasan-checks.h \ + $(wildcard include/config/KASAN_GENERIC) \ + $(wildcard include/config/KASAN_SW_TAGS) \ + include/linux/types.h \ + $(wildcard include/config/HAVE_UID16) \ + $(wildcard include/config/UID16) \ + $(wildcard include/config/ARCH_DMA_ADDR_T_64BIT) \ + $(wildcard include/config/PHYS_ADDR_T_64BIT) \ + $(wildcard include/config/64BIT) \ + $(wildcard include/config/ARCH_32BIT_USTAT_F_TINODE) \ + 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 \ + arch/x86/include/asm/posix_types.h \ + $(wildcard include/config/X86_32) \ + arch/x86/include/uapi/asm/posix_types_64.h \ + include/uapi/asm-generic/posix_types.h \ + include/linux/kcsan-checks.h \ + $(wildcard include/config/KCSAN) \ + $(wildcard include/config/KCSAN_WEAK_MEMORY) \ + $(wildcard include/config/KCSAN_IGNORE_ATOMICS) \ + include/linux/poison.h \ + $(wildcard include/config/ILLEGAL_POINTER_VALUE) \ + include/linux/const.h \ + include/vdso/const.h \ + include/uapi/linux/const.h \ + arch/x86/include/asm/barrier.h \ + arch/x86/include/asm/alternative.h \ + $(wildcard include/config/CALL_THUNKS) \ + include/linux/stringify.h \ + arch/x86/include/asm/asm.h \ + arch/x86/include/asm/extable_fixup_types.h \ + arch/x86/include/asm/nops.h \ + include/asm-generic/barrier.h \ + include/linux/stat.h \ + arch/x86/include/uapi/asm/stat.h \ + include/uapi/linux/stat.h \ + include/linux/time.h \ + $(wildcard include/config/POSIX_TIMERS) \ + include/linux/cache.h \ + $(wildcard include/config/ARCH_HAS_CACHE_LINE_SIZE) \ + include/uapi/linux/kernel.h \ + include/uapi/linux/sysinfo.h \ + arch/x86/include/asm/cache.h \ + $(wildcard include/config/X86_L1_CACHE_SHIFT) \ + $(wildcard include/config/X86_INTERNODE_CACHE_SHIFT) \ + $(wildcard include/config/X86_VSMP) \ + include/linux/linkage.h \ + $(wildcard include/config/ARCH_USE_SYM_ANNOTATIONS) \ + include/linux/export.h \ + $(wildcard include/config/MODVERSIONS) \ + arch/x86/include/asm/linkage.h \ + $(wildcard include/config/CALL_PADDING) \ + $(wildcard include/config/RETHUNK) \ + $(wildcard include/config/SLS) \ + $(wildcard include/config/FUNCTION_PADDING_BYTES) \ + $(wildcard include/config/UML) \ + arch/x86/include/asm/ibt.h \ + $(wildcard include/config/X86_KERNEL_IBT) \ + include/linux/math64.h \ + $(wildcard include/config/ARCH_SUPPORTS_INT128) \ + include/linux/math.h \ + arch/x86/include/asm/div64.h \ + include/asm-generic/div64.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 \ + include/uapi/linux/param.h \ + arch/x86/include/generated/uapi/asm/param.h \ + include/asm-generic/param.h \ + $(wildcard include/config/HZ) \ + include/uapi/asm-generic/param.h \ + arch/x86/include/asm/timex.h \ + $(wildcard include/config/X86_TSC) \ + arch/x86/include/asm/processor.h \ + $(wildcard include/config/X86_VMX_FEATURE_NAMES) \ + $(wildcard include/config/X86_IOPL_IOPERM) \ + $(wildcard include/config/STACKPROTECTOR) \ + $(wildcard include/config/VM86) \ + $(wildcard include/config/X86_USER_SHADOW_STACK) \ + $(wildcard include/config/PARAVIRT_XXL) \ + $(wildcard include/config/X86_DEBUGCTLMSR) \ + $(wildcard include/config/CPU_SUP_AMD) \ + $(wildcard include/config/XEN) \ + arch/x86/include/asm/processor-flags.h \ + $(wildcard include/config/PAGE_TABLE_ISOLATION) \ + arch/x86/include/uapi/asm/processor-flags.h \ + include/linux/mem_encrypt.h \ + $(wildcard include/config/ARCH_HAS_MEM_ENCRYPT) \ + $(wildcard include/config/AMD_MEM_ENCRYPT) \ + arch/x86/include/asm/mem_encrypt.h \ + $(wildcard include/config/X86_MEM_ENCRYPT) \ + include/linux/init.h \ + $(wildcard include/config/HAVE_ARCH_PREL32_RELOCATIONS) \ + $(wildcard include/config/STRICT_KERNEL_RWX) \ + $(wildcard include/config/STRICT_MODULE_RWX) \ + $(wildcard include/config/LTO_CLANG) \ + include/linux/cc_platform.h \ + $(wildcard include/config/ARCH_HAS_CC_PLATFORM) \ + arch/x86/include/asm/math_emu.h \ + arch/x86/include/asm/ptrace.h \ + $(wildcard include/config/PARAVIRT) \ + $(wildcard include/config/IA32_EMULATION) \ + arch/x86/include/asm/segment.h \ + $(wildcard include/config/XEN_PV) \ + arch/x86/include/asm/page_types.h \ + $(wildcard include/config/PHYSICAL_START) \ + $(wildcard include/config/PHYSICAL_ALIGN) \ + $(wildcard include/config/DYNAMIC_PHYSICAL_MASK) \ + arch/x86/include/asm/page_64_types.h \ + $(wildcard include/config/KASAN) \ + $(wildcard include/config/DYNAMIC_MEMORY_LAYOUT) \ + $(wildcard include/config/X86_5LEVEL) \ + $(wildcard include/config/RANDOMIZE_BASE) \ + arch/x86/include/asm/kaslr.h \ + $(wildcard include/config/RANDOMIZE_MEMORY) \ + 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) \ + $(wildcard include/config/ZERO_CALL_USED_REGS) \ + $(wildcard include/config/PARAVIRT_DEBUG) \ + arch/x86/include/asm/desc_defs.h \ + arch/x86/include/asm/pgtable_types.h \ + $(wildcard include/config/X86_INTEL_MEMORY_PROTECTION_KEYS) \ + $(wildcard include/config/X86_PAE) \ + $(wildcard include/config/MEM_SOFT_DIRTY) \ + $(wildcard include/config/HAVE_ARCH_USERFAULTFD_WP) \ + $(wildcard include/config/PROC_FS) \ + arch/x86/include/asm/pgtable_64_types.h \ + $(wildcard include/config/KMSAN) \ + $(wildcard include/config/DEBUG_KMAP_LOCAL_FORCE_MAP) \ + arch/x86/include/asm/sparsemem.h \ + $(wildcard include/config/SPARSEMEM) \ + $(wildcard include/config/NUMA_KEEP_MEMINFO) \ + arch/x86/include/asm/nospec-branch.h \ + $(wildcard include/config/CALL_THUNKS_DEBUG) \ + $(wildcard include/config/CALL_DEPTH_TRACKING) \ + $(wildcard include/config/NOINSTR_VALIDATION) \ + $(wildcard include/config/CPU_UNRET_ENTRY) \ + $(wildcard include/config/CPU_SRSO) \ + $(wildcard include/config/CPU_IBPB_ENTRY) \ + include/linux/static_key.h \ + include/linux/jump_label.h \ + $(wildcard include/config/HAVE_ARCH_JUMP_LABEL_RELATIVE) \ + arch/x86/include/asm/jump_label.h \ + $(wildcard include/config/HAVE_JUMP_LABEL_HACK) \ + include/linux/objtool.h \ + $(wildcard include/config/FRAME_POINTER) \ + include/linux/objtool_types.h \ + arch/x86/include/asm/cpufeatures.h \ + arch/x86/include/asm/required-features.h \ + $(wildcard include/config/X86_MINIMUM_CPU_FAMILY) \ + $(wildcard include/config/MATH_EMULATION) \ + $(wildcard include/config/X86_CMPXCHG64) \ + $(wildcard include/config/X86_CMOV) \ + $(wildcard include/config/X86_P6_NOP) \ + $(wildcard include/config/MATOM) \ + arch/x86/include/asm/disabled-features.h \ + $(wildcard include/config/X86_UMIP) \ + $(wildcard include/config/ADDRESS_MASKING) \ + $(wildcard include/config/INTEL_IOMMU_SVM) \ + $(wildcard include/config/X86_SGX) \ + $(wildcard include/config/INTEL_TDX_GUEST) \ + arch/x86/include/asm/msr-index.h \ + include/linux/bits.h \ + include/vdso/bits.h \ + arch/x86/include/asm/unwind_hints.h \ + arch/x86/include/asm/orc_types.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 \ + arch/x86/include/asm/percpu.h \ + $(wildcard include/config/X86_64_SMP) \ + include/asm-generic/percpu.h \ + $(wildcard include/config/DEBUG_PREEMPT) \ + $(wildcard include/config/HAVE_SETUP_PER_CPU_AREA) \ + include/linux/threads.h \ + $(wildcard include/config/NR_CPUS) \ + $(wildcard include/config/BASE_SMALL) \ + include/linux/percpu-defs.h \ + $(wildcard include/config/DEBUG_FORCE_WEAK_PER_CPU) \ + arch/x86/include/asm/current.h \ + arch/x86/include/asm/asm-offsets.h \ + include/generated/asm-offsets.h \ + arch/x86/include/asm/GEN-for-each-reg.h \ + arch/x86/include/asm/spinlock_types.h \ + include/asm-generic/qspinlock_types.h \ + include/asm-generic/qrwlock_types.h \ + arch/x86/include/asm/proto.h \ + arch/x86/include/uapi/asm/ldt.h \ + arch/x86/include/uapi/asm/sigcontext.h \ + arch/x86/include/asm/cpuid.h \ + arch/x86/include/asm/string.h \ + arch/x86/include/asm/string_64.h \ + $(wildcard include/config/ARCH_HAS_UACCESS_FLUSHCACHE) \ + arch/x86/include/asm/paravirt.h \ + $(wildcard include/config/PARAVIRT_SPINLOCKS) \ + $(wildcard include/config/DEBUG_ENTRY) \ + include/linux/bug.h \ + $(wildcard include/config/BUG_ON_DATA_CORRUPTION) \ + arch/x86/include/asm/bug.h \ + $(wildcard include/config/DEBUG_BUGVERBOSE) \ + include/linux/instrumentation.h \ + include/asm-generic/bug.h \ + $(wildcard include/config/BUG) \ + $(wildcard include/config/GENERIC_BUG_RELATIVE_POINTERS) \ + include/linux/once_lite.h \ + include/linux/panic.h \ + $(wildcard include/config/PANIC_TIMEOUT) \ + include/linux/printk.h \ + $(wildcard include/config/MESSAGE_LOGLEVEL_DEFAULT) \ + $(wildcard include/config/CONSOLE_LOGLEVEL_DEFAULT) \ + $(wildcard include/config/CONSOLE_LOGLEVEL_QUIET) \ + $(wildcard include/config/EARLY_PRINTK) \ + $(wildcard include/config/PRINTK) \ + $(wildcard include/config/DYNAMIC_DEBUG) \ + include/linux/stdarg.h \ + include/linux/kern_levels.h \ + include/linux/ratelimit_types.h \ + include/linux/spinlock_types_raw.h \ + $(wildcard include/config/DEBUG_SPINLOCK) \ + $(wildcard include/config/DEBUG_LOCK_ALLOC) \ + include/linux/lockdep_types.h \ + $(wildcard include/config/PROVE_RAW_LOCK_NESTING) \ + $(wildcard include/config/LOCKDEP) \ + $(wildcard include/config/LOCK_STAT) \ + include/linux/dynamic_debug.h \ + include/linux/cpumask.h \ + $(wildcard include/config/FORCE_NR_CPUS) \ + $(wildcard include/config/HOTPLUG_CPU) \ + $(wildcard include/config/DEBUG_PER_CPU_MAPS) \ + $(wildcard include/config/CPUMASK_OFFSTACK) \ + include/linux/kernel.h \ + $(wildcard include/config/PREEMPT_VOLUNTARY_BUILD) \ + $(wildcard include/config/PREEMPT_DYNAMIC) \ + $(wildcard include/config/HAVE_PREEMPT_DYNAMIC_CALL) \ + $(wildcard include/config/HAVE_PREEMPT_DYNAMIC_KEY) \ + $(wildcard include/config/PREEMPT_) \ + $(wildcard include/config/DEBUG_ATOMIC_SLEEP) \ + $(wildcard include/config/MMU) \ + $(wildcard include/config/PROVE_LOCKING) \ + include/linux/align.h \ + include/linux/array_size.h \ + include/linux/limits.h \ + include/uapi/linux/limits.h \ + include/vdso/limits.h \ + include/linux/bitops.h \ + include/linux/typecheck.h \ + include/asm-generic/bitops/generic-non-atomic.h \ + arch/x86/include/asm/bitops.h \ + arch/x86/include/asm/rmwcc.h \ + include/linux/args.h \ + include/asm-generic/bitops/sched.h \ + arch/x86/include/asm/arch_hweight.h \ + include/asm-generic/bitops/const_hweight.h \ + include/asm-generic/bitops/instrumented-atomic.h \ + include/linux/instrumented.h \ + include/linux/kmsan-checks.h \ + include/asm-generic/bitops/instrumented-non-atomic.h \ + $(wildcard include/config/KCSAN_ASSUME_PLAIN_WRITES_ATOMIC) \ + include/asm-generic/bitops/instrumented-lock.h \ + include/asm-generic/bitops/le.h \ + include/asm-generic/bitops/ext2-atomic-setbit.h \ + include/linux/hex.h \ + include/linux/kstrtox.h \ + include/linux/log2.h \ + $(wildcard include/config/ARCH_HAS_ILOG2_U32) \ + $(wildcard include/config/ARCH_HAS_ILOG2_U64) \ + include/linux/minmax.h \ + include/linux/sprintf.h \ + include/linux/static_call_types.h \ + $(wildcard include/config/HAVE_STATIC_CALL) \ + include/linux/instruction_pointer.h \ + include/linux/bitmap.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 \ + include/linux/find.h \ + include/linux/string.h \ + $(wildcard include/config/BINARY_PRINTF) \ + $(wildcard include/config/FORTIFY_SOURCE) \ + include/linux/err.h \ + include/linux/overflow.h \ + include/uapi/linux/string.h \ + include/linux/fortify-string.h \ + $(wildcard include/config/CC_HAS_KASAN_MEMINTRINSIC_PREFIX) \ + $(wildcard include/config/GENERIC_ENTRY) \ + include/linux/bitmap-str.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/linux/atomic/atomic-arch-fallback.h \ + $(wildcard include/config/GENERIC_ATOMIC64) \ + include/linux/atomic/atomic-long.h \ + include/linux/atomic/atomic-instrumented.h \ + include/linux/gfp_types.h \ + $(wildcard include/config/KASAN_HW_TAGS) \ + include/linux/numa.h \ + $(wildcard include/config/NODES_SHIFT) \ + $(wildcard include/config/NUMA) \ + $(wildcard include/config/HAVE_ARCH_NODE_DEV_GROUP) \ + arch/x86/include/asm/frame.h \ + arch/x86/include/asm/page.h \ + arch/x86/include/asm/page_64.h \ + $(wildcard include/config/DEBUG_VIRTUAL) \ + $(wildcard include/config/X86_VSYSCALL_EMULATION) \ + include/linux/range.h \ + include/asm-generic/memory_model.h \ + $(wildcard include/config/FLATMEM) \ + $(wildcard include/config/SPARSEMEM_VMEMMAP) \ + include/linux/pfn.h \ + include/asm-generic/getorder.h \ + arch/x86/include/asm/msr.h \ + arch/x86/include/asm/cpumask.h \ + arch/x86/include/uapi/asm/msr.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 \ + arch/x86/include/asm/shared/msr.h \ + include/linux/tracepoint-defs.h \ + arch/x86/include/asm/special_insns.h \ + include/linux/irqflags.h \ + $(wildcard include/config/TRACE_IRQFLAGS) \ + $(wildcard include/config/PREEMPT_RT) \ + $(wildcard include/config/IRQSOFF_TRACER) \ + $(wildcard include/config/PREEMPT_TRACER) \ + $(wildcard include/config/DEBUG_IRQFLAGS) \ + $(wildcard include/config/TRACE_IRQFLAGS_SUPPORT) \ + include/linux/irqflags_types.h \ + include/linux/cleanup.h \ + arch/x86/include/asm/irqflags.h \ + arch/x86/include/asm/fpu/types.h \ + arch/x86/include/asm/vmxfeatures.h \ + arch/x86/include/asm/vdso/processor.h \ + arch/x86/include/asm/shstk.h \ + include/linux/personality.h \ + include/uapi/linux/personality.h \ + arch/x86/include/asm/tsc.h \ + arch/x86/include/asm/cpufeature.h \ + include/vdso/time32.h \ + include/vdso/time.h \ + include/linux/uidgid.h \ + $(wildcard include/config/MULTIUSER) \ + $(wildcard include/config/USER_NS) \ + include/linux/uidgid_types.h \ + include/linux/highuid.h \ + include/linux/buildid.h \ + $(wildcard include/config/CRASH_CORE) \ + include/linux/kmod.h \ + include/linux/umh.h \ + include/linux/gfp.h \ + $(wildcard include/config/HIGHMEM) \ + $(wildcard include/config/ZONE_DMA) \ + $(wildcard include/config/ZONE_DMA32) \ + $(wildcard include/config/ZONE_DEVICE) \ + $(wildcard include/config/COMPACTION) \ + $(wildcard include/config/CONTIG_ALLOC) \ + include/linux/mmzone.h \ + $(wildcard include/config/ARCH_FORCE_MAX_ORDER) \ + $(wildcard include/config/CMA) \ + $(wildcard include/config/MEMORY_ISOLATION) \ + $(wildcard include/config/ZSMALLOC) \ + $(wildcard include/config/UNACCEPTED_MEMORY) \ + $(wildcard include/config/SWAP) \ + $(wildcard include/config/NUMA_BALANCING) \ + $(wildcard include/config/TRANSPARENT_HUGEPAGE) \ + $(wildcard include/config/LRU_GEN) \ + $(wildcard include/config/LRU_GEN_STATS) \ + $(wildcard include/config/LRU_GEN_WALKS_MMU) \ + $(wildcard include/config/MEMCG) \ + $(wildcard include/config/MEMORY_HOTPLUG) \ + $(wildcard include/config/MEMORY_FAILURE) \ + $(wildcard include/config/PAGE_EXTENSION) \ + $(wildcard include/config/DEFERRED_STRUCT_PAGE_INIT) \ + $(wildcard include/config/HAVE_MEMORYLESS_NODES) \ + $(wildcard include/config/SPARSEMEM_EXTREME) \ + $(wildcard include/config/HAVE_ARCH_PFN_VALID) \ + include/linux/spinlock.h \ + $(wildcard include/config/PREEMPTION) \ + include/linux/preempt.h \ + $(wildcard include/config/PREEMPT_COUNT) \ + $(wildcard include/config/TRACE_PREEMPT_TOGGLE) \ + $(wildcard include/config/PREEMPT_NOTIFIERS) \ + $(wildcard include/config/PREEMPT_NONE) \ + $(wildcard include/config/PREEMPT_VOLUNTARY) \ + $(wildcard include/config/PREEMPT) \ + arch/x86/include/asm/preempt.h \ + include/linux/thread_info.h \ + $(wildcard include/config/THREAD_INFO_IN_TASK) \ + $(wildcard include/config/HAVE_ARCH_WITHIN_STACK_FRAMES) \ + $(wildcard include/config/HARDENED_USERCOPY) \ + $(wildcard include/config/SH) \ + include/linux/restart_block.h \ + arch/x86/include/asm/thread_info.h \ + $(wildcard include/config/COMPAT) \ + include/linux/bottom_half.h \ + include/linux/lockdep.h \ + $(wildcard include/config/DEBUG_LOCKING_API_SELFTESTS) \ + include/linux/smp.h \ + $(wildcard include/config/UP_LATE_INIT) \ + include/linux/smp_types.h \ + include/linux/llist.h \ + $(wildcard include/config/ARCH_HAVE_NMI_SAFE_CMPXCHG) \ + arch/x86/include/asm/smp.h \ + $(wildcard include/config/DEBUG_NMI_SELFTEST) \ + arch/x86/include/generated/asm/mmiowb.h \ + include/asm-generic/mmiowb.h \ + $(wildcard include/config/MMIOWB) \ + include/linux/spinlock_types.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 \ + include/linux/spinlock_api_smp.h \ + $(wildcard include/config/INLINE_SPIN_LOCK) \ + $(wildcard include/config/INLINE_SPIN_LOCK_BH) \ + $(wildcard include/config/INLINE_SPIN_LOCK_IRQ) \ + $(wildcard include/config/INLINE_SPIN_LOCK_IRQSAVE) \ + $(wildcard include/config/INLINE_SPIN_TRYLOCK) \ + $(wildcard include/config/INLINE_SPIN_TRYLOCK_BH) \ + $(wildcard include/config/UNINLINE_SPIN_UNLOCK) \ + $(wildcard include/config/INLINE_SPIN_UNLOCK_BH) \ + $(wildcard include/config/INLINE_SPIN_UNLOCK_IRQ) \ + $(wildcard include/config/INLINE_SPIN_UNLOCK_IRQRESTORE) \ + $(wildcard include/config/GENERIC_LOCKBREAK) \ + include/linux/rwlock_api_smp.h \ + $(wildcard include/config/INLINE_READ_LOCK) \ + $(wildcard include/config/INLINE_WRITE_LOCK) \ + $(wildcard include/config/INLINE_READ_LOCK_BH) \ + $(wildcard include/config/INLINE_WRITE_LOCK_BH) \ + $(wildcard include/config/INLINE_READ_LOCK_IRQ) \ + $(wildcard include/config/INLINE_WRITE_LOCK_IRQ) \ + $(wildcard include/config/INLINE_READ_LOCK_IRQSAVE) \ + $(wildcard include/config/INLINE_WRITE_LOCK_IRQSAVE) \ + $(wildcard include/config/INLINE_READ_TRYLOCK) \ + $(wildcard include/config/INLINE_WRITE_TRYLOCK) \ + $(wildcard include/config/INLINE_READ_UNLOCK) \ + $(wildcard include/config/INLINE_WRITE_UNLOCK) \ + $(wildcard include/config/INLINE_READ_UNLOCK_BH) \ + $(wildcard include/config/INLINE_WRITE_UNLOCK_BH) \ + $(wildcard include/config/INLINE_READ_UNLOCK_IRQ) \ + $(wildcard include/config/INLINE_WRITE_UNLOCK_IRQ) \ + $(wildcard include/config/INLINE_READ_UNLOCK_IRQRESTORE) \ + $(wildcard include/config/INLINE_WRITE_UNLOCK_IRQRESTORE) \ + include/linux/list_nulls.h \ + include/linux/wait.h \ + include/linux/seqlock.h \ + include/linux/mutex.h \ + $(wildcard include/config/DEBUG_MUTEXES) \ + include/linux/osq_lock.h \ + include/linux/debug_locks.h \ + include/linux/mutex_types.h \ + $(wildcard include/config/MUTEX_SPIN_ON_OWNER) \ + include/linux/seqlock_types.h \ + include/linux/nodemask.h \ + include/linux/nodemask_types.h \ + include/linux/random.h \ + $(wildcard include/config/VMGENID) \ + include/uapi/linux/random.h \ + include/linux/irqnr.h \ + include/uapi/linux/irqnr.h \ + include/linux/prandom.h \ + include/linux/once.h \ + include/linux/pageblock-flags.h \ + $(wildcard include/config/HUGETLB_PAGE) \ + $(wildcard include/config/HUGETLB_PAGE_SIZE_VARIABLE) \ + include/linux/page-flags-layout.h \ + include/generated/bounds.h \ + include/linux/mm_types.h \ + $(wildcard include/config/HAVE_ALIGNED_STRUCT_PAGE) \ + $(wildcard include/config/USERFAULTFD) \ + $(wildcard include/config/ANON_VMA_NAME) \ + $(wildcard include/config/PER_VMA_LOCK) \ + $(wildcard include/config/SCHED_MM_CID) \ + $(wildcard include/config/HAVE_ARCH_COMPAT_MMAP_BASES) \ + $(wildcard include/config/MEMBARRIER) \ + $(wildcard include/config/AIO) \ + $(wildcard include/config/MMU_NOTIFIER) \ + $(wildcard include/config/ARCH_WANT_BATCHED_UNMAP_TLB_FLUSH) \ + $(wildcard include/config/IOMMU_MM_DATA) \ + $(wildcard include/config/KSM) \ + include/linux/mm_types_task.h \ + $(wildcard include/config/SPLIT_PTLOCK_CPUS) \ + $(wildcard include/config/ARCH_ENABLE_SPLIT_PMD_PTLOCK) \ + arch/x86/include/asm/tlbbatch.h \ + include/linux/auxvec.h \ + include/uapi/linux/auxvec.h \ + arch/x86/include/uapi/asm/auxvec.h \ + include/linux/kref.h \ + include/linux/refcount.h \ + include/linux/refcount_types.h \ + include/linux/rbtree.h \ + include/linux/rbtree_types.h \ + include/linux/rcupdate.h \ + $(wildcard include/config/PREEMPT_RCU) \ + $(wildcard include/config/TINY_RCU) \ + $(wildcard include/config/RCU_STRICT_GRACE_PERIOD) \ + $(wildcard include/config/RCU_LAZY) \ + $(wildcard include/config/TASKS_RCU_GENERIC) \ + $(wildcard include/config/RCU_STALL_COMMON) \ + $(wildcard include/config/NO_HZ_FULL) \ + $(wildcard include/config/KVM_XFER_TO_GUEST_WORK) \ + $(wildcard include/config/RCU_NOCB_CPU) \ + $(wildcard include/config/TASKS_RCU) \ + $(wildcard include/config/TASKS_TRACE_RCU) \ + $(wildcard include/config/TASKS_RUDE_RCU) \ + $(wildcard include/config/TREE_RCU) \ + $(wildcard include/config/DEBUG_OBJECTS_RCU_HEAD) \ + $(wildcard include/config/PROVE_RCU) \ + $(wildcard include/config/ARCH_WEAK_RELEASE_ACQUIRE) \ + include/linux/context_tracking_irq.h \ + $(wildcard include/config/CONTEXT_TRACKING_IDLE) \ + include/linux/rcutree.h \ + include/linux/maple_tree.h \ + $(wildcard include/config/MAPLE_RCU_DISABLED) \ + $(wildcard include/config/DEBUG_MAPLE_TREE) \ + include/linux/rwsem.h \ + $(wildcard include/config/RWSEM_SPIN_ON_OWNER) \ + $(wildcard include/config/DEBUG_RWSEMS) \ + include/linux/completion.h \ + include/linux/swait.h \ + include/linux/uprobes.h \ + $(wildcard include/config/UPROBES) \ + arch/x86/include/asm/uprobes.h \ + include/linux/notifier.h \ + include/linux/srcu.h \ + $(wildcard include/config/TINY_SRCU) \ + $(wildcard include/config/NEED_SRCU_NMI_SAFE) \ + include/linux/workqueue.h \ + $(wildcard include/config/DEBUG_OBJECTS_WORK) \ + $(wildcard include/config/FREEZER) \ + $(wildcard include/config/WQ_WATCHDOG) \ + include/linux/timer.h \ + $(wildcard include/config/DEBUG_OBJECTS_TIMERS) \ + include/linux/ktime.h \ + include/linux/jiffies.h \ + include/vdso/jiffies.h \ + include/generated/timeconst.h \ + include/vdso/ktime.h \ + include/linux/timekeeping.h \ + $(wildcard include/config/GENERIC_CMOS_UPDATE) \ + include/linux/clocksource_ids.h \ + include/linux/debugobjects.h \ + $(wildcard include/config/DEBUG_OBJECTS) \ + $(wildcard include/config/DEBUG_OBJECTS_FREE) \ + include/linux/timer_types.h \ + include/linux/workqueue_types.h \ + include/linux/rcu_segcblist.h \ + include/linux/srcutree.h \ + include/linux/rcu_node_tree.h \ + $(wildcard include/config/RCU_FANOUT) \ + $(wildcard include/config/RCU_FANOUT_LEAF) \ + include/linux/percpu_counter.h \ + include/linux/percpu.h \ + $(wildcard include/config/RANDOM_KMALLOC_CACHES) \ + $(wildcard include/config/NEED_PER_CPU_PAGE_FIRST_CHUNK) \ + include/linux/mmdebug.h \ + $(wildcard include/config/DEBUG_VM) \ + $(wildcard include/config/DEBUG_VM_IRQSOFF) \ + $(wildcard include/config/DEBUG_VM_PGFLAGS) \ + arch/x86/include/asm/mmu.h \ + $(wildcard include/config/MODIFY_LDT_SYSCALL) \ + include/linux/page-flags.h \ + $(wildcard include/config/ARCH_USES_PG_UNCACHED) \ + $(wildcard include/config/PAGE_IDLE_FLAG) \ + $(wildcard include/config/ARCH_USES_PG_ARCH_X) \ + $(wildcard include/config/HUGETLB_PAGE_OPTIMIZE_VMEMMAP) \ + include/linux/local_lock.h \ + include/linux/local_lock_internal.h \ + include/linux/zswap.h \ + $(wildcard include/config/ZSWAP) \ + include/linux/memory_hotplug.h \ + $(wildcard include/config/HAVE_ARCH_NODEDATA_EXTENSION) \ + $(wildcard include/config/ARCH_HAS_ADD_PAGES) \ + $(wildcard include/config/MEMORY_HOTREMOVE) \ + arch/x86/include/asm/mmzone.h \ + arch/x86/include/asm/mmzone_64.h \ + include/linux/topology.h \ + $(wildcard include/config/USE_PERCPU_NUMA_NODE_ID) \ + $(wildcard include/config/SCHED_SMT) \ + include/linux/arch_topology.h \ + $(wildcard include/config/ACPI_CPPC_LIB) \ + $(wildcard include/config/GENERIC_ARCH_TOPOLOGY) \ + arch/x86/include/asm/topology.h \ + $(wildcard include/config/SCHED_MC_PRIO) \ + arch/x86/include/asm/mpspec.h \ + $(wildcard include/config/EISA) \ + $(wildcard include/config/X86_LOCAL_APIC) \ + $(wildcard include/config/X86_MPPARSE) \ + arch/x86/include/asm/mpspec_def.h \ + arch/x86/include/asm/x86_init.h \ + arch/x86/include/uapi/asm/bootparam.h \ + include/linux/screen_info.h \ + $(wildcard include/config/PCI) \ + include/uapi/linux/screen_info.h \ + include/linux/apm_bios.h \ + include/uapi/linux/apm_bios.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) \ + include/uapi/video/edid.h \ + arch/x86/include/asm/apicdef.h \ + include/asm-generic/topology.h \ + include/linux/cpu_smt.h \ + $(wildcard include/config/HOTPLUG_SMT) \ + include/linux/sysctl.h \ + $(wildcard include/config/SYSCTL) \ + include/uapi/linux/sysctl.h \ + include/linux/elf.h \ + $(wildcard include/config/ARCH_USE_GNU_PROPERTY) \ + $(wildcard include/config/ARCH_HAVE_ELF_PROT) \ + arch/x86/include/asm/elf.h \ + $(wildcard include/config/X86_X32_ABI) \ + arch/x86/include/asm/ia32.h \ + include/linux/compat.h \ + $(wildcard include/config/ARCH_HAS_SYSCALL_WRAPPER) \ + $(wildcard include/config/COMPAT_OLD_SIGACTION) \ + $(wildcard include/config/ODD_RT_SIGACTION) \ + include/linux/sem.h \ + $(wildcard include/config/SYSVIPC) \ + 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/sem_types.h \ + include/linux/socket.h \ + arch/x86/include/generated/uapi/asm/socket.h \ + include/uapi/asm-generic/socket.h \ + arch/x86/include/generated/uapi/asm/sockios.h \ + include/uapi/asm-generic/sockios.h \ + include/uapi/linux/sockios.h \ + include/linux/uio.h \ + $(wildcard include/config/ARCH_HAS_COPY_MC) \ + include/uapi/linux/uio.h \ + include/uapi/linux/socket.h \ + include/uapi/linux/if.h \ + include/uapi/linux/libc-compat.h \ + include/uapi/linux/hdlc/ioctl.h \ + include/linux/fs.h \ + $(wildcard include/config/READ_ONLY_THP_FOR_FS) \ + $(wildcard include/config/FS_POSIX_ACL) \ + $(wildcard include/config/SECURITY) \ + $(wildcard include/config/CGROUP_WRITEBACK) \ + $(wildcard include/config/IMA) \ + $(wildcard include/config/FILE_LOCKING) \ + $(wildcard include/config/FSNOTIFY) \ + $(wildcard include/config/FS_ENCRYPTION) \ + $(wildcard include/config/FS_VERITY) \ + $(wildcard include/config/EPOLL) \ + $(wildcard include/config/UNICODE) \ + $(wildcard include/config/QUOTA) \ + $(wildcard include/config/FS_DAX) \ + $(wildcard include/config/BLOCK) \ + include/linux/wait_bit.h \ + include/linux/kdev_t.h \ + include/uapi/linux/kdev_t.h \ + include/linux/dcache.h \ + include/linux/rculist.h \ + $(wildcard include/config/PROVE_RCU_LIST) \ + 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) \ + include/linux/stringhash.h \ + $(wildcard include/config/DCACHE_WORD_ACCESS) \ + include/linux/hash.h \ + $(wildcard include/config/HAVE_ARCH_HASH) \ + include/linux/path.h \ + include/linux/list_lru.h \ + $(wildcard include/config/MEMCG_KMEM) \ + include/linux/shrinker.h \ + $(wildcard include/config/SHRINKER_DEBUG) \ + include/linux/xarray.h \ + $(wildcard include/config/XARRAY_MULTI) \ + include/linux/sched/mm.h \ + $(wildcard include/config/MMU_LAZY_TLB_REFCOUNT) \ + $(wildcard include/config/ARCH_HAS_MEMBARRIER_CALLBACKS) \ + include/linux/sched.h \ + $(wildcard include/config/VIRT_CPU_ACCOUNTING_NATIVE) \ + $(wildcard include/config/SCHED_INFO) \ + $(wildcard include/config/SCHEDSTATS) \ + $(wildcard include/config/SCHED_CORE) \ + $(wildcard include/config/FAIR_GROUP_SCHED) \ + $(wildcard include/config/RT_GROUP_SCHED) \ + $(wildcard include/config/RT_MUTEXES) \ + $(wildcard include/config/UCLAMP_TASK) \ + $(wildcard include/config/UCLAMP_BUCKETS_COUNT) \ + $(wildcard include/config/KMAP_LOCAL) \ + $(wildcard include/config/CGROUP_SCHED) \ + $(wildcard include/config/BLK_DEV_IO_TRACE) \ + $(wildcard include/config/COMPAT_BRK) \ + $(wildcard include/config/CGROUPS) \ + $(wildcard include/config/BLK_CGROUP) \ + $(wildcard include/config/PSI) \ + $(wildcard include/config/PAGE_OWNER) \ + $(wildcard include/config/EVENTFD) \ + $(wildcard include/config/ARCH_HAS_CPU_PASID) \ + $(wildcard include/config/CPU_SUP_INTEL) \ + $(wildcard include/config/TASK_DELAY_ACCT) \ + $(wildcard include/config/ARCH_HAS_SCALED_CPUTIME) \ + $(wildcard include/config/VIRT_CPU_ACCOUNTING_GEN) \ + $(wildcard include/config/POSIX_CPUTIMERS) \ + $(wildcard include/config/POSIX_CPU_TIMERS_TASK_WORK) \ + $(wildcard include/config/KEYS) \ + $(wildcard include/config/DETECT_HUNG_TASK) \ + $(wildcard include/config/IO_URING) \ + $(wildcard include/config/AUDIT) \ + $(wildcard include/config/AUDITSYSCALL) \ + $(wildcard include/config/UBSAN) \ + $(wildcard include/config/UBSAN_TRAP) \ + $(wildcard include/config/TASK_XACCT) \ + $(wildcard include/config/CPUSETS) \ + $(wildcard include/config/X86_CPU_RESCTRL) \ + $(wildcard include/config/FUTEX) \ + $(wildcard include/config/PERF_EVENTS) \ + $(wildcard include/config/RSEQ) \ + $(wildcard include/config/FAULT_INJECTION) \ + $(wildcard include/config/LATENCYTOP) \ + $(wildcard include/config/FUNCTION_GRAPH_TRACER) \ + $(wildcard include/config/BCACHE) \ + $(wildcard include/config/VMAP_STACK) \ + $(wildcard include/config/BPF_SYSCALL) \ + $(wildcard include/config/GCC_PLUGIN_STACKLEAK) \ + $(wildcard include/config/X86_MCE) \ + $(wildcard include/config/KRETPROBES) \ + $(wildcard include/config/RETHOOK) \ + $(wildcard include/config/ARCH_HAS_PARANOID_L1D_FLUSH) \ + $(wildcard include/config/RV) \ + $(wildcard include/config/USER_EVENTS) \ + include/uapi/linux/sched.h \ + include/linux/pid_types.h \ + include/linux/shm.h \ + arch/x86/include/asm/shmparam.h \ + include/linux/kmsan_types.h \ + include/linux/plist_types.h \ + include/linux/hrtimer_types.h \ + include/linux/timerqueue_types.h \ + include/linux/seccomp_types.h \ + $(wildcard include/config/SECCOMP) \ + 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) \ + 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/syscall_user_dispatch_types.h \ + include/linux/task_io_accounting.h \ + $(wildcard include/config/TASK_IO_ACCOUNTING) \ + include/linux/posix-timers_types.h \ + include/uapi/linux/rseq.h \ + include/linux/kcsan.h \ + include/linux/rv.h \ + $(wildcard include/config/RV_REACTORS) \ + include/linux/livepatch_sched.h \ + arch/x86/include/generated/asm/kmap_size.h \ + include/asm-generic/kmap_size.h \ + $(wildcard include/config/DEBUG_KMAP_LOCAL) \ + include/linux/sync_core.h \ + $(wildcard include/config/ARCH_HAS_SYNC_CORE_BEFORE_USERMODE) \ + arch/x86/include/asm/sync_core.h \ + include/linux/radix-tree.h \ + include/linux/pid.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) \ + include/uapi/linux/fcntl.h \ + arch/x86/include/generated/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) \ + $(wildcard include/config/BSD_PROCESS_ACCT) \ + $(wildcard include/config/TASKSTATS) \ + $(wildcard include/config/STACK_GROWSUP) \ + include/linux/signal.h \ + $(wildcard include/config/DYNAMIC_SIGFRAME) \ + include/linux/sched/jobctl.h \ + include/linux/sched/task.h \ + $(wildcard include/config/HAVE_EXIT_THREAD) \ + $(wildcard include/config/ARCH_WANTS_DYNAMIC_TASK_STRUCT) \ + $(wildcard include/config/HAVE_ARCH_THREAD_STRUCT_WHITELIST) \ + include/linux/uaccess.h \ + $(wildcard include/config/ARCH_HAS_SUBPAGE_FAULTS) \ + include/linux/fault-inject-usercopy.h \ + $(wildcard include/config/FAULT_INJECTION_USERCOPY) \ + arch/x86/include/asm/uaccess.h \ + $(wildcard include/config/CC_HAS_ASM_GOTO_OUTPUT) \ + $(wildcard include/config/CC_HAS_ASM_GOTO_TIED_OUTPUT) \ + $(wildcard include/config/X86_INTEL_USERCOPY) \ + include/linux/mmap_lock.h \ + arch/x86/include/asm/smap.h \ + arch/x86/include/asm/extable.h \ + $(wildcard include/config/BPF_JIT) \ + arch/x86/include/asm/tlbflush.h \ + include/linux/mmu_notifier.h \ + include/linux/interval_tree.h \ + arch/x86/include/asm/invpcid.h \ + arch/x86/include/asm/pti.h \ + arch/x86/include/asm/pgtable.h \ + $(wildcard include/config/DEBUG_WX) \ + $(wildcard include/config/HAVE_ARCH_TRANSPARENT_HUGEPAGE_PUD) \ + $(wildcard include/config/ARCH_HAS_PTE_DEVMAP) \ + $(wildcard include/config/HAVE_ARCH_SOFT_DIRTY) \ + $(wildcard include/config/ARCH_ENABLE_THP_MIGRATION) \ + $(wildcard include/config/PAGE_TABLE_CHECK) \ + arch/x86/include/asm/pkru.h \ + arch/x86/include/asm/fpu/api.h \ + $(wildcard include/config/X86_DEBUG_FPU) \ + arch/x86/include/asm/coco.h \ + include/asm-generic/pgtable_uffd.h \ + include/linux/page_table_check.h \ + arch/x86/include/asm/pgtable_64.h \ + arch/x86/include/asm/fixmap.h \ + $(wildcard include/config/PROVIDE_OHCI1394_DMA_INIT) \ + $(wildcard include/config/X86_IO_APIC) \ + $(wildcard include/config/PCI_MMCONFIG) \ + $(wildcard include/config/ACPI_APEI_GHES) \ + $(wildcard include/config/INTEL_TXT) \ + arch/x86/include/uapi/asm/vsyscall.h \ + include/asm-generic/fixmap.h \ + arch/x86/include/asm/pgtable-invert.h \ + arch/x86/include/asm/uaccess_64.h \ + include/asm-generic/access_ok.h \ + $(wildcard include/config/ALTERNATE_USER_ADDRESS_SPACE) \ + include/linux/cred.h \ + include/linux/key.h \ + $(wildcard include/config/KEY_NOTIFICATIONS) \ + $(wildcard include/config/NET) \ + include/linux/assoc_array.h \ + $(wildcard include/config/ASSOCIATIVE_ARRAY) \ + include/linux/sched/user.h \ + $(wildcard include/config/VFIO_PCI_ZDEV_KVM) \ + $(wildcard include/config/IOMMUFD) \ + $(wildcard include/config/WATCH_QUEUE) \ + include/linux/ratelimit.h \ + include/linux/posix-timers.h \ + include/linux/alarmtimer.h \ + $(wildcard include/config/RTC_CLASS) \ + include/linux/hrtimer.h \ + $(wildcard include/config/HIGH_RES_TIMERS) \ + $(wildcard include/config/TIME_LOW_RES) \ + $(wildcard include/config/TIMERFD) \ + include/linux/hrtimer_defs.h \ + include/linux/timerqueue.h \ + include/linux/rcu_sync.h \ + include/linux/delayed_call.h \ + include/linux/uuid.h \ + include/linux/errseq.h \ + include/linux/ioprio.h \ + include/linux/sched/rt.h \ + include/linux/iocontext.h \ + $(wildcard include/config/BLK_ICQ) \ + include/uapi/linux/ioprio.h \ + include/linux/fs_types.h \ + include/linux/mount.h \ + include/linux/mnt_idmapping.h \ + include/linux/slab.h \ + $(wildcard include/config/SLUB_DEBUG) \ + $(wildcard include/config/SLUB_TINY) \ + $(wildcard include/config/FAILSLAB) \ + $(wildcard include/config/KFENCE) \ + include/linux/percpu-refcount.h \ + include/linux/kasan.h \ + $(wildcard include/config/KASAN_STACK) \ + $(wildcard include/config/KASAN_VMALLOC) \ + include/linux/kasan-enabled.h \ + include/linux/kasan-tags.h \ + include/uapi/linux/fs.h \ + include/linux/quota.h \ + $(wildcard include/config/QUOTA_NETLINK_INTERFACE) \ + 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/uapi/linux/aio_abi.h \ + include/uapi/linux/unistd.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/generated/asm/unistd_32_ia32.h \ + arch/x86/include/asm/compat.h \ + include/linux/sched/task_stack.h \ + $(wildcard include/config/DEBUG_STACK_USAGE) \ + include/uapi/linux/magic.h \ + arch/x86/include/asm/user32.h \ + include/asm-generic/compat.h \ + $(wildcard include/config/COMPAT_FOR_U64_ALIGNMENT) \ + arch/x86/include/asm/syscall_wrapper.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 \ + include/uapi/linux/elf.h \ + include/uapi/linux/elf-em.h \ + include/linux/kobject.h \ + $(wildcard include/config/UEVENT_HELPER) \ + $(wildcard include/config/DEBUG_KOBJECT_RELEASE) \ + include/linux/sysfs.h \ + include/linux/kernfs.h \ + $(wildcard include/config/KERNFS) \ + include/linux/idr.h \ + include/linux/kobject_ns.h \ + include/linux/moduleparam.h \ + $(wildcard include/config/ALPHA) \ + $(wildcard include/config/PPC64) \ + include/linux/rbtree_latch.h \ + include/linux/error-injection.h \ + include/asm-generic/error-injection.h \ + arch/x86/include/asm/module.h \ + include/asm-generic/module.h \ + $(wildcard include/config/HAVE_MOD_ARCH_SPECIFIC) \ + $(wildcard include/config/MODULES_USE_ELF_REL) \ + $(wildcard include/config/MODULES_USE_ELF_RELA) \ + include/linux/build-salt.h \ + $(wildcard include/config/BUILD_SALT) \ + include/linux/elfnote.h \ + include/linux/elfnote-lto.h \ + $(wildcard include/config/LTO) \ + include/linux/export-internal.h \ + $(wildcard include/config/PARISC) \ + include/linux/vermagic.h \ + $(wildcard include/config/PREEMPT_BUILD) \ + include/generated/utsrelease.h \ + arch/x86/include/asm/vermagic.h \ + $(wildcard include/config/M486SX) \ + $(wildcard include/config/M486) \ + $(wildcard include/config/M586) \ + $(wildcard include/config/M586TSC) \ + $(wildcard include/config/M586MMX) \ + $(wildcard include/config/MCORE2) \ + $(wildcard include/config/M686) \ + $(wildcard include/config/MPENTIUMII) \ + $(wildcard include/config/MPENTIUMIII) \ + $(wildcard include/config/MPENTIUMM) \ + $(wildcard include/config/MPENTIUM4) \ + $(wildcard include/config/MK6) \ + $(wildcard include/config/MK7) \ + $(wildcard include/config/MK8) \ + $(wildcard include/config/MELAN) \ + $(wildcard include/config/MCRUSOE) \ + $(wildcard include/config/MEFFICEON) \ + $(wildcard include/config/MWINCHIPC6) \ + $(wildcard include/config/MWINCHIP3D) \ + $(wildcard include/config/MCYRIXIII) \ + $(wildcard include/config/MVIAC3_2) \ + $(wildcard include/config/MVIAC7) \ + $(wildcard include/config/MGEODEGX1) \ + $(wildcard include/config/MGEODE_LX) \ + +/home/junet/driver-tutorial/kernel_timer/demo_timer_driver.mod.o: $(deps_/home/junet/driver-tutorial/kernel_timer/demo_timer_driver.mod.o) + +$(deps_/home/junet/driver-tutorial/kernel_timer/demo_timer_driver.mod.o): diff --git a/kernel_timer/.demo_timer_driver.o.cmd b/kernel_timer/.demo_timer_driver.o.cmd new file mode 100644 index 0000000..6b5854d --- /dev/null +++ b/kernel_timer/.demo_timer_driver.o.cmd @@ -0,0 +1,1079 @@ +savedcmd_/home/junet/driver-tutorial/kernel_timer/demo_timer_driver.o := gcc-13 -Wp,-MMD,/home/junet/driver-tutorial/kernel_timer/.demo_timer_driver.o.d -nostdinc -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/compiler-version.h -include ./include/linux/kconfig.h -I./ubuntu/include -include ./include/linux/compiler_types.h -D__KERNEL__ -fmacro-prefix-map=./= -std=gnu11 -fshort-wchar -funsigned-char -fno-common -fno-PIE -fno-strict-aliasing -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 -Wno-sign-compare -fno-asynchronous-unwind-tables -mindirect-branch=thunk-extern -mindirect-branch-register -mindirect-branch-cs-prefix -mfunction-return=thunk-extern -fno-jump-tables -mharden-sls=all -fpatchable-function-entry=16,16 -fno-delete-null-pointer-checks -O2 -fno-allow-store-data-races -fstack-protector-strong -fno-omit-frame-pointer -fno-optimize-sibling-calls -ftrivial-auto-var-init=zero -fno-stack-clash-protection -fzero-call-used-regs=used-gpr -pg -mrecord-mcount -mfentry -DCC_USING_FENTRY -falign-functions=16 -fstrict-flex-arrays=3 -fno-strict-overflow -fno-stack-check -fconserve-stack -Wall -Wundef -Werror=implicit-function-declaration -Werror=implicit-int -Werror=return-type -Werror=strict-prototypes -Wno-format-security -Wno-trigraphs -Wno-frame-address -Wno-address-of-packed-member -Wmissing-declarations -Wmissing-prototypes -Wframe-larger-than=1024 -Wno-main -Wno-unused-but-set-variable -Wno-unused-const-variable -Wno-dangling-pointer -Wvla -Wno-pointer-sign -Wcast-function-type -Wno-stringop-overflow -Wno-array-bounds -Wno-alloc-size-larger-than -Wimplicit-fallthrough=5 -Werror=date-time -Werror=incompatible-pointer-types -Werror=designated-init -Wenum-conversion -Wno-unused-but-set-variable -Wno-unused-const-variable -Wno-restrict -Wno-packed-not-aligned -Wno-format-overflow -Wno-format-truncation -Wno-stringop-truncation -Wno-override-init -Wno-missing-field-initializers -Wno-type-limits -Wno-shift-negative-value -Wno-maybe-uninitialized -Wno-sign-compare -g -gdwarf-5 -fsanitize=bounds-strict -fsanitize=shift -fsanitize=bool -fsanitize=enum -DMODULE -DKBUILD_BASENAME='"demo_timer_driver"' -DKBUILD_MODNAME='"demo_timer_driver"' -D__KBUILD_MODNAME=kmod_demo_timer_driver -c -o /home/junet/driver-tutorial/kernel_timer/demo_timer_driver.o /home/junet/driver-tutorial/kernel_timer/demo_timer_driver.c ; ./tools/objtool/objtool --hacks=jump_label --hacks=noinstr --hacks=skylake --retpoline --rethunk --sls --stackval --static-call --uaccess --prefix=16 --module /home/junet/driver-tutorial/kernel_timer/demo_timer_driver.o + +source_/home/junet/driver-tutorial/kernel_timer/demo_timer_driver.o := /home/junet/driver-tutorial/kernel_timer/demo_timer_driver.c + +deps_/home/junet/driver-tutorial/kernel_timer/demo_timer_driver.o := \ + include/linux/compiler-version.h \ + $(wildcard include/config/CC_VERSION_TEXT) \ + include/linux/kconfig.h \ + $(wildcard include/config/CPU_BIG_ENDIAN) \ + $(wildcard include/config/BOOGER) \ + $(wildcard include/config/FOO) \ + include/linux/compiler_types.h \ + $(wildcard include/config/DEBUG_INFO_BTF) \ + $(wildcard include/config/PAHOLE_HAS_BTF_TAG) \ + $(wildcard include/config/FUNCTION_ALIGNMENT) \ + $(wildcard include/config/CC_IS_GCC) \ + $(wildcard include/config/X86_64) \ + $(wildcard include/config/ARM64) \ + $(wildcard include/config/HAVE_ARCH_COMPILER_H) \ + $(wildcard include/config/CC_HAS_ASM_INLINE) \ + include/linux/compiler_attributes.h \ + include/linux/compiler-gcc.h \ + $(wildcard include/config/RETPOLINE) \ + $(wildcard include/config/GCC_ASM_GOTO_OUTPUT_WORKAROUND) \ + $(wildcard include/config/ARCH_USE_BUILTIN_BSWAP) \ + $(wildcard include/config/SHADOW_CALL_STACK) \ + $(wildcard include/config/KCOV) \ + include/linux/kernel.h \ + $(wildcard include/config/PREEMPT_VOLUNTARY_BUILD) \ + $(wildcard include/config/PREEMPT_DYNAMIC) \ + $(wildcard include/config/HAVE_PREEMPT_DYNAMIC_CALL) \ + $(wildcard include/config/HAVE_PREEMPT_DYNAMIC_KEY) \ + $(wildcard include/config/PREEMPT_) \ + $(wildcard include/config/DEBUG_ATOMIC_SLEEP) \ + $(wildcard include/config/SMP) \ + $(wildcard include/config/MMU) \ + $(wildcard include/config/PROVE_LOCKING) \ + $(wildcard include/config/TRACING) \ + $(wildcard include/config/FTRACE_MCOUNT_RECORD) \ + include/linux/stdarg.h \ + include/linux/align.h \ + include/linux/const.h \ + include/vdso/const.h \ + include/uapi/linux/const.h \ + include/linux/array_size.h \ + include/linux/compiler.h \ + $(wildcard include/config/TRACE_BRANCH_PROFILING) \ + $(wildcard include/config/PROFILE_ALL_BRANCHES) \ + $(wildcard include/config/OBJTOOL) \ + arch/x86/include/generated/asm/rwonce.h \ + include/asm-generic/rwonce.h \ + include/linux/kasan-checks.h \ + $(wildcard include/config/KASAN_GENERIC) \ + $(wildcard include/config/KASAN_SW_TAGS) \ + include/linux/types.h \ + $(wildcard include/config/HAVE_UID16) \ + $(wildcard include/config/UID16) \ + $(wildcard include/config/ARCH_DMA_ADDR_T_64BIT) \ + $(wildcard include/config/PHYS_ADDR_T_64BIT) \ + $(wildcard include/config/64BIT) \ + $(wildcard include/config/ARCH_32BIT_USTAT_F_TINODE) \ + 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 \ + arch/x86/include/asm/posix_types.h \ + $(wildcard include/config/X86_32) \ + arch/x86/include/uapi/asm/posix_types_64.h \ + include/uapi/asm-generic/posix_types.h \ + include/linux/kcsan-checks.h \ + $(wildcard include/config/KCSAN) \ + $(wildcard include/config/KCSAN_WEAK_MEMORY) \ + $(wildcard include/config/KCSAN_IGNORE_ATOMICS) \ + include/linux/limits.h \ + include/uapi/linux/limits.h \ + include/vdso/limits.h \ + include/linux/linkage.h \ + $(wildcard include/config/ARCH_USE_SYM_ANNOTATIONS) \ + include/linux/stringify.h \ + include/linux/export.h \ + $(wildcard include/config/MODVERSIONS) \ + arch/x86/include/asm/linkage.h \ + $(wildcard include/config/CALL_PADDING) \ + $(wildcard include/config/RETHUNK) \ + $(wildcard include/config/SLS) \ + $(wildcard include/config/FUNCTION_PADDING_BYTES) \ + $(wildcard include/config/UML) \ + arch/x86/include/asm/ibt.h \ + $(wildcard include/config/X86_KERNEL_IBT) \ + include/linux/container_of.h \ + include/linux/build_bug.h \ + include/linux/bitops.h \ + include/linux/bits.h \ + include/vdso/bits.h \ + include/linux/typecheck.h \ + include/uapi/linux/kernel.h \ + include/uapi/linux/sysinfo.h \ + include/asm-generic/bitops/generic-non-atomic.h \ + arch/x86/include/asm/barrier.h \ + arch/x86/include/asm/alternative.h \ + $(wildcard include/config/CALL_THUNKS) \ + arch/x86/include/asm/asm.h \ + $(wildcard include/config/KPROBES) \ + arch/x86/include/asm/extable_fixup_types.h \ + arch/x86/include/asm/nops.h \ + include/asm-generic/barrier.h \ + arch/x86/include/asm/bitops.h \ + $(wildcard include/config/X86_CMOV) \ + arch/x86/include/asm/rmwcc.h \ + include/linux/args.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) \ + $(wildcard include/config/MATH_EMULATION) \ + $(wildcard include/config/X86_PAE) \ + $(wildcard include/config/X86_CMPXCHG64) \ + $(wildcard include/config/X86_P6_NOP) \ + $(wildcard include/config/MATOM) \ + $(wildcard include/config/PARAVIRT_XXL) \ + arch/x86/include/asm/disabled-features.h \ + $(wildcard include/config/X86_UMIP) \ + $(wildcard include/config/X86_INTEL_MEMORY_PROTECTION_KEYS) \ + $(wildcard include/config/X86_5LEVEL) \ + $(wildcard include/config/PAGE_TABLE_ISOLATION) \ + $(wildcard include/config/CPU_UNRET_ENTRY) \ + $(wildcard include/config/CALL_DEPTH_TRACKING) \ + $(wildcard include/config/ADDRESS_MASKING) \ + $(wildcard include/config/INTEL_IOMMU_SVM) \ + $(wildcard include/config/X86_SGX) \ + $(wildcard include/config/XEN_PV) \ + $(wildcard include/config/INTEL_TDX_GUEST) \ + $(wildcard include/config/X86_USER_SHADOW_STACK) \ + include/asm-generic/bitops/const_hweight.h \ + include/asm-generic/bitops/instrumented-atomic.h \ + include/linux/instrumented.h \ + include/linux/kmsan-checks.h \ + $(wildcard include/config/KMSAN) \ + include/asm-generic/bitops/instrumented-non-atomic.h \ + $(wildcard include/config/KCSAN_ASSUME_PLAIN_WRITES_ATOMIC) \ + include/asm-generic/bitops/instrumented-lock.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/hex.h \ + include/linux/kstrtox.h \ + include/linux/log2.h \ + $(wildcard include/config/ARCH_HAS_ILOG2_U32) \ + $(wildcard include/config/ARCH_HAS_ILOG2_U64) \ + include/linux/math.h \ + arch/x86/include/asm/div64.h \ + include/asm-generic/div64.h \ + include/linux/minmax.h \ + include/linux/panic.h \ + $(wildcard include/config/PANIC_TIMEOUT) \ + include/linux/printk.h \ + $(wildcard include/config/MESSAGE_LOGLEVEL_DEFAULT) \ + $(wildcard include/config/CONSOLE_LOGLEVEL_DEFAULT) \ + $(wildcard include/config/CONSOLE_LOGLEVEL_QUIET) \ + $(wildcard include/config/EARLY_PRINTK) \ + $(wildcard include/config/PRINTK) \ + $(wildcard include/config/PRINTK_INDEX) \ + $(wildcard include/config/DYNAMIC_DEBUG) \ + $(wildcard include/config/DYNAMIC_DEBUG_CORE) \ + include/linux/init.h \ + $(wildcard include/config/HAVE_ARCH_PREL32_RELOCATIONS) \ + $(wildcard include/config/STRICT_KERNEL_RWX) \ + $(wildcard include/config/STRICT_MODULE_RWX) \ + $(wildcard include/config/LTO_CLANG) \ + include/linux/kern_levels.h \ + include/linux/ratelimit_types.h \ + include/uapi/linux/param.h \ + arch/x86/include/generated/uapi/asm/param.h \ + include/asm-generic/param.h \ + $(wildcard include/config/HZ) \ + include/uapi/asm-generic/param.h \ + include/linux/spinlock_types_raw.h \ + $(wildcard include/config/DEBUG_SPINLOCK) \ + $(wildcard include/config/DEBUG_LOCK_ALLOC) \ + arch/x86/include/asm/spinlock_types.h \ + include/asm-generic/qspinlock_types.h \ + $(wildcard include/config/NR_CPUS) \ + include/asm-generic/qrwlock_types.h \ + include/linux/lockdep_types.h \ + $(wildcard include/config/PROVE_RAW_LOCK_NESTING) \ + $(wildcard include/config/LOCKDEP) \ + $(wildcard include/config/LOCK_STAT) \ + include/linux/once_lite.h \ + include/linux/dynamic_debug.h \ + $(wildcard include/config/JUMP_LABEL) \ + include/linux/jump_label.h \ + $(wildcard include/config/HAVE_ARCH_JUMP_LABEL_RELATIVE) \ + arch/x86/include/asm/jump_label.h \ + $(wildcard include/config/HAVE_JUMP_LABEL_HACK) \ + include/linux/sprintf.h \ + include/linux/static_call_types.h \ + $(wildcard include/config/HAVE_STATIC_CALL) \ + $(wildcard include/config/HAVE_STATIC_CALL_INLINE) \ + include/linux/instruction_pointer.h \ + include/linux/module.h \ + $(wildcard include/config/MODULES) \ + $(wildcard include/config/SYSFS) \ + $(wildcard include/config/MODULES_TREE_LOOKUP) \ + $(wildcard include/config/LIVEPATCH) \ + $(wildcard include/config/STACKTRACE_BUILD_ID) \ + $(wildcard include/config/ARCH_USES_CFI_TRAPS) \ + $(wildcard include/config/MODULE_SIG) \ + $(wildcard include/config/GENERIC_BUG) \ + $(wildcard include/config/KALLSYMS) \ + $(wildcard include/config/TRACEPOINTS) \ + $(wildcard include/config/TREE_SRCU) \ + $(wildcard include/config/BPF_EVENTS) \ + $(wildcard include/config/DEBUG_INFO_BTF_MODULES) \ + $(wildcard include/config/EVENT_TRACING) \ + $(wildcard include/config/KUNIT) \ + $(wildcard include/config/MODULE_UNLOAD) \ + $(wildcard include/config/CONSTRUCTORS) \ + $(wildcard include/config/FUNCTION_ERROR_INJECTION) \ + include/linux/list.h \ + $(wildcard include/config/LIST_HARDENED) \ + $(wildcard include/config/DEBUG_LIST) \ + include/linux/poison.h \ + $(wildcard include/config/ILLEGAL_POINTER_VALUE) \ + include/linux/stat.h \ + arch/x86/include/uapi/asm/stat.h \ + include/uapi/linux/stat.h \ + include/linux/time.h \ + $(wildcard include/config/POSIX_TIMERS) \ + include/linux/cache.h \ + $(wildcard include/config/ARCH_HAS_CACHE_LINE_SIZE) \ + arch/x86/include/asm/cache.h \ + $(wildcard include/config/X86_L1_CACHE_SHIFT) \ + $(wildcard include/config/X86_INTERNODE_CACHE_SHIFT) \ + $(wildcard include/config/X86_VSMP) \ + include/linux/math64.h \ + $(wildcard include/config/ARCH_SUPPORTS_INT128) \ + 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/x86/include/asm/timex.h \ + $(wildcard include/config/X86_TSC) \ + arch/x86/include/asm/processor.h \ + $(wildcard include/config/X86_VMX_FEATURE_NAMES) \ + $(wildcard include/config/X86_IOPL_IOPERM) \ + $(wildcard include/config/STACKPROTECTOR) \ + $(wildcard include/config/VM86) \ + $(wildcard include/config/X86_DEBUGCTLMSR) \ + $(wildcard include/config/CPU_SUP_AMD) \ + $(wildcard include/config/XEN) \ + arch/x86/include/asm/processor-flags.h \ + arch/x86/include/uapi/asm/processor-flags.h \ + include/linux/mem_encrypt.h \ + $(wildcard include/config/ARCH_HAS_MEM_ENCRYPT) \ + $(wildcard include/config/AMD_MEM_ENCRYPT) \ + arch/x86/include/asm/mem_encrypt.h \ + $(wildcard include/config/X86_MEM_ENCRYPT) \ + include/linux/cc_platform.h \ + $(wildcard include/config/ARCH_HAS_CC_PLATFORM) \ + arch/x86/include/asm/math_emu.h \ + arch/x86/include/asm/ptrace.h \ + $(wildcard include/config/PARAVIRT) \ + $(wildcard include/config/IA32_EMULATION) \ + arch/x86/include/asm/segment.h \ + arch/x86/include/asm/page_types.h \ + $(wildcard include/config/PHYSICAL_START) \ + $(wildcard include/config/PHYSICAL_ALIGN) \ + $(wildcard include/config/DYNAMIC_PHYSICAL_MASK) \ + arch/x86/include/asm/page_64_types.h \ + $(wildcard include/config/KASAN) \ + $(wildcard include/config/DYNAMIC_MEMORY_LAYOUT) \ + $(wildcard include/config/RANDOMIZE_BASE) \ + arch/x86/include/asm/kaslr.h \ + $(wildcard include/config/RANDOMIZE_MEMORY) \ + 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) \ + $(wildcard include/config/ZERO_CALL_USED_REGS) \ + $(wildcard include/config/PARAVIRT_DEBUG) \ + arch/x86/include/asm/desc_defs.h \ + arch/x86/include/asm/pgtable_types.h \ + $(wildcard include/config/MEM_SOFT_DIRTY) \ + $(wildcard include/config/HAVE_ARCH_USERFAULTFD_WP) \ + $(wildcard include/config/PROC_FS) \ + arch/x86/include/asm/pgtable_64_types.h \ + $(wildcard include/config/DEBUG_KMAP_LOCAL_FORCE_MAP) \ + arch/x86/include/asm/sparsemem.h \ + $(wildcard include/config/SPARSEMEM) \ + $(wildcard include/config/NUMA_KEEP_MEMINFO) \ + arch/x86/include/asm/nospec-branch.h \ + $(wildcard include/config/CALL_THUNKS_DEBUG) \ + $(wildcard include/config/NOINSTR_VALIDATION) \ + $(wildcard include/config/CPU_SRSO) \ + $(wildcard include/config/CPU_IBPB_ENTRY) \ + include/linux/static_key.h \ + include/linux/objtool.h \ + $(wildcard include/config/FRAME_POINTER) \ + include/linux/objtool_types.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/percpu.h \ + $(wildcard include/config/X86_64_SMP) \ + include/asm-generic/percpu.h \ + $(wildcard include/config/DEBUG_PREEMPT) \ + $(wildcard include/config/HAVE_SETUP_PER_CPU_AREA) \ + include/linux/threads.h \ + $(wildcard include/config/BASE_SMALL) \ + include/linux/percpu-defs.h \ + $(wildcard include/config/DEBUG_FORCE_WEAK_PER_CPU) \ + arch/x86/include/asm/current.h \ + arch/x86/include/asm/asm-offsets.h \ + include/generated/asm-offsets.h \ + arch/x86/include/asm/GEN-for-each-reg.h \ + arch/x86/include/asm/proto.h \ + arch/x86/include/uapi/asm/ldt.h \ + arch/x86/include/uapi/asm/sigcontext.h \ + arch/x86/include/asm/cpuid.h \ + arch/x86/include/asm/string.h \ + arch/x86/include/asm/string_64.h \ + $(wildcard include/config/ARCH_HAS_UACCESS_FLUSHCACHE) \ + arch/x86/include/asm/paravirt.h \ + $(wildcard include/config/PARAVIRT_SPINLOCKS) \ + $(wildcard include/config/DEBUG_ENTRY) \ + include/linux/bug.h \ + $(wildcard include/config/BUG_ON_DATA_CORRUPTION) \ + arch/x86/include/asm/bug.h \ + $(wildcard include/config/DEBUG_BUGVERBOSE) \ + include/linux/instrumentation.h \ + include/asm-generic/bug.h \ + $(wildcard include/config/BUG) \ + $(wildcard include/config/GENERIC_BUG_RELATIVE_POINTERS) \ + include/linux/cpumask.h \ + $(wildcard include/config/FORCE_NR_CPUS) \ + $(wildcard include/config/HOTPLUG_CPU) \ + $(wildcard include/config/DEBUG_PER_CPU_MAPS) \ + $(wildcard include/config/CPUMASK_OFFSTACK) \ + include/linux/bitmap.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 \ + include/linux/find.h \ + include/linux/string.h \ + $(wildcard include/config/BINARY_PRINTF) \ + $(wildcard include/config/FORTIFY_SOURCE) \ + include/linux/err.h \ + include/linux/overflow.h \ + include/uapi/linux/string.h \ + include/linux/fortify-string.h \ + $(wildcard include/config/CC_HAS_KASAN_MEMINTRINSIC_PREFIX) \ + $(wildcard include/config/GENERIC_ENTRY) \ + include/linux/bitmap-str.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/linux/atomic/atomic-arch-fallback.h \ + $(wildcard include/config/GENERIC_ATOMIC64) \ + include/linux/atomic/atomic-long.h \ + include/linux/atomic/atomic-instrumented.h \ + include/linux/gfp_types.h \ + $(wildcard include/config/KASAN_HW_TAGS) \ + include/linux/numa.h \ + $(wildcard include/config/NODES_SHIFT) \ + $(wildcard include/config/NUMA) \ + $(wildcard include/config/HAVE_ARCH_NODE_DEV_GROUP) \ + arch/x86/include/asm/frame.h \ + arch/x86/include/asm/page.h \ + arch/x86/include/asm/page_64.h \ + $(wildcard include/config/DEBUG_VIRTUAL) \ + $(wildcard include/config/X86_VSYSCALL_EMULATION) \ + include/linux/range.h \ + include/asm-generic/memory_model.h \ + $(wildcard include/config/FLATMEM) \ + $(wildcard include/config/SPARSEMEM_VMEMMAP) \ + include/linux/pfn.h \ + include/asm-generic/getorder.h \ + arch/x86/include/asm/msr.h \ + arch/x86/include/asm/cpumask.h \ + arch/x86/include/uapi/asm/msr.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 \ + arch/x86/include/asm/shared/msr.h \ + include/linux/tracepoint-defs.h \ + arch/x86/include/asm/special_insns.h \ + include/linux/irqflags.h \ + $(wildcard include/config/TRACE_IRQFLAGS) \ + $(wildcard include/config/PREEMPT_RT) \ + $(wildcard include/config/IRQSOFF_TRACER) \ + $(wildcard include/config/PREEMPT_TRACER) \ + $(wildcard include/config/DEBUG_IRQFLAGS) \ + $(wildcard include/config/TRACE_IRQFLAGS_SUPPORT) \ + include/linux/irqflags_types.h \ + include/linux/cleanup.h \ + arch/x86/include/asm/irqflags.h \ + arch/x86/include/asm/fpu/types.h \ + arch/x86/include/asm/vmxfeatures.h \ + arch/x86/include/asm/vdso/processor.h \ + arch/x86/include/asm/shstk.h \ + include/linux/personality.h \ + include/uapi/linux/personality.h \ + arch/x86/include/asm/tsc.h \ + arch/x86/include/asm/cpufeature.h \ + include/vdso/time32.h \ + include/vdso/time.h \ + include/linux/uidgid.h \ + $(wildcard include/config/MULTIUSER) \ + $(wildcard include/config/USER_NS) \ + include/linux/uidgid_types.h \ + include/linux/highuid.h \ + include/linux/buildid.h \ + $(wildcard include/config/CRASH_CORE) \ + include/linux/kmod.h \ + include/linux/umh.h \ + include/linux/gfp.h \ + $(wildcard include/config/HIGHMEM) \ + $(wildcard include/config/ZONE_DMA) \ + $(wildcard include/config/ZONE_DMA32) \ + $(wildcard include/config/ZONE_DEVICE) \ + $(wildcard include/config/COMPACTION) \ + $(wildcard include/config/CONTIG_ALLOC) \ + include/linux/mmzone.h \ + $(wildcard include/config/ARCH_FORCE_MAX_ORDER) \ + $(wildcard include/config/CMA) \ + $(wildcard include/config/MEMORY_ISOLATION) \ + $(wildcard include/config/ZSMALLOC) \ + $(wildcard include/config/UNACCEPTED_MEMORY) \ + $(wildcard include/config/SWAP) \ + $(wildcard include/config/NUMA_BALANCING) \ + $(wildcard include/config/TRANSPARENT_HUGEPAGE) \ + $(wildcard include/config/LRU_GEN) \ + $(wildcard include/config/LRU_GEN_STATS) \ + $(wildcard include/config/LRU_GEN_WALKS_MMU) \ + $(wildcard include/config/MEMCG) \ + $(wildcard include/config/MEMORY_HOTPLUG) \ + $(wildcard include/config/MEMORY_FAILURE) \ + $(wildcard include/config/PAGE_EXTENSION) \ + $(wildcard include/config/DEFERRED_STRUCT_PAGE_INIT) \ + $(wildcard include/config/HAVE_MEMORYLESS_NODES) \ + $(wildcard include/config/SPARSEMEM_EXTREME) \ + $(wildcard include/config/HAVE_ARCH_PFN_VALID) \ + include/linux/spinlock.h \ + $(wildcard include/config/PREEMPTION) \ + include/linux/preempt.h \ + $(wildcard include/config/PREEMPT_COUNT) \ + $(wildcard include/config/TRACE_PREEMPT_TOGGLE) \ + $(wildcard include/config/PREEMPT_NOTIFIERS) \ + $(wildcard include/config/PREEMPT_NONE) \ + $(wildcard include/config/PREEMPT_VOLUNTARY) \ + $(wildcard include/config/PREEMPT) \ + arch/x86/include/asm/preempt.h \ + include/linux/thread_info.h \ + $(wildcard include/config/THREAD_INFO_IN_TASK) \ + $(wildcard include/config/HAVE_ARCH_WITHIN_STACK_FRAMES) \ + $(wildcard include/config/HARDENED_USERCOPY) \ + $(wildcard include/config/SH) \ + include/linux/restart_block.h \ + arch/x86/include/asm/thread_info.h \ + $(wildcard include/config/COMPAT) \ + include/linux/bottom_half.h \ + include/linux/lockdep.h \ + $(wildcard include/config/DEBUG_LOCKING_API_SELFTESTS) \ + include/linux/smp.h \ + $(wildcard include/config/UP_LATE_INIT) \ + include/linux/smp_types.h \ + include/linux/llist.h \ + $(wildcard include/config/ARCH_HAVE_NMI_SAFE_CMPXCHG) \ + arch/x86/include/asm/smp.h \ + $(wildcard include/config/DEBUG_NMI_SELFTEST) \ + arch/x86/include/generated/asm/mmiowb.h \ + include/asm-generic/mmiowb.h \ + $(wildcard include/config/MMIOWB) \ + include/linux/spinlock_types.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 \ + include/linux/spinlock_api_smp.h \ + $(wildcard include/config/INLINE_SPIN_LOCK) \ + $(wildcard include/config/INLINE_SPIN_LOCK_BH) \ + $(wildcard include/config/INLINE_SPIN_LOCK_IRQ) \ + $(wildcard include/config/INLINE_SPIN_LOCK_IRQSAVE) \ + $(wildcard include/config/INLINE_SPIN_TRYLOCK) \ + $(wildcard include/config/INLINE_SPIN_TRYLOCK_BH) \ + $(wildcard include/config/UNINLINE_SPIN_UNLOCK) \ + $(wildcard include/config/INLINE_SPIN_UNLOCK_BH) \ + $(wildcard include/config/INLINE_SPIN_UNLOCK_IRQ) \ + $(wildcard include/config/INLINE_SPIN_UNLOCK_IRQRESTORE) \ + $(wildcard include/config/GENERIC_LOCKBREAK) \ + include/linux/rwlock_api_smp.h \ + $(wildcard include/config/INLINE_READ_LOCK) \ + $(wildcard include/config/INLINE_WRITE_LOCK) \ + $(wildcard include/config/INLINE_READ_LOCK_BH) \ + $(wildcard include/config/INLINE_WRITE_LOCK_BH) \ + $(wildcard include/config/INLINE_READ_LOCK_IRQ) \ + $(wildcard include/config/INLINE_WRITE_LOCK_IRQ) \ + $(wildcard include/config/INLINE_READ_LOCK_IRQSAVE) \ + $(wildcard include/config/INLINE_WRITE_LOCK_IRQSAVE) \ + $(wildcard include/config/INLINE_READ_TRYLOCK) \ + $(wildcard include/config/INLINE_WRITE_TRYLOCK) \ + $(wildcard include/config/INLINE_READ_UNLOCK) \ + $(wildcard include/config/INLINE_WRITE_UNLOCK) \ + $(wildcard include/config/INLINE_READ_UNLOCK_BH) \ + $(wildcard include/config/INLINE_WRITE_UNLOCK_BH) \ + $(wildcard include/config/INLINE_READ_UNLOCK_IRQ) \ + $(wildcard include/config/INLINE_WRITE_UNLOCK_IRQ) \ + $(wildcard include/config/INLINE_READ_UNLOCK_IRQRESTORE) \ + $(wildcard include/config/INLINE_WRITE_UNLOCK_IRQRESTORE) \ + include/linux/list_nulls.h \ + include/linux/wait.h \ + include/linux/seqlock.h \ + include/linux/mutex.h \ + $(wildcard include/config/DEBUG_MUTEXES) \ + include/linux/osq_lock.h \ + include/linux/debug_locks.h \ + include/linux/mutex_types.h \ + $(wildcard include/config/MUTEX_SPIN_ON_OWNER) \ + include/linux/seqlock_types.h \ + include/linux/nodemask.h \ + include/linux/nodemask_types.h \ + include/linux/random.h \ + $(wildcard include/config/VMGENID) \ + include/uapi/linux/random.h \ + include/linux/irqnr.h \ + include/uapi/linux/irqnr.h \ + include/linux/prandom.h \ + include/linux/once.h \ + include/linux/pageblock-flags.h \ + $(wildcard include/config/HUGETLB_PAGE) \ + $(wildcard include/config/HUGETLB_PAGE_SIZE_VARIABLE) \ + include/linux/page-flags-layout.h \ + include/generated/bounds.h \ + include/linux/mm_types.h \ + $(wildcard include/config/HAVE_ALIGNED_STRUCT_PAGE) \ + $(wildcard include/config/USERFAULTFD) \ + $(wildcard include/config/ANON_VMA_NAME) \ + $(wildcard include/config/PER_VMA_LOCK) \ + $(wildcard include/config/SCHED_MM_CID) \ + $(wildcard include/config/HAVE_ARCH_COMPAT_MMAP_BASES) \ + $(wildcard include/config/MEMBARRIER) \ + $(wildcard include/config/AIO) \ + $(wildcard include/config/MMU_NOTIFIER) \ + $(wildcard include/config/ARCH_WANT_BATCHED_UNMAP_TLB_FLUSH) \ + $(wildcard include/config/IOMMU_MM_DATA) \ + $(wildcard include/config/KSM) \ + include/linux/mm_types_task.h \ + $(wildcard include/config/SPLIT_PTLOCK_CPUS) \ + $(wildcard include/config/ARCH_ENABLE_SPLIT_PMD_PTLOCK) \ + arch/x86/include/asm/tlbbatch.h \ + include/linux/auxvec.h \ + include/uapi/linux/auxvec.h \ + arch/x86/include/uapi/asm/auxvec.h \ + include/linux/kref.h \ + include/linux/refcount.h \ + include/linux/refcount_types.h \ + include/linux/rbtree.h \ + include/linux/rbtree_types.h \ + include/linux/rcupdate.h \ + $(wildcard include/config/PREEMPT_RCU) \ + $(wildcard include/config/TINY_RCU) \ + $(wildcard include/config/RCU_STRICT_GRACE_PERIOD) \ + $(wildcard include/config/RCU_LAZY) \ + $(wildcard include/config/TASKS_RCU_GENERIC) \ + $(wildcard include/config/RCU_STALL_COMMON) \ + $(wildcard include/config/NO_HZ_FULL) \ + $(wildcard include/config/KVM_XFER_TO_GUEST_WORK) \ + $(wildcard include/config/RCU_NOCB_CPU) \ + $(wildcard include/config/TASKS_RCU) \ + $(wildcard include/config/TASKS_TRACE_RCU) \ + $(wildcard include/config/TASKS_RUDE_RCU) \ + $(wildcard include/config/TREE_RCU) \ + $(wildcard include/config/DEBUG_OBJECTS_RCU_HEAD) \ + $(wildcard include/config/PROVE_RCU) \ + $(wildcard include/config/ARCH_WEAK_RELEASE_ACQUIRE) \ + include/linux/context_tracking_irq.h \ + $(wildcard include/config/CONTEXT_TRACKING_IDLE) \ + include/linux/rcutree.h \ + include/linux/maple_tree.h \ + $(wildcard include/config/MAPLE_RCU_DISABLED) \ + $(wildcard include/config/DEBUG_MAPLE_TREE) \ + include/linux/rwsem.h \ + $(wildcard include/config/RWSEM_SPIN_ON_OWNER) \ + $(wildcard include/config/DEBUG_RWSEMS) \ + include/linux/completion.h \ + include/linux/swait.h \ + include/linux/uprobes.h \ + $(wildcard include/config/UPROBES) \ + arch/x86/include/asm/uprobes.h \ + include/linux/notifier.h \ + include/linux/srcu.h \ + $(wildcard include/config/TINY_SRCU) \ + $(wildcard include/config/NEED_SRCU_NMI_SAFE) \ + include/linux/workqueue.h \ + $(wildcard include/config/DEBUG_OBJECTS_WORK) \ + $(wildcard include/config/FREEZER) \ + $(wildcard include/config/WQ_WATCHDOG) \ + include/linux/timer.h \ + $(wildcard include/config/DEBUG_OBJECTS_TIMERS) \ + include/linux/ktime.h \ + include/linux/jiffies.h \ + include/vdso/jiffies.h \ + include/generated/timeconst.h \ + include/vdso/ktime.h \ + include/linux/timekeeping.h \ + $(wildcard include/config/GENERIC_CMOS_UPDATE) \ + include/linux/clocksource_ids.h \ + include/linux/debugobjects.h \ + $(wildcard include/config/DEBUG_OBJECTS) \ + $(wildcard include/config/DEBUG_OBJECTS_FREE) \ + include/linux/timer_types.h \ + include/linux/workqueue_types.h \ + include/linux/rcu_segcblist.h \ + include/linux/srcutree.h \ + include/linux/rcu_node_tree.h \ + $(wildcard include/config/RCU_FANOUT) \ + $(wildcard include/config/RCU_FANOUT_LEAF) \ + include/linux/percpu_counter.h \ + include/linux/percpu.h \ + $(wildcard include/config/RANDOM_KMALLOC_CACHES) \ + $(wildcard include/config/NEED_PER_CPU_PAGE_FIRST_CHUNK) \ + include/linux/mmdebug.h \ + $(wildcard include/config/DEBUG_VM) \ + $(wildcard include/config/DEBUG_VM_IRQSOFF) \ + $(wildcard include/config/DEBUG_VM_PGFLAGS) \ + arch/x86/include/asm/mmu.h \ + $(wildcard include/config/MODIFY_LDT_SYSCALL) \ + include/linux/page-flags.h \ + $(wildcard include/config/ARCH_USES_PG_UNCACHED) \ + $(wildcard include/config/PAGE_IDLE_FLAG) \ + $(wildcard include/config/ARCH_USES_PG_ARCH_X) \ + $(wildcard include/config/HUGETLB_PAGE_OPTIMIZE_VMEMMAP) \ + include/linux/local_lock.h \ + include/linux/local_lock_internal.h \ + include/linux/zswap.h \ + $(wildcard include/config/ZSWAP) \ + include/linux/memory_hotplug.h \ + $(wildcard include/config/HAVE_ARCH_NODEDATA_EXTENSION) \ + $(wildcard include/config/ARCH_HAS_ADD_PAGES) \ + $(wildcard include/config/MEMORY_HOTREMOVE) \ + arch/x86/include/asm/mmzone.h \ + arch/x86/include/asm/mmzone_64.h \ + include/linux/topology.h \ + $(wildcard include/config/USE_PERCPU_NUMA_NODE_ID) \ + $(wildcard include/config/SCHED_SMT) \ + include/linux/arch_topology.h \ + $(wildcard include/config/ACPI_CPPC_LIB) \ + $(wildcard include/config/GENERIC_ARCH_TOPOLOGY) \ + arch/x86/include/asm/topology.h \ + $(wildcard include/config/SCHED_MC_PRIO) \ + arch/x86/include/asm/mpspec.h \ + $(wildcard include/config/EISA) \ + $(wildcard include/config/X86_LOCAL_APIC) \ + $(wildcard include/config/X86_MPPARSE) \ + arch/x86/include/asm/mpspec_def.h \ + arch/x86/include/asm/x86_init.h \ + arch/x86/include/uapi/asm/bootparam.h \ + include/linux/screen_info.h \ + $(wildcard include/config/PCI) \ + include/uapi/linux/screen_info.h \ + include/linux/apm_bios.h \ + include/uapi/linux/apm_bios.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) \ + include/uapi/video/edid.h \ + arch/x86/include/asm/apicdef.h \ + include/asm-generic/topology.h \ + include/linux/cpu_smt.h \ + $(wildcard include/config/HOTPLUG_SMT) \ + include/linux/sysctl.h \ + $(wildcard include/config/SYSCTL) \ + include/uapi/linux/sysctl.h \ + include/linux/elf.h \ + $(wildcard include/config/ARCH_USE_GNU_PROPERTY) \ + $(wildcard include/config/ARCH_HAVE_ELF_PROT) \ + arch/x86/include/asm/elf.h \ + $(wildcard include/config/X86_X32_ABI) \ + arch/x86/include/asm/ia32.h \ + include/linux/compat.h \ + $(wildcard include/config/ARCH_HAS_SYSCALL_WRAPPER) \ + $(wildcard include/config/COMPAT_OLD_SIGACTION) \ + $(wildcard include/config/ODD_RT_SIGACTION) \ + include/linux/sem.h \ + $(wildcard include/config/SYSVIPC) \ + 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/sem_types.h \ + include/linux/socket.h \ + arch/x86/include/generated/uapi/asm/socket.h \ + include/uapi/asm-generic/socket.h \ + arch/x86/include/generated/uapi/asm/sockios.h \ + include/uapi/asm-generic/sockios.h \ + include/uapi/linux/sockios.h \ + include/linux/uio.h \ + $(wildcard include/config/ARCH_HAS_COPY_MC) \ + include/uapi/linux/uio.h \ + include/uapi/linux/socket.h \ + include/uapi/linux/if.h \ + include/uapi/linux/libc-compat.h \ + include/uapi/linux/hdlc/ioctl.h \ + include/linux/fs.h \ + $(wildcard include/config/READ_ONLY_THP_FOR_FS) \ + $(wildcard include/config/FS_POSIX_ACL) \ + $(wildcard include/config/SECURITY) \ + $(wildcard include/config/CGROUP_WRITEBACK) \ + $(wildcard include/config/IMA) \ + $(wildcard include/config/FILE_LOCKING) \ + $(wildcard include/config/FSNOTIFY) \ + $(wildcard include/config/FS_ENCRYPTION) \ + $(wildcard include/config/FS_VERITY) \ + $(wildcard include/config/EPOLL) \ + $(wildcard include/config/UNICODE) \ + $(wildcard include/config/QUOTA) \ + $(wildcard include/config/FS_DAX) \ + $(wildcard include/config/BLOCK) \ + include/linux/wait_bit.h \ + include/linux/kdev_t.h \ + include/uapi/linux/kdev_t.h \ + include/linux/dcache.h \ + include/linux/rculist.h \ + $(wildcard include/config/PROVE_RCU_LIST) \ + 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) \ + include/linux/stringhash.h \ + $(wildcard include/config/DCACHE_WORD_ACCESS) \ + include/linux/hash.h \ + $(wildcard include/config/HAVE_ARCH_HASH) \ + include/linux/path.h \ + include/linux/list_lru.h \ + $(wildcard include/config/MEMCG_KMEM) \ + include/linux/shrinker.h \ + $(wildcard include/config/SHRINKER_DEBUG) \ + include/linux/xarray.h \ + $(wildcard include/config/XARRAY_MULTI) \ + include/linux/sched/mm.h \ + $(wildcard include/config/MMU_LAZY_TLB_REFCOUNT) \ + $(wildcard include/config/ARCH_HAS_MEMBARRIER_CALLBACKS) \ + include/linux/sched.h \ + $(wildcard include/config/VIRT_CPU_ACCOUNTING_NATIVE) \ + $(wildcard include/config/SCHED_INFO) \ + $(wildcard include/config/SCHEDSTATS) \ + $(wildcard include/config/SCHED_CORE) \ + $(wildcard include/config/FAIR_GROUP_SCHED) \ + $(wildcard include/config/RT_GROUP_SCHED) \ + $(wildcard include/config/RT_MUTEXES) \ + $(wildcard include/config/UCLAMP_TASK) \ + $(wildcard include/config/UCLAMP_BUCKETS_COUNT) \ + $(wildcard include/config/KMAP_LOCAL) \ + $(wildcard include/config/CGROUP_SCHED) \ + $(wildcard include/config/BLK_DEV_IO_TRACE) \ + $(wildcard include/config/COMPAT_BRK) \ + $(wildcard include/config/CGROUPS) \ + $(wildcard include/config/BLK_CGROUP) \ + $(wildcard include/config/PSI) \ + $(wildcard include/config/PAGE_OWNER) \ + $(wildcard include/config/EVENTFD) \ + $(wildcard include/config/ARCH_HAS_CPU_PASID) \ + $(wildcard include/config/CPU_SUP_INTEL) \ + $(wildcard include/config/TASK_DELAY_ACCT) \ + $(wildcard include/config/ARCH_HAS_SCALED_CPUTIME) \ + $(wildcard include/config/VIRT_CPU_ACCOUNTING_GEN) \ + $(wildcard include/config/POSIX_CPUTIMERS) \ + $(wildcard include/config/POSIX_CPU_TIMERS_TASK_WORK) \ + $(wildcard include/config/KEYS) \ + $(wildcard include/config/DETECT_HUNG_TASK) \ + $(wildcard include/config/IO_URING) \ + $(wildcard include/config/AUDIT) \ + $(wildcard include/config/AUDITSYSCALL) \ + $(wildcard include/config/UBSAN) \ + $(wildcard include/config/UBSAN_TRAP) \ + $(wildcard include/config/TASK_XACCT) \ + $(wildcard include/config/CPUSETS) \ + $(wildcard include/config/X86_CPU_RESCTRL) \ + $(wildcard include/config/FUTEX) \ + $(wildcard include/config/PERF_EVENTS) \ + $(wildcard include/config/RSEQ) \ + $(wildcard include/config/FAULT_INJECTION) \ + $(wildcard include/config/LATENCYTOP) \ + $(wildcard include/config/FUNCTION_GRAPH_TRACER) \ + $(wildcard include/config/BCACHE) \ + $(wildcard include/config/VMAP_STACK) \ + $(wildcard include/config/BPF_SYSCALL) \ + $(wildcard include/config/GCC_PLUGIN_STACKLEAK) \ + $(wildcard include/config/X86_MCE) \ + $(wildcard include/config/KRETPROBES) \ + $(wildcard include/config/RETHOOK) \ + $(wildcard include/config/ARCH_HAS_PARANOID_L1D_FLUSH) \ + $(wildcard include/config/RV) \ + $(wildcard include/config/USER_EVENTS) \ + include/uapi/linux/sched.h \ + include/linux/pid_types.h \ + include/linux/shm.h \ + arch/x86/include/asm/shmparam.h \ + include/linux/kmsan_types.h \ + include/linux/plist_types.h \ + include/linux/hrtimer_types.h \ + include/linux/timerqueue_types.h \ + include/linux/seccomp_types.h \ + $(wildcard include/config/SECCOMP) \ + 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) \ + 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/syscall_user_dispatch_types.h \ + include/linux/task_io_accounting.h \ + $(wildcard include/config/TASK_IO_ACCOUNTING) \ + include/linux/posix-timers_types.h \ + include/uapi/linux/rseq.h \ + include/linux/kcsan.h \ + include/linux/rv.h \ + $(wildcard include/config/RV_REACTORS) \ + include/linux/livepatch_sched.h \ + arch/x86/include/generated/asm/kmap_size.h \ + include/asm-generic/kmap_size.h \ + $(wildcard include/config/DEBUG_KMAP_LOCAL) \ + include/linux/sync_core.h \ + $(wildcard include/config/ARCH_HAS_SYNC_CORE_BEFORE_USERMODE) \ + arch/x86/include/asm/sync_core.h \ + include/linux/radix-tree.h \ + include/linux/pid.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) \ + include/uapi/linux/fcntl.h \ + arch/x86/include/generated/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) \ + $(wildcard include/config/BSD_PROCESS_ACCT) \ + $(wildcard include/config/TASKSTATS) \ + $(wildcard include/config/STACK_GROWSUP) \ + include/linux/signal.h \ + $(wildcard include/config/DYNAMIC_SIGFRAME) \ + include/linux/sched/jobctl.h \ + include/linux/sched/task.h \ + $(wildcard include/config/HAVE_EXIT_THREAD) \ + $(wildcard include/config/ARCH_WANTS_DYNAMIC_TASK_STRUCT) \ + $(wildcard include/config/HAVE_ARCH_THREAD_STRUCT_WHITELIST) \ + include/linux/uaccess.h \ + $(wildcard include/config/ARCH_HAS_SUBPAGE_FAULTS) \ + include/linux/fault-inject-usercopy.h \ + $(wildcard include/config/FAULT_INJECTION_USERCOPY) \ + arch/x86/include/asm/uaccess.h \ + $(wildcard include/config/CC_HAS_ASM_GOTO_OUTPUT) \ + $(wildcard include/config/CC_HAS_ASM_GOTO_TIED_OUTPUT) \ + $(wildcard include/config/X86_INTEL_USERCOPY) \ + include/linux/mmap_lock.h \ + arch/x86/include/asm/smap.h \ + arch/x86/include/asm/extable.h \ + $(wildcard include/config/BPF_JIT) \ + arch/x86/include/asm/tlbflush.h \ + include/linux/mmu_notifier.h \ + include/linux/interval_tree.h \ + arch/x86/include/asm/invpcid.h \ + arch/x86/include/asm/pti.h \ + arch/x86/include/asm/pgtable.h \ + $(wildcard include/config/DEBUG_WX) \ + $(wildcard include/config/HAVE_ARCH_TRANSPARENT_HUGEPAGE_PUD) \ + $(wildcard include/config/ARCH_HAS_PTE_DEVMAP) \ + $(wildcard include/config/HAVE_ARCH_SOFT_DIRTY) \ + $(wildcard include/config/ARCH_ENABLE_THP_MIGRATION) \ + $(wildcard include/config/PAGE_TABLE_CHECK) \ + arch/x86/include/asm/pkru.h \ + arch/x86/include/asm/fpu/api.h \ + $(wildcard include/config/X86_DEBUG_FPU) \ + arch/x86/include/asm/coco.h \ + include/asm-generic/pgtable_uffd.h \ + include/linux/page_table_check.h \ + arch/x86/include/asm/pgtable_64.h \ + arch/x86/include/asm/fixmap.h \ + $(wildcard include/config/PROVIDE_OHCI1394_DMA_INIT) \ + $(wildcard include/config/X86_IO_APIC) \ + $(wildcard include/config/PCI_MMCONFIG) \ + $(wildcard include/config/ACPI_APEI_GHES) \ + $(wildcard include/config/INTEL_TXT) \ + arch/x86/include/uapi/asm/vsyscall.h \ + include/asm-generic/fixmap.h \ + arch/x86/include/asm/pgtable-invert.h \ + arch/x86/include/asm/uaccess_64.h \ + include/asm-generic/access_ok.h \ + $(wildcard include/config/ALTERNATE_USER_ADDRESS_SPACE) \ + include/linux/cred.h \ + include/linux/key.h \ + $(wildcard include/config/KEY_NOTIFICATIONS) \ + $(wildcard include/config/NET) \ + include/linux/assoc_array.h \ + $(wildcard include/config/ASSOCIATIVE_ARRAY) \ + include/linux/sched/user.h \ + $(wildcard include/config/VFIO_PCI_ZDEV_KVM) \ + $(wildcard include/config/IOMMUFD) \ + $(wildcard include/config/WATCH_QUEUE) \ + include/linux/ratelimit.h \ + include/linux/posix-timers.h \ + include/linux/alarmtimer.h \ + $(wildcard include/config/RTC_CLASS) \ + include/linux/hrtimer.h \ + $(wildcard include/config/HIGH_RES_TIMERS) \ + $(wildcard include/config/TIME_LOW_RES) \ + $(wildcard include/config/TIMERFD) \ + include/linux/hrtimer_defs.h \ + include/linux/timerqueue.h \ + include/linux/rcu_sync.h \ + include/linux/delayed_call.h \ + include/linux/uuid.h \ + include/linux/errseq.h \ + include/linux/ioprio.h \ + include/linux/sched/rt.h \ + include/linux/iocontext.h \ + $(wildcard include/config/BLK_ICQ) \ + include/uapi/linux/ioprio.h \ + include/linux/fs_types.h \ + include/linux/mount.h \ + include/linux/mnt_idmapping.h \ + include/linux/slab.h \ + $(wildcard include/config/SLUB_DEBUG) \ + $(wildcard include/config/SLUB_TINY) \ + $(wildcard include/config/FAILSLAB) \ + $(wildcard include/config/KFENCE) \ + include/linux/percpu-refcount.h \ + include/linux/kasan.h \ + $(wildcard include/config/KASAN_STACK) \ + $(wildcard include/config/KASAN_VMALLOC) \ + include/linux/kasan-enabled.h \ + include/linux/kasan-tags.h \ + include/uapi/linux/fs.h \ + include/linux/quota.h \ + $(wildcard include/config/QUOTA_NETLINK_INTERFACE) \ + 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/uapi/linux/aio_abi.h \ + include/uapi/linux/unistd.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/generated/asm/unistd_32_ia32.h \ + arch/x86/include/asm/compat.h \ + include/linux/sched/task_stack.h \ + $(wildcard include/config/DEBUG_STACK_USAGE) \ + include/uapi/linux/magic.h \ + arch/x86/include/asm/user32.h \ + include/asm-generic/compat.h \ + $(wildcard include/config/COMPAT_FOR_U64_ALIGNMENT) \ + arch/x86/include/asm/syscall_wrapper.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 \ + include/uapi/linux/elf.h \ + include/uapi/linux/elf-em.h \ + include/linux/kobject.h \ + $(wildcard include/config/UEVENT_HELPER) \ + $(wildcard include/config/DEBUG_KOBJECT_RELEASE) \ + include/linux/sysfs.h \ + include/linux/kernfs.h \ + $(wildcard include/config/KERNFS) \ + include/linux/idr.h \ + include/linux/kobject_ns.h \ + include/linux/moduleparam.h \ + $(wildcard include/config/ALPHA) \ + $(wildcard include/config/PPC64) \ + 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) \ + include/asm-generic/module.h \ + $(wildcard include/config/HAVE_MOD_ARCH_SPECIFIC) \ + $(wildcard include/config/MODULES_USE_ELF_REL) \ + $(wildcard include/config/MODULES_USE_ELF_RELA) \ + include/linux/cdev.h \ + include/linux/device.h \ + $(wildcard include/config/HAS_IOMEM) \ + $(wildcard include/config/GENERIC_MSI_IRQ) \ + $(wildcard include/config/ENERGY_MODEL) \ + $(wildcard include/config/PINCTRL) \ + $(wildcard include/config/DMA_OPS) \ + $(wildcard include/config/DMA_DECLARE_COHERENT) \ + $(wildcard include/config/DMA_CMA) \ + $(wildcard include/config/SWIOTLB) \ + $(wildcard include/config/SWIOTLB_DYNAMIC) \ + $(wildcard include/config/ARCH_HAS_SYNC_DMA_FOR_DEVICE) \ + $(wildcard include/config/ARCH_HAS_SYNC_DMA_FOR_CPU) \ + $(wildcard include/config/ARCH_HAS_SYNC_DMA_FOR_CPU_ALL) \ + $(wildcard include/config/DMA_OPS_BYPASS) \ + $(wildcard include/config/PM_SLEEP) \ + $(wildcard include/config/OF) \ + $(wildcard include/config/DEVTMPFS) \ + include/linux/dev_printk.h \ + include/linux/energy_model.h \ + include/linux/sched/cpufreq.h \ + $(wildcard include/config/CPU_FREQ) \ + include/linux/sched/topology.h \ + $(wildcard include/config/SCHED_DEBUG) \ + $(wildcard include/config/SCHED_CLUSTER) \ + $(wildcard include/config/SCHED_MC) \ + $(wildcard include/config/CPU_FREQ_GOV_SCHEDUTIL) \ + include/linux/sched/idle.h \ + include/linux/sched/sd_flags.h \ + include/linux/ioport.h \ + include/linux/klist.h \ + include/linux/pm.h \ + $(wildcard include/config/VT_CONSOLE_SLEEP) \ + $(wildcard include/config/CXL_SUSPEND) \ + $(wildcard include/config/PM) \ + $(wildcard include/config/PM_CLK) \ + $(wildcard include/config/PM_GENERIC_DOMAINS) \ + include/linux/device/bus.h \ + $(wildcard include/config/ACPI) \ + include/linux/device/class.h \ + include/linux/device/driver.h \ + arch/x86/include/asm/device.h \ + include/linux/pm_wakeup.h \ + +/home/junet/driver-tutorial/kernel_timer/demo_timer_driver.o: $(deps_/home/junet/driver-tutorial/kernel_timer/demo_timer_driver.o) + +$(deps_/home/junet/driver-tutorial/kernel_timer/demo_timer_driver.o): + +/home/junet/driver-tutorial/kernel_timer/demo_timer_driver.o: $(wildcard ./tools/objtool/objtool) diff --git a/kernel_timer/.modules.order.cmd b/kernel_timer/.modules.order.cmd new file mode 100644 index 0000000..73916a1 --- /dev/null +++ b/kernel_timer/.modules.order.cmd @@ -0,0 +1 @@ +savedcmd_/home/junet/driver-tutorial/kernel_timer/modules.order := { echo /home/junet/driver-tutorial/kernel_timer/demo_timer_driver.o; :; } > /home/junet/driver-tutorial/kernel_timer/modules.order diff --git a/kernel_timer/Makefile b/kernel_timer/Makefile new file mode 100644 index 0000000..392d006 --- /dev/null +++ b/kernel_timer/Makefile @@ -0,0 +1,7 @@ +obj-m += demo_timer_driver.o + +all: + make -C /lib/modules/$(shell uname -r)/build M=$(PWD) modules + +clean: + make -C /lib/modules/$(shell uname -r)/build M=$(PWD) clean \ No newline at end of file diff --git a/kernel_timer/Module.symvers b/kernel_timer/Module.symvers new file mode 100644 index 0000000..e69de29 diff --git a/kernel_timer/demo_timer_driver.c b/kernel_timer/demo_timer_driver.c new file mode 100644 index 0000000..34e7d9d --- /dev/null +++ b/kernel_timer/demo_timer_driver.c @@ -0,0 +1,133 @@ +#include +#include +#include +#include +#include +#include +#include +#include +#include + +//Timer Variable +#define TIMEOUT 5000 //milliseconds +static struct timer_list demo_timer; +static unsigned int count = 0; + +dev_t dev = 0; +static struct class *dev_class; +static struct cdev demo_timer_cdev; +static int __init demo_timer_driver_init(void); +static void __exit demo_timer_driver_exit(void); + +/***************Driver fucntions******************/ +static int demo_timer_open(struct inode *inode, struct file *file); +static int demo_timer_release(struct inode *inode , struct file *file); +static ssize_t demo_timer_read(struct file *filp, char __user *buf, size_t len, loff_t *off); +static ssize_t demo_timer_write(struct file *filp, const char __user *buf, size_t len, loff_t *off); +/*************************************************/ + +//File operation structure +static struct file_operations fops = { + .owner = THIS_MODULE, + .read = demo_timer_read, + .write = demo_timer_write, + .open = demo_timer_open, + .release = demo_timer_release +}; + +//Timer Callback function. This will be called when timer expires +void timer_callback(struct timer_list *timer){ + /* do your timer stuff here */ + pr_info("Timer Callback function Called [%d]\n", count++); + + /** + * Re-enable timer. Because this function will be called only first time. + * If we re-enable this will work like periodic timer. + */ + + mod_timer(&demo_timer, jiffies + msecs_to_jiffies(TIMEOUT)); +} + +/** + * This function will be called when we open the device file + */ +static int demo_timer_open(struct inode *inode, struct file *file){ + pr_info("Device File Opened...!!!\n"); + return 0; +} + +/** + * This function will be called when we close the Device file + */ +static int demo_timer_release(struct inode *inode , struct file *file){ + pr_info("Read Function\n"); + return 0; +} + +/** + * This function will be called when we read the Device file + */ +static ssize_t demo_timer_read(struct file *filp, char __user *buf, size_t len, loff_t *off){ + pr_info("Read function\n"); + return 0; +} + +/** + * This function will be called when we write the Device file + */ +static ssize_t demo_timer_write(struct file *filp, const char __user *buf, size_t len, loff_t *off){ + pr_info("Write function\n"); + return len; +} + +/** + * Module Init function + */ +static int __init demo_timer_driver_init(void){ + /*Allocating Major number*/ + if(alloc_chrdev_region(&dev, 0, 1, "demo_timer_Dev") < 0 ){ + pr_err("Cannot allocate major number\n"); + return -1; + } + + pr_info("Major = %d Minor = %d \n", MAJOR(dev), MINOR(dev)); + + /*Creating cdev structure*/ + cdev_init(&demo_timer_cdev, &fops); + + /*Adding character device to the system*/ + if((cdev_add(&demo_timer_cdev, dev, 1)) < 0){ + pr_err("Cannot add the device to the system\n"); + } + + /* setup your timer to call my_timer_callback */ + timer_setup(&demo_timer, timer_callback, 0); + + //We can also use add_timer. + /* setup timer interval to based on TIMEOUT Macro */ + /* kernel timer should be in ticks or jiffs*/ + mod_timer(&demo_timer, jiffies + msecs_to_jiffies(TIMEOUT)); + + pr_info("Device Driver Insert...Done!!!\n"); + return 0; +} + +/** + * + * Module exit function + */ + +static void __exit demo_timer_driver_exit(void){ + /* remove kernel when unloading module */ + del_timer(&demo_timer); + cdev_del(&demo_timer_cdev); + unregister_chrdev_region(dev, 1); + pr_info("Device Driver Remove...Done!!!\n"); +} + +module_init(demo_timer_driver_init); +module_exit(demo_timer_driver_exit); + +MODULE_LICENSE("GPL"); +MODULE_AUTHOR("Junet Hossain"); +MODULE_DESCRIPTION("A Simple kernel timer module"); diff --git a/kernel_timer/demo_timer_driver.ko b/kernel_timer/demo_timer_driver.ko new file mode 100644 index 0000000..beee9f1 Binary files /dev/null and b/kernel_timer/demo_timer_driver.ko differ diff --git a/kernel_timer/demo_timer_driver.mod b/kernel_timer/demo_timer_driver.mod new file mode 100644 index 0000000..312fe60 --- /dev/null +++ b/kernel_timer/demo_timer_driver.mod @@ -0,0 +1 @@ +/home/junet/driver-tutorial/kernel_timer/demo_timer_driver.o diff --git a/kernel_timer/demo_timer_driver.mod.c b/kernel_timer/demo_timer_driver.mod.c new file mode 100644 index 0000000..2f97aa0 --- /dev/null +++ b/kernel_timer/demo_timer_driver.mod.c @@ -0,0 +1,69 @@ +#include +#define INCLUDE_VERMAGIC +#include +#include +#include +#include +#include + +#ifdef CONFIG_UNWINDER_ORC +#include +ORC_HEADER; +#endif + +BUILD_SALT; +BUILD_LTO_INFO; + +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 char ____versions[] +__used __section("__versions") = + "\x1c\x00\x00\x00\x2b\x2f\xec\xe3" + "alloc_chrdev_region\0" + "\x14\x00\x00\x00\x5f\x7c\x28\xd8" + "cdev_init\0\0\0" + "\x14\x00\x00\x00\xda\xfb\x89\x12" + "cdev_add\0\0\0\0" + "\x18\x00\x00\x00\x39\x63\xf4\xc6" + "init_timer_key\0\0" + "\x18\x00\x00\x00\x55\x48\x0e\xdc" + "timer_delete\0\0\0\0" + "\x14\x00\x00\x00\xa2\x7e\x12\x7c" + "cdev_del\0\0\0\0" + "\x24\x00\x00\x00\x33\xb3\x91\x60" + "unregister_chrdev_region\0\0\0\0" + "\x14\x00\x00\x00\xbb\x6d\xfb\xbd" + "__fentry__\0\0" + "\x10\x00\x00\x00\x7e\x3a\x2c\x12" + "_printk\0" + "\x1c\x00\x00\x00\xca\x39\x82\x5b" + "__x86_return_thunk\0\0" + "\x10\x00\x00\x00\xa6\x50\xba\x15" + "jiffies\0" + "\x14\x00\x00\x00\xb8\x83\x8c\xc3" + "mod_timer\0\0\0" + "\x18\x00\x00\x00\xf8\x1a\x94\x92" + "module_layout\0\0\0" + "\x00\x00\x00\x00\x00\x00\x00\x00"; + +MODULE_INFO(depends, ""); + + +MODULE_INFO(srcversion, "7D7C66AAC1FA4296375BED7"); diff --git a/kernel_timer/demo_timer_driver.mod.o b/kernel_timer/demo_timer_driver.mod.o new file mode 100644 index 0000000..d8287ab Binary files /dev/null and b/kernel_timer/demo_timer_driver.mod.o differ diff --git a/kernel_timer/demo_timer_driver.o b/kernel_timer/demo_timer_driver.o new file mode 100644 index 0000000..eb66648 Binary files /dev/null and b/kernel_timer/demo_timer_driver.o differ diff --git a/kernel_timer/modules.order b/kernel_timer/modules.order new file mode 100644 index 0000000..312fe60 --- /dev/null +++ b/kernel_timer/modules.order @@ -0,0 +1 @@ +/home/junet/driver-tutorial/kernel_timer/demo_timer_driver.o