/*****************************************************************
* Copyright (C) 2015 Intel Technology Co.,Ltd.*
******************************************************************
* lsitprocess.c
*
* DESCRIPTION:
* 列出所有的進(jìn)程/線程
* AUTHOR:
* 劉峰 11579502
*
* CREATED DATE:
* 2015年09月17日
* REVISION:
* 1.0
*
* MODIFICATION HISTORY
* --------------------
* $Log:$
* 劉峰 2015年09月17日 Creation
*****************************************************************/
#include <linux/module.h>
#include <linux/kernel.h>
#include <linux/types.h>
#include <linux/init.h>
#include <linux/err.h>
#include <linux/proc_fs.h>
#include <linux/time.h>
#include <linux/hrtimer.h>
#include <linux/kvm_para.h>
#include <linux/seq_file.h>
#include <asm/u
access.h>
#include <stdbool.h>
#include <asm/msr.h>
#include <linux/slab.h>
#include <asm/page_64_types.h>
#include <linux/sched.h>
#define LOCAL static
#define KMOD_DBGDUMP(fmt, args...) printk(KERN_DEBUG "LISTPROCESS[%d] "fmt"
", __LINE__, args);
#define KMOD_RAWDUMP(args...) printk(args); /* RAW 信息輸出 */
LOCAL struct proc_dir_entry *proc_file = NULL;
LOCAL int32_t kmod_action_sw = 8;
#define TEST_CASE_1 (1)
#define TEST_CASE_2 (2)
#define TEST_CASE_3 (3)
#define KMODSEPC
/******************************************************************************
* DESCRIPTION:
* 利用list_for_each_entry進(jìn)行打印
* INPUTS:
* none
* OUTPUTS:
* none
* RETURNS:
* none
******************************************************************************/
void listprocess_test_case_1(void){
struct task_struct *task = NULL;
struct task_struct *p = NULL;
struct list_head *pos;
int count = 0;
printk("list_for_each
");
printk("PID COMM
");
task = &init_task;
list_for_each(pos, &task->tasks ) {
p = list_entry(pos, struct task_struct, tasks);
count++;
printk("%d %s
", p->pid, p->comm);
}
printk("Total process %d
", count);
return;
}
/******************************************************************************
* DESCRIPTION:
* 利用for_each_process進(jìn)行打印
* INPUTS:
* none
* OUTPUTS:
* none
* RETURNS:
* none
******************************************************************************/
void listprocess_test_case_2(void){
struct task_struct *tsk;
int count = 0;
printk("for_each_process
");
printk("PID COMM
");
for_each_process(tsk){
count++;
printk("%d %s
", tsk->pid, tsk->comm);
}
printk("Total process %d
", count);
return;
}
/******************************************************************************
* DESCRIPTION:
* 利用for_each_process_thread進(jìn)行打印
* INPUTS:
* none
* OUTPUTS:
* none
* RETURNS:
* none
******************************************************************************/
void listprocess_test_case_3(void){
struct task_struct *p;
struct task_struct *t;
int count = 0;
printk("for_each_process_thread
");
printk("PID COMM
");
for_each_process_thread(p,t){
count++;
printk("%d %s
", t->pid, t->comm);
}
printk("Total thread %d
", count);
return;
}
#if 1
KMODSEPC
#endif
/******************************************************************************
* DESCRIPTION:
* PROC 文件讀方法
* INPUTS:
* none
* OUTPUTS:
* none
* RETURNS:
* none
******************************************************************************/
LOCAL int kmod_proc_read(struct seq_file * m, void * v)
{
seq_printf(m, "Entering kmod_proc_read
");
return 0;
}
/******************************************************************************
* DESCRIPTION:
* PROC 文件寫(xiě)方法
* INPUTS:
* none
* OUTPUTS:
* none
* RETURNS:
* none
******************************************************************************/
static ssize_t kmod_proc_write(struct file *file, const char __user *buffer, size_t count, loff_t *pos)
{
char debug_string[sizeof("4294967295")];
kmod_action_sw = 0;
KMOD_DBGDUMP("%s","Entering kmod_proc_write");
if (count >= sizeof(debug_string))
return -EINVAL;
if (copy_from_user(debug_string, buffer, count))
return -EFAULT;
debug_string[count] = '
主站蜘蛛池模板:
欧美一区二区三区影视
|
1000部精品久久久久久久久
|
欧美日韩国产亚洲乱码字幕
|
国产伦精品一区二区三区四区免费
|
精品久久久久久久久久久久久久久
|
久久成人一区
|
精品国产一区二区在线
|
色一乱一伦一图一区二区精品
|
中文字幕在线一区
|
狠狠干网
|
色接久久|
精品一区二区三区91
|
黄视频在线观看网站
|
99国产精品视频免费观看一公开
|
99精品国产高清一区二区麻豆
|
久久视频在线免费观看
|
亚洲电影av
|
久久九九免费
|
99精品久久久
|
成人欧美一区二区三区在线观看
|
日韩精品一区在线观看
|
免费午夜av
|
欧美一区二区精品久久久
|
污污的视频网站
|
亚洲精品福利视频
|
欧美中文字幕在线视频
|
日韩国产在线
|
а√中文在线8
|
国产免费一区二区
|
国产精品av在线
|
欧美成人二区
|
亚洲一区二区三区欧美
|
日韩欧美在线一区二区
|
国产精品视频一区二区三区
|
美女又爽又黄视频
|
国产在线黄色
|
天堂网www
|
国产香蕉在线
|
精品国产精品三级精品av网址
|
欧美日韩国产一区二区在线观看
|
国产精品二区三区
|