/****************************************************************************** * * * VAX/VMS descriptor macros. * * * * Author: * * Terence Lee (DEC/HKO), 18-Oct-1989 * * * * Modification history: * * * ******************************************************************************/ #include /* * descrS - make up a string descriptor. * A total of 32 string descriptor can be created at the same time. * The address of the created descriptor will be returned. */ #define MAX_descriptorS 256 /* Number of descriptors. */ int descrS_index = 0; struct dsc$descriptor_s descriptorS[MAX_descriptorS]; #define descrS(string,len) ( \ descrS_index = (descrS_index == MAX_descriptorS) ? 0 : descrS_index, \ descriptorS[descrS_index].dsc$a_pointer = (string), \ descriptorS[descrS_index].dsc$w_length = (len) ? len : strlen(string), \ descriptorS[descrS_index].dsc$b_dtype = DSC$K_DTYPE_T, \ descriptorS[descrS_index].dsc$b_class = DSC$K_CLASS_S, \ &descriptorS[descrS_index++])