xref: /llvm-project/offload/liboffload/API/Common.td (revision fd3907ccb583df99e9c19d2fe84e4e7c52d75de9)
1*fd3907ccSCallum Faredef : Macro {
2*fd3907ccSCallum Fare  let name = "OL_VERSION_MAJOR";
3*fd3907ccSCallum Fare  let desc = "Major version of the Offload API";
4*fd3907ccSCallum Fare  let value = "0";
5*fd3907ccSCallum Fare}
6*fd3907ccSCallum Fare
7*fd3907ccSCallum Faredef : Macro {
8*fd3907ccSCallum Fare  let name = "OL_VERSION_MINOR";
9*fd3907ccSCallum Fare  let desc = "Minor version of the Offload API";
10*fd3907ccSCallum Fare  let value = "0";
11*fd3907ccSCallum Fare}
12*fd3907ccSCallum Fare
13*fd3907ccSCallum Faredef : Macro {
14*fd3907ccSCallum Fare  let name = "OL_VERSION_PATCH";
15*fd3907ccSCallum Fare  let desc = "Patch version of the Offload API";
16*fd3907ccSCallum Fare  let value = "1";
17*fd3907ccSCallum Fare}
18*fd3907ccSCallum Fare
19*fd3907ccSCallum Faredef : Macro {
20*fd3907ccSCallum Fare  let name = "OL_APICALL";
21*fd3907ccSCallum Fare  let desc = "Calling convention for all API functions";
22*fd3907ccSCallum Fare  let condition = "defined(_WIN32)";
23*fd3907ccSCallum Fare  let value = "__cdecl";
24*fd3907ccSCallum Fare  let alt_value = "";
25*fd3907ccSCallum Fare}
26*fd3907ccSCallum Fare
27*fd3907ccSCallum Faredef : Macro {
28*fd3907ccSCallum Fare  let name = "OL_APIEXPORT";
29*fd3907ccSCallum Fare  let desc = "Microsoft-specific dllexport storage-class attribute";
30*fd3907ccSCallum Fare  let condition = "defined(_WIN32)";
31*fd3907ccSCallum Fare  let value = "__declspec(dllexport)";
32*fd3907ccSCallum Fare  let alt_value = "";
33*fd3907ccSCallum Fare}
34*fd3907ccSCallum Fare
35*fd3907ccSCallum Faredef : Macro {
36*fd3907ccSCallum Fare  let name = "OL_DLLEXPORT";
37*fd3907ccSCallum Fare  let desc = "Microsoft-specific dllexport storage-class attribute";
38*fd3907ccSCallum Fare  let condition = "defined(_WIN32)";
39*fd3907ccSCallum Fare  let value = "__declspec(dllexport)";
40*fd3907ccSCallum Fare}
41*fd3907ccSCallum Fare
42*fd3907ccSCallum Faredef : Macro {
43*fd3907ccSCallum Fare  let name = "OL_DLLEXPORT";
44*fd3907ccSCallum Fare  let desc = "GCC-specific dllexport storage-class attribute";
45*fd3907ccSCallum Fare  let condition = "__GNUC__ >= 4";
46*fd3907ccSCallum Fare  let value = "__attribute__ ((visibility (\"default\")))";
47*fd3907ccSCallum Fare  let alt_value = "";
48*fd3907ccSCallum Fare}
49*fd3907ccSCallum Fare
50*fd3907ccSCallum Faredef : Handle {
51*fd3907ccSCallum Fare  let name = "ol_platform_handle_t";
52*fd3907ccSCallum Fare  let desc = "Handle of a platform instance";
53*fd3907ccSCallum Fare}
54*fd3907ccSCallum Fare
55*fd3907ccSCallum Faredef : Handle {
56*fd3907ccSCallum Fare  let name = "ol_device_handle_t";
57*fd3907ccSCallum Fare  let desc = "Handle of platform's device object";
58*fd3907ccSCallum Fare}
59*fd3907ccSCallum Fare
60*fd3907ccSCallum Faredef : Handle {
61*fd3907ccSCallum Fare  let name = "ol_context_handle_t";
62*fd3907ccSCallum Fare  let desc = "Handle of context object";
63*fd3907ccSCallum Fare}
64*fd3907ccSCallum Fare
65*fd3907ccSCallum Faredef : Enum {
66*fd3907ccSCallum Fare  let name = "ol_errc_t";
67*fd3907ccSCallum Fare  let desc = "Defines Return/Error codes";
68*fd3907ccSCallum Fare  let etors =[
69*fd3907ccSCallum Fare    Etor<"SUCCESS", "Success">,
70*fd3907ccSCallum Fare    Etor<"INVALID_VALUE", "Invalid Value">,
71*fd3907ccSCallum Fare    Etor<"INVALID_PLATFORM", "Invalid platform">,
72*fd3907ccSCallum Fare    Etor<"DEVICE_NOT_FOUND", "Device not found">,
73*fd3907ccSCallum Fare    Etor<"INVALID_DEVICE", "Invalid device">,
74*fd3907ccSCallum Fare    Etor<"DEVICE_LOST", "Device hung, reset, was removed, or driver update occurred">,
75*fd3907ccSCallum Fare    Etor<"UNINITIALIZED", "plugin is not initialized or specific entry-point is not implemented">,
76*fd3907ccSCallum Fare    Etor<"OUT_OF_RESOURCES", "Out of resources">,
77*fd3907ccSCallum Fare    Etor<"UNSUPPORTED_VERSION", "generic error code for unsupported versions">,
78*fd3907ccSCallum Fare    Etor<"UNSUPPORTED_FEATURE", "generic error code for unsupported features">,
79*fd3907ccSCallum Fare    Etor<"INVALID_ARGUMENT", "generic error code for invalid arguments">,
80*fd3907ccSCallum Fare    Etor<"INVALID_NULL_HANDLE", "handle argument is not valid">,
81*fd3907ccSCallum Fare    Etor<"INVALID_NULL_POINTER", "pointer argument may not be nullptr">,
82*fd3907ccSCallum Fare    Etor<"INVALID_SIZE", "invalid size or dimensions (e.g., must not be zero, or is out of bounds)">,
83*fd3907ccSCallum Fare    Etor<"INVALID_ENUMERATION", "enumerator argument is not valid">,
84*fd3907ccSCallum Fare    Etor<"UNSUPPORTED_ENUMERATION", "enumerator argument is not supported by the device">,
85*fd3907ccSCallum Fare    Etor<"UNKNOWN", "Unknown or internal error">
86*fd3907ccSCallum Fare  ];
87*fd3907ccSCallum Fare}
88*fd3907ccSCallum Fare
89*fd3907ccSCallum Faredef : Struct {
90*fd3907ccSCallum Fare  let name = "ol_error_struct_t";
91*fd3907ccSCallum Fare  let desc = "Details of the error condition returned by an API call";
92*fd3907ccSCallum Fare  let members = [
93*fd3907ccSCallum Fare    StructMember<"ol_errc_t", "Code", "The error code">,
94*fd3907ccSCallum Fare    StructMember<"const char*", "Details", "String containing error details">
95*fd3907ccSCallum Fare  ];
96*fd3907ccSCallum Fare}
97*fd3907ccSCallum Fare
98*fd3907ccSCallum Faredef : Typedef {
99*fd3907ccSCallum Fare  let name = "ol_result_t";
100*fd3907ccSCallum Fare  let desc = "Result type returned by all entry points.";
101*fd3907ccSCallum Fare  let value = "const ol_error_struct_t*";
102*fd3907ccSCallum Fare}
103*fd3907ccSCallum Fare
104*fd3907ccSCallum Faredef : Macro {
105*fd3907ccSCallum Fare  let name = "OL_SUCCESS";
106*fd3907ccSCallum Fare  let desc = "Success condition";
107*fd3907ccSCallum Fare  let value = "NULL";
108*fd3907ccSCallum Fare}
109*fd3907ccSCallum Fare
110*fd3907ccSCallum Faredef : Struct {
111*fd3907ccSCallum Fare  let name = "ol_code_location_t";
112*fd3907ccSCallum Fare  let desc = "Code location information that can optionally be associated with an API call";
113*fd3907ccSCallum Fare  let members = [
114*fd3907ccSCallum Fare    StructMember<"const char*", "FunctionName", "Function name">,
115*fd3907ccSCallum Fare    StructMember<"const char*", "SourceFile", "Source code file">,
116*fd3907ccSCallum Fare    StructMember<"uint32_t", "LineNumber", "Source code line number">,
117*fd3907ccSCallum Fare    StructMember<"uint32_t", "ColumnNumber", "Source code column number">
118*fd3907ccSCallum Fare  ];
119*fd3907ccSCallum Fare}
120*fd3907ccSCallum Fare
121*fd3907ccSCallum Faredef : Function {
122*fd3907ccSCallum Fare  let name = "olInit";
123*fd3907ccSCallum Fare  let desc = "Perform initialization of the Offload library and plugins";
124*fd3907ccSCallum Fare  let details = [
125*fd3907ccSCallum Fare    "This must be the first API call made by a user of the Offload library",
126*fd3907ccSCallum Fare    "Each call will increment an internal reference count that is decremented by `olShutDown`"
127*fd3907ccSCallum Fare  ];
128*fd3907ccSCallum Fare  let params = [];
129*fd3907ccSCallum Fare  let returns = [];
130*fd3907ccSCallum Fare}
131*fd3907ccSCallum Fare
132*fd3907ccSCallum Faredef : Function {
133*fd3907ccSCallum Fare  let name = "olShutDown";
134*fd3907ccSCallum Fare  let desc = "Release the resources in use by Offload";
135*fd3907ccSCallum Fare  let details = [
136*fd3907ccSCallum Fare    "This decrements an internal reference count. When this reaches 0, all resources will be released",
137*fd3907ccSCallum Fare    "Subsequent API calls made after this are not valid"
138*fd3907ccSCallum Fare  ];
139*fd3907ccSCallum Fare  let params = [];
140*fd3907ccSCallum Fare  let returns = [];
141*fd3907ccSCallum Fare}
142