Skip to content

Commit 5c5283e

Browse files
committed
Separate netman by functions
1 parent 966ee66 commit 5c5283e

File tree

5 files changed

+521
-302
lines changed

5 files changed

+521
-302
lines changed

ee/network/netman/Makefile

Lines changed: 36 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,44 @@
66
# Licenced under Academic Free License version 2.0
77
# Review ps2sdk README & LICENSE files for further details.
88

9-
EE_OBJS = netman.o rpc_server.o rpc_client.o erl-support.o
9+
CORE_OBJS = erl-support.o
10+
11+
NETMAN_OBJS = \
12+
__netman_MainNetProtStack.o __netman_IsInitialized.o __netman_IsNetStackInitialized.o __netman_NIFLinkState.o \
13+
NetManToggleGlobalNetIFLinkState.o NetManGetGlobalNetIFLinkState.o NetManInit.o NetManDeinit.o \
14+
NetManRegisterNetworkStack.o NetManUnregisterNetworkStack.o NetManNetIFXmit.o NetManIoctl.o \
15+
NetManNetProtStackAllocRxPacket.o NetManNetProtStackFreeRxPacket.o NetManNetProtStackEnQRxPacket.o \
16+
NetManTxPacketNext.o NetManTxPacketDeQ.o NetManTxPacketAfter.o NetManNetProtStackReallocRxPacket.o
17+
18+
RPC_SERVER_OBJS = \
19+
__NETMAN_RpcSvr_threadID.o __NETMAN_Rx_threadID.o __NETMAN_SifHandlerID.o __rpc_server_IsInitialized.o \
20+
__rpc_server_IsProcessingRx.o __rpc_server_FrameBufferStatus.o __rpc_server_RxIOPFrameBufferStatus.o \
21+
__rpc_server_cb_queue.o __rpc_server_cb_srv.o \
22+
__rpc_server_ClearBufferLen.o _NetManRPCAllocRxBuffers.o _NetManInitRPCServer.o _NetManDeinitRPCServer.o
23+
24+
RPC_CLIENT_OBJS = \
25+
__rpc_client_TransmitBuffer.o __rpc_client_ReceiveBuffer.o __NETMAN_rpc_cd.o __NetManIOSemaID.o \
26+
__NETMAN_Tx_threadID.o __netman_IOPFrameBufferWrPtr.o __netman_IOPFrameBuffer.o \
27+
__netman_IOPFrameBufferStatus.o __netman_FrameBufferStatus.o __netman_rpc_client_IsInitialized.o \
28+
__netman_rpc_client_IIsProcessingTx.o __rpc_client_deinitCleanup.o NetManInitRPCClient.o \
29+
NetManRPCRegisterNetworkStack.o NetManRPCUnregisterNetworkStack.o NetManDeinitRPCClient.o NetManRpcIoctl.o \
30+
NetManRpcNetIFXmit.o NetManSetMainIF.o NetManQueryMainIF.o NetManSetLinkMode.o
31+
32+
EE_OBJS = $(CORE_OBJS) $(NETMAN_OBJS) $(RPC_SERVER_OBJS) $(RPC_CLIENT_OBJS)
1033

1134
include $(PS2SDKSRC)/Defs.make
1235
include $(PS2SDKSRC)/ee/Rules.lib.make
1336
include $(PS2SDKSRC)/ee/Rules.make
1437
include $(PS2SDKSRC)/ee/Rules.release
38+
39+
$(NETMAN_OBJS:%=$(EE_OBJS_DIR)%): $(EE_SRC_DIR)netman.c
40+
$(DIR_GUARD)
41+
$(EE_C_COMPILE) -DF_$(*:$(EE_OBJS_DIR)%=%) $< -c -o $@
42+
43+
$(RPC_SERVER_OBJS:%=$(EE_OBJS_DIR)%): $(EE_SRC_DIR)rpc_server.c
44+
$(DIR_GUARD)
45+
$(EE_C_COMPILE) -DF_$(*:$(EE_OBJS_DIR)%=%) $< -c -o $@
46+
47+
$(RPC_CLIENT_OBJS:%=$(EE_OBJS_DIR)%): $(EE_SRC_DIR)rpc_client.c
48+
$(DIR_GUARD)
49+
$(EE_C_COMPILE) -DF_$(*:$(EE_OBJS_DIR)%=%) $< -c -o $@
Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
1-
int NetManInitRPCServer(void);
2-
void NetManDeinitRPCServer(void);
3-
int NetManRPCAllocRxBuffers(void);
1+
int _NetManInitRPCServer(void);
2+
void _NetManDeinitRPCServer(void);
3+
int _NetManRPCAllocRxBuffers(void);

