obj: add set and namespace object callbacks

This commit is contained in:
2023-02-25 19:12:09 +00:00
parent eed73e2414
commit bc1bc9fec5
5 changed files with 106 additions and 48 deletions

View File

@@ -40,7 +40,7 @@ typedef struct object_type {
vm_cache_t ob_cache;
queue_entry_t ob_list;
queue_t ob_attrib;
const object_ops_t *ob_ops;
object_ops_t ob_ops;
} object_type_t;
typedef struct object {
@@ -77,13 +77,11 @@ static inline kern_status_t object_get(const char *path, object_t **out)
{
return object_namespace_get_object(global_namespace(), path, out);
}
extern object_t *object_get_child_named(object_t *obj, const char *name);
extern object_t *object_get_child_at(object_t *obj, size_t at);
extern kern_status_t object_get_child_named(object_t *obj, const char *name, object_t **out);
extern kern_status_t object_get_child_at(object_t *obj, size_t at, object_t **out);
extern kern_status_t object_query_name(object_t *obj, char name[OBJECT_NAME_MAX]);
extern object_t *set_create(const char *name);
extern kern_status_t set_lock(object_t *obj, unsigned long *flags);
extern kern_status_t set_unlock(object_t *obj, unsigned long flags);
extern kern_status_t set_add_object(object_t *set, object_t *obj);
extern kern_status_t set_remove_object(object_t *set, object_t *obj);
extern bool object_is_set(object_t *obj);

View File

@@ -9,5 +9,6 @@ typedef unsigned int kern_status_t;
#define KERN_INVALID_ARGUMENT (3)
#define KERN_UNSUPPORTED (4)
#define KERN_NO_MEMORY (5)
#define KERN_NO_ENTRY (6)
#endif