mirror of
				https://github.com/RGBCube/serenity
				synced 2025-10-31 13:22:43 +00:00 
			
		
		
		
	Add sync() syscall and a /bin/sync.
It walks all the live Inode objects and flushes pending metadata changes wherever needed. This could be optimized by keeping a separate list of dirty Inodes, but let's not get ahead of ourselves.
This commit is contained in:
		
							parent
							
								
									d0f06e5f3f
								
							
						
					
					
						commit
						ed7ae6c02c
					
				
					 14 changed files with 78 additions and 24 deletions
				
			
		|  | @ -44,6 +44,12 @@ void initialize() | |||
|     kprintf("syscall: int 0x80 handler installed\n"); | ||||
| } | ||||
| 
 | ||||
| static int sync() | ||||
| { | ||||
|     VFS::the().sync(); | ||||
|     return 0; | ||||
| } | ||||
| 
 | ||||
| static dword handle(RegisterDump& regs, dword function, dword arg1, dword arg2, dword arg3) | ||||
| { | ||||
|     ASSERT_INTERRUPTS_ENABLED(); | ||||
|  | @ -179,6 +185,8 @@ static dword handle(RegisterDump& regs, dword function, dword arg1, dword arg2, | |||
|         return current->sys$times((Unix::tms*)arg1); | ||||
|     case Syscall::SC_utime: | ||||
|         return current->sys$utime((const char*)arg1, (const Unix::utimbuf*)arg2); | ||||
|     case Syscall::SC_sync: | ||||
|         return sync(); | ||||
|     default: | ||||
|         kprintf("<%u> int0x80: Unknown function %u requested {%x, %x, %x}\n", current->pid(), function, arg1, arg2, arg3); | ||||
|         break; | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Andreas Kling
						Andreas Kling