xref: /aosp_15_r20/external/mesa3d/src/gallium/winsys/svga/drm/vmw_fence.h (revision 6104692788411f58d303aa86923a9ff6ecaded22)
1 /*
2  * Copyright (c) 2009-2024 Broadcom. All Rights Reserved.
3  * The term “Broadcom” refers to Broadcom Inc.
4  * and/or its subsidiaries.
5  * SPDX-License-Identifier: MIT
6  */
7 
8 
9 #ifndef VMW_FENCE_H_
10 #define VMW_FENCE_H_
11 
12 
13 #include "util/compiler.h"
14 #include "pipebuffer/pb_buffer_fenced.h"
15 
16 struct pipe_fence_handle;
17 struct pb_fence_ops;
18 struct vmw_winsys_screen;
19 
20 
21 struct pipe_fence_handle *
22 vmw_fence_create(struct pb_fence_ops *fence_ops,
23 		 uint32_t handle, uint32_t seqno, uint32_t mask, int32_t fd);
24 
25 int
26 vmw_fence_finish(struct vmw_winsys_screen *vws,
27 		 struct pipe_fence_handle *fence,
28 		 uint64_t timeout,
29 		 unsigned flag);
30 
31 int
32 vmw_fence_get_fd(struct pipe_fence_handle *fence);
33 
34 int
35 vmw_fence_signalled(struct vmw_winsys_screen *vws,
36 		    struct pipe_fence_handle *fence,
37 		    unsigned flag);
38 void
39 vmw_fence_reference(struct vmw_winsys_screen *vws,
40 		    struct pipe_fence_handle **ptr,
41 		    struct pipe_fence_handle *fence);
42 
43 struct pb_fence_ops *
44 vmw_fence_ops_create(struct vmw_winsys_screen *vws);
45 
46 
47 
48 #endif /* VMW_FENCE_H_ */
49