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
39typedef struct netif NetIF;
40typedef struct SMapIF SMapIF;
41typedef struct pbuf PBuf;
43static struct pbuf *TxHead, *TxTail;
44static void EnQTxPacket(
struct pbuf *tx);
61SMapLowLevelOutput(NetIF *pNetIF, PBuf *pOutput)
69 OldGP = SetModuleGP();
100SMapIFInit(NetIF *pNetIF)
105 OldGP = SetModuleGP();
111 pNetIF->
name[0] = IFNAME0;
112 pNetIF->
name[1] = IFNAME1;
113 pNetIF->
output = ðarp_output;
120 SMAPGetMACAddress(pNetIF->
hwaddr);
121 DEBUG_PRINTF(
"MAC address : %02x:%02x:%02x:%02x:%02x:%02x\n", pNetIF->
hwaddr[0], pNetIF->
hwaddr[1], pNetIF->
hwaddr[2],
134void SMapLowLevelInput(PBuf *pBuf)
139 ps2ip_input(pBuf, &NIF);
142static void EnQTxPacket(
struct pbuf *tx)
160int SMapTxPacketNext(
void **
payload)
164 if (TxTail != NULL) {
173void SMapTxPacketDeQ(
void)
181 if (TxTail != NULL) {
184 if (TxTail == TxHead) {
189 TxTail = TxTail->
next;
194 if (toFree != NULL) {
200static inline int SMapInit(IPAddr *IP, IPAddr *NM, IPAddr *GW,
int argc,
char *argv[])
202 if (smap_init(argc, argv) != 0) {
205 DEBUG_PRINTF(
"SMapInit: SMap initialized\n");
210 DEBUG_PRINTF(
"SMapInit: NetIF added to ps2ip\n");
218PrintIP(
struct ip4_addr const *pAddr)
220 printf(
"%d.%d.%d.%d", (u8)pAddr->addr, (u8)(pAddr->addr >> 8), (u8)(pAddr->addr >> 16), (u8)(pAddr->addr >> 24));
223void PS2IPLinkStateUp(
void)
228void PS2IPLinkStateDown(
void)
234#if defined(BUILDING_SMAP_NETMAN) || defined(BUILDING_SMAP_NETDEV)
244#ifdef BUILDING_SMAP_MODULAR
248int _start(
int argc,
char *argv[])
250#ifdef BUILDING_SMAP_PS2IP
257#if defined(BUILDING_SMAP_NETMAN) || defined(BUILDING_SMAP_NETDEV)
261#ifdef BUILDING_SMAP_NETDEV
263 result = smap_deinit();
264 if (result == MODULE_NO_RESIDENT_END) {
265#ifdef BUILDING_SMAP_MODULAR
266 ReleaseLibraryEntries(&_exp_smapmodu);
268 ReleaseLibraryEntries(&_exp_smap);
274#if defined(BUILDING_SMAP_NETMAN) || defined(BUILDING_SMAP_NETDEV)
275 if (RegisterLibraryEntries(&_exp_smap) != 0) {
276 DEBUG_PRINTF(
"module already loaded\n");
277 return MODULE_NO_RESIDENT_END;
281#ifdef BUILDING_SMAP_MODULAR
282 if (RegisterLibraryEntries(&_exp_smapmodu) != 0) {
283 DEBUG_PRINTF(
"module already loaded\n");
284 return MODULE_NO_RESIDENT_END;
309#ifdef BUILDING_SMAP_PS2IP
311 DEBUG_PRINTF(
"argc %d\n", argc);
314 DEBUG_PRINTF(
"%s %s %s\n", argv[1], argv[2], argv[3]);
315 IP.addr = inet_addr(argv[1]);
316 NM.addr = inet_addr(argv[2]);
317 GW.addr = inet_addr(argv[3]);
333#if defined(BUILDING_SMAP_NETMAN) || defined(BUILDING_SMAP_NETDEV)
334 if ((result = smap_init(argc, argv)) < 0) {
335 DEBUG_PRINTF(
"smap_init -> %d\n", result);
336 ReleaseLibraryEntries(&_exp_smap);
337 return MODULE_NO_RESIDENT_END;
341#ifdef BUILDING_SMAP_PS2IP
342 if (!SMapInit(&IP, &NM, &GW, numArgs, pArgv)) {
345 return MODULE_NO_RESIDENT_END;
348 printf(
"Initialized OK, IP: ");
359 return MODULE_RESIDENT_END;
#define IP4_ADDR(ipaddr, a, b, c, d)
#define NETIF_MAX_HWADDR_LEN
err_t tcpip_callback(tcpip_callback_fn function, void *ctx)
err_t tcpip_input(struct pbuf *p, struct netif *inp)
#define NETIF_FLAG_ETHARP
#define NETIF_FLAG_BROADCAST
void netif_set_link_down(struct netif *netif)
struct netif * netif_add(struct netif *netif, void *state, netif_init_fn init, netif_input_fn input)
void netif_set_default(struct netif *netif)
void netif_set_link_up(struct netif *netif)
void netif_set_up(struct netif *netif)
struct pbuf * pbuf_coalesce(struct pbuf *p, pbuf_layer layer)
void pbuf_ref(struct pbuf *p)
u8 pbuf_free(struct pbuf *p)
int CpuResumeIntr(int state)
int CpuSuspendIntr(int *state)
u8 hwaddr[NETIF_MAX_HWADDR_LEN]
netif_linkoutput_fn linkoutput