KSTATE (2)
Get synchronization status of a LAM process.
SYNOPSIS
#include <kreq.h>
int kstate (int pid, struct kstatus *status);
DESCRIPTION
The function
kstate()
enables a LAM process to inquire about the synchronization status of
any process on the local node, including itself.
The argument
pid
is the identifier of the process to be stated.
The special identifier 0 indicates the calling process.
Information returned from the daemon will be stored in the structure
addressed by the
status
argument.
The structure is defined in <kreq.h> as shown below.
struct kstatus {
int ks_state;
int ks_priority;
int ks_event;
int ks_type;
int ks_signal;
int ks_flags;
int ks_length;
int ks_fyi[KNFYI];
};
Upon return from
kstate() ,
the individual fields are filled with the information described below.
ks_state
scheduling status (see below)
ks_priority
synchronization priority (see kenter(2))
ks_event
currently blocked or last used message event
ks_type
currently blocked or last used message type
ks_signal
pending signals to be delivered
ks_flags
internal process management flags
ks_length
currently blocked or last used message length
ks_fyi
application specific information
The process states, defined in <kreq.h>, are described below.
KSREADY
KSRECV
blocked on krecv(2) to receive a message
KSSEND
blocked on ksend(2) to send a message
ERRORS
ENOTPROCESS
The process whose process identifier was passed to
kstate()
is not a LAM process.
ENOTATTACHED
The calling process is not a LAM process.
SEE ALSO
|