Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ omni_modify_definition(3) — BASEstar Open Server 3.2

Media Vault

Software Library

Restoration Projects

Artifacts Sought

omni_modify_definition(3)  —  Subroutines

 

Name

omni_modify_definition − The omni_modify_definition procedure modifies the value of a specified attribute of a specified definition.  The address of the new attribute value is passed as a parameter to the routine. 

Omni_modify_definition modifies the values of both single-valued and multi-valued attributes.  In the case of multi-valued attributes, omni_modify_definition is used much like omni_get_handle_list.  Each call to omni_modify_definition specifies one value.  The value of the ATTRIBUTE parameter should specify the address of the attribute on the first call, and should be NULL thereafter.  A value of NULL for the ATTRIBUTE parameter indicates that the next value should be specified. 

Omni_end_list should be called after modifying a list to free space allocated for bookkeeping by DEComni. 
 

Syntax

extern unsigned long int omni_modify_definition (
       omni_l_handle              def_handle,
       omni_l_attributes          ∗attribute,
       omni_l_context             ∗context,
       void                       ∗value,
       unsigned long int          value_length);

Arguments

def_handleaccess: read only mechanism: by value Def_handle specifies the handle of the definition to modify.  The value of this parameter is one of the following:

•VMD Handle

•Domain Handle

•PI Handle

•Named Variable Handle

•Unnamed Variable Handle

•MMS Named Type Handle

•Application Named Type Handle

•MMS Type Specification Handle

•Application Type Specification Handle

•MMS Structure Component

•Application Structure Component

attributeaccess: read only mechanism: by reference Attribute specifies the address of a variable whose value is the attribute to modify or NULL to specify multiple valued attribute. 

contextaccess: read/write mechanism: by reference optional argument Context is the address of a variable of type omni_l_context.  This parameter is used by DEComni only if you modify a multi-valued attribute. 

The value of context should be initialized to NULL.  In general, the value of the context should be modified when as many values as required have been retrieved from a multi-valued attribute.  In this case, Omni_end_list should be called to free any unneeded space allocated by DEComni.  The value of the context should be then reset to zero. 

valueaccess: read only mechanism: by reference Value is the address of a buffer that contains the new attribute value. 

value_lengthaccess: read only mechanism: by value The length of the attribute value buffer in bytes. 

Usage Notes

  A definition is not usable until the value of its SCOPE attribute has been modified.  The scope of a definition can be modified only once, and each class of definition must have a particular set of attributes modified before its scope can be modified. 

The attributes supported for each definition class, the expected type of attribute value, and the default value are listed in the following tables. 

The first table shows VMD values. 

VMD Attributes Expected Data Type Defaults
omni_c_attr_name omni_t_mms_id_nt none
omni_c_attr_appl_simple_name omni_t_appl_simple_name_wc Name of VMD
omni_c_attr_vmd_max_segment Longword 512
omni_c_attr_vmd_max_srv_calling Word 5
omni_c_attr_vmd_max_srv_called Word 5
omni_c_attr_vmd_nesting Byte 10
omni_c_attr_vmd_param_supported omni_b_param_cbb see note
omni_c_attr_vmd_srv_supported omni_b_svc_cbb see note
omni_c_attr_vmd_version Word 1
omni_c_attr_vendor omni_t_visible_str_127_nt ""
omni_c_attr_model omni_t_visible_str_127_nt ""
omni_c_attr_revision omni_t_visible_str_127_nt ""
omni_c_attr_scope null NONE
omni_c_attr_description omni_t_description ""
omni_c_attr_user_param Longword None
omni_c_attr_logical_status Longword None
omni_c_attr_physical_status Longword None
omni_c_attr_local_detail omni_a_local_detail None

Usage Notes

Requirements and restrictions are as follows:

•In order to modify the value of the scope attribute of the VMD definition, the value of the Name attribute must already be specified. 

•The value of the Version attribute must be one (1) (mms_is) or zero (0) (mms_dis). 

•The scope of a VMD Definition should be specified as NULL. 

•The following are defaults for omni_c_attr_vmd_param_supported and omni_c_attr_srv_supported. 

