nkeynes@26: /** nkeynes@26: * $Id: loader.h,v 1.1 2005-12-24 08:02:14 nkeynes Exp $ nkeynes@26: * nkeynes@26: * Interface declarations for the binary loader routines (loader.c, elf.c) nkeynes@26: * nkeynes@26: * Copyright (c) 2005 Nathan Keynes. nkeynes@26: * nkeynes@26: * This program is free software; you can redistribute it and/or modify nkeynes@26: * it under the terms of the GNU General Public License as published by nkeynes@26: * the Free Software Foundation; either version 2 of the License, or nkeynes@26: * (at your option) any later version. nkeynes@26: * nkeynes@26: * This program is distributed in the hope that it will be useful, nkeynes@26: * but WITHOUT ANY WARRANTY; without even the implied warranty of nkeynes@26: * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the nkeynes@26: * GNU General Public License for more details. nkeynes@26: */ nkeynes@26: nkeynes@26: #ifndef dreamcast_loader_H nkeynes@26: #define dreamcast_loader_H 1 nkeynes@26: nkeynes@26: #include nkeynes@26: #include nkeynes@26: nkeynes@26: #ifdef __cplusplus nkeynes@26: extern "C" { nkeynes@26: #endif nkeynes@26: nkeynes@26: /** nkeynes@26: * NULL-terminated list of file extension/name pairs, nkeynes@26: * supported by the loader nkeynes@26: */ nkeynes@26: extern char *file_loader_extensions[][2]; nkeynes@26: nkeynes@26: /** nkeynes@26: * Load the CD bootstrap, aka IP.BIN. Identified by "SEGA SEGAKATANA" at nkeynes@26: * start of file. IP.BIN is loaded as-is at 8C008000. nkeynes@26: * This is mainly for testing as it's unlikely anyone would want to do this nkeynes@26: * for any other reason. nkeynes@26: * @return TRUE on success, otherwise FALSE and errno nkeynes@26: */ nkeynes@26: gboolean file_load_bootstrap( gchar *filename ); nkeynes@26: nkeynes@26: /** nkeynes@26: * Load a miscellaneous .bin file, as commonly used in demos. No magic nkeynes@26: * applies, file is loaded as is at 8C010000 nkeynes@26: */ nkeynes@26: gboolean file_load_binary( gchar *filename ); nkeynes@26: nkeynes@26: /** nkeynes@26: * Load a "Self Boot Inducer" .sbi file, also commonly used to package nkeynes@26: * demos. (Actually a ZIP file with a predefined structure nkeynes@26: */ nkeynes@26: gboolean file_load_sbi( gchar *filename ); nkeynes@26: nkeynes@26: /** nkeynes@26: * Load an ELF executable binary file. Origin is file-dependent. nkeynes@26: */ nkeynes@26: gboolean file_load_elf( gchar *filename ); nkeynes@26: nkeynes@26: /** nkeynes@26: * Load any of the above file types, using the appropriate magic to determine nkeynes@26: * which is actually applicable nkeynes@26: */ nkeynes@26: gboolean file_load_magic( gchar *filename ); nkeynes@26: nkeynes@26: #ifdef __cplusplus nkeynes@26: } nkeynes@26: #endif nkeynes@26: nkeynes@26: #endif /* !dream_loader_H */ nkeynes@26: