X/Open Corrigenda: U001
Corrigendum Ref: XAPcor-01

Document: ACSE/Presentation Services API (XAP)

X/Open CAE Specification, September 1993,
X/Open reference C303, ISBN 1-872630-91-X

Description

This is the first Corrigendum to the above specification

Contents

XAP-1.1
"Major Technical" change

XAP-1.2 - XAP-1.13
"Minor Technical/Editorial" changes


Change number : XAP-1.1

Title

ap_cdrl_t member name is incorrect

Qualifier

Major Technical

Rationale

The member name "m_ap_cdl" in the "ap_cdrl_t" structure is incorrect. It is named the same as the member in the "ap_cdl_t" structure.

The reason this is major technical is because this structure is seen by the user of XAP in their programs and future versions of XAP would have to be compatable with this mistake not to break these programs.

Change

Page 49, the "ap_cdrl_t" structure:
change the member name "m_ap_cdl" to "m_ap_cdrl".

Page 223, the "ap_cdrl_t" structure:
change the member name "m_ap_cdl" to "m_ap_cdrl".
change the member name "m_ap_cdl" to "m_ap_cdrl".

Page 223, the "ap_cdrl_t" structure:
change the member name "m_ap_cdl" to "m_ap_cdrl".


Change number : XAP-1.2

Title

"ap_rcv" function, P_DATA_IND "valid in states" not complete

Qualifier

Minor Technical

Rationale

"AP_WRESYNcnf_RESYNreq" must be a valid state for P_DATA_INDdue to the "data separation" functional unit's ability to allow reception of data sent after a P_RESYNC_REQ has been issued.

Change

Page 82, add "AP_WRESYNcnf_RESYNreq" into the "valid in states" column of the Primitive/Attribute & Primitive/State Relationships table for P_DATA_IND.


Change number : XAP-1.3

Title

Add "token_assignment" member to "ap_cdata_t" structure

Qualifier

Minor Technical

Rationale

The "token_assignment" member of the "ap_cdata_t" structure is referenced in a number of places throughout the XAP specification and needs to be used by the various primitives that reference it.

Change

Page 59, "ap_cdata_t" structure, add the following line to the structure after the "tokens" member line:
"unsigned long token_assignment; /* token assignment */"

Page 227, "ap_cdata_t" structure, add the following line to the structure after the "tokens" member line:
"unsigned long token_assignment; /* token assignment */"


Change number : XAP-1.4

Title

"Environment File" Integer Constant example is incorrect.

Qualifier

Minor Technical

Rationale

The example given references an encoded string attribute. The attribute should change to make the reference correct.

Change

Page 108, Integer Constant section, Example:

change
"AP_CLD_AEID = 0xA2"
to
"AP_QLEN = 0x05"


Change number : XAP-1.5

Title

Error "AP_BADSAVEF" in "ap_restore" function defined incorrectly

Qualifier

Minor Technical

Rationale

The "ap_restore" function can have a NULL pointer for the "*savef" parameter for the use by Association Listeners - so the description for error "AP_BADSAVEF" is incorrect.

Change

Page 89, ERRORS section, [AP_BADSAVEF] error:

change
"savef is NULL or was opened improperly.
to
"savef was opened improperly."


Change number : XAP-1.6

Title

typos in the "ap_look" function description

Qualifier

Minor Editorial

Rationale

the description of "ap_look" there are two references to "ap_osi_dbuf-t", which should be to "ap_osi_dbuf_t".

Change

Page 72, 1st paragraph, 3rd line:

change
"Data blocks, which are represented by ap_osi_dbuf-t"
to
"Data blocks, which are represented by ap_osi_dbuf_t"

Page 72, 3rd paragraph, 2nd line:

change
"updates b_wptr - no other fields in the ap_osi_vbuf_t/ap_osi_dbuf-t..."
to
"updates b_wptr - no other fields in the ap_osi_vbuf_t/ap_osi_dbuf_t..."


Change number : XAP-1.7

Title

Meaningless sentence fragment in paragraph

Qualifier

Minor Editorial

Rationale

There is a sentence fragment in the A_ASSOC_CNF primitive section that is completely unreferenced.

Change

Page 127, 7th line from the bottom, delete the fragment
" returned in the cdata argument."


Change number : XAP-1.8

Title

More Data Flag final send must always have data.

Qualifier

Minor Technical

Rationale

Agreement on the required behaviour in the situation where if a primitive was using AP_MORE to send user data, the final invocation of ap_snd() MUST have at least 1 octet of user data, or may have a zero-length final fragment, is not concluded. However, it is agreed that the XAP CAE Specification should be made self-consistent in the direction which requires at least 1 octet of user data.

Change

Page 29,
change the 3rd paragraph from the top, commencing "Primitives that are not...."
to
"Primitives cannot be terminated by a final ap_snd() invocation that does not carry any user data. Thus a final ap_snd() invocation always carries 1 or more octets of user data."


Change number : XAP-1.9

Title

Correct the AP_ALLOC flag definition

Qualifier

Minor Technical

Rationale

Revise parts of the description of AP_ALLOC which are inconsistent with the true behaviour.

