1 /* 2 * Copyright 2007 Red Hat, Inc. 3 * by Peter Jones <pjones@redhat.com> 4 * Copyright 2007 IBM, Inc. 5 * by Konrad Rzeszutek <konradr@linux.vnet.ibm.com> 6 * Copyright 2008 7 * by Konrad Rzeszutek <ketuzsezr@darnok.org> 8 * 9 * This code exposes the iSCSI Boot Format Table to userland via sysfs. 10 * 11 * This program is free software; you can redistribute it and/or modify 12 * it under the terms of the GNU General Public License v2.0 as published by 13 * the Free Software Foundation 14 * 15 * This program is distributed in the hope that it will be useful, 16 * but WITHOUT ANY WARRANTY; without even the implied warranty of 17 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 18 * GNU General Public License for more details. 19 */ 20 21 #ifndef ISCSI_IBFT_H 22 #define ISCSI_IBFT_H 23 24 struct ibft_table_header { 25 char signature[4]; 26 u32 length; 27 u8 revision; 28 u8 checksum; 29 char oem_id[6]; 30 char oem_table_id[8]; 31 char reserved[24]; 32 } __attribute__((__packed__)); 33 34 /* 35 * Logical location of iSCSI Boot Format Table. 36 * If the value is NULL there is no iBFT on the machine. 37 */ 38 extern struct ibft_table_header *ibft_addr; 39 40 /* 41 * Routine used to find and reserve the iSCSI Boot Format Table. The 42 * mapped address is set in the ibft_addr variable. 43 */ 44 #ifdef CONFIG_ISCSI_IBFT_FIND 45 extern void __init reserve_ibft_region(void); 46 #else 47 static inline void reserve_ibft_region(void) { } 48 #endif 49 50 #endif /* ISCSI_IBFT_H */ 51