Annotation of Gnu-Mach/include/mach/boot.h, revision 1.1.1.2

1.1       root        1: /* 
                      2:  * Copyright (c) 1994 The University of Utah and
                      3:  * the Computer Systems Laboratory at the University of Utah (CSL).
                      4:  * All rights reserved.
                      5:  *
                      6:  * Permission to use, copy, modify and distribute this software is hereby
                      7:  * granted provided that (1) source code retains these copyright, permission,
                      8:  * and disclaimer notices, and (2) redistributions including binaries
                      9:  * reproduce the notices in supporting documentation, and (3) all advertising
                     10:  * materials mentioning features or use of this software display the following
                     11:  * acknowledgement: ``This product includes software developed by the
                     12:  * Computer Systems Laboratory at the University of Utah.''
                     13:  *
                     14:  * THE UNIVERSITY OF UTAH AND CSL ALLOW FREE USE OF THIS SOFTWARE IN ITS "AS
                     15:  * IS" CONDITION.  THE UNIVERSITY OF UTAH AND CSL DISCLAIM ANY LIABILITY OF
                     16:  * ANY KIND FOR ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
                     17:  *
                     18:  * CSL requests users of this software to return to [email protected] any
                     19:  * improvements that they make and grant CSL redistribution rights.
                     20:  *
                     21:  *      Author: Bryan Ford, University of Utah CSL
                     22:  */
                     23: #ifndef _MACH_BOOT_
                     24: #define _MACH_BOOT_
                     25: 
                     26: #include <mach/machine/boot.h>
                     27: 
1.1.1.2 ! root       28: #ifndef __ASSEMBLER__
1.1       root       29: 
                     30: #include <mach/machine/vm_types.h>
                     31: 
                     32: struct boot_image_info
                     33: {
                     34:        /* First of the chain of boot modules in the boot image.  */
                     35:        struct boot_module *first_bmod;
                     36: 
                     37:        /* List of rendezvous points:
                     38:           starts out 0; and bmods can add nodes as needed.  */
                     39:        struct boot_rendezvous *first_rzv;
                     40: 
                     41:        /* These register the total virtual address extent of the boot image.  */
                     42:        vm_offset_t start, end;
                     43: 
                     44:        /* Machine-dependent boot information.  */
                     45:        struct machine_boot_image_info mboot;
                     46: };
                     47: 
                     48: struct boot_module
                     49: {
                     50:        int magic;
                     51:        int (*init)(struct boot_image_info *bii);
                     52:        vm_offset_t text;
                     53:        vm_offset_t etext;
                     54:        vm_offset_t data;
                     55:        vm_offset_t edata;
                     56:        vm_offset_t bss;
                     57:        vm_offset_t ebss;
                     58: };
                     59: #define BMOD_VALID(bmod) ((bmod)->magic == BMOD_MAGIC)
                     60: #define BMOD_NEXT(bmod) ((struct boot_module*)((bmod)->edata))
                     61: 
                     62: struct boot_rendezvous
                     63: {
                     64:        struct boot_rendezvous *next;
                     65:        int code;
                     66: };
                     67: 
1.1.1.2 ! root       68: #endif !__ASSEMBLER__
1.1       root       69: 
                     70: 
                     71: /* This is the magic value that must appear in boot_module.magic.  */
                     72: #define BMOD_MAGIC             0x424d4f44      /* 'BMOD' */
                     73: 
                     74: 
                     75: /* Following are the codes for boot_rendezvous.code.  */
                     76: 
                     77: /* This rendezvous is used for choosing a microkernel to start.
                     78:    XX not used yet  */
                     79: #define BRZV_KERNEL    'K'
                     80: 
                     81: /* Once the microkernel is fully initialized,
                     82:    it starts one or more bootstrap services...  */
                     83: #define BRZV_BOOTSTRAP 'B'
                     84: 
                     85: /* The bootstrap services might need other OS-dependent data,
                     86:    such as initial programs to run, filesystem snapshots, etc.
                     87:    These generic chunks of data are packaged up by the microkernel
                     88:    and provided to the bootstrap services upon request.
                     89:    XX When can they be deallocated?  */
                     90: #define BRZV_DATA      'D'
                     91: 
                     92: 
                     93: #endif _MACH_BOOT_

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.