Reference

kstate(2)

Get synchronization status of a LAM process.

NAME

kstate - 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

ready to run

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

rpstate(2)

History