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

1.1     ! root        1: / $Header: /usr/src/sys/ldrv/RCS/kcall.s,v 1.1 88/03/24 16:30:41 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/kcall.s,v $
        !            15: / Revision 1.1 88/03/24  16:30:41      src
        !            16: / Initial revision
        !            17: / 
        !            18: /
        !            19: ////////
        !            20: 
        !            21: ////////
        !            22: /
        !            23: / kcall( func, arg, ... )
        !            24: /
        !            25: /      Input:  func = kernel function to be invoked.
        !            26: /              arg  = optional argument(s) to be passed to kernel function.
        !            27: /
        !            28: /      Action: Invoke kernel function.
        !            29: /
        !            30: ////////
        !            31:        .globl  kcall_
        !            32: 
        !            33: kcall_:
        !            34:        pop     bx              / Convert stack from (retIP dstIP arg ...)
        !            35:        pop     ax              /                 to (      retIP arg ...)
        !            36:        push    bx              / Leaving dstIP in AX register.
        !            37:                                /
        !            38:        .byte 0x9A              / Request kernel to perform far call.
        !            39:        .word xcalled           /
        !            40:        .word 0x0060            /
        !            41:                                /
        !            42:        pop     bx              / Convert stack from (      retIP arg ...)
        !            43:        push    bx              /                 to (retIP retIP arg ...)
        !            44:        push    bx              / This allows caller to cleanup normally.
        !            45:                                / NOTE: DO NOT MODIFY DX:AX RETURN VALUE.
        !            46:                                /
        !            47:        ret                     / Return to caller.

unix.superglobalmegacorp.com

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