1*db2b0adeStakemura /* $NetBSD: pbsdboot.h,v 1.1.1.1 1999/09/16 12:23:30 takemura Exp $ */ 2*db2b0adeStakemura 3*db2b0adeStakemura /*- 4*db2b0adeStakemura * Copyright (c) 1999 Shin Takemura. 5*db2b0adeStakemura * All rights reserved. 6*db2b0adeStakemura * 7*db2b0adeStakemura * This software is part of the PocketBSD. 8*db2b0adeStakemura * 9*db2b0adeStakemura * Redistribution and use in source and binary forms, with or without 10*db2b0adeStakemura * modification, are permitted provided that the following conditions 11*db2b0adeStakemura * are met: 12*db2b0adeStakemura * 1. Redistributions of source code must retain the above copyright 13*db2b0adeStakemura * notice, this list of conditions and the following disclaimer. 14*db2b0adeStakemura * 2. Redistributions in binary form must reproduce the above copyright 15*db2b0adeStakemura * notice, this list of conditions and the following disclaimer in the 16*db2b0adeStakemura * documentation and/or other materials provided with the distribution. 17*db2b0adeStakemura * 3. All advertising materials mentioning features or use of this software 18*db2b0adeStakemura * must display the following acknowledgement: 19*db2b0adeStakemura * This product includes software developed by the PocketBSD project 20*db2b0adeStakemura * and its contributors. 21*db2b0adeStakemura * 4. Neither the name of the project nor the names of its contributors 22*db2b0adeStakemura * may be used to endorse or promote products derived from this software 23*db2b0adeStakemura * without specific prior written permission. 24*db2b0adeStakemura * 25*db2b0adeStakemura * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND 26*db2b0adeStakemura * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 27*db2b0adeStakemura * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 28*db2b0adeStakemura * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE 29*db2b0adeStakemura * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 30*db2b0adeStakemura * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 31*db2b0adeStakemura * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 32*db2b0adeStakemura * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 33*db2b0adeStakemura * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 34*db2b0adeStakemura * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 35*db2b0adeStakemura * SUCH DAMAGE. 36*db2b0adeStakemura * 37*db2b0adeStakemura */ 38*db2b0adeStakemura #define STANDALONE_WINDOWS_SIDE 39*db2b0adeStakemura #include <stand.h> 40*db2b0adeStakemura #include <machine/bootinfo.h> 41*db2b0adeStakemura #include <machine/platid.h> 42*db2b0adeStakemura 43*db2b0adeStakemura extern TCHAR szAppName[ ]; 44*db2b0adeStakemura #define whoami szAppName 45*db2b0adeStakemura #define PREFNAME TEXT("pbsdboot.ini") 46*db2b0adeStakemura #define PATHBUFLEN 200 47*db2b0adeStakemura 48*db2b0adeStakemura 49*db2b0adeStakemura /* 50*db2b0adeStakemura * For some reason, we can't include Windows' header files. 51*db2b0adeStakemura * So we must declare here. 52*db2b0adeStakemura */ 53*db2b0adeStakemura double wcstod(const wchar_t *, wchar_t **); 54*db2b0adeStakemura long wcstol(const wchar_t *, wchar_t **, int); 55*db2b0adeStakemura unsigned long wcstoul(const wchar_t *, wchar_t **, int); 56*db2b0adeStakemura BOOL VirtualCopy(LPVOID, LPVOID, DWORD, DWORD); 57*db2b0adeStakemura 58*db2b0adeStakemura /* 59*db2b0adeStakemura * structure declarations 60*db2b0adeStakemura */ 61*db2b0adeStakemura struct map_s { 62*db2b0adeStakemura caddr_t entry; 63*db2b0adeStakemura caddr_t base; 64*db2b0adeStakemura int pagesize; 65*db2b0adeStakemura int leafsize; 66*db2b0adeStakemura int nleaves; 67*db2b0adeStakemura caddr_t arg0; 68*db2b0adeStakemura caddr_t arg1; 69*db2b0adeStakemura caddr_t arg2; 70*db2b0adeStakemura caddr_t arg3; 71*db2b0adeStakemura caddr_t *leaf[32]; 72*db2b0adeStakemura }; 73*db2b0adeStakemura 74*db2b0adeStakemura struct preference_s { 75*db2b0adeStakemura int setting_idx; 76*db2b0adeStakemura int fb_type; 77*db2b0adeStakemura int fb_width, fb_height, fb_linebytes; 78*db2b0adeStakemura long fb_addr; 79*db2b0adeStakemura unsigned long platid_cpu, platid_machine; 80*db2b0adeStakemura TCHAR setting_name[PATHBUFLEN]; 81*db2b0adeStakemura TCHAR kernel_name[PATHBUFLEN]; 82*db2b0adeStakemura TCHAR options[PATHBUFLEN]; 83*db2b0adeStakemura BOOL check_last_chance; 84*db2b0adeStakemura BOOL load_debug_info; 85*db2b0adeStakemura BOOL serial_port; 86*db2b0adeStakemura }; 87*db2b0adeStakemura extern struct preference_s pref; 88*db2b0adeStakemura extern TCHAR* where_pref_load_from; 89*db2b0adeStakemura 90*db2b0adeStakemura /* 91*db2b0adeStakemura * main.c 92*db2b0adeStakemura */ 93*db2b0adeStakemura BOOL CheckCancel(int progress); 94*db2b0adeStakemura extern HWND hWndMain; 95*db2b0adeStakemura 96*db2b0adeStakemura /* 97*db2b0adeStakemura * layout.c 98*db2b0adeStakemura */ 99*db2b0adeStakemura int CreateMainWindow(HINSTANCE hInstance, HWND hWnd, LPCTSTR name, int cmdbar_height); 100*db2b0adeStakemura 101*db2b0adeStakemura /* 102*db2b0adeStakemura * vmem.c 103*db2b0adeStakemura */ 104*db2b0adeStakemura int vmem_exec(caddr_t entry, int argc, char *argv[], struct bootinfo *bi); 105*db2b0adeStakemura DWORD getpagesize(void); 106*db2b0adeStakemura caddr_t vmem_get(caddr_t phys_addr, int *length); 107*db2b0adeStakemura int vmem_init(caddr_t start, caddr_t end); 108*db2b0adeStakemura void vmem_dump_map(void); 109*db2b0adeStakemura caddr_t vtophysaddr(caddr_t page); 110*db2b0adeStakemura void vmem_free(void); 111*db2b0adeStakemura caddr_t vmem_alloc(void); 112*db2b0adeStakemura 113*db2b0adeStakemura /* 114*db2b0adeStakemura * elf.c 115*db2b0adeStakemura */ 116*db2b0adeStakemura int getinfo(int fd, caddr_t *start, caddr_t *end); 117*db2b0adeStakemura int loadfile(int fd, caddr_t *entry); 118*db2b0adeStakemura 119*db2b0adeStakemura /* 120*db2b0adeStakemura * startprog.c 121*db2b0adeStakemura */ 122*db2b0adeStakemura int startprog(caddr_t map); 123*db2b0adeStakemura 124*db2b0adeStakemura /* 125*db2b0adeStakemura * pbsdboot.c 126*db2b0adeStakemura */ 127*db2b0adeStakemura int pbsdboot(TCHAR*, int argc, char *argv[], struct bootinfo *bi); 128*db2b0adeStakemura 129*db2b0adeStakemura /* 130*db2b0adeStakemura * print.c 131*db2b0adeStakemura */ 132*db2b0adeStakemura int debug_printf(LPWSTR lpszFmt, ...); 133*db2b0adeStakemura int msg_printf(UINT type, LPWSTR caption, LPWSTR lpszFmt, ...); 134*db2b0adeStakemura 135*db2b0adeStakemura #define MSG_ERROR (MB_OK | MB_ICONERROR) 136*db2b0adeStakemura #define MSG_INFO (MB_OK | MB_ICONINFORMATION) 137*db2b0adeStakemura 138*db2b0adeStakemura /* 139*db2b0adeStakemura * disptest.c 140*db2b0adeStakemura */ 141*db2b0adeStakemura void hardware_test(void); 142*db2b0adeStakemura 143*db2b0adeStakemura 144*db2b0adeStakemura /* 145*db2b0adeStakemura * preference.c 146*db2b0adeStakemura */ 147*db2b0adeStakemura void pref_init(struct preference_s* pref); 148*db2b0adeStakemura void pref_dump(struct preference_s* pref); 149*db2b0adeStakemura int pref_read(TCHAR* filename, struct preference_s* pref); 150*db2b0adeStakemura int pref_load(TCHAR* load_path[], int pathlen); 151*db2b0adeStakemura int pref_write(TCHAR* filename, struct preference_s* buf); 152