summaryrefslogtreecommitdiff
path: root/usr/src/uts/sun4/sys/fcode.h
diff options
context:
space:
mode:
authordhain <none@none>2005-10-26 16:23:44 -0700
committerdhain <none@none>2005-10-26 16:23:44 -0700
commit6d22b73346a02763769401e9f28b596670cc3d16 (patch)
treee7d7f39c1e781bfcbe0eabe6de0780f2eca0205c /usr/src/uts/sun4/sys/fcode.h
parent595aa6e48d8a5812a3a42afa5f63ee6f772c7f4e (diff)
downloadillumos-gate-6d22b73346a02763769401e9f28b596670cc3d16.tar.gz
5107846 DR hangs on fcode_interpreter() running parallel DR.
5043347 PANIC with efcode probing of bad I/O hw in slot;
Diffstat (limited to 'usr/src/uts/sun4/sys/fcode.h')
-rw-r--r--usr/src/uts/sun4/sys/fcode.h25
1 files changed, 17 insertions, 8 deletions
diff --git a/usr/src/uts/sun4/sys/fcode.h b/usr/src/uts/sun4/sys/fcode.h
index 30d83bee1a..280bf6e94e 100644
--- a/usr/src/uts/sun4/sys/fcode.h
+++ b/usr/src/uts/sun4/sys/fcode.h
@@ -20,7 +20,7 @@
* CDDL HEADER END
*/
/*
- * Copyright 2003 Sun Microsystems, Inc. All rights reserved.
+ * Copyright 2005 Sun Microsystems, Inc. All rights reserved.
* Use is subject to license terms.
*/
@@ -71,6 +71,7 @@ extern "C" {
#define FC_VALIDATE (FCIOC | 3)
#define FC_GET_MY_ARGS (FCIOC | 4)
#define FC_GET_FCODE_DATA (FCIOC | 5)
+#define FC_SET_FCODE_ERROR (FCIOC | 6)
#define FC_GET_MY_ARGS_BUFLEN 256 /* Max my-args length */
@@ -295,6 +296,21 @@ typedef struct fc_fcode_info {
#define FC_GET_FCODE "sunos,get-fcode"
/*
+ * Values for fc_request 'error'. This has been moved from the _KERNEL
+ * area to allow the FC_SET_FCODE_ERROR ioctl to use these values to
+ * signal the kernel as to the disposition of the userland interpreter.
+ * NOTE: Positive values are used to indicate a kernel error,
+ * negative values are used to identify userland interpreter errors.
+ */
+#define FC_SUCCESS 0 /* FCode interpreted successfully */
+#define FC_TIMEOUT 1 /* Timer expired */
+#define FC_ERROR -1 /* Interpreter error */
+#define FC_EXEC_FAILED -2 /* Interpreter failed to exec */
+#define FC_NO_FCODE -3 /* Interpreter couldn't find fcode */
+#define FC_FCODE_ABORT -4 /* Interpreter called exit(1) */
+#define FC_ERROR_VALID(s) ((s) >= FC_FCODE_ABORT) && ((s) <= FC_TIMEOUT)
+
+/*
* kernel internal data structures and interfaces
* for the fcode interpreter.
*/
@@ -550,13 +566,6 @@ struct fc_request {
#define FC_R_DONE 2 /* request is done and may be deq'd */
/*
- * Values for 'error'.
- */
-#define FC_SUCCESS 0 /* FCode interpreted successfully */
-#define FC_TIMEOUT 1 /* Timer expired */
-#define FC_ERROR -1 /* Interpreter error */
-
-/*
* Function to call to invoke the fcode interpreter.
*
* This function will wait and return when the interpreter either