Change

Page 85: description of AP_ALLOC flag,

1. delete the sentence "Regardless of the setting of AP_ALLOC, the user ..."

2. replace "If the AP_ALLOC flag is set and space was available in the supplied buffer chain, the user allocation routine ...."
with
"If the AP_ALLOC flag is set, the user allocation routine ..."

3. replace
"If the AP_ALLOC flag is not set and space was available in the supplied buffers, then the AP_MORE flag is set and 0 is returned."
with
"If the AP_ALLOC flag is not set, then the AP_MORE flag is set and 0 is returned."

Page 85: description of AP_MORE flag,

4. replace
"Upon return, ..., the AP_MORE bit of the flags argument will be set, and the error code [AP_AGAIN] or [AP_NOBUF] is returned."
with
"Upon return, ..., the AP_MORE bit of the flags argument will be set, and 0 is returned."

Page 85: last paragraph,

5. replace
"If XAP is being used in non-blocking execution mode .... to the [AP_AGAIN] error code."
with
"If XAP is being used in non-blocking execution mode (AP_NDELAY bit is set) and no data is available to be received, ap_rcv() returns -1 and ... [AP_AGAIN] error code. If some data is received for a primitive, but no further data is currently available, ap_rcv() returns a value of 0 and the AP_MORE flag is set."

Page 24, Section 2.2.11: Execution Mode,

6. replace text in 4th paragraph:
"In the non-blocking mode, ap_rcv() reads data .... .. If the AP_MORE bit of the flags argument is set .."
with
"In the non-blocking mode, ap_rcv() reads data .... Once one of these three events occurs, ap_rcv() returns 0. The [AP_AGAIN] error is signalled when no data is available to be received. When no error is returned the service user may examine the flags argument to determine whether a primitive was partially received. If the AP_MORE bit of the flags argument is set ..."

Page 73, description for ap_look():

7. for AP_ALLOC, repeat changes 1, 2 and 3 above.

8. for AP_MORE, replace
"Upon return, ..., the AP_MORE bit of the flags argument will be set."
with
"Upon return, ..., the AP_MORE bit of the flags argument will be set, and 0 is returned."

Page 74:

9. add to end of 1st paragraph, after
"Some or all of the user data ..... returned to the user."
a new sentence
"If some data is received for a primitive, but no further data is currently available, ap_look() returns a value of 0 and the AP_MORE flag is set."

Page 85:

10. Integrate the flow diagrams (XAP 556) into the XAP CAE Specification following the last paragraph on Page 85 (ap_rcv function blocking/non-blocking mode).


Change number : XAP-1.10

Title

Setting AP_MORE flag unneccessary for AP_LOOK error

Qualifier

Minor Technical

Rationale

If ap_rcv() is interrupted by an unsequenced primitive, ap_rcv() returns -1 and sets [AP_LOOK]. In this case, the setting of the AP_MORE flag does not provide any additional information to the service user - setting the AP_MORE flag is unneccessary.

Change

Page 86, first paragraph, delete
"The AP_MORE bit of the flags argument is set."


Change number : XAP-1.11

Title

Clarify attribute deletion function of ap_set_env()

Qualifier

Minor Editorial

Rationale

It should be made clear that the ap_set_env() function can be used to delete attributes of structured type from the environment.

Change

Page 91, change NAME,
from:
"ap_set_env -- set XAP environment attribute"
to:
"ap_set_env -- set or delete XAP environment attribute"

After second paragraph of description add a new paragraph:

"ap_set_env() can be used to delete an attribute of structured type from the environment by setting the v member of the val argument to NULL. Only those attributes which are marked as "default: not present" in the environment attribute description table of Chapter 3 may be deleted in this manner."


Change number : XAP-1.12

Title

Translation limits for ap_osic command

Qualifier

Minor Technical

Rationale

The ISO C standard specifies
"The implementation shall be able to translate and execute at least one program that contains at least one instance of every one of the following limits:
.
.
- 509 characters in a logical source line.
.
.
The example refered to above (AP_QOS) contains more than 1500 characters.
This Change requires that an implementation supports entries of at least 2043 characters (2045 characters plus CR/LF/NUL).

Change

Page 105.

Add the following text to the end of the paragraph "An entry may be split ...":

An implementation shall be capable of translating an input file containing entries of up to 2045 characters (after concatenation of entries split across multiple input lines).

Note:
This allows the entry, plus a possible CR/LF/NUL control character sequence, to be accommodated in a 2048 byte buffer. Implementations should avoid placing fixed translation limits where possible.


Change number : XAP-1.13

Title

Syntax of ap_osic command option -o

Qualifier

Minor Technical

Rationale

The specification of the ap_osic command should make it absolutely clear that the option -o is seperated from its argument by a space.

Change

Page 102, SYNOPSIS subsection: replace with the following: ap_osic [ -o outfile ] [ -v ] file ...

Page 102, DESCRIPTON subsection: reformat the list:
         -o outfile      Write output to...
         -v              By default ...


If you can't find the information you need, please contact X/Open at any of its offices.


Copyright X/Open Company Limited, © 1995