⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 types.h

📁 jos lab3代码
💻 H
字号:
#ifndef JOS_INC_TYPES_H#define JOS_INC_TYPES_H#ifndef NULL#define NULL ((void*) 0)#endif// Represents true-or-false valuestypedef int bool;// Explicitly-sized versions of integer typestypedef __signed char int8_t;typedef unsigned char uint8_t;typedef short int16_t;typedef unsigned short uint16_t;typedef int int32_t;typedef unsigned int uint32_t;typedef long long int64_t;typedef unsigned long long uint64_t;// Pointers and addresses are 32 bits long.// We use pointer types to represent virtual addresses,// uintptr_t to represent the numerical values of virtual addresses,// and physaddr_t to represent physical addresses.typedef int32_t intptr_t;typedef uint32_t uintptr_t;typedef uint32_t physaddr_t;// Page numbers are 32 bits long.typedef uint32_t ppn_t;// size_t is used for memory object sizes.typedef uint32_t size_t;// ssize_t is a signed version of ssize_t, used in case there might be an// error return.typedef int32_t ssize_t;// off_t is used for file offsets and lengths.typedef int32_t off_t;// Efficient min and max operations#define MIN(_a, _b)						\({								\	typeof(_a) __a = (_a);					\	typeof(_b) __b = (_b);					\	__a <= __b ? __a : __b;					\})#define MAX(_a, _b)						\({								\	typeof(_a) __a = (_a);					\	typeof(_b) __b = (_b);					\	__a >= __b ? __a : __b;					\})// Rounding operations (efficient when n is a power of 2)// Round down to the nearest multiple of n#define ROUNDDOWN(a, n)						\({								\	uint32_t __a = (uint32_t) (a);				\	(typeof(a)) (__a - __a % (n));				\})// Round up to the nearest multiple of n#define ROUNDUP(a, n)						\({								\	uint32_t __n = (uint32_t) (n);				\	(typeof(a)) (ROUNDDOWN((uint32_t) (a) + __n - 1, __n));	\})// Return the offset of 'member' relative to the beginning of a struct type#define offsetof(type, member)  ((size_t) (&((type*)0)->member))#endif /* !JOS_INC_TYPES_H */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -