acme
Foundational cross-platform layer of the ca2 framework
Loading...
Searching...
No Matches
_c_swap.h
1#pragma once
2
3
4//#ifndef higher_byte
5//#define higher_byte(x) (((x) >> 8) & 0x00ff)
6//#endif
7//
8//
9//#ifndef HIWORD
10//#define HIWORD(x) (((x) >> 16) & 0x0000ffff)
11//#endif
12//
13//
14//#ifndef LOWORD
15//#define LOWORD(x) ((x) & 0x0000ffff)
16//#endif
17//
18//
19//#ifndef MAKEWORD
20//#define MAKEWORD(lo, hi) (((lo) & 0xff) | (((hi) << 8) & 0xff00))
21//#endif
22//
23//
24//
25//#define SWAPWORD(x) MAKEWORD(higher_byte(x), lower_byte(x))
26//#define SWAPLONG(x) make_int(SWAPWORD(HIWORD(x)), SWAPWORD(LOWORD(x)))
27//
28//
29//
30//#define first_unsigned_short(u) ((u) & 0xffff)
31//#define second_unsigned_short(u) (((u) >> 16) & 0xffff)
32//#define first_short(u) ((::i16)(((::i32)(u)) & 0xffff)) // signed first_unsigned_short or at least should be designed to be signed
33//#define second_short(u) ((::i16)((((::i32)(u)) >> 16) & 0xffff)) // signed second_unsigned_short or at least should be designed to be signed
34//#define x_short(u) first_short(u)
35//#define y_short(u) second_short(u)
36//#define lower32_from64(u) ((u) & 0xffffffff)
37//#define upper32_from64(u) ((u >> 32) & 0xffffffff)
38//
39//
40//