Skip to content
Start free evaluation

pdcomm_gem_spool_request_configure

Function

Sends an S2F43 reset spooling streams and functions request (Host).

PdcommStatus pdcomm_gem_spool_request_configure(PdcommTcpEndpoint *endpoint, const PdcommGemSpoolSelection *selections, size_t count, PdcommTcpToken *token)

Declared in: #include <pdcomm_gem_spooling.h>

Requires GEM Communicating and limits from pdcomm_gem_configure_spool_host(). The request shares the 32 native pending slots and the normal TCP token, cancel, and T3 behavior. It charges the stream count plus all listed functions against max_pending_items and the Host's shared max_pending_ids budget. An empty selection (NULL and a zero count) asks the Equipment to spool no stream. Success means the request was queued, not that the Equipment accepted it; the S2F44 arrives as a #PDCOMM_GEM_SPOOL_CONFIG_ACK result.

Parameters

NameDescription
endpointCommunicating endpoint configured as GEM Host with spool limits.
selectionsArray of count stream selections. May be NULL when count is 0.
countNumber of selections; at most max_streams.
tokenReceives the request token; zeroed first, so it is zero after every failure. Must not be NULL.

Returns

#PDCOMM_OK when the request was queued; #PDCOMM_INVALID_ARGUMENT when token or endpoint is NULL, an array is NULL with a nonzero length, or a stream or function repeats; #PDCOMM_INVALID_STATE when spool Host limits are not configured or GEM is not Communicating; #PDCOMM_LIMIT_EXCEEDED when a selection or pending-ID limit is exceeded; #PDCOMM_BACKPRESSURE when a staged TCP event is pending, all 32 pending slots are used, or the TCP send queue is full; #PDCOMM_ALLOCATION_FAILED, a TCP status, or #PDCOMM_POISONED.