mirror of
https://github.com/xen-project/xen.git
synced 2026-10-28 10:11:27 +01:00
tools: Move the typesafe min/max helpers into xen-tools/libs.h
... rather than implementing them separately for libxc and libxl. They will shortly be wanted in libx86 as well. Fix up the style/consistency in the declaration, but no functional change. Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com> Acked-by: Wei Liu <wei.liu2@citrix.com>
This commit is contained in:
1 parent
f2722ea023
commit
b7829ea3cb
3 files changed
+38
-32
No files matched your search
@@ -21,4 +21,42 @@
|
||||
#define MIN(x, y) ((x) < (y) ? (x) : (y))
|
||||
#endif
|
||||
|
||||
#ifndef min
|
||||
#define min(x, y) \
|
||||
({ \
|
||||
const typeof(x) _x = (x); \
|
||||
const typeof(y) _y = (y); \
|
||||
(void) (&_x == &_y); \
|
||||
(_x < _y) ? _x : _y; \
|
||||
})
|
||||
#endif
|
||||
|
||||
#ifndef max
|
||||
#define max(x, y) \
|
||||
({ \
|
||||
const typeof(x) _x = (x); \
|
||||
const typeof(y) _y = (y); \
|
||||
(void)(&_x == &_y); \
|
||||
(_x > _y) ? _x : _y; \
|
||||
})
|
||||
#endif
|
||||
|
||||
#ifndef min_t
|
||||
#define min_t(type, x, y) \
|
||||
({ \
|
||||
const type _x = (x); \
|
||||
const type _y = (y); \
|
||||
(_x < _y) ? _x: _y; \
|
||||
})
|
||||
#endif
|
||||
|
||||
#ifndef max_t
|
||||
#define max_t(type, x, y) \
|
||||
({ \
|
||||
const type _x = (x); \
|
||||
const type _y = (y); \
|
||||
(_x > _y) ? _x: _y; \
|
||||
})
|
||||
#endif
|
||||
|
||||
#endif /* __XEN_TOOLS_LIBS__ */
|
||||
@@ -405,22 +405,6 @@ int xc_ffs16(uint16_t x);
|
||||
int xc_ffs32(uint32_t x);
|
||||
int xc_ffs64(uint64_t x);
|
||||
|
||||
#define min(X, Y) ({ \
|
||||
const typeof (X) _x = (X); \
|
||||
const typeof (Y) _y = (Y); \
|
||||
(void) (&_x == &_y); \
|
||||
(_x < _y) ? _x : _y; })
|
||||
#define max(X, Y) ({ \
|
||||
const typeof (X) _x = (X); \
|
||||
const typeof (Y) _y = (Y); \
|
||||
(void) (&_x == &_y); \
|
||||
(_x > _y) ? _x : _y; })
|
||||
|
||||
#define min_t(type,x,y) \
|
||||
({ type __x = (x); type __y = (y); __x < __y ? __x: __y; })
|
||||
#define max_t(type,x,y) \
|
||||
({ type __x = (x); type __y = (y); __x > __y ? __x: __y; })
|
||||
|
||||
#define DOMPRINTF(fmt, args...) xc_dom_printf(dom->xch, fmt, ## args)
|
||||
#define DOMPRINTF_CALLED(xch) xc_dom_printf((xch), "%s: called", __FUNCTION__)
|
||||
|
||||
|
||||
@@ -138,22 +138,6 @@
|
||||
#define MASK_EXTR(v, m) (((v) & (m)) / ((m) & -(m)))
|
||||
#define MASK_INSR(v, m) (((v) * ((m) & -(m))) & (m))
|
||||
|
||||
#define min(X, Y) ({ \
|
||||
const typeof (X) _x = (X); \
|
||||
const typeof (Y) _y = (Y); \
|
||||
(void) (&_x == &_y); \
|
||||
(_x < _y) ? _x : _y; })
|
||||
#define max(X, Y) ({ \
|
||||
const typeof (X) _x = (X); \
|
||||
const typeof (Y) _y = (Y); \
|
||||
(void) (&_x == &_y); \
|
||||
(_x > _y) ? _x : _y; })
|
||||
|
||||
#define min_t(type, x, y) \
|
||||
({ const type _x = (x); const type _y = (y); _x < _y ? _x: _y; })
|
||||
#define max_t(type, x, y) \
|
||||
({ const type _x = (x); const type _y = (y); _x > _y ? _x: _y; })
|
||||
|
||||
#define LIBXL__LOGGING_ENABLED
|
||||
|
||||
#ifdef LIBXL__LOGGING_ENABLED
|
||||
|
||||