#define ESRMNT 69 /* Srmount error */ #define ECOMM 70 /* Communication error on send */ #define EPROTO 71 /* Protocol error */ #define EMULTIHOP 72 /* Multihop attempted */ #define EDOTDOT 73 /* RFS specific error */ #define EBADMSG 74 /* Not a data message */ #define EO...
4. 如果此中断有错误码的,压入错误码 ERROR_CODE 5. 结束(之后就跳转到中断程序了) 2. 压入标志寄存器 EFLAGS。 3. 压入之前的代码段寄存器 CS 和指令寄存器 EIP,相当于压入返回地址。 4. 如果此中断有错误码的,压入错误码 ERROR_CODE 5. 结束(之后就跳转到中断程序了) 压栈操作结束后,栈就变成了这个...
(__KERNEL_PERCPU), %ecx movl %ecx, %fs UNWIND_ESPFIX_STACK GS_TO_REG %ecx movl PT_GS(%esp), %edi # get the function address movl PT_ORIG_EAX(%esp), %edx # get the error code movl $-1, PT_ORIG_EAX(%esp) # no syscall to restart REG_TO_PTGS %ecx SET_KERNEL_GS %ecx...
#define EADV 68 /* Advertise error */ #define ESRMNT 69 /* Srmount error */ #define ECOMM 70 /* Communication error on send */ #define EPROTO 71 /* Protocol error */ #define EMULTIHOP 72 /* Multihop attempted */ #define EDOTDOT 73 /* RFS specific error */ #define EBADMSG 74...
#ifdef __KERNEL__ / * *用户程序切勿看到这些内容。返回ERESTART *之一 *代码,必须设置signal_pending()。请注意,ptrace可以观察到这些 *在syscall出口跟踪时,但永远不会将它们留给调试用户 *看的过程。 */ #define ERESTARTSYS 512 #define ERESTARTNOINTR 513 #define ERESTARTNOHAND 514 / *如果没有处理程序...
rejected by service */ /* for robust mutexes */ #define EOWNERDEAD 130 #define ENOTRECOVERABLE #define ERFKILL */ 132 /* Owner died */ 131 /* State not recoverable */ /* Operation not possible due to RF-kill #ifdef __KERNEL__ /* * These should never be seen by user programs....
EKEYREVOKED 128 / *密钥已被撤销* / #define EKEYREJECTED 129 / *密钥被服务拒绝* / / *用于强大的互斥体* / #define EOWNERDEAD 130 / *所有者死亡* / #define ENOTRECOVERABLE 131 / *状态不可恢复* / #define ERFKILL 132 / *由于射频杀死* / #ifdef __KERNEL__ / * *用户程序切勿看到...
linux kernel拿到启动参数一定是在boot阶段,那就必须从start_kernel找起。 asmlinkage __visible __init __no_sanitize_address __noreturn __no_stack_protectorvoidstart_kernel(void) { 。。。 setup_arch(&command_line); setup_arch的参数里有command_line,这个就是拿参数用的。看看他是怎么拿到的。
CONFIG_PREEMPT=yCONFIG_DEBUG_KERNEL=yCONFIG_KLLSYMS=yCONFIG_SPINLOCK_SLEEP=y 引发bug并打印信息 BUG()和BUG_ON() 一些内核调用可以用来方便标记bug,提供断言并输出信息。最常用的两个是BUG()和BUG_ON()。定义在中: #ifndefHAVE_ARCH_BUG#defineBUG()do{printk("BUG:failure at%s:%d/%s()!",__FILE_...