PS2SDK
PS2 Homebrew Libraries
Loading...
Searching...
No Matches
ipstack.c
1
2#include "main.h"
3#include "ipstack.h"
4
5int SMAPCommonTxPacketNext(struct SmapDriverData *SmapDrivPrivData, void **data)
6{
7#ifdef BUILDING_SMAP_MODULAR
8 {
9 const SmapModularHookTable_t *HookTableAt0;
10
11 HookTableAt0 = SmapDrivPrivData->HookTable[0];
12 if (HookTableAt0 != NULL && HookTableAt0->TxPacketNext != NULL) {
13 int res;
14
15 res = HookTableAt0->TxPacketNext(data);
16 if (res > 0) {
17 return res;
18 }
19 }
20 }
21#endif
22#if defined(BUILDING_SMAP_NETMAN)
23 return NetManTxPacketNext(data);
24#elif defined(BUILDING_SMAP_PS2IP)
25 return SMapTxPacketNext(data);
26#else
27 return 0;
28#endif
29}
30
31void SMAPCommonTxPacketDeQ(struct SmapDriverData *SmapDrivPrivData, void **data)
32{
33#ifdef BUILDING_SMAP_MODULAR
34 {
35 const SmapModularHookTable_t *HookTableAt0;
36
37 HookTableAt0 = SmapDrivPrivData->HookTable[0];
38 if (HookTableAt0 != NULL && HookTableAt0->TxPacketDeQ != NULL) {
39 if (HookTableAt0->TxPacketDeQ(data)) {
40 return;
41 }
42 }
43 }
44#else
45 (void)data;
46#endif
47#if defined(BUILDING_SMAP_NETMAN)
48 NetManTxPacketDeQ();
49#elif defined(BUILDING_SMAP_PS2IP)
50 SMapTxPacketDeQ();
51#endif
52}
53
54void SMapCommonLinkStateDown(struct SmapDriverData *SmapDrivPrivData)
55{
56#ifdef BUILDING_SMAP_MODULAR
57 {
58 const SmapModularHookTable_t *HookTableAt0;
59
60 HookTableAt0 = SmapDrivPrivData->HookTable[0];
61 if (HookTableAt0 != NULL && HookTableAt0->LinkStateDown != NULL) {
62 if (HookTableAt0->LinkStateDown()) {
63 return;
64 }
65 }
66 }
67#endif
68#if defined(BUILDING_SMAP_NETMAN)
69 NetManToggleNetIFLinkState(SmapDrivPrivData->NetIFID, NETMAN_NETIF_ETH_LINK_STATE_DOWN);
70#elif defined(BUILDING_SMAP_PS2IP)
71 (void)SmapDrivPrivData;
72
73 PS2IPLinkStateDown();
74#else
75 (void)SmapDrivPrivData;
76#endif
77}
78
79void SMapCommonLinkStateUp(struct SmapDriverData *SmapDrivPrivData)
80{
81#ifdef BUILDING_SMAP_MODULAR
82 {
83 const SmapModularHookTable_t *HookTableAt0;
84
85 HookTableAt0 = SmapDrivPrivData->HookTable[0];
86 if (HookTableAt0 != NULL && HookTableAt0->LinkStateUp != NULL) {
87 if (HookTableAt0->LinkStateUp()) {
88 return;
89 }
90 }
91 }
92#endif
93#if defined(BUILDING_SMAP_NETMAN)
94 NetManToggleNetIFLinkState(SmapDrivPrivData->NetIFID, NETMAN_NETIF_ETH_LINK_STATE_UP);
95#elif defined(BUILDING_SMAP_PS2IP)
96 (void)SmapDrivPrivData;
97
98 PS2IPLinkStateUp();
99#else
100 (void)SmapDrivPrivData;
101#endif
102}
103
104void *SMapCommonStackAllocRxPacket(struct SmapDriverData *SmapDrivPrivData, u16 LengthRounded, void **payload)
105{
106 void *pbuf;
107#ifdef BUILDING_SMAP_MODULAR
108 {
109 const SmapModularHookTable_t *HookTableAt0;
110
111 HookTableAt0 = SmapDrivPrivData->HookTable[0];
112 if (HookTableAt0 != NULL && HookTableAt0->StackAllocRxPacket != NULL) {
113 void *res;
114
115 res = HookTableAt0->StackAllocRxPacket(LengthRounded, payload);
116 if (res != NULL) {
117 return res;
118 }
119 }
120 }
121#endif
122#if defined(BUILDING_SMAP_NETMAN)
123 pbuf = NetManNetProtStackAllocRxPacket(LengthRounded, payload);
124#elif defined(BUILDING_SMAP_PS2IP)
125 struct pbuf *pbuf_struct;
126
127 pbuf_struct = pbuf_alloc(PBUF_RAW, LengthRounded, PBUF_POOL);
128 pbuf = (void *)pbuf_struct;
129
130 if (pbuf_struct != NULL && payload != NULL) {
131 *payload = pbuf_struct->payload;
132 }
133#else
134 (void)LengthRounded;
135 if (payload != NULL) {
136 *payload = NULL;
137 }
138 pbuf = NULL;
139#endif
140 return pbuf;
141}
142
143void SMapStackEnQRxPacket(struct SmapDriverData *SmapDrivPrivData, void *pbuf)
144{
145#ifdef BUILDING_SMAP_MODULAR
146 {
147 const SmapModularHookTable_t *HookTableAt0;
148
149 HookTableAt0 = SmapDrivPrivData->HookTable[0];
150 if (HookTableAt0 != NULL && HookTableAt0->EnQRxPacket != NULL) {
151 if (HookTableAt0->EnQRxPacket(pbuf)) {
152 return;
153 }
154 }
155 }
156#endif
157#if defined(BUILDING_SMAP_NETMAN)
158 NetManNetProtStackEnQRxPacket(pbuf);
159#elif defined(BUILDING_SMAP_PS2IP)
160 SMapLowLevelInput(pbuf);
161#else
162 (void)pbuf;
163#endif
164}
void * payload
Definition tcpip.h:205
@ PBUF_POOL
Definition tcpip.h:195
@ PBUF_RAW
Definition tcpip.h:166
Definition tcpip.h:200