02/14/84 mode_string_ The mode_string_subroutine provides a set of entry points for handling mode strings. Mode strings are a way for a user to pass control information to a command or subsystem. A mode string is a character string which contains one or more modes, or is empty. A mode is a character string, separated from other modes by a comma. The mode_string_ entries describe a mode string with the data structures declared in mode_string_info.incl.pl1. See the Subroutines manual (AG93) for more information. Entry points in mode_string_: (List is generated by the help command) :Entry: combine: 02/14/84 mode_string_$combine Function: returns a mode string which represents the union of the modes defined in the two input arguments. The order of modes in the output string is not defined. If the same parameter is given in both structures, the type and value are taken from the second structure. Syntax: declare mode_string_$combine entry (ptr, ptr, char (*), fixed bin (35)); call mode_string_$combine (mode_string_info_ptr1, mode_string_info_ptr2, modestr, code); Arguments: mode_string_info_ptr1 points to the first mode_string_info structure. (Input) mode_string_info_ptr2 points to the second mode_string_info structure. (Input) This pointer may be null, and the string is formed from the first structure only. modestr is a mode string. (Input) code is a standard system error code. (Output) :Entry: delete: 02/14/84 mode_string_$delete Function: returns a new mode string, with any mention of specified modes deleted. It is not an error if any of the specified modes are absent from the structure. Syntax: declare mode_string_$delete entry (ptr, (*) char (*), char (*), fixed bin (35)); call mode_string_$delete (mode_string_info_ptr, excludes, modestr, code); Arguments: mode_string_info_ptr is a pointer to the mode_string_info structure. (Input) excludes is the array of names to be excluded. (Input) To exclude a single name, a scalar may be given. modestr is a mode string. (Input) code is a standard system error code. (Output) :Entry: get: 02/14/84 mode_string_$get Function: returns a mode string formed from the mode string info structure supplied it. If the caller supplied string is not long enough to hold the mode string, it is truncated at the nearest whole mode, and the error code error_table_$mode_string_truncated is returned. This ensures that the mode string returned is valid. Syntax: declare mode_string_$get entry (ptr, char (*), fixed bin (35)); call mode_string_$get (mode_string_info_ptr, modestr, code); Arguments: mode_string_info_ptr is a pointer to the mode_string_info structure. (Input) modestr is a mode string. (Input) code is a standard system error code. (Output) :Entry: get_error: 02/14/84 mode_string_$get_error Function: returns a mode string built from an info structure. Only the modes whose values have nonzero error codes are returned. This selection mechanism can be used to return a list of bad modes when a call to iox_$modes fails, for inclusion in an error message. Syntax: declare mode_string_$get_error entry (ptr, char (*), fixed bin (35)); call mode_string_$get_error (mode_string_info_ptr, modestr, code); Arguments: mode_string_info_ptr is a pointer to the mode_string_info structure. (Input) modestr is a mode string. (Input) code is a standard system error code. (Output) :Entry: get_mode: 02/14/84 mode_string_$get_mode Function: parses a supplied mode string and extracts a single parameter from it, filling in a caller-supplied mode_value structure (remember to set the version), or returning an error code if the parameter is not present in the string. Syntax: declare mode_string_$get_mode (char (*), char (*), ptr, fixed bin (35)); call mode_string_$get_mode (modestr, mode_name, mode_value_ptr, code); Arguments: modestr is a mode string. (Input) mode_name is the name of the mode to search for. (Input) mode_value_ptr is a pointer to a mode_value structure. (Input) code is a standard system error code. (Output) :Entry: parse: 02/14/84 mode_string_$parse Function: parses a mode string, allocating a structure giving the parameters specified in the string. Syntax: declare mode_string_$parse entry (char (*), ptr, ptr, fixed bin (35)); call mode_string_$parse (modestr, areap, mode_string_info_ptr, code); Arguments: modestr is a mode string. (Input) areap points to an area where the mode string info structure may be allocated. (Input) If a null pointer is provided, the system area is used. mode_string_info_ptr is a pointer to the mode_string_info structure. (Output) code is a standard system error code. (Output) It can be: error_table_$bad_mode_value rejects modes for incorrect type. ----------------------------------------------------------- Historical Background This edition of the Multics software materials and documentation is provided and donated to Massachusetts Institute of Technology by Group BULL including BULL HN Information Systems Inc. as a contribution to computer science knowledge. This donation is made also to give evidence of the common contributions of Massachusetts Institute of Technology, Bell Laboratories, General Electric, Honeywell Information Systems Inc., Honeywell BULL Inc., Groupe BULL and BULL HN Information Systems Inc. to the development of this operating system. Multics development was initiated by Massachusetts Institute of Technology Project MAC (1963-1970), renamed the MIT Laboratory for Computer Science and Artificial Intelligence in the mid 1970s, under the leadership of Professor Fernando Jose Corbato. Users consider that Multics provided the best software architecture for managing computer hardware properly and for executing programs. Many subsequent operating systems incorporated Multics principles. Multics was distributed in 1975 to 2000 by Group Bull in Europe , and in the U.S. by Bull HN Information Systems Inc., as successor in interest by change in name only to Honeywell Bull Inc. and Honeywell Information Systems Inc. . ----------------------------------------------------------- Permission to use, copy, modify, and distribute these programs and their documentation for any purpose and without fee is hereby granted,provided that the below copyright notice and historical background appear in all copies and that both the copyright notice and historical background and this permission notice appear in supporting documentation, and that the names of MIT, HIS, BULL or BULL HN not be used in advertising or publicity pertaining to distribution of the programs without specific prior written permission. Copyright 1972 by Massachusetts Institute of Technology and Honeywell Information Systems Inc. Copyright 2006 by BULL HN Information Systems Inc. Copyright 2006 by Bull SAS All Rights Reserved