mirror of
https://github.com/joncampbell123/dosbox-x.git
synced 2025-05-07 18:36:09 +08:00
36 lines
1.3 KiB
C
36 lines
1.3 KiB
C
/* (C) 2014 Castus all rights reserved.
|
|
* Written by Jonathan Campbell
|
|
*
|
|
* Intended language: C (also compatible with C++) */
|
|
|
|
#ifndef __UTIL_POINTER_H
|
|
#define __UTIL_POINTER_H
|
|
|
|
#define min_uintptr_t ((uintptr_t)0)
|
|
#define max_uintptr_t ( ~((uintptr_t)0) )
|
|
|
|
#define min_size_t ((size_t)0)
|
|
#define max_size_t ( ~((size_t)0) )
|
|
|
|
#define ptr2int(x) ((uintptr_t)((void*)(x)))
|
|
#define int2ptr(x) ((void*)(x))
|
|
|
|
#define ptr_misaligned(x,a) (ptr2int(x) & (((uintptr_t)(a)) - (uintptr_t)1))
|
|
#define ptr_aligned(x,a) (ptr_misaligned(x,a) == (uintptr_t)0)
|
|
|
|
#define ptr_align_down(x,a) (ptr2int(x) & (~(((uintptr_t)(a)) - (uintptr_t)1)))
|
|
#define ptr_align_up(x,a) ((ptr2int(x) + ((uintptr_t)(a) - (uintptr_t)1)) & (~(((uintptr_t)(a)) - (uintptr_t)1)))
|
|
#define ptr_align_nearest(x,a) ((ptr2int(x) + ((uintptr_t)(a) >> (uintptr_t)1)) & (~(((uintptr_t)(a)) - (uintptr_t)1)))
|
|
#define ptr_align_next(x,a) ((ptr2int(x) + (uintptr_t)(a)) & (~(((uintptr_t)(a)) - (uintptr_t)1)))
|
|
|
|
#define alloca_aligned(s,a) ( (void*)ptr_align_up((void*)alloca((size_t)(s) + (size_t)(a) - (size_t)1),a) )
|
|
|
|
#define alignment_word (2)
|
|
#define alignment_dword (4)
|
|
#define alignment_qword (8)
|
|
#define alignment_mmx (8)
|
|
#define alignment_sse (16)
|
|
#define alignment_avx (32)
|
|
|
|
#endif /* __UTIL_POINTER_H */
|