From 9695ea005d4af93dcd60f74f10fd3c54499a182f Mon Sep 17 00:00:00 2001 From: Nicholas Noll Date: Thu, 11 Nov 2021 16:31:58 -0800 Subject: chore: split up base library into individual files for smaller binaries --- sys/base/gz/flush.c | 7 +++++++ sys/base/gz/get.c | 17 +++++++++++++++++ sys/base/gz/interface.c | 12 ++++++++++++ sys/base/gz/internal.h | 6 ++++++ sys/base/gz/open.c | 13 +++++++++++++ sys/base/gz/printf.c | 15 +++++++++++++++ sys/base/gz/put.c | 7 +++++++ sys/base/gz/putstring.c | 8 ++++++++ sys/base/gz/read.c | 16 ++++++++++++++++ sys/base/gz/rules.mk | 11 +++++++++++ sys/base/gz/seek.c | 7 +++++++ sys/base/gz/write.c | 7 +++++++ 12 files changed, 126 insertions(+) create mode 100644 sys/base/gz/flush.c create mode 100644 sys/base/gz/get.c create mode 100644 sys/base/gz/interface.c create mode 100644 sys/base/gz/internal.h create mode 100644 sys/base/gz/open.c create mode 100644 sys/base/gz/printf.c create mode 100644 sys/base/gz/put.c create mode 100644 sys/base/gz/putstring.c create mode 100644 sys/base/gz/read.c create mode 100644 sys/base/gz/rules.mk create mode 100644 sys/base/gz/seek.c create mode 100644 sys/base/gz/write.c (limited to 'sys/base/gz') diff --git a/sys/base/gz/flush.c b/sys/base/gz/flush.c new file mode 100644 index 0000000..011a3ab --- /dev/null +++ b/sys/base/gz/flush.c @@ -0,0 +1,7 @@ +#include "internal.h" + +error +gz·flush(gz·Stream *s) +{ + return gzflush(s, Z_FINISH); +} diff --git a/sys/base/gz/get.c b/sys/base/gz/get.c new file mode 100644 index 0000000..24ba23a --- /dev/null +++ b/sys/base/gz/get.c @@ -0,0 +1,17 @@ +#include "internal.h" + +byte +gz·getbyte(gz·Stream *s) +{ + // NOTE: Can't call macro + byte b[2]; + gzread(s, b, 1); + + return b[0]; +} + +error +gz·ungetbyte(gz·Stream *s, byte c) +{ + return gzungetc(c, s); +} diff --git a/sys/base/gz/interface.c b/sys/base/gz/interface.c new file mode 100644 index 0000000..15b8f10 --- /dev/null +++ b/sys/base/gz/interface.c @@ -0,0 +1,12 @@ +#include "internal.h" + +io·Reader gz·Reader = (io·Reader){ gz·read }; +io·Peeker gz·Peeker = (io·Peeker){ gz·getbyte, gz·ungetbyte }; +io·Seeker gz·Seeker = (io·Seeker){ gz·seek, gz·tell }; +io·PeekReader gz·Peekreader = (io·PeekReader){ gz·read, gz·getbyte, gz·ungetbyte }; + +io·Writer gz·Writer = (io·Writer){ gz·write }; +io·Putter gz·Putter = (io·Putter){ gz·putbyte, gz·putstring }; +io·PutWriter gz·PutWriter = (io·PutWriter){ gz·write, gz·putbyte, gz·putstring }; + +io·ReadWriter gz·ReadWriter = (io·ReadWriter){ gz·read, gz·write }; diff --git a/sys/base/gz/internal.h b/sys/base/gz/internal.h new file mode 100644 index 0000000..6a268c4 --- /dev/null +++ b/sys/base/gz/internal.h @@ -0,0 +1,6 @@ +#pragma once + +#include +#include + +#include diff --git a/sys/base/gz/open.c b/sys/base/gz/open.c new file mode 100644 index 0000000..c84ce5e --- /dev/null +++ b/sys/base/gz/open.c @@ -0,0 +1,13 @@ +#include "internal.h" + +gz·Stream* +gz·open(byte *path, byte *mode) +{ + return gzopen(path, mode); +} + +error +gz·close(gz·Stream* s) +{ + return gzclose(s); +} diff --git a/sys/base/gz/printf.c b/sys/base/gz/printf.c new file mode 100644 index 0000000..d7f75cf --- /dev/null +++ b/sys/base/gz/printf.c @@ -0,0 +1,15 @@ +#include "internal.h" + +int +gz·printf(gz·Stream *s, byte *fmt, ...) +{ + error err; + + va_list args; + va_start(args, fmt); + err = gzprintf(s, fmt, args); + va_end(args); + + return err; +} + diff --git a/sys/base/gz/put.c b/sys/base/gz/put.c new file mode 100644 index 0000000..fa9807d --- /dev/null +++ b/sys/base/gz/put.c @@ -0,0 +1,7 @@ +#include "internal.h" + +error +gz·putbyte(gz·Stream *s, byte c) +{ + return gzputc(s, c); +} diff --git a/sys/base/gz/putstring.c b/sys/base/gz/putstring.c new file mode 100644 index 0000000..64ff470 --- /dev/null +++ b/sys/base/gz/putstring.c @@ -0,0 +1,8 @@ +#include "internal.h" + +error +gz·putstring(gz·Stream *s, byte *str) +{ + return gzputs(s, str); +} + diff --git a/sys/base/gz/read.c b/sys/base/gz/read.c new file mode 100644 index 0000000..112fe4d --- /dev/null +++ b/sys/base/gz/read.c @@ -0,0 +1,16 @@ +#include "internal.h" + +int +gz·read(gz·Stream *s, int sz, int n, void* buf) +{ + return gzread(s, buf, n*sz); +} + +int +gz·readln(gz·Stream *s, int n, byte *buf) +{ + byte* b; + b = gzgets(s, buf, n); + + return strlen(b); +} diff --git a/sys/base/gz/rules.mk b/sys/base/gz/rules.mk new file mode 100644 index 0000000..a933291 --- /dev/null +++ b/sys/base/gz/rules.mk @@ -0,0 +1,11 @@ +SRCS_$(d)+=\ + $(d)/gz/flush.c\ + $(d)/gz/get.c\ + $(d)/gz/interface.c\ + $(d)/gz/open.c\ + $(d)/gz/printf.c\ + $(d)/gz/put.c\ + $(d)/gz/putstring.c\ + $(d)/gz/read.c\ + $(d)/gz/seek.c\ + $(d)/gz/write.c\ diff --git a/sys/base/gz/seek.c b/sys/base/gz/seek.c new file mode 100644 index 0000000..328886d --- /dev/null +++ b/sys/base/gz/seek.c @@ -0,0 +1,7 @@ +#include "internal.h" + +int +gz·seek(gz·Stream *s, long off, enum SeekPos whence) +{ + return gzseek(s, off, whence); +} diff --git a/sys/base/gz/write.c b/sys/base/gz/write.c new file mode 100644 index 0000000..862d833 --- /dev/null +++ b/sys/base/gz/write.c @@ -0,0 +1,7 @@ +#include "internal.h" + +int +gz·write(gz·Stream *s, int sz, int n, void* buf) +{ + return gzwrite(s, buf, n*sz); +} -- cgit v1.2.1