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