Default for omni_c_attr_vmd_param_supported:
STR1 (Arrays)TRUE
STR2 (Structures)TRUE
VNAM (Named Variables)TRUE
VALT (Alternate Access)TRUE
VADR (Unnamed Variables)TRUE
VSCA (Scattered Access)FALSE
TPY (Third Party)FALSE
VLIS (Named Variable List)FALSE
REAL (Real)FALSE
AKEC (Acknowledgement Event Condtions)FALSE
CEI (Evaluation Interval)FALSE
Default for omni_c_attr_srv_supported
        /∗ vmd support services ∗/
StatusTRUE
GetNameListTRUE
IdentifyTRUE
RenameFALSE
        /∗ variable access services ∗/
ReadTRUE
WriteTRUE
GetVariableAccessAttributes     TRUE
DefineNamedVariableFALSE
DefineScatteredAccessFALSE
GetScatteredAccessAttributes    FALSE
DeleteVariableAccessFALSE
DefineNamedVariableList         FALSE
GetNamedVariableListAttributes  FALSE
DeleteNamedVariableListFALSE
DefineNamedTypeFALSE
GetNamedTypeAttributesFALSE
DeleteNamedTypeFALSE
        /∗ operator communication services ∗/
InputFALSE
OutputFALSE
        /∗ semaphore management services ∗/
TakeControlFALSE
RelinquishControlFALSE
DefineSemaphoreFALSE
DeleteSemaphoreFALSE
ReportSemaphoreStatusFALSE
ReportPoolSemaphoreStatus       FALSE
ReportSemaphoreEntryStatus      FALSE
 
        /∗ domain management services ∗/
InitiateDownloadSequence        TRUE
DownloadSegmentTRUE
TerminateDownloadSequence       TRUE
InitiateUploadSequenceTRUE
UploadSegmentTRUE
TerminateUploadSequence         TRUE
RequestDomainDownloadTRUE
RequestDomainUploadTRUE
LoadDomainContentTRUE
StoreDomainContentTRUE
DeleteDomainTRUE
GetDomainAttributesFALSE
        /∗ program invocation management services ∗/
CreateProgramInvocationFALSE
DeleteProgramInvocation        FALSE
Start        FALSE
Stop        FALSE
Resume        FALSE
Reset        FALSE
Kill        FALSE
GetProgramInvocationAttributes  FALSE
        /∗ file management services ∗/
ObtainFileTRUE
        /∗ event management services ∗/
DefineEventCondition        FALSE
DeleteEventCondition        FALSE
GetEventConditionAttributesFALSE
ReportEventConditionStatusFALSE
AlterEventConditionmonitoringFALSE
TriggerEvent        FALSE
DefineEventAction        FALSE
DeleteEventAction        FALSE
GetEventActionAttributes        FALSE
ReportEventActionStatus        FALSE
DefineEventEnrollment        FALSE
DeleteEventEnrollment        FALSE
AlterEventEnrollment        FALSE
ReportEventEnrollmentStatusFALSE
GetEventEnrollmentAttributesFALSE
AcknowledgeEventNotificationFALSE
GetAlarmSummary        FALSE
GetAlarmEnrollmentSummaryFALSE
        /∗ journal management services ∗/
ReadJournal        FALSE
WriteJournal        FALSE
InitializeJournal        FALSE
ReportJournalStatus        FALSE
CreateJournal        FALSE
DeleteJournal        FALSE
        /∗ vmd support services ∗/
GetCapabilityList        FALSE
        /∗ file management services ∗/
FileOpen        TRUE
FileRead        TRUE
FileClose        TRUE
FileRename        FALSE
FileDelete        FALSE
FileDirectory        FALSE
        /∗ unconfirmed services ∗/
UnsolicitedStatus        TRUE
InformationReport        TRUE
EventNotification        FALSE
AttachToEventCondition        FALSE
AttachToSemaphore        FALSE
        /∗ additional services ∗/
        ConcludeTRUE
Cancel        FALSE

The following table shows Domain values. 

