1.1 --- a/libfsclient/include/fsclient/client.h Sun Apr 18 22:32:54 2021 +0200
1.2 +++ b/libfsclient/include/fsclient/client.h Wed Apr 21 23:16:38 2021 +0200
1.3 @@ -31,6 +31,7 @@
1.4
1.5 void client_close(file_t *file);
1.6 file_t *client_open(const char *name, flags_t flags);
1.7 +file_t *client_open_device(const char *cap, const char *name, flags_t flags);
1.8 long client_pipe(file_t **reader, file_t **writer);
1.9
1.10 /* File and region operations. */
2.1 --- a/libfsclient/lib/src/client.cc Sun Apr 18 22:32:54 2021 +0200
2.2 +++ b/libfsclient/lib/src/client.cc Wed Apr 21 23:16:38 2021 +0200
2.3 @@ -51,12 +51,19 @@
2.4
2.5 file_t *client_open(const char *name, flags_t flags)
2.6 {
2.7 + return client_open_device("server", name, flags);
2.8 +}
2.9 +
2.10 +/* Open a filesystem object via a named capability. */
2.11 +
2.12 +file_t *client_open_device(const char *cap, const char *name, flags_t flags)
2.13 +{
2.14 file_t *file = (file_t *) malloc(sizeof(file_t));
2.15
2.16 if (file == NULL)
2.17 return NULL;
2.18
2.19 - l4_cap_idx_t server = l4re_env_get_cap("server");
2.20 + l4_cap_idx_t server = l4re_env_get_cap(cap);
2.21
2.22 if (file_open(file, name, flags, server))
2.23 {