#ifndef SM_PLATFORM_H #define SM_PLATFORM_H #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include typedef struct { uint32_t app_id; uint64_t unknown1; char title_id[14]; char unknown2[0x3c]; } app_info_t; static inline uint32_t sm_firmware_major_version(void) { uint32_t fw = kernel_get_fw_version(); uint32_t major_bcd = (fw >> 24) & 0xFFu; return ((major_bcd >> 4) & 0xFu) * 10u + (major_bcd & 0xFu); } // --- SDK Imports --- int sceAppInstUtilInitialize(void); int sceAppInstUtilAppInstallAll(void); int sceAppInstUtilAppUnInstall(const char *title_id); int sceKernelGetAppInfo(pid_t pid, app_info_t *info); int sceKernelUsleep(unsigned int microseconds); int sceUserServiceInitialize(void *); void sceUserServiceTerminate(void); // Standard Notification typedef struct notify_request { char unused[45]; char message[3075]; } notify_request_t; int sceKernelSendNotificationRequest(int, notify_request_t *, size_t, int); #define IOVEC_ENTRY(x) \ {(void *)(x), \ ((const char *)(x) == NULL ? 0u : (size_t)(strlen((const char *)(x)) + 1u))} #define IOVEC_SIZE(x) (sizeof(x) / sizeof(struct iovec)) #endif