Annotation of coherent/d/286_KERNEL/USRSRC/ldrv/kcall.s, revision 1.1.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.