Annotation of coherent/d/286_KERNEL/USRSRC/ldrv/defer.s, revision 1.1

1.1     ! root        1: / $Header: /usr/src/sys/ldrv/RCS/defer.s,v 1.1 88/04/04 16:40:21 src Exp $
        !             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) 1988
        !            11: /      An unpublished work by INETCO Systems, Ltd.
        !            12: /      All rights reserved.
        !            13: /
        !            14: / $Log:        /usr/src/sys/ldrv/RCS/defer.s,v $
        !            15: / Revision 1.1 88/04/04  16:40:21      src
        !            16: / Initial revision
        !            17: / 
        !            18: /
        !            19: ////////
        !            20: 
        !            21: ////////
        !            22: /
        !            23: / void
        !            24: / defer( f, a )                - defer local function from loadable driver.
        !            25: / void (*f)();
        !            26: / int a;
        !            27: /
        !            28: /      Input:  f = pointer to function to be deferred.
        !            29: /              a = argument to be passed to function.
        !            30: /
        !            31: /      Action: Schedule local function 'f' to be invoked with argument 'a'
        !            32: /              at next transition from kernel to user mode.
        !            33: /
        !            34: /      Return: None.
        !            35: /
        !            36: ////////
        !            37: 
        !            38:        .globl  defer_
        !            39: 
        !            40: defer_:        push    bp                      / defer( f, a )
        !            41:        mov     bp, sp                  / void (*f)();
        !            42:        push    6(bp)                   / int a;
        !            43:        push    cs                      / {
        !            44:        push    4(bp)                   /       kcall( Kldefer, f, cs, a );
        !            45:        mov     ax, $Kldefer            /
        !            46:        push    ax                      /
        !            47:        call    kcall_                  /
        !            48:        mov     sp, bp                  /
        !            49:        pop     bp                      / }
        !            50:        ret

unix.superglobalmegacorp.com

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