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