mirror of
				https://github.com/RGBCube/serenity
				synced 2025-10-31 09:02:43 +00:00 
			
		
		
		
	Kernel: SharedMemory should implement mmap().
This commit is contained in:
		
							parent
							
								
									237628a7a6
								
							
						
					
					
						commit
						a4e48dce77
					
				
					 3 changed files with 8 additions and 6 deletions
				
			
		|  | @ -324,12 +324,6 @@ KResultOr<Region*> FileDescriptor::mmap(Process& process, LinearAddress laddr, s | ||||||
|     if (m_file) |     if (m_file) | ||||||
|         return m_file->mmap(process, laddr, offset, size); |         return m_file->mmap(process, laddr, offset, size); | ||||||
| 
 | 
 | ||||||
|     if (is_shared_memory()) { |  | ||||||
|         if (!shared_memory()->vmo()) |  | ||||||
|             return KResult(-ENODEV); |  | ||||||
|         return process.allocate_region_with_vmo(laddr, size, *shared_memory()->vmo(), offset, shared_memory()->name(), true, true); |  | ||||||
|     } |  | ||||||
| 
 |  | ||||||
|     if (!is_fsfile()) |     if (!is_fsfile()) | ||||||
|         return KResult(-ENODEV); |         return KResult(-ENODEV); | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -88,3 +88,10 @@ int SharedMemory::write(FileDescriptor&, const byte* data, int data_size) | ||||||
|     // FIXME: Implement.
 |     // FIXME: Implement.
 | ||||||
|     ASSERT_NOT_REACHED(); |     ASSERT_NOT_REACHED(); | ||||||
| } | } | ||||||
|  | 
 | ||||||
|  | KResultOr<Region*> SharedMemory::mmap(Process& process, LinearAddress laddr, size_t offset, size_t size) | ||||||
|  | { | ||||||
|  |     if (!vmo()) | ||||||
|  |         return KResult(-ENODEV); | ||||||
|  |     return process.allocate_region_with_vmo(laddr, size, *vmo(), offset, name(), true, true); | ||||||
|  | } | ||||||
|  |  | ||||||
|  | @ -31,6 +31,7 @@ private: | ||||||
|     virtual String absolute_path(FileDescriptor&) const override; |     virtual String absolute_path(FileDescriptor&) const override; | ||||||
|     virtual const char* class_name() const override { return "SharedMemory"; } |     virtual const char* class_name() const override { return "SharedMemory"; } | ||||||
|     virtual bool is_shared_memory() const override { return true; } |     virtual bool is_shared_memory() const override { return true; } | ||||||
|  |     virtual KResultOr<Region*> mmap(Process&, LinearAddress, size_t offset, size_t size) override; | ||||||
| 
 | 
 | ||||||
|     SharedMemory(const String& name, uid_t, gid_t, mode_t); |     SharedMemory(const String& name, uid_t, gid_t, mode_t); | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Andreas Kling
						Andreas Kling