|
@@ -30,10 +30,10 @@
|
|
|
|
|
|
#define attribute_hidden __attribute__ ((visibility ("hidden")))
|
|
|
|
|
|
-#define alias_str(name) #name
|
|
|
+#define ALIAS_STR(name) #name
|
|
|
|
|
|
-#define extern_alias(name) \
|
|
|
- extern __typeof__(name) shim_##name __attribute ((alias (alias_str(name))))
|
|
|
+#define EXTERN_ALIAS(name) \
|
|
|
+ extern __typeof__(name) shim_##name __attribute ((alias (ALIAS_STR(name))))
|
|
|
|
|
|
#define static_always_inline static inline __attribute__((always_inline))
|
|
|
|
|
@@ -63,26 +63,26 @@ struct debug_buf {
|
|
|
char buf[DEBUGBUF_SIZE];
|
|
|
};
|
|
|
|
|
|
-# include <pal.h>
|
|
|
-# include <pal_debug.h>
|
|
|
-# include <pal_error.h>
|
|
|
+#include <pal.h>
|
|
|
+#include <pal_debug.h>
|
|
|
+#include <pal_error.h>
|
|
|
|
|
|
extern PAL_HANDLE debug_handle;
|
|
|
|
|
|
-# include <stdarg.h>
|
|
|
+#include <stdarg.h>
|
|
|
|
|
|
void debug_printf (const char * fmt, ...) __attribute__((format (printf, 1, 2)));
|
|
|
void debug_puts (const char * str);
|
|
|
void debug_putch (int ch);
|
|
|
void debug_vprintf (const char * fmt, va_list * ap) __attribute__((format (printf, 1, 0)));
|
|
|
|
|
|
-# define VMID_PREFIX "[P%05u] "
|
|
|
-# define TID_PREFIX "[%-6u] "
|
|
|
-# define NOID_PREFIX "[ ] "
|
|
|
-# define debug(fmt, ...) \
|
|
|
+#define VMID_PREFIX "[P%05u] "
|
|
|
+#define TID_PREFIX "[%-6u] "
|
|
|
+#define NOID_PREFIX "[ ] "
|
|
|
+#define debug(fmt, ...) \
|
|
|
do { \
|
|
|
if (debug_handle) \
|
|
|
- debug_printf((fmt), ##__VA_ARGS__); \
|
|
|
+ debug_printf(fmt, ##__VA_ARGS__); \
|
|
|
} while (0)
|
|
|
|
|
|
/* print system messages */
|
|
@@ -91,38 +91,38 @@ void debug_vprintf (const char * fmt, va_list * ap) __attribute__((format (print
|
|
|
void handle_printf (PAL_HANDLE hdl, const char * fmt, ...) __attribute__((format (printf, 2, 3)));
|
|
|
void handle_vprintf (PAL_HANDLE hdl, const char * fmt, va_list * ap) __attribute__((format (printf, 2, 0)));
|
|
|
|
|
|
-#define __sys_printf(fmt, ...) \
|
|
|
+#define __SYS_PRINTF(fmt, ...) \
|
|
|
do { \
|
|
|
PAL_HANDLE _hdl = __open_shim_stdio(); \
|
|
|
if (_hdl) \
|
|
|
- handle_printf(_hdl, (fmt), ##__VA_ARGS__); \
|
|
|
+ handle_printf(_hdl, fmt, ##__VA_ARGS__); \
|
|
|
} while (0)
|
|
|
|
|
|
-#define __sys_vprintf(fmt, va) \
|
|
|
+#define __SYS_VPRINTF(fmt, va) \
|
|
|
do { \
|
|
|
PAL_HANDLE _hdl = __open_shim_stdio(); \
|
|
|
if (_hdl) \
|
|
|
- handle_vprintf(_hdl, (fmt), (va)); \
|
|
|
+ handle_vprintf(_hdl, fmt, va); \
|
|
|
} while (0)
|
|
|
|
|
|
|
|
|
-#define __sys_fprintf(hdl, fmt, ...) \
|
|
|
+#define __SYS_FPRINTF(hdl, fmt, ...) \
|
|
|
do { \
|
|
|
- handle_printf((hdl), (fmt), ##__VA_ARGS__); \
|
|
|
+ handle_printf(hdl, fmt, ##__VA_ARGS__); \
|
|
|
} while (0)
|
|
|
|
|
|
-#define sys_printf(fmt, ...) \
|
|
|
+#define SYS_PRINTF(fmt, ...) \
|
|
|
do { \
|
|
|
- master_lock(); \
|
|
|
- __sys_printf((fmt), ##__VA_ARGS__); \
|
|
|
- master_unlock(); \
|
|
|
+ MASTER_LOCK(); \
|
|
|
+ __SYS_PRINTF(fmt, ##__VA_ARGS__); \
|
|
|
+ MASTER_UNLOCK(); \
|
|
|
} while (0)
|
|
|
|
|
|
-#define sys_fprintf(hdl, fmt, ...) \
|
|
|
+#define SYS_FPRINTF(hdl, fmt, ...) \
|
|
|
do { \
|
|
|
- master_lock(); \
|
|
|
- __sys_fprintf((hdl), (fmt), ##__VA_ARGS__); \
|
|
|
- master_unlock(); \
|
|
|
+ MASTER_LOCK(); \
|
|
|
+ __SYS_FPRINTF(hdl, fmt, ##__VA_ARGS__); \
|
|
|
+ MASTER_UNLOCK(); \
|
|
|
} while (0)
|
|
|
|
|
|
extern PAL_HANDLE shim_stdio;
|
|
@@ -154,15 +154,15 @@ int shim_terminate (int err);
|
|
|
static inline void do_pause (void);
|
|
|
|
|
|
#if USE_PAUSE == 1
|
|
|
-# define pause() do { do_pause(); } while (0)
|
|
|
+# define PAUSE() do { do_pause(); } while (0)
|
|
|
#else
|
|
|
-# define pause() do { __asm__ volatile ("int $3"); } while (0)
|
|
|
+# define PAUSE() do { __asm__ volatile ("int $3"); } while (0)
|
|
|
#endif
|
|
|
|
|
|
-#define bug() \
|
|
|
+#define BUG() \
|
|
|
do { \
|
|
|
- __sys_printf("bug() " __FILE__ ":%d\n", __LINE__); \
|
|
|
- pause(); \
|
|
|
+ __SYS_PRINTF("BUG() " __FILE__ ":%d\n", __LINE__); \
|
|
|
+ PAUSE(); \
|
|
|
shim_terminate(-ENOTRECOVERABLE); \
|
|
|
} while (0)
|
|
|
|
|
@@ -559,28 +559,28 @@ static inline bool locked(struct shim_lock* l)
|
|
|
extern struct shim_lock __master_lock;
|
|
|
|
|
|
#if DEBUG_MASTER_LOCK == 1
|
|
|
-# define master_lock() \
|
|
|
+# define MASTER_LOCK() \
|
|
|
do { \
|
|
|
lock(&__master_lock); \
|
|
|
pal_printf("master lock " __FILE__ ":%d\n", __LINE__); \
|
|
|
} while (0)
|
|
|
-# define master_unlock() \
|
|
|
+# define MASTER_UNLOCK() \
|
|
|
do { \
|
|
|
pal_printf("master unlock " __FILE__ ":%d\n", __LINE__); \
|
|
|
unlock(&__master_lock); \
|
|
|
} while (0)
|
|
|
#else
|
|
|
-# define master_lock() do { lock(&__master_lock); } while (0)
|
|
|
-# define master_unlock() do { unlock(&__master_lock); } while (0)
|
|
|
+# define MASTER_LOCK() do { lock(&__master_lock); } while (0)
|
|
|
+# define MASTER_UNLOCK() do { unlock(&__master_lock); } while (0)
|
|
|
#endif
|
|
|
|
|
|
static inline void create_lock_runtime(struct shim_lock* l)
|
|
|
{
|
|
|
if (!lock_created(l)) {
|
|
|
- master_lock();
|
|
|
+ MASTER_LOCK();
|
|
|
if (!lock_created(l))
|
|
|
create_lock(l);
|
|
|
- master_unlock();
|
|
|
+ MASTER_UNLOCK();
|
|
|
}
|
|
|
}
|
|
|
|
|
@@ -672,7 +672,7 @@ static inline int __ref_dec (REFTYPE * ref)
|
|
|
_c = atomic_read(ref);
|
|
|
if (!_c) {
|
|
|
debug("Fail: Trying to drop reference count below 0\n");
|
|
|
- bug();
|
|
|
+ BUG();
|
|
|
return 0;
|
|
|
}
|
|
|
} while (atomic_cmpxchg(ref, _c, _c - 1) != _c);
|
|
@@ -716,8 +716,8 @@ extern unsigned long allocmask;
|
|
|
void * __system_malloc (size_t size);
|
|
|
void __system_free (void * addr, size_t size);
|
|
|
|
|
|
-#define system_malloc(size) __system_malloc(size)
|
|
|
-#define system_free(addr, size) __system_free(addr, size)
|
|
|
+#define system_malloc __system_malloc
|
|
|
+#define system_free __system_free
|
|
|
|
|
|
extern void * migrated_memory_start;
|
|
|
extern void * migrated_memory_end;
|
|
@@ -760,7 +760,7 @@ bool test_user_string (const char * addr);
|
|
|
int object_wait_with_retry(PAL_HANDLE handle);
|
|
|
|
|
|
#ifdef __x86_64__
|
|
|
-#define switch_stack(stack_top) \
|
|
|
+#define SWITCH_STACK(stack_top) \
|
|
|
({ \
|
|
|
void * _rsp, * _rbp; \
|
|
|
void * _stack = (stack_top); \
|
|
@@ -792,10 +792,9 @@ static_always_inline bool __range_not_ok(unsigned long addr, unsigned long size)
|
|
|
|
|
|
/* Check if pointer to memory region is valid. Return true if the memory
|
|
|
* region may be valid, false if it is definitely invalid. */
|
|
|
-#define access_ok(addr, size) \
|
|
|
- ({ \
|
|
|
- !__range_not_ok((unsigned long)addr, (unsigned long)size); \
|
|
|
- })
|
|
|
+static inline bool access_ok(const volatile void* addr, size_t size) {
|
|
|
+ return !__range_not_ok((unsigned long)addr, (unsigned long)size);
|
|
|
+}
|
|
|
|
|
|
#else
|
|
|
# error "Unsupported architecture"
|