--******************************************************************************************************************** -- Created: 9-Mar-2021 22:28:15 by OpenVMS SDL EV3-3 -- Source: 11-FEB-2004 12:47:04 $1$DGA8085:[LIB_ADA.LIS]ACMEAGENT_CB_DEF.SDL;1 --******************************************************************************************************************** with SYSTEM; use SYSTEM; with STARLET; use STARLET; with CONDITION_HANDLING; use CONDITION_HANDLING; with ACMEAGENT_DATA_DEF;use ACMEAGENT_DATA_DEF; with ACMEDEF;use ACMEDEF; with UTCBLKDEF;use UTCBLKDEF; with ILEDEF;use ILEDEF; package ACMEAGENT_CB_DEF is -- module $ACMEAGENT_CB_DEF IDENT X-1 --+ -- -- ACM Kernel Callback Routines Protypes -- --- -- -- Acquire ACME Resource -- -- acme$cb_acquire_resource wqe, resource_type, resource_value -- -- wqe = address of ACM Work Queue Entry -- resource_type = type of (ACME defined) resource to allocate -- resource_value = address of quadword to receive the value of resource allocated -- procedure ACME_CB_ACQUIRE_RESOURCE ( STATUS : out COND_VALUE_TYPE; -- return value WQE : in out ACM_WORK_QUEUE_ENTRY_TYPE; RESOURCE_TYPE : in UNSIGNED_LONGWORD; RESOURCE_VALUE : out UNSIGNED_QUADWORD); pragma INTERFACE (EXTERNAL, ACME_CB_ACQUIRE_RESOURCE); pragma IMPORT_VALUED_PROCEDURE (ACME_CB_ACQUIRE_RESOURCE, "acme$cb_acquire_resource", (COND_VALUE_TYPE, ACM_WORK_QUEUE_ENTRY_TYPE, UNSIGNED_LONGWORD, UNSIGNED_QUADWORD), (VALUE, REFERENCE, VALUE, REFERENCE)); -- -- Acquire ACME AST Context -- -- acme$cb_acquire_acme_ast wqe, ast_handler, ast_context, -- ast_routine, ast_parameter -- -- wqe = address of ACM Work Queue Entry -- ast_handler = address of 64-bit pointer to receive AST handler -- (interceptor procedure) address -- ast_context = address of quadword to receive AST parameter value -- ast_routine = address of ACME's AST service routine to invoke upon -- AST delivery -- ast_parameter = address of quadword containing ACME specific value to -- pass to the ACME's AST service routine upon AST delivery -- procedure ACME_CB_ACQUIRE_ACME_AST ( STATUS : out COND_VALUE_TYPE; -- return value WQE : in out ACM_WORK_QUEUE_ENTRY_TYPE; AST_HANDLER : out AST_PROCEDURE_TYPE; AST_CONTEXT : out UNSIGNED_QUADWORD; AST_ROUTINE : in AST_PROCEDURE_TYPE; AST_PARAMETER : in UNSIGNED_QUADWORD); pragma INTERFACE (EXTERNAL, ACME_CB_ACQUIRE_ACME_AST); pragma IMPORT_VALUED_PROCEDURE (ACME_CB_ACQUIRE_ACME_AST, "acme$cb_acquire_acme_ast", (COND_VALUE_TYPE, ACM_WORK_QUEUE_ENTRY_TYPE, AST_PROCEDURE_TYPE, UNSIGNED_QUADWORD, AST_PROCEDURE_TYPE, UNSIGNED_QUADWORD), (VALUE, REFERENCE, REFERENCE, REFERENCE, REFERENCE, REFERENCE)); -- -- Acquire ACME RMS AST Context -- -- acme$cb_acquire_acme_rmsast wqe, ast_handler, ast_context -- ast_routine, ast_parameter -- -- wqe = address of ACM Work Queue Entry -- ast_handler = address of 64-bit pointer to receive AST handler -- (interceptor procedure) address -- ast_context = address of quadword to receive AST parameter value -- ast_routine = address of ACME's AST service routine to invoke upon -- AST delivery -- ast_parameter = address of longword containing ACME specific value to -- pass to the ACME's AST service routine upon AST delivery -- procedure ACME_CB_ACQUIRE_ACME_RMSAST ( STATUS : out COND_VALUE_TYPE; -- return value WQE : in out ACM_WORK_QUEUE_ENTRY_TYPE; AST_HANDLER : out AST_PROCEDURE_TYPE; AST_CONTEXT : out UNSIGNED_LONGWORD; AST_ROUTINE : in AST_PROCEDURE_TYPE; AST_PARAMETER : in UNSIGNED_LONGWORD); pragma INTERFACE (EXTERNAL, ACME_CB_ACQUIRE_ACME_RMSAST); pragma IMPORT_VALUED_PROCEDURE (ACME_CB_ACQUIRE_ACME_RMSAST, "acme$cb_acquire_acme_rmsast", (COND_VALUE_TYPE, ACM_WORK_QUEUE_ENTRY_TYPE, AST_PROCEDURE_TYPE, UNSIGNED_LONGWORD, AST_PROCEDURE_TYPE, UNSIGNED_LONGWORD), (VALUE, REFERENCE, REFERENCE, REFERENCE, REFERENCE, REFERENCE)); -- -- Acquire WQE AST Context -- -- acme$cb_acquire_wqe_ast wqe, ast_handler, ast_context, -- ast_routine, ast_parameter -- -- wqe = address of ACM Work Queue Entry -- ast_handler = address of 64-bit pointer to receive AST handler -- (interceptor procedure) address -- ast_context = address of quadword to receive AST parameter value -- ast_routine = address of ACME's AST service routine to invoke upon -- AST delivery -- ast_parameter = address of quadword containing ACME specific value to -- pass to the ACME's AST service routine upon AST delivery -- procedure ACME_CB_ACQUIRE_WQE_AST ( STATUS : out COND_VALUE_TYPE; -- return value WQE : in out ACM_WORK_QUEUE_ENTRY_TYPE; AST_HANDLER : out AST_PROCEDURE_TYPE; AST_CONTEXT : out UNSIGNED_QUADWORD; AST_ROUTINE : in AST_PROCEDURE_TYPE; AST_PARAMETER : in UNSIGNED_QUADWORD); pragma INTERFACE (EXTERNAL, ACME_CB_ACQUIRE_WQE_AST); pragma IMPORT_VALUED_PROCEDURE (ACME_CB_ACQUIRE_WQE_AST, "acme$cb_acquire_wqe_ast", (COND_VALUE_TYPE, ACM_WORK_QUEUE_ENTRY_TYPE, AST_PROCEDURE_TYPE, UNSIGNED_QUADWORD, AST_PROCEDURE_TYPE, UNSIGNED_QUADWORD), (VALUE, REFERENCE, REFERENCE, REFERENCE, REFERENCE, REFERENCE)); -- -- Acquire WQE RMS AST Context -- -- acme$cb_acquire_wqe_rmsast wqe, ast_handler, ast_context -- ast_routine, ast_parameter -- -- wqe = address of ACM Work Queue Entry -- ast_handler = address of 64-bit pointer to receive AST handler -- (interceptor procedure) address -- ast_context = address of quadword to receive AST parameter value -- ast_routine = address of ACME's AST service routine to invoke upon -- AST delivery -- ast_parameter = address of longword containing ACME specific value to -- pass to the ACME's AST service routine upon AST delivery -- procedure ACME_CB_ACQUIRE_WQE_RMSAST ( STATUS : out COND_VALUE_TYPE; -- return value WQE : in out ACM_WORK_QUEUE_ENTRY_TYPE; AST_HANDLER : out AST_PROCEDURE_TYPE; AST_CONTEXT : out UNSIGNED_LONGWORD; AST_ROUTINE : in AST_PROCEDURE_TYPE; AST_PARAMETER : in UNSIGNED_LONGWORD); pragma INTERFACE (EXTERNAL, ACME_CB_ACQUIRE_WQE_RMSAST); pragma IMPORT_VALUED_PROCEDURE (ACME_CB_ACQUIRE_WQE_RMSAST, "acme$cb_acquire_wqe_rmsast", (COND_VALUE_TYPE, ACM_WORK_QUEUE_ENTRY_TYPE, AST_PROCEDURE_TYPE, UNSIGNED_LONGWORD, AST_PROCEDURE_TYPE, UNSIGNED_LONGWORD), (VALUE, REFERENCE, REFERENCE, REFERENCE, REFERENCE, REFERENCE)); -- -- Allocate ACME VM -- -- acme$cb_allocate_acme_vm wqe, segment_size, segment_address -- -- wqe = address of ACM Work Queue Entry -- segment_size = number of bytes to allocated -- segment_address = address of first byte allocated -- procedure ACME_CB_ALLOCATE_ACME_VM ( STATUS : out COND_VALUE_TYPE; -- return value WQE : in out ACM_WORK_QUEUE_ENTRY_TYPE; SEGMENT_SIZE : in UNSIGNED_LONGWORD; SEGMENT_ADDRESS : out UNSIGNED_QUADWORD); pragma INTERFACE (EXTERNAL, ACME_CB_ALLOCATE_ACME_VM); pragma IMPORT_VALUED_PROCEDURE (ACME_CB_ALLOCATE_ACME_VM, "acme$cb_allocate_acme_vm", (COND_VALUE_TYPE, ACM_WORK_QUEUE_ENTRY_TYPE, UNSIGNED_LONGWORD, UNSIGNED_QUADWORD), (VALUE, REFERENCE, REFERENCE, REFERENCE)); -- -- Allocate WQE VM -- -- acme$cb_allocate_wqe_vm wqe, segment_size, segment_address -- -- wqe = address of ACM Work Queue Entry -- segment_size = number of bytes to allocated -- segment_address = address of first byte allocated -- procedure ACME_CB_ALLOCATE_WQE_VM ( STATUS : out COND_VALUE_TYPE; -- return value WQE : in out ACM_WORK_QUEUE_ENTRY_TYPE; SEGMENT_SIZE : in UNSIGNED_LONGWORD; SEGMENT_ADDRESS : out UNSIGNED_QUADWORD); pragma INTERFACE (EXTERNAL, ACME_CB_ALLOCATE_WQE_VM); pragma IMPORT_VALUED_PROCEDURE (ACME_CB_ALLOCATE_WQE_VM, "acme$cb_allocate_wqe_vm", (COND_VALUE_TYPE, ACM_WORK_QUEUE_ENTRY_TYPE, UNSIGNED_LONGWORD, UNSIGNED_QUADWORD), (VALUE, REFERENCE, REFERENCE, REFERENCE)); -- -- Cancel Dialogue -- -- acme$cb_cancel_dialogue wqe -- -- wqe = address of ACM Work Queue Entry -- procedure ACME_CB_CANCEL_DIALOGUE ( STATUS : out COND_VALUE_TYPE; -- return value WQE : in out ACM_WORK_QUEUE_ENTRY_TYPE); pragma INTERFACE (EXTERNAL, ACME_CB_CANCEL_DIALOGUE); pragma IMPORT_VALUED_PROCEDURE (ACME_CB_CANCEL_DIALOGUE, "acme$cb_cancel_dialogue", (COND_VALUE_TYPE, ACM_WORK_QUEUE_ENTRY_TYPE), (VALUE, REFERENCE)); -- -- Deallocate ACME VM -- -- acme$cb_deallocate_acme_vm wqe, segment_size, segment_address -- -- wqe = address of ACM Work Queue Entry -- segment_size = number of bytes to deallocate -- segment_address = address of first byte to deallocate -- procedure ACME_CB_DEALLOCATE_ACME_VM ( STATUS : out COND_VALUE_TYPE; -- return value WQE : in out ACM_WORK_QUEUE_ENTRY_TYPE; SEGMENT_SIZE : in UNSIGNED_LONGWORD; SEGMENT_ADDRESS : in UNSIGNED_QUADWORD); pragma INTERFACE (EXTERNAL, ACME_CB_DEALLOCATE_ACME_VM); pragma IMPORT_VALUED_PROCEDURE (ACME_CB_DEALLOCATE_ACME_VM, "acme$cb_deallocate_acme_vm", (COND_VALUE_TYPE, ACM_WORK_QUEUE_ENTRY_TYPE, UNSIGNED_LONGWORD, UNSIGNED_QUADWORD), (VALUE, REFERENCE, REFERENCE, REFERENCE)); -- -- Deallocate WQE VM -- -- acme$cb_deallocate_wqe_vm wqe, segment_size, segment_address -- -- wqe = address of ACM Work Queue Entry -- segment_size = number of bytes to deallocate -- segment_address = address of first byte to deallocate -- procedure ACME_CB_DEALLOCATE_WQE_VM ( STATUS : out COND_VALUE_TYPE; -- return value WQE : in out ACM_WORK_QUEUE_ENTRY_TYPE; SEGMENT_SIZE : in UNSIGNED_LONGWORD; SEGMENT_ADDRESS : in UNSIGNED_QUADWORD); pragma INTERFACE (EXTERNAL, ACME_CB_DEALLOCATE_WQE_VM); pragma IMPORT_VALUED_PROCEDURE (ACME_CB_DEALLOCATE_WQE_VM, "acme$cb_deallocate_wqe_vm", (COND_VALUE_TYPE, ACM_WORK_QUEUE_ENTRY_TYPE, UNSIGNED_LONGWORD, UNSIGNED_QUADWORD), (VALUE, REFERENCE, REFERENCE, REFERENCE)); -- -- Format Date and Time -- -- acme$cb_format_date_time wqe, dt_value, dt_string, dt_len, flags -- -- wqe = address of ACM Work Queue Entry -- dt_value = address of UTC date/time value -- dt_string = address of descriptor describing buffer to -- receive the formatted date/time string -- dt_len = address of word to receive the length (in bytes) -- of the formatted date/time string -- flags = formatting control flags -- procedure ACME_CB_FORMAT_DATE_TIME ( STATUS : out COND_VALUE_TYPE; -- return value WQE : in out ACM_WORK_QUEUE_ENTRY_TYPE; DT_VALUE : in UTC_DATE_TIME_TYPE := UTC_DATE_TIME_TYPE'NULL_PARAMETER; DT_STRING : out STRING; DT_LEN : out UNSIGNED_WORD; FLAGS : in UNSIGNED_LONGWORD := 0); procedure ACME_CB_FORMAT_DATE_TIME ( STATUS : out COND_VALUE_TYPE; -- return value WQE : in out ACM_WORK_QUEUE_ENTRY_TYPE; DT_VALUE : in UTC_DATE_TIME_TYPE := UTC_DATE_TIME_TYPE'NULL_PARAMETER; DT_STRING : out STRING; DT_LEN : in ADDRESS := ADDRESS_ZERO; -- To omit optional DT_LEN argument FLAGS : in UNSIGNED_LONGWORD := 0); pragma INTERFACE (EXTERNAL, ACME_CB_FORMAT_DATE_TIME); pragma IMPORT_VALUED_PROCEDURE (ACME_CB_FORMAT_DATE_TIME, "acme$cb_format_date_time", (COND_VALUE_TYPE, ACM_WORK_QUEUE_ENTRY_TYPE, UTC_DATE_TIME_TYPE, STRING, UNSIGNED_WORD, UNSIGNED_LONGWORD), (VALUE, REFERENCE, REFERENCE, DESCRIPTOR(S), REFERENCE, VALUE)); pragma IMPORT_VALUED_PROCEDURE (ACME_CB_FORMAT_DATE_TIME, "acme$cb_format_date_time", (COND_VALUE_TYPE, ACM_WORK_QUEUE_ENTRY_TYPE, UTC_DATE_TIME_TYPE, STRING, ADDRESS, UNSIGNED_LONGWORD), (VALUE, REFERENCE, REFERENCE, DESCRIPTOR(S), VALUE, VALUE)); -- -- Issue Credentials -- -- acme$cb_issue_credentials wqe, type, credentials -- -- wqe = address of ACM Work Queue Entry -- type = type of security credentials -- credentials = address of descriptor describing security credentials -- procedure ACME_CB_ISSUE_CREDENTIALS ( STATUS : out COND_VALUE_TYPE; -- return value WQE : in out ACM_WORK_QUEUE_ENTRY_TYPE; TYP : in UNSIGNED_LONGWORD; CREDENTIALS : in UNSIGNED_BYTE_ARRAY); pragma INTERFACE (EXTERNAL, ACME_CB_ISSUE_CREDENTIALS); pragma IMPORT_VALUED_PROCEDURE (ACME_CB_ISSUE_CREDENTIALS, "acme$cb_issue_credentials", (COND_VALUE_TYPE, ACM_WORK_QUEUE_ENTRY_TYPE, UNSIGNED_LONGWORD, UNSIGNED_BYTE_ARRAY), (VALUE, REFERENCE, REFERENCE, DESCRIPTOR)); -- -- Convert a Latin1 string to a UCS string -- -- acme$cb_latin1_to_ucs wqe, latin1_string, ucs_string, ucs_bytes -- -- wqe = address of ACM Work Queue Entry -- latin1_string = address of descriptor for buffer -- holding the Latin-1 encoded string -- ucs_string = address of descriptor for buffer -- to receive the UCS encoded string -- ucs_bytes = length of ucs string (in bytes) -- procedure ACME_CB_LATIN1_TO_UCS ( STATUS : out COND_VALUE_TYPE; -- return value WQE : in out ACM_WORK_QUEUE_ENTRY_TYPE; LATIN1_STRING : in STRING; UCS_STRING : in out STRING; UCS_BYTES : out UNSIGNED_WORD); pragma INTERFACE (EXTERNAL, ACME_CB_LATIN1_TO_UCS); pragma IMPORT_VALUED_PROCEDURE (ACME_CB_LATIN1_TO_UCS, "acme$cb_latin1_to_ucs", (COND_VALUE_TYPE, ACM_WORK_QUEUE_ENTRY_TYPE, STRING, STRING, UNSIGNED_WORD), (VALUE, REFERENCE, DESCRIPTOR(S), DESCRIPTOR(S), REFERENCE)); -- -- Queue Dialogue -- -- acme$cb_queue_dialogue wqe, flags, item_code, max_length, -- data_1, data_2 -- -- wqe = address of ACM Work Queue Entry -- flags = dialogue control flags -- item_code = item code to use to tag response -- max_length = maximum length of response data -- data_1 = prompt/message text -- data_2 = prompt/response/message text -- procedure ACME_CB_QUEUE_DIALOGUE ( STATUS : out COND_VALUE_TYPE; -- return value WQE : in out ACM_WORK_QUEUE_ENTRY_TYPE; FLAGS : in UNSIGNED_LONGWORD := 0; ITEM_CODE : in UNSIGNED_LONGWORD := 0; MAX_LENGTH : in UNSIGNED_LONGWORD := 0; DATA_1 : in UNSIGNED_BYTE_ARRAY := UNSIGNED_BYTE_ARRAY'NULL_PARAMETER; DATA_2 : in UNSIGNED_BYTE_ARRAY := UNSIGNED_BYTE_ARRAY'NULL_PARAMETER); pragma INTERFACE (EXTERNAL, ACME_CB_QUEUE_DIALOGUE); pragma IMPORT_VALUED_PROCEDURE (ACME_CB_QUEUE_DIALOGUE, "acme$cb_queue_dialogue", (COND_VALUE_TYPE, ACM_WORK_QUEUE_ENTRY_TYPE, UNSIGNED_LONGWORD, UNSIGNED_LONGWORD, UNSIGNED_LONGWORD, UNSIGNED_BYTE_ARRAY, UNSIGNED_BYTE_ARRAY), (VALUE, REFERENCE, VALUE, VALUE, VALUE, DESCRIPTOR, DESCRIPTOR)); -- -- Release ACME AST Context -- -- acme$cb_release_acme_ast wqe, ast_context -- -- wqe = address of ACM Work Queue Entry -- ast_context = AST parameter value -- procedure ACME_CB_RELEASE_ACME_AST ( STATUS : out COND_VALUE_TYPE; -- return value WQE : in out ACM_WORK_QUEUE_ENTRY_TYPE; AST_CONTEXT : in UNSIGNED_QUADWORD); pragma INTERFACE (EXTERNAL, ACME_CB_RELEASE_ACME_AST); pragma IMPORT_VALUED_PROCEDURE (ACME_CB_RELEASE_ACME_AST, "acme$cb_release_acme_ast", (COND_VALUE_TYPE, ACM_WORK_QUEUE_ENTRY_TYPE, UNSIGNED_QUADWORD), (VALUE, REFERENCE, REFERENCE)); -- -- Release ACME RMS AST Context -- -- acme$cb_release_acme_rmsast wqe, ast_context -- -- wqe = address of ACM Work Queue Entry -- ast_context = AST parameter value -- procedure ACME_CB_RELEASE_ACME_RMSAST ( STATUS : out COND_VALUE_TYPE; -- return value WQE : in out ACM_WORK_QUEUE_ENTRY_TYPE; AST_CONTEXT : in UNSIGNED_LONGWORD); pragma INTERFACE (EXTERNAL, ACME_CB_RELEASE_ACME_RMSAST); pragma IMPORT_VALUED_PROCEDURE (ACME_CB_RELEASE_ACME_RMSAST, "acme$cb_release_acme_rmsast", (COND_VALUE_TYPE, ACM_WORK_QUEUE_ENTRY_TYPE, UNSIGNED_LONGWORD), (VALUE, REFERENCE, REFERENCE)); -- -- Release ACME Resource -- -- acme$cb_release_resource wqe, resource_type, resource_value -- -- wqe = address of ACM Work Queue Entry -- resource_type = type of (ACME defined) resource to allocate -- resource_value = address of quadword to receive the value of resource allocated -- procedure ACME_CB_RELEASE_RESOURCE ( STATUS : out COND_VALUE_TYPE; -- return value WQE : in out ACM_WORK_QUEUE_ENTRY_TYPE; RESOURCE_TYPE : in UNSIGNED_LONGWORD; RESOURCE_VALUE : in UNSIGNED_QUADWORD); pragma INTERFACE (EXTERNAL, ACME_CB_RELEASE_RESOURCE); pragma IMPORT_VALUED_PROCEDURE (ACME_CB_RELEASE_RESOURCE, "acme$cb_release_resource", (COND_VALUE_TYPE, ACM_WORK_QUEUE_ENTRY_TYPE, UNSIGNED_LONGWORD, UNSIGNED_QUADWORD), (VALUE, REFERENCE, VALUE, REFERENCE)); -- -- Release WQE AST Context -- -- acme$cb_release_wqe_ast wqe, ast_context -- -- wqe = address of ACM Work Queue Entry -- ast_context = AST parameter value -- procedure ACME_CB_RELEASE_WQE_AST ( STATUS : out COND_VALUE_TYPE; -- return value WQE : in out ACM_WORK_QUEUE_ENTRY_TYPE; AST_CONTEXT : in UNSIGNED_QUADWORD); pragma INTERFACE (EXTERNAL, ACME_CB_RELEASE_WQE_AST); pragma IMPORT_VALUED_PROCEDURE (ACME_CB_RELEASE_WQE_AST, "acme$cb_release_wqe_ast", (COND_VALUE_TYPE, ACM_WORK_QUEUE_ENTRY_TYPE, UNSIGNED_QUADWORD), (VALUE, REFERENCE, REFERENCE)); -- -- Release WQE RMS AST Context -- -- acme$cb_release_wqe_rmsast wqe, ast_context -- -- wqe = address of ACM Work Queue Entry -- ast_context = AST parameter value -- procedure ACME_CB_RELEASE_WQE_RMSAST ( STATUS : out COND_VALUE_TYPE; -- return value WQE : in out ACM_WORK_QUEUE_ENTRY_TYPE; AST_CONTEXT : in UNSIGNED_LONGWORD); pragma INTERFACE (EXTERNAL, ACME_CB_RELEASE_WQE_RMSAST); pragma IMPORT_VALUED_PROCEDURE (ACME_CB_RELEASE_WQE_RMSAST, "acme$cb_release_wqe_rmsast", (COND_VALUE_TYPE, ACM_WORK_QUEUE_ENTRY_TYPE, UNSIGNED_LONGWORD), (VALUE, REFERENCE, REFERENCE)); -- -- Report ACME Activity -- -- acme$cb_report_activity wqe, activity -- -- wqe = address of ACM Work Queue Entry -- activity = address of ACME activity (status information) string -- procedure ACME_CB_REPORT_ACTIVITY ( STATUS : out COND_VALUE_TYPE; -- return value WQE : in out ACM_WORK_QUEUE_ENTRY_TYPE; ACTIVITY : in STRING); pragma INTERFACE (EXTERNAL, ACME_CB_REPORT_ACTIVITY); pragma IMPORT_VALUED_PROCEDURE (ACME_CB_REPORT_ACTIVITY, "acme$cb_report_activity", (COND_VALUE_TYPE, ACM_WORK_QUEUE_ENTRY_TYPE, STRING), (VALUE, REFERENCE, DESCRIPTOR(S))); -- -- Report ACME Attributes -- -- acme$cb_report_attributes wqe, ident, resource_req -- -- wqe = address of ACM Work Queue Entry -- ident = address of descriptor describing ident string -- resource_req = address of ACME resource requirements structure -- procedure ACME_CB_REPORT_ATTRIBUTES ( STATUS : out COND_VALUE_TYPE; -- return value WQE : in out ACM_WORK_QUEUE_ENTRY_TYPE; IDENT : in STRING; RESOURCE_REQ : in ACME_RESOURCE_REQUIREMENTS_TYPE); pragma INTERFACE (EXTERNAL, ACME_CB_REPORT_ATTRIBUTES); pragma IMPORT_VALUED_PROCEDURE (ACME_CB_REPORT_ATTRIBUTES, "acme$cb_report_attributes", (COND_VALUE_TYPE, ACM_WORK_QUEUE_ENTRY_TYPE, STRING, ACME_RESOURCE_REQUIREMENTS_TYPE), (VALUE, REFERENCE, DESCRIPTOR(S), REFERENCE)); -- -- Send to Log File -- -- acme$cb_send_logfile wqe, msgvec -- -- wqe = address of ACM Work Queue Entry -- msgvec = address of $PUTMSG style message vector -- actrtn = address of action routine -- actprm = parameter to pass to action routine -- procedure ACME_CB_SEND_LOGFILE ( STATUS : out COND_VALUE_TYPE; -- return value WQE : in out ACM_WORK_QUEUE_ENTRY_TYPE; MSGVEC : in UNSIGNED_LONGWORD_ARRAY; ACTRTN : in ADDRESS := ADDRESS_ZERO; ACTPRM : in USER_ARG_TYPE := USER_ARG_ZERO); pragma INTERFACE (EXTERNAL, ACME_CB_SEND_LOGFILE); pragma IMPORT_VALUED_PROCEDURE (ACME_CB_SEND_LOGFILE, "acme$cb_send_logfile", (COND_VALUE_TYPE, ACM_WORK_QUEUE_ENTRY_TYPE, UNSIGNED_LONGWORD_ARRAY, ADDRESS, USER_ARG_TYPE), (VALUE, REFERENCE, REFERENCE, VALUE, VALUE)); -- -- Send to Operator -- -- acme$cb_send_operator wqe, msgtxt -- -- wqe = address of ACM Work Queue Entry -- msgtxt = address of descriptor describing message text -- procedure ACME_CB_SEND_OPERATOR ( STATUS : out COND_VALUE_TYPE; -- return value WQE : in out ACM_WORK_QUEUE_ENTRY_TYPE; MSGTXT : in STRING); pragma INTERFACE (EXTERNAL, ACME_CB_SEND_OPERATOR); pragma IMPORT_VALUED_PROCEDURE (ACME_CB_SEND_OPERATOR, "acme$cb_send_operator", (COND_VALUE_TYPE, ACM_WORK_QUEUE_ENTRY_TYPE, STRING), (VALUE, REFERENCE, DESCRIPTOR(S))); -- -- Set Secondary (Proctected) Status -- -- acme$cb_set_2nd_status wqe, status_value -- -- wqe = address of ACM Work Queue Entry -- status_value = specific status value/condition code -- procedure ACME_CB_SET_2ND_STATUS ( STATUS : out COND_VALUE_TYPE; -- return value WQE : in out ACM_WORK_QUEUE_ENTRY_TYPE; STATUS_VALUE : in COND_VALUE_TYPE); pragma INTERFACE (EXTERNAL, ACME_CB_SET_2ND_STATUS); pragma IMPORT_VALUED_PROCEDURE (ACME_CB_SET_2ND_STATUS, "acme$cb_set_2nd_status", (COND_VALUE_TYPE, ACM_WORK_QUEUE_ENTRY_TYPE, COND_VALUE_TYPE), (VALUE, REFERENCE, VALUE)); -- -- Set ACME Status -- -- acme$cb_set_acme_status wqe, status_value -- -- wqe = address of ACM Work Queue Entry -- status_value = ACME specific status value/condition code -- procedure ACME_CB_SET_ACME_STATUS ( STATUS : out COND_VALUE_TYPE; -- return value WQE : in out ACM_WORK_QUEUE_ENTRY_TYPE; STATUS_VALUE : in UNSIGNED_LONGWORD); pragma INTERFACE (EXTERNAL, ACME_CB_SET_ACME_STATUS); pragma IMPORT_VALUED_PROCEDURE (ACME_CB_SET_ACME_STATUS, "acme$cb_set_acme_status", (COND_VALUE_TYPE, ACM_WORK_QUEUE_ENTRY_TYPE, UNSIGNED_LONGWORD), (VALUE, REFERENCE, VALUE)); -- -- Set Designated DOI (Accept Request) -- -- acme$cb_set_designated_doi wqe -- -- wqe = address of ACM Work Queue Entry -- procedure ACME_CB_SET_DESIGNATED_DOI ( STATUS : out COND_VALUE_TYPE; -- return value WQE : in out ACM_WORK_QUEUE_ENTRY_TYPE); pragma INTERFACE (EXTERNAL, ACME_CB_SET_DESIGNATED_DOI); pragma IMPORT_VALUED_PROCEDURE (ACME_CB_SET_DESIGNATED_DOI, "acme$cb_set_designated_doi", (COND_VALUE_TYPE, ACM_WORK_QUEUE_ENTRY_TYPE), (VALUE, REFERENCE)); -- -- Set Logon Flag -- -- acme$cb_set_logon_flag wqe, flag -- -- wqe = address of ACM Work Queue Entry -- flag = flag number to set -- procedure ACME_CB_SET_LOGON_FLAG ( STATUS : out COND_VALUE_TYPE; -- return value WQE : in out ACM_WORK_QUEUE_ENTRY_TYPE; FLAG : in UNSIGNED_LONGWORD); pragma INTERFACE (EXTERNAL, ACME_CB_SET_LOGON_FLAG); pragma IMPORT_VALUED_PROCEDURE (ACME_CB_SET_LOGON_FLAG, "acme$cb_set_logon_flag", (COND_VALUE_TYPE, ACM_WORK_QUEUE_ENTRY_TYPE, UNSIGNED_LONGWORD), (VALUE, REFERENCE, VALUE)); -- -- Set Non-Native (non-OpenVMS) Logon Statistics -- -- acme$cb_set_logon_stats_doi wqe, logon_data -- -- wqe = address of ACM Work Queue Entry -- logon_data = address of OpenVMS logon statistics buffer -- procedure ACME_CB_SET_LOGON_STATS_DOI ( STATUS : out COND_VALUE_TYPE; -- return value WQE : in out ACM_WORK_QUEUE_ENTRY_TYPE; LOGON_DATA : in ACM_LOGON_INFORMATION_DOI_TYPE); pragma INTERFACE (EXTERNAL, ACME_CB_SET_LOGON_STATS_DOI); pragma IMPORT_VALUED_PROCEDURE (ACME_CB_SET_LOGON_STATS_DOI, "acme$cb_set_logon_stats_doi", (COND_VALUE_TYPE, ACM_WORK_QUEUE_ENTRY_TYPE, ACM_LOGON_INFORMATION_DOI_TYPE), (VALUE, REFERENCE, REFERENCE)); -- -- Set Native (OpenVMS) Logon Statistics -- -- acme$cb_set_logon_stats_vms wqe, logon_data -- -- wqe = address of ACM Work Queue Entry -- logon_data = address of OpenVMS logon statistics buffer -- procedure ACME_CB_SET_LOGON_STATS_VMS ( STATUS : out COND_VALUE_TYPE; -- return value WQE : in out ACM_WORK_QUEUE_ENTRY_TYPE; LOGON_DATA : in ACM_LOGON_INFORMATION_VMS_TYPE); pragma INTERFACE (EXTERNAL, ACME_CB_SET_LOGON_STATS_VMS); pragma IMPORT_VALUED_PROCEDURE (ACME_CB_SET_LOGON_STATS_VMS, "acme$cb_set_logon_stats_vms", (COND_VALUE_TYPE, ACM_WORK_QUEUE_ENTRY_TYPE, ACM_LOGON_INFORMATION_VMS_TYPE), (VALUE, REFERENCE, REFERENCE)); -- -- Set Output Item -- -- acme$cb_set_output_item wqe, entry, data -- -- wqe = address of ACM Work Queue Entry -- entry = address of the item list entry to set -- data = address of descriptor describing data for field -- procedure ACME_CB_SET_OUTPUT_ITEM ( STATUS : out COND_VALUE_TYPE; -- return value WQE : in out ACM_WORK_QUEUE_ENTRY_TYPE; ENTR : in ITEM_REC_TYPE; DATA : in UNSIGNED_BYTE_ARRAY); pragma INTERFACE (EXTERNAL, ACME_CB_SET_OUTPUT_ITEM); pragma IMPORT_VALUED_PROCEDURE (ACME_CB_SET_OUTPUT_ITEM, "acme$cb_set_output_item", (COND_VALUE_TYPE, ACM_WORK_QUEUE_ENTRY_TYPE, ITEM_REC_TYPE, UNSIGNED_BYTE_ARRAY), (VALUE, REFERENCE, REFERENCE, DESCRIPTOR)); -- -- Set Phase Notification Event -- -- acme$cb_set_phase_event wqe, event_data -- -- wqe = address of ACM Work Queue Entry -- event_data = prompt/message text -- procedure ACME_CB_SET_PHASE_EVENT ( STATUS : out COND_VALUE_TYPE; -- return value WQE : in out ACM_WORK_QUEUE_ENTRY_TYPE; EVENT_DATA : in UNSIGNED_BYTE_ARRAY := UNSIGNED_BYTE_ARRAY'NULL_PARAMETER); pragma INTERFACE (EXTERNAL, ACME_CB_SET_PHASE_EVENT); pragma IMPORT_VALUED_PROCEDURE (ACME_CB_SET_PHASE_EVENT, "acme$cb_set_phase_event", (COND_VALUE_TYPE, ACM_WORK_QUEUE_ENTRY_TYPE, UNSIGNED_BYTE_ARRAY), (VALUE, REFERENCE, DESCRIPTOR)); -- -- Set WQE Flag -- -- acme$cb_set_wqe_flag wqe, flag -- -- wqe = address of ACM Work Queue Entry -- flag = flag number to set -- procedure ACME_CB_SET_WQE_FLAG ( STATUS : out COND_VALUE_TYPE; -- return value WQE : in out ACM_WORK_QUEUE_ENTRY_TYPE; FLAG : in UNSIGNED_LONGWORD); pragma INTERFACE (EXTERNAL, ACME_CB_SET_WQE_FLAG); pragma IMPORT_VALUED_PROCEDURE (ACME_CB_SET_WQE_FLAG, "acme$cb_set_wqe_flag", (COND_VALUE_TYPE, ACM_WORK_QUEUE_ENTRY_TYPE, UNSIGNED_LONGWORD), (VALUE, REFERENCE, VALUE)); -- -- Set WQE Parameter (Item) -- -- acme$cb_set_wqe_parameter wqe, id, data -- -- wqe = address of ACM Work Queue Entry -- id = id number of parameter (item) field to set -- data = address of descriptor describing data for field -- procedure ACME_CB_SET_WQE_PARAMETER ( STATUS : out COND_VALUE_TYPE; -- return value WQE : in out ACM_WORK_QUEUE_ENTRY_TYPE; ID : in UNSIGNED_LONGWORD; DATA : in UNSIGNED_BYTE_ARRAY); pragma INTERFACE (EXTERNAL, ACME_CB_SET_WQE_PARAMETER); pragma IMPORT_VALUED_PROCEDURE (ACME_CB_SET_WQE_PARAMETER, "acme$cb_set_wqe_parameter", (COND_VALUE_TYPE, ACM_WORK_QUEUE_ENTRY_TYPE, UNSIGNED_LONGWORD, UNSIGNED_BYTE_ARRAY), (VALUE, REFERENCE, VALUE, DESCRIPTOR)); -- -- Convert a UCS string to a Latin1 string -- -- acme$cb_ucs_to_latin1 wqe, ucs_string, latin1_string, latin1_bytes -- -- wqe = address of ACM Work Queue Entry -- ucs_string = address of descriptor for buffer -- holding the UCS encoded string -- latin1_string = address of descriptor for buffer -- to receive the Latin-1 encoded string -- latin1_bytes = length of latin1 string (in bytes) -- procedure ACME_CB_UCS_TO_LATIN1 ( STATUS : out COND_VALUE_TYPE; -- return value WQE : in out ACM_WORK_QUEUE_ENTRY_TYPE; UCS_STRING : in STRING; LATIN1_STRING : in out STRING; LATIN1_BYTES : out UNSIGNED_WORD); pragma INTERFACE (EXTERNAL, ACME_CB_UCS_TO_LATIN1); pragma IMPORT_VALUED_PROCEDURE (ACME_CB_UCS_TO_LATIN1, "acme$cb_ucs_to_latin1", (COND_VALUE_TYPE, ACM_WORK_QUEUE_ENTRY_TYPE, STRING, STRING, UNSIGNED_WORD), (VALUE, REFERENCE, DESCRIPTOR(S), DESCRIPTOR(S), REFERENCE)); -- -- Set New Password Flags -- -- acme$cb_set_new_pwd_flags wqe, flag -- -- wqe = address of ACM Work Queue Entry -- flag = flag number to set -- procedure ACME_CB_SET_NEW_PWD_FLAGS ( STATUS : out COND_VALUE_TYPE; -- return value WQE : in out ACM_WORK_QUEUE_ENTRY_TYPE; FLAG : in UNSIGNED_LONGWORD); pragma INTERFACE (EXTERNAL, ACME_CB_SET_NEW_PWD_FLAGS); pragma IMPORT_VALUED_PROCEDURE (ACME_CB_SET_NEW_PWD_FLAGS, "acme$cb_set_new_pwd_flags", (COND_VALUE_TYPE, ACM_WORK_QUEUE_ENTRY_TYPE, UNSIGNED_LONGWORD), (VALUE, REFERENCE, VALUE)); end ACMEAGENT_CB_DEF;