Beispiel #1
0
char *InitSys( void )
{
    SetupTimerData();
    CScheduleInterruptTimeCallBack( &TimerData );
    CurrentBaud = -1;
    return( NULL );
}
Beispiel #2
0
char *InitSys( void )
{
    NumTicks = 0;
    InitPorts();
    SetupTimerData();
    CScheduleInterruptTimeCallBack( &TimerData );
    return( 0 );
}
Beispiel #3
0
const char *RemoteLink( const char *parms, bool server )
{
    unsigned    i;


    _DBG_IPX(("RemoteLink\r\n"));
    server = server;
    if( *parms == '\0' )
        parms = "NovLink";
    for( i = 0; i < 48 && *parms != '\0'; ++parms ) {
        if( strchr( "/\\:;,*?+-", *parms ) == NULL ) {
            SAPStruct.ASServerIDpacket.serverName[ i++ ] = toupper( *parms );
        }
    }
    SAPStruct.ASServerIDpacket.serverName[ i ] = '\0';
    if( CIPXOpenSocketRTag( &SPXSocket, SocketTag ) != 0 ||
            CIPXOpenSocketRTag( &IPXSocket, SocketTag ) != 0 ) {
        return( TRP_ERR_can_not_obtain_socket );
    }

    _INITIPXECB( Serv );
    _INITIPXECB( Resp );
    RespECB.fragmentCount = 2;
    /* for SPXSocket - yes, SPXSocket is a long, but it always goes out on
        the wire as a 16-bit quantity */
    RespECB.fragmentDescriptor[1].size = sizeof( WORD );

    Timer.TCallBackProcedure = (void (*)(LONG))Ticker;
    Timer.TCallBackEBXParameter = (LONG)&Timer;
    Timer.TCallBackWaitTime = 0;
    Timer.TResourceTag = TimerTag;
    CScheduleInterruptTimeCallBack( &Timer );


    if( FindPartner() ) {
        RemoteUnLink();
        return( TRP_ERR_server_name_already_in_use );
    }
    if( !InitServer() ) {
        RemoteUnLink();
        return( TRP_ERR_can_not_initialize_server );
    }
    return( NULL );
}
Beispiel #4
0
static char InitServer( void )
{
    ServECB.fragmentCount = 2;
    ServECB.fragmentDescriptor[1].address = &ServDummy;
    ServECB.fragmentDescriptor[1].size = sizeof( ServDummy );

    ServECB.ESRAddress = &ServRespESR;
    CIPXListen( &ServECB );

    SAPStruct.ASServerIDpacket.serverType = DBG_SERVER_TYPE;
    CIPXGetInternetworkAddress((BYTE*)&SAPStruct.ASServerIDpacket.serverAddress);
    AssignArray( SAPStruct.ASServerIDpacket.serverAddress.socket,
                 ServECB.socketNumber );
    SAPStruct.AS_ECB.ESRAddress = NULL;
    SAPStruct.AS_ECB.socketNumber = SAP_SOCKET_VALUE;
    FillArray( SAPStruct.AS_ECB.immediateAddress, '\xFF' );
    SAPStruct.AS_ECB.fragmentCount = 1;
    SAPStruct.AS_ECB.fragmentDescriptor[0].size = sizeof( IPXHeader ) +
            sizeof( SAPIdPacket );
    SAPStruct.AS_ECB.fragmentDescriptor[0].address = &SAPStruct.ASPacket;

    SAPStruct.ASPacket.packetType = 4;
    FillArray( SAPStruct.ASPacket.destination.network, 0 );
    FillArray( SAPStruct.ASPacket.destination.node, '\xFF' );
    {
        LONG        socket;

        socket = SAP_SOCKET;
        AssignArray( SAPStruct.ASPacket.destination.socket, socket );
    }

    SAPStruct.ASServerIDpacket.SAPPacketType = _SWAPINT( 2 );
    SAPStruct.ASServerIDpacket.interveningNetworks = _SWAPINT( 1 );

    CIPXSendPacket( &SAPStruct.AS_ECB );

    SAPTimer.TCallBackProcedure = (void (*)(LONG))Advertiser;
    SAPTimer.TCallBackEBXParameter = (LONG)&SAPTimer;
    SAPTimer.TCallBackWaitTime = 0;
    SAPTimer.TResourceTag = TimerTag;
    CScheduleInterruptTimeCallBack( &SAPTimer );

    return( 1 );
}
Beispiel #5
0
static void Tick( LONG dummy )
{
    dummy = dummy;
    Ticks++;
    CScheduleInterruptTimeCallBack( &TimerData );
}
Beispiel #6
0
static void __cdecl Advertiser( struct TimerDataStructure *time )
{
    CIPXSendPacket( &SAPStruct.AS_ECB );
    time->TCallBackWaitTime = 60 * TICKS_PER_SEC;
    CScheduleInterruptTimeCallBack( time );
}
Beispiel #7
0
static void __cdecl Ticker( struct TimerDataStructure *time )
{
    ++Tick;
    time->TCallBackWaitTime = 1;
    CScheduleInterruptTimeCallBack( time );
}