Mon 14 Oct 23:06:38 CEST 2024
This commit is contained in:
parent
e5cc052c83
commit
9962309a90
63
kernel/kobject.h
Normal file
63
kernel/kobject.h
Normal file
|
@ -0,0 +1,63 @@
|
||||||
|
/*
|
||||||
|
* Copyright (C) 2016-2019 The University of Notre Dame This software is
|
||||||
|
* distributed under the GNU General Public License. See the file LICENSE
|
||||||
|
* for details.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef KOBJECT_H
|
||||||
|
#define KOBJECT_H
|
||||||
|
|
||||||
|
#include "kernel/types.h"
|
||||||
|
|
||||||
|
#include "fs.h"
|
||||||
|
#include "device.h"
|
||||||
|
#include "window.h"
|
||||||
|
#include "console.h"
|
||||||
|
#include "pipe.h"
|
||||||
|
#include "event.h"
|
||||||
|
|
||||||
|
struct kobject {
|
||||||
|
union {
|
||||||
|
struct device *device;
|
||||||
|
struct fs_dirent *file;
|
||||||
|
struct fs_dirent *dir;
|
||||||
|
struct window *window;
|
||||||
|
struct console *console;
|
||||||
|
struct pipe *pipe;
|
||||||
|
} data;
|
||||||
|
kobject_type_t type;
|
||||||
|
int refcount;
|
||||||
|
int offset;
|
||||||
|
char *tag;
|
||||||
|
};
|
||||||
|
|
||||||
|
struct kobject *kobject_create_file(struct fs_dirent *f);
|
||||||
|
struct kobject *kobject_create_dir(struct fs_dirent *d);
|
||||||
|
struct kobject *kobject_create_device(struct device *d);
|
||||||
|
struct kobject *kobject_create_window(struct window *g);
|
||||||
|
struct kobject *kobject_create_console(struct console *c);
|
||||||
|
struct kobject *kobject_create_pipe(struct pipe *p);
|
||||||
|
struct kobject *kobject_create_event();
|
||||||
|
|
||||||
|
struct kobject *kobject_create_window_from_window( struct kobject *k, int x, int y, int w, int h );
|
||||||
|
struct kobject *kobject_create_console_from_window( struct kobject *k );
|
||||||
|
struct kobject *kobject_create_dir_from_dir( struct kobject *kobject, const char *name );
|
||||||
|
struct kobject *kobject_create_file_from_dir( struct kobject *kobject, const char *name );
|
||||||
|
|
||||||
|
struct kobject *kobject_addref(struct kobject *k);
|
||||||
|
|
||||||
|
struct kobject * kobject_copy( struct kobject *ksrc );
|
||||||
|
|
||||||
|
int kobject_read(struct kobject *kobject, void *buffer, int size, kernel_io_flags_t flags );
|
||||||
|
int kobject_lookup( struct kobject *kobject, const char *name, struct kobject **newobj );
|
||||||
|
int kobject_write(struct kobject *kobject, void *buffer, int size, kernel_io_flags_t flags );
|
||||||
|
int kobject_list( struct kobject *kobject, void *buffer, int size );
|
||||||
|
int kobject_size(struct kobject *kobject, int *dimensions, int n);
|
||||||
|
int kobject_remove( struct kobject *kobject, const char *name );
|
||||||
|
int kobject_close(struct kobject *kobject);
|
||||||
|
|
||||||
|
int kobject_get_type(struct kobject *kobject);
|
||||||
|
int kobject_set_tag(struct kobject *kobject, char *new_tag);
|
||||||
|
int kobject_get_tag(struct kobject *kobject, char *buffer, int buffer_size);
|
||||||
|
|
||||||
|
#endif
|
Loading…
Reference in New Issue
Block a user