1.1 --- a/libfsserver/include/fsserver/directory_resource.h Sun Oct 17 21:55:37 2021 +0200 1.2 +++ b/libfsserver/include/fsserver/directory_resource.h Sun Oct 17 22:10:09 2021 +0200 1.3 @@ -23,7 +23,6 @@ 1.4 1.5 #include <fsserver/directory_object_interface.h> 1.6 #include <fsserver/directory_provider.h> 1.7 -#include <fsserver/file_registry.h> 1.8 #include <fsserver/resource.h> 1.9 1.10 1.11 @@ -33,7 +32,6 @@ 1.12 class DirectoryResource : public Resource, public DirectoryObject 1.13 { 1.14 protected: 1.15 - FileRegistry *_registry; 1.16 DirectoryProvider *_provider; 1.17 1.18 /* Notification endpoint for event subscription. */ 1.19 @@ -43,8 +41,7 @@ 1.20 public: 1.21 fileid_t fileid; 1.22 1.23 - DirectoryResource(fileid_t fileid, DirectoryProvider *provider, 1.24 - FileRegistry *registry); 1.25 + DirectoryResource(fileid_t fileid, DirectoryProvider *provider); 1.26 1.27 virtual ~DirectoryResource(); 1.28
2.1 --- a/libfsserver/include/fsserver/file_pager.h Sun Oct 17 21:55:37 2021 +0200 2.2 +++ b/libfsserver/include/fsserver/file_pager.h Sun Oct 17 22:10:09 2021 +0200 2.3 @@ -24,7 +24,6 @@ 2.4 #include <fsserver/mapped_file_object_interface.h> 2.5 #include <fsserver/pager.h> 2.6 #include <fsserver/file_provider.h> 2.7 -#include <fsserver/file_registry.h> 2.8 2.9 2.10 2.11 @@ -33,7 +32,6 @@ 2.12 class FilePager : public Pager, public MappedFileObject 2.13 { 2.14 protected: 2.15 - FileRegistry *_registry; 2.16 FileProvider *_provider; 2.17 2.18 /* Notification endpoint for event subscription. */ 2.19 @@ -47,8 +45,7 @@ 2.20 public: 2.21 fileid_t fileid; 2.22 2.23 - explicit FilePager(fileid_t fileid, FileProvider *provider, map_flags_t flags, 2.24 - FileRegistry *registry); 2.25 + explicit FilePager(fileid_t fileid, FileProvider *provider, map_flags_t flags); 2.26 2.27 virtual void close(); 2.28
3.1 --- a/libfsserver/include/fsserver/provider.h Sun Oct 17 21:55:37 2021 +0200 3.2 +++ b/libfsserver/include/fsserver/provider.h Sun Oct 17 22:10:09 2021 +0200 3.3 @@ -41,6 +41,8 @@ 3.4 3.5 virtual ~Provider(); 3.6 3.7 + virtual FileRegistry *registry(); 3.8 + 3.9 virtual long make_resource(offset_t *size, object_flags_t *object_flags, 3.10 Resource **resource) = 0; 3.11 };
4.1 --- a/libfsserver/lib/directories/directory_provider.cc Sun Oct 17 21:55:37 2021 +0200 4.2 +++ b/libfsserver/lib/directories/directory_provider.cc Sun Oct 17 22:10:09 2021 +0200 4.3 @@ -60,7 +60,7 @@ 4.4 for detaching from the provider. */ 4.5 4.6 this->attach(); 4.7 - *resource = new DirectoryResource(_fileid, this, _registry); 4.8 + *resource = new DirectoryResource(_fileid, this); 4.9 return L4_EOK; 4.10 } 4.11
5.1 --- a/libfsserver/lib/directories/directory_resource.cc Sun Oct 17 21:55:37 2021 +0200 5.2 +++ b/libfsserver/lib/directories/directory_resource.cc Sun Oct 17 22:10:09 2021 +0200 5.3 @@ -30,9 +30,8 @@ 5.4 5.5 5.6 DirectoryResource::DirectoryResource(fileid_t fileid, 5.7 - DirectoryProvider *provider, 5.8 - FileRegistry *registry) 5.9 -: _registry(registry), _provider(provider), fileid(fileid) 5.10 + DirectoryProvider *provider) 5.11 +: _provider(provider), fileid(fileid) 5.12 { 5.13 } 5.14 5.15 @@ -61,15 +60,15 @@ 5.16 { 5.17 /* Detach the resource, potentially removing the file provider. */ 5.18 5.19 - _registry->detach(fileid, _provider); 5.20 + _provider->registry()->detach(fileid, _provider); 5.21 } 5.22 5.23 5.24 5.25 /* Thread payload for directory listing production. */ 5.26 5.27 -static void read_directory(FileRegistry *registry, DirectoryProvider *provider, 5.28 - fileid_t fileid, file_t *writer) 5.29 +static void read_directory(DirectoryProvider *provider, fileid_t fileid, 5.30 + file_t *writer) 5.31 { 5.32 DirectoryAccessor *accessor = provider->accessor(); 5.33 5.34 @@ -85,7 +84,7 @@ 5.35 /* Close and detach from the registry. */ 5.36 5.37 client_close(writer); 5.38 - registry->detach(fileid, provider); 5.39 + provider->registry()->detach(fileid, provider); 5.40 } 5.41 5.42 5.43 @@ -116,7 +115,7 @@ 5.44 5.45 /* Initiate the reading process. */ 5.46 5.47 - std::thread(read_directory, _registry, _provider, fileid, writer).detach(); 5.48 + std::thread(read_directory, _provider, fileid, writer).detach(); 5.49 5.50 /* Send the capability immediately, discarding it afterwards. */ 5.51
6.1 --- a/libfsserver/lib/files/file_pager.cc Sun Oct 17 21:55:37 2021 +0200 6.2 +++ b/libfsserver/lib/files/file_pager.cc Sun Oct 17 22:10:09 2021 +0200 6.3 @@ -28,10 +28,9 @@ 6.4 mapping flags and a file registry. The provider offers a shared page mapper 6.5 for moderating access to loaded pages. */ 6.6 6.7 -FilePager::FilePager(fileid_t fileid, FileProvider *provider, map_flags_t flags, 6.8 - FileRegistry *registry) 6.9 +FilePager::FilePager(fileid_t fileid, FileProvider *provider, map_flags_t flags) 6.10 : Pager(provider->mapper(), flags), 6.11 - _registry(registry), _provider(provider), fileid(fileid) 6.12 + _provider(provider), fileid(fileid) 6.13 { 6.14 } 6.15 6.16 @@ -57,7 +56,7 @@ 6.17 6.18 /* Detach the pager, potentially removing the file provider. */ 6.19 6.20 - _registry->detach(fileid, _provider); 6.21 + _provider->registry()->detach(fileid, _provider); 6.22 } 6.23 6.24
7.1 --- a/libfsserver/lib/files/file_provider.cc Sun Oct 17 21:55:37 2021 +0200 7.2 +++ b/libfsserver/lib/files/file_provider.cc Sun Oct 17 22:10:09 2021 +0200 7.3 @@ -60,7 +60,7 @@ 7.4 /* Initialise the pager with the provider and a reference to this object for 7.5 detaching from the provider. */ 7.6 7.7 - FilePager *pager = new FilePager(_fileid, this, _flags, _registry); 7.8 + FilePager *pager = new FilePager(_fileid, this, _flags); 7.9 7.10 /* Obtain the size details from the pager, also providing appropriate 7.11 flags. */
8.1 --- a/libfsserver/lib/generic/provider.cc Sun Oct 17 21:55:37 2021 +0200 8.2 +++ b/libfsserver/lib/generic/provider.cc Sun Oct 17 22:10:09 2021 +0200 8.3 @@ -32,4 +32,9 @@ 8.4 { 8.5 } 8.6 8.7 +FileRegistry *Provider::registry() 8.8 +{ 8.9 + return _registry; 8.10 +} 8.11 + 8.12 // vim: tabstop=4 expandtab shiftwidth=4