]>
Commit | Line | Data |
---|---|---|
7ee3b613 A |
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. You still have to add the extra stack alignment code to | |
7 | the assembly functions. | |
8 | ||
f9b8ab56 HT |
9 | Copyright (c) 2006 - 2009, Intel Corporation. All rights reserved.<BR> |
10 | Portions copyright (c) 2008 - 2009, Apple Inc. All rights reserved.<BR> | |
11 | This program and the accompanying materials | |
7ee3b613 A |
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 UINT32 UINTN; | |
34 | ||
35 | ||
36 | typedef int (*GASKET_VOID) (); | |
37 | typedef int (*GASKET_UINTN) (UINTN); | |
38 | typedef int (*GASKET_UINTN_UINTN) (UINTN, UINTN); | |
39 | typedef int (*GASKET_UINTN_UINTN_UINTN) (UINTN, UINTN, UINTN); | |
40 | typedef int (*GASKET_UINTN_UINTN_UINTN_UINTN) (UINTN, UINTN, UINTN, UINTN); | |
41 | typedef int (*GASKET_UINTN_10ARGS) (UINTN, UINTN, UINTN, UINTN, UINTN, UINTN, UINTN, UINTN, UINTN, UINTN); | |
42 | typedef int (*GASKET_UINT64_UINTN) (UINT64, UINTN); | |
43 | typedef UINT64 (*GASKET_UINTN_UINT64_UINTN) (UINTN, UINT64, UINTN); | |
44 | typedef int (*GASKET_UINTN_UINT16) (UINTN, UINT16); | |
45 | ||
46 | int GasketVoid (void *api); | |
47 | int GasketUintn (void *api, UINTN a); | |
48 | int GasketUintnUintn (void *api, UINTN a, UINTN b); | |
49 | int GasketUintnUintnUintn (void *api, UINTN a, UINTN b, UINTN c); | |
50 | int GasketUintnUintnUintnUintn (void *api, UINTN a, UINTN b, UINTN c, UINTN d); | |
51 | int GasketUintn10Args (void *api, UINTN a, UINTN b, UINTN c, UINTN d, UINTN e, UINTN f, UINTN g, UINTN h, UINTN i, UINTN j); | |
52 | int GasketUint64Uintn (void *api, UINT64 a, UINTN b); | |
53 | UINT64 GasketUintnUiny64Uintn (void *api, UINTN a, UINT64 b, UINTN c); | |
54 | int GasketUintnUint16 (void *api, UINTN a, UINT16 b); | |
55 | ||
56 | ||
57 | ||
58 | int | |
59 | GasketVoid (void *api) | |
60 | { | |
61 | GASKET_VOID func; | |
62 | ||
63 | func = (GASKET_VOID)api; | |
64 | return func (); | |
65 | } | |
66 | ||
67 | int | |
68 | GasketUintn (void *api, UINTN a) | |
69 | { | |
70 | GASKET_UINTN func; | |
71 | ||
72 | func = (GASKET_UINTN)api; | |
73 | return func (a); | |
74 | } | |
75 | ||
76 | int | |
77 | GasketUintnUintn (void *api, UINTN a, UINTN b) | |
78 | { | |
79 | GASKET_UINTN_UINTN func; | |
80 | ||
81 | func = (GASKET_UINTN_UINTN)api; | |
82 | return func (a, b); | |
83 | } | |
84 | ||
85 | ||
86 | int | |
87 | GasketUintnUintnUintn (void *api, UINTN a, UINTN b, UINTN c) | |
88 | { | |
89 | GASKET_UINTN_UINTN_UINTN func; | |
90 | ||
91 | func = (GASKET_UINTN_UINTN_UINTN)api; | |
92 | return func (a, b, c); | |
93 | } | |
94 | ||
95 | int | |
96 | GasketUintnUintnUintnUintn (void *api, UINTN a, UINTN b, UINTN c, UINTN d) | |
97 | { | |
98 | GASKET_UINTN_UINTN_UINTN_UINTN func; | |
99 | ||
100 | func = (GASKET_UINTN_UINTN_UINTN_UINTN)api; | |
101 | return func (a, b, c, d); | |
102 | } | |
103 | ||
104 | int | |
105 | GasketUintn10Args (void *api, UINTN a, UINTN b, UINTN c, UINTN d, UINTN e, UINTN f, UINTN g, UINTN h, UINTN i, UINTN j) | |
106 | { | |
107 | GASKET_UINTN_10ARGS func; | |
108 | ||
109 | func = (GASKET_UINTN_10ARGS)api; | |
110 | return func (a, b, c, d, e, f, g, h, i, j); | |
111 | } | |
112 | ||
113 | ||
114 | int | |
115 | GasketUint64Uintn (void *api, UINT64 a, UINTN b) | |
116 | { | |
117 | GASKET_UINT64_UINTN func; | |
118 | ||
119 | func = (GASKET_UINT64_UINTN)api; | |
120 | return func (a, b); | |
121 | } | |
122 | ||
123 | UINT64 | |
124 | GasketUintnUiny64Uintn (void *api, UINTN a, UINT64 b, UINTN c) | |
125 | { | |
126 | GASKET_UINTN_UINT64_UINTN func; | |
127 | ||
128 | func = (GASKET_UINTN_UINT64_UINTN)api; | |
129 | return func (a, b, c); | |
130 | } | |
131 | ||
132 | int | |
133 | GasketUintnUint16 (void *api, UINTN a, UINT16 b) | |
134 | { | |
135 | GASKET_UINTN_UINT16 func; | |
136 | ||
137 | func = (GASKET_UINTN_UINT16)api; | |
138 | return func (a, b); | |
139 | } | |
140 | ||
141 | ||
142 |