| @@ -202,67 +202,74 @@ static inline void detect_intel_iommu(void) · 201 unmodified lines |
| 202 | | 202 | |
| 203 | struct irte { | 203 | struct irte { |
| 204 | union { | 204 | union { |
| 205 | /* Shared between remapped and posted mode*/ | | |
| 206 | struct { | 205 | struct { |
| 207 | __u64 present : 1, /* 0 */ | 206 | union { |
| 208 | fpd : 1, /* 1 */ | 207 | /* Shared between remapped and posted mode*/ |
| 209 | __res0 : 6, /* 2 - 6 */ | 208 | struct { |
| 210 | avail : 4, /* 8 - 11 */ | 209 | __u64 present : 1, /* 0 */ |
| 211 | __res1 : 3, /* 12 - 14 */ | 210 | fpd : 1, /* 1 */ |
| 212 | pst : 1, /* 15 */ | 211 | __res0 : 6, /* 2 - 6 */ |
| 213 | vector : 8, /* 16 - 23 */ | 212 | avail : 4, /* 8 - 11 */ |
| 214 | __res2 : 40; /* 24 - 63 */ | 213 | __res1 : 3, /* 12 - 14 */ |
| | 214 | pst : 1, /* 15 */ |
| | 215 | vector : 8, /* 16 - 23 */ |
| | 216 | __res2 : 40; /* 24 - 63 */ |
| | 217 | }; |
| | 218 | |
| | 219 | /* Remapped mode */ |
| | 220 | struct { |
| | 221 | __u64 r_present : 1, /* 0 */ |
| | 222 | r_fpd : 1, /* 1 */ |
| | 223 | dst_mode : 1, /* 2 */ |
| | 224 | redir_hint : 1, /* 3 */ |
| | 225 | trigger_mode : 1, /* 4 */ |
| | 226 | dlvry_mode : 3, /* 5 - 7 */ |
| | 227 | r_avail : 4, /* 8 - 11 */ |
| | 228 | r_res0 : 4, /* 12 - 15 */ |
| | 229 | r_vector : 8, /* 16 - 23 */ |
| | 230 | r_res1 : 8, /* 24 - 31 */ |
| | 231 | dest_id : 32; /* 32 - 63 */ |
| | 232 | }; |
| | 233 | |
| | 234 | /* Posted mode */ |
| | 235 | struct { |
| | 236 | __u64 p_present : 1, /* 0 */ |
| | 237 | p_fpd : 1, /* 1 */ |
| | 238 | p_res0 : 6, /* 2 - 7 */ |
| | 239 | p_avail : 4, /* 8 - 11 */ |
| | 240 | p_res1 : 2, /* 12 - 13 */ |
| | 241 | p_urgent : 1, /* 14 */ |
| | 242 | p_pst : 1, /* 15 */ |
| | 243 | p_vector : 8, /* 16 - 23 */ |
| | 244 | p_res2 : 14, /* 24 - 37 */ |
| | 245 | pda_l : 26; /* 38 - 63 */ |
| | 246 | }; |
| | 247 | __u64 low; |
| | 248 | }; |
| | 249 | |
| | 250 | union { |
| | 251 | /* Shared between remapped and posted mode*/ |
| | 252 | struct { |
| | 253 | __u64 sid : 16, /* 64 - 79 */ |
| | 254 | sq : 2, /* 80 - 81 */ |
| | 255 | svt : 2, /* 82 - 83 */ |
| | 256 | __res3 : 44; /* 84 - 127 */ |
| | 257 | }; |
| | 258 | |
| | 259 | /* Posted mode*/ |
| | 260 | struct { |
| | 261 | __u64 p_sid : 16, /* 64 - 79 */ |
| | 262 | p_sq : 2, /* 80 - 81 */ |
| | 263 | p_svt : 2, /* 82 - 83 */ |
| | 264 | p_res3 : 12, /* 84 - 95 */ |
| | 265 | pda_h : 32; /* 96 - 127 */ |
| | 266 | }; |
| | 267 | __u64 high; |
| | 268 | }; |
| 215 | }; | 269 | }; |
| 216 | | 270 | #ifdef CONFIG_IRQ_REMAP |
| 217 | /* Remapped mode */ | 271 | __u128 irte; |
| 218 | struct { | 272 | #endif |
| 219 | __u64 r_present : 1, /* 0 */ | | |
| 220 | r_fpd : 1, /* 1 */ | | |
| 221 | dst_mode : 1, /* 2 */ | | |
| 222 | redir_hint : 1, /* 3 */ | | |
| 223 | trigger_mode : 1, /* 4 */ | | |
| 224 | dlvry_mode : 3, /* 5 - 7 */ | | |
| 225 | r_avail : 4, /* 8 - 11 */ | | |
| 226 | r_res0 : 4, /* 12 - 15 */ | | |
| 227 | r_vector : 8, /* 16 - 23 */ | | |
| 228 | r_res1 : 8, /* 24 - 31 */ | | |
| 229 | dest_id : 32; /* 32 - 63 */ | | |
| 230 | }; | | |
| 231 | | | |
| 232 | /* Posted mode */ | | |
| 233 | struct { | | |
| 234 | __u64 p_present : 1, /* 0 */ | | |
| 235 | p_fpd : 1, /* 1 */ | | |
| 236 | p_res0 : 6, /* 2 - 7 */ | | |
| 237 | p_avail : 4, /* 8 - 11 */ | | |
| 238 | p_res1 : 2, /* 12 - 13 */ | | |
| 239 | p_urgent : 1, /* 14 */ | | |
| 240 | p_pst : 1, /* 15 */ | | |
| 241 | p_vector : 8, /* 16 - 23 */ | | |
| 242 | p_res2 : 14, /* 24 - 37 */ | | |
| 243 | pda_l : 26; /* 38 - 63 */ | | |
| 244 | }; | | |
| 245 | __u64 low; | | |
| 246 | }; | | |
| 247 | | | |
| 248 | union { | | |
| 249 | /* Shared between remapped and posted mode*/ | | |
| 250 | struct { | | |
| 251 | __u64 sid : 16, /* 64 - 79 */ | | |
| 252 | sq : 2, /* 80 - 81 */ | | |
| 253 | svt : 2, /* 82 - 83 */ | | |
| 254 | __res3 : 44; /* 84 - 127 */ | | |
| 255 | }; | | |
| 256 | | | |
| 257 | /* Posted mode*/ | | |
| 258 | struct { | | |
| 259 | __u64 p_sid : 16, /* 64 - 79 */ | | |
| 260 | p_sq : 2, /* 80 - 81 */ | | |
| 261 | p_svt : 2, /* 82 - 83 */ | | |
| 262 | p_res3 : 12, /* 84 - 95 */ | | |
| 263 | pda_h : 32; /* 96 - 127 */ | | |
| 264 | }; | | |
| 265 | __u64 high; | | |
| 266 | }; | 273 | }; |
| 267 | }; | 274 | }; |
| 268 | | 275 | |