diff options
author | William Pitcock <nenolod@dereferenced.org> | 2017-11-16 05:50:10 +0000 |
---|---|---|
committer | William Pitcock <nenolod@dereferenced.org> | 2017-11-16 05:50:10 +0000 |
commit | bf0205104ba520e7d2fea17704a1cc131551c3d3 (patch) | |
tree | 6f3d03abbe0934703f431ac4b3d287bde7b3037b /main/musl/3002-stdio-implement-fopencookie-3.patch | |
parent | affa8e396bcfc542aae2c8cedf19d08588dbc507 (diff) | |
download | aports-bf0205104ba520e7d2fea17704a1cc131551c3d3.tar.bz2 aports-bf0205104ba520e7d2fea17704a1cc131551c3d3.tar.xz |
main/musl: add GNU typedefs for fopencookie hook functions
Diffstat (limited to 'main/musl/3002-stdio-implement-fopencookie-3.patch')
-rw-r--r-- | main/musl/3002-stdio-implement-fopencookie-3.patch | 30 |
1 files changed, 19 insertions, 11 deletions
diff --git a/main/musl/3002-stdio-implement-fopencookie-3.patch b/main/musl/3002-stdio-implement-fopencookie-3.patch index 0c5eb63878..4b863e9095 100644 --- a/main/musl/3002-stdio-implement-fopencookie-3.patch +++ b/main/musl/3002-stdio-implement-fopencookie-3.patch @@ -1,7 +1,7 @@ -From b0949ba08f7b896593eaf27023a16a0f26c9ed14 Mon Sep 17 00:00:00 2001 +From 1f6d9870ebc905990d230a3887d2e91a9edfde93 Mon Sep 17 00:00:00 2001 From: William Pitcock <nenolod@dereferenced.org> Date: Sun, 24 Sep 2017 16:37:48 -0500 -Subject: [PATCH 30/30] stdio: implement fopencookie(3) +Subject: [PATCH] stdio: implement fopencookie(3) The fopencookie(3) function allows the programmer to create a custom stdio implementation, using four hook functions which operate on a @@ -9,6 +9,9 @@ stdio implementation, using four hook functions which operate on a Changelog: +v7: +- include GNU typedefs for cookie i/o functions + v6: - remove pointer arithmetic instead using a structure to contain the parent FILE object @@ -34,25 +37,30 @@ v2: v1: - initial proof of concept --- - include/stdio.h | 9 ++++ + include/stdio.h | 14 +++++ src/stdio/fopencookie.c | 141 ++++++++++++++++++++++++++++++++++++++++++++++++ - 2 files changed, 150 insertions(+) + 2 files changed, 155 insertions(+) create mode 100644 src/stdio/fopencookie.c diff --git a/include/stdio.h b/include/stdio.h -index 884d2e6a..da0563f6 100644 +index 884d2e6a..2932c76f 100644 --- a/include/stdio.h +++ b/include/stdio.h -@@ -182,6 +182,15 @@ int vasprintf(char **, const char *, __isoc_va_list); +@@ -182,6 +182,20 @@ int vasprintf(char **, const char *, __isoc_va_list); #ifdef _GNU_SOURCE char *fgets_unlocked(char *, int, FILE *); int fputs_unlocked(const char *, FILE *); + ++typedef ssize_t (cookie_read_function_t)(void *, char *, size_t); ++typedef ssize_t (cookie_write_function_t)(void *, const char *, size_t); ++typedef int (cookie_seek_function_t)(void *, off_t *, int); ++typedef int (cookie_close_function_t)(void *); ++ +typedef struct { -+ ssize_t (*read)(void *, char *, size_t); -+ ssize_t (*write)(void *, const char *, size_t); -+ int (*seek)(void *, off_t *, int); -+ int (*close)(void *); ++ cookie_read_function_t *read; ++ cookie_write_function_t *write; ++ cookie_seek_function_t *seek; ++ cookie_close_function_t *close; +} cookie_io_functions_t; + +FILE *fopencookie(void *, const char *, cookie_io_functions_t); @@ -207,5 +215,5 @@ index 00000000..bcf42c10 + return __ofl_add(&f->f); +} -- -2.13.3 +2.15.0 |