summaryrefslogtreecommitdiffstats
path: root/src/include/callbacks.h
diff options
context:
space:
mode:
authorMichael Brown2005-03-08 19:53:11 +0100
committerMichael Brown2005-03-08 19:53:11 +0100
commit3d6123e69ab879c72ff489afc5bf93ef0b7a94ce (patch)
tree9f3277569153a550fa8d81ebd61bd88f266eb8da /src/include/callbacks.h
downloadipxe-3d6123e69ab879c72ff489afc5bf93ef0b7a94ce.tar.gz
ipxe-3d6123e69ab879c72ff489afc5bf93ef0b7a94ce.tar.xz
ipxe-3d6123e69ab879c72ff489afc5bf93ef0b7a94ce.zip
Initial revision
Diffstat (limited to 'src/include/callbacks.h')
-rw-r--r--src/include/callbacks.h45
1 files changed, 45 insertions, 0 deletions
diff --git a/src/include/callbacks.h b/src/include/callbacks.h
new file mode 100644
index 000000000..2a7547850
--- /dev/null
+++ b/src/include/callbacks.h
@@ -0,0 +1,45 @@
+/* Callout/callback interface for Etherboot
+ *
+ * This file provides the mechanisms for making calls from Etherboot
+ * to external programs and vice-versa.
+ *
+ * Initial version by Michael Brown <mbrown@fensystems.co.uk>, January 2004.
+ *
+ * $Id$
+ */
+
+#ifndef CALLBACKS_H
+#define CALLBACKS_H
+
+/* Opcodes and flags for in_call()
+ */
+#define EB_OPCODE(x) ( (x) & 0xffff )
+#define EB_OPCODE_MAIN (0x0000)
+#define EB_OPCODE_CHECK (0x6948) /* 'Hi' */
+#define EB_OPCODE_PXE (0x7850) /* 'Px' */
+#define EB_OPCODE_PXENV (0x7650) /* 'Pv' */
+#define EB_USE_INTERNAL_STACK ( 1 << 16 )
+#define EB_CALL_FROM_REAL_MODE ( 1 << 17 ) /* i386 only */
+#define EB_SKIP_OPCODE ( 1 << 18 )
+
+/* Standard return codes
+ */
+#define EB_CHECK_RESULT (0x6f486948) /* 'HiHo' */
+
+/* Include arch-specific callbacks bits
+ */
+#include "callbacks_arch.h"
+
+/* Skip the definitions that won't make sense to the assembler */
+#ifndef ASSEMBLY
+
+#include <stdarg.h>
+
+#ifndef in_call_data_t
+typedef struct {} empty_struct_t;
+#define in_call_data_t empty_struct_t
+#endif
+
+#endif /* ASSEMBLY */
+
+#endif /* CALLBACKS_H */