docs: tighten physical record selector notes

This commit is contained in:
Mario Fetka
2026-06-02 20:09:34 +00:00
parent d41a007b54
commit b6e653c96a
3 changed files with 97 additions and 50 deletions

View File

@@ -5764,32 +5764,32 @@ static int handle_ncp_serv(void)
return(-1); /* nwbind must do a little rest */
break;
case 0x1a : /* Log Physical Record */
case 0x1c : /* Release Physical Record */
case 0x1e : /* Clear Physical Record */
case 0x1a : /* SDK 26 Log Physical Record (old) */
/*
* Request: LockFlag, 6-byte NetWare file handle,
* LockAreaStartOffset (Hi-Lo), LockAreaLen (Hi-Lo),
* and LockTimeout (Hi-Lo). LockFlag 0 logs for future
* use, 1 locks exclusive/read-write, and 3 locks
* shareable/read-only.
* Response: no reply payload; completion reports the
* log/lock result.
*/
case 0x1c : /* SDK 28 Release Physical Record */
/*
* Request: reserved byte, 6-byte NetWare file handle,
* Start Offset (Hi-Lo), and Record Length (Hi-Lo).
* Response: no reply payload; completion reports success
* or Unlock Error. The range stays in the logged table.
*/
case 0x1e : /* SDK 30 Clear Physical Record */
/*
* Request: same layout as Release Physical Record.
* Response: no reply payload; completion reports success
* or Unlock Error. The range is removed from the logged
* table after any successful unlock.
*/
{
/*
* SDK: NCP 0x2222/26 Log Physical Record (old) records
* one byte range in the caller's logged data block table.
* The request is LockFlag, a 6-byte NetWare file handle,
* LockAreaStartOffset (Hi-Lo), LockAreaLen (Hi-Lo), and
* LockTimeout (Hi-Lo). LockFlag 0 logs for future use,
* 1 locks exclusive/read-write, and 3 locks
* shareable/read-only.
*
* SDK: NCP 0x2222/28 Release Physical Record releases
* one locked byte range but leaves it in the logged
* table so a later Lock Physical Record Set can relock
* it. The request carries a reserved byte, a 6-byte
* NetWare file handle, Start Offset (Hi-Lo), and Record
* Length (Hi-Lo); it returns no reply data and reports
* Unlock Error through the completion code.
*
* SDK: NCP 0x2222/30 Clear Physical Record has the same
* request layout as Release Physical Record. It releases
* the range if it is locked and removes it from the logged
* table.
*
* Parser comparison: current code matches the documented
* 6-byte handle position by ignoring the two high/reserved
* bytes and using the low 4-byte handle. It reads offsets,
@@ -5853,18 +5853,19 @@ static int handle_ncp_serv(void)
}
break;
case 0x1b : /* Lock Physical Record Set (old) */
case 0x6e : { /* Lock Physical Record Set */
case 0x1b : /* SDK 27 Lock Physical Record Set (old) */
/*
* SDK: NCP 0x2222/27 Lock Physical Record Set (old)
* and NCP 0x2222/110 Lock Physical Record Set lock all
* byte ranges logged by the calling client.
*
* SDK request: one-byte LockFlag followed by a 2-byte
* LockTimeout in 1/18 second units. The old 27 form is
* documented as Lo-Hi, while the newer 110 form is
* documented as Hi-Lo. The reply carries no data and
* completion reports success, timeout, or lock error.
* Request: LockFlag and LockTimeout (Lo-Hi) in 1/18
* second units.
* Response: no reply payload; completion reports success,
* timeout, or lock error.
*/
case 0x6e : { /* SDK 110 Lock Physical Record Set */
/*
* Request: LockFlag and LockTimeout (Hi-Lo) in 1/18
* second units.
* Response: no reply payload; completion reports success,
* timeout, or lock error.
*
* Parser comparison: both wire functions currently share
* this handler and read LockTimeout as Hi-Lo. The current
@@ -5892,18 +5893,18 @@ static int handle_ncp_serv(void)
}
break;
case 0x1d : /* Release Physical Record Set */
case 0x1f : { /* Clear Physical Record Set */
case 0x1d : /* SDK 29 Release Physical Record Set */
/*
* SDK: NCP 0x2222/29 Release Physical Record Set
* releases all byte ranges locked by the calling client
* but leaves them in the client's data byte range table
* for future Lock Physical Record Set calls.
*
* SDK: NCP 0x2222/31 Clear Physical Record Set releases
* all locked ranges and clears the caller's data byte
* range table. Both requests contain a one-byte LockFlags
* field and have no reply data.
* Request: one-byte LockFlags.
* Response: no reply payload; completion reports the
* release result. Logged ranges are retained for future
* Lock Physical Record Set calls.
*/
case 0x1f : { /* SDK 31 Clear Physical Record Set */
/*
* Request: one-byte LockFlags.
* Response: no reply payload; completion reports the
* clear result. Logged ranges are removed after unlock.
*
* Parser comparison: current code intentionally ignores
* LockFlags for both set operations and selects release or