E-COM-NET
首页
在线工具
Layui镜像站
SUI文档
联系我们
推荐频道
Java
PHP
C++
C
C#
Python
Ruby
go语言
Scala
Servlet
Vue
MySQL
NoSQL
Redis
CSS
Oracle
SQL Server
DB2
HBase
Http
HTML5
Spring
Ajax
Jquery
JavaScript
Json
XML
NodeJs
mybatis
Hibernate
算法
设计模式
shell
数据结构
大数据
JS
消息中间件
正则表达式
Tomcat
SQL
Nginx
Shiro
Maven
Linux
PTR_ERR
Linux内核中线程,linux内核中创建线程方法
1.头文件#include//wake_up_process()#include//kthread_create()、kthread_run()#include//IS_ERR()、
PTR_ERR
()2
仙格草
·
2023-12-02 04:57
Linux内核中线程
如何理解Linux内核IS_ERR、ERR_PTR、
PTR_ERR
文章目录一、如何理解一些特殊的符号二、内核空间的指针类型三、如何理解内核空间最大的错误码四、解读内核相关内联函数的含义五、附上内核源码(include/linux/err.h)一、如何理解一些特殊的符号1)inline:内联函数。内联函数的代码会直接嵌入到调用它的位置,调用几次就复制几次。2)__must_check:调用函数时一定要处理函数的返回值,否则编译器会给出警告。3)unlikely:告
积步千里
·
2023-01-20 19:45
Linux
嵌入式
笔记
linux
运维
服务器
Linux——操作系统启动——kernel使用的通常函数和宏
IS_ERR用于判断指针函数的返回值是否为错误码,如果是,则表示该指针函数执行失败
PTR_ERR
用于将指针型的错误码转换为长整型的1.2宏1.3函数wait_for_completion先将x->wait
KGback
·
2023-01-14 07:51
Linux
linux
ERR_PTR()和
PTR_ERR
()
归纳:内核空间最高地址0xffffffff,那么最后一个page就是指的0xfffff000~0xffffffff(假设4k一个page).这段地址是被保留的linux的错误号,例如最常见的几个-EBUSY,-EINVAL,-ENODEV,-EPIPE,-EAGAIN,-ENOMEM之类,其值都位于这个空间。其实未加负号之前的值(见下面),其实也位于一个内存的内存区域。#defineEPERM1/
adaptiver
·
2022-02-11 11:43
linux开发
linux 内核线程的创建
可以被调度,可以被抢占1.头文件#include//wake_up_process()#include//kthread_create()、kthread_run()#include//IS_ERR()、
PTR_ERR
xiaoyao1004
·
2020-09-14 08:46
linux
内核
thread
kthread_run
kthread_create
linux内核中的IS_ERR()、
PTR_ERR
()、ERR_PTR()
linux内核中的IS_ERR()、
PTR_ERR
()、ERR_PTR()IS_ERR宏定义在include/linux/err.h,如下所示:#defineMAX_ERRNO4095//判断x是不是在
crowd2019
·
2020-08-22 22:39
thermal的cpu cool device
imx_thermal_probe中有注册cpucooldevicedata->cdev=cpufreq_cooling_register(cpu_present_mask);if(IS_ERR(data->cdev)){ret=
PTR_ERR
tiantao2012
·
2020-08-03 05:22
Linux
源码分析
IS_ERR
PTR_ERR
ERR_PTR原理小记
今天在阅读Linux内核源代码的时候,看到了IS_ERR这个函数,觉得很有意思,深入地了解了一下,现把学习的结果记录一下。IS_ERR宏的出现,是为了解决函数返回值的问题。由于C语言的函数返回值只能有一个,如果一个函数在正常执行后,返回一个指针,而在出现错误的时候,返回错误码,如何来实现这个需求呢?下面是一段示例代码:void*p=NULL;interr=func(&p);if(err==0){/
JFJIANG
·
2020-02-12 07:38
open
structopen_flagsop;intlookup=build_open_flags(flags,mode,&op);structfilename*tmp=getname(filename);intfd=
PTR_ERR
grimlock44
·
2019-12-12 09:49
linux内核中创建线程方法
1.头文件#include//wake_up_process()#include//kthread_create()、kthread_run()#include//IS_ERR()、
PTR_ERR
()2
Linux知识积累
·
2018-06-06 07:00
kernel thread与进程描述符
****************/#include//wake_up_process()#include//kthread_creat,kthread_run()#include//IS_ERR(),
PTR_ERR
jiazhi_lian
·
2016-03-25 17:59
linux驱动
IS_ERR()、
PTR_ERR
() and ERR_PTR() in Linux Kernel
内核中的函数常常返回指针,通常如果调用出错,会返回NULL空指针,但linux做了更精妙的处理,能够通过返回的指针体现出来。 对任何一个指针,必然有三种情况:一种是有效指针,一种是NULL,空指针,一种是错误指针,或者说无效指针。而所谓的错误指针就是指其已经到达了最后一个page,比如对于32bit的系统来说,内核空间最高地址0xffffffff,那么最后一个page就是指的0xfffff
tlaff
·
2015-12-29 16:00
linux
kernel
ERR_PTR,
PTR_ERR
还有IS_ERR函数详解
内核中的函数常常返回指针,问题是如果出错,也希望能够通过返回的指针体现出来。 总体来说,如果内核返回一个指针,那么有三种情况:合法指针,NULL指针和非法指针。 1)合法指针:内核返回的指针一般是指向页面的边界(4K边界),即 ptr & 0xfff == 0 2)非法指针:这样ptr的值不可能落在(0xfffff000,0xfffff
·
2015-10-31 10:30
函数
IS_ERR、
PTR_ERR
、ERR_PTR
最近在使用filp_open打开文件时遇到到一个问题,当打开一个并不存在的文件时,filp_open返回值值为0xfffffffe,而并不是0(NULL),这是因为内核对返回指针的函数做了特殊处理。内核中的函数常常返回指针,通常如果调用出错,会返回NULL空指针,但linux做了更精妙的处理,能够通过返回的指针体现出来。 对任何一个指针,必然有三种情况:一种是有效指针,一种是NULL,空指针,一
·
2015-10-23 08:10
tr
Linux内核源代码情景分析-从路径名到目标节点
unsignedflags,structnameidata*nd) { char*tmp; interr; tmp=getname(name);//在系统空间分配一个页面,并从用户空间把文件名复制到这个页面 err=
PTR_ERR
jltxgcy
·
2015-04-02 19:00
linux内核中的IS_ERR
linux内核中的IS_ERR()、
PTR_ERR
()和ERR_PTR()在看内核源码的时候,经常会遇到IS_ERR,比如在 linux/arch/arm/kernel/sys_arm.c中[plain
SdustLiYang
·
2014-04-17 14:00
ERR_PTR,
PTR_ERR
还有IS_ERR函数详解
内核中的函数常常返回指针,问题是如果出错,也希望能够通过返回的指针体现出来。总体来说,如果内核返回一个指针,那么有三种情况:合法指针,NULL指针和非法指针。1)合法指针:内核返回的指针一般是指向页面的边界(4K边界),即 ptr&0xfff==02)非法指针:这样ptr的值不可能落在(0xfffff000,0xffffffff)之间(这个区间是内核高端内存所在的区间,关于用户空间和内核空间,
trochiluses
·
2013-07-11 10:00
指针
错误处理
linux内核
解读
PTR_ERR
,ERR_PTR,IS_ERR
我们知道内核有些函数是返回指针的,如Kmalloc分配内存,如果分配不到内核就会返回NULL指针,这样我们可以通过判断是否是NULL指针来判断Kmalloc执行成功与否。但是有些函数返回错误时,我们不仅需要知道函数错了,还需要知道错在哪里了,也就是说我们要或得错误码。在用户空间编程的时候,因为每个线程都有一个error变量,我们可以通过访问这个变量来得到错误码。但是在内核就没有这个变量,所以不能这
dandelionj
·
2013-01-24 10:00
linux
linux
linux
linux内核中的IS_ERR
linux内核中的IS_ERR()、
PTR_ERR
()和ERR_PTR() 在看内核源码的时候,经常会遇到IS_ERR,比如在linux/arch/arm/kernel/sys_arm.c中 asmlinkage
xitong
·
2013-01-02 13:00
linux
linux内核中的IS_ERR
linux内核中的IS_ERR()、
PTR_ERR
()和ERR_PTR()在看内核源码的时候,经常会遇到IS_ERR,比如在 linux/arch/arm/kernel/sys_arm.c中asmlinkageintsys_execve
ce123
·
2013-01-02 13:00
解读
PTR_ERR
,ERR_PTR,IS_ERR
看到了几个宏
PTR_ERR
,ERR_PTR,IS_ERR(其实是内联函数).还是不太明白,然后就google搜索了一下,搜出来的结果真是不让人满意,看完一些解释我更迷糊了。
YAOZHENGUO2006
·
2012-09-11 15:00
Math
linux
struct
File
assembly
System
linux内核线程相关
头文件#include //wake_up_process()#include //kthread_create()、kthread_run()#include //IS_ERR()、
PTR_ERR
myxmu
·
2012-09-06 10:00
函数ERR_PTR,
PTR_ERR
还有IS_ERR理解
许多的内核函数需要返回一个指针,但是函数的调用可能失败,一般我们处理这样的情形都是返回一个NULL指针,就像malloc或kmalloc在没有获得指定的空间申请时的返回值一样。但是有时我们想知道导致函数失败的原因,但是返回NULL就显得信息不够。因此有些函数返回一个实际的错误编码以便对引起错误的原因做一些处理。很多内核接口通过把错误值编码到一个指针值中来返回错误信息。当处理这样的函数时,判断是否成
Kaiwii
·
2012-02-05 10:00
assembly
null
Linux 内核线程 的 创建 和 终止
创建内核线程1.头文件#include//wake_up_process()#include//kthread_create()、kthread_run()#include//IS_ERR()、
PTR_ERR
coder_jack
·
2010-06-28 22:00
重温IS_ERR
PTR_ERR
ERR_PTR
问题起源于这个问题:http://linux.chinaunix.net/bbs/thread-1051055-1-35.html主要是当初不知道Linux/Unix下产生错误时会返回一个小的错误码。如-ENXIO-ENOMEM 知道后又想了解一下原理,下面两个地址说的比较明白:http://linux.chinaunix.net/bbs/thread-1019406-1-1.html注意,上面链
rossini23
·
2010-01-04 21:00
OS
编译器
PTR_ERR
转换为指针作为错误码内核中许多函数用返回值[-1L,-1000L]代表错误,这部分空间没有被影射.有些地方的返回值类型是指针,那么如果没有检测返回值就访问该指针的话,那么就发生内核缺页异常,非法访问被捕获.内核专门有两个函数
PTR_ERR
zqy2000zqy
·
2006-09-01 10:00
上一页
1
下一页
按字母分类:
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
其他