Linux内核API tasklet_trylock

tasklet_trylock函数功能描述:函数tasklet_trylock( )在实现过程中调用了函数test_and_set_bit( ),此函数完成将参数tasklet_struct结构体类型的变量的state成员中的bit[1]设置成1,同时返回原bit[1]的“非”。如果state字段bit[1]原值为1(表示此中断已在另一个CPU上执行),则函数tasklet_trylock( )返回0,也就表示此中断不可在此CPU上调度执行;如果state字段bit[1]原值为0,那么函数tasklet_trylock( )将返回1,表示此中断可在此CPU上调度执行。

tasklet_trylock文件包含

#include<linux/interrupt.h>

tasklet_trylock函数定义

在内核源码中的位置:linux-3.19.3/include/linux/interrupt.h

函数定义格式:

static inline int tasklet_trylock(struct tasklet_struct *t)
{
    return ! test_and_set_bit(TASKLET_STATE_RUN, &(t)->state);
}

tasklet_trylock输入参数说明

此函数的输入参数是struct tasklet_struct结构体类型的指针变量,代表软中断的描述符信息,其定义及详细解释参考函数__tasklet_hi_schedule( )分析文档的输入参数说明部分。

tasklet_trylock返回参数说明

函数tasklet_trylock ( )的返回值是int型的变量,可能的取值是0和1,与tasklet_struct结构体变量中的state字段的bit[1]的“非”相对应,如果bit[1]=1,则函数返回0,如果bit[1]=0,则函数返回1;返回0表示此中断不可在此CPU上执行,返回1表示此中断可在此CPU上执行。

tasklet_trylock实例解析

此函数没有单独测试,为了与函数tasklet_unlock( )进行比较,保证程序的正确执行,二者配对使用,所以测试程序及结果分析参考函数tasklet_unlock( )分析文档的实例解析部分。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程