docs: document remaining queue service layouts

This commit is contained in:
Mario Fetka
2026-06-02 04:53:33 +00:00
parent bfb3545ec6
commit af8287ff85
2 changed files with 134 additions and 13 deletions

View File

@@ -2352,7 +2352,14 @@ static void handle_fxx(int gelen, int func)
break;
case 0x6f : { /* attach server to queue */
/* from pserver */
/*
* SDK 23/111 / wire 0x6f Attach Queue Server To Queue.
* Request payload after SubFunctionCode:
* long QueueID (Hi-Lo)
* Reply: no data.
* Parser comparison matches the documented queue-server
* attach layout.
*/
uint32 q_id = GET_BE32(rdata);
int result=nw_attach_server_to_queue(
act_c->object_id,
@@ -2365,7 +2372,14 @@ static void handle_fxx(int gelen, int func)
break;
case 0x70 : { /* detach server from queue */
/* from pserver */
/*
* SDK 23/112 / wire 0x70 Detach Queue Server From Queue.
* Request payload after SubFunctionCode:
* long QueueID (Hi-Lo)
* Reply: no data.
* Parser comparison matches the documented queue-server
* detach layout.
*/
uint32 q_id = GET_BE32(rdata);
int result=nw_detach_server_from_queue(
act_c->object_id,
@@ -2380,6 +2394,20 @@ static void handle_fxx(int gelen, int func)
case 0x78: /* Get Queue Job File Size (old) */
case 0x87: /* Get Queue Job File Size */
{
/*
* SDK 23/120 / wire 0x78 Get Queue Job File Size (old)
* and SDK 23/135 / wire 0x87 Get Queue Job File Size.
* Request payload after SubFunctionCode:
* long QueueID (Hi-Lo)
* word JobNumber (Hi-Lo) for old wire 0x78
* long JobNumber for newer wire 0x87
* Reply documented by the WebSDK queue pages:
* long QueueID, long JobNumber, long FileSize.
* Parser/reply comparison: both variants currently consume
* a 16-bit JobNumber. The old reply returns a 16-bit
* JobNumber, and the newer reply pads that 16-bit value to
* four bytes instead of serializing a true long.
*/
uint32 q_id = GET_BE32(rdata);
uint32 job_id = (ufunc==0x78)
? GET_BE16(rdata+4)
@@ -2405,6 +2433,19 @@ static void handle_fxx(int gelen, int func)
case 0x71 : /* service queue job old */
case 0x7c : { /* service queue job */
/*
* SDK 23/113 / wire 0x71 Service Queue Job (old) and
* SDK 23/124 / wire 0x7c Service Queue Job.
* Request payload after SubFunctionCode:
* long QueueID (Hi-Lo)
* word TargetServiceType (Hi-Lo)
* Reply: QueueJobStruct, old 54-byte fixed reply for wire
* 0x71 and newer reserved-prefix/NWQueueJobStruct reply for
* wire 0x7c, including the opened job file handle.
* Parser comparison matches the common QueueID/type request
* header and delegates the variant reply shape to the queue
* backend helper.
*/
uint32 q_id = GET_BE32(rdata);
int type = GET_BE16(rdata+4);
int result=nw_service_queue_job(
@@ -2423,6 +2464,18 @@ static void handle_fxx(int gelen, int func)
case 0x6D: /* Change Queue Job Entry old */
case 0x7B: /* Change Queue Job Entry */
{
/*
* SDK 23/109 / wire 0x6d Change Queue Job Entry (old) and
* SDK 23/123 / wire 0x7b Change Queue Job Entry.
* Request payload after SubFunctionCode:
* long QueueID (Hi-Lo)
* QueueJobStruct, 256 bytes for old wire 0x6d and 280
* bytes for newer wire 0x7b.
* Reply: no data.
* Parser comparison matches the documented QueueID plus
* variant job-structure layout and delegates the structure
* copy to the queue backend helper.
*/
uint32 q_id = GET_BE32(rdata);
int result = nw_change_queue_job_entry(act_c->object_id,
q_id, rdata+4,
@@ -2434,6 +2487,21 @@ static void handle_fxx(int gelen, int func)
#endif
case 0x7d : { /* Read Queue Current Status, new */
/*
* SDK 23/125 / wire 0x7d Read Queue Current Status.
* Request payload after SubFunctionCode:
* long QueueID (Hi-Lo)
* Reply:
* long QueueID (Hi-Lo)
* long QueueStatus
* long CurrentEntries
* long CurrentServers
* long ServerIDList[CurrentServers] (Hi-Lo)
* long ServerStationList[CurrentServers]
* Parser/reply comparison matches the documented new
* queue-status layout; scalar status/count/station fields use
* the existing 32-bit mars_nwe queue byte-order convention.
*/
struct XDATA {
uint8 id[4]; /* queue id */
uint8 status[4]; /* &1 no station allowed */
@@ -2473,6 +2541,19 @@ static void handle_fxx(int gelen, int func)
} break;
case 0x81 : { /* Get Queue Job List */
/*
* SDK 23/129 / wire 0x81 Get Queue Job List.
* Request payload after SubFunctionCode:
* long QueueID (Hi-Lo)
* long QueueStartPosition
* Reply:
* long TotalQueueJobs
* long ReplyQueueJobNumbers
* long JobNumberList[ReplyQueueJobNumbers]
* Parser comparison matches the documented request header
* and delegates the paged long-list reply to the queue backend
* helper.
*/
uint32 q_id = GET_BE32(rdata);
uint32 offset = GET_BE32(rdata+4);
#if 0
@@ -2491,6 +2572,18 @@ static void handle_fxx(int gelen, int func)
case 0x72: /* finish servicing queue job (old)*/
case 0x83: { /* finish servicing queue job */
/*
* SDK 23/114 / wire 0x72 Finish Servicing Queue Job (old)
* and SDK 23/131 / wire 0x83 Finish Servicing Queue Job.
* Request payload after SubFunctionCode:
* long QueueID (Hi-Lo)
* word JobNumber (Hi-Lo) for old wire 0x72
* long JobNumber plus long ChargeInfo for newer wire 0x83
* Reply: no data.
* Parser comparison: both variants currently consume a
* 16-bit JobNumber, and the newer ChargeInfo field is
* ignored.
*/
uint32 q_id = GET_BE32(rdata);
uint32 job_id = GET_BE16(rdata+4);
#if 0
@@ -2506,6 +2599,19 @@ static void handle_fxx(int gelen, int func)
case 0x73: /* abort servicing queue job (old) */
case 0x84: { /* abort servicing queue job */
/*
* SDK 23/115 / wire 0x73 Abort Servicing Queue Job (old)
* and SDK 23/132 / wire 0x84 Abort Servicing Queue Job.
* Request payload after SubFunctionCode:
* long QueueID (Hi-Lo)
* word JobNumber (Hi-Lo) for old wire 0x73
* long JobNumber for newer wire 0x84
* Reply: no data for NCP 23; DOS-shell INT 21h wrappers
* expose a two-byte zero reply length.
* Parser/reply comparison: both variants currently consume
* a 16-bit JobNumber, and the success path emits a two-byte
* zero reply for compatibility with older clients.
*/
uint32 q_id = GET_BE32(rdata);
uint32 job_id = GET_BE16(rdata+4);
int result = nw_finish_abort_queue_job(1,