]> git.saurik.com Git - cydia.git/blame - UICaboodle/UCPlatform.h
This is working well.
[cydia.git] / UICaboodle / UCPlatform.h
CommitLineData
0ce617c8
JF
1#define __STDC_LIMIT_MACROS
2#include <stdint.h>
3
7e9a36b6
JF
4#include <objc/objc.h>
5
dfaac1da
JF
6#include <sys/time.h>
7#include <time.h>
8
7a5040cc
JF
9#define _forever \
10 for (;;)
11
0ce617c8
JF
12extern struct timeval _ltv;
13extern bool _itv;
14
dfaac1da 15#define _trace() do { \
0ce617c8
JF
16 struct timeval _ctv; \
17 gettimeofday(&_ctv, NULL); \
18 if (!_itv) { \
19 _itv = true; \
20 _ltv = _ctv; \
21 } \
22 fprintf(stderr, "%lu.%.6u[%f]:_trace()@%s:%u[%s]\n", \
23 _ctv.tv_sec, _ctv.tv_usec, \
24 (_ctv.tv_sec - _ltv.tv_sec) + (_ctv.tv_usec - _ltv.tv_usec) / 1000000.0, \
25 __FILE__, __LINE__, __FUNCTION__\
26 ); \
27 _ltv = _ctv; \
dfaac1da 28} while (false)
7e9a36b6
JF
29
30#define _assert(test) do \
31 if (!(test)) { \
32 fprintf(stderr, "_assert(%d:%s)@%s:%u[%s]\n", errno, #test, __FILE__, __LINE__, __FUNCTION__); \
33 exit(-1); \
34 } \
35while (false)
36
37#define _not(type) ((type) ~ (type) 0)
38
39#define _transient
ae5602da
JF
40
41#define _label__(x) _label ## x
42#define _label_(y) _label__(y)
43#define _label _label_(__LINE__)
a30c20bd
JF
44
45#define _packed \
46 __attribute__((packed))
11cd0308 47
bfc87a4d 48#define _finline inline __attribute__((always_inline))
670a0494
JF
49
50#define _assume(e) \
51 _assert(e)
52
53#define _nodefault \
54 default: \
55 _assume(false); \
56 throw;