5 #define _NV_IOC_NRBITS 8
6 #define _NV_IOC_TYPEBITS 8
7 #define _NV_IOC_SIZEBITS 14
8 #define _NV_IOC_DIRBITS 2
10 #define _NV_IOC_NRMASK ((1 << _NV_IOC_NRBITS)-1)
11 #define _NV_IOC_TYPEMASK ((1 << _NV_IOC_TYPEBITS)-1)
12 #define _NV_IOC_SIZEMASK ((1 << _NV_IOC_SIZEBITS)-1)
13 #define _NV_IOC_DIRMASK ((1 << _NV_IOC_DIRBITS)-1)
15 #define _NV_IOC_NRSHIFT 0
16 #define _NV_IOC_TYPESHIFT (_NV_IOC_NRSHIFT+_NV_IOC_NRBITS)
17 #define _NV_IOC_SIZESHIFT (_NV_IOC_TYPESHIFT+_NV_IOC_TYPEBITS)
18 #define _NV_IOC_DIRSHIFT (_NV_IOC_SIZESHIFT+_NV_IOC_SIZEBITS)
21 #define _NV_IOC_NONE 0U
22 #define _NV_IOC_WRITE 1U
23 #define _NV_IOC_READ 2U
25 #define _NV_IOC(dir,type,nr,size) \
26 (((dir) << _NV_IOC_DIRSHIFT) | \
27 ((type) << _NV_IOC_TYPESHIFT) | \
28 ((nr) << _NV_IOC_NRSHIFT) | \
29 ((size) << _NV_IOC_SIZESHIFT))
32 #define _NV_IO(type,nr) _NV_IOC(_NV_IOC_NONE,(type),(nr),0)
33 #define _NV_IOR(type,nr,size) _NV_IOC(_NV_IOC_READ,(type),(nr),sizeof(size))
34 #define _NV_IOW(type,nr,size) _NV_IOC(_NV_IOC_WRITE,(type),(nr),sizeof(size))
35 #define _NV_IOWR(type,nr,size) _NV_IOC(_NV_IOC_READ|_NV_IOC_WRITE,(type),(nr),sizeof(size))
38 #define _NV_IOC_DIR(nr) (((nr) >> _NV_IOC_DIRSHIFT) & _NV_IOC_DIRMASK)
39 #define _NV_IOC_TYPE(nr) (((nr) >> _NV_IOC_TYPESHIFT) & _NV_IOC_TYPEMASK)
40 #define _NV_IOC_NR(nr) (((nr) >> _NV_IOC_NRSHIFT) & _NV_IOC_NRMASK)
41 #define _NV_IOC_SIZE(nr) (((nr) >> _NV_IOC_SIZESHIFT) & _NV_IOC_SIZEMASK)
48 u32 width_align_pixels;
49 u32 height_align_pixels;
50 u32 pixel_squares_by_aliquots;
52 u32 region_byte_multiplier;
53 u32 region_header_size;
54 u32 subregion_header_size;
55 u32 subregion_width_align_pixels;
56 u32 subregion_height_align_pixels;
76 u64 on_board_video_memory_size;
80 u32 compression_page_size;
81 u32 pde_coverage_bit_count;
82 u32 available_big_page_sizes;
84 u32 sm_arch_sm_version;
85 u32 sm_arch_spa_version;
86 u32 sm_arch_warp_count;
94 u32 inline_to_memory_class;
102 u32 rop_l2_en_mask_0;
103 u32 rop_l2_en_mask_1;
105 u64 gr_compbit_store_base_hw;
169 #define NVGPU_ZBC_TYPE_INVALID 0
170 #define NVGPU_ZBC_TYPE_COLOR 1
171 #define NVGPU_ZBC_TYPE_DEPTH 2
174 typedef enum nvioctl_map_param {
176 NvMapParam_Alignment = 2,
183 typedef enum nvioctl_channel_obj_classnum {
184 NvClassNumber_2D = 0x902D,
185 NvClassNumber_3D = 0xB197,
186 NvClassNumber_Compute = 0xB1C0,
187 NvClassNumber_Kepler = 0xA140,
188 NvClassNumber_DMA = 0xB0B5,
189 NvClassNumber_ChannelGpfifo = 0xB06F
193 typedef enum nvioctl_channel_priority {
194 NvChannelPriority_Low = 50,
195 NvChannelPriority_Medium = 100,
196 NvChannelPriority_High = 150
201 NvZcullConfig_Global = 0,
202 NvZcullConfig_NoCtxSwitch = 1,
203 NvZcullConfig_SeparateBuffer = 2,
204 NvZcullConfig_PartOfRegularBuffer = 3
209 NvAllocSpaceFlags_FixedOffset = 1,
210 NvAllocSpaceFlags_Sparse = 2,
215 NvMapBufferFlags_FixedOffset = 1,
216 NvMapBufferFlags_IsCacheable = 4,
217 NvMapBufferFlags_Modify = 0x100,
221 NvNotificationType_FifoErrorIdleTimeout=8,
222 NvNotificationType_GrErrorSwNotify=13,
223 NvNotificationType_GrSemaphoreTimeout=24,
224 NvNotificationType_GrIllegalNotify=25,
225 NvNotificationType_FifoErrorMmuErrFlt=31,
226 NvNotificationType_PbdmaError=32,
227 NvNotificationType_ResetChannelVerifError=43,
228 NvNotificationType_PbdmaPushbufferCrcMismatch=80
229 } NvNotificationType;
246 Result nvioctlNvhostCtrl_EventSignal(
u32 fd,
u32 event_id);
248 Result nvioctlNvhostCtrl_EventWaitAsync(
u32 fd,
u32 syncpt_id,
u32 threshold,
s32 timeout,
u32 event_id);
249 Result nvioctlNvhostCtrl_EventRegister(
u32 fd,
u32 event_id);
250 Result nvioctlNvhostCtrl_EventUnregister(
u32 fd,
u32 event_id);
252 Result nvioctlNvhostCtrlGpu_ZCullGetCtxSize(
u32 fd,
u32 *out);
254 Result nvioctlNvhostCtrlGpu_ZbcSetTable(
u32 fd,
const u32 color_ds[4],
const u32 color_l2[4],
u32 depth,
u32 format,
u32 type);
257 Result nvioctlNvhostCtrlGpu_GetTpcMasks(
u32 fd,
void *buffer,
size_t size);
261 Result nvioctlNvhostAsGpu_BindChannel(
u32 fd,
u32 channel_fd);
262 Result nvioctlNvhostAsGpu_AllocSpace(
u32 fd,
u32 pages,
u32 page_size,
u32 flags,
u64 align_or_offset,
u64 *offset);
264 Result nvioctlNvhostAsGpu_MapBufferEx(
u32 fd,
u32 flags,
u32 kind,
u32 nvmap_handle,
u32 page_size,
u64 buffer_offset,
u64 mapping_size,
u64 input_offset,
u64 *offset);
265 Result nvioctlNvhostAsGpu_UnmapBuffer(
u32 fd,
u64 offset);
267 Result nvioctlNvhostAsGpu_InitializeEx(
u32 fd,
u32 flags,
u32 big_page_size);
273 Result nvioctlNvmap_Param(
u32 fd,
u32 nvmap_handle, NvMapParam param,
u32 *result);
281 Result nvioctlChannel_SetErrorNotifier(
u32 fd,
u32 enable);
284 Result nvioctlChannel_SetPriority(
u32 fd,
u32 priority);
287 Result nvioctlChannel_SetUserData(
u32 fd,
void* addr);
291 Result nvioctlChannel_GetModuleClockRate(
u32 fd,
u32 module_id,
u32 *freq);
292 Result nvioctlChannel_SetModuleClockRate(
u32 fd,
u32 module_id,
u32 freq);
295 Result nvioctlChannel_SetSubmitTimeout(
u32 fd,
u32 timeout);
uint64_t u64
64-bit unsigned integer.
Definition: types.h:22
uint8_t u8
8-bit unsigned integer.
Definition: types.h:19
uint16_t u16
16-bit unsigned integer.
Definition: types.h:20
u32 Result
Function error code result type.
Definition: types.h:44
int32_t s32
32-bit signed integer.
Definition: types.h:27
uint32_t u32
32-bit unsigned integer.
Definition: types.h:21