!C99Shell v. 1.0 pre-release build #13!

Software: Apache/2.0.54 (Unix) mod_perl/1.99_09 Perl/v5.8.0 mod_ssl/2.0.54 OpenSSL/0.9.7l DAV/2 FrontPage/5.0.2.2635 PHP/4.4.0 mod_gzip/2.0.26.1a 

uname -a: Linux snow.he.net 4.4.276-v2-mono-1 #1 SMP Wed Jul 21 11:21:17 PDT 2021 i686 

uid=99(nobody) gid=98(nobody) groups=98(nobody) 

Safe-mode: OFF (not secure)

/usr/src/linux-2.4.18-xfs-1.1/drivers/net/skfp/   drwxr-xr-x
Free 318.37 GB of 458.09 GB (69.5%)
Home    Back    Forward    UPDIR    Refresh    Search    Buffer    Encoder    Tools    Proc.    FTP brute    Sec.    SQL    PHP-code    Update    Feedback    Self remove    Logout    


Viewing file:     queue.c (4.06 KB)      -rw-r--r--
Select action/file-type:
(+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
/******************************************************************************
 *
 *    (C)Copyright 1998,1999 SysKonnect,
 *    a business unit of Schneider & Koch & Co. Datensysteme GmbH.
 *
 *    See the file "skfddi.c" for further information.
 *
 *    This program is free software; you can redistribute it and/or modify
 *    it under the terms of the GNU General Public License as published by
 *    the Free Software Foundation; either version 2 of the License, or
 *    (at your option) any later version.
 *
 *    The information in this file is provided "AS IS" without warranty.
 *
 ******************************************************************************/

/*
    SMT Event Queue Management
*/

#include "h/types.h"
#include "h/fddi.h"
#include "h/smc.h"

#ifndef    lint
static const char ID_sccs[] = "@(#)queue.c    2.9 97/08/04 (C) SK " ;
#endif

#define PRINTF(a,b,c)

/*
 * init event queue management
 */
void ev_init(smc)
struct s_smc *smc ;
{
    smc->q.ev_put = smc->q.ev_get = smc->q.ev_queue ;
}

/*
 * add event to queue
 */
void queue_event(smc,class,event)
struct s_smc *smc ;
int class ;
int event ;
{
    PRINTF("queue class %d event %d\n",class,event) ;
    smc->q.ev_put->class = class ;
    smc->q.ev_put->event = event ;
    if (++smc->q.ev_put == &smc->q.ev_queue[MAX_EVENT])
        smc->q.ev_put = smc->q.ev_queue ;

    if (smc->q.ev_put == smc->q.ev_get) {
        SMT_ERR_LOG(smc,SMT_E0137, SMT_E0137_MSG) ;
    }
}

/*
 * timer_event is called from HW timer package.
 */
void timer_event(smc,token)
struct s_smc *smc ;
u_long token ;
{
    PRINTF("timer event class %d token %d\n",
        EV_T_CLASS(token),
        EV_T_EVENT(token)) ;
    queue_event(smc,EV_T_CLASS(token),EV_T_EVENT(token));
}

/*
 * event dispatcher
 *    while event queue is not empty
 *        get event from queue
 *        send command to state machine
 *    end
 */
void ev_dispatcher(smc)
struct s_smc *smc ;
{
    struct event_queue *ev ;    /* pointer into queue */
    int        class ;

    ev = smc->q.ev_get ;
    PRINTF("dispatch get %x put %x\n",ev,smc->q.ev_put) ;
    while (ev != smc->q.ev_put) {
        PRINTF("dispatch class %d event %d\n",ev->class,ev->event) ;
        switch(class = ev->class) {
        case EVENT_ECM :        /* Entity Corordination  Man. */
            ecm(smc,(int)ev->event) ;
            break ;
        case EVENT_CFM :        /* Configuration Man. */
            cfm(smc,(int)ev->event) ;
            break ;
        case EVENT_RMT :        /* Ring Man. */
            rmt(smc,(int)ev->event) ;
            break ;
        case EVENT_SMT :
            smt_event(smc,(int)ev->event) ;
            break ;
#ifdef    CONCENTRATOR
        case 99 :
            timer_test_event(smc,(int)ev->event) ;
            break ;
#endif
        case EVENT_PCMA :        /* PHY A */
        case EVENT_PCMB :        /* PHY B */
        default :
            if (class >= EVENT_PCMA &&
                class < EVENT_PCMA + NUMPHYS) {
                pcm(smc,class - EVENT_PCMA,(int)ev->event) ;
                break ;
            }
            SMT_PANIC(smc,SMT_E0121, SMT_E0121_MSG) ;
            return ;
        }

        if (++ev == &smc->q.ev_queue[MAX_EVENT])
            ev = smc->q.ev_queue ;

        /* Renew get: it is used in queue_events to detect overruns */
        smc->q.ev_get = ev;
    }
}

/*
 * smt_online connects to or disconnects from the ring
 * MUST be called to initiate connection establishment
 *
 *    on    0    disconnect
 *    on    1    connect
 */
u_short smt_online(smc,on)
struct s_smc *smc ;
int on ;
{
    queue_event(smc,EVENT_ECM,on ? EC_CONNECT : EC_DISCONNECT) ;
    ev_dispatcher(smc) ;
    return(smc->mib.fddiSMTCF_State) ;
}

/*
 * set SMT flag to value
 *    flag        flag name
 *    value        flag value
 * dump current flag setting
 */
#ifdef    CONCENTRATOR
void do_smt_flag(smc,flag,value)
struct s_smc *smc ;
char *flag ;
int value ;
{
#ifdef    DEBUG
    struct smt_debug    *deb;

    SK_UNUSED(smc) ;

#ifdef    DEBUG_BRD
    deb = &smc->debug;
#else
    deb = &debug;
#endif
    if (!strcmp(flag,"smt"))
        deb->d_smt = value ;
    else if (!strcmp(flag,"smtf"))
        deb->d_smtf = value ;
    else if (!strcmp(flag,"pcm"))
        deb->d_pcm = value ;
    else if (!strcmp(flag,"rmt"))
        deb->d_rmt = value ;
    else if (!strcmp(flag,"cfm"))
        deb->d_cfm = value ;
    else if (!strcmp(flag,"ecm"))
        deb->d_ecm = value ;
    printf("smt    %d\n",deb->d_smt) ;
    printf("smtf    %d\n",deb->d_smtf) ;
    printf("pcm    %d\n",deb->d_pcm) ;
    printf("rmt    %d\n",deb->d_rmt) ;
    printf("cfm    %d\n",deb->d_cfm) ;
    printf("ecm    %d\n",deb->d_ecm) ;
#endif    /* DEBUG */
}
#endif

:: Command execute ::

Enter:
 
Select:
 

:: Search ::
  - regexp 

:: Upload ::
 
[ Read-Only ]

:: Make Dir ::
 
[ Read-Only ]
:: Make File ::
 
[ Read-Only ]

:: Go Dir ::
 
:: Go File ::
 

--[ c99shell v. 1.0 pre-release build #13 powered by Captain Crunch Security Team | http://ccteam.ru | Generation time: 0.0477 ]--