diff options
| author | nodist <kevin.comas.git@gmail.com> | 2026-07-07 15:33:52 -0400 |
|---|---|---|
| committer | nodist <kevin.comas.git@gmail.com> | 2026-07-07 15:33:52 -0400 |
| commit | 51c371db6ced53b8f9198890672961ef912a9aad (patch) | |
| tree | 23343a3d1779e9145ae72f9b12570d81b1ee8759 /docs/application | |
| parent | 7add85856a927766f218789aa946641228650c02 (diff) | |
define interfaces
Diffstat (limited to 'docs/application')
| -rw-r--r-- | docs/application/index.md | 3 | ||||
| -rw-r--r-- | docs/application/interface.md | 14 | ||||
| -rw-r--r-- | docs/application/io.md | 38 | ||||
| -rw-r--r-- | docs/application/thread.md | 8 |
4 files changed, 51 insertions, 12 deletions
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 |
