1#ifdef BUILDING_SMAP_NETMAN
6#ifdef BUILDING_SMAP_PS2IP
11#ifdef BUILDING_SMAP_PS2IP
16#ifdef BUILDING_SMAP_PS2IP
19#ifdef BUILDING_SMAP_NETMAN
25#ifdef BUILDING_SMAP_NETMAN
31IRX_ID(
"SMAP_driver", 0x2, 0x1A);
33#ifdef BUILDING_SMAP_PS2IP
40typedef struct SMapIF SMapIF;
43static struct pbuf *TxHead, *TxTail;
44static void EnQTxPacket(
struct pbuf *tx);
61SMapLowLevelOutput(
NetIF *pNetIF,
PBuf *pOutput)
69 OldGP = SetModuleGP();
77 if ((
pbuf = pbuf_coalesce(pOutput,
PBUF_RAW)) != pOutput) {
100#ifdef PRE_LWIP_130_COMPAT
110 OldGP = SetModuleGP();
113 pBuf = etharp_output(pNetIF, pIPAddr, pOutput);
115 result = pBuf != NULL ? SMapLowLevelOutput(pNetIF, pBuf) : ERR_OK;
135 OldGP = SetModuleGP();
141 pNetIF->
name[0] = IFNAME0;
142 pNetIF->
name[1] = IFNAME1;
143#ifdef PRE_LWIP_130_COMPAT
144 pNetIF->
output = &SMapOutput;
146 pNetIF->
output = ðarp_output;
150#ifdef PRE_LWIP_130_COMPAT
158 SMAPGetMACAddress(pNetIF->
hwaddr);
159 DEBUG_PRINTF(
"MAC address : %02x:%02x:%02x:%02x:%02x:%02x\n", pNetIF->
hwaddr[0], pNetIF->
hwaddr[1], pNetIF->
hwaddr[2],
172void SMapLowLevelInput(
PBuf *pBuf)
177 ps2ip_input(pBuf, &NIF);
180static void EnQTxPacket(
struct pbuf *tx)
198int SMapTxPacketNext(
void **
payload)
202 if (TxTail != NULL) {
211void SMapTxPacketDeQ(
void)
219 if (TxTail != NULL) {
222 if (TxTail == TxHead) {
227 TxTail = TxTail->
next;
232 if (toFree != NULL) {
240 if (smap_init(argc, argv) != 0) {
243 DEBUG_PRINTF(
"SMapInit: SMap initialized\n");
245 netif_add(&NIF, IP, NM, GW, &NIF, &
SMapIFInit, tcpip_input);
246 netif_set_default(&NIF);
248 DEBUG_PRINTF(
"SMapInit: NetIF added to ps2ip\n");
256PrintIP(
struct ip4_addr const *pAddr)
258 printf(
"%d.%d.%d.%d", (u8)pAddr->addr, (u8)(pAddr->addr >> 8), (u8)(pAddr->addr >> 16), (u8)(pAddr->addr >> 24));
261void PS2IPLinkStateUp(
void)
266void PS2IPLinkStateDown(
void)
272#ifdef BUILDING_SMAP_NETMAN
277#ifdef BUILDING_SMAP_MODULAR
281int _start(
int argc,
char *argv[])
283#ifdef BUILDING_SMAP_PS2IP
290#ifdef BUILDING_SMAP_NETMAN
294#ifdef BUILDING_SMAP_NETMAN
295 if (RegisterLibraryEntries(&_exp_smap) != 0) {
296 DEBUG_PRINTF(
"module already loaded\n");
297 return MODULE_NO_RESIDENT_END;
301#ifdef BUILDING_SMAP_MODULAR
302 if (RegisterLibraryEntries(&_exp_smapmodu) != 0) {
303 DEBUG_PRINTF(
"module already loaded\n");
304 return MODULE_NO_RESIDENT_END;
327#ifdef BUILDING_SMAP_PS2IP
329 DEBUG_PRINTF(
"argc %d\n", argc);
332 DEBUG_PRINTF(
"%s %s %s\n", argv[1], argv[2], argv[3]);
333 IP.addr = inet_addr(argv[1]);
334 NM.addr = inet_addr(argv[2]);
335 GW.addr = inet_addr(argv[3]);
351#ifdef BUILDING_SMAP_NETMAN
352 if ((result = smap_init(argc, argv)) < 0) {
353 DEBUG_PRINTF(
"smap_init -> %d\n", result);
354 ReleaseLibraryEntries(&_exp_smap);
355 return MODULE_NO_RESIDENT_END;
359#ifdef BUILDING_SMAP_PS2IP
360 if (!SMapInit(&IP, &NM, &GW, numArgs, pArgv)) {
363 return MODULE_NO_RESIDENT_END;
366 printf(
"Initialized OK, IP: ");
377 return MODULE_RESIDENT_END;
static err_t SMapIFInit(struct netif *pNetIF)
#define NETIF_FLAG_LINK_UP
#define NETIF_FLAG_ETHARP
#define NETIF_FLAG_BROADCAST
int CpuResumeIntr(int state)
int CpuSuspendIntr(int *state)
#define tcpip_callback(f, ctx)
#define IP4_ADDR(ipaddr, a, b, c, d)
#define NETIF_MAX_HWADDR_LEN
u8 hwaddr[NETIF_MAX_HWADDR_LEN]
netif_linkoutput_fn linkoutput