ee/network/netman/src/netman.c

Lines changed: 92 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -8,142 +8,192 @@
88
#include "rpc_client.h"
99
#include "rpc_server.h"
1010

11-
static struct NetManNetProtStack MainNetProtStack;
12-
static unsigned char IsInitialized=0, IsNetStackInitialized=0;
13-
static char NIFLinkState = 0;
11+
#ifdef F___netman_MainNetProtStack
12+
struct NetManNetProtStack __netman_MainNetProtStack;
13+
#else
14+
extern struct NetManNetProtStack __netman_MainNetProtStack;
15+
#endif
16+
17+
#ifdef F___netman_IsInitialized
18+
unsigned char __netman_IsInitialized=0;
19+
#else
20+
extern unsigned char __netman_IsInitialized;
21+
#endif
22+
23+
#ifdef F___netman_IsNetStackInitialized
24+
unsigned char __netman_IsNetStackInitialized=0;
25+
#else
26+
extern unsigned char __netman_IsNetStackInitialized;
27+
#endif
28+
29+
#ifdef F___netman_NIFLinkState
30+
char __netman_NIFLinkState = 0;
31+
#else
32+
extern char __netman_NIFLinkState;
33+
#endif
34+
35+
static inline void NetManUpdateStack__netman_NIFLinkState(void)
36+
{
37+
if(__netman_IsNetStackInitialized)
38+
{
39+
if(__netman_NIFLinkState)
40+
__netman_MainNetProtStack.LinkStateUp();
41+
else
42+
__netman_MainNetProtStack.LinkStateDown();
43+
}
44+
}
1445

46+
#ifdef F_NetManToggleGlobalNetIFLinkState
1547
/* Upon stack registration on the IOP side, this function will be called.
1648
But the network stack won't be updated then because the RPC wouldn't have been completely initialized,
1749
which would prevent the stack from performing some actions like sending Gratuitous Arp packets.
1850
1951
The NIF status updated will be sent again when the RPC is fully initialized, as shown in NetManRegisterNetworkStack(). */
2052
void NetManToggleGlobalNetIFLinkState(unsigned char state)
2153
{
22-
NIFLinkState = state;
54+
__netman_NIFLinkState = state;
2355

24-
NetManUpdateStackNIFLinkState();
56+
NetManUpdateStack__netman_NIFLinkState();
2557
}
58+
#endif
2659

60+
#ifdef F_NetManGetGlobalNetIFLinkState
2761
int NetManGetGlobalNetIFLinkState(void)
2862
{
29-
return NIFLinkState;
30-
}
31-
32-
void NetManUpdateStackNIFLinkState(void)
33-
{
34-
if(IsNetStackInitialized)
35-
{
36-
if(NIFLinkState)
37-
MainNetProtStack.LinkStateUp();
38-
else
39-
MainNetProtStack.LinkStateDown();
40-
}
63+
return __netman_NIFLinkState;
4164
}
65+
#endif
4266

67+
#ifdef F_NetManInit
4368
int NetManInit(void)
4469
{
4570
int result;
4671

47-
if(!IsInitialized)
72+
if(!__netman_IsInitialized)
4873
{
49-
if((result=NetManInitRPCServer())==0)
74+
if((result=_NetManInitRPCServer())==0)
5075
{
51-
if((result=NetManInitRPCClient())==0) IsInitialized = 1;
76+
if((result=NetManInitRPCClient())==0) __netman_IsInitialized = 1;
5277
}
5378
}else result = 0;
5479

5580
return result;
5681
}
82+
#endif
5783

84+
#ifdef F_NetManDeinit
5885
void NetManDeinit(void)
5986
{
60-
if(IsInitialized)
87+
if(__netman_IsInitialized)
6188
{
6289
NetManUnregisterNetworkStack();
6390

6491
NetManDeinitRPCClient();
65-
NetManDeinitRPCServer();
66-
IsInitialized = 0;
92+
_NetManDeinitRPCServer();
93+
__netman_IsInitialized = 0;
6794
}
6895
}
96+
#endif
6997

98+
#ifdef F_NetManRegisterNetworkStack
7099
int NetManRegisterNetworkStack(const struct NetManNetProtStack *stack)
71100
{
72101
int result;
73102

74103
if((result=NetManInit())==0)
75104
{
76-
if(!IsNetStackInitialized)
105+
if(!__netman_IsNetStackInitialized)
77106
{
78107
if((result=NetManRPCRegisterNetworkStack())==0)
79108
{
80-
memcpy(&MainNetProtStack, stack, sizeof(MainNetProtStack));
81-
IsNetStackInitialized=1;
82-
if((result=NetManRPCAllocRxBuffers()) == 0)
83-
NetManUpdateStackNIFLinkState();
109+
memcpy(&__netman_MainNetProtStack, stack, sizeof(__netman_MainNetProtStack));
110+
__netman_IsNetStackInitialized=1;
111+
if((result=_NetManRPCAllocRxBuffers()) == 0)
112+
NetManUpdateStack__netman_NIFLinkState();
84113
}
85114
}
86115
else result=0;
87116
}
88117

89118
return result;
90119
}
120+
#endif
91121

