boot.h

Go to the documentation of this file.
00001 /*
00002  * Copyright (C) 2006 Martin Decky
00003  * All rights reserved.
00004  *
00005  * Redistribution and use in source and binary forms, with or without
00006  * modification, are permitted provided that the following conditions
00007  * are met:
00008  *
00009  * - Redistributions of source code must retain the above copyright
00010  *   notice, this list of conditions and the following disclaimer.
00011  * - Redistributions in binary form must reproduce the above copyright
00012  *   notice, this list of conditions and the following disclaimer in the
00013  *   documentation and/or other materials provided with the distribution.
00014  * - The name of the author may not be used to endorse or promote products
00015  *   derived from this software without specific prior written permission.
00016  *
00017  * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
00018  * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
00019  * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
00020  * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
00021  * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
00022  * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
00023  * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
00024  * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
00025  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
00026  * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
00027  */
00028 
00035 #ifndef __ppc32_BOOT_H__
00036 #define __ppc32_BOOT_H__
00037 
00038 #define BOOT_OFFSET             0x8000
00039 
00040 /* Temporary stack size for boot process */
00041 #define TEMP_STACK_SIZE 0x100
00042 
00043 #define TASKMAP_MAX_RECORDS 32
00044 #define MEMMAP_MAX_RECORDS 32
00045 
00046 #ifndef __ASM__
00047 
00048 #include <arch/types.h>
00049 
00050 typedef struct {
00051         __address addr;
00052         __u32 size;
00053 } utask_t;
00054 
00055 typedef struct {
00056         __u32 count;
00057         utask_t tasks[TASKMAP_MAX_RECORDS];
00058 } taskmap_t;
00059 
00060 typedef struct {
00061         __address start;
00062         __u32 size;
00063 } memzone_t;
00064 
00065 typedef struct {
00066         __u32 total;
00067         __u32 count;
00068         memzone_t zones[MEMMAP_MAX_RECORDS];
00069 } memmap_t;
00070 
00071 typedef struct {
00072         __address addr;
00073         unsigned int width;
00074         unsigned int height;
00075         unsigned int bpp;
00076         unsigned int scanline;
00077 } screen_t;
00078 
00079 typedef struct {
00080         __address addr;
00081         unsigned int size;
00082 } keyboard_t;
00083 
00084 typedef struct {
00085         memmap_t memmap;
00086         taskmap_t taskmap;
00087         screen_t screen;
00088         keyboard_t keyboard;
00089 } bootinfo_t;
00090 
00091 extern bootinfo_t bootinfo;
00092 
00093 #endif
00094 
00095 #endif
00096 

Generated on Sun Jun 18 17:17:04 2006 for HelenOS Kernel (ppc32) by  doxygen 1.4.6