linux/drivers/acpi/acpi_ipmi.c

// SPDX-License-Identifier: GPL-2.0-or-later
/*
 *  acpi_ipmi.c - ACPI IPMI opregion
 *
 *  Copyright (C) 2010, 2013 Intel Corporation
 *    Author: Zhao Yakui <[email protected]>
 *            Lv Zheng <[email protected]>
 */

#include <linux/module.h>
#include <linux/acpi.h>
#include <linux/ipmi.h>
#include <linux/spinlock.h>

MODULE_AUTHOR();
MODULE_DESCRIPTION();
MODULE_LICENSE();

#define ACPI_IPMI_OK
#define ACPI_IPMI_TIMEOUT
#define ACPI_IPMI_UNKNOWN
/* the IPMI timeout is 5s */
#define IPMI_TIMEOUT
#define ACPI_IPMI_MAX_MSG_LENGTH
/* 2s should be suffient for SMI being selected */
#define ACPI_IPMI_SMI_SELECTION_TIMEOUT

struct acpi_ipmi_device {};

struct ipmi_driver_data {};

struct acpi_ipmi_msg {};

/* IPMI request/response buffer per ACPI 4.0, sec 5.5.2.4.3.2 */
struct acpi_ipmi_buffer {};

static void ipmi_register_bmc(int iface, struct device *dev);
static void ipmi_bmc_gone(int iface);
static void ipmi_msg_handler(struct ipmi_recv_msg *msg, void *user_msg_data);

static struct ipmi_driver_data driver_data =;

static struct acpi_ipmi_device *
ipmi_dev_alloc(int iface, struct device *dev, acpi_handle handle)
{}

static void ipmi_dev_release(struct acpi_ipmi_device *ipmi_device)
{}

static void ipmi_dev_release_kref(struct kref *kref)
{}

static void __ipmi_dev_kill(struct acpi_ipmi_device *ipmi_device)
{}

static struct acpi_ipmi_device *acpi_ipmi_dev_get(void)
{}

static void acpi_ipmi_dev_put(struct acpi_ipmi_device *ipmi_device)
{}

static struct acpi_ipmi_msg *ipmi_msg_alloc(void)
{}

static void ipmi_msg_release(struct acpi_ipmi_msg *tx_msg)
{}

static void ipmi_msg_release_kref(struct kref *kref)
{}

static struct acpi_ipmi_msg *acpi_ipmi_msg_get(struct acpi_ipmi_msg *tx_msg)
{}

static void acpi_ipmi_msg_put(struct acpi_ipmi_msg *tx_msg)
{}

#define IPMI_OP_RGN_NETFN(offset)
#define IPMI_OP_RGN_CMD(offset)
static int acpi_format_ipmi_request(struct acpi_ipmi_msg *tx_msg,
				    acpi_physical_address address,
				    acpi_integer *value)
{}

static void acpi_format_ipmi_response(struct acpi_ipmi_msg *msg,
				      acpi_integer *value)
{}

static void ipmi_flush_tx_msg(struct acpi_ipmi_device *ipmi)
{}

static void ipmi_cancel_tx_msg(struct acpi_ipmi_device *ipmi,
			       struct acpi_ipmi_msg *msg)
{}

static void ipmi_msg_handler(struct ipmi_recv_msg *msg, void *user_msg_data)
{}

static void ipmi_register_bmc(int iface, struct device *dev)
{}

static void ipmi_bmc_gone(int iface)
{}

/*
 * This is the IPMI opregion space handler.
 * @function: indicates the read/write. In fact as the IPMI message is driven
 * by command, only write is meaningful.
 * @address: This contains the netfn/command of IPMI request message.
 * @bits   : not used.
 * @value  : it is an in/out parameter. It points to the IPMI message buffer.
 *	     Before the IPMI message is sent, it represents the actual request
 *	     IPMI message. After the IPMI message is finished, it represents
 *	     the response IPMI message returned by IPMI command.
 * @handler_context: IPMI device context.
 */
static acpi_status
acpi_ipmi_space_handler(u32 function, acpi_physical_address address,
			u32 bits, acpi_integer *value,
			void *handler_context, void *region_context)
{}

int acpi_wait_for_acpi_ipmi(void)
{}
EXPORT_SYMBOL_GPL();

static int __init acpi_ipmi_init(void)
{}

static void __exit acpi_ipmi_exit(void)
{}

module_init();
module_exit(acpi_ipmi_exit);