diff options
author | dhain <none@none> | 2005-10-26 16:23:44 -0700 |
---|---|---|
committer | dhain <none@none> | 2005-10-26 16:23:44 -0700 |
commit | 6d22b73346a02763769401e9f28b596670cc3d16 (patch) | |
tree | e7d7f39c1e781bfcbe0eabe6de0780f2eca0205c /usr/src/uts/sun4/sys/fcode.h | |
parent | 595aa6e48d8a5812a3a42afa5f63ee6f772c7f4e (diff) | |
download | illumos-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.h | 25 |
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 |