xref: /aosp_15_r20/external/libva/va/va_backend_prot.h (revision 54e60f844a168e9a219354de272cd517ee8cd4b7)
1*54e60f84SAndroid Build Coastguard Worker /*
2*54e60f84SAndroid Build Coastguard Worker  * Copyright (c) 2020 Intel Corporation. All Rights Reserved.
3*54e60f84SAndroid Build Coastguard Worker  *
4*54e60f84SAndroid Build Coastguard Worker  * Permission is hereby granted, free of charge, to any person obtaining a
5*54e60f84SAndroid Build Coastguard Worker  * copy of this software and associated documentation files (the
6*54e60f84SAndroid Build Coastguard Worker  * "Software"), to deal in the Software without restriction, including
7*54e60f84SAndroid Build Coastguard Worker  * without limitation the rights to use, copy, modify, merge, publish,
8*54e60f84SAndroid Build Coastguard Worker  * distribute, sub license, and/or sell copies of the Software, and to
9*54e60f84SAndroid Build Coastguard Worker  * permit persons to whom the Software is furnished to do so, subject to
10*54e60f84SAndroid Build Coastguard Worker  * the following conditions:
11*54e60f84SAndroid Build Coastguard Worker  *
12*54e60f84SAndroid Build Coastguard Worker  * The above copyright notice and this permission notice (including the
13*54e60f84SAndroid Build Coastguard Worker  * next paragraph) shall be included in all copies or substantial portions
14*54e60f84SAndroid Build Coastguard Worker  * of the Software.
15*54e60f84SAndroid Build Coastguard Worker  *
16*54e60f84SAndroid Build Coastguard Worker  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
17*54e60f84SAndroid Build Coastguard Worker  * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
18*54e60f84SAndroid Build Coastguard Worker  * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
19*54e60f84SAndroid Build Coastguard Worker  * IN NO EVENT SHALL INTEL AND/OR ITS SUPPLIERS BE LIABLE FOR
20*54e60f84SAndroid Build Coastguard Worker  * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
21*54e60f84SAndroid Build Coastguard Worker  * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
22*54e60f84SAndroid Build Coastguard Worker  * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
23*54e60f84SAndroid Build Coastguard Worker  */
24*54e60f84SAndroid Build Coastguard Worker 
25*54e60f84SAndroid Build Coastguard Worker #ifndef VA_BACKEND_PROT_H
26*54e60f84SAndroid Build Coastguard Worker #define VA_BACKEND_PROT_H
27*54e60f84SAndroid Build Coastguard Worker 
28*54e60f84SAndroid Build Coastguard Worker #include <va/va_prot.h>
29*54e60f84SAndroid Build Coastguard Worker 
30*54e60f84SAndroid Build Coastguard Worker #ifdef __cplusplus
31*54e60f84SAndroid Build Coastguard Worker extern "C" {
32*54e60f84SAndroid Build Coastguard Worker #endif
33*54e60f84SAndroid Build Coastguard Worker 
34*54e60f84SAndroid Build Coastguard Worker /** \brief VTable version for VA/PROTECTION hooks. */
35*54e60f84SAndroid Build Coastguard Worker #define VA_DRIVER_VTABLE_PROT_VERSION 1
36*54e60f84SAndroid Build Coastguard Worker 
37*54e60f84SAndroid Build Coastguard Worker struct VADriverVTableProt {
38*54e60f84SAndroid Build Coastguard Worker     unsigned int            version;
39*54e60f84SAndroid Build Coastguard Worker 
40*54e60f84SAndroid Build Coastguard Worker     VAStatus
41*54e60f84SAndroid Build Coastguard Worker     (*vaCreateProtectedSession)(
42*54e60f84SAndroid Build Coastguard Worker         VADriverContextP ctx,
43*54e60f84SAndroid Build Coastguard Worker         VAConfigID config_id,
44*54e60f84SAndroid Build Coastguard Worker         VAProtectedSessionID *protected_session
45*54e60f84SAndroid Build Coastguard Worker     );
46*54e60f84SAndroid Build Coastguard Worker 
47*54e60f84SAndroid Build Coastguard Worker     VAStatus
48*54e60f84SAndroid Build Coastguard Worker     (*vaDestroyProtectedSession)(
49*54e60f84SAndroid Build Coastguard Worker         VADriverContextP ctx,
50*54e60f84SAndroid Build Coastguard Worker         VAProtectedSessionID protected_session
51*54e60f84SAndroid Build Coastguard Worker     );
52*54e60f84SAndroid Build Coastguard Worker 
53*54e60f84SAndroid Build Coastguard Worker     VAStatus
54*54e60f84SAndroid Build Coastguard Worker     (*vaAttachProtectedSession)(
55*54e60f84SAndroid Build Coastguard Worker         VADriverContextP ctx,
56*54e60f84SAndroid Build Coastguard Worker         VAContextID context,
57*54e60f84SAndroid Build Coastguard Worker         VAProtectedSessionID protected_session
58*54e60f84SAndroid Build Coastguard Worker     );
59*54e60f84SAndroid Build Coastguard Worker 
60*54e60f84SAndroid Build Coastguard Worker     VAStatus
61*54e60f84SAndroid Build Coastguard Worker     (*vaDetachProtectedSession)(
62*54e60f84SAndroid Build Coastguard Worker         VADriverContextP ctx,
63*54e60f84SAndroid Build Coastguard Worker         VAContextID context
64*54e60f84SAndroid Build Coastguard Worker     );
65*54e60f84SAndroid Build Coastguard Worker 
66*54e60f84SAndroid Build Coastguard Worker     VAStatus
67*54e60f84SAndroid Build Coastguard Worker     (*vaProtectedSessionExecute)(
68*54e60f84SAndroid Build Coastguard Worker         VADriverContextP ctx,
69*54e60f84SAndroid Build Coastguard Worker         VAProtectedSessionID protected_session,
70*54e60f84SAndroid Build Coastguard Worker         VABufferID buf_id
71*54e60f84SAndroid Build Coastguard Worker     );
72*54e60f84SAndroid Build Coastguard Worker 
73*54e60f84SAndroid Build Coastguard Worker     /** \brief Reserved bytes for future use, must be zero */
74*54e60f84SAndroid Build Coastguard Worker     unsigned long reserved[VA_PADDING_MEDIUM];
75*54e60f84SAndroid Build Coastguard Worker };
76*54e60f84SAndroid Build Coastguard Worker 
77*54e60f84SAndroid Build Coastguard Worker #ifdef __cplusplus
78*54e60f84SAndroid Build Coastguard Worker }
79*54e60f84SAndroid Build Coastguard Worker #endif
80*54e60f84SAndroid Build Coastguard Worker 
81*54e60f84SAndroid Build Coastguard Worker #endif /* VA_BACKEND_PROT_H */
82