mirror of
https://github.com/gatieme/LDD-LinuxDeviceDrivers.git
synced 2026-08-20 22:04:56 +08:00
pid...
This commit is contained in:
@@ -0,0 +1,178 @@
|
||||
get_pid.o: \
|
||||
/home/gatieme/Work/GitHub/LDD-LinuxDeviceDrivers/study/process/pid/get_pid.c \
|
||||
/usr/src/kernels/2.6.32-573.26.1.el6.x86_64/include/linux/kconfig.h \
|
||||
include/linux/autoconf.h include/linux/init.h include/linux/compiler.h \
|
||||
include/linux/compiler-gcc.h include/linux/compiler-gcc4.h \
|
||||
include/linux/module.h include/linux/list.h include/linux/types.h \
|
||||
/usr/src/kernels/2.6.32-573.26.1.el6.x86_64/arch/x86/include/asm/types.h \
|
||||
include/asm-generic/types.h include/asm-generic/int-ll64.h \
|
||||
/usr/src/kernels/2.6.32-573.26.1.el6.x86_64/arch/x86/include/asm/bitsperlong.h \
|
||||
include/asm-generic/bitsperlong.h include/linux/posix_types.h \
|
||||
include/linux/stddef.h \
|
||||
/usr/src/kernels/2.6.32-573.26.1.el6.x86_64/arch/x86/include/asm/posix_types.h \
|
||||
/usr/src/kernels/2.6.32-573.26.1.el6.x86_64/arch/x86/include/asm/posix_types_64.h \
|
||||
include/linux/poison.h include/linux/prefetch.h \
|
||||
/usr/src/kernels/2.6.32-573.26.1.el6.x86_64/arch/x86/include/asm/processor.h \
|
||||
/usr/src/kernels/2.6.32-573.26.1.el6.x86_64/arch/x86/include/asm/processor-flags.h \
|
||||
/usr/src/kernels/2.6.32-573.26.1.el6.x86_64/arch/x86/include/asm/vm86.h \
|
||||
/usr/src/kernels/2.6.32-573.26.1.el6.x86_64/arch/x86/include/asm/ptrace.h \
|
||||
/usr/src/kernels/2.6.32-573.26.1.el6.x86_64/arch/x86/include/asm/ptrace-abi.h \
|
||||
/usr/src/kernels/2.6.32-573.26.1.el6.x86_64/arch/x86/include/asm/segment.h \
|
||||
/usr/src/kernels/2.6.32-573.26.1.el6.x86_64/arch/x86/include/asm/cache.h \
|
||||
include/linux/linkage.h \
|
||||
/usr/src/kernels/2.6.32-573.26.1.el6.x86_64/arch/x86/include/asm/linkage.h \
|
||||
include/linux/stringify.h \
|
||||
/usr/src/kernels/2.6.32-573.26.1.el6.x86_64/arch/x86/include/asm/page_types.h \
|
||||
include/linux/const.h \
|
||||
/usr/src/kernels/2.6.32-573.26.1.el6.x86_64/arch/x86/include/asm/page_64_types.h \
|
||||
/usr/src/kernels/2.6.32-573.26.1.el6.x86_64/arch/x86/include/asm/math_emu.h \
|
||||
/usr/src/kernels/2.6.32-573.26.1.el6.x86_64/arch/x86/include/asm/sigcontext.h \
|
||||
/usr/src/kernels/2.6.32-573.26.1.el6.x86_64/arch/x86/include/asm/current.h \
|
||||
/usr/src/kernels/2.6.32-573.26.1.el6.x86_64/arch/x86/include/asm/percpu.h \
|
||||
include/linux/kernel.h \
|
||||
/usr/lib/gcc/x86_64-redhat-linux/4.4.7/include/stdarg.h \
|
||||
include/linux/bitops.h \
|
||||
/usr/src/kernels/2.6.32-573.26.1.el6.x86_64/arch/x86/include/asm/bitops.h \
|
||||
/usr/src/kernels/2.6.32-573.26.1.el6.x86_64/arch/x86/include/asm/alternative.h \
|
||||
/usr/src/kernels/2.6.32-573.26.1.el6.x86_64/arch/x86/include/asm/asm.h \
|
||||
/usr/src/kernels/2.6.32-573.26.1.el6.x86_64/arch/x86/include/asm/cpufeature.h \
|
||||
/usr/src/kernels/2.6.32-573.26.1.el6.x86_64/arch/x86/include/asm/required-features.h \
|
||||
include/asm-generic/bitops/sched.h include/asm-generic/bitops/hweight.h \
|
||||
include/asm-generic/bitops/fls64.h \
|
||||
include/asm-generic/bitops/ext2-non-atomic.h \
|
||||
include/asm-generic/bitops/le.h \
|
||||
/usr/src/kernels/2.6.32-573.26.1.el6.x86_64/arch/x86/include/asm/byteorder.h \
|
||||
include/linux/byteorder/little_endian.h include/linux/swab.h \
|
||||
/usr/src/kernels/2.6.32-573.26.1.el6.x86_64/arch/x86/include/asm/swab.h \
|
||||
include/linux/byteorder/generic.h include/asm-generic/bitops/minix.h \
|
||||
include/linux/log2.h include/linux/typecheck.h include/linux/ratelimit.h \
|
||||
include/linux/param.h \
|
||||
/usr/src/kernels/2.6.32-573.26.1.el6.x86_64/arch/x86/include/asm/param.h \
|
||||
include/asm-generic/param.h include/linux/dynamic_debug.h \
|
||||
/usr/src/kernels/2.6.32-573.26.1.el6.x86_64/arch/x86/include/asm/bug.h \
|
||||
include/asm-generic/bug.h include/asm-generic/percpu.h \
|
||||
include/linux/threads.h include/linux/percpu-defs.h \
|
||||
/usr/src/kernels/2.6.32-573.26.1.el6.x86_64/arch/x86/include/asm/system.h \
|
||||
/usr/src/kernels/2.6.32-573.26.1.el6.x86_64/arch/x86/include/asm/cmpxchg.h \
|
||||
/usr/src/kernels/2.6.32-573.26.1.el6.x86_64/arch/x86/include/asm/cmpxchg_64.h \
|
||||
/usr/src/kernels/2.6.32-573.26.1.el6.x86_64/arch/x86/include/asm/nops.h \
|
||||
include/linux/irqflags.h \
|
||||
/usr/src/kernels/2.6.32-573.26.1.el6.x86_64/arch/x86/include/asm/irqflags.h \
|
||||
/usr/src/kernels/2.6.32-573.26.1.el6.x86_64/arch/x86/include/asm/paravirt.h \
|
||||
/usr/src/kernels/2.6.32-573.26.1.el6.x86_64/arch/x86/include/asm/pgtable_types.h \
|
||||
/usr/src/kernels/2.6.32-573.26.1.el6.x86_64/arch/x86/include/asm/pgtable_64_types.h \
|
||||
/usr/src/kernels/2.6.32-573.26.1.el6.x86_64/arch/x86/include/asm/paravirt_types.h \
|
||||
/usr/src/kernels/2.6.32-573.26.1.el6.x86_64/arch/x86/include/asm/desc_defs.h \
|
||||
/usr/src/kernels/2.6.32-573.26.1.el6.x86_64/arch/x86/include/asm/kmap_types.h \
|
||||
include/asm-generic/kmap_types.h include/linux/cpumask.h \
|
||||
include/linux/bitmap.h include/linux/string.h \
|
||||
/usr/src/kernels/2.6.32-573.26.1.el6.x86_64/arch/x86/include/asm/string.h \
|
||||
/usr/src/kernels/2.6.32-573.26.1.el6.x86_64/arch/x86/include/asm/string_64.h \
|
||||
/usr/src/kernels/2.6.32-573.26.1.el6.x86_64/arch/x86/include/asm/page.h \
|
||||
/usr/src/kernels/2.6.32-573.26.1.el6.x86_64/arch/x86/include/asm/page_64.h \
|
||||
include/asm-generic/memory_model.h include/asm-generic/getorder.h \
|
||||
/usr/src/kernels/2.6.32-573.26.1.el6.x86_64/arch/x86/include/asm/msr.h \
|
||||
/usr/src/kernels/2.6.32-573.26.1.el6.x86_64/arch/x86/include/asm/msr-index.h \
|
||||
include/linux/ioctl.h \
|
||||
/usr/src/kernels/2.6.32-573.26.1.el6.x86_64/arch/x86/include/asm/ioctl.h \
|
||||
include/asm-generic/ioctl.h \
|
||||
/usr/src/kernels/2.6.32-573.26.1.el6.x86_64/arch/x86/include/asm/errno.h \
|
||||
include/asm-generic/errno.h include/asm-generic/errno-base.h \
|
||||
/usr/src/kernels/2.6.32-573.26.1.el6.x86_64/arch/x86/include/asm/cpumask.h \
|
||||
include/linux/personality.h include/linux/cache.h include/linux/math64.h \
|
||||
/usr/src/kernels/2.6.32-573.26.1.el6.x86_64/arch/x86/include/asm/div64.h \
|
||||
include/asm-generic/div64.h include/linux/err.h include/linux/stat.h \
|
||||
/usr/src/kernels/2.6.32-573.26.1.el6.x86_64/arch/x86/include/asm/stat.h \
|
||||
include/linux/time.h include/linux/seqlock.h include/linux/spinlock.h \
|
||||
include/linux/preempt.h include/linux/thread_info.h \
|
||||
/usr/src/kernels/2.6.32-573.26.1.el6.x86_64/arch/x86/include/asm/thread_info.h \
|
||||
/usr/src/kernels/2.6.32-573.26.1.el6.x86_64/arch/x86/include/asm/ftrace.h \
|
||||
/usr/src/kernels/2.6.32-573.26.1.el6.x86_64/arch/x86/include/asm/atomic.h \
|
||||
/usr/src/kernels/2.6.32-573.26.1.el6.x86_64/arch/x86/include/asm/atomic_64.h \
|
||||
include/asm-generic/atomic-long.h include/linux/bottom_half.h \
|
||||
include/linux/spinlock_types.h \
|
||||
/usr/src/kernels/2.6.32-573.26.1.el6.x86_64/arch/x86/include/asm/spinlock_types.h \
|
||||
include/linux/lockdep.h \
|
||||
/usr/src/kernels/2.6.32-573.26.1.el6.x86_64/arch/x86/include/asm/spinlock.h \
|
||||
/usr/src/kernels/2.6.32-573.26.1.el6.x86_64/arch/x86/include/asm/rwlock.h \
|
||||
include/linux/spinlock_api_smp.h include/linux/kmod.h \
|
||||
include/linux/gfp.h include/linux/mmzone.h include/linux/wait.h \
|
||||
include/linux/numa.h include/linux/nodemask.h \
|
||||
include/linux/pageblock-flags.h include/linux/bounds.h \
|
||||
include/linux/memory_hotplug.h include/linux/notifier.h \
|
||||
include/linux/errno.h include/linux/mutex.h include/linux/rwsem.h \
|
||||
/usr/src/kernels/2.6.32-573.26.1.el6.x86_64/arch/x86/include/asm/rwsem.h \
|
||||
include/linux/srcu.h \
|
||||
/usr/src/kernels/2.6.32-573.26.1.el6.x86_64/arch/x86/include/asm/mmzone.h \
|
||||
/usr/src/kernels/2.6.32-573.26.1.el6.x86_64/arch/x86/include/asm/mmzone_64.h \
|
||||
include/linux/mmdebug.h \
|
||||
/usr/src/kernels/2.6.32-573.26.1.el6.x86_64/arch/x86/include/asm/smp.h \
|
||||
/usr/src/kernels/2.6.32-573.26.1.el6.x86_64/arch/x86/include/asm/mpspec.h \
|
||||
/usr/src/kernels/2.6.32-573.26.1.el6.x86_64/arch/x86/include/asm/mpspec_def.h \
|
||||
/usr/src/kernels/2.6.32-573.26.1.el6.x86_64/arch/x86/include/asm/x86_init.h \
|
||||
/usr/src/kernels/2.6.32-573.26.1.el6.x86_64/arch/x86/include/asm/bootparam.h \
|
||||
include/linux/screen_info.h include/linux/apm_bios.h include/linux/edd.h \
|
||||
/usr/src/kernels/2.6.32-573.26.1.el6.x86_64/arch/x86/include/asm/e820.h \
|
||||
include/linux/ioport.h \
|
||||
/usr/src/kernels/2.6.32-573.26.1.el6.x86_64/arch/x86/include/asm/ist.h \
|
||||
include/video/edid.h \
|
||||
/usr/src/kernels/2.6.32-573.26.1.el6.x86_64/arch/x86/include/asm/apic.h \
|
||||
include/linux/delay.h \
|
||||
/usr/src/kernels/2.6.32-573.26.1.el6.x86_64/arch/x86/include/asm/delay.h \
|
||||
include/linux/pm.h include/linux/workqueue.h include/linux/timer.h \
|
||||
include/linux/ktime.h include/linux/jiffies.h include/linux/timex.h \
|
||||
/usr/src/kernels/2.6.32-573.26.1.el6.x86_64/arch/x86/include/asm/timex.h \
|
||||
/usr/src/kernels/2.6.32-573.26.1.el6.x86_64/arch/x86/include/asm/tsc.h \
|
||||
include/linux/debugobjects.h include/linux/completion.h \
|
||||
/usr/src/kernels/2.6.32-573.26.1.el6.x86_64/arch/x86/include/asm/apicdef.h \
|
||||
/usr/src/kernels/2.6.32-573.26.1.el6.x86_64/arch/x86/include/asm/fixmap.h \
|
||||
/usr/src/kernels/2.6.32-573.26.1.el6.x86_64/arch/x86/include/asm/acpi.h \
|
||||
include/acpi/pdc_intel.h \
|
||||
/usr/src/kernels/2.6.32-573.26.1.el6.x86_64/arch/x86/include/asm/numa.h \
|
||||
/usr/src/kernels/2.6.32-573.26.1.el6.x86_64/arch/x86/include/asm/numa_64.h \
|
||||
/usr/src/kernels/2.6.32-573.26.1.el6.x86_64/arch/x86/include/asm/mmu.h \
|
||||
/usr/src/kernels/2.6.32-573.26.1.el6.x86_64/arch/x86/include/asm/vsyscall.h \
|
||||
/usr/src/kernels/2.6.32-573.26.1.el6.x86_64/arch/x86/include/asm/idle.h \
|
||||
/usr/src/kernels/2.6.32-573.26.1.el6.x86_64/arch/x86/include/asm/io_apic.h \
|
||||
/usr/src/kernels/2.6.32-573.26.1.el6.x86_64/arch/x86/include/asm/irq_vectors.h \
|
||||
/usr/src/kernels/2.6.32-573.26.1.el6.x86_64/arch/x86/include/asm/sparsemem.h \
|
||||
include/linux/topology.h include/linux/smp.h \
|
||||
/usr/src/kernels/2.6.32-573.26.1.el6.x86_64/arch/x86/include/asm/topology.h \
|
||||
include/asm-generic/topology.h include/linux/sysctl.h \
|
||||
include/linux/elf.h include/linux/elf-em.h \
|
||||
/usr/src/kernels/2.6.32-573.26.1.el6.x86_64/arch/x86/include/asm/elf.h \
|
||||
/usr/src/kernels/2.6.32-573.26.1.el6.x86_64/arch/x86/include/asm/user.h \
|
||||
/usr/src/kernels/2.6.32-573.26.1.el6.x86_64/arch/x86/include/asm/user_64.h \
|
||||
/usr/src/kernels/2.6.32-573.26.1.el6.x86_64/arch/x86/include/asm/auxvec.h \
|
||||
/usr/src/kernels/2.6.32-573.26.1.el6.x86_64/arch/x86/include/asm/vdso.h \
|
||||
include/linux/kobject.h include/linux/sysfs.h include/linux/kref.h \
|
||||
include/linux/moduleparam.h include/linux/tracepoint.h \
|
||||
include/linux/rcupdate.h include/linux/rcutree.h \
|
||||
/usr/src/kernels/2.6.32-573.26.1.el6.x86_64/arch/x86/include/asm/local.h \
|
||||
include/linux/percpu.h include/linux/slab.h include/linux/slab_def.h \
|
||||
include/linux/kmalloc_sizes.h include/linux/pfn.h \
|
||||
/usr/src/kernels/2.6.32-573.26.1.el6.x86_64/arch/x86/include/asm/module.h \
|
||||
include/asm-generic/module.h include/trace/events/module.h \
|
||||
include/trace/define_trace.h include/linux/sched.h \
|
||||
include/linux/capability.h include/linux/rbtree.h \
|
||||
include/linux/mm_types.h include/linux/auxvec.h \
|
||||
include/linux/prio_tree.h include/linux/page-debug-flags.h \
|
||||
/usr/src/kernels/2.6.32-573.26.1.el6.x86_64/arch/x86/include/asm/cputime.h \
|
||||
include/asm-generic/cputime.h include/linux/sem.h include/linux/ipc.h \
|
||||
/usr/src/kernels/2.6.32-573.26.1.el6.x86_64/arch/x86/include/asm/ipcbuf.h \
|
||||
include/asm-generic/ipcbuf.h \
|
||||
/usr/src/kernels/2.6.32-573.26.1.el6.x86_64/arch/x86/include/asm/sembuf.h \
|
||||
include/linux/signal.h \
|
||||
/usr/src/kernels/2.6.32-573.26.1.el6.x86_64/arch/x86/include/asm/signal.h \
|
||||
include/asm-generic/signal-defs.h \
|
||||
/usr/src/kernels/2.6.32-573.26.1.el6.x86_64/arch/x86/include/asm/siginfo.h \
|
||||
include/asm-generic/siginfo.h include/linux/path.h include/linux/pid.h \
|
||||
include/linux/proportions.h include/linux/percpu_counter.h \
|
||||
include/linux/seccomp.h include/linux/rculist.h include/linux/rtmutex.h \
|
||||
include/linux/plist.h include/linux/resource.h \
|
||||
/usr/src/kernels/2.6.32-573.26.1.el6.x86_64/arch/x86/include/asm/resource.h \
|
||||
include/asm-generic/resource.h include/linux/hrtimer.h \
|
||||
include/linux/task_io_accounting.h include/linux/latencytop.h \
|
||||
include/linux/cred.h include/linux/key.h include/linux/selinux.h \
|
||||
include/linux/percpu-rwsem.h include/linux/atomic.h include/linux/aio.h \
|
||||
include/linux/aio_abi.h include/linux/uio.h
|
||||
@@ -0,0 +1,14 @@
|
||||
|
||||
|
||||
obj-m := get_pid.o
|
||||
|
||||
KERNELDIR ?= /lib/modules/$(shell uname -r)/build
|
||||
|
||||
PWD := $(shell pwd)
|
||||
|
||||
all:
|
||||
make -C $(KERNELDIR) M=$(PWD) modules
|
||||
|
||||
clean:
|
||||
make -C $(KERNELDIR) M=$(PWD) clean
|
||||
|
||||
@@ -0,0 +1,78 @@
|
||||
/*************************************************************************
|
||||
> File Name: process.c
|
||||
> Author: GatieMe
|
||||
> Mail: gatieme@163.com
|
||||
> Created Time: 2016年04月01日 星期五 21时09分29秒
|
||||
************************************************************************/
|
||||
|
||||
|
||||
|
||||
#include <linux/init.h>
|
||||
#include <linux/module.h>
|
||||
#include <linux/moduleparam.h>
|
||||
|
||||
#include <linux/sched.h>
|
||||
#include <linux/pid.h>
|
||||
|
||||
|
||||
|
||||
//#define METHOD 2
|
||||
static unsigned int METHOD = 1;
|
||||
module_param(METHOD, uint,0400);
|
||||
|
||||
static unsigned int PID = 1;
|
||||
module_param(PID, uint,0400);
|
||||
|
||||
|
||||
int kthread_function(void *argc)
|
||||
{
|
||||
printk(KERN_ALERT "in the kernel thread function!\n");
|
||||
return 0;
|
||||
}
|
||||
|
||||
void do_print_pid()
|
||||
{
|
||||
pid_t res;
|
||||
|
||||
// create a kernel thread
|
||||
res = kernel_thread(kthread_function, NULL, CLONE_KERNEL);
|
||||
|
||||
// get the pid of the kernel thread you create
|
||||
struct pid* ktpid = find_get_pid(res);
|
||||
|
||||
// get the task info of the kernel thread
|
||||
struct task_struct* task = pid_task(kpid, PIDTYPE_PID);
|
||||
|
||||
printk(KERN_ALERT "the state of the task is:%d\n", task->state); //显示任务当前所处的状态
|
||||
|
||||
// get the real PID of the kernel thread
|
||||
printk(KERN_ALERT "the pid of the task is:%d\n", task->pid); //显示任务的进程号
|
||||
|
||||
// get the thread id of the kernel thread
|
||||
printk(KERN_ALERT "the tgid of the task is:%d\n", task->tgid);
|
||||
|
||||
// 显示函数kernel_thread( )函数执行结果
|
||||
printk(KERN_ALERT "the kernel_thread result is:%d\n", res);
|
||||
printk(KERN_ALERT "out pid_task_init.\n");
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
static int init_print_pid(void)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
static void exit_print_pid(void)
|
||||
{
|
||||
printk(KERN_ALERT "GOOD BYE:print_pid!!\n");
|
||||
}
|
||||
|
||||
|
||||
|
||||
module_init(init_print_pidt);
|
||||
module_exit(exit_print_pid);
|
||||
|
||||
MODULE_AUTHOR("gatieme");
|
||||
MODULE_LICENSE("GPL");
|
||||
Reference in New Issue
Block a user