docs: tighten sdk90 tree reference selector notes

This commit is contained in:
Mario Fetka
2026-06-02 19:38:27 +00:00
parent 5f8b3b11b2
commit 9f13d9d13c
3 changed files with 57 additions and 15 deletions

24
AI.md
View File

@@ -1088,4 +1088,26 @@ Latest endpoint audit checkpoint from patch 0249:
- Do not regroup these two direct create-file cases in a later cleanup; keep the
per-case Request/Response audit rule intact.
Next patch number should be `0252`.
## 2026-06-02 - Patch 0252 SDK 90 tree/reference/compression selector notes
- Continued NDK-first after the direct create-file split. The NDK Enhanced
NCP `89/xx` chapter is not taken as the next implementation target here
because the `89/01` page is marked `NetWare Servers: 6.5, SP2 and later`;
keep those 5.x+/6.x-only enhanced namespace endpoints out of this 1.x-4.x
audit unless project scope changes.
- Audited the first NetWare-4.x-relevant SDK `90/xx` block in `src/nwconn.c`:
- `90/00` Parse Tree
- `90/10` Get Reference Count from Dir Entry Number
- `90/11` Get Reference Count from Dir Handle
- `90/12` Set Compressed File Size
- Each selector already had its own `switch` case; patch `0252` tightens those
case-local comments with exact NDK `SubFuncStrucLen`, request fields and
response fields.
- Runtime behavior remains unchanged: all four selectors still return `0xfb`
until a real namespace tree/reference-count/compression metadata provider
exists.
- Do not synthesize reference counts or compressed-size replies from partial
Unix `stat(2)` state. These replies require NetWare directory-base identity,
namespace handles, reference tracking and compression metadata.
Next patch number should be `0253`.

21
TODO.md
View File

@@ -1731,8 +1731,25 @@ Current status:
- Runtime behavior is unchanged; both cases still call `nw_creat_open_file()`
and return the old file-handle plus `NW_FILE_INFO` response layout.
### SDK 90 tree/reference/compression selector notes
Current status:
- Patch `0252` audits the first NetWare-4.x-relevant SDK `90/xx` block in
`src/nwconn.c`:
- `90/00` Parse Tree
- `90/10` Get Reference Count from Dir Entry Number
- `90/11` Get Reference Count from Dir Handle
- `90/12` Set Compressed File Size
- The `89/xx` Enhanced NCP chapter is skipped for this pass because the NDK
marks `89/01` as `NetWare Servers: 6.5, SP2 and later`; keep 5.x+/6.x-only
enhanced namespace endpoints out of the 1.x-4.x endpoint audit.
- Runtime behavior is unchanged; the `90/00`, `90/10`, `90/11`, and `90/12`
cases still return `0xfb` until a real provider exists.
Follow-up:
- Continue NDK-first with the next documented NetWare 1.x/2.x/3.x endpoint or
planned 4.x endpoint that still has grouped or missing case-local
Request/Response audit notes. Skip 5.x-only endpoints.
planned 4.x endpoint after `90/12`, likely the Data Migration selector block
`90/128..136`, and keep one case-local Request/Response comment per selector.
Skip 5.x-only endpoints.

View File

@@ -7328,31 +7328,34 @@ static int handle_ncp_serv(void)
? (int)requestdata[0] : -1;
switch (dm_sub) {
case 0x00: /* Parse Tree.
* Request: InformationMask, InformationMask2,
* reserved, limbCount, limbStruct[].
case 0x00: /* SDK 90/00 Parse Tree.
* Request: SubFuncStrucLen = 17 + limbStruct,
* InformationMask, InformationMask2, reserved,
* limbCount, then limbStruct[].
* Reply: limbCompletedCnt, ItemsCount,
* nextLimbScanNum, InfoBlock[].
* nextLimbScanNum, then InfoBlock[].
* Future owner: namespace tree scanner.
*/
completition = 0xfb;
break;
case 0x0a: /* Get Reference Count from Dir Entry Number.
* Request: Volume, DirBase, NameSpace.
case 0x0a: /* SDK 90/10 Get Reference Count from Dir Entry Number.
* Request: SubFuncStrucLen = 13, Volume,
* DirBase, NameSpace.
* Reply: ReferenceCount.
*/
completition = 0xfb;
break;
case 0x0b: /* Get Reference Count from Dir Handle.
* Request: DirectoryHandle.
case 0x0b: /* SDK 90/11 Get Reference Count from Dir Handle.
* Request: SubFuncStrucLen = 5,
* DirectoryHandle.
* Reply: ReferenceCount.
*/
completition = 0xfb;
break;
case 0x0c: /* Set Compressed File Size.
* Request: file identity plus compressed size
* fields as documented for SDK 90/12.
* Reply: no payload; Completion reports status.
case 0x0c: /* SDK 90/12 Set Compressed File Size.
* Request: SubFuncStrucLen = 11,
* NetWareFileHandle, SuggestedFileSize.
* Reply: OldFileSize, NewFileSize.
* Future owner: filesystem/compression metadata.
*/
completition = 0xfb;