diff options
Diffstat (limited to 'qemu/roms/ipxe/src/include/ipxe/linux.h')
-rw-r--r-- | qemu/roms/ipxe/src/include/ipxe/linux.h | 152 |
1 files changed, 0 insertions, 152 deletions
diff --git a/qemu/roms/ipxe/src/include/ipxe/linux.h b/qemu/roms/ipxe/src/include/ipxe/linux.h deleted file mode 100644 index a01ace3de..000000000 --- a/qemu/roms/ipxe/src/include/ipxe/linux.h +++ /dev/null @@ -1,152 +0,0 @@ -/* - * Copyright (C) 2010 Piotr JaroszyĆski <p.jaroszynski@gmail.com> - * - * 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 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 St, Fifth Floor, Boston, MA 02110-1301 USA. - */ - -#ifndef _IPXE_LINUX_H -#define _IPXE_LINUX_H - -FILE_LICENCE(GPL2_OR_LATER); - -/** @file - * - * Linux devices, drivers and device requests. - */ - -#include <ipxe/list.h> -#include <ipxe/device.h> -#include <ipxe/settings.h> - -/** - * Convert a Linux error number to an iPXE status code - * - * @v errno Linux error number - * @ret rc iPXE status code (before negation) - */ -#define ELINUX( errno ) EPLATFORM ( EINFO_EPLATFORM, errno ) - -/** A linux device */ -struct linux_device { - /** Generic device */ - struct device dev; - /** Driver that's handling the device */ - struct linux_driver *driver; - /** Private data used by drivers */ - void *priv; -}; - -struct linux_device_request; - -/** A linux driver */ -struct linux_driver { - /** Name */ - char *name; - /** Probe function */ - int (*probe)(struct linux_device *device, struct linux_device_request *request); - /** Remove function */ - void (*remove)(struct linux_device *device); - /** Can the driver probe any more devices? */ - int can_probe; -}; - -/** Linux driver table */ -#define LINUX_DRIVERS __table(struct linux_driver, "linux_drivers") - -/** Declare a Linux driver */ -#define __linux_driver __table_entry(LINUX_DRIVERS, 01) - -/** - * Set linux device driver-private data - * - * @v device Linux device - * @v priv Private data - */ -static inline void linux_set_drvdata(struct linux_device * device, void *priv) -{ - device->priv = priv; -} - -/** - * Get linux device driver-private data - * - * @v device Linux device - * @ret priv Private data - */ -static inline void *linux_get_drvdata(struct linux_device *device) -{ - return device->priv; -} - -/** - * A device request. - * - * To be created and filled by the UI code. - */ -struct linux_device_request { - /** Driver name. Compared to the linux drivers' names */ - char *driver; - /** List node */ - struct list_head list; - /** List of settings */ - struct list_head settings; -}; - -/** A device request setting */ -struct linux_setting { - /** Name */ - char *name; - /** Value */ - char *value; - /** Was the setting already applied? */ - int applied; - /** List node */ - struct list_head list; -}; - -/** - * List of requested devices. - * - * Filled by the UI code. Linux root_driver walks over this list looking for an - * appropriate driver to handle each request by matching the driver's name. - */ -extern struct list_head linux_device_requests; - -/** - * List of global settings to apply. - * - * Filled by the UI code. Linux root_driver applies these settings. - */ -extern struct list_head linux_global_settings; - -/** - * Look for the last occurrence of a setting with the specified name - * - * @v name Name of the setting to look for - * @v settings List of the settings to look through - */ -struct linux_setting *linux_find_setting(char *name, struct list_head *settings); - -/** - * Apply a list of linux settings to a settings block - * - * @v new_settings List of linux_setting's to apply - * @v settings_block Settings block to apply the settings to - * @ret rc 0 on success - */ -extern void linux_apply_settings(struct list_head *new_settings, struct settings *settings_block); - - -#endif /* _IPXE_LINUX_H */ |