unaligned.h

来自「libaal-1.0.5.tar.gz reiser4progs编译时需要」· C头文件 代码 · 共 41 行

H
41
字号
/* Copyright (C) 2001-2005 by Hans Reiser, licensing governed by libaal/COPYING.   unaligned.h -- libaal unalignment declaration. */#ifdef HAVE_CONFIG_H#  include <config.h>#endif#ifndef AAL_UNALIGNED_H#define AAL_UNALIGNED_H/* unaligned access is allowed on cris, i386, ppc, ppc64, s390, x86_64 */#if defined(i386)    || defined (__i386__)   ||		\    defined(ppc)     || defined(__ppc__)     ||		\    defined(PPC)     || defined(__ppc)       ||		\    defined(__PPC__) || defined(__powerpc__) ||		\    defined(powerpc) || defined(__x86_64__)  ||		\    defined(__s390__) || defined(__cris__)#define get_unaligned(ptr) (*(ptr))#define put_unaligned(val, ptr) ((void)( *(ptr) = (val) ))#else#define get_unaligned(ptr)				\({							\	__typeof__(*(ptr)) __tmp;			\	aal_memcpy(&__tmp, (ptr), sizeof(*(ptr)));	\	__tmp;						\})#define put_unaligned(val, ptr)				\({							\	__typeof__(*(ptr)) __tmp = (val);		\	aal_memcpy((ptr), &__tmp, sizeof(*(ptr)));	\	(void)0;					\})#endif#endif

⌨️ 快捷键说明

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