import NVIDIA-FreeBSD-x86-190.42
[nvidia.git] / src / xapi-sdk.h
1 /* _NVRM_COPYRIGHT_BEGIN_
2  *
3  * Copyright 2008-2009 by NVIDIA Corporation.  All rights reserved.  All
4  * information contained herein is proprietary and confidential to NVIDIA
5  * Corporation.  Any use, reproduction, or disclosure without the written
6  * permission of NVIDIA Corporation is prohibited.
7  *
8  * _NVRM_COPYRIGHT_END_
9  */
10
11 /* Hide XAPIGEN helpers used in sdk headers from the C compiler.               */
12 /* See also:                                                                   */
13 /*    $NV_ROOT/tools/xapi/inc/xapi-sdk-fixup.h                                 */
14 /* which overrides these #defines when actually using xapigen.                 */
15
16 #ifndef _XAPI_SDK_H_
17 #define _XAPI_SDK_H_
18
19
20 #define XAPI_MAX_FIELD_SIZE 4096        /* Default max size for an XAPI field  */
21 #define XAPI_CASE(x)
22 #define XAPI_SWITCH(x)
23 #define XAPI_HIDDEN(x) x
24 #define XAPI_FIELD_PTR_AS_VALUE(TYPE, FIELD_NAME) \
25     TYPE    *FIELD_NAME
26 #define XAPI_FIELD_HIDDEN(FIELD_NAME) \
27     FIELD_NAME
28 #define XAPI_FIELD_FUNCTION_PTR(TYPE, FIELD_NAME)                  \
29     TYPE     FIELD_NAME
30 #define XAPI_FIELD_STRING(FIELD_NAME, MAXCHARS) \
31     char    FIELD_NAME[MAXCHARS]
32 #define XAPI_FIELD_PTR_TO_STRING(FIELD_NAME, MAXCHARS) \
33     char    *FIELD_NAME
34 #define XAPI_FIELD_NVP64_PTR_TO_STRING(FIELD_NAME, MAXCHARS) \
35     NvP64   FIELD_NAME NV_ALIGN_BYTES(8)
36 #define XAPI_FIELD_NVP64_PTR_TO_STRING_CI(FIELD_NAME, MAXCHARS) \
37     NvP64   FIELD_NAME NV_ALIGN_BYTES(8)
38 #define XAPI_FIELD_NVP64_PTR_TO_STRING_CO(FIELD_NAME, MAXCHARS) \
39     NvP64   FIELD_NAME NV_ALIGN_BYTES(8)
40
41 #define XAPI_FIELD_FIXED_BYTE_ARRAY(FIELD_NAME, MAXELEMENTS) \
42     NvU8    FIELD_NAME[MAXELEMENTS]
43 #define XAPI_FIELD_FIXED_BYTE_ARRAY_CI(FIELD_NAME, MAXELEMENTS) \
44     NvU8    FIELD_NAME[MAXELEMENTS]
45 #define XAPI_FIELD_FIXED_BYTE_ARRAY_CO(FIELD_NAME, MAXELEMENTS) \
46     NvU8    FIELD_NAME[MAXELEMENTS]
47
48 #define XAPI_FIELD_COUNTED_BYTE_ARRAY(FIELD_NAME, FIELD_COUNT, MAXELEMENTS) \
49     NvU8    FIELD_NAME[MAXELEMENTS]
50 #define XAPI_FIELD_COUNTED_BYTE_ARRAY_CI(FIELD_NAME, FIELD_COUNT, MAXELEMENTS) \
51     NvU8    FIELD_NAME[MAXELEMENTS]
52 #define XAPI_FIELD_COUNTED_BYTE_ARRAY_CO(FIELD_NAME, FIELD_COUNT, MAXELEMENTS) \
53     NvU8    FIELD_NAME[MAXELEMENTS]
54
55 #define XAPI_FIELD_PTR_TO_COUNTED_BYTE_ARRAY(FIELD_NAME, FIELD_COUNT, MAXELEMENTS) \
56     NvU8    *FIELD_NAME
57 #define XAPI_FIELD_PTR_TO_COUNTED_BYTE_ARRAY_CI(FIELD_NAME, FIELD_COUNT, MAXELEMENTS) \
58     NvU8    *FIELD_NAME
59 #define XAPI_FIELD_PTR_TO_COUNTED_BYTE_ARRAY_CO(FIELD_NAME, FIELD_COUNT, MAXELEMENTS) \
60     NvU8    *FIELD_NAME
61
62 #define XAPI_FIELD_NVP64_PTR_TO_COUNTED_BYTE_ARRAY(FIELD_NAME, FIELD_COUNT, MAXELEMENTS) \
63     NvP64   FIELD_NAME NV_ALIGN_BYTES(8)
64 #define XAPI_FIELD_NVP64_PTR_TO_COUNTED_BYTE_ARRAY_CI(FIELD_NAME, FIELD_COUNT, MAXELEMENTS) \
65     NvP64   FIELD_NAME NV_ALIGN_BYTES(8)
66 #define XAPI_FIELD_NVP64_PTR_TO_COUNTED_BYTE_ARRAY_CO(FIELD_NAME, FIELD_COUNT, MAXELEMENTS) \
67     NvP64   FIELD_NAME NV_ALIGN_BYTES(8)
68
69 #define XAPI_FIELD_PTR_TO_ARRAY(TYPE, PTR_FIELD_NAME, FIELD_COUNT, MAXELEMENTS) \
70     TYPE    *PTR_FIELD_NAME
71 #define XAPI_FIELD_PTR_TO_ARRAY_CI(TYPE, PTR_FIELD_NAME, FIELD_COUNT, MAXELEMENTS) \
72     TYPE    *PTR_FIELD_NAME
73 #define XAPI_FIELD_PTR_TO_ARRAY_CO(TYPE, PTR_FIELD_NAME, FIELD_COUNT, MAXELEMENTS) \
74     TYPE    *PTR_FIELD_NAME
75
76 #define XAPI_FIELD_NVP64_PTR_TO_ARRAY(TYPE, PTR_FIELD_NAME, FIELD_COUNT, MAXELEMENTS)  \
77     NvP64   PTR_FIELD_NAME NV_ALIGN_BYTES(8)
78 #define XAPI_FIELD_NVP64_PTR_TO_ARRAY_CI(TYPE, PTR_FIELD_NAME, FIELD_COUNT, MAXELEMENTS)  \
79     NvP64   PTR_FIELD_NAME NV_ALIGN_BYTES(8)
80 #define XAPI_FIELD_NVP64_PTR_TO_ARRAY_CO(TYPE, PTR_FIELD_NAME, FIELD_COUNT, MAXELEMENTS)  \
81     NvP64   PTR_FIELD_NAME NV_ALIGN_BYTES(8)
82
83 #define XAPI_FIELD_ARRAY(TYPE, INLINE_ARRAY_FIELD_NAME, FIELD_COUNT, MAXELEMENTS)  \
84     TYPE    INLINE_ARRAY_FIELD_NAME[MAXELEMENTS]
85 #define XAPI_FIELD_ARRAY_CI(TYPE, INLINE_ARRAY_FIELD_NAME, FIELD_COUNT, MAXELEMENTS)  \
86     TYPE    INLINE_ARRAY_FIELD_NAME[MAXELEMENTS]
87 #define XAPI_FIELD_ARRAY_CO(TYPE, INLINE_ARRAY_FIELD_NAME, FIELD_COUNT, MAXELEMENTS)  \
88     TYPE    INLINE_ARRAY_FIELD_NAME[MAXELEMENTS]
89
90 #define XAPI_FIELD_UNION(TYPE, INLINE_UNION_FIELD_NAME, DISCRIMINANT_FIELD)  \
91     TYPE INLINE_UNION_FIELD_NAME 
92 #define XAPI_FIELD_UNION_CI(TYPE, INLINE_UNION_FIELD_NAME, DISCRIMINANT_FIELD)  \
93     TYPE INLINE_UNION_FIELD_NAME 
94 #define XAPI_FIELD_UNION_CO(TYPE, INLINE_UNION_FIELD_NAME, DISCRIMINANT_FIELD)  \
95     TYPE INLINE_UNION_FIELD_NAME 
96
97 #define XAPI_FIELD_NVP64_PTR(TYPE, FIELD_NAME) \
98     NvP64   FIELD_NAME NV_ALIGN_BYTES(8)
99 #define XAPI_FIELD_NVP64_PTR_CI(TYPE, FIELD_NAME) \
100     NvP64   FIELD_NAME NV_ALIGN_BYTES(8)
101 #define XAPI_FIELD_NVP64_PTR_CO(TYPE, FIELD_NAME) \
102     NvP64   FIELD_NAME NV_ALIGN_BYTES(8)
103
104 #define XAPI_NYI 
105
106
107 #endif // _XAPI_SDK_H_