stos: ob: Add directory object operations

This commit adds operations for appending directories and top-level
lookups.

Signed-off-by: Chloe M. <chloe@mensia.org>
This commit is contained in:
Chloe M.
2026-06-25 23:26:13 +00:00
parent 53d0e27b4f
commit 99261380ca
2 changed files with 99 additions and 0 deletions
+19
View File
@@ -35,6 +35,7 @@ typedef enum {
* @Type: Object type
* @Data: Object data
* @CacheNext: Used when reclaiming object
* @DirecNext: Directory link
*/
typedef struct _ST_OBJECT {
CHAR Name[OBJECT_NAMESZ];
@@ -42,6 +43,7 @@ typedef struct _ST_OBJECT {
OBJECT_TYPE Type;
VOID *Data;
struct _ST_OBJECT *CacheNext;
struct _ST_OBJECT *DirecNext;
} ST_OBJECT;
/*
@@ -66,6 +68,14 @@ typedef struct {
*/
ST_STATUS ObCreateDirectory(const CHAR *Name, ST_OBJECT **Result);
/*
* Append an object to a directory
*
* @DirecParent: Parent of directory to append to
* @Object: Object to append to directory
*/
ST_STATUS ObAppendDirectory(ST_OBJECT *DirecParent, ST_OBJECT *Object);
/*
* Allocate and create a new objec
*
@@ -84,6 +94,15 @@ ST_STATUS ObCreateObject(
*/
VOID ObInitManager(VOID);
/*
* Look up an object from a parent directory
*
* @Parent: Parent directly to look up from
* @Name: Name of object to lookup
* @Result: Result is written here
*/
ST_STATUS ObLookupFromTop(ST_OBJECT *Parent, const CHAR *Name, ST_OBJECT **Result);
/*
* Reclaim an object after use, if its reference count is > 1, simply
* bump it down. Once it hits zero, the object is returned to the cache.