PS2SDK
PS2 Homebrew Libraries
Loading...
Searching...
No Matches
iLinkman.h
1/* iLinkman.h
2 * Purpose: Main header file containing function prototypes, structure declaration and other declarations.
3 *
4 * Last Updated: 2012/02/28
5 * Programmer: SP193
6 */
7
8#ifndef __ILINKMAN_H__
9#define __ILINKMAN_H__
10
11#include <types.h>
12#include <irx.h>
13
14#define BSWAP32(x) ((x << 24) | ((x & 0xff00) << 8) | ((x & 0xff0000) >> 8) | (x >> 24))
15#define BSWAP16(x) ((((unsigned short int)x) << 8) | (x >> 8))
16
17/* IEEE1394 speeds */
18#define S100 0
19#define S200 1
20#define S400 2
21
22#define iLink_NODE_IRMC 0x10
23#define iLink_NODE_CMC 0x08
24#define iLink_NODE_ISC 0x04
25#define iLink_NODE_BMC 0x02
26#define iLink_NODE_PMC 0x01
27
28#define iLink_CB_WRITE_REQUEST 0x01
29#define iLink_CB_READ_REQUEST 0x02
30#define iLink_CB_LOCK_REQUEST 0x04
31#define iLink_CB_BUS_RESET 0x08
32
33extern void iLinkEnableSBus(void);
34extern void iLinkDisableSBus(void);
35extern void iLinkResetSBus(void);
36extern unsigned int iLinkSetNodeCapabilities(unsigned int capabilities);
37extern void *iLinkSetTrCallbackHandler(void *function);
38extern int iLinkGetGenerationNumber(void);
39
40extern int iLinkGetLocalNodeID(void);
41extern int iLinkGetNodeCount(void);
42
43extern int iLinkTrAlloc(unsigned short int NodeID, unsigned char speed);
44extern void iLinkTrFree(int trContext);
45extern int iLinkTrWrite(int trContext, unsigned short int offset_high, unsigned int offset_low, void *buffer, unsigned int nBytes);
46extern int iLinkTrRead(int trContext, unsigned short int offset_high, unsigned int offset_low, void *buffer, unsigned int nBytes);
47
48extern unsigned short int iLinkCalculateCRC16(void *data, unsigned int nQuads);
49extern int iLinkAddCROMUnit(unsigned int *data, unsigned int nQuads);
50extern void iLinkDeleteCROMUnit(unsigned int id);
51extern int iLinkGetNodeCapabilities(unsigned short NodeID);
52extern int iLinkGetNodeMaxSpeed(unsigned short int NodeID);
53
54extern int iLinkGetNodeTrSpeed(int trContext);
55extern int iLinkSetNodeTrSpeed(int trContext, unsigned char speed);
56
57extern int iLinkFindUnit(int UnitInList, unsigned int UnitSpec, unsigned int UnitSW_Version);
58extern int iLinkReadCROM(unsigned short int NodeID, unsigned int Offset, unsigned int nQuads, unsigned int *buffer);
59
60extern u64 iLinkGetLocalNodeEUI64(void);
61
62#define iLinkman_IMPORTS_start DECLARE_IMPORT_TABLE(iLinkman, 1, 1)
63#define iLinkman_IMPORTS_end END_IMPORT_TABLE
64
65#define I_iLinkEnableSBus DECLARE_IMPORT(4, iLinkEnableSBus)
66#define I_iLinkDisableSBus DECLARE_IMPORT(5, iLinkDisableSBus)
67#define I_iLinkResetSBus DECLARE_IMPORT(6, iLinkResetSBus)
68#define I_iLinkSetNodeCapabilities DECLARE_IMPORT(7, iLinkSetNodeCapabilities)
69#define I_iLinkSetTrCallbackHandler DECLARE_IMPORT(8, iLinkSetTrCallbackHandler)
70#define I_iLinkGetGenerationNumber DECLARE_IMPORT(9, iLinkGetGenerationNumber)
71#define I_iLinkGetLocalNodeID DECLARE_IMPORT(10, iLinkGetLocalNodeID)
72#define I_iLinkGetNodeCount DECLARE_IMPORT(11, iLinkGetNodeCount)
73#define I_iLinkTrAlloc DECLARE_IMPORT(12, iLinkTrAlloc)
74#define I_iLinkTrFree DECLARE_IMPORT(13, iLinkTrFree)
75#define I_iLinkTrWrite DECLARE_IMPORT(14, iLinkTrWrite)
76#define I_iLinkTrRead DECLARE_IMPORT(15, iLinkTrRead)
77#define I_iLinkCalculateCRC16 DECLARE_IMPORT(16, iLinkCalculateCRC16)
78#define I_iLinkAddCROMUnit DECLARE_IMPORT(17, iLinkAddCROMUnit)
79#define I_iLinkDeleteCROMUnit DECLARE_IMPORT(18, iLinkDeleteCROMUnit)
80#define I_iLinkGetNodeCapabilities DECLARE_IMPORT(19, iLinkGetNodeCapabilities)
81#define I_iLinkGetNodeMaxSpeed DECLARE_IMPORT(20, iLinkGetNodeMaxSpeed)
82#define I_iLinkGetNodeTrSpeed DECLARE_IMPORT(21, iLinkGetNodeTrSpeed)
83#define I_iLinkSetNodeTrSpeed DECLARE_IMPORT(22, iLinkSetNodeTrSpeed)
84#define I_iLinkFindUnit DECLARE_IMPORT(23, iLinkFindUnit)
85#define I_iLinkReadCROM DECLARE_IMPORT(24, iLinkReadCROM)
86#define I_iLinkGetLocalNodeEUI64 DECLARE_IMPORT(12, iLinkGetLocalNodeEUI64)
87
88#endif /* __ILINKMAN_H__ */