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