1 /* 2 * This file and its contents are supplied under the terms of the 3 * Common Development and Distribution License ("CDDL"), version 1.0. 4 * You may only use this file in accordance with the terms of version 5 * 1.0 of the CDDL. 6 * 7 * A full copy of the text of the CDDL should have accompanied this 8 * source. A copy of the CDDL is also available via the Internet at 9 * http://www.illumos.org/license/CDDL. 10 */ 11 12 /* 13 * Copyright 2015 Toomas Soome <tsoome@me.com> 14 */ 15 16 #ifndef _LOADER_EMU_H 17 #define _LOADER_EMU_H 18 19 /* 20 * BootFORTH emulator interface. 21 */ 22 23 #ifdef __cplusplus 24 extern "C" { 25 #endif 26 27 /* Commands and return values; nonzero return sets command_errmsg != NULL */ 28 typedef int (bootblk_cmd_t)(int argc, char *argv[]); 29 extern char *command_errmsg; 30 extern char command_errbuf[]; /* XXX blah, length */ 31 #define CMD_OK 0 32 #define CMD_ERROR 1 33 34 /* 35 * Support for commands 36 */ 37 struct bootblk_command 38 { 39 const char *c_name; 40 const char *c_desc; 41 bootblk_cmd_t *c_fn; 42 STAILQ_ENTRY(bootblk_command) next; 43 }; 44 45 #ifdef __cplusplus 46 } 47 #endif 48 49 #endif /* _LOADER_EMU_H */ 50