ps2sdk  1.1
A collection of Open Source libraries used for developing applications on Sony's PlayStation 2® (PS2).
netman.h
Go to the documentation of this file.
1 
6 #ifndef __NETMAN_H__
7 #define __NETMAN_H__
8 
9 #include <tamtypes.h>
10 
11 //Common structures
12 #define NETMAN_NETIF_NAME_MAX_LEN 4
13 #define NETMAN_NETIF_FRAME_SIZE 1514
14 #define NETMAN_FRAME_GROUP_SIZE 8 //The actual number of DMA transfer tags is twice this. The total number presented to sceSifSetDma must never exceed 32.
15 
17  void (*LinkStateUp)(void);
18  void (*LinkStateDown)(void);
19  void *(*AllocRxPacket)(unsigned int size, void **payload);
20  void (*FreeRxPacket)(void *packet);
21  void (*EnQRxPacket)(void *packet);
22  int (*NextTxPacket)(void **payload);
23  void (*DeQTxPacket)(void);
24  int (*AfterTxPacket)(void **payload); //For EE only, peek at the packet after the current packet.
25  void (*ReallocRxPacket)(void *packet, unsigned int size); //For EE only, update the size of the Rx packet (size will be always smaller than NETMAN_NETIF_FRAME_SIZE).
26 };
27 
42 };
43 
47 };
48 
50 #define NETMAN_NETIF_ETH_LINK_DISABLE_PAUSE 0x40
51 
63 
65 };
66 
70 };
71 
73  // Ethernet I/F-only IOCTL codes
76  //Function codes with no input and no output; the result is in the return value.
86  //Returns struct NetManEthStatus
88 
91 
92  // Dial-up I/F-only IOCTL codes
93  // 0x2000
94 
95  // Common IOCTL codes
99 };
100 
101 //*** Higher-level services, for the running user program ***
102 //Initialization and deinitialization functions, for the EE side.
103 #ifdef _EE
104 
105 int NetManInit(void);
106 void NetManDeinit(void);
107 
108 #endif
109 
110 //Network Interface (IF) control.
112 int NetManSetMainIF(const char *name);
113 int NetManQueryMainIF(char *name);
114 
115 //*** System functions for either the Network IF driver or the network protocol stack ***
116 //For the network protocol stack to initialize/deinitialize NETMAN.
117 int NetManRegisterNetworkStack(const struct NetManNetProtStack *stack);
119 
120 /* Common network Interface (IF) management functions. Used by the user program and the protocol stack. */
121 int NetManIoctl(unsigned int command, void *args, unsigned int args_len, void *output, unsigned int length);
122 int NetManSetLinkMode(int mode);
123 
124 /* Network Interface (IF) management functions. Used by the protocol stack. */
125 void NetManNetIFXmit(void); //Notify the interface of available packets. May be called from the interrupt context.
126 
127 /* Network protocol stack management functions. Used by the Network InterFace (IF) driver. */
128 void *NetManNetProtStackAllocRxPacket(unsigned int length, void **payload);
131 int NetManTxPacketNext(void **payload);
132 void NetManTxPacketDeQ(void);
133 
134 int NetManTxPacketAfter(void **payload); //For EE only, for NETMAN's internal use.
135 void NetManNetProtStackReallocRxPacket(void *packet, unsigned int length); //For EE only, for NETMAN's internal use.
136 
137 /* NETIF flags. */
139 #define NETMAN_NETIF_IN_USE 0x80
141 #define NETMAN_NETIF_ETHERNET 1
143 #define NETMAN_NETIF_DIALUP 2
145 #define NETMAN_NETIF_LINK_UP 4
146 
147 struct NetManNetIF{
149  unsigned short int flags;
151  short int id;
152  int (*init)(void);
153  void (*deinit)(void);
154  void (*xmit)(void);
155  int (*ioctl)(unsigned int command, void *args, unsigned int args_len, void *output, unsigned int length);
157 };
158 
159 //IF event flag bits, set by NETMAN
160 #define NETMAN_NETIF_EVF_UP 0x01
161 #define NETMAN_NETIF_EVF_DOWN 0x02
162 
163 #define NETMAN_MAX_NETIF_COUNT 2
164 
165 /* Network InterFace (IF) management functions. Used by the network InterFace (IF). */
166 int NetManRegisterNetIF(struct NetManNetIF *NetIF);
167 void NetManUnregisterNetIF(const char *name);
168 void NetManToggleNetIFLinkState(int NetIFID, unsigned char state); //Also toggles NETMAN_NETIF_EVF_UP and NETMAN_NETIF_EVF_DOWN
169 
170 #ifdef _IOP
171 
172 #define netman_IMPORTS_start DECLARE_IMPORT_TABLE(netman, 3, 1)
173 #define netman_IMPORTS_end END_IMPORT_TABLE
174 
175 #define I_NetManRegisterNetworkStack DECLARE_IMPORT(4, NetManRegisterNetworkStack)
176 #define I_NetManUnregisterNetworkStack DECLARE_IMPORT(5, NetManUnregisterNetworkStack)
177 
178 #define I_NetManNetIFXmit DECLARE_IMPORT(6, NetManNetIFXmit)
179 #define I_NetManIoctl DECLARE_IMPORT(7, NetManIoctl)
180 
181 #define I_NetManNetProtStackAllocPacket DECLARE_IMPORT(8, NetManNetProtStackAllocRxPacket)
182 #define I_NetManNetProtStackFreePacket DECLARE_IMPORT(9, NetManNetProtStackFreeRxPacket)
183 #define I_NetManNetProtStackEnQPacket DECLARE_IMPORT(10, NetManNetProtStackEnQRxPacket)
184 
185 #define I_NetManRegisterNetIF DECLARE_IMPORT(11, NetManRegisterNetIF)
186 #define I_NetManUnregisterNetIF DECLARE_IMPORT(12, NetManUnregisterNetIF)
187 #define I_NetManToggleNetIFLinkState DECLARE_IMPORT(13, NetManToggleNetIFLinkState)
188 #define I_NetManGetGlobalNetIFLinkState DECLARE_IMPORT(14, NetManGetGlobalNetIFLinkState)
189 
190 #define I_NetManSetMainIF DECLARE_IMPORT(15, NetManSetMainIF)
191 #define I_NetManQueryMainIF DECLARE_IMPORT(16, NetManQueryMainIF)
192 
193 #define I_NetManSetLinkMode DECLARE_IMPORT(17, NetManSetLinkMode)
194 
195 #define I_NetManTxPacketNext DECLARE_IMPORT(18, NetManTxPacketNext)
196 #define I_NetManTxPacketDeQ DECLARE_IMPORT(19, NetManTxPacketDeQ)
197 
198 #endif
199 
200 #endif /* __NETMAN_H__ */
packet_t packet
Definition: font.c:24
s32 command
Definition: libpad.c:156
int NetManTxPacketAfter(void **payload)
Definition: netman.c:141
void NetManNetIFXmit(void)
Definition: netman.c:103
int NetManSetMainIF(const char *name)
Definition: rpc_client.c:290
void * NetManNetProtStackAllocRxPacket(unsigned int length, void **payload)
Definition: netman.c:114
void NetManUnregisterNetworkStack(void)
Definition: netman.c:92
NETMAN_NETIF_ETH_LINK_MODE
Definition: netman.h:52
@ NETMAN_NETIF_ETH_LINK_MODE_100M_HDX
Definition: netman.h:60
@ NETMAN_NETIF_ETH_LINK_MODE_COUNT
Definition: netman.h:64
@ NETMAN_NETIF_ETH_LINK_MODE_10M_FDX
Definition: netman.h:58
@ NETMAN_NETIF_ETH_LINK_MODE_10M_HDX
Definition: netman.h:56
@ NETMAN_NETIF_ETH_LINK_MODE_AUTO
Definition: netman.h:54
@ NETMAN_NETIF_ETH_LINK_MODE_100M_FDX
Definition: netman.h:62
void NetManUnregisterNetIF(const char *name)
int NetManGetGlobalNetIFLinkState(void)
Definition: netman.c:27
int NetManSetLinkMode(int mode)
Definition: rpc_client.c:332
int NetManTxPacketNext(void **payload)
Definition: netman.c:130
NETMAN_NETIF_ETH_LINK_STATE
Definition: netman.h:67
@ NETMAN_NETIF_ETH_LINK_STATE_DOWN
Definition: netman.h:68
@ NETMAN_NETIF_ETH_LINK_STATE_UP
Definition: netman.h:69
NETMAN_NETIF_IOCTL_CODES
Definition: netman.h:72
@ NETMAN_NETIF_IOCTL_ETH_GET_LINK_MODE
Definition: netman.h:77
@ NETMAN_NETIF_IOCTL_GET_LINK_STATUS
Definition: netman.h:96
@ NETMAN_NETIF_IOCTL_ETH_GET_STATUS
Definition: netman.h:87
@ NETMAN_NETIF_IOCTL_ETH_GET_RX_EOVERRUN_CNT
Definition: netman.h:78
@ NETMAN_NETIF_IOCTL_ETH_GET_TX_EUNDERRUN_CNT
Definition: netman.h:85
@ NETMAN_NETIF_IOCTL_ETH_GET_RX_EBADLEN_CNT
Definition: netman.h:79
@ NETMAN_NETIF_IOCTL_GET_TX_DROPPED_COUNT
Definition: netman.h:97
@ NETMAN_NETIF_IOCTL_ETH_GET_TX_ECOLL_CNT
Definition: netman.h:84
@ NETMAN_NETIF_IOCTL_ETH_GET_TX_ELOSSCR_CNT
Definition: netman.h:82
@ NETMAN_NETIF_IOCTL_ETH_GET_MAC
Definition: netman.h:75
@ NETMAN_NETIF_IOCTL_ETH_GET_RX_EBADFCS_CNT
Definition: netman.h:80
@ NETMAN_NETIF_IOCTL_GET_RX_DROPPED_COUNT
Definition: netman.h:98
@ NETMAN_NETIF_IOCTL_ETH_GET_TX_EEDEFER_CNT
Definition: netman.h:83
@ NETMAN_NETIF_IOCTL_ETH_SET_LINK_MODE
Definition: netman.h:90
@ NETMAN_NETIF_IOCTL_ETH_GET_RX_EBADALIGN_CNT
Definition: netman.h:81
int NetManIoctl(unsigned int command, void *args, unsigned int args_len, void *output, unsigned int length)
Definition: netman.c:109
void NetManNetProtStackFreeRxPacket(void *packet)
Definition: netman.c:119
int NetManRegisterNetworkStack(const struct NetManNetProtStack *stack)
Definition: netman.c:70
void NetManNetProtStackReallocRxPacket(void *packet, unsigned int length)
Definition: netman.c:146
void NetManToggleNetIFLinkState(int NetIFID, unsigned char state)
void NetManNetProtStackEnQRxPacket(void *packet)
Definition: netman.c:124
int NetManRegisterNetIF(struct NetManNetIF *NetIF)
int NetManInit(void)
Definition: netman.c:43
void NetManDeinit(void)
Definition: netman.c:58
#define NETMAN_NETIF_NAME_MAX_LEN
Definition: netman.h:12
int NetManQueryMainIF(char *name)
Definition: rpc_client.c:309
void NetManTxPacketDeQ(void)
Definition: netman.c:135
s32 mode
Definition: rpc_client.c:15
u16 RxFrameBadAlignmentCount
Definition: netman.h:34
u16 TxFrameUnderrunCount
Definition: netman.h:40
u16 RxFrameBadLengthCount
Definition: netman.h:32
u16 TxFrameCollisionCount
Definition: netman.h:39
struct NetManEthRuntimeStats stats
Definition: netman.h:46
char name[NETMAN_NETIF_NAME_MAX_LEN]
Definition: netman.h:148
int(* ioctl)(unsigned int command, void *args, unsigned int args_len, void *output, unsigned int length)
Definition: netman.h:155
void(* deinit)(void)
Definition: netman.h:153
unsigned short int flags
Definition: netman.h:149
void(* xmit)(void)
Definition: netman.h:154
int EventFlagID
Definition: netman.h:156
short int id
Definition: netman.h:151
int(* init)(void)
Definition: netman.h:152
void(* FreeRxPacket)(void *packet)
Definition: netman.h:20
void(* LinkStateDown)(void)
Definition: netman.h:18
void(* LinkStateUp)(void)
Definition: netman.h:17
void(* DeQTxPacket)(void)
Definition: netman.h:23
void(* ReallocRxPacket)(void *packet, unsigned int size)
Definition: netman.h:25
void(* EnQRxPacket)(void *packet)
Definition: netman.h:21
int(* NextTxPacket)(void **payload)
Definition: netman.h:22
int(* AfterTxPacket)(void **payload)
Definition: netman.h:24
unsigned int u32
Definition: tamtypes.h:30
unsigned short u16
Definition: tamtypes.h:24
unsigned char u8
Definition: tamtypes.h:23