📄 kernel.h
字号:
#ifndef _HACK_KERNEL_H#define _HACK_KERNEL_H#include <stdio.h>#include <stdlib.h>#include <assert.h>/* These don't actually matter since our locking protocols are different. */#define barrier() ((void)0) /*__asm__ __volatile__("": : :"memory") */#define NORET_TYPE /**/#define ATTRIB_NORET __attribute__((noreturn))#define NORET_AND noreturn,#define FASTCALL(x) x/* XXX do something syslogy */#define KERN_EMERG#define KERN_ALERT#define KERN_CRIT#define KERN_ERR#define KERN_WARNING#define KERN_NOTICE#define KERN_INFO#define KERN_DEBUG#define panic(str...) (printk (str), assert (!"panic"))/* * Display an IP address in readable format. */#define NIPQUAD(addr) \ ((unsigned char *)&addr)[0], \ ((unsigned char *)&addr)[1], \ ((unsigned char *)&addr)[2], \ ((unsigned char *)&addr)[3]#include <linux/sched.h>#include <linux/bitops.h>#define printk printfextern inline intgetname (const char *name, char **newp){ *newp = malloc (strlen (name) + 1); strcpy (*newp, name); return 0;}extern inline voidputname (char *p){ free (p);}/* These two functions are used only to send SIGURG. But I can't find any SIGIO code at all. So we'll just punt on that; clearly Linux is missing the point. SIGURG should only be sent for sockets that have explicitly requested it. */extern inline intkill_proc (int pid, int signo, int priv){ assert (signo == SIGURG); return 0;}extern inline intkill_pg (int pgrp, int signo, int priv){ assert (signo == SIGURG); return 0;}#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -