docs: audit namespace open callback stubs
This commit is contained in:
70
AI.md
70
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:
|
||||
|
||||
27
TODO.md
27
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
|
||||
|
||||
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user