Annotation of coherent/d/PS2_KERNEL/ldrv/timeout.c, revision 1.1

1.1     ! root        1: /* $Header: /kernel/kersrc/ldrv/RCS/timeout.c,v 1.1 92/07/17 15:28:10 bin Exp Locker: bin $ */
        !             2: /*
        !             3:  *     The  information  contained herein  is a trade secret  of INETCO
        !             4:  *     Systems, and is confidential information.   It is provided under
        !             5:  *     a license agreement,  and may be copied or disclosed  only under
        !             6:  *     the terms of that agreement.   Any reproduction or disclosure of
        !             7:  *     this  material  without  the express  written  authorization  of
        !             8:  *     INETCO Systems or persuant to the license agreement is unlawful.
        !             9:  *
        !            10:  *     Copyright (c) 1987
        !            11:  *     An unpublished work by INETCO Systems, Ltd.
        !            12:  *     All rights reserved.
        !            13:  */
        !            14: 
        !            15: /*
        !            16:  * Loadable Driver - Timed functions.
        !            17:  *
        !            18:  * $Log:       timeout.c,v $
        !            19:  * Revision 1.1  92/07/17  15:28:10  bin
        !            20:  * Initial revision
        !            21:  * 
        !            22:  * Revision 1.1        88/03/24  16:31:21      src
        !            23:  * Initial revision
        !            24:  * 
        !            25:  * 87/12/08    Allan Cornish   /usr/src/sys/ldrv/timeout.c
        !            26:  * Timed loadable driver functions now supported.
        !            27:  */
        !            28: #include <sys/coherent.h>
        !            29: 
        !            30: /*
        !            31:  * External functions.
        !            32:  */
        !            33: extern void Ktimeout();
        !            34: extern void Kldtimcall();
        !            35: extern saddr_t getcs();
        !            36: 
        !            37: /*
        !            38:  * Given a pointer to a timeout structure, `tp', call the function `f'
        !            39:  * with integer argument `a' in `n' ticks of the clock. The list is
        !            40:  * searched to see if the specified timeout structure is already in a
        !            41:  * list, and it is removed if already there.
        !            42:  * This module is specific to loadable drivers.
        !            43:  */
        !            44: timeout( tp, n, f, a )
        !            45: register TIM * tp;
        !            46: int n;
        !            47: void (*f)();
        !            48: int a;
        !            49: {
        !            50:        register int s;
        !            51: 
        !            52:        /*
        !            53:         * Cancel existing timer.
        !            54:         */
        !            55:        if ( (f == NULL) || (n <= 0) ) {
        !            56:                kcall( Ktimeout, tp, 0, NULL, 0 );
        !            57:                return;
        !            58:        }
        !            59: 
        !            60:        /*
        !            61:         * Define loadable driver interface.
        !            62:         * Kldtimcall will be invoked when timeout occurs.
        !            63:         * It will in turn invoke FP_SEL(tp->t_ldrv):4,
        !            64:         *      passing FP_OFF(tp->t_ldrv) in AX.
        !            65:         */
        !            66:        s = sphi();
        !            67:        FP_SEL(tp->t_ldrv) = getcs();
        !            68:        FP_OFF(tp->t_ldrv) = f;
        !            69:        kcall( Ktimeout, tp, n, Kldtimcall, a );
        !            70:        spl(s);
        !            71: }

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.