The Requests

The XYZ extension consists of ten new requests and no new errors or events. The actual protocol encoding for XYZ can be found in Appendix B. The requests are of two types:
  1. those requests used to set or query the state of the XYZ facility exclusive of the tag space, i.e. the state used to determine XYZ's operation; and
  2. those requests used to set or query the state of the tag space.

The first category consists of four requests.

XamineYourZerverInstrumentation is used to turn on or off XYZ's instrumentation function. The request also has the side effect of resetting the XYZ status to the no error state (XYZ_NO_ERROR). The request has no reply.

XamineYourZerverTracing is used to turn on or off XYZ's tracing function. The request has no reply.

XamineYourZerverSetCurTraceLevel is used to change the current trace level. The request does not actually enable tracing; that is done through the previous request. The request has no reply.

XamineYourZerverQueryState is used to query the XYZ status, current trace level, and the XYZ instrumentation and tracing booleans. The information is returned by a reply.

The second category of requests used to query or modify the tag space consists of six requests.

XamineYourZerverGetTag is used to query the value and trace level of a specific tag named in the request. The reply contains the value and trace level.

XamineYourZerverSetValue is used to set the value of a specific tag named in the request to a specified value. This request has no reply.

XamineYourZerverSetTraceLevel is used to set the trace level of a specific tag named in the request to a trace level specified in the request. This request has no reply.

XamineYourZerverListValues is used to obtain the values of tags whose tag names match any of a set of patterns supplied by the request and whose tag value is not zero. The patterns should use the ISO Latin-1 encoding. In each pattern, the ``?'' character will match any single character, and the ``*'' character will match any number of characters. Patterns are case sensitive. The maximum numbers of tags to be returned must be specified. The reply consists of tag name and tag value pairs, the number of matching tags, and the number of matching pairs actually returned.

Implicit in the idea of matching patterns is the idea that tag names have been selected to make pattern matching an effective way of specifying sets of tags. For example, a server implementor might suffix all tag names of tags at function entry points with ``-entered'' so he could search for ``*-entered'' and query the tag values for all tagged function entry points. The extension itself defines no conventions for tag naming.

XamineYourZerverResetValues is used to reset all tags in the tag space to the default value of zero. The request also has the side effect of resetting the XYZ status to the no error state. The request has no reply.

XamineYourZerverResetTraceLevels is used to reset all trace levels in the tag space to the default value of 255. The request also has the side effect of resetting the XYZ status to the no error state. The request has no reply.