summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
Diffstat (limited to 'include')
-rw-r--r--include/kernel/audioout.h21
-rw-r--r--include/kernel/display.h12
-rw-r--r--include/kernel/kernel/processmgr.h6
-rw-r--r--include/kernel/kernel/sysmem.h5
-rw-r--r--include/kernel/kernel/threadmgr.h64
-rw-r--r--include/kernel/lowio/iftu.h26
-rw-r--r--include/kernel/power.h19
-rw-r--r--include/kernel/sblacmgr.h1
-rw-r--r--include/kernel/udcd.h2
-rw-r--r--include/user/appmgr.h38
-rw-r--r--include/user/incoming_dialog.h83
-rw-r--r--include/user/kernel/clib.h5
-rw-r--r--include/user/kernel/processmgr.h3
-rw-r--r--include/user/kernel/threadmgr.h3
-rw-r--r--include/user/notification_util.h80
-rw-r--r--include/user/registrymgr.h4
-rw-r--r--include/user/shellutil.h93
17 files changed, 438 insertions, 27 deletions
diff --git a/include/kernel/audioout.h b/include/kernel/audioout.h
new file mode 100644
index 0000000..c1381ee
--- /dev/null
+++ b/include/kernel/audioout.h
@@ -0,0 +1,21 @@
+#ifndef _PSP2_KERNEL_AUDIOOUT_H_
+#define _PSP2_KERNEL_AUDIOOUT_H_
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+typedef enum SceAudioOutPortType {
+ //! Used for main audio output, freq must be set to 48000 Hz
+ SCE_AUDIO_OUT_PORT_TYPE_MAIN = 0,
+ //! Used for Background Music port
+ SCE_AUDIO_OUT_PORT_TYPE_BGM = 1,
+ //! Used for voice chat port
+ SCE_AUDIO_OUT_PORT_TYPE_VOICE = 2
+} SceAudioOutPortType;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _PSP2_KERNEL_AUDIOOUT_H_ */
diff --git a/include/kernel/display.h b/include/kernel/display.h
index 18800c5..5cfdc9a 100644
--- a/include/kernel/display.h
+++ b/include/kernel/display.h
@@ -277,6 +277,18 @@ int sceDisplaySetInvertColors(int display, int enable);
*/
int sceDisplaySetOwner(int head, int index, SceUID pid);
+/**
+ * Set display scaling configuration
+ *
+ * @param[in] scale - Scaling factor between 0.80000001 and 1.20000005
+ * @param[in] head - Use 0 for OLED/LCD and 1 for HDMI
+ * @param[in] index - Can be 0 or 1
+ * @param[in] flags - Returns error if ((flags & 1) && (flags & 0xC0))
+ *
+ * @return 0 on success, < 0 on error.
+*/
+int sceDisplaySetScaleConf(float scale, int head, int index, int flags);
+
#ifdef __cplusplus
}
#endif
diff --git a/include/kernel/kernel/processmgr.h b/include/kernel/kernel/processmgr.h
index e0209f9..465066e 100644
--- a/include/kernel/kernel/processmgr.h
+++ b/include/kernel/kernel/processmgr.h
@@ -7,6 +7,12 @@
extern "C" {
#endif
+/** UID of the current process */
+#define SCE_KERNEL_PROCESS_ID_SELF 0
+
+/** UID of the kernel process */
+#define SCE_KERNEL_PROCESS_ID_KERNEL 0x10005
+
typedef struct SceKernelProcessInfo {
SceSize size; //!< size of this struct, make sure it's 0xE8
SceUID pid; //!< our process ID
diff --git a/include/kernel/kernel/sysmem.h b/include/kernel/kernel/sysmem.h
index 978db42..3b3ebc0 100644
--- a/include/kernel/kernel/sysmem.h
+++ b/include/kernel/kernel/sysmem.h
@@ -1,6 +1,7 @@
#ifndef _PSP2_KERNEL_SYSMEM_H_
#define _PSP2_KERNEL_SYSMEM_H_
+#include <stdarg.h>
#include <psp2kern/types.h>
#ifdef __cplusplus
@@ -439,7 +440,9 @@ typedef struct kernel_message_ctx
// msg_type_flag : 0 or 0xB
int sceDebugPrintf2(int msg_type_flag, kernel_message_ctx *msg_ctx, const char *fmt, ...);
-
+
+int sceDebugVprintf(const char *fmt, va_list args);
+
int sceDebugPrintKernelPanic(kernel_message_ctx *msg_ctx, void *some_address);
int sceDebugPrintfKernelPanic(kernel_message_ctx *msg_ctx, void *some_address, char* format, ...);
diff --git a/include/kernel/kernel/threadmgr.h b/include/kernel/kernel/threadmgr.h
index 61f96b3..d1a260d 100644
--- a/include/kernel/kernel/threadmgr.h
+++ b/include/kernel/kernel/threadmgr.h
@@ -14,6 +14,9 @@ typedef SceUInt64 SceKernelSysClock;
/* Threads. */
+/** UID of the current thread */
+#define SCE_KERNEL_THREAD_ID_SELF 0
+
typedef int (*SceKernelThreadEntry)(SceSize args, void *argp);
/** Additional options used when creating threads. */
@@ -449,18 +452,61 @@ int sceKernelCancelMutex(SceUID mutexid, int newCount, int *numWaitThreads);
*/
int sceKernelGetMutexInfo(SceUID mutexid, SceKernelMutexInfo *info);
-typedef struct SceKernelLwMutexWork {
- SceInt64 data[4];
-} SceKernelLwMutexWork;
+/* Fast mutex */
+
+typedef struct SceKernelFastMutexWork {
+ SceInt64 data[8];
+} SceKernelFastMutexWork;
-typedef struct SceKernelLwMutexOptParam {
+typedef enum SceKernelFastMutexAttr {
+ SCE_KERNEL_FAST_MUTEX_ATTR_RECURSIVE = 0x00000002,
+ SCE_KERNEL_FAST_MUTEX_ATTR_CEILING = 0x00000004,
+ SCE_KERNEL_FAST_MUTEX_ATTR_UNK_3 = 0x00000008,
+ SCE_KERNEL_FAST_MUTEX_ATTR_TH_FIFO = 0x00000000,
+ SCE_KERNEL_FAST_MUTEX_ATTR_TH_PRIO = 0x00002000,
+ SCE_KERNEL_FAST_MUTEX_ATTR_UNK_15 = 0x00008000,
+ // All other flags are invalid
+} SceKernelFastMutexAttr;
+
+typedef struct SceKernelFastMutexOptParam {
SceSize size;
-} SceKernelLwMutexOptParam;
+ SceInt32 ceilingPriority;
+} SceKernelFastMutexOptParam;
+
+SceInt32 sceKernelInitializeFastMutex(
+ SceKernelFastMutexWork *pWork,
+ const char *pName,
+ SceKernelFastMutexAttr attr,
+ const SceKernelFastMutexOptParam *pOptParam);
-int sceKernelInitializeFastMutex(void *mutex, const char *name, int unk0, int unk1);
-int sceKernelLockFastMutex(void *mutex);
-int sceKernelUnlockFastMutex(void *mutex);
-int sceKernelDeleteFastMutex(void *mutex);
+SceInt32 sceKernelLockFastMutex(SceKernelFastMutexWork *pWork);
+
+SceInt32 sceKernelTryLockFastMutex(SceKernelFastMutexWork *pWork);
+
+SceInt32 sceKernelUnlockFastMutex(SceKernelFastMutexWork *pWork);
+
+SceInt32 sceKernelFinalizeFastMutex(SceKernelFastMutexWork *pWork);
+
+typedef struct SceKernelFastMutexInfo {
+// 0x00
+ SceSize size;
+ SceUID uid;
+ char name[SCE_UID_NAMELEN + 1];
+ SceKernelFastMutexAttr attr;
+ SceKernelFastMutexWork *pWork;
+// 0x30
+ SceInt32 currentCount;
+ SceUID currentOwnerId;
+ SceInt32 ceilingPriority;
+ SceInt32 unk3C;
+// 0x40
+ SceUInt32 numWaitThreads;
+// 0x44
+} SceKernelFastMutexInfo;
+
+SceInt32 sceKernelGetFastMutexInfo(SceKernelFastMutexWork *pWork, SceKernelFastMutexInfo *pInfo);
+
+SceInt32 sceKernelGetFastMutexInfoById(SceUID uid, SceKernelFastMutexInfo *pInfo);
/* Event flags. */
diff --git a/include/kernel/lowio/iftu.h b/include/kernel/lowio/iftu.h
index 29b233f..a03d221 100644
--- a/include/kernel/lowio/iftu.h
+++ b/include/kernel/lowio/iftu.h
@@ -69,19 +69,19 @@ typedef struct SceIftuFrameBuf {
typedef struct SceIftuPlaneState {
SceIftuFrameBuf fb;
- unsigned int unk20;
- unsigned int src_x; /* In (0x10000 / 960) multiples */
- unsigned int src_y; /* in (0x10000 / 544) multiples */
- unsigned int src_w; /* in (0x10000 / 960) multiples */
- unsigned int src_h; /* in (0x10000 / 544) multiples */
- unsigned int dst_x;
- unsigned int dst_y;
- unsigned int dst_w;
- unsigned int dst_h;
- unsigned int vtop_padding;
- unsigned int vbot_padding; /* h - aligned_h */
- unsigned int hleft_padding;
- unsigned int hright_padding; /* w - aligned_w */
+ unsigned int unk20; /* not observed to be non-zero */
+ unsigned int unk24; /* not observed to be non-zero */
+ unsigned int unk28; /* not observed to be non-zero */
+ unsigned int src_w; /* inverse scaling factor in 16.16 fixed point, greater than or equal to 0.25 */
+ unsigned int src_h; /* inverse scaling factor in 16.16 fixed point, greater than or equal to 0.25 */
+ unsigned int dst_x; /* offset into the destination buffer */
+ unsigned int dst_y; /* offset into the destination buffer */
+ unsigned int src_x; /* offset into the source buffer in 8.8 fixed point, strictly less than 4.0 */
+ unsigned int src_y; /* offset into the source buffer in 8.8 fixed point, strictly less than 4.0 */
+ unsigned int crop_top;
+ unsigned int crop_bot;
+ unsigned int crop_left;
+ unsigned int crop_right;
} SceIftuPlaneState;
int sceIftuCsc(SceIftuFrameBuf *dst, SceIftuPlaneState *src, SceIftuConvParams *params);
diff --git a/include/kernel/power.h b/include/kernel/power.h
index 105535a..b56731b 100644
--- a/include/kernel/power.h
+++ b/include/kernel/power.h
@@ -246,6 +246,25 @@ int scePowerSetGpuClockFrequency(int freq);
*/
int scePowerSetGpuXbarClockFrequency(int freq);
+/**
+ * Sets the time before idle callback is notified.
+ *
+ * @param callback_slot - Callback slot from 0 to 7.
+ * @param time - Time in microseconds.
+ *
+ * @return 0 on success, < 0 on error
+ */
+int scePowerSetIdleTimer(int callback_slot, SceUInt64 time);
+
+/**
+ * Sets the PS button hold time for showing the quick menu.
+ *
+ * @param time - Time in microseconds.
+ *
+ * @return 0 always
+ */
+int scePowerSetPsButtonPushTime(int time);
+
#ifdef __cplusplus
}
#endif
diff --git a/include/kernel/sblacmgr.h b/include/kernel/sblacmgr.h
index 99621dc..04a182c 100644
--- a/include/kernel/sblacmgr.h
+++ b/include/kernel/sblacmgr.h
@@ -8,6 +8,7 @@ extern "C" {
#endif
int sceSblACMgrIsShell(SceUID pid);
+int sceSblACMgrIsPspEmu(SceUID pid);
int sceSblACMgrIsGameProgram(SceUID pid);
int sceSblACMgrIsNonGameProgram(SceUID pid);
int sceSblACMgrIsDevelopmentMode(void);
diff --git a/include/kernel/udcd.h b/include/kernel/udcd.h
index f23024f..25d1e2a 100644
--- a/include/kernel/udcd.h
+++ b/include/kernel/udcd.h
@@ -2,7 +2,7 @@
#define _PSP2_KERNEL_UDCD_H_
#include <psp2kern/types.h>
-#include <vitasdk/align.h>
+#include <dolcesdk/align.h>
#ifdef __cplusplus
extern "C" {
diff --git a/include/user/appmgr.h b/include/user/appmgr.h
index ae0f6c9..b55859a 100644
--- a/include/user/appmgr.h
+++ b/include/user/appmgr.h
@@ -96,6 +96,34 @@ typedef struct sceAppMgrLoadExecOptParam {
#define SCE_APPMGR_MAX_APP_NAME_LENGTH (31)
+typedef struct SceAppMgrBudgetInfo {
+// 0x00
+ SceSize size;
+ SceUInt32 mode;
+ SceUInt32 unk_8;
+ SceUInt32 budgetLPDDR2;
+// 0x10
+ SceUInt32 freeLPDDR2;
+ SceUInt32 allow0x0E208060;
+ SceUInt32 unk_14;
+ SceUInt32 budget0x0E208060;
+// 0x20
+ SceUInt32 free0x0E208060;
+ SceUInt32 unk_24;
+ SceUInt32 unk_28;
+ SceUInt32 budgetPHYCONT;
+// 0x30
+ SceUInt32 freePHYCONT;
+ SceUInt32 allow;
+ SceUChar8 unk_38[0x20];
+ SceUInt32 unk_58;
+ SceUInt32 budgetCDRAM;
+// 0x60
+ SceUInt32 freeCDRAM;
+ SceUChar8 reserved_64[0x24];
+// 0x88
+} SceAppMgrBudgetInfo;
+
/**
* Save data on savedata0: partition
*
@@ -487,7 +515,15 @@ int _sceAppMgrGetRawPath(char *path, char *resolved_path, int resolved_path_size
* @return 0 on success.
*/
int _sceAppMgrGetRawPathOfApp0ByAppIdForShell(int appId, char resolved_path[292]);
-
+
+/**
+ * Get application memory budget info.
+ *
+ * @return 0 on success, < 0 on error.
+ *
+ */
+int sceAppMgrGetBudgetInfo(SceAppMgrBudgetInfo *info);
+
#ifdef __cplusplus
}
#endif
diff --git a/include/user/incoming_dialog.h b/include/user/incoming_dialog.h
new file mode 100644
index 0000000..c110cf0
--- /dev/null
+++ b/include/user/incoming_dialog.h
@@ -0,0 +1,83 @@
+#ifndef _DOLCESDK_PSP2_INCOMING_DIALOG_H_
+#define _DOLCESDK_PSP2_INCOMING_DIALOG_H_
+
+#include <psp2/kernel/clib.h>
+#include <psp2/scebase.h>
+#include <psp2/types.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/**
+ * Dialog status
+ */
+typedef enum SceIncomingDialogStatus {
+ SCE_INCOMING_DIALOG_NOT_RUNNING,
+ SCE_INCOMING_DIALOG_BUSY,
+ SCE_INCOMING_DIALOG_RUNNING,
+ SCE_INCOMING_DIALOG_ACCEPTED,
+ SCE_INCOMING_DIALOG_REJECTED,
+ SCE_INCOMING_DIALOG_CLOSED,
+ SCE_INCOMING_DIALOG_TIMEOUT,
+} SceIncomingDialogStatus;
+
+/**
+ * Errors
+ */
+#define SCE_INCOMINGDIALOG_ERROR_INVALID_ARG 0x80106202;
+
+typedef struct SceIncomingDialogParam {
+ SceInt32 sdkVersion;
+ SceChar8 titleid[0x10]; // TitleId of the application to open when "accept" button has been pressed. Can be all zero.
+ SceChar8 audioPath[0x80]; // Path to audio file that will be played during dialog, .mp3, .at9, m4a. Can be all zero.
+ SceUInt32 dialogTimer; // Time to show dialog in seconds
+ SceInt32 unk_BC; // Can be set to 0
+ SceChar8 reserved1[0x3E];
+ SceWChar16 buttonRightText[0x20]; // Text for "accept" button. Must be null-terminated.
+ SceWChar16 buttonLeftText[0x20]; // Text for "reject" button. Must be null-terminated. If all zero, only "accept" button will be created.
+ SceWChar16 dialogText[0x81]; // Text for dialog window, also shared with notification. Must be null-terminated.
+} SceIncomingDialogParam;
+
+/**
+ * Initialize incoming dialog library, initType must be 0.
+ */
+SceInt32 sceIncomingDialogInitialize(int initType);
+
+/**
+ * Open incoming dialog.
+ */
+SceInt32 sceIncomingDialogOpen(SceIncomingDialogParam* dialogParam);
+
+/**
+ * Returns current status of incoming dialog.
+ */
+SceInt32 sceIncomingDialogGetStatus(void);
+
+/**
+ * Force exit to LiveArea and show dialog window
+ */
+SceInt32 sceIncomingDialogSwitchToDialog(void);
+
+/**
+ * Close incoming dialog.
+ */
+SceInt32 sceIncomingDialogClose(void);
+
+/**
+ * Finalize incoming dialog library
+ */
+SceInt32 sceIncomingDialogFinalize(void);
+
+static inline
+void sceIncomingDialogParamInit(SceIncomingDialogParam* dialogParam)
+{
+ sceClibMemset(dialogParam, 0x0, sizeof(SceIncomingDialogParam));
+ dialogParam->sdkVersion = SCE_PSP2_SDK_VERSION;
+}
+
+#ifdef __cplusplus
+}
+#endif /* __cplusplus */
+
+#endif /* _DOLCESDK_PSP2_INCOMING_DIALOG_H_ */
diff --git a/include/user/kernel/clib.h b/include/user/kernel/clib.h
index a7aa75e..b22eb3f 100644
--- a/include/user/kernel/clib.h
+++ b/include/user/kernel/clib.h
@@ -21,6 +21,7 @@ int sceClibTolower(char ch);
int sceClibToupper(char ch);
int sceClibPrintf(const char *fmt, ...);
+int sceClibVprintf(const char *fmt, va_list args);
int sceClibSnprintf(char *dst, SceSize dst_max_size, const char *fmt, ...);
int sceClibVsnprintf(char *dst, SceSize dst_max_size, const char *fmt, va_list args);
@@ -45,6 +46,10 @@ int sceClibMemcmp(const void *s1, const void *s2, SceSize len);
void *sceClibMemchr(const void *src, int ch, SceSize len);
+void *sceClibMspaceCreate(void *base, SceSize size);
+void *sceClibMspaceMalloc(void *space, SceSize size);
+void sceClibMspaceFree(void *space, void *ptr);
+
#ifdef __cplusplus
}
#endif
diff --git a/include/user/kernel/processmgr.h b/include/user/kernel/processmgr.h
index 272fe51..70e50b6 100644
--- a/include/user/kernel/processmgr.h
+++ b/include/user/kernel/processmgr.h
@@ -8,6 +8,9 @@
extern "C" {
#endif
+/** UID of the current process */
+#define SCE_KERNEL_PROCESS_ID_SELF 0
+
typedef enum SceKernelProcessPrioritySystem {
SCE_KERNEL_PROCESS_PRIORITY_SYSTEM_HIGH = 32,
SCE_KERNEL_PROCESS_PRIORITY_SYSTEM_DEFAULT = 96,
diff --git a/include/user/kernel/threadmgr.h b/include/user/kernel/threadmgr.h
index c5d93b7..9d42eb4 100644
--- a/include/user/kernel/threadmgr.h
+++ b/include/user/kernel/threadmgr.h
@@ -12,6 +12,9 @@ typedef SceUInt64 SceKernelSysClock;
/* Threads. */
+/** UID of the current thread */
+#define SCE_KERNEL_THREAD_ID_SELF 0
+
typedef int (*SceKernelThreadEntry)(SceSize args, void *argp);
/** Additional options used when creating threads. */
diff --git a/include/user/notification_util.h b/include/user/notification_util.h
new file mode 100644
index 0000000..e9a5298
--- /dev/null
+++ b/include/user/notification_util.h
@@ -0,0 +1,80 @@
+#ifndef _DOLCESDK_PSP2_NOTIFICATION_UTIL_H_
+#define _DOLCESDK_PSP2_NOTIFICATION_UTIL_H_
+
+#include <psp2/types.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/**
+ * Errors
+ */
+#define SCE_NOTIFICATIONUTIL_ERROR_INTERNAL 0x80106301
+
+/**
+ * BGDL-type notification event handler function
+ */
+typedef void (*SceNotificationUtilProgressEventHandler)(SceUInt32 eventId);
+
+typedef struct SceNotificationUtilProgressInitParam {
+ SceWChar16 notificationText[0x40]; // must be null-terminated
+ SceWChar16 notificationSubText[0x40]; // must be null-terminated
+ SceChar8 unk[0x3E6];
+ SceNotificationUtilProgressEventHandler eventHandler;
+ SceInt32 unk_4EC; // can be set to 0
+ SceWChar16 cancelDialogText[0x40]; // must be null-terminated
+} SceNotificationUtilProgressInitParam;
+
+typedef struct SceNotificationUtilProgressUpdateParam {
+ SceWChar16 notificationText[0x40]; // must be null-terminated
+ SceWChar16 notificationSubText[0x40]; // must be null-terminated
+ SceFloat targetProgress;
+ SceChar8 reserved[0x38];
+} SceNotificationUtilProgressUpdateParam;
+
+typedef struct SceNotificationUtilProgressFinishParam {
+ SceWChar16 notificationText[0x40]; // must be null-terminated
+ SceWChar16 notificationSubText[0x40]; // must be null-terminated
+ SceChar8 path[0x3E8];
+} SceNotificationUtilProgressFinishParam;
+
+/**
+ * Initialize notification util for use with BG application.
+ *
+ * Does not need to be called for normal applications.
+ */
+SceInt32 sceNotificationUtilBgAppInitialize(void);
+
+/**
+ * Send notification.
+ *
+ * Text buffer size must be 0x470.
+ */
+SceInt32 sceNotificationUtilSendNotification(const SceWChar16* text);
+
+/**
+ * Clean notifications for calling app from notification history.
+ */
+SceInt32 sceNotificationUtilCleanHistory(void);
+
+/**
+ * Start BGDL-type notification.
+ */
+SceInt32 sceNotificationUtilProgressBegin(SceNotificationUtilProgressInitParam* initParam);
+
+/**
+ * Update BGDL-type notification.
+ */
+SceInt32 sceNotificationUtilProgressUpdate(SceNotificationUtilProgressUpdateParam* updateParam);
+
+/**
+ * Finish BGDL-type notification.
+ */
+SceInt32 sceNotificationUtilProgressFinish(SceNotificationUtilProgressFinishParam* finishParam);
+
+#ifdef __cplusplus
+}
+#endif /* __cplusplus */
+
+#endif /* _DOLCESDK_PSP2_NOTIFICATION_UTIL_H_ */
diff --git a/include/user/registrymgr.h b/include/user/registrymgr.h
index cc363b5..dbf4946 100644
--- a/include/user/registrymgr.h
+++ b/include/user/registrymgr.h
@@ -59,11 +59,11 @@ int sceRegMgrSetKeyBin(const char *category, const char *name, void *buf, int si
*
* @param category - The path to the directory to be opened (e.g. /CONFIG/SYSTEM)
* @param name - Name of the key
- * @param buf - Pointer to an int buffer to hold the value
+ * @param value - Value to set to
*
* @return 0 on success, < 0 on error
*/
-int sceRegMgrSetKeyInt(const char* category, const char* name, int buf);
+int sceRegMgrSetKeyInt(const char* category, const char* name, int value);
/**
* Set a key's information by category and name
diff --git a/include/user/shellutil.h b/include/user/shellutil.h
index 61d602b..0d84ff6 100644
--- a/include/user/shellutil.h
+++ b/include/user/shellutil.h
@@ -1,6 +1,8 @@
#ifndef _PSP2_SHELLUTIL_H_
#define _PSP2_SHELLUTIL_H_
+#include <psp2/types.h>
+
#ifdef __cplusplus
extern "C" {
#endif
@@ -65,6 +67,97 @@ int sceShellUtilLock(SceShellUtilLockType type);
*/
int sceShellUtilUnlock(SceShellUtilLockType type);
+/**
+ * Reboot the device
+ *
+ * @param[in] unk - pass 0
+ */
+void sceShellUtilRequestColdReset(int unk);
+
+/**
+ * Poweroff the device
+ *
+ * @param[in] unk - pass 0
+ */
+void sceShellUtilRequestStandby(int unk);
+
+/**
+ * Show "A serious error has occured" message and reboot
+ *
+ * @param[in] safeModeType - sets type of safemode to reboot into, 0 to reboot normally
+ * @param[in] errorCode - error code to display in the message
+ * @param[in] errorMessageType - ex. 0 "Contact technical support"
+ */
+void sceShellUtilRequestColdResetWithError(int safeModeType, int errorCode, int errorMessageType);
+
+/**
+ * SceTextClipboardStorage is cached memory block with usable size of 0x1FFD bytes
+ * allocated by SceShellSvc on startup. Normally you would access this storage with
+ * clipboard sysmodule, however it can also be accessed directly with SceShellSvc
+ * functions. This memory can be accesed from any part of the system and is managed
+ * by SceShell. For example, you can write to it in one application and access
+ * written data from the other. Or you can write to it in application and access
+ * written data from the plugin.
+ *
+ * @param[in] data - pointer to the data to write
+ * @param[in] size - size of data to write. Must not exceed 0x1FFD.
+ */
+
+SceInt32 sceShellUtilTextClipboardWrite(const void* data, SceSize size);
+
+/**
+ * Read from text clipboard
+ *
+ * @param[in] data - pointer to the buffer where the read data will be placed
+ * @param[in] size - size of data to read
+ * @param[out] textlen - length actually read
+ */
+
+SceInt32 sceShellUtilTextClipboardRead(void* data, SceSize size, SceSize *textlen);
+
+/**
+ * Returns size of the data that was written to clipboard with
+ * sceShellUtilTextClipboardWrite
+ */
+
+SceUInt32 sceShellUtilTextClipboardGetUsedSize(void);
+
+/**
+ * Sets text in time display, UTF-16 (remains until reboot?)
+ */
+
+SceInt32 sceShellUtilSetTimeText(SceWChar16* unk, SceWChar16* text);
+
+/**
+ * Set airplane icon visibility
+ *
+ * @param[in] mode - 0 to hide, 1 to show
+ */
+
+SceInt32 sceShellUtilSetAirplaneIconMode(SceUInt32 mode);
+
+/**
+ * Set Bluetooth icon visibility
+ *
+ * @param[in] mode - 0 to hide, 1 to show
+ */
+
+SceInt32 sceShellUtilSetBtIconMode(SceUInt32 mode);
+
+/**
+ * Set BGM mode
+ *
+ * @param[in] mode - 0 to disable, 1 to enable
+ */
+
+SceInt32 sceShellUtilSetBGMMode(SceUInt32 mode);
+
+/**
+ * Set system language. Takes about 5 sec to apply.
+ */
+
+SceInt32 sceShellUtilSetSystemLanguage(SceUInt32 languageId);
+
#ifdef __cplusplus
}
#endif