Domain Constants Data Type Defaults
omni_c_attr_name omni_t_mms_id_nt None
omni_c_attr_capability_file omni_t_file_name omni_domains: [VMD]domain.cap where VMD is the name of the parent VMD and domain is the domain name
omni_c_attr_dom_content_file omni_t_file_name ""
omni_c_attr_deletable omni_b_boolean False
omni_c_attr_sharable omni_b_boolean False
omni_c_attr_scope omni_l_handle None
omni_c_attr_description omni_t_description ""
omni_c_attr_user_param Longword None

Usage Notes

Requirements and restrictions are as follows:

•In order to modify the value of the scope attribute, the Name of the Domain definition must already be specified. 

•The run-time object definition facility does not restrict the sharing of a domain that has been specified as not sharable. 

•The value of the scope attribute must be a VMD handle. 

The following table shows PI values. 

PI Constants Data Types Defaults
omni_c_attr_name omni_t_mms_id_nt None
omni_c_attr_ref_dom_names omni_l_handle ""
omni_c_attr_exec_arg omni_t_visible_str_255_nt ""
omni_c_attr_deletable omni_b_boolean True
omni_c_attr_reusable omni_b_boolean False
omni_c_attr_monitor omni_l_pi_monitor omni_c_mnt_not_present
omni_c_attr_scope omni_l_handle None
omni_c_attr_description omni_t_description None
omni_c_attr_user_param Longword None

Usage Notes

Requirements and restrictions are as follows:

•In order to modify the value of the scope attribute, the Name of the PI and at least one Referenced Domain must already be specified. 

•The value of the scope attribute must be a VMD handle. 

•The values of the Referenced Domains attribute must be the handles of committed domains. 

•The Domains referenced by the Program Invocation must all have the same VMD as a parent.  Additionally, the Program Invocation must have the same parent as the Domains it references. 

The following table shows Named Variable values. 

Named Variable Data Types Defaults
omni_c_attr_name omni_t_mms_id_nt None
omni_c_attr_app_type_desc omni_l_handle None
omni_c_attr_deletable omni_b_boolean True
omni_c_attr_scope omni_l_handle None
omni_c_attr_description omni_t_description ""
omni_c_attr_user_param Longword None

Usage Notes

Requirements and restrictions are as follows:

•In order to modify the value of the scope attribute, the values of the Name and the Application Type Description attributes must already be specified. 

•The value of the scope attribute of a named variable definition must be the handle of a domain or a VMD

•If the value of the Application Type Description Attribute is an Application Named Type handle, then the Application Named Type definition must be committed.  Additionally, the Named Variable and the Application Named Type definitions must reside on the same VMD definition. 

•If the value of the Application Type Description attribute is an Application Type Specification handle, then the Application Type Specification may not already be referenced by any other definition. 

The following table shows Unnamed Variable values. 

Unnamed Variables Data Types Defaults
omni_c_attr_name omni_t_mms_id_nt None
omni_c_attr_app_type_description omni_l_handle None
omni_c_attr_address_type omni_l_address_types None
omni_c_attr_address_string omni_t_address_str None
omni_c_attr_address_number Longword None
omni_c_attr_supply_type_spec omni_b_boolean True
omni_c_attr_scope omni_l_handle None
omni_c_attr_description omni_t_description ""
omni_c_attr_user_param Longword None

Usage Notes

Requirements and restrictions are as follows:

•In order to modify the value of the scope attribute, the values of the Name, Address Type and either Address String or Address Number, and Application Type Description attributes must be already specified. 

•The value of the scope attribute of an Unamed Variable definition must be the handle of a VMD. 

•If the value of the Application Type Description Attribute is an Application Named Type handle, then the Application Named Type must be committed.  Additionally, the Named Variable and the Application Named Type definitions must reside on the same VMD definition. 

•If the value of the Application Type Description attribute is an Application Type Specification handle, then the Application Type Specification may not already be referenced by any other definition. 

•The value of the Address Type attribute must be modified before the value of either the Address String or Address Number attribute. 

•DEComni allows the user to modify the value of the Address Type attribute even after the value of the Address String or Address Number attribute has been modified,  Decomni does not compare the value of the Address Type attribute with the type of the address. 

The following table
  shows MMS Named Type values.

