Lines Matching refs:func

49 重要的任务和中断抢占。您可以通过调用 :c:func:`schedule()` 进行睡眠。
56 且 :c:func:`in_interrupt()` ( ``include/linux/preempt.h`` )值为非(false)。
60 请注意,如果您禁用了抢占或软中断(见下文),:c:func:`in_interrupt()` 会
100 你可以使用 :c:func:`in_softirq()` 宏( ``include/linux/preempt.h`` )来确认
146 如果您的程序所做的只是读取或写入一些参数,请考虑实现 :c:func:`sysfs()` 接口。
198 :c:func:`printk()`
203 :c:func:`printk()` 将内核消息提供给控制台、dmesg和syslog守护进程。它对于调
218 :c:func:`printk()` 内部使用的1K缓冲区,不捕获溢出。请确保足够使用。
230 :c:func:`copy_to_user()` / :c:func:`copy_from_user()` / :c:func:`get_user()` / :c:func:`put_user()`
237 :c:func:`put_user()` 和 :c:func:`get_user()` 用于从用户空间中获取和向用户空
241 :c:func:`copy_to_user()` 和 :c:func:`copy_from_user()` 更通用:它们从/向用户
246 与 :c:func:`put_user()` 和 :c:func:`get_user()` 不同,它们返回未复制的
255 :c:func:`kmalloc()`/:c:func:`kfree()`
263 :c:func:`kmalloc()` 需要额外的标志词。重要的值:
281 字节,请考虑使用 :c:func:`__get_free_pages()` ( ``include/linux/gfp.h`` )。
285 如果分配的字节数超过一页,可以使用 :c:func:`vmalloc()` 。它将在内核映射中分
290 方法是在引导过程的早期通过 :c:func:`alloc_bootmem()` 函数分配。
304 :c:func:`mdelay()`/:c:func:`udelay()`
309 :c:func:`udelay()` 和 :c:func:`ndelay()` 函数可被用于小暂停。不要对它们使用
310 大的值,因为这样会导致溢出——帮助函数 :c:func:`mdelay()` 在这里很有用,或者
311 考虑 :c:func:`msleep()`。
313 :c:func:`cpu_to_be32()`/:c:func:`be32_to_cpu()`/:c:func:`cpu_to_le32()`/:c:func:`le32_to_cpu()`
318 :c:func:`cpu_to_be32()` 系列函数(其中“32”可以替换为64或16,“be”可以替换为
321 :c:func:`be32_to_cpu()` 等。
323 这些函数有两个主要的变体:指针变体,例如 :c:func:`cpu_to_be32p()` ,它获取
325 :c:func:`cpu_to_be32s()` ,它转换指针引用的值,并返回void。
327 :c:func:`local_irq_save()`/:c:func:`local_irq_restore()`
335 直接使用 :c:func:`local_irq_disable()` 和 :c:func:`local_irq_enable()`。
339 :c:func:`local_bh_disable()`/:c:func:`local_bh_enable()`
349 :c:func:`smp_processor_id()`
354 :c:func:`get_cpu()` 禁用抢占(这样您就不会突然移动到另一个cpu)并返回当前
356 使用 :c:func:`put_cpu()` 再次返回。
359 可以使用 :c:func:`smp_processor_id()`。
369 被删除。请参阅头文件以使用。请注意,使用 :c:func:`EXPORT_SYMBOL()` 或
370 :c:func:`EXPORT_SYMBOL_GPL()` 将标记为 ``__init`` 的函数导出到模块是没有意义
374 :c:func:`__initcall()`/:c:func:`module_init()`
380 :c:func:`module_init()` 和 :c:func:`module_exit()` 宏可以简化代码编写,无需
383 :c:func:`module_init()` 宏定义在模块插入时(如果文件编译为模块)或在引导时
384 调用哪个函数:如果文件未编译为模块,:c:func:`module_init()` 宏将等效于
385 :c:func:`__initcall()` ,它通过链接器的魔力确保在引导时调用该函数。
390 :c:func:`module_exit()`
402 :c:func:`try_module_get()`/:c:func:`module_put()`
409 :c:func:`try_module_get()` :若失败,那么该模块将被删除,您应该将其视为不存在。
410 若成功,您就可以安全地进入模块,并在完成后调用模块 :c:func:`module_put()` 。
428 使用 :c:func:`DECLARE_WAIT_QUEUE_HEAD()` 宏声明一个 ``wait_queue_head_t`` ,
429 或者在初始化代码中使用 :c:func:`init_waitqueue_head()` 程序。
435 个宏可以来执行此操作: :c:func:`wait_event_interruptible()`
438 :c:func:`wait_event()` 版本会忽略信号。
443 调用 :c:func:`wake_up()` ( ``include/linux/wait.h`` ),它将唤醒队列中的所有
453 :c:func:`atomic_read()` 和 :c:func:`atomic_set()` 获取并设置计数器,还有
454 :c:func:`atomic_add()` ,:c:func:`atomic_sub()` ,:c:func:`atomic_inc()` ,
455 :c:func:`atomic_dec()` 和 :c:func:`atomic_dec_and_test()` (如果递减为零,
464 位。:c:func:`set_bit()`,:c:func:`clear_bit()` 和 :c:func:`change_bit()` 设置、
465 清除和更改给定位。:c:func:`test_and_set_bit()` ,:c:func:`test_and_clear_bit()`
466 和 :c:func:`test_and_change_bit()` 执行相同的操作,但如果之前设置了位,则返回
479 :c:func:`EXPORT_SYMBOL()`
486 :c:func:`EXPORT_SYMBOL_GPL()`
492 类似于 :c:func:`EXPORT_SYMBOL()`,只是 :c:func:`EXPORT_SYMBOL_GPL()` 导出的
493 符号只能由具有由 :c:func:`MODULE_LICENSE()` 指定GPL兼容许可证的模块看到。这
497 :c:func:`EXPORT_SYMBOL_NS()`
505 :c:func:`EXPORT_SYMBOL_NS_GPL()`
522 通常 :c:func:`list_for_each_entry()` 很有用。
531 使用 :c:func:`ERR_PTR()` ( ``include/linux/err.h`` )将负错误值编码到指针中,
532 然后使用 :c:func:`IS_ERR()` 和 :c:func:`PTR_ERR()` 将其再取出:避免为错误值
704 感谢Werner Almesberger对 :c:func:`disable_irq()` 做了一个很好的总结,