mirror of
https://github.com/Mathewnd/Astral.git
synced 2026-10-27 12:48:22 +00:00
27 lines
544 B
C
27 lines
544 B
C
#ifndef _PIPEFS_H
|
|
#define _PIPEFS_H
|
|
|
|
#include <kernel/vfs.h>
|
|
#include <ringbuffer.h>
|
|
#include <semaphore.h>
|
|
#include <kernel/poll.h>
|
|
#include <kernel/event.h>
|
|
|
|
typedef struct pipenode_t {
|
|
vnode_t vnode;
|
|
vattr_t attr;
|
|
ringbuffer_t data;
|
|
size_t readers, writers;
|
|
bool open;
|
|
pollheader_t pollheader;
|
|
eventheader_t readopenevent;
|
|
eventheader_t writeopenevent;
|
|
} pipenode_t;
|
|
|
|
void pipefs_init();
|
|
int pipefs_newpipe(vnode_t **nodep);
|
|
int pipefs_getbinding(vnode_t *node, vnode_t **pipep);
|
|
void pipefs_leavebinding(vnode_t *pipenode);
|
|
|
|
#endif
|