我有一段代码,我想以秒计算时间..虽然我在jiffies中得到时间,我怎么能在几秒钟内转换它?
这是我的内核代码:
#include <linux/module.h>
#include <linux/kernel.h>
#include <linux/jiffies.h>
#include <linux/timer.h>
unsigned long js, je, tet;
int netblock_init_module(void){
js = jiffies;
printk("\n[Jiffies start Time : %lu]\nModule Started.\n", js);
return 0;
}
void netblock_cleanup_module(void) {
je = jiffies;
printk("\n[Jiffies End Time : %lu]\nModule Removed.\n", je);
tet = je - js;
printk("\nEnd Time [%lu] - Start Time [%lu]: \nTotlal elapsed Time [%lu]\n",js,je, tet);
}
module_init(netblock_init_module);
module_exit(netblock_cleanup_module);
MODULE_LICENSE("GPL");
MODULE_DESCRIPTION("JIFFIES EXAMPLE");
MODULE_AUTHOR("RAHEEL");
Run Code Online (Sandbox Code Playgroud)
我得到的输出就像这样:
$ insmod jiffexample.ko
[Jiffies开始时间:13363583]
模块开始
$ rmmod jiffexample.ko
[Jiffies结束时间:13361588]
模块已删除.
结束时间13361588 - …
我正在寻找将 PID 值从用户空间复制到内核空间,这是我的代码快照。
内核模块:
#include <linux/module.h>
#include <linux/kernel.h>
#include <linux/init.h>
#include <asm/siginfo.h>
#include <linux/rcupdate.h>
#include <linux/sched.h>
#include <linux/uaccess.h>
#include <linux/signal.h>
MODULE_LICENSE ("GPL");
struct siginfo sinfo;
pid_t pid;
struct task_struct *task;
int init_module()
{
memset(&sinfo, 0, sizeof(struct siginfo));
sinfo.si_signo = SIGIO;
sinfo.si_code = SI_USER;
pid = 5218; // Everytime a new PID
// task = find_task_by_vpid(pid); I am also working on new and old version of UBUNTU so thats why this is here
task = pid_task(find_vpid(pid), PIDTYPE_PID);
printk("%d .\n", task);
if(task …Run Code Online (Sandbox Code Playgroud)