范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文
国学影视

Linux内核ISERR

  本文介绍Linux 4.4内核 IS_ERR()  函数。
  文件: include/linux/err.h  ,定义如下: #define MAX_ERRNO   4095  ## 对于64位系统,判断x是否在0xffff ffff ffff f001 ~ 0xffff ffff ffff ffff #define IS_ERR_VALUE(x) unlikely((x) >= (unsigned long)-MAX_ERRNO)  static inline long __must_check PTR_ERR(__force const void *ptr) {     return (long) ptr; }  static inline bool __must_check IS_ERR(__force const void *ptr) {     return IS_ERR_VALUE((unsigned long)ptr); }一、功能
  功能:判断传入的指针 ptr  是否有效。
  Linux内核指针包括:有效指针、空指针(NULL)和错误指针。
  Linux内核用最后4K空间保存指针的出错码,64位的系统地址为: 0xffff ffff ffff f001 ~ 0xffff ffff ffff ffff  。
  如果是错误指针,配合 PTR_ERR()  函数判断错误代码。
  文件: include/uapi/asm-generic/errno-base.h  ,定义如下: #define EPERM        1  /* Operation not permitted */ #define ENOENT       2  /* No such file or directory */ #define ESRCH        3  /* No such process */ #define EINTR        4  /* Interrupted system call */ #define EIO      5  /* I/O error */ #define ENXIO        6  /* No such device or address */ #define E2BIG        7  /* Argument list too long */ #define ENOEXEC      8  /* Exec format error */ #define EBADF        9  /* Bad file number */ #define ECHILD      10  /* No child processes */ #define EAGAIN      11  /* Try again */ #define ENOMEM      12  /* Out of memory */ ...
  文件: include/uapi/asm-generic/errno.h  ,定义如下: #define EDEADLK     35  /* Resource deadlock would occur */ #define ENAMETOOLONG    36  /* File name too long */ #define ENOLCK      37  /* No record locks available */  #define ENOSYS      38  /* Invalid system call number */  #define ENOTEMPTY   39  /* Directory not empty */ #define ELOOP       40  /* Too many symbolic links encountered */ ...
  文件: include/linux/errno.h  ,定义如下: #define ERESTARTSYS 512 #define ERESTARTNOINTR  513 #define ERESTARTNOHAND  514 /* restart if no handler.. */ #define ENOIOCTLCMD 515 /* No ioctl command */ #define ERESTART_RESTARTBLOCK 516 /* restart by calling sys_restart_syscall */ #define EPROBE_DEFER    517 /* Driver requests probe retry */ ...二、说明
  1) inline  :内联函数。内联函数的代码会直接嵌入到调用它的位置,调用几次就嵌入几次。
  2) __must_check  :指调用函数一定要处理函数的返回值,否则编译器会给出警告。
  3) __force  :表示变量可进行强制转换。
  4) unlikely  后续专门介绍。
  4) (unsigned long)-MAX_ERRNO  :用补码的方式表示-4095,64位系统为 0xffff ffff ffff f001  。 三、示例
  文件: drivers/gpu/drm/rockchip/rockchip_drm_drv.c      printk(KERN_ERR" ==== unsigned long 0x%lx  ", (unsigned long)-MAX_ERRNO);      ...     private->devfreq = devfreq_get_devfreq_by_phandle(dev, 0);     printk(KERN_ERR"==== IS_ERR(private->devfreq) %d , private->devfreq %p ",          IS_ERR(private->devfreq), private->devfreq);          ## 1、判断是否有效指针     if (IS_ERR(private->devfreq)) {         ## 2、判断错误码         if (PTR_ERR(private->devfreq) == -EPROBE_DEFER) {             parent_np = of_parse_phandle(np, "devfreq", 0);             if (parent_np &&                 of_device_is_available(parent_np)) {                 ...             } else {                 ## 3、运行到此处                 dev_info(dev, "dmc is disabled ");             }         } else {             ...         }         ...     }     ...      private->hdmi_pll.pll = devm_clk_get(dev, "hdmi-tmds-pll");     printk(KERN_ERR"==== IS_ERR(private->hdmi_pll.pll) %d , private->hdmi_pll.pll %p ",              IS_ERR(private->hdmi_pll.pll), private->hdmi_pll.pll);
  程序运行后,相关日志如下: [    2.270871] ==== unsigned long 0xfffffffffffff001 [    2.271322] ==== IS_ERR(private->devfreq) 1 , private->devfreq fffffffffffffdfb [    2.271993] rockchip-drm display-subsystem: dmc is disabled [    2.272504] ==== IS_ERR(private->hdmi_pll.pll) 0 , private->hdmi_pll.pll ffffffc0782e6340
  通过上面日志可以看出:
  1) private->devfreq  值为 0xfffffffffffffdfb  (值为-517),对应错误码 EPROBE_DEFER  ,此时 IS_ERR  返回1。
  2) private->hdmi_pll.pll  值为 0xffffffc0782e6340  ,是有效指针, IS_ERR  返回0。