122+
#ifdef F_NetManUnregisterNetworkStack
92123
void NetManUnregisterNetworkStack(void)
93124
{
94-
if(IsNetStackInitialized)
125+
if(__netman_IsNetStackInitialized)
95126
{
96127
NetManRPCUnregisterNetworkStack();
97-
memset(&MainNetProtStack, 0, sizeof(MainNetProtStack));
128+
memset(&__netman_MainNetProtStack, 0, sizeof(__netman_MainNetProtStack));
98129

99-
IsNetStackInitialized=0;
130+
__netman_IsNetStackInitialized=0;
100131
}
101132
}
133+
#endif
102134

135+
#ifdef F_NetManNetIFXmit
103136
void NetManNetIFXmit(void)
104137
{
105-
if(IsInitialized)
138+
if(__netman_IsInitialized)
106139
NetManRpcNetIFXmit();
107140
}
141+
#endif
108142

143+
#ifdef F_NetManIoctl
109144
int NetManIoctl(unsigned int command, void *arg, unsigned int arg_len, void *output, unsigned int length)
110145
{
111-
return IsInitialized?NetManRpcIoctl(command, arg, arg_len, output, length):-1;
146+
return __netman_IsInitialized?NetManRpcIoctl(command, arg, arg_len, output, length):-1;
112147
}
148+
#endif
113149

150+
#ifdef F_NetManNetProtStackAllocRxPacket
114151
void *NetManNetProtStackAllocRxPacket(unsigned int length, void **payload)
115152
{
116-
return IsNetStackInitialized?MainNetProtStack.AllocRxPacket(length, payload):NULL;
153+
return __netman_IsNetStackInitialized? __netman_MainNetProtStack.AllocRxPacket(length, payload) : NULL;
117154
}
155+
#endif
118156

157+
#ifdef F_NetManNetProtStackFreeRxPacket
119158
void NetManNetProtStackFreeRxPacket(void *packet)
120159
{
121-
if(IsNetStackInitialized) MainNetProtStack.FreeRxPacket(packet);
160+
if(__netman_IsNetStackInitialized) __netman_MainNetProtStack.FreeRxPacket(packet);
122161
}
162+
#endif
123163

164+
#ifdef F_NetManNetProtStackEnQRxPacket
124165
void NetManNetProtStackEnQRxPacket(void *packet)
125166
{
126-
if(IsNetStackInitialized)
127-
MainNetProtStack.EnQRxPacket(packet);
167+
if(__netman_IsNetStackInitialized)
168+
__netman_MainNetProtStack.EnQRxPacket(packet);
128169
}
170+
#endif
129171

172+
#ifdef F_NetManTxPacketNext
130173
int NetManTxPacketNext(void **payload)
131174
{
132-
return IsInitialized?MainNetProtStack.NextTxPacket(payload):-1;
175+
return __netman_IsInitialized? __netman_MainNetProtStack.NextTxPacket(payload) : -1;
133176
}
177+
#endif
134178

179+
#ifdef F_NetManTxPacketDeQ
135180
void NetManTxPacketDeQ(void)
136181
{
137-
if(IsInitialized)
138-
MainNetProtStack.DeQTxPacket();
182+
if(__netman_IsInitialized)
183+
__netman_MainNetProtStack.DeQTxPacket();
139184
}
185+
#endif
140186

187+
#ifdef F_NetManTxPacketAfter
141188
int NetManTxPacketAfter(void **payload)
142189
{
143-
return IsInitialized?MainNetProtStack.AfterTxPacket(payload):-1;
190+
return __netman_IsInitialized? __netman_MainNetProtStack.AfterTxPacket(payload) : -1;
144191
}
192+
#endif
145193

194+
#ifdef F_NetManNetProtStackReallocRxPacket
146195
void NetManNetProtStackReallocRxPacket(void *packet, unsigned int length)
147196
{
148-
if(IsNetStackInitialized) MainNetProtStack.ReallocRxPacket(packet, length);
197+
if(__netman_IsNetStackInitialized) __netman_MainNetProtStack.ReallocRxPacket(packet, length);
149198
}
199+
#endif

0 commit comments

Comments
 (0)