]>
Commit | Line | Data |
---|---|---|
b9c8e50e | 1 | /** @file |
2 | Template file used to create Gasket.S | |
3 | ||
4 | This file is built on the command line via gcc GasketTemplate.c -S | |
5 | and it will create GasketTemplate.s and this was used to create | |
6 | Gasket.S. This builds code for Unix ABI on both sides. To convert | |
7 | to EFI ABI will require changing the code by hand | |
8 | ||
9 | Copyright (c) 2006 - 2009, Intel Corporation. All rights reserved.<BR> | |
10 | Portions copyright (c) 2008 - 2010, Apple Inc. All rights reserved.<BR> | |
11 | This program and the accompanying materials | |
12 | are licensed and made available under the terms and conditions of the BSD License | |
13 | which accompanies this distribution. The full text of the license may be found at | |
14 | http://opensource.org/licenses/bsd-license.php | |
15 | ||
16 | THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, | |
17 | WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. | |
18 | ||
19 | **/ | |
20 | ||
21 | ||
22 | #include <stdint.h> | |
23 | #include <sys/stat.h> | |
24 | ||
25 | typedef int8_t INT8; | |
26 | typedef uint8_t UINT8; | |
27 | typedef int16_t INT16; | |
28 | typedef uint16_t UINT16; | |
29 | typedef int32_t INT32; | |
30 | typedef uint32_t UINT32; | |
31 | typedef int64_t INT64; | |
32 | typedef uint64_t UINT64; | |
33 | typedef UINT64 UINTN; | |
34 | ||
35 | ||
36 | typedef UINTN (*GASKET_VOID) (); | |
37 | typedef UINTN (*GASKET_UINTN) (UINTN); | |
2ec364f9 | 38 | typedef UINTN (*GASKET_UINT64) (UINT64); |
b9c8e50e | 39 | typedef UINTN (*GASKET_UINTN_UINTN) (UINTN, UINTN); |
40 | typedef UINTN (*GASKET_UINTN_UINTN_UINTN) (UINTN, UINTN, UINTN); | |
41 | typedef UINTN (*GASKET_UINTN_UINTN_UINTN_UINTN) (UINTN, UINTN, UINTN, UINTN); | |
42 | typedef UINTN (*GASKET_UINTN_10ARGS) (UINTN, UINTN, UINTN, UINTN, UINTN, UINTN, UINTN, UINTN, UINTN, UINTN); | |
43 | typedef UINTN (*GASKET_UINT64_UINTN) (UINT64, UINTN); | |
44 | typedef UINT64 (*GASKET_UINTN_UINT64_UINTN) (UINTN, UINT64, UINTN); | |
45 | typedef UINTN (*GASKET_UINTN_UINT16) (UINTN, UINT16); | |
46 | ||
47 | UINTN GasketVoid (void *api); | |
48 | UINTN GasketUintn (void *api, UINTN a); | |
49 | UINTN GasketUintnUintn (void *api, UINTN a, UINTN b); | |
50 | UINTN GasketUintnUintnUintn (void *api, UINTN a, UINTN b, UINTN c); | |
51 | UINTN GasketUintnUintnUintnUintn (void *api, UINTN a, UINTN b, UINTN c, UINTN d); | |
52 | UINTN GasketUintn10Args (void *api, UINTN a, UINTN b, UINTN c, UINTN d, UINTN e, UINTN f, UINTN g, UINTN h, UINTN i, UINTN j); | |
53 | UINTN GasketUint64Uintn (void *api, UINT64 a, UINTN b); | |
54 | UINT64 GasketUintnUiny64Uintn (void *api, UINTN a, UINT64 b, UINTN c); | |
55 | UINTN GasketUintnUint16 (void *api, UINTN a, UINT16 b); | |
56 | ||
57 | ||
58 | ||
59 | UINTN | |
60 | GasketVoid (void *api) | |
61 | { | |
62 | GASKET_VOID func; | |
63 | ||
64 | func = (GASKET_VOID)api; | |
65 | return func (); | |
66 | } | |
67 | ||
68 | UINTN | |
69 | GasketUintn (void *api, UINTN a) | |
70 | { | |
71 | GASKET_UINTN func; | |
72 | ||
73 | func = (GASKET_UINTN)api; | |
74 | return func (a); | |
75 | } | |
76 | ||
77 | UINTN | |
78 | GasketUintnUintn (void *api, UINTN a, UINTN b) | |
79 | { | |
80 | GASKET_UINTN_UINTN func; | |
81 | ||
82 | func = (GASKET_UINTN_UINTN)api; | |
83 | return func (a, b); | |
84 | } | |
85 | ||
86 | ||
87 | UINTN | |
88 | GasketUintnUintnUintn (void *api, UINTN a, UINTN b, UINTN c) | |
89 | { | |
90 | GASKET_UINTN_UINTN_UINTN func; | |
91 | ||
92 | func = (GASKET_UINTN_UINTN_UINTN)api; | |
93 | return func (a, b, c); | |
94 | } | |
95 | ||
96 | UINTN | |
97 | GasketUintnUintnUintnUintn (void *api, UINTN a, UINTN b, UINTN c, UINTN d) | |
98 | { | |
99 | GASKET_UINTN_UINTN_UINTN_UINTN func; | |
100 | ||
101 | func = (GASKET_UINTN_UINTN_UINTN_UINTN)api; | |
102 | return func (a, b, c, d); | |
103 | } | |
104 | ||
105 | UINTN | |
106 | GasketUintn10Args (void *api, UINTN a, UINTN b, UINTN c, UINTN d, UINTN e, UINTN f, UINTN g, UINTN h, UINTN i, UINTN j) | |
107 | { | |
108 | GASKET_UINTN_10ARGS func; | |
109 | ||
110 | func = (GASKET_UINTN_10ARGS)api; | |
111 | return func (a, b, c, d, e, f, g, h, i, j); | |
112 | } | |
113 | ||
114 | ||
115 | UINTN | |
116 | GasketUint64Uintn (void *api, UINT64 a, UINTN b) | |
117 | { | |
118 | GASKET_UINT64_UINTN func; | |
119 | ||
120 | func = (GASKET_UINT64_UINTN)api; | |
121 | return func (a, b); | |
122 | } | |
123 | ||
124 | UINT64 | |
125 | GasketUintnUint64Uintn (void *api, UINTN a, UINT64 b, UINTN c) | |
126 | { | |
127 | GASKET_UINTN_UINT64_UINTN func; | |
128 | ||
129 | func = (GASKET_UINTN_UINT64_UINTN)api; | |
130 | return func (a, b, c); | |
131 | } | |
132 | ||
133 | UINTN | |
134 | GasketUintnUint16 (void *api, UINTN a, UINT16 b) | |
135 | { | |
136 | GASKET_UINTN_UINT16 func; | |
137 | ||
138 | func = (GASKET_UINTN_UINT16)api; | |
139 | return func (a, b); | |
140 | } | |
141 | ||
142 | void | |
143 | ReverseGasketUint64 (void *api, UINT64 a) | |
144 | { | |
2ec364f9 | 145 | GASKET_UINT64 func; |
b9c8e50e | 146 | |
2ec364f9 | 147 | func = (GASKET_UINT64)api; |
b9c8e50e | 148 | func (a); |
149 | return; | |
150 | } | |
151 | ||
152 | ||
153 | ||
154 |