mirror of
				https://github.com/RGBCube/serenity
				synced 2025-10-31 16:02:45 +00:00 
			
		
		
		
	Everywhere: Remove string.h include from AK/Traits.h and resolve fallout
A lot of places were relying on AK/Traits.h to give it strnlen, memcmp, memcpy and other related declarations. In the quest to remove inclusion of LibC headers from Kernel files, deal with all the fallout of this included-everywhere header including less things.
This commit is contained in:
		
							parent
							
								
									0420736143
								
							
						
					
					
						commit
						7ab37ee22c
					
				
					 14 changed files with 35 additions and 18 deletions
				
			
		|  | @ -6,6 +6,7 @@ | |||
| 
 | ||||
| #include <AK/CharacterTypes.h> | ||||
| #include <AK/FuzzyMatch.h> | ||||
| #include <string.h> | ||||
| 
 | ||||
| namespace AK { | ||||
| 
 | ||||
|  |  | |||
|  | @ -84,11 +84,11 @@ public: | |||
|         TRY(begin_item(key)); | ||||
|         if constexpr (IsLegacyBuilder<Builder>) { | ||||
|             TRY(m_builder.try_append('"')); | ||||
|             TRY(m_builder.try_append_escaped_for_json({ value, strlen(value) })); | ||||
|             TRY(m_builder.try_append_escaped_for_json({ value, __builtin_strlen(value) })); | ||||
|             TRY(m_builder.try_append('"')); | ||||
|         } else { | ||||
|             TRY(m_builder.append('"')); | ||||
|             TRY(m_builder.append_escaped_for_json({ value, strlen(value) })); | ||||
|             TRY(m_builder.append_escaped_for_json({ value, __builtin_strlen(value) })); | ||||
|             TRY(m_builder.append('"')); | ||||
|         } | ||||
|         return {}; | ||||
|  |  | |||
|  | @ -10,10 +10,10 @@ | |||
| #include <AK/StdLibExtras.h> | ||||
| #include <AK/Types.h> | ||||
| #include <stdarg.h> | ||||
| #include <wchar.h> | ||||
| 
 | ||||
| #ifndef KERNEL | ||||
| #    include <math.h> | ||||
| #    include <wchar.h> | ||||
| #endif | ||||
| 
 | ||||
| #ifdef AK_OS_SERENITY | ||||
|  |  | |||
|  | @ -14,9 +14,12 @@ | |||
| #include <AK/StringView.h> | ||||
| #include <AK/Vector.h> | ||||
| 
 | ||||
| #ifndef KERNEL | ||||
| #ifdef KERNEL | ||||
| #    include <Kernel/StdLib.h> | ||||
| #else | ||||
| #    include <AK/DeprecatedString.h> | ||||
| #    include <AK/FloatingPointStringConversions.h> | ||||
| #    include <string.h> | ||||
| #endif | ||||
| 
 | ||||
| namespace AK { | ||||
|  |  | |||
							
								
								
									
										11
									
								
								AK/Time.h
									
										
									
									
									
								
							
							
						
						
									
										11
									
								
								AK/Time.h
									
										
									
									
									
								
							|  | @ -11,12 +11,11 @@ | |||
| #include <AK/Platform.h> | ||||
| #include <AK/Types.h> | ||||
| 
 | ||||
| // Kernel and Userspace pull in the definitions from different places.
 | ||||
| // Avoid trying to figure out which one.
 | ||||
| struct timeval; | ||||
| struct timespec; | ||||
| 
 | ||||
| #if defined(AK_OS_WINDOWS) | ||||
| #if defined(AK_OS_SERENITY) && defined(KERNEL) | ||||
| #    include <Kernel/API/POSIX/sys/time.h> | ||||
| #    include <Kernel/API/POSIX/time.h> | ||||
| #else | ||||
| #    include <sys/time.h> | ||||
| #    include <time.h> | ||||
| #endif | ||||
| 
 | ||||
|  |  | |||
|  | @ -11,7 +11,6 @@ | |||
| #include <AK/Forward.h> | ||||
| #include <AK/HashFunctions.h> | ||||
| #include <AK/StringHash.h> | ||||
| #include <string.h> | ||||
| 
 | ||||
| namespace AK { | ||||
| 
 | ||||
|  |  | |||
|  | @ -9,6 +9,7 @@ | |||
| #include <Kernel/Bus/USB/USBConfiguration.h> | ||||
| #include <Kernel/Bus/USB/USBInterface.h> | ||||
| #include <Kernel/Bus/USB/USBRequest.h> | ||||
| #include <Kernel/StdLib.h> | ||||
| 
 | ||||
| namespace Kernel::USB { | ||||
| 
 | ||||
|  |  | |||
|  | @ -6,6 +6,7 @@ | |||
| 
 | ||||
| #include <Kernel/Bus/USB/USBTransfer.h> | ||||
| #include <Kernel/Memory/MemoryManager.h> | ||||
| #include <Kernel/StdLib.h> | ||||
| 
 | ||||
| namespace Kernel::USB { | ||||
| 
 | ||||
|  |  | |||
|  | @ -992,11 +992,11 @@ ErrorOr<void> Ext2FSInode::update_timestamps(Optional<Time> atime, Optional<Time | |||
|     MutexLocker locker(m_inode_lock); | ||||
|     if (fs().is_readonly()) | ||||
|         return EROFS; | ||||
|     if (atime.value_or({}).to_timespec().tv_sec > INT32_MAX) | ||||
|     if (atime.value_or({}).to_timespec().tv_sec > NumericLimits<i32>::max()) | ||||
|         return EINVAL; | ||||
|     if (ctime.value_or({}).to_timespec().tv_sec > INT32_MAX) | ||||
|     if (ctime.value_or({}).to_timespec().tv_sec > NumericLimits<i32>::max()) | ||||
|         return EINVAL; | ||||
|     if (mtime.value_or({}).to_timespec().tv_sec > INT32_MAX) | ||||
|     if (mtime.value_or({}).to_timespec().tv_sec > NumericLimits<i32>::max()) | ||||
|         return EINVAL; | ||||
|     if (atime.has_value()) | ||||
|         m_raw_inode.i_atime = atime.value().to_timespec().tv_sec; | ||||
|  |  | |||
|  | @ -18,6 +18,7 @@ | |||
| #include <AK/Assertions.h> | ||||
| #include <AK/StringView.h> | ||||
| #include <Kernel/Memory/MemoryManager.h> | ||||
| #include <Kernel/StdLib.h> // For memcpy. FIXME: Make memcpy less expensive to access a declaration of in the Kernel. | ||||
| 
 | ||||
| namespace Kernel { | ||||
| 
 | ||||
|  |  | |||
|  | @ -51,6 +51,8 @@ void const* memmem(void const* haystack, size_t, void const* needle, size_t); | |||
| [[nodiscard]] inline u16 htons(u16 w) { return (w & 0xff) << 8 | ((w >> 8) & 0xff); } | ||||
| } | ||||
| 
 | ||||
| #define offsetof(type, member) __builtin_offsetof(type, member) | ||||
| 
 | ||||
| template<typename T> | ||||
| [[nodiscard]] inline ErrorOr<void> copy_from_user(T* dest, T const* src) | ||||
| { | ||||
|  |  | |||
|  | @ -10,7 +10,9 @@ | |||
| #include <AK/Try.h> | ||||
| #include <LibEDID/EDID.h> | ||||
| 
 | ||||
| #ifndef KERNEL | ||||
| #ifdef KERNEL | ||||
| #    include <Kernel/StdLib.h> | ||||
| #else | ||||
| #    include <AK/ScopeGuard.h> | ||||
| #    include <Kernel/API/Graphics.h> | ||||
| #    include <fcntl.h> | ||||
|  |  | |||
|  | @ -14,7 +14,12 @@ | |||
| #include <Kernel/API/serenity_limits.h> | ||||
| #include <LibELF/Image.h> | ||||
| #include <LibELF/Validation.h> | ||||
| #include <limits.h> | ||||
| 
 | ||||
| #ifdef KERNEL | ||||
| #    include <Kernel/StdLib.h> | ||||
| #else | ||||
| #    include <string.h> | ||||
| #endif | ||||
| 
 | ||||
| namespace ELF { | ||||
| 
 | ||||
|  |  | |||
|  | @ -10,8 +10,11 @@ | |||
| #include <Kernel/API/serenity_limits.h> | ||||
| #include <LibC/elf.h> | ||||
| #include <LibELF/Validation.h> | ||||
| #include <limits.h> | ||||
| #include <pthread.h> | ||||
| 
 | ||||
| #ifndef KERNEL | ||||
| #    include <limits.h> | ||||
| #    include <pthread.h> | ||||
| #endif | ||||
| 
 | ||||
| namespace ELF { | ||||
| 
 | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Andrew Kaster
						Andrew Kaster