Museum

Home

Lab Overview

Retrotechnology Articles

⇒ Online Manual

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

evmshow(1)

EvmEventCreate(3)

EvmEventDestroy(3)

EvmEventFormat(3)

EvmEventPost(3)

kevm(7)

EVM(5)

EvmEvent(5)

EvmItemSet(3)  —  Subroutines

NAME

EvmItemSet, EvmItemSetVa, EvmItemGet, EvmItemRelease, EvmItemListGet, EvmItemListFree − Create and manipulate event items

SYNOPSIS

#include <evm/evm.h>
EvmStatus_t EvmItemSet(
        EvmEvent_t event,
        EvmItemId_t item_id,
        EvmItemValue_t item_value ); EvmStatus_t EvmItemSetVa(
        EvmEvent_t event,
        [EvmItemId_t  item_id,
        EvmItemValue_t item_value]...,
        EvmITEM_NONE ); EvmStatus_t EvmItemGet(
        EvmEvent_t event,
        EvmItemId_t item_id,
        EvmItemValue_t ∗item_value ); EvmStatus_t EvmItemRelease(
        EvmItemId_t item_id,
        EvmItemValue_t item_value ); EvmStatus_t EvmItemListGet(
        EvmEvent_t event,
        EvmCount_t ∗item_count,
        EvmItemList_t ∗itemList ); void EvmItemListFree(
        EvmItemList_t itemList );

OPERANDS

event
The event containing the item to be manipulated.

item_id
The identifier for the event data item to be set, obtained, or released by the called routine. Possible values for this operand, and the data contained by the data item are identified in the following list. See the EvmEvent(5) reference page for a description of the event data items. 

Identifier Data Item
EvmITEM_NONE None (Control use)
EvmITEM_NAME Event name
EvmITEM_PRIORITY Priority
EvmITEM_PID Process identifier
EvmITEM_PPID Parent process identifier
EvmITEM_EVENT_ID Event identifier
EvmITEM_TIMESTAMP Time posted
EvmITEM_REPEAT_COUNT Repeat count
EvmITEM_LAST_TIMESTAMP Last timestamp
EvmITEM_I18N_MSG_ID I18N message identifier
EvmITEM_I18N_SET_ID I18N message set identifier
EvmITEM_I18N_CATALOG I18N catalog
EvmITEM_HOST_IP Host IP address
EvmITEM_CLUSTER_IP Cluster IP address
EvmITEM_MEMBERID The node’s cluster ID
EvmITEM_HOST_NAME Host name
EvmITEM_CLUSTER_NAME Cluster name
EvmITEM_USER_NAME User name
EvmITEM_FORMAT Event format
EvmITEM_REF Reference
EvmITEM_VAR Variables
EvmITEM_KERNEL_ONLY Kernel distribution Only
EvmITEM_CLUSTER_EVENT Cluster event

It is also possible to supply a separate item_id for each of the supported variable types. In these cases, an extra one or two operands (depending on the type) must be supplied in addition to the item_value. See the description below for more information.  The following extended variable item IDs are supported:

Identifier Variable Type Parameters
EvmITEM_VAR_CHAR EvmTYPE_CHAR Name,value
EvmITEM_VAR_INT16 EvmTYPE_INT16 Name,value
EvmITEM_VAR_INT32 EvmTYPE_INT32 Name,value
EvmITEM_VAR_INT64 EvmTYPE_INT64 Name,value
EvmITEM_VAR_UINT8 EvmTYPE_UINT8 Name,value
EvmITEM_VAR_UINT16 EvmTYPE_UINT16 Name,value
EvmITEM_VAR_UINT32 EvmTYPE_UINT32 Name,value
EvmITEM_VAR_UINT64 EvmTYPE_UINT64 Name,value
EvmITEM_VAR_FLOAT EvmTYPE_FLOAT Name,value
EvmITEM_VAR_DOUBLE EvmTYPE_DOUBLE Name,value
EvmITEM_VAR_STRING EvmTYPE_STRING Name,value
EvmITEM_VAR_STRING_I18N EvmTYPE_STRING Name,value,I18N msgid
EvmITEM_VAR_OPAQUE EvmTYPE_OPAQUE Name,value,size

item_value
The value to be stored into the item indicated by the associated item_id. For EvmItemGet() this is the location where the value extracted from the event will be stored. 

item_count
This is the return operand. It is the number of entries in item_list, exclusive of the terminating EvmItem_NONE entry. 

DESCRIPTION

Routines in this reference page deal with manipulating data in the standard items in an event. 

The EvmItemSet() routine sets the value of the event data item specified by item_id to the item_value supplied by the caller. 

The EvmItemSetVa() routine sets item values in the event. The list of item_id and item_value operands is terminated by an instance of item_id of EvmITEM_NONE. 

The inclusion of extended variable item-IDs simplifies programming by allowing you to add variable items to an event without first having to set up an EvmVarStruct_t structure, or to release it afterwards.  If you use these extended item-IDs you must follow each with the name of the variable, then a value of the appropriate type. In addition, an EvmITEM_VAR_STRING_I18N value must be followed by an I18N message ID, and an EvmITEM_VAR_OPAQUE value must be followed by a size. 

The EvmItemGet() routine returns, in the item_value reference argument, the value of the event data item specified by item_id.  The caller must use EvmItemRelease() to free any space allocated for the item. 

The EvmItemRelease() routine releases any storage space that was allocated when the data item named by item_id was retrieved from an event using EvmItemGet().

The EvmItemListGet() routine returns, in the itemList reference argument, a list of all of the items, which are currently defined for the event. The last item in the list has an item_id value of EvmITEM_NONE. The number of items in the list, not including the terminating null identifier,  is returned in item_count. The caller is responsible for freeing the memory used by the list by calling EvmItemListFree(). 

The EvmItemListFree() routine frees the memory used by an item list. The itemList operand is a list of items in an event generated by EvmItemListGet(). 

RESTRICTIONS

None

RETURN VALUES

EvmERROR_NONE
The operation was completed without error.

EvmERROR_INVALID_ARGUMENT
One of the arguments to the function was invalid.

EvmERROR_INVALID_VALUE
A value in a structure member is invalid.

EvmERROR_NO_MEMORY
An operation failed because an attempt to acquire heap memory failed.

EvmERROR_NOT_PRESENT
A request specified an item or variable name component in an itemList or a varList that is not part of the event being processed. 

ERRORS

None

LIBRARY

EVM Support Library (libevm.so, libevm.a)

FILES

None

SEE ALSO

Commands: evmshow(1)

Routines: EvmEventCreate(3), EvmEventDestroy(3), EvmEventFormat(3), EvmEventPost(3)

Files: kevm(7)

Event Management: EVM(5)

EVM Events: EvmEvent(5)

Programmer’s Guide

Typewritten Software • bear@typewritten.org • Edmonds, WA 98026