docs: audit data migration endpoint stubs

This commit is contained in:
test
2026-06-02 16:24:34 +00:00
committed by Mario Fetka
parent c6a477d6ae
commit 0ff8e9d0c6
3 changed files with 152 additions and 3 deletions

20
AI.md
View File

@@ -606,3 +606,23 @@ Latest endpoint audit checkpoint from patch 0223:
- This block is local synchronization, not `nwnds`/directory work.
Next patch number should be `0224`.
Latest endpoint audit checkpoint from patch 0224:
- SDK `0x2222/90` / wire `0x5a` Data Migration / parse-tree / compression
metadata is now source-stub-audited as planned NetWare-4.x filesystem and
namespace work. There was no active top-level handler in `src/nwconn.c`.
- Patch `0224` records the selector map behind `MARS_NWE_4`: `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,
`90/128` Move File Data To DM, `90/129` DM File Information, `90/130`
Volume DM Status, `90/131` Migrator Status Info, `90/132` DM Support Module
Information, `90/133` Move File Data From DM, `90/134` Get/Set Default
Read-Write Support Module ID, `90/135` DM Support Module Capacity Request,
`90/136` RTDM Request, and `90/150` File Migration Request.
- The future owner is the filesystem/namespace provider, not `nwnds`. There
is no active Data Migration support module, parse-tree engine, compressed
file-size backend, or RTDM provider yet. Keep this as unsupported `0xfb`
unless the filesystem provider grows real backing state.
Next patch number should be `0225`.

12
TODO.md
View File

@@ -211,6 +211,13 @@ Present in the code but not yet fully endpoint-audited:
semaphore calls remain the active compatibility implementation; patch 0223
records `111/00`..`111/04` as disabled `#if 0` selector slots in
`src/nwconn.c` so the future semaphore provider can bridge both families.
- SDK `0x2222/90` / wire `0x5a` Data Migration / tree metadata is
source-stub-audited as planned 4.x filesystem/namespace work. Patch 0224
records the 4.x-era `90/00`, `90/10`, `90/11`, `90/12`, `90/128`..`90/136`,
and `90/150` selector slots behind `MARS_NWE_4` in `src/nwconn.c`. There is
no active data-migration support module, compression metadata backend, or
parse-tree provider yet; future ownership belongs to the filesystem/namespace
provider, not `nwnds`.
- SDK `0x2222/17` / wire `0x11` direct Print/Spool is source-stub-audited
as a NetWare 2.x/3.x/4.x compatibility family. There is no active
top-level handler for these legacy direct spool NCPs, so patch 0218 records
@@ -236,9 +243,8 @@ Present in the code but not yet fully endpoint-audited:
SDK-listed blocks that do not currently show a top-level handler in
`src/nwconn.c`:
- SDK `0x2222/90` / wire `0x5a` Data Migration/Compression/Parse Tree,
SDK `0x2222/92` / wire `0x5c` SecretStore, SDK `0x2222/123` / wire `0x7b`
service-address enumeration, and SDK `0x2222/131` / wire `0x83`
- SDK `0x2222/92` / wire `0x5c` SecretStore, SDK `0x2222/123` / wire
`0x7b` service-address enumeration, and SDK `0x2222/131` / wire `0x83`
RPC/NLM-control style calls appear in the PDF/WebSDK index but do not
currently show top-level handlers in `src/nwconn.c`. These are likely
later-generation buckets, but each must be confirmed against the

View File

@@ -6986,6 +6986,129 @@ static int handle_ncp_serv(void)
break;
#endif
#if MARS_NWE_4
case 0x5a : { /* SDK 90 / wire 0x5a Data Migration / tree metadata.
*
* Source outcome: no active top-level handler existed for
* this 4.x-era family. Keep the selector map disabled
* behind MARS_NWE_4 until the filesystem/namespace provider
* has real tree parsing, compression, reference-count, and
* data-migration state.
*
* Request handoff: requestdata[0] is the SDK 90
* SubFunctionCode. Most fields in this family are
* documented by the NDK as Lo-Hi payload fields after the
* normal SubFuncStrucLen/SubFunctionCode prefix.
* Reply ownership: this local slot would return a normal
* NCP Completion plus optional payload. No data migration
* support module or compression backend exists here yet.
* Future owner: filesystem/namespace provider, not nwnds.
*/
int dm_sub = (requestlen > (int)sizeof(NCPREQUEST))
? (int)requestdata[0] : -1;
switch (dm_sub) {
case 0x00: /* Parse Tree.
* Request: InformationMask, InformationMask2,
* reserved, limbCount, limbStruct[].
* Reply: limbCompletedCnt, ItemsCount,
* nextLimbScanNum, InfoBlock[].
* Future owner: namespace tree scanner.
*/
completition = 0xfb;
break;
case 0x0a: /* Get Reference Count from Dir Entry Number.
* Request: Volume, DirBase, NameSpace.
* Reply: ReferenceCount.
*/
completition = 0xfb;
break;
case 0x0b: /* Get Reference Count from Dir Handle.
* Request: 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.
* Future owner: filesystem/compression metadata.
*/
completition = 0xfb;
break;
case 0x80: /* Move File Data To DM.
* Request: Volume, DirectoryEntry, NameSpace,
* SupportModuleID, Flags.
* Reply: no payload; Completion reports status.
*/
completition = 0xfb;
break;
case 0x81: /* DM File Information.
* Request: file identity and name-space fields.
* Reply: DMInfoEntries plus DMINFO records.
*/
completition = 0xfb;
break;
case 0x82: /* Volume DM Status.
* Request: Volume, SupportModuleID.
* Reply: migration counters and space totals.
*/
completition = 0xfb;
break;
case 0x83: /* Migrator Status Info.
* Request: SubFunctionCode only.
* Reply: DMPresentFlag, DMmajorVersion,
* DMminorVersion.
*/
completition = 0xfb;
break;
case 0x84: /* DM Support Module Information.
* Request: InfoLevel, SupportModuleID.
* Reply: level-dependent support-module data.
*/
completition = 0xfb;
break;
case 0x85: /* Move File Data From DM.
* Request: Volume, DirectoryEntry, NameSpace,
* SupportModuleID, Flags.
* Reply: no payload; Completion reports status.
*/
completition = 0xfb;
break;
case 0x86: /* Get/Set Default Read-Write Support Module ID.
* Request: Get/SetFlag, SupportModuleID.
* Reply: SupportModuleID.
*/
completition = 0xfb;
break;
case 0x87: /* DM Support Module Capacity Request.
* Request: SMCapacityReq.
* Reply: block size, total blocks, used blocks.
*/
completition = 0xfb;
break;
case 0x88: /* RTDM Request.
* Request: Verb plus VerbData.
* Reply: verb-specific; no RTDM provider exists.
*/
completition = 0xfb;
break;
case 0x96: /* File Migration Request.
* Request/Reply: migration-operation specific
* file request carried in SDK 90/150.
* Future owner: filesystem/data-migration bridge.
*/
completition = 0xfb;
break;
default: completition = 0xfb;
break;
}
}
break;
#endif
#ifdef _MAR_TESTS_XX
case 0x5f : { /* ????????????? UNIX Client */
/* a 4.1 Server also do not know this call */