/* module SCS_ROUTINES.H "X-6" * * Copyright © Digital Equipment Corporation, 1999; All Rights Reserved. * Unpublished rights reserved under the copyright laws of the United States. * * The software contained on this media is proprietary to and embodies the * confidential technology of Digital Equipment Corporation. Possession, use, * duplication or dissemination of the software and media is authorized only * pursuant to a valid written license from Digital Equipment Corporation. * * RESTRICTED RIGHTS LEGEND Use, duplication, or disclosure by the U.S. * Government is subject to restrictions as set forth in Subparagraph * (c)(1)(ii) of DFARS 252.227-7013, or in FAR 52.227-19, as applicable. * *++ * * FACILITY: * * VMS Executive (LIB_H) * * ABSTRACT: * * This module contains the C function prototypes for the VMS system * routines that begin with the SCS_STD$, and have a standard call interface. * * NOTE: * * The conventions used in these function prototypes are: * * 1. Case * This header file supports invoking the routines by either using all * lowercase or all uppercase names for the system routines. Either * naming convention works even in the presence of the /NAME=AS_IS * compiler switch. * * 2. Integer size * The generic "int" type is used where it doesn't matter whether the * integer is 32 or 64 bits wide. Thus "int" is the returned value of * most functions and is the type for most integers passed by value. * However, an unambiguous integer type, e.g. int32, is used for any * integer that is passed by reference. Also, int64 is used for any * integer that is expected to be 64 bits wide even if it is passed by * value. * * 3. Types * The function prototypes use the types defined in [SYSLIB]SYS$LIB_C.TLB. * The definitions of all types used are included below. * * 4. Parameter names * Parameter names are used in the prototypes. Although they are ignored * by the compiler they do provide useful documentation. For example: * * void ioc_std$reqcom (int iost1, int iost2, UCB *ucb); * * is used instead of the functionally equivalent: * * void ioc_std$reqcom (int, int, UCB *); * * 5. Parameters passed by reference * The parameter name includes the "_p" suffix if the parameter is passed * by reference unless the parameter type implies that it is always passed * by reference. For example, there is no "_p" suffix in: * * UCB *ucb; * int32 iosb[2]; * * since structures and arrays are always passed by reference. However: * * int32 *outlen_p; * UCB **new_ucb_p; * * include the suffix to denote that outlen_p is a pointer to a 32 bit * integer, and to denote that new_ucb_p is a pointer to a pointer to a * UCB structure. * * 6. Mixed pointer sizes within one argument * If a 64-bit pointer is being passed by reference, the reference to * the pointer should also be 64 bits wide to avoid confusion. * For example: * * PTE_PPQ va_pte_p; * VOID_PPQ start_va_p; * * should be used instead of: * * PTE_PQ *va_pte_p; * VOID_PQ *start_va_p; * * * Author: * * James M. Blue Creation Date: 22-Mar-1999 * * Modification History: * * X-6 JMB185 James M. Blue 5-Oct-1999 * Missed a few when doing X-5! * * X-5 JMB171 James M. Blue 16-Aug-1999 * Remove the CDT argument from the SCS_STD$_* send, receive, and * map routine calls where the CDT used by the underlying SCS$_* * routine is acquired from a different source, such as the CDRP. * * X-4 JMB152 James M. Blue 3-Aug-1999 * Modify the SCS_STD$LKP* routines to be void output and to * pass the action parameter as void to the void return * action routine. Eliminated the unnecessary PDT argument * in the SCS_STD$LKP_MSGWAIT prototype. The PDT is available * via the CDT argument if needed. * * X-3 JMB129 James M. Blue 27-Jul-1999 * Correct the argument prototype in SCS$CONNECT for the SYSAP routine * called by FAST_RECVMSG_REQUEST. The CDRP had not been handled * correctly between the SYSAP and the caller of SCS$FAST_RECVMSG_REQUEST. * Add CDT as output argument to SCS_STD$FAST_RECVMSG_REQUEST. * * X-2 JMB104 James M. Blue 6-Apr-1999 * Add in prototypes for SCS_STD$REQUEST_DATA, SCS_STD$SEND_DATA, * and SCS_STD$SEND_DATA_WMSG. * * X-1 JMB085 James M. Blue 22-Mar-1999 * Initial version. *-- */ #ifndef __SCS_ROUTINES_LOADED #define __SCS_ROUTINES_LOADED 1 #ifdef __cplusplus extern "C" { #define __unknown_params ... #define __optional_params ... #else #define __unknown_params #define __optional_params ... #endif /* * Define all types that are used in the following function prototypes. */ #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include /* * VMS system routine entry points are defined externally using * uppercase names. The following macros allow the usage of the * lowercase versions of these names even in the presence of the * /NAME=AS_IS compiler switch. */ #define scs_std$accept SCS_STD$ACCEPT #define scs_std$allocdg SCS_STD$ALLOCDG #define scs_std$alloc_msgbuf SCS_STD$ALLOC_MSGBUF #define scs_std$alloc_rspid SCS_STD$ALLOC_RSPID #define scs_std$cancel_mbx SCS_STD$CANCEL_MBX #define scs_std$cancel_wait SCS_STD$CANCEL_WAIT #define scs_std$change_affinity SCS_STD$CHANGE_AFFINITY #define scs_std$check_vc_tmo SCS_STD$CHECK_VC_TMO #define scs_std$cleanup_rbuns SCS_STD$CLEANUP_RBUNS #define scs_std$config_pth SCS_STD$CONFIG_PTH #define scs_std$config_sys SCS_STD$CONFIG_SYS #define scs_std$connect SCS_STD$CONNECT #define scs_std$credit_avail SCS_STD$CREDIT_AVAIL #define scs_std$deallocdg SCS_STD$DEALLOCDG #define scs_std$deallocmsg SCS_STD$DEALLOCMSG #define scs_std$deall_cdt SCS_STD$DEALL_CDT #define scs_std$deall_rspid SCS_STD$DEALL_RSPID #define scs_std$disconnect SCS_STD$DISCONNECT #define scs_std$fast_recvmsg_chk_res SCS_STD$FAST_RECVMSG_CHK_RES #define scs_std$fast_recvmsg_pm SCS_STD$FAST_RECVMSG_PM #define scs_std$fast_recvmsg_request SCS_STD$FAST_RECVMSG_REQUEST #define scs_std$fast_sendmsg_ass_res_pm SCS_STD$FAST_SENDMSG_ASS_RES_PM #define scs_std$fast_sendmsg_pm SCS_STD$FAST_SENDMSG_PM #define scs_std$fast_sendmsg_request SCS_STD$FAST_SENDMSG_REQUEST #define scs_std$find_bd SCS_STD$FIND_BD #define scs_std$find_rdte SCS_STD$FIND_RDTE #define scs_std$init_bdlt SCS_STD$INIT_BDLT #define scs_std$initialize_pdt SCS_STD$INITIALIZE_PDT #define scs_std$listen SCS_STD$LISTEN #define scs_std$lkp_msgwait SCS_STD$LKP_MSGWAIT #define scs_std$lkp_pb_pdt SCS_STD$LKP_PB_PDT #define scs_std$lkp_rdtcdrp SCS_STD$LKP_RDTCDRP #define scs_std$lkp_rdtwait SCS_STD$LKP_RDTWAIT #define scs_std$map SCS_STD$MAP #define scs_std$mreset SCS_STD$MRESET #define scs_std$msg_buf_avail SCS_STD$MSG_BUF_AVAIL #define scs_std$mstart SCS_STD$MSTART #define scs_std$new_pb SCS_STD$NEW_PB #define scs_std$new_sb SCS_STD$NEW_SB #define scs_std$notify_sysap SCS_STD$NOTIFY_SYSAP #define scs_std$poll_mbx SCS_STD$POLL_MBX #define scs_std$poll_mode SCS_STD$POLL_MODE #define scs_std$poll_proc SCS_STD$POLL_PROC #define scs_std$port_init_done SCS_STD$PORT_INIT_DONE #define scs_std$queuedg SCS_STD$QUEUEDG #define scs_std$queuemdgs SCS_STD$QUEUEMDGS #define scs_std$rchmsgbuf SCS_STD$RCHMSGBUF #define scs_std$rclmsgbuf SCS_STD$RCLMSGBUF #define scs_std$recyl_rspid SCS_STD$RECYL_RSPID #define scs_std$reject SCS_STD$REJECT #define scs_std$repossess_cdrp SCS_STD$REPOSSESS_CDRP #define scs_std$reqdata SCS_STD$REQDATA #define scs_std$request_data SCS_STD$REQUEST_DATA #define scs_std$restore_credit SCS_STD$RESTORE_CREDIT #define scs_std$resumewaitr SCS_STD$RESUMEWAITR #define scs_std$resume_thread SCS_STD$RESUME_THREAD #define scs_std$senddata SCS_STD$SENDDATA #define scs_std$senddata_wmsg SCS_STD$SENDDATA_WMSG #define scs_std$senddg SCS_STD$SENDDG #define scs_std$sendmsg SCS_STD$SENDMSG #define scs_std$sendrgdg SCS_STD$SENDRGDG #define scs_std$send_data SCS_STD$SEND_DATA #define scs_std$send_data_wmsg SCS_STD$SEND_DATA_WMSG #define scs_std$set_load_rating SCS_STD$SET_LOAD_RATING #define scs_std$shutdown SCS_STD$SHUTDOWN #define scs_std$stall SCS_STD$STALL #define scs_std$start_pwf_recov SCS_STD$START_PWF_RECOV #define scs_std$unmap SCS_STD$UNMAP #define scs_std$unstallucb SCS_STD$UNSTALLUCB #define scs_std$update_port_load_vector SCS_STD$UPDATE_PORT_LOAD_VECTOR #define scs_std$vc_flush SCS_STD$VC_FLUSH /* * Function prototypes for system routines with the SCS_STD$ prefix. */ int scs_std$accept ( void (*msgadr_p)( unsigned int msg_length, void *msg_buf_p, CDT *cdt_p, PDT *pdt_p ), void (*dgadr_p)( unsigned int dg_status, unsigned int dg_length, void *dg_buf_p, CDT *cdt_p, PDT *pdt_p ), void (*erradr_p)( unsigned int err_status, unsigned int reason, CDT *cdt_p, PDT *pdt_p), int initcr, int minscr, int initdg, int blkpri, void *condat_p, void *auxstr_p, void (*badrsp_p)( __unknown_params ), void (*movadr_p)( unsigned int status, unsigned int move_status, CDT *cdt_p, PDT *pdt_p ), int load_rating, void (*complete_p)( unsigned int accept_status, void *unknown_1, void *unknown_2, CDT *cdt_p, PDT *pdt_p, int accept_parameter ), CDT *cdt_p, int accept_parameter ); int scs_std$allocdg ( PDT *pdt_p, CDRP *cdrp_p ); int scs_std$alloc_msgbuf ( PDT *pdt_p, CDRP *cdrp_p, void (*ravail_p)( unsigned int stall_return_status, CDT *cdt_p, PDT *pdt_p, CDRP *cdrp_p ) ); int scs_std$alloc_rspid ( CDT *cdt_p, PDT *pdt_p, CDRP *cdrp_p, void (*ravail_p)( unsigned int stall_return_status, CDT *cdt_p, PDT *pdt_p, CDRP *cdrp_p ) ); void scs_std$cancel_mbx ( SPPB *sppb ); int scs_std$cancel_wait ( int rwcptr_upd, PDT *pdt_p, CDRP *cdrp_p ); int scs_std$change_affinity( UCB *ucb_p ); void scs_std$cleanup_rbuns( int pooltype, PDT *pdt_p ); int scs_std$config_pth ( void *rmst_lclprt_p, PBO *pbo_p, PB **pb_p ); int scs_std$config_sys ( void *scssystemid_p, SBO *sbo_p, SB **sb_p ); int scs_std$connect ( void (*msgadr_p)( unsigned int msg_length, void *msg_buf_p, CDT *cdt_p, PDT *pdt_p ), void (*dgadr_p)( unsigned int dg_status, unsigned int dg_length, void *dg_buf_p, CDT *cdt_p, PDT *pdt_p ), void (*erradr_p)( unsigned int err_status, unsigned int reason, CDT *cdt_p, PDT *pdt_p), void *rsysid_p, void *rstadr_p, void *rprnam_p, void *lprnam_p, int initcr, int minscr, int initdg, int blkpri, void *condat_p, void *auxstr_p, void (*badrsp_p)( __unknown_params ), void (*movadr_p)( unsigned int status, unsigned int move_status, CDT *cdt_p, PDT *pdt_p ), int load_rating, int (*req_fast_recvmsg_p)( int msg_length, void *msg_buf_p, CDT *cdt_p, PDT *pdt_p, CDRP **cdrp_p ), void (*fast_recvmsg_pm_p)( void *msg_buf_p, CDT *cdt_p, PDT *pdt_p, CDRP *cdrp_p ), void (*change_aff_p)( SB *sb_p, PB *pb_p, CDT *cdt_p, PDT *pdt_p ), void (*complete_p)( unsigned int connect_status, unsigned int reject_reason, void *msg_buf_p, CDT *cdt_p, PDT *pdt_p, int connect_parameter ), int connect_parameter ); void scs_std$credit_avail( CDT *cdt_p, PDT *pdt_p ); void scs_std$deallocdg ( void *dgbuf, PDT *pdt_p ); void scs_std$deallocmsg ( PDT *pdt_p, CDRP *cdrp_p ); void scs_std$deall_cdt ( CDT *cdt_p ); int scs_std$deall_rspid ( CDRP *cdrp_p ); void scs_std$dealrgmsg ( void *msg_buf_p, CDT *cdt_p, PDT *pdt_p ); int scs_std$disconnect ( int distyp, CDT *cdt_p, void (*complete_p)( unsigned int disconnect_status, void *unknown_1, void *unknown_2, void *unknown_3, void *unknown_4, int disconnect_parameter ), int disconnect_param ); int scs_std$fast_recvmsg_chk_res ( CDT *cdt_p, PDT *pdt_p, CDRP *cdrp_p ); void scs_std$fast_recvmsg_pm( CDT *cdt_p, PDT *pdt_p, CDRP *cdrp_p, BUFDESC **bd_p ); int scs_std$fast_recvmsg_request( void *msg_buf_p, PDT *pdt_p, CDT **cdt_p, CDRP **cdrp_p ); void scs_std$fast_sendmsg_ass_res_pm ( void *svapte_boff_bcnt_p, PDT *pdt_p, CDRP *cdrp_p ); void scs_std$fast_sendmsg_pm ( int msg_buf_len, CDT *cdt_p, PDT *pdt_p, CDRP *cdrp_p, void (*complete)( __unknown_params ) ); int scs_std$fast_sendmsg_request ( void *svapte_boff_bcnt_p, PDT *pdt_p, CDRP *cdrp_p ); int scs_std$find_bd( BDLPTR *bdlt_p, BNAM bnam, BUFDESC **bd_p ); int scs_std$find_rdte ( int rspid, SCS_RD **rdte_p ); int scs_std$init_bdlt( PDT *pdt_p ); int scs_std$initialize_pdt( PDT *pdt_p ); int scs_std$listen ( void (*msgadr_p)(void *msg_buf_p, CDT *cdt_p, PDT *pdt_p ), void (*erradr_p)( unsigned int err_status, unsigned int reason, CDT *cdt_p, PDT *pdt_p), void *lprnam_p, void *prinfo_p, CDT **cdt_p ); void scs_std$lkp_msgwait ( void (*action)( void *action_param, CDT *cdt_p, CDRP *cdrp_p ), void *action_param, CDT *cdt_p ); void scs_std$lkp_pb_pdt ( void (*action)( SB *sb_p, PB *pb_p, PDT *pdt_p ), PDT *pdt_p ); void scs_std$lkp_rdtcdrp ( void (*action)( void *action_param, CDT *cdt_p, CDRP *cdrp_p ), void *action_param, CDT *cdt_p ); void scs_std$lkp_rdtwait ( void (*action)( void *action_param, CDT *cdt_p, CDRP *cdrp_p ), void *action_param, CDT *cdt_p ); int scs_std$map ( void *svapte_boff_bcnt_p, PDT *pdt_p, CDRP *cdrp_p, void (*ravail_p)( unsigned int stall_return_status, CDT *cdt_p, PDT *pdt_p, CDRP *cdrp_p ) ); int scs_std$mreset( int force_flag, void *rstation_p, PDT *pdt_p ); void scs_std$msg_buf_avail( PDT *pdt_p ); int scs_std$mstart( int boot_flag, void *rstation_p, void *boot_address, PDT *pdt_p ); void scs_std$new_pb( PB *pb_p ); void scs_std$new_sb( SB *sb_p ); void scs_std$notify_sysap( int status, PB *pb_p, PDT *pdt_p ); int scs_std$poll_mbx ( int channel_number, void *sysap_name_p, SPPB **sppb_p ); int scs_std$poll_mode ( int enable_disable, SPPB *sppb_p, void *scssystemid_p ); int scs_std$poll_proc ( int (*notification_p)( unsigned int context_data, void *sysap_name_p, void *scssystemid_p, void *process_info_p, void *node_name_p ), unsigned int context_data, void *sysap_name_p, SPPB **sppb_p ); void scs_std$port_init_done( PDT *pdt_p ); int scs_std$queuedg ( void *dg_buf_p, CDT *cdt_p, PDT *pdt_p ); int scs_std$queuemdgs ( int buffer_count, CDT *cdt_p, PDT *pdt_p, int *buffers_added_ ); int scs_std$rchmsgbuf ( PDT *pdt_p, CDRP *cdrp_p, void (*ravail_p)( unsigned int stall_return_status, CDT *cdt_p, PDT *pdt_p, CDRP *cdrp_p ) ); int scs_std$rclmsgbuf ( PDT *pdt_p, CDRP *cdrp_p, void (*ravail_p)( unsigned int stall_return_status, CDT *cdt_p, PDT *pdt_p, CDRP *cdrp_p ) ); void scs_std$recyl_rspid ( CDRP *cdrp_p ); int scs_std$reject ( int rejtyp, CDT *cdt_p, void (*complete_p)( unsigned int reject_status, void *unknown_1, void *unknown_2, void *unknown_3, void *unknown_4, int reject_parameter ), int reject_parameter ); void scs_std$repossess_cdrp ( PDT *pdt_p, CDRP *cdrp_p ); int scs_std$reqdata ( PDT *pdt_p, CDRP *cdrp_p, void (*complete)( unsigned int completion_status, CDT *cdt_p, PDT *pdt_p, CDRP *cdrp_p ) ); int scs_std$request_data ( PDT *pdt_p, CDRP *cdrp_p, void (*complete)( unsigned int completion_status, CDT *cdt_p, PDT *pdt_p, CDRP *cdrp_p ) ); void scs_std$restore_credit ( PDT *pdt_p, CDRP *cdrp_p ); void scs_std$resumewaitr( unsigned int resume_status, CDRP *cdrp_p ); void scs_std$resume_thread( unsigned int resume_status, CDRP *cdrp_p ); int scs_std$senddata ( PDT *pdt_p, CDRP *cdrp_p, void (*complete)( unsigned int completion_status, CDT *cdt_p, PDT *pdt_p, CDRP *cdrp_p ) ); int scs_std$senddata_wmsg ( PDT *pdt_p, CDRP *cdrp_p, void (*complete)( unsigned int completion_status, CDT *cdt_p, PDT *pdt_p, CDRP *cdrp_p ) ); int scs_std$senddg ( int disposition_flag, int dg_msg_length, CDRP *cdrp_p ); int scs_std$sendmsg ( int msg_buf_len, PDT *pdt_p, CDRP *cdrp_p, void (*complete)( unsigned int completion_status, CDT *cdt_p, PDT *pdt_p, CDRP *cdrp_p ) ); int scs_std$sendrgdg ( unsigned int disposition_flag, unsigned int dg_msg_length, void *dg_buf_p, CDT *cdt_p, PDT *pdt_p ); int scs_std$send_data ( PDT *pdt_p, CDRP *cdrp_p, void (*complete)( unsigned int completion_status, CDT *cdt_p, PDT *pdt_p, CDRP *cdrp_p ) ); int scs_std$send_data_wmsg ( int msg_buf_len, PDT *pdt_p, CDRP *cdrp_p, void (*complete)( unsigned int completion_status, CDT *cdt_p, PDT *pdt_p, CDRP *cdrp_p ) ); int scs_std$set_load_rating ( int rating, CDT *cdt_p ); void scs_std$shutdown (); int scs_std$stall ( int stall_condition_code, CDT *cdt_p, PDT *pdt_p, CDRP *cdrp_p, void (*ravail)( unsigned int stall_return_status, void *cdt_p, void *pdt_p, CDRP *cdrp_p ) ); void scs_std$start_pwf_recov( PB *pb_p, PDT *pdt_p ); void scs_std$unmap ( PDT *pdt_p, CDRP *cdrp_p ); void scs_std$unstallucb ( UCB *ucb_p ); void scs_std$vc_flush( PB *pb_p, PDT *pdt_p ); #ifdef __cplusplus } #endif #endif /* __SCS_ROUTINES_LOADED */