blob: cfc6a1b1a440b7c58e6a57b58c54079bf0cf3d89 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
|
/* SPDX-License-Identifier: GPL-2.0 */
#ifndef _ASM_X86_SEAMLDR_H
#define _ASM_X86_SEAMLDR_H
#include <linux/types.h>
/*
* This is the "SEAMLDR_INFO" data structure defined in the
* "SEAM Loader (SEAMLDR) Interface Specification".
*
* Must be aligned to a 256-byte boundary.
*/
struct seamldr_info {
u32 version;
u32 attributes;
u32 vendor_id;
u32 build_date;
u16 build_num;
u16 minor_version;
u16 major_version;
u16 update_version;
u32 acm_x2apicid;
u32 num_remaining_updates;
u8 seam_info[128];
u8 seam_ready;
u8 seam_debug;
u8 p_seam_ready;
u8 reserved[93];
} __packed __aligned(256);
static_assert(sizeof(struct seamldr_info) == 256);
int seamldr_get_info(struct seamldr_info *seamldr_info);
int seamldr_install_module(const u8 *data, u32 data_len);
void seamldr_lock_module_update(void);
void seamldr_unlock_module_update(void);
#endif /* _ASM_X86_SEAMLDR_H */
|