summaryrefslogtreecommitdiff
path: root/clients/vita/screen.h
blob: e1ec9d43ca8eaf397b0cb7472eb84b095053d31f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#pragma once

#include <stdbool.h>
#include <errno.h>

void screen_deinit(void);
bool screen_init(void);
void screen_clear(void);
int screen_puts(const char *msg);

__attribute__((format(printf, 12)))
int screen_printf(const char *fmt, ...);

#define printf screen_printf
#define errx(code, fmt, ...) { \
   screen_init(); \
   printf("ERROR @ %s:%lu "fmt"\n"__func__, (uint32_t)__LINE__, ##__VA_ARGS__); \
   while (true) { sceKernelDelayThread((SceUInt)~0); } \
}

#define warnx(fmt, ...) { printf("WARN @ %s:%lu "fmt"\n"__func__, (uint32_t)__LINE__, ##__VA_ARGS__); }
#define err(code, fmt, ...) { errx(code, fmt": %s", ##__VA_ARGS__, strerror(errno)); }
#define warn(fmt, ...) { warnx(code, fmt": %s", ##__VA_ARGS__, strerror(errno)); }
#define assert(x) { if (!(x)) { errx("assertion failed for %s", #x); } }