1use crate::{
8 data::{Tpm2bMaxBuffer, Tpm2bName, TpmAt, TpmCc, TpmiYesNo, TpmlAcCapabilities, TpmsAcOutput},
9 tpm_struct,
10};
11use core::fmt::Debug;
12
13tpm_struct! {
14 #[derive(Debug, PartialEq, Eq, Clone, Copy)]
15 kind: Command,
16 name: TpmAcGetCapabilityCommand,
17 cc: TpmCc::AcGetCapability,
18 no_sessions: true,
19 with_sessions: false,
20 handles: {
21 pub ac: u32,
22 },
23 parameters: {
24 pub capability: TpmAt,
25 pub count: u32,
26 }
27}
28
29tpm_struct! {
30 #[derive(Debug, PartialEq, Eq, Clone)]
31 kind: Response,
32 name: TpmAcGetCapabilityResponse,
33 cc: TpmCc::AcGetCapability,
34 no_sessions: true,
35 with_sessions: false,
36 handles: {},
37 parameters: {
38 pub more_data: TpmiYesNo,
39 pub capabilities_data: TpmlAcCapabilities,
40 }
41}
42
43tpm_struct! {
44 #[derive(Debug, PartialEq, Eq, Clone)]
45 kind: Command,
46 name: TpmAcSendCommand,
47 cc: TpmCc::AcSend,
48 no_sessions: false,
49 with_sessions: true,
50 handles: {
51 pub send_object: crate::data::TpmiDhObject,
52 pub auth_handle: crate::data::TpmiDhObject,
53 pub ac: u32,
54 },
55 parameters: {
56 pub ac_data_in: Tpm2bMaxBuffer,
57 }
58}
59
60tpm_struct! {
61 #[derive(Debug, PartialEq, Eq, Clone)]
62 kind: Response,
63 name: TpmAcSendResponse,
64 cc: TpmCc::AcSend,
65 no_sessions: false,
66 with_sessions: true,
67 handles: {},
68 parameters: {
69 pub ac_data_out: TpmsAcOutput,
70 }
71}
72
73tpm_struct! {
74 #[derive(Debug, PartialEq, Eq, Clone)]
75 kind: Command,
76 name: TpmPolicyAcSendSelectCommand,
77 cc: TpmCc::PolicyAcSendSelect,
78 no_sessions: false,
79 with_sessions: true,
80 handles: {
81 pub policy_session: crate::data::TpmiShAuthSession,
82 },
83 parameters: {
84 pub object_name: Tpm2bName,
85 pub auth_handle_name: Tpm2bName,
86 pub ac_name: Tpm2bName,
87 pub include_object: TpmiYesNo,
88 }
89}
90
91tpm_struct! {
92 #[derive(Debug, Default, PartialEq, Eq, Clone, Copy)]
93 kind: Response,
94 name: TpmPolicyAcSendSelectResponse,
95 cc: TpmCc::PolicyAcSendSelect,
96 no_sessions: false,
97 with_sessions: true,
98 handles: {},
99 parameters: {}
100}
101
102tpm_struct! {
103 #[derive(Debug, PartialEq, Eq, Clone, Copy)]
104 kind: Command,
105 name: TpmActSetTimeoutCommand,
106 cc: TpmCc::ActSetTimeout,
107 no_sessions: false,
108 with_sessions: true,
109 handles: {
110 pub act_handle: u32,
111 },
112 parameters: {
113 pub start_timeout: u32,
114 }
115}
116
117tpm_struct! {
118 #[derive(Debug, Default, PartialEq, Eq, Clone, Copy)]
119 kind: Response,
120 name: TpmActSetTimeoutResponse,
121 cc: TpmCc::ActSetTimeout,
122 no_sessions: false,
123 with_sessions: true,
124 handles: {},
125 parameters: {}
126}