struct kfifo *kfifo_init(unsigned char *buffer, unsigned int size, gfp_t gfp_mask, spinlock_t *lock) { struct kfifo *fifo; /* size must be a power of 2 */ BUG_ON(size&(size - 1)); fifo = kmalloc(sizeof(struct kfifo), gfp_mask); if (!fifo) return ERR_PTR(-ENOMEM); fifo...
内核等待队列中要使用的TASK_NORMAL、TASK_INTERRUPTIBLE包含在这个头文件。 #include<linux/kfifo.h> fifo环形队列。 #include<linux/timer.h> 内核定时器。 #include<linux/input.h> 中断处理 。 #include <linux/delay.h> 延时头文件。 #include <asm/irq.h> 与处理器相关的中断。 #include<linux/interrupt...
kthread.o wait.o kfifo.o sys_ni.o posix-cpu-timers.o mutex.o \ hrtimer.o rwsem.o nsproxy.o srcu.o semaphore.o \ notifier.o ksysfs.o pm_qos_params.o sched_clock.o notifier.o ksysfs.o pm_qos_params.o sched_clock.o cred.o CFLAGS_REMOVE_sched.o = -mno-spe96 changes: 96 ad...
kfifo.h kgdb.h khugepaged.h klist.h kmemleak.h kmod.h kmsg_dump.h kobj_map.h kobject.h kobject_ns.h kprobes.h kref.h ks0108.h ks8842.h ks8851_mll.h ksm.h kthread.h ktime.h kvm_dirty_ring.h kvm_host.h kvm_irqfd.h kvm_para.h kvm_types.h l2tp.h ...
Linux内核提供了简单、有效的映射数据结构。但是它并非一个通用的映射。因为它的目标是 :映射一个唯一的标识数(UID)到一个指针 除了提供三个标准的映射操作外,Linux还在add操作基础上实现了allocate操作。这个allocate操作不但向map中加入了键值对,而且还可产生UID ...
链表是一种存放和操作可变数量元素(常称为节点)的数据结构。链表和静态数组的不同之处在于,它所包含的元素都是动态创建并插入链表的,在编译时不必知道具体需要创建多少个元素。另外也因为链表中每个元素的创建时间各不相同,所以它们在内存中无须占用连续内存区。正是因为元素不连续地存放,所以各元素需要通过某种方式被...
kfifo.h kgdb.h khugepaged.h klist.h kmemleak.h kmod.h kmsan-checks.h kmsan.h kmsan_string.h kmsan_types.h kmsg_dump.h kobj_map.h kobject.h kobject_api.h kobject_ns.h kprobes.h kref.h kref_api.h ks0108.h ks8842.h ks8851_mll.h ksm.h kstrtox.h...
kfifo对象维护了两个偏移量:入口偏移和出口偏移 入口偏移是指下一次入队列时的位置 出口偏移是指下一次出队列时的位置 出口偏移总是小于等于入口偏移,否则无意义,因为那样说明要出队列的元素根本还没有入队列 三、创建队列 备注:kfifo_init和kfifo_alloc的size必须是2的幂 ...
Linux内核提供了简单、有效的映射数据结构。但是它并非一个通用的映射。因为它的目标是 :映射一个唯一的标识数(UID)到一个指针 除了提供三个标准的映射操作外,Linux还在add操作基础上实现了allocate操作。这个allocate操作不但向map中加入了键值对,而且还可产生UID ...