diff options
author | midipix <writeonce@midipix.org> | 2024-02-25 21:57:24 +0000 |
---|---|---|
committer | midipix <writeonce@midipix.org> | 2024-02-25 21:57:24 +0000 |
commit | 3d2f83b5a3d42dd9b3430379a08a81f8004c7eb4 (patch) | |
tree | f08419e339d106e37eded799da4832699160212e /src/driver | |
parent | b1be90f4870a6ee3b8807b15b3e8bfe9c5573bbc (diff) | |
download | slibtool-3d2f83b5a3d42dd9b3430379a08a81f8004c7eb4.tar.bz2 slibtool-3d2f83b5a3d42dd9b3430379a08a81f8004c7eb4.tar.xz |
internals: added slbt_impl_get_txtfile_ctx() (caller-provided fd as input).
Diffstat (limited to 'src/driver')
-rw-r--r-- | src/driver/slbt_txtfile_ctx.c | 23 |
1 files changed, 21 insertions, 2 deletions
diff --git a/src/driver/slbt_txtfile_ctx.c b/src/driver/slbt_txtfile_ctx.c index 12b9cff..6159b1e 100644 --- a/src/driver/slbt_txtfile_ctx.c +++ b/src/driver/slbt_txtfile_ctx.c @@ -14,6 +14,7 @@ #include <slibtool/slibtool.h> #include "slibtool_driver_impl.h" #include "slibtool_errinfo_impl.h" +#include "slibtool_visibility_impl.h" /********************************************************/ /* Read a text file, and create an in-memory vecotr of */ @@ -45,9 +46,10 @@ static int slbt_lib_free_txtfile_ctx_impl( return ret; } -int slbt_lib_get_txtfile_ctx( +static int slbt_lib_get_txtfile_ctx_impl( const struct slbt_driver_ctx * dctx, const char * path, + int fdsrc, struct slbt_txtfile_ctx ** pctx) { struct slbt_txtfile_ctx_impl * ctx; @@ -62,7 +64,7 @@ int slbt_lib_get_txtfile_ctx( int cint; /* map txtfile file temporarily */ - if (slbt_fs_map_input(dctx,-1,path,PROT_READ,&mapinfo) < 0) + if (slbt_fs_map_input(dctx,fdsrc,path,PROT_READ,&mapinfo) < 0) return SLBT_NESTED_ERROR(dctx); /* alloc context */ @@ -140,6 +142,23 @@ int slbt_lib_get_txtfile_ctx( return 0; } +slbt_hidden int slbt_impl_get_txtfile_ctx( + const struct slbt_driver_ctx * dctx, + const char * path, + int fdsrc, + struct slbt_txtfile_ctx ** pctx) +{ + return slbt_lib_get_txtfile_ctx_impl(dctx,path,fdsrc,pctx); +} + +int slbt_lib_get_txtfile_ctx( + const struct slbt_driver_ctx * dctx, + const char * path, + struct slbt_txtfile_ctx ** pctx) +{ + return slbt_lib_get_txtfile_ctx_impl(dctx,path,(-1),pctx); +} + void slbt_lib_free_txtfile_ctx(struct slbt_txtfile_ctx * ctx) { struct slbt_txtfile_ctx_impl * ictx; |