The Design and Implementation of the FreeBSD Operating System, Second Edition
Now available: The Design and Implementation of the FreeBSD Operating System (Second Edition)


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]

FreeBSD/Linux Kernel Cross Reference
sys/mips/include/bootinfo.h

Version: -  FREEBSD  -  FREEBSD-13-STABLE  -  FREEBSD-13-0  -  FREEBSD-12-STABLE  -  FREEBSD-12-0  -  FREEBSD-11-STABLE  -  FREEBSD-11-0  -  FREEBSD-10-STABLE  -  FREEBSD-10-0  -  FREEBSD-9-STABLE  -  FREEBSD-9-0  -  FREEBSD-8-STABLE  -  FREEBSD-8-0  -  FREEBSD-7-STABLE  -  FREEBSD-7-0  -  FREEBSD-6-STABLE  -  FREEBSD-6-0  -  FREEBSD-5-STABLE  -  FREEBSD-5-0  -  FREEBSD-4-STABLE  -  FREEBSD-3-STABLE  -  FREEBSD22  -  l41  -  OPENBSD  -  linux-2.6  -  MK84  -  PLAN9  -  xnu-8792 
SearchContext: -  none  -  3  -  10 

    1 /*-
    2  * Copyright (C) 1994 by Rodney W. Grimes, Milwaukie, Oregon  97222
    3  * All rights reserved.
    4  *
    5  * Redistribution and use in source and binary forms, with or without
    6  * modification, are permitted provided that the following conditions
    7  * are met:
    8  * 1. Redistributions of source code must retain the above copyright
    9  *    notice, this list of conditions and the following disclaimer as
   10  *    the first lines of this file unmodified.
   11  * 2. Redistributions in binary form must reproduce the above copyright
   12  *    notice, this list of conditions and the following disclaimer in the
   13  *    documentation and/or other materials provided with the distribution.
   14  * 3. All advertising materials mentioning features or use of this software
   15  *    must display the following acknowledgement:
   16  *      This product includes software developed by Rodney W. Grimes.
   17  * 4. The name of the author may not be used to endorse or promote products
   18  *    derived from this software without specific prior written permission.
   19  *
   20  * THIS SOFTWARE IS PROVIDED BY RODNEY W. GRIMES ``AS IS'' AND
   21  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
   22  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
   23  * ARE DISCLAIMED.  IN NO EVENT SHALL RODNEY W. GRIMES BE LIABLE
   24  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
   25  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
   26  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
   27  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
   28  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
   29  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
   30  * SUCH DAMAGE.
   31  *
   32  * $FreeBSD: releng/9.0/sys/mips/include/bootinfo.h 202175 2010-01-12 21:36:08Z imp $
   33  */
   34 
   35 #ifndef _MACHINE_BOOTINFO_H_
   36 #define _MACHINE_BOOTINFO_H_
   37 
   38 /* Only change the version number if you break compatibility. */
   39 #define BOOTINFO_VERSION        1
   40 
   41 #define N_BIOS_GEOM             8
   42 
   43 #define MIPS_BOOTINFO_MAGIC     0xCDEACDEA
   44 
   45 /* Extended OLV bootinfo struct.  The data area includes a list of named
   46    OIDs and associated data values.  The format is:
   47 
   48    NUL-terminated dotted-string name
   49    2 byte length, in big-endian order
   50    LENGTH bytes of data
   51    [...]
   52 
   53    The two magic fields are used to guard against other bootloaders that
   54    may place other sorts of data here.  */
   55 
   56 struct bootinfo_ext {
   57 #define BOOTINFO_EXT_MAGIC1     0x55aa00ff
   58         unsigned int            magic1;
   59         unsigned char           *data;
   60         unsigned int            size;
   61 #define BOOTINFO_EXT_MAGIC2     0x32719187
   62         unsigned int            magic2;
   63 };
   64 
   65 #define BOOTINFO_EXT_MAX_SIZE   16384
   66 
   67 /*
   68  * A zero bootinfo field often means that there is no info available.
   69  * Flags are used to indicate the validity of fields where zero is a
   70  * normal value.
   71  */
   72 struct bootinfo {
   73         u_int32_t       bi_version;
   74         u_int32_t       bi_kernelname;          /* represents a char * */
   75         u_int32_t       bi_nfs_diskless;        /* struct nfs_diskless * */
   76                                 /* End of fields that are always present. */
   77 #define bi_endcommon    bi_n_bios_used
   78         u_int32_t       bi_n_bios_used;
   79         u_int32_t       bi_bios_geom[N_BIOS_GEOM];
   80         u_int32_t       bi_size;
   81         u_int8_t        bi_memsizes_valid;
   82         u_int8_t        bi_bios_dev;            /* bootdev BIOS unit number */
   83         u_int8_t        bi_pad[2];
   84         u_int32_t       bi_basemem;
   85         u_int32_t       bi_extmem;
   86         u_int32_t       bi_symtab;              /* struct symtab * */
   87         u_int32_t       bi_esymtab;             /* struct symtab * */
   88                                 /* Items below only from advanced bootloader */
   89         u_int32_t       bi_kernend;             /* end of kernel space */
   90         u_int32_t       bi_envp;                /* environment */
   91         u_int32_t       bi_modulep;             /* preloaded modules */
   92 };
   93 
   94 #ifdef _KERNEL
   95 extern struct bootinfo  bootinfo;
   96 #endif
   97 
   98 /*
   99  * Constants for converting boot-style device number to type,
  100  * adaptor (uba, mba, etc), unit number and partition number.
  101  * Type (== major device number) is in the low byte
  102  * for backward compatibility.  Except for that of the "magic
  103  * number", each mask applies to the shifted value.
  104  * Format:
  105  *       (4) (4) (4) (4)  (8)     (8)
  106  *      --------------------------------
  107  *      |MA | AD| CT| UN| PART  | TYPE |
  108  *      --------------------------------
  109  */
  110 #define B_ADAPTORSHIFT          24
  111 #define B_ADAPTORMASK           0x0f
  112 #define B_ADAPTOR(val)          (((val) >> B_ADAPTORSHIFT) & B_ADAPTORMASK)
  113 #define B_CONTROLLERSHIFT       20
  114 #define B_CONTROLLERMASK        0xf
  115 #define B_CONTROLLER(val)       (((val)>>B_CONTROLLERSHIFT) & B_CONTROLLERMASK)
  116 #define B_SLICESHIFT            20
  117 #define B_SLICEMASK             0xff
  118 #define B_SLICE(val)            (((val)>>B_SLICESHIFT) & B_SLICEMASK)
  119 #define B_UNITSHIFT             16
  120 #define B_UNITMASK              0xf
  121 #define B_UNIT(val)             (((val) >> B_UNITSHIFT) & B_UNITMASK)
  122 #define B_PARTITIONSHIFT        8
  123 #define B_PARTITIONMASK         0xff
  124 #define B_PARTITION(val)        (((val) >> B_PARTITIONSHIFT) & B_PARTITIONMASK)
  125 #define B_TYPESHIFT             0
  126 #define B_TYPEMASK              0xff
  127 #define B_TYPE(val)             (((val) >> B_TYPESHIFT) & B_TYPEMASK)
  128 
  129 #define B_MAGICMASK     0xf0000000
  130 #define B_DEVMAGIC      0xa0000000
  131 
  132 #define MAKEBOOTDEV(type, adaptor, controller, unit, partition)         \
  133         (((type) << B_TYPESHIFT) | ((adaptor) << B_ADAPTORSHIFT) |      \
  134         ((controller) << B_CONTROLLERSHIFT) | ((unit) << B_UNITSHIFT) | \
  135         ((partition) << B_PARTITIONSHIFT) | B_DEVMAGIC)
  136 
  137 #define BASE_SLICE              2
  138 #define COMPATIBILITY_SLICE     0
  139 #define MAX_SLICES              32
  140 #define WHOLE_DISK_SLICE        1
  141 
  142 #endif  /* !_MACHINE_BOOTINFO_H_ */

Cache object: 851ea693ec865d2deecd698cb707be7f


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]


This page is part of the FreeBSD/Linux Linux Kernel Cross-Reference, and was automatically generated using a modified version of the LXR engine.