diff --git a/AI.md b/AI.md index 9dfd9e4..59c33a1 100644 --- a/AI.md +++ b/AI.md @@ -11,18 +11,18 @@ When the user says this is a new chat or asks to continue mars-nwe work, first read this file before proposing patches or making assumptions. Then ask for, or use, the current project status that the user pasted into the chat. -## Current handoff status after patch 0209 +## Current handoff status after patch 0211 The current accepted patch line in this chat is expected to include: - endpoint-audit/documentation patches through `0176-docs-audit-direct-lifecycle-buffer-endpoints.patch`; - redesign documentation patches `0177` through `0198`; -- endpoint-audit/documentation patches `0199` through `0209`; -- latest expected patch name: `0209-docs-audit-namespace-core-endpoints.patch`. +- endpoint-audit/documentation patches `0199` through `0211`; +- latest expected patch name: `0211-docs-audit-namespace-open-callback-stubs.patch`. When continuing in a new chat, first ask the user which patch was actually last -applied. If they confirm `0209`, build the next patch as `0210-...` against a -tree that already contains `0209`. If any patch failed or was skipped, rebuild +applied. If they confirm `0211`, build the next patch as `0212-...` against a +tree that already contains `0211`. If any patch failed or was skipped, rebuild against the last confirmed applied patch instead of assuming the file in `/mnt/data` was accepted. @@ -198,15 +198,15 @@ Schema/import direction: Latest endpoint audit note: -- Patch `0210` audits the later `NCP 0x2222/87` / wire `0x57` Name Space - salvage/metadata subset from `87/16` through `87/29`. Active source cases - now have per-endpoint Coverage/Request/Reply notes, and missing eligible - 3.x/4.x metadata slots `87/19`, `87/23`, `87/25`, and `87/27` are represented - as disabled `#if 0` stubs at the correct switch locations. `87/26` already - had a source slot but remains effectively unimplemented and returns the - default `0xfb` completion. Next patch should be `0211`; a likely next block - is the next implemented `87` namespace range or the parallel `89` long - namespace family unless the user chooses another family. +- Patch `0211` audits the next `NCP 0x2222/87` / wire `0x57` Name Space + open/create callback and metadata subset from `87/30` through `87/35`. The + current source has no active handlers for these selectors, so they are + represented as disabled `#if 0` stubs at the correct switch locations. The + stubs document request/reply/provider intent and do not change runtime + behavior. Next patch should be `0212`; a likely next block is the remaining + `87` namespace/file range such as `87/36`..`87/44` or `87/64`..`87/69`, or + the parallel `89` long namespace family unless the user chooses another + family. ## Patch workflow @@ -449,15 +449,15 @@ user.org.mars-nwe.afp.prodos-info=0x010203040506 ## Latest endpoint audit checkpoint -As of patch `0210-docs-audit-namespace-salvage-metadata-endpoints.patch`, -the latest audited endpoint block is the later Name Space salvage/metadata -subset of `NCP 0x2222/87` / wire `0x57` in `src/namspace.c`. `nwconn.c` -still forwards requestdata starting at the Name Space `SubFunction` byte to -`handle_func_0x57()`, and the handler return convention remains unchanged: -non-negative values are reply payload lengths, negative values are Completion -codes. +As of patch `0211-docs-audit-namespace-open-callback-stubs.patch`, +the latest audited endpoint block is the Name Space open/create callback and +metadata subset of `NCP 0x2222/87` / wire `0x57` in `src/namspace.c`. +`nwconn.c` still forwards requestdata starting at the Name Space `SubFunction` +byte to `handle_func_0x57()`, and the handler return convention remains +unchanged: non-negative values are reply payload lengths, negative values are +Completion codes. -The latest audited endpoint block contains active source cases for: +The previous `87/16`..`87/29` block contains active source cases for: - `87/16` Scan Salvageable Files; - `87/17` Recover Salvageable File; @@ -470,25 +470,35 @@ The latest audited endpoint block contains active source cases for: - `87/28` Get Full Path String; - `87/29` Get Effective Directory Rights. -New disabled source stubs were added for eligible 3.x/4.x metadata gaps that -were missing from the active switch range: +Disabled source stubs exist for eligible 3.x/4.x metadata gaps from that range: - `87/19` Get NS Information; - `87/23` Query NS Information Format; - `87/25` Set NS Information; - `87/27` Get Name Space Directory Entry. +Patch `0211` added the next set of disabled source stubs for eligible +3.x/4.x namespace gaps that were missing from the active switch range: + +- `87/30` Open/Create File or Subdirectory with DataStream; +- `87/31` Get File Information; +- `87/32` Open/Create File or Subdirectory with Callback; +- `87/33` Open/Create File or Subdirectory II with Callback; +- `87/34` Open CallBack Control; +- `87/35` Modify DOS Attributes on a File or Subdirectory. + These stubs are under `#if 0`, document selector path/request/reply/provider intent, and do not change runtime behavior. The existing `87/26` source slot is still effectively unimplemented and returns the default `0xfb` completion. -The next endpoint block can continue with the next implemented `87` namespace -subfunction range, the matching `89` long-name-space family, or another -unaudited top-level family such as AFP `0x2222/35`, packet burst -`0x2222/97`/`101`, or deeper `0x2222/23` bindery/property/admin subfunction -coverage, unless the user requests a specific family first. +The next endpoint block can continue with the remaining `87` namespace/file +subfunction ranges such as `87/36`..`87/44` or `87/64`..`87/69`, the matching +`89` long-name-space family, or another unaudited top-level family such as AFP +`0x2222/35`, packet burst `0x2222/97`/`101`, or deeper `0x2222/23` +bindery/property/admin subfunction coverage, unless the user requests a +specific family first. -The next patch number should be `0211` if `0210` was applied. +The next patch number should be `0212` if `0211` was applied. Retro source-stub checkpoint from patch 0207: diff --git a/TODO.md b/TODO.md index 7f846ff..b096df0 100644 --- a/TODO.md +++ b/TODO.md @@ -1091,12 +1091,31 @@ Current status: - `87/26` already had a source slot, but it is effectively unimplemented and still returns the default `0xfb` unknown request completion. + +### Name Space group 0x2222/87 open/create callback subset + +Current status: + +- `NCP 0x2222/87` / wire `0x57` is source-stub-audited for the next + documented namespace subfunctions `87/30` through `87/35`. +- The current source did not contain active handlers for this range, so disabled + `#if 0` stubs were added at the correct selector locations for: + `87/30` Open/Create File or Subdirectory with DataStream, `87/31` Get File + Information, `87/32` Open/Create File or Subdirectory with Callback, `87/33` + Open/Create File or Subdirectory II with Callback, `87/34` Open CallBack + Control, and `87/35` Modify DOS Attributes on a File or Subdirectory. +- These endpoints are eligible under the stub rule because they are 3.x/4.x + namespace/file-system compatibility calls, including planned 4.x callback and + DataStream variants. The stubs are documentation-only and leave runtime + behavior unchanged. + Follow-up: -- Continue the namespace audit with the next implemented `87` subfunction range - or the matching `89` long-name-space family. Keep future missing 1.x/2.x/3.x - and planned 4.x endpoints as disabled source stubs at the correct selector - location, not as prose-only notes. +- Continue the namespace audit with the remaining `87` subfunction ranges such + as `87/36`..`87/44`, `87/64`..`87/69`, or the matching `89` long-name-space + family. Keep future missing 1.x/2.x/3.x and planned 4.x endpoints as + disabled source stubs at the correct selector location, not as prose-only + notes. ### Retrospective source-stub coverage for already audited blocks diff --git a/src/namspace.c b/src/namspace.c index dac955a..5277f61 100644 --- a/src/namspace.c +++ b/src/namspace.c @@ -3779,6 +3779,78 @@ static int code = 0; } break; +#if 0 + case 0x1e : /* SDK 87/30 Open/Create File or Subdirectory II. + * Coverage: documented 4.x namespace open/create variant, + * but no active source case exists yet. + * Request: SubFunction, NameSpace, DataStream, + * OpenCreateMode, SearchAttributes, ReturnInfoMask, + * CreateAttributes, DesiredAccessRights, NWHandlePathStruct. + * Reply: FileHandle, OpenCreateAction, Reserved, + * NetWareInfoStruct, NetWareFileNameStruct. + * Future owner: filesystem/namespace provider. + */ + result = -0xfb; + break; + + case 0x1f : /* SDK 87/31 Get File Information. + * Coverage: documented namespace metadata call, but no + * active source case exists yet. + * Request: SubFunction, NameSpace, DestNameSpace, + * SearchAttributes, ReturnInfoMask, NWHandlePathStruct. + * Reply: NetWareInfoStruct and NetWareFileNameStruct + * fields selected by ReturnInfoMask. + * Future owner: filesystem/namespace provider. + */ + result = -0xfb; + break; + + case 0x20 : /* SDK 87/32 Open/Create File or Subdirectory with Callback. + * Coverage: documented 4.x callback open/create variant, + * but no active source case exists yet. + * Request: like 87/01 with callback-capable open/create + * mode bits. + * Reply: FileHandle, OpenCreateAction, OCRetFlags, + * NetWareInfoStruct, NetWareFileNameStruct. + * Future owner: filesystem/namespace provider. + */ + result = -0xfb; + break; + + case 0x21 : /* SDK 87/33 Open/Create File or Subdirectory II with Callback. + * Coverage: documented 4.x callback open/create variant, + * but no active source case exists yet. + * Request: like 87/30 with DataStream plus callback-capable + * open/create mode bits. + * Reply: FileHandle, OpenCreateAction, OCRetFlags, + * NetWareInfoStruct, NetWareFileNameStruct. + * Future owner: filesystem/namespace provider. + */ + result = -0xfb; + break; + + case 0x22 : /* SDK 87/34 Open CallBack Control. + * Coverage: documented namespace callback-control call, but + * no active source case exists yet. + * Request/Reply: callback registration/control structure for + * namespace open/create callbacks. + * Future owner: filesystem/namespace provider. + */ + result = -0xfb; + break; + + case 0x23 : /* SDK 87/35 Modify DOS Attributes on a File or Subdirectory. + * Coverage: documented namespace metadata update call, but + * no active source case exists yet. + * Request: SubFunction, NameSpace, SearchAttributes, + * ModifyDOSAttributes, NWHandlePathStruct. + * Reply: no payload, normal Completion status. + * Future owner: filesystem/namespace provider. + */ + result = -0xfb; + break; +#endif + default : result = -0xfb; /* unknown request */ } /* switch */ return(result);