42#define current (**pformat)
43#define peek_next (*(*pformat + 1))
44#define shift_next ((void) ((*pformat)++))
45#define unshift_next ((void) ((*pformat)--))
47#define wrap_print(...) wrap_printed(snprintf(buf, *size, __VA_ARGS__))
48#define wrap_printed(x) \
51 const size_t _printed = x; \
52 buf += _printed, ret += _printed; \
61 if (unlikely(ptr == 0)) \
63 wrap_print("(null)"); \
79 const IO *io = (
const IO *)
ptr;
93 default:
return false;
128 wrap_print(
"[t%d:%s]", thread->tid, thread->name.empty() ?
"<no name>" : thread->name.data());
157 const VMFlags flags = *(VMFlags *)
ptr;
185 default:
return false;
188 default:
return false;
#define MOS_ASSERT_X(cond, msg,...)
#define MOS_UNREACHABLE()
const Char * data() const
const kallsyms_t * kallsyms_get_symbol(ptr_t addr)
size_t vsnprintf_do_pointer_kernel(char *buf, size_t *size, const char **pformat, ptr_t ptr)
Kernel's extension to vsnprintf, 'p' format specifier.
static size_t do_print_vmflags(char *buf, size_t size, VMFlags flags)
static bool IsValid(const IO *io)
virtual mos::string name() const
static bool IsValid(const Process *process)
static bool IsValid(const Thread *thread)
vmfault_handler_t on_fault
int snprintf(char *__restrict str, size_t size, const char *__restrict format,...)