MMS Named Types Data Types Defaults
omni_c_attr_name omni_t_mms_id_nt None
omni_c_attr_mms_type_desc omni_l_handle None
omni_c_attr_deletable omni_b_boolean True
omni_c_attr_scope omni_l_handle None
omni_c_attr_description omni_t_description ""
omni_c_attr_user_param Longword None

Usage Notes

Requirements and restrictions are as follows:

•In order to modify the value of the scope attribute, the values of the Name and MMS Type Description Attributes must already be specified. 

•The value of the scope attribute of an MMS Named Type definition must be the handle of a domain or a VMD definition. 

•If the value of the MMS Type Description Attribute is an MMS Named Type handle, then the referred to MMS Named Type must already be committed.  Additionally, both MMS Named Type definitions must ultimately reside on the same VMD definition. 

•If the value of the MMS Type Description Attribute is an MMS Type Specification handle, then the MMS Type Specification may not already be referenced by any other definition.  When the MMS Named Type definition is ready to be committed, its parent VMD must be the same as the parent VMDs of any MMS Named Type definitions referred to by the MMS Type Specification definition. 

The following table shows Application Named Type values. 

Application Named Types Data Types Defaults
omni_c_attr_name omni_t_mms_id_nt None
omni_c_attr_app_type_desc omni_l_handle None
omni_c_attr_mms_named_type omni_l_handle None
omni_c_attr_scope omni_l_handle None
omni_c_attr_description omni_t_description ""
omni_c_attr_user_param Longword None

Usage Notes

Requirements and restrictions are as follows:

•In order to modify the value of the scope attribute, the values of the Name, MMS Named Type, and Application Type Description Attributes must already be specified. 

•The value of the scope attribute of an Application Named Type Definition must be the handle of a domain or a VMD definition. 

•If the value of the Application Type Description Attribute is an Application Named Type Handle, then the Application Named Type definition must already be committed.  Additionally, the Application Named Type Definitions must ultimately reside on the same VMD definition. 

•If the value of the Application Type Description Attribute is an Application Type Specification Handle, then the Application Type Specification definition cannot already be referenced by any other definition.  Additionally, the Application Named Type definition must reside on the same vmd as any Application Named Type definition referred to by the Application Type Specification definition. 

•The value of the MMS Named Type Attribute must be the handle of a committed MMS Named Type Definition.  The MMS Named Type Definition and the Application Named Type Definition must ultimately reside on the same VMD Definition. 

The following table shows MMS Type Specification values. 

MMS Type Data Type Default
omni_c_attr_mms_type omni_l_mms_data_types None
omni_c_attr_array_packed omni_b_boolean False
omni_c_attr_array_elem_num Longword 0
omni_c_attr_array_elem_mms_type omni_l_handle None
omni_c_attr_struct_packed omni_b_boolean False
omni_c_attr_simple_size Longword 0
omni_c_attr_simple_varying omni_b_boolean False
omni_c_attr_date_included omni_b_boolean False
omni_c_attr_description omni_t_description None
omni_c_attr_user_param Longword None

Usage Notes

Requirements and restrictions are as follows:

•The value of the MMS Type Attribute must be modified before other attributes may be modified.  The MMS Type Attribute may be modified once. 

•An MMS Type Specification is valid when the following is true:

•The value of the MMS Type Attribute has been specified

•If the value of the MMS Type Attribute is omni_c_mmstype_array then the value of omni_c_attr_array_elem_num attribute has been specified, or

•If the value of the MMS Type Attribute is omni_c_mmstype_structure then at least one structure component has been specified for the type specification

•The MMS Type Specification must be valid before it can be referenced by another definition.  Additionally, an MMS Type Specification may only be referenced once by either another MMS Type Specification definition or by an MMS Named Type Definition. 

•The value of the MMS Type Attribute is a constant from the omni_c_mmstype_∗ enumeration in omni_defs.  The following constants are acceptable values:

•omni_c_mmstype_array

•omni_c_mmstype_structure

•omni_c_mmstype_boolean

•omni_c_mmstype_bit_str

•omni_c_mmstype_integer

•omni_c_mmstype_unsigned

•omni_c_mmstype_floating_point

•omni_c_mmstype_octet_str

•omni_c_mmstype_visible_str

