summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--include/kernel/display.h87
-rw-r--r--include/kernel/kernel/cpu.h78
-rw-r--r--include/kernel/kernel/intrmgr.h60
-rw-r--r--include/kernel/kernel/threadmgr.h2
-rw-r--r--include/kernel/udcd.h1
-rw-r--r--include/kernel/usbd.h63
-rw-r--r--include/user/appmgr.h3
-rw-r--r--include/user/kernel/threadmgr.h2
-rw-r--r--include/user/power.h7
-rw-r--r--include/user/usbd.h87
-rw-r--r--nids/360/SceDisplay.yml9
-rw-r--r--nids/360/SceIdStorage.yml23
-rw-r--r--nids/360/SceIofilemgr.yml19
-rw-r--r--nids/360/SceKernelIntrMgr.yml23
-rw-r--r--nids/360/SceKernelModulemgr.yml1
-rw-r--r--nids/360/SceKernelThreadMgr.yml58
-rw-r--r--nids/360/SceLowio.yml13
-rw-r--r--nids/360/ScePower.yml18
-rw-r--r--nids/360/SceRtc.yml19
-rw-r--r--nids/360/SceSblACMgr.yml1
-rw-r--r--nids/360/SceSyscon.yml35
-rw-r--r--nids/360/SceSysmem.yml44
-rw-r--r--nids/360/SceUsbd.yml38
23 files changed, 660 insertions, 31 deletions
diff --git a/include/kernel/display.h b/include/kernel/display.h
new file mode 100644
index 0000000..0f49bee
--- /dev/null
+++ b/include/kernel/display.h
@@ -0,0 +1,87 @@
+#ifndef _PSP2_KERNEL_DISPLAY_H_
+#define _PSP2_KERNEL_DISPLAY_H_
+
+#include <psp2/types.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+enum {
+ SCE_DISPLAY_ERROR_OK = 0,
+ SCE_DISPLAY_ERROR_INVALID_HEAD = 0x80290000,
+ SCE_DISPLAY_ERROR_INVALID_VALUE = 0x80290001,
+ SCE_DISPLAY_ERROR_INVALID_ADDR = 0x80290002,
+ SCE_DISPLAY_ERROR_INVALID_PIXELFORMAT = 0x80290003,
+ SCE_DISPLAY_ERROR_INVALID_PITCH = 0x80290004,
+ SCE_DISPLAY_ERROR_INVALID_RESOLUTION = 0x80290005,
+ SCE_DISPLAY_ERROR_INVALID_UPDATETIMING = 0x80290006,
+ SCE_DISPLAY_ERROR_NO_FRAME_BUFFER = 0x80290007,
+ SCE_DISPLAY_ERROR_NO_PIXEL_DATA = 0x80290008
+};
+
+#define SCE_DISPLAY_PIXELFORMAT_A8B8G8R8 0x00000000U
+
+enum {
+ /** Buffer change effective immediately */
+ SCE_DISPLAY_SETBUF_IMMEDIATE = 0,
+ /** Buffer change effective next frame */
+ SCE_DISPLAY_SETBUF_NEXTFRAME = 1
+};
+
+/**
+ * Structure used with sceDisplaySetFrameBuf to set/update framebuffer.
+ * Original screen resolution is 960x544, but the following resolutions
+ * can also be supplied as width and height :
+ * 480x272, 640x368, 720x408
+ *
+ * @note - This structure is returned by sceDisplayGetFrameBuf
+*/
+typedef struct SceDisplayFrameBuf {
+ SceSize size; //!< sizeof(SceDisplayFrameBuf)
+ void *base; //!< Pointer to framebuffer
+ unsigned int pitch; //!< pitch pixels
+ unsigned int pixelformat; //!< use SCE_DISPLAY_PIXELFORMAT_A8B8G8R8
+ unsigned int width; //!< framebuffer width
+ unsigned int height; //!< framebuffer height
+} SceDisplayFrameBuf;
+
+/**
+ * Set/Update framebuffer parameters
+ *
+ * @param[in] pParam - Pointer to a ::SceDisplayFrameBuf structure.
+ * @param[in] sync - One of ::DisplaySetBufSync
+ *
+ * @return 0 on success, < 0 on error.
+ * @note - If NULL is provided as pParam pointer, output is blacked out.
+*/
+int sceDisplaySetFrameBuf(const SceDisplayFrameBuf *pParam, int sync);
+
+/**
+ * Get current framebuffer parameters
+ *
+ * @param[out] pParam - Pointer to a ::SceDisplayFrameBuf structure
+ * which will receive framebuffer parameters.
+ *
+ * @param[in] sync - One of ::DisplaySetBufSync
+ *
+ * @return 0 on success, < 0 on error.
+*/
+int sceDisplayGetFrameBuf(SceDisplayFrameBuf *pParam, int sync);
+
+/**
+ * Get current framebuffer dimensions
+ *
+ * @param[out] width - Framebuffer width
+ * @param[out] height - Framebuffer height
+ *
+ * @return 0 on success, < 0 on error.
+*/
+int sceDisplayGetFrameBufDimensions(int *width, int *height);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _PSP2_KERNEL_DISPLAY_H_ */
+
diff --git a/include/kernel/kernel/cpu.h b/include/kernel/kernel/cpu.h
index 859424d..96f51fe 100644
--- a/include/kernel/kernel/cpu.h
+++ b/include/kernel/kernel/cpu.h
@@ -80,56 +80,112 @@ int sceKernelCpuDisableInterrupts(void);
int sceKernelCpuEnableInterrupts(int flags);
/**
- * @brief Flush L1 dcache and L2
+ * @brief Writeback a range of L1 dcache (without L2)
*
- * Note: symbols currently does not work on 3.x, need to find new ones.
+ * @param ptr The pointer
+ * @param[in] len The length
+ *
+ * @return Zero on success
+ */
+int sceKernelCpuDcacheWritebackRange(void *ptr, size_t len);
+
+/**
+ * @brief Invalidate a range of L1 dcache (without L2)
*
* @param ptr The pointer
* @param[in] len The length
*
* @return Zero on success
*/
-int sceKernelCpuDcacheAndL2Flush(void *ptr, size_t len);
+int sceKernelCpuDcacheInvalidateRange(void *ptr, size_t len);
/**
- * @brief Flush L2 dcache without L2
+ * @brief Writeback and invalidate a range of L1 dcache (without L2)
*
* @param ptr The pointer
* @param[in] len The length
*
* @return Zero on success
*/
-int sceKernelCpuDcacheFlush(void *ptr, size_t len);
+int sceKernelCpuDcacheWritebackInvalidateRange(void *ptr, size_t len);
+
+/**
+ * @brief Invalidate all the L1 dcache (without L2)
+ *
+ * @return Zero on success
+ */
+int sceKernelCpuDcacheInvalidateAll(void);
+
+/**
+ * @brief Writeback all the L1 dcache (without L2)
+ *
+ * @return Zero on success
+ */
+int sceKernelCpuDcacheWritebackAll(void);
+
+/**
+ * @brief Writeback and invalidate all the L1 dcache (without L2)
+ *
+ * @return Zero on success
+ */
+int sceKernelCpuDcacheWritebackInvalidateAll(void);
/**
- * @brief Writeback a range of L1 dcache (not sure if L2 too)
+ * @brief Writeback a range of L1 dcache and L2
*
* @param ptr The pointer
* @param[in] len The length
*
* @return Zero on success
*/
-int sceKernelCpuDcacheWritebackRange(void *ptr, size_t len);
+int sceKernelCpuDcacheAndL2WritebackRange(void *ptr, size_t len);
+
+/**
+ * @brief Writeback and invalidate a range of L1 dcache and L2
+ *
+ * @param ptr The pointer
+ * @param[in] len The length
+ *
+ * @return Zero on success
+ */
+int sceKernelCpuDcacheAndL2InvalidateRange(void *ptr, size_t len);
+
+/**
+ * @brief Writeback and invalidate a range of L1 dcache and L2
+ *
+ * @param ptr The pointer
+ * @param[in] len The length
+ *
+ * @return Zero on success
+ */
+int sceKernelCpuDcacheAndL2WritebackInvalidateRange(void *ptr, size_t len);
/**
- * @brief Flush L1 icache and L2
+ * @brief Invalidate a range of L1 icache (without L2)
*
* @param ptr The pointer
* @param[in] len The length
*
* @return Zero on success
*/
-int sceKernelCpuIcacheAndL2Flush(void *ptr, size_t len);
+int sceKernelCpuIcacheInvalidateRange(void *ptr, size_t len);
+
+/**
+ * @brief Invalidate all the L1 icache (without L2)
+ *
+ * @return Zero on success
+ */
+int sceKernelCpuIcacheInvalidateAll(void);
/**
- * @brief Flush L1 dcache and L2 for DMA operations
+ * @brief Writeback and invalidate a range of L1 icache and L2
*
* @param ptr The pointer
* @param[in] len The length
*
* @return Zero on success
*/
-int sceKernelCpuDcacheAndL2AndDMAFlush(void *ptr, size_t len);
+int sceKernelCpuIcacheAndL2WritebackInvalidateRange(void *ptr, size_t len);
/**
* @brief MMU permission bypassing memcpy
diff --git a/include/kernel/kernel/intrmgr.h b/include/kernel/kernel/intrmgr.h
new file mode 100644
index 0000000..ca11136
--- /dev/null
+++ b/include/kernel/kernel/intrmgr.h
@@ -0,0 +1,60 @@
+#ifndef _PSP2_KERNEL_INTRMGR_H_
+#define _PSP2_KERNEL_INTRMGR_H_
+
+#include <psp2kern/types.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+typedef int (*SceKernelIntrOptParam2Callback)(int intr_code, int subintr_code);
+
+typedef struct SceKernelIntrOptParam2 {
+ uint32_t size; // 0x28
+ uint32_t unk_4;
+ uint32_t unk_8;
+ uint32_t unk_C;
+ SceKernelIntrOptParam2Callback *fptr0; // function pointer
+ SceKernelIntrOptParam2Callback *enable_subinterrupt_cb;
+ SceKernelIntrOptParam2Callback *fptr2; // function pointer
+ uint32_t unk_1C;
+ uint32_t unk_20;
+ uint32_t unk_24;
+} SceKernelIntrOptParam2;
+
+typedef struct SceKernelIntrOptParam {
+ uint32_t size; // 0x14
+ uint32_t num;
+ SceKernelIntrOptParam2 *opt2;
+ uint32_t unk_C;
+ uint32_t unk_10;
+} SceKernelIntrOptParam;
+
+typedef int (*SceKernelIntrHandler)(int unk, void *userCtx);
+typedef int (*SceKernelSubIntrHandler)(void *arg, int unk0, int unk1);
+
+int sceKernelRegisterIntrHandler(int intr_code, const char *name, int interrupt_type,
+ SceKernelIntrHandler *handler, void *userCtx, int priority, int targetcpu, SceKernelIntrOptParam *opt);
+int sceKernelReleaseIntrHandler(int intr_code);
+int sceKernelMaskIntr(int intr_code);
+int sceKernelUnmaskIntr(int intr_code);
+int sceKernelSetIntrMasked(int intr_code, int masked);
+int sceKernelGetIntrMasked(int intr_code, int *masked);
+int sceKernelIsIntrPending(int intr_code);
+int sceKernelClearIntrPending(int intr_code);
+int sceKernelSetIntrPriority(int intr_code, unsigned char priority);
+int sceKernelSetIntrTarget(int intr_code, int cpu_target_list);
+int sceKernelTriggerSGI(int intr_code, unsigned int target_list_filter, unsigned int cpu_target_list);
+int sceKernelIsIntrAllowedInCurrentContext(int intr_code);
+int sceKernelRegisterSubIntrHandler(int intr_code, int subintr_code, const char *name,
+ SceKernelSubIntrHandler handler, void *register_arg);
+int sceKernelTriggerSubIntr(int intr_code, int subintr_code, void *subintr_arg);
+int sceKernelEnableSubIntr(int intr_code, int subintr_code);
+int sceKernelDisableSubIntr(int intr_code, int subintr_code);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _PSP2_KERNEL_INTRMGR_H_ */
+
diff --git a/include/kernel/kernel/threadmgr.h b/include/kernel/kernel/threadmgr.h
index 16b3234..21ee730 100644
--- a/include/kernel/kernel/threadmgr.h
+++ b/include/kernel/kernel/threadmgr.h
@@ -992,7 +992,6 @@ typedef enum SceKernelIdListType {
SceKernelIdListType sceKernelGetThreadmgrUIDClass(SceUID uid);
-
typedef struct SceKernelLwMutexWork {
SceInt64 data[4];
} SceKernelLwMutexWork;
@@ -1020,7 +1019,6 @@ int sceKernelSignalLwCond(SceKernelLwCondWork *pWork);
int sceKernelWaitLwCond(SceKernelLwCondWork *pWork, unsigned int *pTimeout);
-
/**
* Get the system time (wide version)
*
diff --git a/include/kernel/udcd.h b/include/kernel/udcd.h
index c4991c2..3eaabfb 100644
--- a/include/kernel/udcd.h
+++ b/include/kernel/udcd.h
@@ -514,7 +514,6 @@ int sceUdcdWaitState(unsigned int state, unsigned int waitMode, SceUInt *timeout
int sceUdcdWaitCancel(void);
-
/**
* Register a USB driver.
*
diff --git a/include/kernel/usbd.h b/include/kernel/usbd.h
new file mode 100644
index 0000000..8e19375
--- /dev/null
+++ b/include/kernel/usbd.h
@@ -0,0 +1,63 @@
+#ifndef _PSP2_KERNEL_USBD_H_
+#define _PSP2_KERNEL_USBD_H_
+
+#include <psp2kern/kernel/threadmgr.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#define SCE_USBD_ERROR_ACCESS 0x80240003
+#define SCE_USBD_ERROR_BUSY 0x80240006
+#define SCE_USBD_ERROR_FATAL 0x802400ff
+#define SCE_USBD_ERROR_INTERRUPTED 0x8024000a
+#define SCE_USBD_ERROR_INVALID_ARG 0x80240002
+#define SCE_USBD_ERROR_IO 0x80240001
+#define SCE_USBD_ERROR_NO_DEVICE 0x80240004
+#define SCE_USBD_ERROR_NO_MEM 0x8024000b
+#define SCE_USBD_ERROR_NOT_FOUND 0x80240005
+#define SCE_USBD_ERROR_NOT_SUPPORTED 0x8024000c
+#define SCE_USBD_ERROR_OVERFLOW 0x80240008
+#define SCE_USBD_ERROR_PIPE 0x80240009
+#define SCE_USBD_ERROR_TIMEOUT 0x80240007
+
+typedef struct SceUsbdDeviceDescriptor {
+ unsigned char bLength;
+ unsigned char bDescriptorType;
+ unsigned short bcdUSB;
+ unsigned char bDeviceClass;
+ unsigned char bDeviceSubClass;
+ unsigned char bDeviceProtocol;
+ unsigned char bMaxPacketSize0;
+ unsigned short idVendor;
+ unsigned short idProduct;
+ unsigned short bcdDevice;
+ unsigned char iManufacturer;
+ unsigned char iProduct;
+ unsigned char iSerialNumber;
+ unsigned char bNumConfigurations;
+} SceUsbdDeviceDescriptor; /* size = 20 */
+
+typedef struct SceUsbdDeviceAddress {
+ unsigned int unk0;
+ unsigned short unk1;
+} SceUsbdDeviceAddress; /* size = 0x6 */
+
+typedef struct SceUsbdDriver {
+ const char *name;
+ int (*probe)(int device_id);
+ int (*attach)(int device_id);
+ int (*detach)(int device_id);
+ struct SceUsbdDriver *next;
+} SceUsbdDriver; /* size = 0x14 */
+
+int sceUsbdRegisterDriver(const SceUsbdDriver *driver);
+int sceUsbdRegisterCompositeLdd(const SceUsbdDriver *driver);
+int sceUsbdUnregisterDriver(const SceUsbdDriver *driver);
+void *sceUsbdGetDescriptor(int device_id, int index, unsigned char bDescriptorType);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _PSP2_KERNEL_USBD_H_ */
diff --git a/include/user/appmgr.h b/include/user/appmgr.h
index f93e608..8a4a9d7 100644
--- a/include/user/appmgr.h
+++ b/include/user/appmgr.h
@@ -60,6 +60,9 @@ typedef struct SceAppMgrLaunchAppOptParam SceAppMgrLaunchAppOptParam; // Missing
#define SCE_APPMGR_MAX_APP_NAME_LENGTH (31)
+//! Destroy all other apps
+int sceAppMgrDestroyOtherApp(void);
+
//! name: The Title ID of the application
int sceAppMgrDestroyAppByName(char *name);
diff --git a/include/user/kernel/threadmgr.h b/include/user/kernel/threadmgr.h
index e8376d0..3681c19 100644
--- a/include/user/kernel/threadmgr.h
+++ b/include/user/kernel/threadmgr.h
@@ -1099,7 +1099,6 @@ typedef enum SceKernelIdListType {
SceKernelIdListType sceKernelGetThreadmgrUIDClass(SceUID uid);
-
typedef struct SceKernelLwMutexWork {
SceInt64 data[4];
} SceKernelLwMutexWork;
@@ -1127,7 +1126,6 @@ int sceKernelSignalLwCond(SceKernelLwCondWork *pWork);
int sceKernelWaitLwCond(SceKernelLwCondWork *pWork, unsigned int *pTimeout);
-
/**
* Get the system time (wide version)
*
diff --git a/include/user/power.h b/include/user/power.h
index 75f1673..8eadf1a 100644
--- a/include/user/power.h
+++ b/include/user/power.h
@@ -148,6 +148,13 @@ int scePowerRequestStandby(void);
int scePowerRequestSuspend(void);
/**
+ * Request display off
+ *
+ * @return always 0
+ */
+int scePowerRequestDisplayOff(void);
+
+/**
* Sets CPU clock frequency
*
* @param freq - Frequency to set in Mhz
diff --git a/include/user/usbd.h b/include/user/usbd.h
new file mode 100644
index 0000000..2399abe
--- /dev/null
+++ b/include/user/usbd.h
@@ -0,0 +1,87 @@
+#ifndef _PSP2_USBD_H_
+#define _PSP2_USBD_H_
+
+#include <psp2/kernel/threadmgr.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#define SCE_USBD_ERROR_ACCESS 0x80240003
+#define SCE_USBD_ERROR_BUSY 0x80240006
+#define SCE_USBD_ERROR_FATAL 0x802400ff
+#define SCE_USBD_ERROR_INTERRUPTED 0x8024000a
+#define SCE_USBD_ERROR_INVALID_ARG 0x80240002
+#define SCE_USBD_ERROR_IO 0x80240001
+#define SCE_USBD_ERROR_NO_DEVICE 0x80240004
+#define SCE_USBD_ERROR_NO_MEM 0x8024000b
+#define SCE_USBD_ERROR_NOT_FOUND 0x80240005
+#define SCE_USBD_ERROR_NOT_SUPPORTED 0x8024000c
+#define SCE_USBD_ERROR_OVERFLOW 0x80240008
+#define SCE_USBD_ERROR_PIPE 0x80240009
+#define SCE_USBD_ERROR_TIMEOUT 0x80240007
+
+typedef struct SceUsbdDeviceInfo {
+ unsigned int unk0;
+ unsigned int device_id;
+ unsigned int unk2;
+} SceUsbdDeviceInfo; /* size = 0xC */
+
+typedef struct SceUsbdDeviceAddress {
+ unsigned int unk0;
+ unsigned short unk1;
+} SceUsbdDeviceAddress; /* size = 0x6 */
+
+typedef struct SceUsbdTransferData {
+ unsigned int pipe;
+ const void *buff1;
+ unsigned int size1;
+ void *buff2;
+ unsigned int size2;
+} SceUsbdTransferData; /* size = 0x14 */
+
+typedef struct SceUsbdReceiveEvent {
+ unsigned int unk0;
+ unsigned int unk1;
+ unsigned int unk2;
+ unsigned int unk3;
+ unsigned int unk4;
+ unsigned int unk5;
+ unsigned int transfer_id;
+} SceUsbdReceiveEvent; /* size = 0x1C */
+
+int sceUsbdInit(SceUID *uid);
+int sceUsbdEnd(SceUID uid);
+
+int sceUsbdRegisterCallback(SceUID cbid, int);
+int sceUsbdUnregisterCallback(SceUID cbid);
+
+int sceUsbdResetDevice(SceUID uid, unsigned int device_id);
+int sceUsbdAttach(SceUID uid, int, int, int);
+
+int sceUsbdGetDeviceList(SceUID uid, unsigned int num, SceUsbdDeviceInfo *info);
+int sceUsbdGetDescriptor(SceUID uid, unsigned int device_id, unsigned char *descriptor, unsigned int size);
+int sceUsbdGetDescriptorSize(SceUID uid, unsigned int device_id);
+int sceUsbdGetDeviceAddress(SceUID uid, unsigned int device_id, SceUsbdDeviceAddress *addr);
+int sceUsbdGetDeviceSpeed(SceUID uid, unsigned int device_id, unsigned int *speed);
+int sceUsbdGetTransferStatus(SceUID uid, unsigned char buff[0x10]);
+int sceUsbdGetIsochTransferStatus(SceUID uid, unsigned char buff[0x10]);
+
+int sceUsbdOpenDefaultPipe(SceUID uid, unsigned int device_id);
+int sceUsbdOpenPipe(SceUID uid, unsigned char unk[0x18]);
+int sceUsbdClosePipe(SceUID uid, unsigned int device_id);
+
+int sceUsbdTransferData(SceUID uid, SceUsbdTransferData *data);
+int sceUsbdIsochTransferData(SceUID uid, int unk, unsigned char buff[0x28]);
+int sceUsbdReceiveEvent(SceUID uid, SceUsbdReceiveEvent *event);
+
+int sceUsbdRegisterLdd(SceUID uid, const char str[0x100]);
+int sceUsbdUnregisterLdd(SceUID uid, const char str[0x100]);
+int sceUsbdRegisterCompositeLdd(SceUID uid, const char str[0x100]);
+int sceUsbdAttachCompositeLdd(SceUID, unsigned char unk[0x14]);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _PSP2_USBD_H_ */
diff --git a/nids/360/SceDisplay.yml b/nids/360/SceDisplay.yml
index 9a41b4c..7263a75 100644
--- a/nids/360/SceDisplay.yml
+++ b/nids/360/SceDisplay.yml
@@ -17,6 +17,15 @@ modules:
sceDisplayWaitVblankStartCB: 0x78B41B92
sceDisplayWaitVblankStartMulti: 0xDD0A13B8
sceDisplayWaitVblankStartMultiCB: 0x05F27764
+ SceDisplayForDriver:
+ nid: 0x9FED47AC
+ functions:
+ sceDisplayGetFrameBuf: 0xEEDA2E54
+ sceDisplayGetFrameBufDimensions: 0x5AFE6CD3
+ sceDisplayGetFrameBufInternal: 0x19F94C63
+ sceDisplayRegisterFrameBufCallback: 0x6E22990E
+ sceDisplaySetFrameBuf: 0x289D82FE
+ sceDisplaySetFrameBufInternal: 0x16466675
SceDisplayUser:
nid: 0x4FAACD11
functions:
diff --git a/nids/360/SceIdStorage.yml b/nids/360/SceIdStorage.yml
new file mode 100644
index 0000000..ade425d
--- /dev/null
+++ b/nids/360/SceIdStorage.yml
@@ -0,0 +1,23 @@
+modules:
+ SceIdStorage:
+ nid: 0x4BDAF254
+ libraries:
+ SceIdStorageForDriver:
+ nid: 0xE1AC6D7C
+ functions:
+ sceIdStorageCreateAtomicLeaves: 0x99ACCB71
+ sceIdStorageCreateLeaf: 0x08A471A6
+ sceIdStorageDeleteLeaf: 0x2C97AB36
+ sceIdStorageFlush: 0x3AD32523
+ sceIdStorageFormat: 0x958089DB
+ sceIdStorageGetFreeLeaves: 0x37833CB8
+ sceIdStorageGetLeafSize: 0xEB830733
+ sceIdStorageIsDirty: 0xB9069BAD
+ sceIdStorageIsFormatted: 0xFEFA40C2
+ sceIdStorageIsReadOnly: 0x2D633688
+ sceIdStorageLookup: 0x6FE062D1
+ sceIdStorageReadLeaf: 0xEB00C509
+ sceIdStorageRestart: 0x60B647A5
+ sceIdStorageUnformat: 0xF4BCB3EE
+ sceIdStorageUpdate: 0x683AAC10
+ sceIdStorageWriteLeaf: 0x1FA4D135
diff --git a/nids/360/SceIofilemgr.yml b/nids/360/SceIofilemgr.yml
index d348ffc..1850d62 100644
--- a/nids/360/SceIofilemgr.yml
+++ b/nids/360/SceIofilemgr.yml
@@ -30,15 +30,34 @@ modules:
nid: 0x40FD29C7
functions:
sceIoChstat: 0x7D42B8DC
+ sceIoChstatByFd: 0xDF57A75F
+ sceIoClearErrorEvent: 0x40B933C7
sceIoClose: 0xF99DD8A3
+ sceIoCreateErrorEvent: 0x3C0343DB
+ sceIoCreateMountEvent: 0x2DFA192F
+ sceIoDclose: 0x19C81DD6
+ sceIoDeleteErrorEvent: 0xC6158F8D
+ sceIoDeleteMountEvent: 0x43DB0AE4
sceIoDevctl: 0x16882FC4
sceIoDopen: 0x463B25CC
sceIoDread: 0x20CF5FC7
+ sceIoFlock: 0x16336A0D
+ sceIoGetProcessDefaultPriorityForSystem: 0xCE397158
sceIoGetstat: 0x75C96D25
+ sceIoGetstatByFd: 0x462F059B
sceIoLseek: 0x62090481
sceIoMkdir: 0x7F710B25
+ sceIoMount: 0xD070BC48
sceIoOpen: 0x75192972
sceIoRead: 0xE17EFC03
+ sceIoReadAsync: 0x69047C81
sceIoRemove: 0x0D7BB3E1
sceIoRename: 0xDC0C4997
+ sceIoRmdir: 0x1CC9C634
+ sceIoSetProcessDefaultPriorityForSystem: 0xABE65071
+ sceIoSync: 0xDDF78594
+ sceIoSyncByFd: 0x338DCD68
+ sceIoSyncByFdAsync: 0x041209CF
+ sceIoUmount: 0x20574100
sceIoWrite: 0x21EE91F0
+ sceIoWriteAsync: 0xA1BD13D0
diff --git a/nids/360/SceKernelIntrMgr.yml b/nids/360/SceKernelIntrMgr.yml
new file mode 100644
index 0000000..1164649
--- /dev/null
+++ b/nids/360/SceKernelIntrMgr.yml
@@ -0,0 +1,23 @@
+modules:
+ SceKernelIntrMgr:
+ nid: 0x73B1F972
+ libraries:
+ SceIntrmgrForDriver:
+ nid: 0x9DF04041
+ functions:
+ sceKernelClearIntrPending: 0x4DC48A01
+ sceKernelDisableSubIntr: 0x259C6D9E
+ sceKernelEnableSubIntr: 0x901E41D8
+ sceKernelGetIntrMasked: 0x6EC07C56
+ sceKernelIsIntrAllowedInCurrentContext: 0x182EE3E3
+ sceKernelIsIntrPending: 0xA269003D
+ sceKernelMaskIntr: 0x180435EC
+ sceKernelRegisterIntrHandler: 0x5C1FEB29
+ sceKernelRegisterSubIntrHandler: 0x96576C18
+ sceKernelReleaseIntrHandler: 0xD6009B98
+ sceKernelSetIntrMasked: 0x7117E827
+ sceKernelSetIntrPriority: 0x71020E29
+ sceKernelSetIntrTarget: 0x973BACCC
+ sceKernelTriggerSGI: 0x29F62500
+ sceKernelTriggerSubIntr: 0xCC94B294
+ sceKernelUnmaskIntr: 0x7117E827
diff --git a/nids/360/SceKernelModulemgr.yml b/nids/360/SceKernelModulemgr.yml
index 9f95892..56025f1 100644
--- a/nids/360/SceKernelModulemgr.yml
+++ b/nids/360/SceKernelModulemgr.yml
@@ -17,6 +17,7 @@ modules:
sceKernelLoadStartModule: 0x189BFBBB
sceKernelLoadStartModuleForPid: 0x9D953C22
sceKernelLoadStartSharedModuleForPid: 0xE2ADEF8D
+ sceKernelSearchModuleByName: 0xBBE1771C
sceKernelStartModule: 0x0675B682
sceKernelStopModule: 0x100DAEB9
sceKernelStopUnloadModule: 0x03B30B7E
diff --git a/nids/360/SceKernelThreadMgr.yml b/nids/360/SceKernelThreadMgr.yml
index 47998fb..45a1071 100644
--- a/nids/360/SceKernelThreadMgr.yml
+++ b/nids/360/SceKernelThreadMgr.yml
@@ -96,25 +96,67 @@ modules:
SceThreadmgrForDriver:
nid: 0xE2C40624
functions:
+ sceKernelCancelCallback: 0xC040EC1C
+ sceKernelCancelMutex: 0x7204B846
+ sceKernelChangeThreadPriority: 0x63DAB420
+ sceKernelCheckCallback: 0xE53E41F6
+ sceKernelCheckWaitableStatus: 0xD9BD74EB
+ sceKernelClearEvent: 0x9C335818
+ sceKernelClearEventFlag: 0x4F1DA3BE
sceKernelCreateCallback: 0x1C41614C
sceKernelCreateEventFlag: 0x4336BAA4
+ sceKernelCreateMutex: 0xFBAA026E
+ sceKernelCreateSema: 0x30E93C31
sceKernelCreateThread: 0xC6674E7D
sceKernelDelayThread: 0x4B675D05
sceKernelDelayThreadCB: 0x9C0180E1
sceKernelDeleteCallback: 0x3A7E17F6
sceKernelDeleteEventFlag: 0x71ECB352
+ sceKernelDeleteMutex: 0x0A912340
+ sceKernelDeleteSema: 0x16A35E58
sceKernelDeleteThread: 0xAC834F3F
+ sceKernelEnterProcess: 0x0486F239
+ sceKernelExitDeleteThread: 0x1D17DECF
+ sceKernelExitThread: 0x0C8A38E1
+ sceKernelGetCallbackCount: 0x0892D8DF
sceKernelGetProcessId: 0x9DCB4B7A
+ sceKernelGetSystemTimeLow: 0x47F6DE49
sceKernelGetSystemTimeWide: 0xF4EE4FA9
+ sceKernelGetThreadCpuAffinityMask: 0x83DC703D
+ sceKernelGetThreadCurrentPriority: 0x01414F0B
+ sceKernelGetThreadStackFreeSize: 0x7B278A0B
+ sceKernelGetThreadTLSAddr: 0x66EEA46A
+ sceKernelGetThreadmgrUIDClass: 0x0A20775A
+ sceKernelGetTimerBaseWide: 0xA6D11DD3
+ sceKernelGetTimerTimeWide: 0xC1286004
+ sceKernelInitializeFastMutex: 0xAF8E1266
+ sceKernelLockMutex: 0x16AC80C5
+ sceKernelNotifyCallback: 0xC3E00919
+ sceKernelPollEventFlag: 0x76C6555B
+ sceKernelPollSema: 0x4FDDFE24
+ sceKernelPulseEvent: 0x2427C81B
+ sceKernelRegisterCallbackToEvent: 0x832A7E0C
+ sceKernelRunWithStack: 0xE54FD746
+ sceKernelSetEvent: 0x9EA3A45C
+ sceKernelSetEventFlag: 0xD4780C3E
+ sceKernelSetTimerTimeWide: 0x85195A16
+ sceKernelSignalCond: 0xAC616150
+ sceKernelSignalCondAll: 0x6EC78CD0
+ sceKernelSignalCondTo: 0x61533DA9
+ sceKernelSignalSema: 0xD270498B
sceKernelStartThread: 0x21F5419B
+ sceKernelStartTimer: 0x84C4CE4D
+ sceKernelStopTimer: 0x474F214B
+ sceKernelTryLockReadRWLock: 0xFC2B5A50
+ sceKernelTryLockWriteRWLock: 0xA96F2E5A
+ sceKernelUnlockMutex: 0x1E82E5D0
+ sceKernelUnlockReadRWLock: 0xDE1B9EEE
+ sceKernelUnlockWriteRWLock: 0x94A73797
+ sceKernelUnregisterCallbackFromEvent: 0x2E48D81C
+ sceKernelUnregisterCallbackFromEventAll: 0x8DADBD16
+ sceKernelUnregisterThreadEventHandler: 0x2C8ED6F0
sceKernelWaitEventFlag: 0x0C1D3F20
sceKernelWaitEventFlagCB: 0x8A35F714
+ sceKernelWaitSema: 0x3C8B55A9
sceKernelWaitThreadEnd: 0x3E20216F
- SceThreadmgrForKernel:
- nid: 0xA8CA0EFD
- functions:
- sceKernelCreateMutex: 0xFBAA026E
- sceKernelDeleteMutex: 0x0A912340
- sceKernelLockMutex: 0x16AC80C5
- sceKernelRunWithStack: 0xE54FD746
- sceKernelUnlockMutex: 0x1E82E5D0
+ sceKernelWaitThreadEndCB: 0x9EF4F62C
diff --git a/nids/360/SceLowio.yml b/nids/360/SceLowio.yml
new file mode 100644
index 0000000..f72b70b
--- /dev/null
+++ b/nids/360/SceLowio.yml
@@ -0,0 +1,13 @@
+modules:
+ SceLowio:
+ nid: 0x17E0D8DF
+ libraries:
+ SceGpioForDriver:
+ nid: 0xF0EF5743
+ functions:
+ sceGpioAcquireIntr: 0x35AAD77A
+ sceGpioPortClear: 0xF6310435
+ sceGpioPortSet: 0xD454A584
+ sceGpioQueryIntr: 0x010DC295
+ sceGpioSetIntrMode: 0xBBEA1DDC
+ sceGpioSetPortMode: 0x372022A4
diff --git a/nids/360/ScePower.yml b/nids/360/ScePower.yml
index 7743b5b..c503204 100644
--- a/nids/360/ScePower.yml
+++ b/nids/360/ScePower.yml
@@ -1,7 +1,11 @@
modules:
ScePower:
- nid: 0x00000093
+ nid: 0x5EAE6AEC
libraries:
+ SceLedForDriver:
+ nid: 0x282C1323
+ functions:
+ sceLedSetMode: 0xEA24BE03
ScePower:
nid: 0x1082DA7F
functions:
@@ -43,3 +47,15 @@ modules:
scePowerSetIdleTimerCount: 0xB11EF149
scePowerSetUsingWireless: 0x4D695C1F
scePowerUnregisterCallback: 0xDFA8BAF8
+ ScePowerForDriver:
+ nid: 0x1590166F
+ functions:
+ scePowerGetPowerSwMode: 0x165CE085
+ scePowerGetWakeupFactor: 0x9F26222A
+ scePowerRequestColdReset: 0x0442D852
+ scePowerRequestHibernate: 0x08951418
+ scePowerSetBatteryFakeStatus: 0x0C6973B8
+ scePowerSetMipsClockFrequency: 0xFFC84E69
+ scePowerSetPowerSwMode: 0xC1853BA7
+ scePowerSetPsButtonPushTime: 0xCF8F0529
+ scePowerSetStandbyButtonPushTime: 0x675A84ED
diff --git a/nids/360/SceRtc.yml b/nids/360/SceRtc.yml
index 62c6547..9fc7666 100644
--- a/nids/360/SceRtc.yml
+++ b/nids/360/SceRtc.yml
@@ -6,6 +6,25 @@ modules:
nid: 0x3503487E
functions:
sceRtcGetAccumulativeTime: 0x258BE8EC
+ SceRtcForDriver:
+ nid: 0x0351D827
+ functions:
+ sceRtcGetAlarmTick: 0xC838275A
+ sceRtcGetCurrentSecureTick: 0x401C0954
+ sceRtcGetSecureAlarmTick: 0xBD53731C
+ sceRtcIsAlarmed: 0xCD295F0C
+ sceRtcIsSecureAlarmed: 0xE39F2ABE
+ sceRtcRegisterCallback: 0x5220870D
+ sceRtcRegisterSecureAlarmCallback: 0xCF84DFC0
+ sceRtcSetAlarmTick: 0xD610C646
+ sceRtcSetConf: 0xACFE5A9F
+ sceRtcSetCurrentDebugNetworkTick: 0xAAB6053F
+ sceRtcSetCurrentNetworkTick: 0x162E486E
+ sceRtcSetCurrentSecureTick: 0x7D431C87
+ sceRtcSetCurrentTick: 0x70A78CD2
+ sceRtcSetSecureAlarmTick: 0x8333790D
+ sceRtcUnregisterCallback: 0x9546C68B
+ sceRtcUnregisterSecureAlarmCallback: 0xEDDC2325
SceRtcUser:
nid: 0x6704D3C6
functions:
diff --git a/nids/360/SceSblACMgr.yml b/nids/360/SceSblACMgr.yml
index c744b03..7b1077d 100644
--- a/nids/360/SceSblACMgr.yml
+++ b/nids/360/SceSblACMgr.yml
@@ -5,6 +5,7 @@ modules:
SceSblACMgrForDriver:
nid: 0x9AD8E213
functions:
+ sceSblACMgrHasCapability: 0xC2D1F2FC
sceSblACMgrIsDevelopmentMode: 0xE87D1777
sceSblACMgrIsGameProgram: 0x1298C647
sceSblACMgrIsNonGameProgram: 0x6C5AB07F
diff --git a/nids/360/SceSyscon.yml b/nids/360/SceSyscon.yml
new file mode 100644
index 0000000..b1827b5
--- /dev/null
+++ b/nids/360/SceSyscon.yml
@@ -0,0 +1,35 @@
+modules:
+ SceSyscon:
+ nid: 0x5358BA05
+ libraries:
+ SceSysconForDriver:
+ nid: 0x60A35F64
+ functions:
+ sceSysconBeginConfigstorageTransaction: 0xA4968B8C
+ sceSysconClearTemperatureLog: 0x3843D657
+ sceSysconCmdSync: 0x6E517D22
+ sceSysconCommitConfigstorageTransaction: 0x7B9B3617
+ sceSysconCtrlManualChargeMode: 0xC6A2C9EF
+ sceSysconEnableHibernateIO: 0x4946538A
+ sceSysconEndConfigstorageTransaction: 0xFCC3E8EE
+ sceSysconGetHardwareInfo: 0xCBD6D8BC
+ sceSysconGetHardwareInfo2: 0x965C68C3
+ sceSysconGetLogInfo: 0x701535FC
+ sceSysconGetManualChargeMode: 0x4FEC564C
+ sceSysconGetManufacturesStatus: 0x3E09A1F4
+ sceSysconGetTemperatureLog: 0x3B354824
+ sceSysconGetUsbDetStatus: 0xEF810687
+ sceSysconHasWWAN: 0xCBD6D8BC
+ sceSysconIduModeClear: 0x34574496
+ sceSysconIduModeSet: 0x956D07CB
+ sceSysconIsDownLoaderMode: 0x9ADD60D2
+ sceSysconIsIduMode: 0xCBD6D8BC
+ sceSysconIsMCEmuCapable: 0xCBD6D8BC
+ sceSysconIsShowMode: 0xCBD6D8BC
+ sceSysconLoadConfigstorageScript: 0x89C5CFD6
+ sceSysconLogReadData: 0x487D97F3
+ sceSysconLogStart: 0x4E55CF5E
+ sceSysconLogStartWaiting: 0x9C0B1E61
+ sceSysconShowModeClear: 0x8D7724C0
+ sceSysconShowModeSet: 0x6D65B70F
+ sceSysconVerifyConfigstorageScript: 0xCC6F90A8
diff --git a/nids/360/SceSysmem.yml b/nids/360/SceSysmem.yml
index c907a66..7e937e5 100644
--- a/nids/360/SceSysmem.yml
+++ b/nids/360/SceSysmem.yml
@@ -5,16 +5,23 @@ modules:
SceCpuForDriver:
nid: 0x40ECDB0E
functions:
- sceKernelCpuDcacheAndL2AndDMAFlush: 0x364E68A4
- sceKernelCpuDcacheAndL2Flush: 0x9CB9F0CE
- sceKernelCpuDcacheWritebackRange: 0x103872A5
+ sceKernelCpuDcacheAndL2InvalidateRange: 0x02796361
+ sceKernelCpuDcacheAndL2WritebackInvalidateRange: 0x364E68A4
+ sceKernelCpuDcacheAndL2WritebackRange: 0x103872A5
+ sceKernelCpuDcacheInvalidateRange: 0x8B4C26DF
+ sceKernelCpuDcacheWritebackRange: 0x9CB9F0CE
sceKernelCpuDisableInterrupts: 0x821FC0EE
sceKernelCpuEnableInterrupts: 0xF5BAD43B
SceCpuForKernel:
nid: 0x54BF2BAB
functions:
- sceKernelCpuDcacheFlush: 0x6BA2E51C
- sceKernelCpuIcacheAndL2Flush: 0x19F17BD0
+ sceKernelCpuDcacheInvalidateAll: 0x2F3BF020
+ sceKernelCpuDcacheWritebackAll: 0x73A30DB2
+ sceKernelCpuDcacheWritebackInvalidateAll: 0x76DAB4D0
+ sceKernelCpuDcacheWritebackInvalidateRange: 0x6BA2E51C
+ sceKernelCpuIcacheAndL2WritebackInvalidateRange: 0x19F17BD0
+ sceKernelCpuIcacheInvalidateAll: 0x264DA250
+ sceKernelCpuIcacheInvalidateRange: 0xF4C7F578
sceKernelCpuRestoreContext: 0x0A4F0FB9
sceKernelCpuSaveContext: 0x211B89DA
sceKernelCpuUnrestrictedMemcpy: 0x8C683DEC
@@ -25,9 +32,26 @@ modules:
sceKernelPowerTick: 0xE0489831
sceKernelRegisterSuspendCallback: 0x04C05D10
sceKernelUnregisterSuspendCallback: 0xDD61D621
+ SceKernelUtilsForDriver:
+ nid: 0x496AD8B4
+ functions:
+ sceKernelDeflateDecompress: 0x8AF1FAD4
+ SceSblAIMgrForDriver:
+ nid: 0xFD00C69A
+ functions:
+ sceSblAimgrGetSMI: 0x47D9CF13
+ sceSblAimgrIsCEX: 0xD78B04A2
+ sceSblAimgrIsDEX: 0xF4B98F66
+ sceSblAimgrIsDolce: 0x71608CA3
+ sceSblAimgrIsGenuineDolce: 0xC6E83F34
+ sceSblAimgrIsGenuineVITA: 0x963CA644
+ sceSblAimgrIsTest: 0x3B638885
+ sceSblAimgrIsTool: 0x274663A0
+ sceSblAimgrIsVITA: 0x4273B97B
SceSysclibForDriver:
nid: 0x7EE45391
functions:
+ __muldi3: 0x7554AB04
__stack_chk_fail: 0xB997493D
memchr: 0x60DAEA30
memcmp: 0xF939E83D
@@ -36,7 +60,6 @@ modules:
memset: 0x0AB9BF5C
rshift: 0x1D89F6C0
snprintf: 0xAE7A8981
- sprintf: 0x3DDBE2E1
strchr: 0x38463759
strcmp: 0x0B33BC43
strlen: 0xCFC6A9AC
@@ -103,6 +126,7 @@ modules:
sceKernelStrncpyUserToKernel: 0xDB3EC244
sceKernelStrnlenUserForPid: 0x9929EB07
sceKernelSwitchVmaForPid: 0x6F2ACDAE
+ sceKernelUnmapMemBlock: 0xFFCD9B60
SceSysmemForKernel:
nid: 0x63A519E5
functions:
@@ -113,3 +137,11 @@ modules:
functions:
sceKernelGetProcessTitleId: 0xEC3124A3
sceKernelGetSysrootBuffer: 0x3E455842
+ sceSysrootIsBsodReboot: 0x4373AC96
+ sceSysrootIsExternalBootMode: 0x89D19090
+ sceSysrootIsManufacturingMode: 0x55392965
+ sceSysrootIsSafeMode: 0x834439A7
+ sceSysrootIsUpdateMode: 0xB0E1FC67
+ sceSysrootIsUsbEnumWakeup: 0x79C9AE10
+ sceSysrootUseExternalStorage: 0x55392965
+ sceSysrootUseInternalStorage: 0x50FE3B4D
diff --git a/nids/360/SceUsbd.yml b/nids/360/SceUsbd.yml
new file mode 100644
index 0000000..50f6a4a
--- /dev/null
+++ b/nids/360/SceUsbd.yml
@@ -0,0 +1,38 @@
+modules:
+ SceUsbd:
+ nid: 0x3525FE7A
+ libraries:
+ SceUsbdForDriver:
+ nid: 0xA0EBCA41
+ functions:
+ sceUsbdGetDescriptor: 0xBC3EF82B
+ sceUsbdRegisterCompositeLdd: 0x6E53D7F4
+ sceUsbdRegisterDriver: 0x1EC94F18
+ sceUsbdSuspendPhase2: 0xD7AA730D
+ sceUsbdUnregisterDriver: 0x216F108D
+ SceUsbdForUser:
+ nid: 0xC3AEAB67
+ functions:
+ sceUsbdAttach: 0xEACEAE86
+ sceUsbdAttachCompositeLdd: 0xCA8F2F59
+ sceUsbdClosePipe: 0xAA3AF5D5
+ sceUsbdEnd: 0x5736A150
+ sceUsbdGetDescriptor: 0xAE671F22
+ sceUsbdGetDescriptorSize: 0xB357AC81
+ sceUsbdGetDeviceAddress: 0xC54F9D11
+ sceUsbdGetDeviceList: 0x2DE0239E
+ sceUsbdGetDeviceSpeed: 0x6C5AACD0
+ sceUsbdGetIsochTransferStatus: 0xA0A2C826
+ sceUsbdGetTransferStatus: 0xCDF5B6E0
+ sceUsbdInit: 0x77D58B31
+ sceUsbdIsochTransferData: 0x594D82FD
+ sceUsbdOpenDefaultPipe: 0x4A26DDCC
+ sceUsbdOpenPipe: 0xF94521A6
+ sceUsbdReceiveEvent: 0x16FEE05D
+ sceUsbdRegisterCallback: 0x9A820167
+ sceUsbdRegisterCompositeLdd: 0x2A7C0263
+ sceUsbdRegisterLdd: 0x6AD28166
+ sceUsbdResetDevice: 0xDEB3BE59
+ sceUsbdTransferData: 0x716048C1
+ sceUsbdUnregisterCallback: 0x0585EA80
+ sceUsbdUnregisterLdd: 0x473692CC