1#ifndef __NV50_QUERY_H__ 2#define __NV50_QUERY_H__ 3 4#include "pipe/p_context.h" 5 6#include "nouveau_context.h" 7 8struct nv50_context; 9struct nv50_query; 10 11struct nv50_query_funcs { 12 void (*destroy_query)(struct nv50_context *, struct nv50_query *); 13 boolean (*begin_query)(struct nv50_context *, struct nv50_query *); 14 void (*end_query)(struct nv50_context *, struct nv50_query *); 15 boolean (*get_query_result)(struct nv50_context *, struct nv50_query *, 16 boolean, union pipe_query_result *); 17}; 18 19struct nv50_query { 20 const struct nv50_query_funcs *funcs; 21 uint16_t type; 22 uint16_t index; 23}; 24 25static inline struct nv50_query * 26nv50_query(struct pipe_query *pipe) 27{ 28 return (struct nv50_query *)pipe; 29} 30 31/* 32 * Driver queries groups: 33 */ 34#define NV50_HW_SM_QUERY_GROUP 0 35#define NV50_HW_METRIC_QUERY_GROUP 1 36 37void nv50_init_query_functions(struct nv50_context *); 38 39#endif 40