123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157 |
- /*
- * GRUB -- GRand Unified Bootloader
- * Copyright (C) 2008,2009 Free Software Foundation, Inc.
- *
- * GRUB 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 3 of the License, or
- * (at your option) any later version.
- *
- * GRUB 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 GRUB. If not, see <http://www.gnu.org/licenses/>.
- */
- /* $NetBSD: bootinfo.h,v 1.16 2009/08/24 02:15:46 jmcneill Exp $ */
- /*
- * Copyright (c) 1997
- * Matthias Drochner. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
- * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
- * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
- * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- */
- #ifndef GRUB_NETBSD_BOOTINFO_CPU_HEADER
- #define GRUB_NETBSD_BOOTINFO_CPU_HEADER 1
- #include <grub/types.h>
- #define NETBSD_BTINFO_BOOTPATH 0
- #define NETBSD_BTINFO_ROOTDEVICE 1
- #define NETBSD_BTINFO_BOOTDISK 3
- #define NETBSD_BTINFO_CONSOLE 6
- #define NETBSD_BTINFO_SYMTAB 8
- #define NETBSD_BTINFO_MEMMAP 9
- #define NETBSD_BTINFO_BOOTWEDGE 10
- #define NETBSD_BTINFO_MODULES 11
- #define NETBSD_BTINFO_FRAMEBUF 12
- #define NETBSD_BTINFO_USERCONFCOMMANDS 13
- #define NETBSD_BTINFO_EFI 14
- struct grub_netbsd_bootinfo
- {
- grub_uint32_t bi_count;
- grub_uint32_t bi_data[0];
- };
- struct grub_netbsd_btinfo_common
- {
- grub_uint32_t len;
- grub_uint32_t type;
- };
- #define GRUB_NETBSD_MAX_BOOTPATH_LEN 80
- struct grub_netbsd_btinfo_bootdisk
- {
- grub_uint32_t labelsector; /* label valid if != 0xffffffff */
- struct
- {
- grub_uint16_t type, checksum;
- char packname[16];
- } label;
- grub_uint32_t biosdev;
- grub_uint32_t partition;
- };
- struct grub_netbsd_btinfo_bootwedge {
- grub_uint32_t biosdev;
- grub_disk_addr_t startblk;
- grub_uint64_t nblks;
- grub_disk_addr_t matchblk;
- grub_uint64_t matchnblks;
- grub_uint8_t matchhash[16]; /* MD5 hash */
- } GRUB_PACKED;
- struct grub_netbsd_btinfo_symtab
- {
- grub_uint32_t nsyms;
- grub_uint32_t ssyms;
- grub_uint32_t esyms;
- };
- struct grub_netbsd_btinfo_serial
- {
- char devname[16];
- grub_uint32_t addr;
- grub_uint32_t speed;
- };
- struct grub_netbsd_btinfo_modules
- {
- grub_uint32_t num;
- grub_uint32_t last_addr;
- struct grub_netbsd_btinfo_module
- {
- char name[80];
- #define GRUB_NETBSD_MODULE_RAW 0
- #define GRUB_NETBSD_MODULE_ELF 1
- grub_uint32_t type;
- grub_uint32_t size;
- grub_uint32_t addr;
- } mods[0];
- };
- struct grub_netbsd_btinfo_framebuf
- {
- grub_uint64_t fbaddr;
- grub_uint32_t flags;
- grub_uint32_t width;
- grub_uint32_t height;
- grub_uint16_t pitch;
- grub_uint8_t bpp;
- grub_uint8_t red_mask_size;
- grub_uint8_t green_mask_size;
- grub_uint8_t blue_mask_size;
- grub_uint8_t red_field_pos;
- grub_uint8_t green_field_pos;
- grub_uint8_t blue_field_pos;
- grub_uint8_t reserved[16];
- };
- #define GRUB_NETBSD_MAX_ROOTDEVICE_LEN 16
- struct grub_netbsd_btinfo_efi
- {
- void *pa_systbl; /* Physical address of the EFI System Table */
- };
- #endif
|