summaryrefslogtreecommitdiff
path: root/kernel/fs/fifo.h
blob: 3cc0b844f2275cd64e1f6bca97a82cd240eb698f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
typedef struct S_FIFO_FILE FIFO_FILE;
#ifndef FIFO_H
#define FIFO_H
#include "vfs.h"
#include <stddef.h>
#include <typedefs.h>

struct S_FIFO_FILE {
  char *buffer;
  u64 buffer_len;
  u64 write_len;
  u8 is_blocking;
  u8 has_data;
  u8 can_write;
};

FIFO_FILE *create_fifo_object(void);
int fifo_object_write(u8 *buffer, u64 offset, u64 len, FIFO_FILE *file);
int fifo_object_read(u8 *buffer, u64 offset, u64 len, FIFO_FILE *file);
#endif