mirror of
				https://github.com/RGBCube/serenity
				synced 2025-10-31 17:02:45 +00:00 
			
		
		
		
	Kernel+LibC: Use 64 bit values for ino_t
Since the InodeIndex encapsulates a 64 bit value, it is correct to ensure that the Kernel is exposing the entire value and the LibC is aware of it. This commit requires an entire re-compile because it's essentially a change in the Kernel ABI, together with a corresponding change in LibC.
This commit is contained in:
		
							parent
							
								
									04c2addaa8
								
							
						
					
					
						commit
						bf1adc2d5d
					
				
					 6 changed files with 7 additions and 6 deletions
				
			
		|  | @ -261,7 +261,7 @@ KResultOr<size_t> FileDescription::get_dir_entries(UserOrKernelBuffer& output_bu | ||||||
|                 return false; |                 return false; | ||||||
|             } |             } | ||||||
|         } |         } | ||||||
|         stream << (u32)entry.inode.index().value(); |         stream << (u64)entry.inode.index().value(); | ||||||
|         stream << m_inode->fs().internal_file_type_to_directory_entry_type(entry); |         stream << m_inode->fs().internal_file_type_to_directory_entry_type(entry); | ||||||
|         stream << (u32)entry.name.length(); |         stream << (u32)entry.name.length(); | ||||||
|         stream << entry.name.bytes(); |         stream << entry.name.bytes(); | ||||||
|  |  | ||||||
|  | @ -357,7 +357,7 @@ enum { | ||||||
| #define TCSAFLUSH 2 | #define TCSAFLUSH 2 | ||||||
| 
 | 
 | ||||||
| typedef u32 dev_t; | typedef u32 dev_t; | ||||||
| typedef u32 ino_t; | typedef u64 ino_t; | ||||||
| typedef u16 mode_t; | typedef u16 mode_t; | ||||||
| typedef u32 nlink_t; | typedef u32 nlink_t; | ||||||
| typedef u32 uid_t; | typedef u32 uid_t; | ||||||
|  |  | ||||||
|  | @ -5,6 +5,7 @@ | ||||||
|  */ |  */ | ||||||
| 
 | 
 | ||||||
| #include <AK/Assertions.h> | #include <AK/Assertions.h> | ||||||
|  | #include <AK/Format.h> | ||||||
| #include <AK/ScopeGuard.h> | #include <AK/ScopeGuard.h> | ||||||
| #include <AK/StdLibExtras.h> | #include <AK/StdLibExtras.h> | ||||||
| #include <AK/Vector.h> | #include <AK/Vector.h> | ||||||
|  |  | ||||||
|  | @ -32,7 +32,7 @@ typedef char* caddr_t; | ||||||
| 
 | 
 | ||||||
| typedef int id_t; | typedef int id_t; | ||||||
| 
 | 
 | ||||||
| typedef uint32_t ino_t; | typedef uint64_t ino_t; | ||||||
| typedef int64_t off_t; | typedef int64_t off_t; | ||||||
| 
 | 
 | ||||||
| typedef uint32_t blkcnt_t; | typedef uint32_t blkcnt_t; | ||||||
|  |  | ||||||
|  | @ -279,7 +279,7 @@ static size_t print_name(const struct stat& st, const String& name, const char* | ||||||
| static bool print_filesystem_object(const String& path, const String& name, const struct stat& st) | static bool print_filesystem_object(const String& path, const String& name, const struct stat& st) | ||||||
| { | { | ||||||
|     if (flag_show_inode) |     if (flag_show_inode) | ||||||
|         printf("%08u ", st.st_ino); |         printf("%s ", String::formatted("{}", st.st_ino).characters()); | ||||||
| 
 | 
 | ||||||
|     if (S_ISDIR(st.st_mode)) |     if (S_ISDIR(st.st_mode)) | ||||||
|         printf("d"); |         printf("d"); | ||||||
|  | @ -445,7 +445,7 @@ static bool print_filesystem_object_short(const char* path, const char* name, si | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     if (flag_show_inode) |     if (flag_show_inode) | ||||||
|         printf("%08u ", st.st_ino); |         printf("%s ", String::formatted("{}", st.st_ino).characters()); | ||||||
| 
 | 
 | ||||||
|     *nprinted = print_name(st, name, nullptr, path); |     *nprinted = print_name(st, name, nullptr, path); | ||||||
|     return true; |     return true; | ||||||
|  |  | ||||||
|  | @ -26,7 +26,7 @@ static int stat(const char* file, bool should_follow_links) | ||||||
|         return 1; |         return 1; | ||||||
|     } |     } | ||||||
|     printf("    File: %s\n", file); |     printf("    File: %s\n", file); | ||||||
|     printf("   Inode: %u\n", st.st_ino); |     printf("   Inode: %s\n", String::formatted("{}", st.st_ino).characters()); | ||||||
|     if (S_ISCHR(st.st_mode) || S_ISBLK(st.st_mode)) |     if (S_ISCHR(st.st_mode) || S_ISBLK(st.st_mode)) | ||||||
|         printf("  Device: %u,%u\n", major(st.st_rdev), minor(st.st_rdev)); |         printf("  Device: %u,%u\n", major(st.st_rdev), minor(st.st_rdev)); | ||||||
|     else |     else | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Liav A
						Liav A