From 51c371db6ced53b8f9198890672961ef912a9aad Mon Sep 17 00:00:00 2001 From: nodist Date: Tue, 7 Jul 2026 15:33:52 -0400 Subject: define interfaces --- docs/application/index.md | 3 +++ docs/application/interface.md | 14 ++++---------- docs/application/io.md | 38 ++++++++++++++++++++++++++++++++++++-- docs/application/thread.md | 8 ++++++++ 4 files changed, 51 insertions(+), 12 deletions(-) (limited to 'docs/application') diff --git a/docs/application/index.md b/docs/application/index.md index 01287b1..8ead3a8 100644 --- a/docs/application/index.md +++ b/docs/application/index.md @@ -33,8 +33,11 @@ ## Startup 1. Configuration + * `thread_count` - defaults to number of available processors 2. Initialize tasks + * Built In Alias 2. Initialize allocators + * Slab sizes 4. Initialize types 5. Initialize IO diff --git a/docs/application/interface.md b/docs/application/interface.md index 831090b..9a7fa22 100644 --- a/docs/application/interface.md +++ b/docs/application/interface.md @@ -22,15 +22,7 @@ typedef union { void *ptr; } kpl_any; -typedef size_t kpl_any_hash_fn(const kpl_any a); - -typedef ssize_t kpl_any_cmp_fn(const kpl_any a, const kpl_any b); - -typedef int32_t kpl_write(const kpl_ant a, FILE *file, int32_t idnt, uint32_t opts); - -// TODO GC FUNCTION - -typedef void kpl_any_free_fn(kpl_any a); +typedef void kpl_interface_free(kpl_any a); typedef struct { // TODO @@ -38,7 +30,7 @@ typedef struct { typedef struct { kpl_any *any; - kpl_interface *interflace; + kpl_interface *interface; } kpl_class; typedef enum : uint8_t { @@ -66,3 +58,5 @@ typdef struct { ``` ## `kpl_interface` + +See [Operators](../language/operators.md) diff --git a/docs/application/io.md b/docs/application/io.md index 9ab786c..a292718 100644 --- a/docs/application/io.md +++ b/docs/application/io.md @@ -1,5 +1,39 @@ -# Io +# Io (io_uring) --- -All Io is done through linux io uring +# Design + +## Io Ring + +## Fixed Buffers + +## Fixed Files + +## Buffer Rings + +# Io Tasks + +Tasks for each IO operation are stored in the `user_data` field + +## Ring Submission `struct io_uring_sqe` + +## Ring Completion `struct io_uring_cqe` + +# Usage + +## File + +### Open + +### Statx + +### Read + +### Write + +## Directory + +## Timers + +## Network diff --git a/docs/application/thread.md b/docs/application/thread.md index 770358f..f871db7 100644 --- a/docs/application/thread.md +++ b/docs/application/thread.md @@ -75,12 +75,20 @@ regex : captures, function state, regex function ## Sync +Queue task on selected thread + ## Async +Queue task on thread with lowest `priority` + # Running ## Joining +# Thread Pool Management + +Run task to check thread pool sizes and create tasks to spread out a large pool across other threads + # Example ```c -- cgit v1.2.3