Files
Astral/kernel-src/include/kernel/pipefs.h
T

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