Linux kernel
文章平均质量分 50
linux_coder
这个作者很懒,什么都没留下…
展开
-
内核中调用用户程序的接口
1。进入正题前,先说明内核拷贝的一个问题 对于读写等接口 最需要注意的一点是:这种类型接口会调用copy_to_user 或者 copy_from_user这两个是进行用户空间拷贝在X86体系结构中 内核调用这个接口必须设置FS段寄存器的值 因为整个拷贝是通过(段寄存器:偏移值寄存器)定位的FS原来指向用户空间,而DS指向内核空间的段,需要将FS更改成内核空间,完成拷贝操作后,再更改回来。原创 2006-12-30 10:58:00 · 1312 阅读 · 0 评论 -
内核里面屏蔽信号的方法
spin_lock_irqsave(¤t->sigmask_lock, flags); oldset = current->blocked; sigfillset(¤t->blocked); recalc_sigpending(current); // 重新计算current->sigpending spin_unlock_irqre原创 2006-12-30 10:50:00 · 1318 阅读 · 0 评论 -
关于linux bitops的使用
内核API没有通用的标准 即使在内核的文档和头文件也没详细给出一个多平台开发中多处用到bitops 结果碰到许多问题1int find_first_zero_bit(void * addr, unsigned size);int find_next_zero_bit(void * addr, int size, int offset);找到0bit时,各平台都返回0~size-1在x86下,没原创 2006-12-30 11:56:00 · 4081 阅读 · 0 评论 -
Linux 计时概要
1.用户空间用户空间可以使用下面的函数,这些是新增加的通用接口,用来替代过时的不够精确的gettimeofday()。他们的精度取决于不同平台,应该都是硬件实现,struct timespec可表示的最小精度是纳秒#include int clock_getres(clockid_t clk_id, struct timespec *res);int clock_gettime(clockid_原创 2007-04-29 10:24:00 · 1327 阅读 · 0 评论 -
如何在linux下编写自己得rpc调用
linux rpc在内核中实现,源代码位置是net/sunrpc/sunrpc不仅实现了rpc的调度,同时将rpc请求构造解析发送接受的通用部分进行了提取。要定义自己的rpc调用仅需要实现那些非通用的部分,下面简要介绍怎么实现一个自己的rpc客户端(2.4内核)主要数据结构介绍1。rpc请求/* * This is the RPC buffer */struct rpc_iov {原创 2007-04-30 16:58:00 · 2237 阅读 · 0 评论 -
kernel oops 分析
https://groups.google.com/group/linux.kernel/browse_thread/thread/b70bffe9015a8c41/ed9c0a0cfcd31111from Linus原文如下:---On Mon, 7 Jan 2008, Kevin Winchester wrote: > J. Bruce Fields wrote: > > Is th转载 2008-06-05 13:28:00 · 3421 阅读 · 0 评论