mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2024-12-27 15:35:06 +07:00
2f9f26bd86
Extract SMBIOS-related code from dell-laptop to a new kernel module, dell-smbios. The static specifier is removed from exported symbols, otherwise code is just moved around. Signed-off-by: Michał Kępień <kernel@kempniu.pl> Reviewed-by: Pali Rohár <pali.rohar@gmail.com> [dvhart: Include linux/io.h in dell-smbios.c as caught by lkp] Signed-off-by: Darren Hart <dvhart@linux.intel.com>
51 lines
1.3 KiB
C
51 lines
1.3 KiB
C
/*
|
|
* Common functions for kernel modules using Dell SMBIOS
|
|
*
|
|
* Copyright (c) Red Hat <mjg@redhat.com>
|
|
* Copyright (c) 2014 Gabriele Mazzotta <gabriele.mzt@gmail.com>
|
|
* Copyright (c) 2014 Pali Rohár <pali.rohar@gmail.com>
|
|
*
|
|
* Based on documentation in the libsmbios package:
|
|
* Copyright (C) 2005-2014 Dell Inc.
|
|
*
|
|
* This program is free software; you can redistribute it and/or modify
|
|
* it under the terms of the GNU General Public License version 2 as
|
|
* published by the Free Software Foundation.
|
|
*/
|
|
|
|
#ifndef _DELL_SMBIOS_H_
|
|
#define _DELL_SMBIOS_H_
|
|
|
|
/* This structure will be modified by the firmware when we enter
|
|
* system management mode, hence the volatiles */
|
|
|
|
struct calling_interface_buffer {
|
|
u16 class;
|
|
u16 select;
|
|
volatile u32 input[4];
|
|
volatile u32 output[4];
|
|
} __packed;
|
|
|
|
struct calling_interface_token {
|
|
u16 tokenID;
|
|
u16 location;
|
|
union {
|
|
u16 value;
|
|
u16 stringlength;
|
|
};
|
|
};
|
|
|
|
extern struct calling_interface_buffer *buffer;
|
|
extern struct calling_interface_token *da_tokens;
|
|
|
|
void get_buffer(void);
|
|
void clear_buffer(void);
|
|
void release_buffer(void);
|
|
struct calling_interface_buffer *
|
|
dell_send_request(struct calling_interface_buffer *buffer,
|
|
int class, int select);
|
|
|
|
int find_token_id(int tokenid);
|
|
int find_token_location(int tokenid);
|
|
#endif
|