|
|
1.1 root 1: /*
2: * Copyright (c) 1999 Apple Computer, Inc. All rights reserved.
3: *
4: * @APPLE_LICENSE_HEADER_START@
5: *
6: * Portions Copyright (c) 1999 Apple Computer, Inc. All Rights
7: * Reserved. This file contains Original Code and/or Modifications of
8: * Original Code as defined in and that are subject to the Apple Public
9: * Source License Version 1.1 (the "License"). You may not use this file
10: * except in compliance with the License. Please obtain a copy of the
11: * License at http://www.apple.com/publicsource and read it before using
12: * this file.
13: *
14: * The Original Code and all software distributed under the License are
15: * distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, EITHER
16: * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
17: * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
18: * FITNESS FOR A PARTICULAR PURPOSE OR NON-INFRINGEMENT. Please see the
19: * License for the specific language governing rights and limitations
20: * under the License.
21: *
22: * @APPLE_LICENSE_HEADER_END@
23: */
24:
25: /*
26: * Mach Operating System
27: * Copyright (c) 1989 Carnegie-Mellon University
28: * All rights reserved. The CMU software License Agreement specifies
29: * the terms and conditions for use and redistribution.
30: */
31:
32:
33: #define S_ARG0 4(%esp)
34: #define S_ARG1 8(%esp)
35: #define S_ARG2 12(%esp)
36: #define S_ARG3 16(%esp)
37:
38: #define FRAME pushl %ebp; movl %esp, %ebp
39: #define EMARF leave
40:
41: #define B_ARG0 8(%ebp)
42: #define B_ARG1 12(%ebp)
43: #define B_ARG2 16(%ebp)
44: #define B_ARG3 20(%ebp)
45:
46: #define EXT(x) _##x
47: #define LBb(x,n) n##b
48: #define LBf(x,n) n##f
49:
50: #define ALIGN 2
51: #define LCL(x) x
52:
53: #define LB(x,n) n
54:
55: #define SVC .byte 0x9a; .long 0; .word 0x7
56: #define String .ascii
57: #define Value .word
58:
59: #define Times(a,b) (a*b)
60: #define Divide(a,b) (a/b)
61:
62: #define INB inb %dx, %al
63: #define OUTB outb %al, %dx
64: #define INL inl %dx, %eax
65: #define OUTL outl %eax, %dx
66:
67: #define data16 .byte 0x66
68: #define addr16 .byte 0x67
69:
70:
71:
72: #ifdef GPROF
73: #define MCOUNT .data; LB(x, 9): .long 0; .text; lea LBb(x, 9),%edx; call mcount
74: #define ENTRY(x) .globl EXT(x); .align ALIGN; EXT(x): ; \
75: pushl %ebp; movl %esp, %ebp; MCOUNT; popl %ebp;
76: #define ASENTRY(x) .globl x; .align ALIGN; x: ; \
77: pushl %ebp; movl %esp, %ebp; MCOUNT; popl %ebp;
78: #else /* GPROF */
79: #define MCOUNT
80: #define ENTRY(x) .globl EXT(x); .align ALIGN; EXT(x):
81: #define ASENTRY(x) .globl x; .align ALIGN; x:
82: #endif /* GPROF */
83:
84: #define Entry(x) .globl EXT(x); .align ALIGN; EXT(x):
85: #define DATA(x) .globl EXT(x); .align ALIGN; EXT(x):
86:
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.