docs: tighten physical record selector notes
This commit is contained in:
93
src/nwconn.c
93
src/nwconn.c
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user