Leetcode题号26删除数组中的重复元素,104求二叉树的最大深度题目一删除数组中的重复元素(简单)给你一个升序排列的数组nums,请你原地删除重复出现的元素,使每个元素只出现一次,返回删除后数组的新长度。元素的相对顺序应该保持一致。由于在某些语浏览颜色网站,这几样危害你都知道么导读关于什么是颜色网站小编在这里也不需要在普及了吧,有些老司机肯定是比小编懂得多了,但是法律法规小伙伴们一定要直到一些,但是今天小编要讲的是当你浏览颜色网站时候会有哪些风险?随着现钛晨报网易云音乐拟12月2日挂牌上市网信办同明星作品热搜同时段只呈现一条阿里云百度云被约谈,督促治理网络诈骗图片来源视觉中国钛媒体综合11月23日,网易云音乐宣布启动香港首次公开发行。公告显示,网易云音乐将在全球公开发行1600万股普通股,发售价区间定为每股190220港元,拟募资30。大家都不妨晒晒自家的联想设备,再考虑要不要砸了联想的牌子?你想唤起民众吗?联想最近被推上了风口浪尖,与司马南可谓是针锋相对。至于联想的产品,我也用过,家里至今有一台2016年买的联想笔记本电脑。对于我这样的一个普通百姓来说,不懂联想的运营EMQ出席2021ArchSummit,打造全连接时代的数据基础设施11月13日,为期两天的2021ArchSummit全球架构师峰会在深圳大中华喜来登酒店圆满落幕。ArchSummit是InfoQ中国团队推出的高端技术会议,聚焦业界强大的技术成果爱立信成为巴西500亿通信设备订单最大赢家爱立信高管罗德里戈迪恩斯特曼宣布它已成为巴西通信设备市场最大赢家,巴西已获得5G频谱的运营商大多数都与爱立信合作,这让中国通信设备商颇为受伤。巴西15家运营商参与了5G频谱排名,排美国5G部署暂停OpenRAN设备成本更加昂贵头部消息1工信部发布第二批5G工业互联网典型应用场景和重点行业实践近日,工业和信息化部发布了5G工业互联网典型应用场景和重点行业实践(第二批)。其中,十大典型应用场景包括生产单元模美国商务部将12家中国企业列入实体名单一块虚拟土地卖出千万元头部消息1美国商务部将12家中国企业列入实体名单据国外媒体报道,美国商务部工业和安全局在一份案卷编号为2111170236RIN0694AI60的文件中针对实体清单上新增的实体及部腾讯尾盘突然跳水,什么情况?旗下多款APP暂停更新,来看最新回应互联网科技巨头的一举一动都备受关注。11月24日,网传截图消息曝出,腾讯旗下APP都将被下架,且现有腾讯旗下APP的用户也会因为下架而无法更新,一度引发公众对微信QQ等腾讯热门AP华为都自研鸿蒙系统了,为什么还用安卓系统,究竟是什么原因?提问题前多过下脑子,不要以为打得出几个字就张口就来动动脑子不好吗,我国自己能生产粮食,为什么还要进口外国的?有北斗导航了,为什么还要用GPS而且与之兼容?生态的打造,最起码要保护开开箱体验能时刻提供贴心又舒服按摩的智能充气按摩颈枕能时刻提供贴心又舒服按摩的小能手品牌德国蓝宝Blapunkt智能充气按摩颈枕型号BPJZ04平时工作休息的时候,椅子都比较不贴体位,老是睡得不安稳。脖子无处安放般的体验。有时候出差
512大内存的手机性价比推荐哪一款?二手也行?文小伊评科技第一款IQOONeo512512G版。(有全新机)全新价3000元左右二手价格2600元左右。配置骁龙870处理器,120Hz三星E3OLED硬质屏,UFS3。1闪存,什么是数字人民币,对我们有什么影响?前段时间轰轰烈烈的数字人民币还是有很多人不清楚这到底是个什么东西,它对于我们的生活又会有什么影响呢?今天就来简单地介绍一下吧。所谓数字人民币你可以简单地理解为电子货币,但他是国家承工信部发话,手机预装APP必须可卸载!再也不怕厂家乱装APP了不知道大家拿到新手机的第一件事是干嘛,对于强迫症的小编来说,第一件事当然是把手机中能卸载的预装软件通通卸载,因为新手机中的大部分预装软件都是平时用不到的,放着碍眼,而且日常使用手机比尔盖茨再预言另一场全球大流行病即将到来微软创办人比尔盖茨(BillGates)周五(18日)表示,尽管目前新冠疫情的风险已大幅降低,但可以肯定的是,另一场大流行即将到来。比尔盖茨周五在德国年度慕尼黑安全会议上乐观表示,越战越勇的刘强东读名人故事,获人生启迪刘强东和他的京东,从无名小卒,至今已经站到食物链顶端,很多时候和刘强东以及他的精神有关,越战越勇,遇强则强。京东初始刘强东是江苏宿迁人,1992年考上中国人民由女性建立的加密俱乐部BoysClub是一个由女性和非二元性别人群组成的团体,它为加密好奇者创建一个无男性区域。参加BoysClub活动的人展示他们的临时纹身。图源NoaGriffel不管我们喜不喜欢,从零开始学Python(三)while循环breakcontine01while循环这个i主要是控制循环次数的i0whilei100print(我错了)print(i)控制循环次数i1021到100之间的累加和i0mysum0whilei100prustwarp比gofasthttp要快数倍上周我发现了关于超性能的帖子。它表示rusttokiohyper性能高于gohttp。这是意料之中的,但有一条评论与fasthttp相比,其中rust的表现稍差。我决定自己执行基准怎样开通可以支持信用卡付款的收款码?需要建行卡,营业执照。多码合一,微信支付宝都支持。直接到银行卡,办理不收费,收款按千分之二收。成都地区上门办理。我可以帮你开通,信用卡花呗都可以用,秒到账农村信用社可以开通,一码可20W充电头怎么选?四款热门产品对比体验给你答案前言随着苹果手机相继取消原装充电器,同时新的快充总算到了20W,使用iPhone的小伙伴想要体验舒服的充电,选择一款快充头就十分必要了。原装的苹果20W表现中规中矩,同时149元的微信又出新功能据网友反馈,iOS版微信在设置通用照片视频文件和通话中已经出现了聊天图片搜索功能且已向大部分用户推送开启该功能后可通过图片信息搜索聊天中的图片用户可以在聊天的搜索框中输入图像描述或