|
|
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.
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.