pcsx2/PsxBios2.h

95 lines
2.5 KiB
C

/* Pcsx2 - Pc Ps2 Emulator
* Copyright (C) 2002-2003 Pcsx2 Team
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
/***** sysmem imageInfo
00000800: 00 16 00 00 70 14 00 00 ¦ 01 01 00 00 01 00 00 00
0000 next: .word ? //00001600
0004 name: .word ? //00001470
0008 version: .half ? //0101
000A flags: .half ? //----
000C index: .half ? //0001
000E field_E: .half ? //----
00000810: 90 08 00 00 A0 94 00 00 ¦ 30 08 00 00 40 0C 00 00
0010 entry: .word ? //00000890
0014 gp_value: .word ? //000094A0
0018 p1_vaddr: .word ? //00000830
001C text_size: .word ? //00000C40
00000820: 40 00 00 00 10 00 00 00 ¦ 00 00 00 00 00 00 00 00
0020 data_size: .word ? //00000040
0024 bss_size: .word ? //00000010
0028 field_28: .word ? //--------
002C field_2C: .word ? //--------
*****/
#ifndef __PSX_BIOS_H__
#define __PSX_BIOS_H__
typedef struct {
u32 next, //+00
name; //+04
u16 version, //+08
flags, //+0A
index, //+0C
_unkE; //+0E
u32 entry, //+10
_gp, //+14
vaddr, //+18
text_size, //+1C
data_size, //+20
bss_size, //+24
_pad28, //+28
_pad2C; //+2C
} irxImageInfo; //=30
typedef struct {
int active;
u32 server;
u32 fhandler;
} _sifServer;
#define SIF_SERVERS 32
_sifServer sifServer[SIF_SERVERS];
// max modules/funcs
#define IRX_MODULES 64
#define IRX_FUNCS 256
typedef struct {
u32 num;
u32 entry;
} irxFunc;
typedef struct {
int active;
u32 name[2];
irxFunc funcs[IRX_FUNCS];
} irxModule;
irxModule irxMod[IRX_MODULES];
void iopModulesInit();
int iopSetImportFunc(u32 *ptr);
int iopSetExportFunc(u32 *ptr);
void sifServerCall(u32 server, u32 num, char *bin, int insize, char *bout, int outsize);
void sifAddServer(u32 server, u32 fhandler);
#endif