<?xml version="1.0" encoding="gbk"?>
<rss version="2.0">
  <channel>
    <title>曲径通幽论坛 - Functions And Marco</title>
    <link>http://www.groad.net/bbs/forum.php?mod=forumdisplay&amp;fid=79</link>
    <description>Latest 20 threads of Functions And Marco</description>
    <copyright>Copyright(C) 曲径通幽论坛</copyright>
    <generator>Discuz! Board by Comsenz Inc.</generator>
    <lastBuildDate>Mon, 25 May 2026 03:29:19 +0000</lastBuildDate>
    <ttl>60</ttl>
    <image>
      <url>http://www.groad.net/bbs/static/image/common/logo_88_31.gif</url>
      <title>曲径通幽论坛</title>
      <link>http://www.groad.net/bbs/</link>
    </image>
    <item>
      <title>smp_processor_id() | 获得处理器 ID 号</title>
      <link>http://www.groad.net/bbs/forum.php?mod=viewthread&amp;tid=3521</link>
      <description><![CDATA[smp_processor_id() 宏可以获得本地 CPU 的下标，即执行代码的 CPU。该宏从当前进程的 thread_info() 结构的 cpu 字段获得下标并将它保存到 cpu 局部变量中。

如果一个多核 CPU，执行同一段代码，不同时刻执行此段代码所获得的 “核\&quot; 的 ID 都有可能不同，比如下面一段 ...]]></description>
      <category>Functions And Marco</category>
      <author>beyes</author>
      <pubDate>Thu, 12 May 2011 16:23:27 +0000</pubDate>
    </item>
    <item>
      <title>proc_mkdir | 在 /proc 下创建目录</title>
      <link>http://www.groad.net/bbs/forum.php?mod=viewthread&amp;tid=2778</link>
      <description><![CDATA[原型：


说明：
name : 要创建的目录名。

parent : 父目录指针

返回值：proc_dir_entry 类型指针，以后会传递这个指针到 create_proc_read_entry() 里以在 name 目录下创建文件。

用法：

这样，就在 /proc 下创建了 myproc 目录，并在 myproc 目录下创建了一个名为 ...]]></description>
      <category>Functions And Marco</category>
      <author>beyes</author>
      <pubDate>Mon, 27 Sep 2010 13:07:10 +0000</pubDate>
    </item>
    <item>
      <title>create_proc_read_entry(), create_proc_entry() | 创建 /proc 文件</title>
      <link>http://www.groad.net/bbs/forum.php?mod=viewthread&amp;tid=2777</link>
      <description><![CDATA[原型：


说明：
name : 要创建的文件名；

mode : 文件掩码，为 0 则按照系统默认的掩码创建文件。

base : 指定该文件所在的目录，如果为 NULL，则文件被创建在 /proc 根目录下。

read_proc : 实现该文件的 read_proc 函数。也就是说，当我们读取 \&quot;name\&quot; 这个文件时( ...]]></description>
      <category>Functions And Marco</category>
      <author>beyes</author>
      <pubDate>Mon, 27 Sep 2010 00:40:14 +0000</pubDate>
    </item>
    <item>
      <title>init_MUTEX | 初始化信号量为互斥量</title>
      <link>http://www.groad.net/bbs/forum.php?mod=viewthread&amp;tid=2762</link>
      <description><![CDATA[平台：X86 32位
内核：2.6.24
定义： 


说明：Init_MUTEX()函数初始化信号量为互斥量。 互斥量为信号量的特例，它可以防止数据被两个不同系统调用读写。 

sema_init (sem, 1) 定义为：

sleepers : 指定了允许进入等待进入临界区的进程数，这里初始化为 0 。
init_wa ...]]></description>
      <category>Functions And Marco</category>
      <author>beyes</author>
      <pubDate>Tue, 14 Sep 2010 15:12:59 +0000</pubDate>
    </item>
    <item>
      <title>poll_wait() | 注册 poll 等待队列</title>
      <link>http://www.groad.net/bbs/forum.php?mod=viewthread&amp;tid=1352</link>
      <description><![CDATA[应用程序使用 select() 或 poll() 调用设备驱动程序的 poll() 函数，该函数把输入输出复用处理的等待队列追加到由内核管理的进程的 poll_table()上。此时，poll() 函数上传递的参数包括含有设备文件信息的 struct file 结构体的指针参数 struct file *filp ，以及追加到 ...]]></description>
      <category>Functions And Marco</category>
      <author>beyes</author>
      <pubDate>Mon, 09 Nov 2009 10:36:43 +0000</pubDate>
    </item>
    <item>
      <title>wake_up_interruptible() | 唤醒注册到等待队列上的进程</title>
      <link>http://www.groad.net/bbs/forum.php?mod=viewthread&amp;tid=1336</link>
      <description><![CDATA[功能：唤醒注册到等待队列上的进程

原型：
 

说明：
唤醒 q 指定的注册在等待队列上的进程。该函数不能直接的立即唤醒进程，而是由调度程序转换上下文，调整为可运行状态。

变量：
q :&#160; 等待队列变量指针。]]></description>
      <category>Functions And Marco</category>
      <author>beyes</author>
      <pubDate>Tue, 03 Nov 2009 07:20:42 +0000</pubDate>
    </item>
    <item>
      <title>interruptible_sleep_on_timeout() | 睡眠超时设定</title>
      <link>http://www.groad.net/bbs/forum.php?mod=viewthread&amp;tid=1335</link>
      <description><![CDATA[功能：使进程睡眠一定时间

原型：
#include 
 long interruptible_sleep_on_timeout(wait_queue_head_t *q, long timeout);

说明：
在 q 指向的等待队列上注册当前运行中的进程信息，并使调用的进程进入睡眠状态。如果未满足苏醒条件，即使没有调用 wake_up_interrupt ...]]></description>
      <category>Functions And Marco</category>
      <author>beyes</author>
      <pubDate>Tue, 03 Nov 2009 07:17:30 +0000</pubDate>
    </item>
    <item>
      <title>interruptible_sleep_on() | 使进程进入睡眠</title>
      <link>http://www.groad.net/bbs/forum.php?mod=viewthread&amp;tid=1333</link>
      <description><![CDATA[功能：使进程进入睡眠状态

原型：
 

说明：在 q 指向的队列上注册当前运行中的进程信息，并使调用的进程进入睡眠。

变量： q 等待队列变量指针。]]></description>
      <category>Functions And Marco</category>
      <author>beyes</author>
      <pubDate>Tue, 03 Nov 2009 07:05:54 +0000</pubDate>
    </item>
    <item>
      <title>init_waitqueue_head() | 初始化等待队列变量</title>
      <link>http://www.groad.net/bbs/forum.php?mod=viewthread&amp;tid=1332</link>
      <description><![CDATA[功能：初始化等待队列的变量

原型：
 

说明：　初始化 q 指向的等待队列变量

变量： q 等待队列变量指针 (地址) .]]></description>
      <category>Functions And Marco</category>
      <author>beyes</author>
      <pubDate>Tue, 03 Nov 2009 05:54:12 +0000</pubDate>
    </item>
    <item>
      <title>irq_set_type | 设置触发中断条件</title>
      <link>http://www.groad.net/bbs/forum.php?mod=viewthread&amp;tid=1267</link>
      <description><![CDATA[功能： 设置触发中断的条件类型

原型：
 

参数：
irq&#160; :&#160; IRQ 中断号

type : 触发条件类型

关于 type 的宏定义如下：]]></description>
      <category>Functions And Marco</category>
      <author>beyes</author>
      <pubDate>Sat, 17 Oct 2009 10:37:02 +0000</pubDate>
    </item>
    <item>
      <title>free_irq() | 注销中断服务函数</title>
      <link>http://www.groad.net/bbs/forum.php?mod=viewthread&amp;tid=1262</link>
      <description><![CDATA[当不再使用已注册的中断服务时，使用 free_irq() 函数将其从内核注销掉。该函数在 2.4 内核和 2.6 内核中原型相同。

原型：
 

参数：
irq&#160; 是将要注销掉的中断服务函数的中断号；
dev_id&#160; 值指定与 request_irq() 函数中使用的 dev_id 值相同的值。

示例代 ...]]></description>
      <category>Functions And Marco</category>
      <author>beyes</author>
      <pubDate>Thu, 15 Oct 2009 17:45:31 +0000</pubDate>
    </item>
    <item>
      <title>request_irq() | 注册中断服务</title>
      <link>http://www.groad.net/bbs/forum.php?mod=viewthread&amp;tid=1261</link>
      <description><![CDATA[在 2.4 内核和 2.6内核中都使用 request_irq() 函数来注册中断服务函数。在 2.4 内核中，需要包含的头文件是 #include  ，2.6 内核中需要包含的头文件则是
&#160;#include  。函数原型如下：

2.4 内核int request_irq (unsigned int irq, void (*handler)(int, void *, ...]]></description>
      <category>Functions And Marco</category>
      <author>beyes</author>
      <pubDate>Thu, 15 Oct 2009 17:22:16 +0000</pubDate>
    </item>
    <item>
      <title>内核定时器 | del_timer()</title>
      <link>http://www.groad.net/bbs/forum.php?mod=viewthread&amp;tid=1229</link>
      <description><![CDATA[名称： del_timer()

功能： 消除注册到内核定时器目录上的内容

原型：
 

说明：
从内核定时器目录消除结构体。内核定时器的目录为连接 list 结构，不是消除结构体的内容，而是修改结构体的连接信息，因此该函数不参与结构体变量的分配和消除。

变量：
timer&#160;&amp;# ...]]></description>
      <category>Functions And Marco</category>
      <author>beyes</author>
      <pubDate>Mon, 28 Sep 2009 09:33:41 +0000</pubDate>
    </item>
    <item>
      <title>内核定时器 ｜ add_timer()</title>
      <link>http://www.groad.net/bbs/forum.php?mod=viewthread&amp;tid=1228</link>
      <description><![CDATA[名称： add_timer() 

原型：
 

说明：
注册到内核定时器目录中。内核定时器的目录为连接 list 结构(链表)，这不是复制结构体的内容，二十修改结构体的连接信息，因此该函数不参与结构体变量的分配和消除。

变量：
timer&#160; :&#160; 内核定时器上注册的结构体的数 ...]]></description>
      <category>Functions And Marco</category>
      <author>beyes</author>
      <pubDate>Mon, 28 Sep 2009 09:30:24 +0000</pubDate>
    </item>
    <item>
      <title>内核定时器 | init_timer()</title>
      <link>http://www.groad.net/bbs/forum.php?mod=viewthread&amp;tid=1227</link>
      <description><![CDATA[名称： init_timer()

功能：初始化内核定时器的结构体

原型：
&#160;&#160;&#160;&#160;&#160;&#160; 
说明：
初始化 timer 结构体变量，使其能够注册到内核定时器目录上。
函数init_timer()主要设置该内核定时器归属系统中哪一个处理，并初始化内核定时器链表指针的n ...]]></description>
      <category>Functions And Marco</category>
      <author>beyes</author>
      <pubDate>Mon, 28 Sep 2009 09:24:19 +0000</pubDate>
    </item>
    <item>
      <title>时间处理宏函数 | mktime</title>
      <link>http://www.groad.net/bbs/forum.php?mod=viewthread&amp;tid=1224</link>
      <description><![CDATA[名称： mktime()

功能： 将以年，月，日，时，分，秒表示的时间换算为秒

原型：
 

说明： 以 年，月，日，时，分，秒表示的时间换算为秒

变量：
year&#160;&#160; 年mon&#160; 月day&#160;&#160;&#160; 日hour&#160; 时min&#160;&#160; 分sec&#160;&#160; 秒返回值 ...]]></description>
      <category>Functions And Marco</category>
      <author>beyes</author>
      <pubDate>Mon, 28 Sep 2009 08:51:21 +0000</pubDate>
    </item>
    <item>
      <title>时间处理函数 | do_settimeofday() -- 设定系统时间</title>
      <link>http://www.groad.net/bbs/forum.php?mod=viewthread&amp;tid=1223</link>
      <description><![CDATA[名称： do_settimeofday()

功能：设定系统时间

原型：
 

说明：把 tv 的时间设定为系统时间

变量：
tv&#160; 2.4 内核中使用 struct timeval 结构体指定以秒和微妙表示的时间地址； 2.6 内核中使用 struct timespec 结构体指定以秒和纳秒表示的时间地址。

返回值： ...]]></description>
      <category>Functions And Marco</category>
      <author>beyes</author>
      <pubDate>Mon, 28 Sep 2009 08:04:29 +0000</pubDate>
    </item>
    <item>
      <title>时间处理函数 | do_gettimeofday() -- 获取当前系统时间</title>
      <link>http://www.groad.net/bbs/forum.php?mod=viewthread&amp;tid=1222</link>
      <description><![CDATA[名称： do_gettimeofday() 

原型： 
 

说明： 

变量 tv 以秒和微妙表示当前系统时间，tv 指定获取当前系统时间的结构体变量地址。 

struct timeval 结构体： 
 
struct timeval 为设定时间或获取时间时使用的结构体，tv_sec 变量把当前时间换算为秒，tv_usec 值指定 ...]]></description>
      <category>Functions And Marco</category>
      <author>beyes</author>
      <pubDate>Mon, 28 Sep 2009 07:49:49 +0000</pubDate>
    </item>
    <item>
      <title>时间处理宏函数|ndelay()</title>
      <link>http://www.groad.net/bbs/forum.php?mod=viewthread&amp;tid=1221</link>
      <description><![CDATA[名称： ndelay()

功能： 以纳秒 ns&#160; ( 1/1 000 000 000s )为单位时间延迟

原型：
 

说明：
用于纳秒级延时，延迟时间为 nsecs 。系统如果不具备相应速度，只能起到 udaly (1) 的延时作用。

变量：
nsecs&#160; :&#160; 要延迟的 ns 单位时间。]]></description>
      <category>Functions And Marco</category>
      <author>beyes</author>
      <pubDate>Mon, 28 Sep 2009 03:41:25 +0000</pubDate>
    </item>
    <item>
      <title>时间处理宏函数|udelay()</title>
      <link>http://www.groad.net/bbs/forum.php?mod=viewthread&amp;tid=1220</link>
      <description><![CDATA[名称： udelay()

功能： 以 us ( 1/1000 000s ) 为单位时间延迟

原型：
 

说明：
用于微秒级延迟，延迟时间为 usecs 。usecs 的值不得超过 1 000 。

变量：
usecs&#160; :&#160;&#160; 要延迟的 us 单位时间]]></description>
      <category>Functions And Marco</category>
      <author>beyes</author>
      <pubDate>Mon, 28 Sep 2009 03:35:03 +0000</pubDate>
    </item>
  </channel>
</rss>