fwupd/plugins/dell/fu-plugin-dell.h
Mario Limonciello 3780bb5c0d dell: Add a test for libsmbios version
This will be useful in the future for debugging crashes with known
problematic versions of libsmbios.

Also use this information to turn off the blacklist from previously
bad known combinations of libsmbios + certain systems
2018-01-27 22:48:36 -06:00

73 lines
2.0 KiB
C

/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*-
*
* Copyright (C) 2016 Mario Limonciello <mario_limonciello@dell.com>
*
* Licensed under the GNU General Public License Version 2
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
*/
#ifndef __FU_PLUGIN_DELL_H
#define __FU_PLUGIN_DELL_H
#include <gusb.h>
#include "fu-plugin.h"
#include "fu-dell-smi.h"
struct FuPluginData {
FuDellSmiObj *smi_obj;
guint16 fake_vid;
guint16 fake_pid;
gboolean can_switch_modes;
gboolean capsule_supported;
guint libsmbios_major;
guint libsmbios_minor;
};
void
fu_plugin_dell_inject_fake_data (FuPlugin *plugin,
guint32 *output, guint16 vid, guint16 pid,
guint8 *buf, gboolean can_switch_modes);
gboolean
fu_plugin_dell_detect_tpm (FuPlugin *plugin, GError **error);
void
fu_plugin_dell_device_added_cb (GUsbContext *ctx,
GUsbDevice *device,
FuPlugin *plugin);
void
fu_plugin_dell_device_removed_cb (GUsbContext *ctx,
GUsbDevice *device,
FuPlugin *plugin);
/* These are nodes that will indicate information about
* the TPM status
*/
struct tpm_status {
guint32 ret;
guint32 fw_version;
guint32 status;
guint32 flashes_left;
};
#define TPM_EN_MASK 0x0001
#define TPM_OWN_MASK 0x0004
#define TPM_TYPE_MASK 0x0F00
#define TPM_1_2_MODE 0x0001
#define TPM_2_0_MODE 0x0002
#endif /* __FU_PLUGIN_DELL_H */