# HG changeset patch # User Paul Boddie # Date 1619039798 -7200 # Node ID 9c16274efd4e3e4494916f8d26079d3808df00f8 # Parent e944e1a088b5a336f500a2290757eeebea535f46 Added a function for opening files via a named capability. diff -r e944e1a088b5 -r 9c16274efd4e libfsclient/include/fsclient/client.h --- a/libfsclient/include/fsclient/client.h Sun Apr 18 22:32:54 2021 +0200 +++ b/libfsclient/include/fsclient/client.h Wed Apr 21 23:16:38 2021 +0200 @@ -31,6 +31,7 @@ void client_close(file_t *file); file_t *client_open(const char *name, flags_t flags); +file_t *client_open_device(const char *cap, const char *name, flags_t flags); long client_pipe(file_t **reader, file_t **writer); /* File and region operations. */ diff -r e944e1a088b5 -r 9c16274efd4e libfsclient/lib/src/client.cc --- a/libfsclient/lib/src/client.cc Sun Apr 18 22:32:54 2021 +0200 +++ b/libfsclient/lib/src/client.cc Wed Apr 21 23:16:38 2021 +0200 @@ -51,12 +51,19 @@ file_t *client_open(const char *name, flags_t flags) { + return client_open_device("server", name, flags); +} + +/* Open a filesystem object via a named capability. */ + +file_t *client_open_device(const char *cap, const char *name, flags_t flags) +{ file_t *file = (file_t *) malloc(sizeof(file_t)); if (file == NULL) return NULL; - l4_cap_idx_t server = l4re_env_get_cap("server"); + l4_cap_idx_t server = l4re_env_get_cap(cap); if (file_open(file, name, flags, server)) {