•omni_c_mmstype_generalized_time

•omni_c_mmstype_binary_time

•omni_c_mmstype_bcd

•omni_c_mmstype_object_id

The following table shows Application Type Specification values. 

Application Type Data Type Defaults
omni_c_attr_app_type omni_l_app_data_type None
omni_c_attr_mms_type_spec omni_l_handle None
omni_c_attr_array_elem_num Longword None
omni_c_attr_array_elem_app_type omni_l_handle None
omni_c_attr_array_low Longword None
omni_c_attr_simple_size Longword None
omni_c_attr_description omni_t_description None
omni_c_attr_user_param Longword None
omni_c_attr_struct_packed omni_b_boolean False

Usage Notes

Requirements and restrictions are as follows:

•The value of the Application Type Attribute must be modified before other attributes may be modified.  The Application Type Attribute may be modified once. 

•
 An Application Type Specification definition is valid when:

•The value of the Application Type Attribute has been specified

•If the value of the Application Type Attribute is omni_c_apptype_array then the values of the omni_c_attr_array_elem_app_type attribute and the omni_c_attr_array_elem_num attribute have been specified, or

•If the value of the Application Type Attribute is omni_c_apptype_structure then at least one structure component has been specified for the type specification definition

•The value of the MMS Type Specification Attribute has been specified

•The Application Type Specification is not already referenced by another definition

•The Application Type Specification definition must be valid before it can be referenced by another definition.  Additionally, an Application Type Specification may only be referenced by one definition. 

•The value of the App Type Attribute is a constant from the omni_c_apptype_∗ enumeration.  The following constants are acceptable values:

•omni_c_apptype_array

•omni_c_apptype_structure

•omni_c_apptype_boolean

•omni_c_apptype_bit_str

•omni_c_apptype_integer

•omni_c_apptype_unsigned

•omni_c_apptype_f_float

•omni_c_apptype_terminated_str

•omni_c_apptype_word_counted_str

•omni_c_apptype_scalar_str

•omni_c_apptype_omni_time

•omni_c_apptype_boolean_array

The following table shows MMS Structure Component values. 

MMS Structure Component Data Type Default
omni_c_attr_name omni_t_mms_id_nt None
omni_c_attr_mms_type_desc omni_l_handle None
omni_c_attr_description omni_t_description None
omni_c_attr_user_param Longword None
omni_c_attr_scope omni_l_handle None

 

Usage Notes

Requirements and restrictions are:

•In order to modify the value of the scope attribute, the values of the Name and MMS Type Description attributes must already be specified. 

•The value of the scope attribute of an MMS Structure Component Definition is the handle of an MMS Type Specification Definition whose MMS Type Attribute has a value of omni_c_mmstype_structure. 

•If the value of the MMS Type Description Attribute is an MMS Named Type handle, then the MMS Named Type definition must be committed.   Additionally, the MMS Named Type definition and the MMS structure component must ultimately reside on the same vmd definition. 

•If the value of the MMS Type Description attribute is an MMS Type Specification Handle, then the MMS Type Specification may not already be referenced by any other definition. 

The following table shows App Structure Component values. 

App Structure Component Value Default
omni_c_attr_name omni_t_app_id_nt None
omni_c_attr_description omni_t_description None
omni_c_attr_app_type_desc omni_l_handle None
omni_c_attr_mms_struct_comp omni_l_handle None
omni_c_attr_scope omni_l_handle None
omni_c_attr_user_param Longword None

Usage Notes

Requirements and restrictions are as follows:

•In order to modify the value of the scope attribute, the values of the Name, App Type Description, and MMS Type Specification Attributes must already be specified. 

•The value of the scope attribute of an Application Structure Component Definition is the handle of an Application Type Specification Definition whose Application Type Attribute has a value of omni_c_apptype_structure. 

•If the value of the Application Type Description Attriubte is an Application Named Type Handle, then the Application Named Type definition must be committed.   Additionally, the Application Named Type Definition and the Application Structure Component definition must reside on the same VMD definition. 

•If the value of the Application Type Description Attribute is an Application Type Specification Handle, then the Application Type Specification definition cannot already be referenced by any other definition

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