diff options
| author | John Wilbert M. Villamor <lameguy64@gmail.com> | 2019-04-06 10:11:07 +0800 |
|---|---|---|
| committer | John Wilbert M. Villamor <lameguy64@gmail.com> | 2019-04-06 10:11:07 +0800 |
| commit | f3e040230772f978540a71aea43dfde200992922 (patch) | |
| tree | bd8ca31b72dd01e24980b073854e263589530f56 /libpsn00b/include/psxapi.h | |
| download | psn00bsdk-f3e040230772f978540a71aea43dfde200992922.tar.gz | |
First commit
Diffstat (limited to 'libpsn00b/include/psxapi.h')
| -rw-r--r-- | libpsn00b/include/psxapi.h | 97 |
1 files changed, 97 insertions, 0 deletions
diff --git a/libpsn00b/include/psxapi.h b/libpsn00b/include/psxapi.h new file mode 100644 index 0000000..54b87ee --- /dev/null +++ b/libpsn00b/include/psxapi.h @@ -0,0 +1,97 @@ +#ifndef __PSXAPI__ +#define __PSXAPI__ + +typedef struct { // Device control block + char *name; + int flags; + int ssize; + char *desc; + void *f_init; + void *f_open; + void *f_inout; + void *f_close; + void *f_ioctl; + void *f_read; + void *f_write; + void *f_erase; + void *f_undelete; + void *f_firstfile; + void *f_nextfile; + void *f_format; + void *f_chdir; + void *f_rename; + void *f_remove; + void *f_testdevice; +} DCB; + +typedef struct { // File control block + int status; + unsigned int diskid; + void *trns_addr; + unsigned int trns_len; + unsigned int filepos; + unsigned int flags; + unsigned int lasterr; + DCB *dcb; + unsigned int filesize; + unsigned int lba; + unsigned int fcbnum; +} FCB; + +struct DIRENTRY { // Directory entry + char name[20]; + int attr; + int size; + struct DIRENTRY *next; + int head; + char system[4]; +}; + +// Not recommended to use these functions to install IRQ handlers + +typedef struct { + unsigned int* next; + unsigned int* func2; + unsigned int* func1; + unsigned int pad; +} INT_RP; + +extern void SysEnqIntRP(int pri, INT_RP *rp); +extern void SysDeqIntRP(int pri, INT_RP *rp); + +// Use event handlers instead + +extern int OpenEvent(unsigned int class, int spec, int mode, void (*func)()); +extern int CloseEvent(int ev_desc); +extern int EnableEvent(int ev_desc); +extern int DisableEvent(int ev_desc); + +// BIOS file functions + +extern int open(const char *name, int mode); +extern int close(int fd); +extern int seek(int fd, unsigned int offset, int mode); +extern int read(int fd, char *buff, unsigned int len); +extern int write(int fd, const char *buff, unsigned int len); +extern int ioctl(int fd, int cmd, int arg); +extern struct DIRENTRY *firstfile(const char *wildcard, struct DIRENTRY *entry); +extern struct DIRENTRY *nextfile(struct DIRENTRY *entry); +extern int erase(const char *name); +extern int chdir(const char *path); + +#define delete( p ) erase( p ) +#define cd( p ) chdir( p ) // For compatibility + +int AddDev(DCB *dcb); +int DelDev(const char *name); +extern void ListDev(); + +extern void EnterCriticalSection(); +extern void ExitCriticalSection(); + +extern void _96_init(); +extern void _96_remove(); + +extern void ChangeClearPAD(int mode); + +#endif |
