diff options
-rw-r--r-- | include/kernel/display.h | 87 | ||||
-rw-r--r-- | include/kernel/kernel/cpu.h | 78 | ||||
-rw-r--r-- | include/kernel/kernel/intrmgr.h | 60 | ||||
-rw-r--r-- | include/kernel/kernel/threadmgr.h | 2 | ||||
-rw-r--r-- | include/kernel/udcd.h | 1 | ||||
-rw-r--r-- | include/kernel/usbd.h | 63 | ||||
-rw-r--r-- | include/user/appmgr.h | 3 | ||||
-rw-r--r-- | include/user/kernel/threadmgr.h | 2 | ||||
-rw-r--r-- | include/user/power.h | 7 | ||||
-rw-r--r-- | include/user/usbd.h | 87 | ||||
-rw-r--r-- | nids/360/SceDisplay.yml | 9 | ||||
-rw-r--r-- | nids/360/SceIdStorage.yml | 23 | ||||
-rw-r--r-- | nids/360/SceIofilemgr.yml | 19 | ||||
-rw-r--r-- | nids/360/SceKernelIntrMgr.yml | 23 | ||||
-rw-r--r-- | nids/360/SceKernelModulemgr.yml | 1 | ||||
-rw-r--r-- | nids/360/SceKernelThreadMgr.yml | 58 | ||||
-rw-r--r-- | nids/360/SceLowio.yml | 13 | ||||
-rw-r--r-- | nids/360/ScePower.yml | 18 | ||||
-rw-r--r-- | nids/360/SceRtc.yml | 19 | ||||
-rw-r--r-- | nids/360/SceSblACMgr.yml | 1 | ||||
-rw-r--r-- | nids/360/SceSyscon.yml | 35 | ||||
-rw-r--r-- | nids/360/SceSysmem.yml | 44 | ||||
-rw-r--r-- | nids/360/SceUsbd.yml | 38 |
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 |