On Alpha and Integrity server systems, allocates resources for Fast I/O. This service accepts 64-bit addresses. Format SYS$IO_SETUP func ,bufobj ,iosobj ,astadr ,flags ,return_fandle C Prototype int sys$io_setup (unsigned int func, struct _generic_64 *bufobj, struct _generic_64 *iosobj, void (*astadr)(struct _iosa *), unsigned int flags, unsigned __int64 *return_fandle);
1 – Arguments
func OpenVMS usage:function_code type: longword access: read only mechanism: by value I/O function code. Must be one of the following: o IO$_READVBLK o IO$_WRITEVBLK o IO$_READLBLK o IO$_WRITELBLK Various function modifiers are supported, depending on the device and driver. Disk drivers support IO$M_NOVCACHE and IO$M_DATACHECK. Some tape devices support IO$M_REVERSE. Illegal modifiers are detected by the $IO_PERFORM(W) service. bufobj OpenVMS usage:buffer object type: quadword (unsigned) access: read only mechanism: by 32- or 64-bit reference Handle describing the buffer object that contains the user's buffer. This identifier cannot be 0. iosobj OpenVMS usage:object handle type: vector longword (unsigned) access: read only mechanism: by 32- or 64-bit reference Buffer object handle describing the buffer object that contains the I/O Status Area (IOSA). This might or might not be the same identifier as the bufobj argument. This identifier cannot be 0. astadr OpenVMS usage:ast_procedure type: procedure value access: read only mechanism: by 32- or 64-bit reference Completion AST routine address (0, if none). There is no AST parameter argument. When the AST routine is called, the AST parameter will be the address of the IOSA for the operation. Applications can store data in the IOSA at offset IOSA$IH_ CONTEXT. flags OpenVMS usage:mask_longword type: 64-bit integer (unsigned) access: read only mechanism: by value Flag mask. The flags argument is a bit vector in which each bit corresponds to a flag. Flags are defined in the module IOSADEF. The following table describes the flags that are valid for the $IO_SETUP service: Flag Description FIO$M_ This is a high priority I/O; that is, it is EXPEDITE to be given preferential treatment by the I/O subsystem. Use of this bit requires ALTPRI or PHY_IO privilege. FIO$M_AST_ The AST procedure does not use, or call any NOFLOAT procedure that uses, any floating-point registers. This is a performance option. If set, AST delivery will neither save nor restore floating-point registers. Caution: Use of floating-point registers when FIO$M_AST_NOFLOAT has been specified can cause unpredictable, difficult to detect, error conditions. All other bits in the flags argument are reserved for future use by VSI and should be specified as 0. return_fandle OpenVMS usage:fandle type: 64-bit integer (unsigned) access: write only mechanism: by 32- or 64-bit reference Address of an aligned quadword to receive the fandle for this I/O operation.