/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */ /* * linux/include/linux/edd.h * Copyright (C) 2002, 2003, 2004 Dell Inc. * by Matt Domsch <[email protected]> * * structures and definitions for the int 13h, ax={41,48}h * BIOS Enhanced Disk Drive Services * This is based on the T13 group document D1572 Revision 0 (August 14 2002) * available at http://www.t13.org/docs2002/d1572r0.pdf. It is * very similar to D1484 Revision 3 http://www.t13.org/docs2002/d1484r3.pdf * * In a nutshell, arch/{i386,x86_64}/boot/setup.S populates a scratch * table in the boot_params that contains a list of BIOS-enumerated * boot devices. * In arch/{i386,x86_64}/kernel/setup.c, this information is * transferred into the edd structure, and in drivers/firmware/edd.c, that * information is used to identify BIOS boot disk. The code in setup.S * is very sensitive to the size of these structures. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License v2.0 as published by * the Free Software Foundation * * 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. * */ #ifndef _UAPI_LINUX_EDD_H #define _UAPI_LINUX_EDD_H #include <linux/types.h> #define EDDNR … #define EDDBUF … #define EDDMAXNR … #define EDDEXTSIZE … #define EDDPARMSIZE … #define CHECKEXTENSIONSPRESENT … #define GETDEVICEPARAMETERS … #define LEGACYGETDEVICEPARAMETERS … #define EDDMAGIC1 … #define EDDMAGIC2 … #define READ_SECTORS … #define EDD_MBR_SIG_OFFSET … #define EDD_MBR_SIG_BUF … #define EDD_MBR_SIG_MAX … #define EDD_MBR_SIG_NR_BUF … #ifndef __ASSEMBLY__ #define EDD_EXT_FIXED_DISK_ACCESS … #define EDD_EXT_DEVICE_LOCKING_AND_EJECTING … #define EDD_EXT_ENHANCED_DISK_DRIVE_SUPPORT … #define EDD_EXT_64BIT_EXTENSIONS … #define EDD_INFO_DMA_BOUNDARY_ERROR_TRANSPARENT … #define EDD_INFO_GEOMETRY_VALID … #define EDD_INFO_REMOVABLE … #define EDD_INFO_WRITE_VERIFY … #define EDD_INFO_MEDIA_CHANGE_NOTIFICATION … #define EDD_INFO_LOCKABLE … #define EDD_INFO_NO_MEDIA_PRESENT … #define EDD_INFO_USE_INT13_FN50 … struct edd_device_params { … } __attribute__ ((packed)); struct edd_info { … } __attribute__ ((packed)); struct edd { … }; #endif /*!__ASSEMBLY__ */ #endif /* _UAPI_LINUX_EDD_H */