|
PatchworkOS
|
#include <kernel/ipc/pipe.h>#include <kernel/fs/file.h>#include <kernel/fs/vfs.h>#include <kernel/log/log.h>#include <kernel/log/panic.h>#include <kernel/mem/pmm.h>#include <kernel/sched/thread.h>#include <kernel/sync/lock.h>#include <kernel/utils/ring.h>#include <assert.h>#include <stdlib.h>#include <sys/io.h>#include <sys/math.h>Go to the source code of this file.
Functions | |
| static uint64_t | pipe_open (file_t *file) |
| static uint64_t | pipe_open2 (file_t *files[2]) |
| static void | pipe_close (file_t *file) |
| static uint64_t | pipe_read (file_t *file, void *buffer, uint64_t count, uint64_t *offset) |
| static uint64_t | pipe_write (file_t *file, const void *buffer, uint64_t count, uint64_t *offset) |
| static wait_queue_t * | pipe_poll (file_t *file, poll_events_t *revents) |
| void | pipe_init (void) |
Variables | |
| static dentry_t * | pipeDir = NULL |
| static dentry_t * | newFile = NULL |
| static file_ops_t | fileOps |
|
static |
Definition at line 73 of file pipe.c.
References EOK, file, free(), lock_acquire(), lock_release(), pmm_free(), dentry_t::private, WAIT_ALL, wait_queue_deinit(), and wait_unblock().
Definition at line 20 of file pipe.c.
References ERR, file, free(), lock_init(), malloc(), NULL, PAGE_SIZE, pmm_alloc(), dentry_t::private, ring_init(), and wait_queue_init().
Definition at line 46 of file pipe.c.
References ERR, files, free(), lock_init(), malloc(), NULL, PAGE_SIZE, PIPE_READ, PIPE_WRITE, pmm_alloc(), ring_init(), and wait_queue_init().
|
static |
Definition at line 180 of file pipe.c.
References file, LOCK_SCOPE, POLLIN, POLLOUT, dentry_t::private, ring_data_length(), and ring_free_length().
|
static |
Definition at line 99 of file pipe.c.
References buffer, count, EINVAL, ENOTSUP, EOK, ERR, errno, file, LOCK_SCOPE, MIN, NULL, PAGE_SIZE, panic(), dentry_t::private, ring_data_length(), ring_read(), WAIT_ALL, WAIT_BLOCK_LOCK, and wait_unblock().
|
static |
Definition at line 139 of file pipe.c.
References buffer, count, EINVAL, ENOTSUP, EOK, EPIPE, ERR, errno, file, LOCK_SCOPE, NULL, PAGE_SIZE, panic(), dentry_t::private, ring_free_length(), ring_write(), WAIT_ALL, WAIT_BLOCK_LOCK, and wait_unblock().
|
static |
Definition at line 197 of file pipe.c.
Referenced by pipe_init().
Definition at line 18 of file pipe.c.
Referenced by pipe_init().
Definition at line 17 of file pipe.c.
Referenced by pipe_init().