1.1 --- a/libfsserver/lib/directories/directory_provider.cc Sun Oct 17 18:48:30 2021 +0200
1.2 +++ b/libfsserver/lib/directories/directory_provider.cc Sun Oct 17 21:55:37 2021 +0200
1.3 @@ -20,13 +20,15 @@
1.4 */
1.5
1.6 #include "directory_provider.h"
1.7 +#include "directory_resource.h"
1.8
1.9
1.10
1.11 /* Initialise the provider. */
1.12
1.13 -DirectoryProvider::DirectoryProvider(DirectoryAccessor *accessor)
1.14 -: Provider(), _accessor(accessor)
1.15 +DirectoryProvider::DirectoryProvider(fileid_t fileid, FileRegistry *registry,
1.16 + DirectoryAccessor *accessor)
1.17 +: Provider(fileid, registry), _accessor(accessor)
1.18 {
1.19 }
1.20
1.21 @@ -43,4 +45,23 @@
1.22 return _accessor;
1.23 }
1.24
1.25 +/* Return a directory resource initialised with this provider. */
1.26 +
1.27 +long DirectoryProvider::make_resource(offset_t *size,
1.28 + object_flags_t *object_flags,
1.29 + Resource **resource)
1.30 +{
1.31 + /* Provide non-file values for certain outputs. */
1.32 +
1.33 + *size = 0;
1.34 + *object_flags = 0;
1.35 +
1.36 + /* Initialise the resource with the provider and a reference to the registry
1.37 + for detaching from the provider. */
1.38 +
1.39 + this->attach();
1.40 + *resource = new DirectoryResource(_fileid, this, _registry);
1.41 + return L4_EOK;
1.42 +}
1.43 +
1.44 // vim: tabstop=4 expandtab shiftwidth=4