linux/drivers/firmware/google/coreboot_table.h

/* SPDX-License-Identifier: GPL-2.0-only */
/*
 * coreboot_table.h
 *
 * Internal header for coreboot table access.
 *
 * Copyright 2014 Gerd Hoffmann <[email protected]>
 * Copyright 2017 Google Inc.
 * Copyright 2017 Samuel Holland <[email protected]>
 */

#ifndef __COREBOOT_TABLE_H
#define __COREBOOT_TABLE_H

#include <linux/device.h>
#include <linux/mod_devicetable.h>

/* Coreboot table header structure */
struct coreboot_table_header {};

/* List of coreboot entry structures that is used */
/* Generic */
struct coreboot_table_entry {};

/* Points to a CBMEM entry */
struct lb_cbmem_ref {};

#define LB_TAG_CBMEM_ENTRY

/* Corresponds to LB_TAG_CBMEM_ENTRY */
struct lb_cbmem_entry {};

/* Describes framebuffer setup by coreboot */
struct lb_framebuffer {};

/* A device, additionally with information from coreboot. */
struct coreboot_device {};

static inline struct coreboot_device *dev_to_coreboot_device(struct device *dev)
{}

/* A driver for handling devices described in coreboot tables. */
struct coreboot_driver {};

/* use a macro to avoid include chaining to get THIS_MODULE */
#define coreboot_driver_register(driver)
/* Register a driver that uses the data from a coreboot table. */
int __coreboot_driver_register(struct coreboot_driver *driver,
			       struct module *owner);

/* Unregister a driver that uses the data from a coreboot table. */
void coreboot_driver_unregister(struct coreboot_driver *driver);

/* module_coreboot_driver() - Helper macro for drivers that don't do
 * anything special in module init/exit.  This eliminates a lot of
 * boilerplate.  Each module may only use this macro once, and
 * calling it replaces module_init() and module_exit()
 */
#define module_coreboot_driver(__coreboot_driver)

#endif /* __COREBOOT_TABLE_H */