docs: audit namespace open callback stubs

This commit is contained in:
A
2026-06-02 15:01:12 +00:00
committed by Mario Fetka
parent 2fe9d8b67a
commit 6fd81cf590
3 changed files with 135 additions and 34 deletions

70
AI.md
View File

@@ -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:

27
TODO.md
View File

@@ -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

View File

@@ -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);