void zotmain( void ) { unsigned int i; //Cache CacheEnable(); //IO IOInit(); //SPI FLASH INIT AT91F_SpiInit(); //READ F/W Version read_version(); //EEPROM EEPROMInit(); //LWIP zot_network_init(); //MAC LanPktInit(); star_nic_lan_init(); LanPktStart(); //Print Server module IPXInitialize(); NETBEUInit(); ps_init(); //LED LED_Init(); }
const char *RemoteLink( const char *parms, bool server ) { unsigned i; BYTE major_ver,minor_ver; WORD max_conn,avail_conn; #ifdef __WINDOWS__ { HINSTANCE ipxspx; HINSTANCE netapi; HMODULE netware; GlobalPageLock( (HGLOBAL)FP_SEG( &SAPECB ) ); netware = GetModuleHandle( "NETWARE.DRV" ); ipxspx = LoadLibrary( "NWIPXSPX.DLL" ); netapi = LoadLibrary( "NWCALLS.DLL" ); if( (UINT)ipxspx < 32 ) return( TRP_ERR_IPX_SPX_not_present ); if( (UINT)netapi < 32 ) return( TRP_ERR_Netware_API_not_present ); if( netware == NULL ) return( TRP_ERR_NETWAREDRV_not_present ); #define str( x ) #x #define GetAddr( hdl, x ) IPXFuncs[x] = (NOVWINAPI)GetProcAddress( hdl, str( x ) ) #define GetIPXAddr( x ) GetAddr( ipxspx, x ) GetAddr( netapi, NWReadPropertyValue ); GetIPXAddr( IPXInitialize ); GetIPXAddr( IPXSPXDeinit ); GetIPXAddr( IPXCancelEvent ); GetIPXAddr( IPXCloseSocket ); GetIPXAddr( IPXDisconnectFromTarget ); GetIPXAddr( IPXGetInternetworkAddress ); GetIPXAddr( IPXGetIntervalMarker ); GetIPXAddr( IPXGetLocalTarget ); GetIPXAddr( IPXListenForPacket ); GetIPXAddr( IPXOpenSocket ); GetIPXAddr( IPXRelinquishControl ); GetIPXAddr( IPXScheduleIPXEvent ); GetIPXAddr( IPXSendPacket ); GetIPXAddr( SPXAbortConnection ); GetIPXAddr( SPXEstablishConnection ); GetIPXAddr( SPXInitialize ); GetIPXAddr( SPXListenForConnection ); GetIPXAddr( SPXListenForSequencedPacket ); GetIPXAddr( SPXSendSequencedPacket ); GetIPXAddr( SPXTerminateConnection ); IPXTaskID = 0x00000000L; if( IPXInitialize( (DWORD __far *)&IPXTaskID, 20, 576 ) != 0 ) { return( TRP_ERR_IPX_not_initialized ); } } #endif server = server; if( *parms == '\0' ) parms = DefLinkName; for( i = 0; i < MAX_NAME_LEN && *parms != '\0'; ++parms ) { if( strchr( "/\\:;,*?+-", *parms ) == NULL ) { SAPHead.name[ i++ ] = toupper( *parms ); } } SAPHead.name[ i ] = '\0'; if( !_SPXInitialize( 20, 576, &major_ver, &minor_ver, &max_conn, &avail_conn ) ) { return( TRP_ERR_SPX_not_present ); } if( _IPXOpenSocket( &SPXSocket, 0 ) != 0 || _IPXOpenSocket( &IPXSocket, 0 ) != 0 ) { return( TRP_ERR_can_not_obtain_socket ); } _INITIPXECB( Serv ); _INITIPXECB( Resp ); RespECB.fragmentCount = 2; RespECB.fragmentDescriptor[1].size = sizeof( WORD ); /* for SPXSocket */ #ifdef SERVER if( FindPartner() ) { RemoteUnLink(); return( TRP_ERR_server_name_already_in_use ); } if( !InitServer() ) { RemoteUnLink(); return( TRP_ERR_can_not_initialize_server ); } #else if( FindPartner() == 0 ) { RemoteUnLink(); return( TRP_ERR_no_such_server ); } #endif return( NULL ); }