[ Previous |
Next |
Contents |
Home |
Search ]
AIX Version 4.3 Kernel and Subsystems Technical Reference, Volume 1
probe or kprobe Kernel Service
Purpose
Logs errors with symptom strings.
Library (for probe)
Run-time Services Library.
Syntax
#include <sys/probe.h>
or
#include <sys/sysprobe.h>
int probe (probe_p)
probe_t *probe_p
int kprobe (probe_p)
probe_t *probe_p
Description
The probe subroutine logs an entry to the error log. The entry consists of an error log entry as defined in the errlog subroutine and the err_rec.h header file, and a symptom string.
The probe subroutine is called from an application, while kprobe is called from the Kernel and Kernel extensions. Both probe and kprobe have the same interfaces, except for return codes.
IBM software should use the sys/sysprobe.h header file while non-IBM programs should include the sys/probe.h file. This is because IBM symptom strings must conform to different rules than non-IBM strings. It also tells any electronic support application whether or not to route the symptom string to IBM's Retain database.
Parameters
probe_p |
is a pointer to the data structure which contains the pointer and length of the error record, and the data for the probe. The error record is described under the errlog subroutine and defined in err_rec.h.
The first word of the structure is a magic number to identify this version of the structure. The magic number should be set to PROBE_MAGIC
.
Note: PROBE_MAGIC
is different between probe.h and sysprobe.h to distinguish an IBM symptom string from a non-IBM string.
The probe data consists of flags which control probe handling, the number of symptom string keywords, followed by an array consisting of one element for each keyword. |
Flags
SSNOSEND |
indicates this symptom string shouldn't be forwarded to automatic problem opening facilities. An example where SSNOSEND should be used is in symptom data used for debugging purposes. |
nsskwd |
This gives the number of keywords specified (i.e.), the number of elements in the sskwds array
. |
sskwds |
This is an array of keyword/value pairs. The keywords and their values are in the following table. The I/S value indicates whether the keyword and value are informational or are part of the logged symptom string. The number in parenthesis indicates, where applicable, the maximum string length.
keyword |
I/S |
value |
type |
Description |
SSKWD_LONGNAME |
I |
char * |
(30) |
Product's long name |
SSKWD_OWNER |
I |
char * |
(16) |
Product's owner |
SSKWD_PIDS |
S |
char * |
(11) |
product id.(required for IBM symptom strings) |
SSKWD_LVLS |
S |
char * |
(5) |
product level (required for IBM symptom strings) |
SSKWD_APPLID |
I |
char * |
(8) |
application id. |
SSKWD_PCSS |
S |
char * |
(8) |
probe id (required for all symptom strings) |
SSKWD_DESC |
I |
char * |
(80) |
problem description |
SSKWD_SEV |
I |
int |
|
severity from 1 (highest) to 4 (lowest). 3 is the default. |
SSKWD_AB |
S |
char * |
(5) |
abend code |
SSKWD_ADRS |
S |
void * |
|
address. If used at all, this should be a relative address. |
SSKWD_DEVS |
S |
char * |
(6) |
Device type |
SSKWD_FLDS |
S |
char * |
(9) |
arbitrary character string. This is usually a field name and the SSKWD_VALUE keyword specifies the value. |
SSKWD_MS |
S |
char * |
(11) |
Message number |
SSKWD_OPCS |
S |
char * |
(8) |
OP code |
SSKWD_OVS |
S |
char * |
(9) |
overwritten storage |
SSKWD_PRCS |
S |
|
|
unsigned long return code |
SSKWD_REGS |
S |
char * |
(4) |
Register name (e.g.) GR15 or LR unsigned long Value |
SSKWD_VALU |
S |
|
|
|
SSKWD_RIDS |
S |
char * |
(8) |
resource or module id. |
SSKWD_SIG |
S . |
int |
|
Signal number |
SSKWD_SN |
S |
char * |
(7) |
Serial Number |
SSKWD_SRN |
S |
char * |
(9) |
Service Req. Number If specified, and no error is logged, a hardware error is assumed. |
SSKWD_WS |
S |
char * |
(10) |
Coded wait |
|
Note: The SSKWD_PCCS value is always required. This is the probe id. Additionally, for IBM symptom strings, the SSKWD_PIDS and SSKWD_LVLS keywords are also required.
If either the erecp or erecl fields in the probe_rec structure is 0
then no error logging record is being passed, and one of the default templates for symptom strings is used. The default template indicating a software error is used unless the SSKWD_SRN keyword is specified. If it is, the error is assumed to be a hardware error. If you don't wish to log your own error with a symptom string, and you wish to have a hardware error, and don't want to use the SSKWD_SRN value, then you can supply an error log record using the error identifier of ERRID_HARDWARE_SYMPTOM, see the /usr/include/sys/errids.h file.
Return Values for probe Subroutine
0 |
Successful |
-1 |
Error. The errno variable is set to |
EINVAL |
Indicates an invalid parameter |
EFAULT |
Indicates an invalid address |
Return Values for kprobe Kernal Service
0 |
Successful |
EINVAL |
Indicates an invalid parameter |
Implementation Specifics
These subroutines are part of AIX Base Operating System (BOS) Run Time.
probe is executed from the application environment.
kprobe is executed from the Kernel and Kernel extensions. Currently, kprobe must not be called with interrupts disabled.
Files
/usr/include/sys/probe.h |
Contains parameter definition. |
Related Information
Error Logging Overview.
The errlog subroutines.
The errsave or errlast subroutines.
[ Previous |
Next |
Contents |
Home |
Search ]