1*61046927SAndroid Build Coastguard Worker #ifndef NOUVEAU_DEVICE 2*61046927SAndroid Build Coastguard Worker #define NOUVEAU_DEVICE 1 3*61046927SAndroid Build Coastguard Worker 4*61046927SAndroid Build Coastguard Worker #include "nouveau_private.h" 5*61046927SAndroid Build Coastguard Worker #include "nv_device_info.h" 6*61046927SAndroid Build Coastguard Worker #include "util/simple_mtx.h" 7*61046927SAndroid Build Coastguard Worker 8*61046927SAndroid Build Coastguard Worker #include <stddef.h> 9*61046927SAndroid Build Coastguard Worker 10*61046927SAndroid Build Coastguard Worker struct _drmDevice; 11*61046927SAndroid Build Coastguard Worker struct hash_table; 12*61046927SAndroid Build Coastguard Worker 13*61046927SAndroid Build Coastguard Worker #ifdef __cplusplus 14*61046927SAndroid Build Coastguard Worker extern "C" { 15*61046927SAndroid Build Coastguard Worker #endif 16*61046927SAndroid Build Coastguard Worker 17*61046927SAndroid Build Coastguard Worker #define NOUVEAU_WS_DEVICE_KERNEL_RESERVATION_START (1ull << 39) 18*61046927SAndroid Build Coastguard Worker 19*61046927SAndroid Build Coastguard Worker struct nouveau_ws_device { 20*61046927SAndroid Build Coastguard Worker int fd; 21*61046927SAndroid Build Coastguard Worker 22*61046927SAndroid Build Coastguard Worker struct nv_device_info info; 23*61046927SAndroid Build Coastguard Worker 24*61046927SAndroid Build Coastguard Worker uint32_t max_push; 25*61046927SAndroid Build Coastguard Worker 26*61046927SAndroid Build Coastguard Worker simple_mtx_t bos_lock; 27*61046927SAndroid Build Coastguard Worker struct hash_table *bos; 28*61046927SAndroid Build Coastguard Worker 29*61046927SAndroid Build Coastguard Worker bool has_vm_bind; 30*61046927SAndroid Build Coastguard Worker }; 31*61046927SAndroid Build Coastguard Worker 32*61046927SAndroid Build Coastguard Worker struct nouveau_ws_device *nouveau_ws_device_new(struct _drmDevice *drm_device); 33*61046927SAndroid Build Coastguard Worker void nouveau_ws_device_destroy(struct nouveau_ws_device *); 34*61046927SAndroid Build Coastguard Worker 35*61046927SAndroid Build Coastguard Worker uint64_t nouveau_ws_device_vram_used(struct nouveau_ws_device *); 36*61046927SAndroid Build Coastguard Worker uint64_t nouveau_ws_device_timestamp(struct nouveau_ws_device *device); 37*61046927SAndroid Build Coastguard Worker bool nouveau_ws_device_has_tiled_bo(struct nouveau_ws_device *device); 38*61046927SAndroid Build Coastguard Worker 39*61046927SAndroid Build Coastguard Worker #ifdef __cplusplus 40*61046927SAndroid Build Coastguard Worker } 41*61046927SAndroid Build Coastguard Worker #endif 42*61046927SAndroid Build Coastguard Worker 43*61046927SAndroid Build Coastguard Worker #endif 44