PatchworkOS  28a9544
A non-POSIX operating system.
Loading...
Searching...
No Matches
local_conn.h
Go to the documentation of this file.
1#pragma once
2
3#include <kernel/sched/wait.h>
4#include <kernel/sync/lock.h>
5#include <kernel/utils/ref.h>
6#include <kernel/utils/ring.h>
7
8#include <sys/io.h>
9#include <sys/list.h>
10
11typedef struct local_listen local_listen_t;
12
28typedef struct local_conn
29{
30 ref_t ref;
31 list_entry_t entry;
32 ring_t clientToServer;
33 void* clientToServerBuffer;
34 ring_t serverToClient;
35 void* serverToClientBuffer;
36 local_listen_t* listen;
37 bool isClosed;
39 wait_queue_t waitQueue;
41
49
56
local_conn_t * local_conn_new(local_listen_t *listen)
Allocate and initialize a new local connection.
Definition local_conn.c:14
void local_conn_free(local_conn_t *conn)
Free and deinitialize a local connection.
Definition local_conn.c:54
static rwlock_t lock
Definition irq.c:10
A entry in a doubly linked list.
Definition list.h:38
Local Connection structure.
Definition local_conn.h:29
Local Listener structure.
A simple ticket lock implementation.
Definition lock.h:43
Reference counting structure.
Definition ref.h:30
Ring buffer structure.
Definition ring.h:19
Wait queue structure.
Definition wait.h:166