mirror of
				https://github.com/RGBCube/serenity
				synced 2025-10-31 13:32:45 +00:00 
			
		
		
		
	Everywhere: Remove klog(), dbg() and purge all LogStream usage :^)
Good-bye LogStream. Long live AK::Format!
This commit is contained in:
		
							parent
							
								
									423ed53396
								
							
						
					
					
						commit
						ef1e5db1d0
					
				
					 209 changed files with 164 additions and 837 deletions
				
			
		|  | @ -325,12 +325,6 @@ inline NonnullRefPtr<ByteBufferImpl> ByteBufferImpl::copy(const void* data, size | ||||||
|     return ::adopt(*new ByteBufferImpl(data, size)); |     return ::adopt(*new ByteBufferImpl(data, size)); | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| inline const LogStream& operator<<(const LogStream& stream, const ByteBuffer& value) |  | ||||||
| { |  | ||||||
|     stream.write((const char*)value.data(), value.size()); |  | ||||||
|     return stream; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| using AK::ByteBuffer; | using AK::ByteBuffer; | ||||||
|  |  | ||||||
|  | @ -28,8 +28,13 @@ | ||||||
| #include <AK/GenericLexer.h> | #include <AK/GenericLexer.h> | ||||||
| #include <AK/String.h> | #include <AK/String.h> | ||||||
| #include <AK/StringBuilder.h> | #include <AK/StringBuilder.h> | ||||||
|  | #include <AK/kstdio.h> | ||||||
| #include <ctype.h> | #include <ctype.h> | ||||||
| 
 | 
 | ||||||
|  | #if defined(__serenity__) && !defined(KERNEL) | ||||||
|  | #    include <serenity.h> | ||||||
|  | #endif | ||||||
|  | 
 | ||||||
| #ifdef KERNEL | #ifdef KERNEL | ||||||
| #    include <Kernel/Process.h> | #    include <Kernel/Process.h> | ||||||
| #    include <Kernel/Thread.h> | #    include <Kernel/Thread.h> | ||||||
|  | @ -416,12 +421,6 @@ void vformat(StringBuilder& builder, StringView fmtstr, TypeErasedFormatParams p | ||||||
| 
 | 
 | ||||||
|     vformat_impl(params, fmtbuilder, parser); |     vformat_impl(params, fmtbuilder, parser); | ||||||
| } | } | ||||||
| void vformat(const LogStream& stream, StringView fmtstr, TypeErasedFormatParams params) |  | ||||||
| { |  | ||||||
|     StringBuilder builder; |  | ||||||
|     vformat(builder, fmtstr, params); |  | ||||||
|     stream << builder.to_string(); |  | ||||||
| } |  | ||||||
| 
 | 
 | ||||||
| void StandardFormatter::parse(TypeErasedFormatParams& params, FormatParser& parser) | void StandardFormatter::parse(TypeErasedFormatParams& params, FormatParser& parser) | ||||||
| { | { | ||||||
|  |  | ||||||
|  | @ -364,7 +364,6 @@ struct Formatter<std::nullptr_t> : Formatter<FlatPtr> { | ||||||
| }; | }; | ||||||
| 
 | 
 | ||||||
| void vformat(StringBuilder&, StringView fmtstr, TypeErasedFormatParams); | void vformat(StringBuilder&, StringView fmtstr, TypeErasedFormatParams); | ||||||
| void vformat(const LogStream& stream, StringView fmtstr, TypeErasedFormatParams); |  | ||||||
| 
 | 
 | ||||||
| #ifndef KERNEL | #ifndef KERNEL | ||||||
| void vout(FILE*, StringView fmtstr, TypeErasedFormatParams, bool newline = false); | void vout(FILE*, StringView fmtstr, TypeErasedFormatParams, bool newline = false); | ||||||
|  |  | ||||||
|  | @ -32,12 +32,10 @@ namespace AK { | ||||||
| 
 | 
 | ||||||
| class Bitmap; | class Bitmap; | ||||||
| class ByteBuffer; | class ByteBuffer; | ||||||
| class DebugLogStream; |  | ||||||
| class IPv4Address; | class IPv4Address; | ||||||
| class JsonArray; | class JsonArray; | ||||||
| class JsonObject; | class JsonObject; | ||||||
| class JsonValue; | class JsonValue; | ||||||
| class LogStream; |  | ||||||
| class StackInfo; | class StackInfo; | ||||||
| class String; | class String; | ||||||
| class StringBuilder; | class StringBuilder; | ||||||
|  | @ -143,7 +141,6 @@ using AK::ByteBuffer; | ||||||
| using AK::Bytes; | using AK::Bytes; | ||||||
| using AK::CircularDuplexStream; | using AK::CircularDuplexStream; | ||||||
| using AK::CircularQueue; | using AK::CircularQueue; | ||||||
| using AK::DebugLogStream; |  | ||||||
| using AK::DoublyLinkedList; | using AK::DoublyLinkedList; | ||||||
| using AK::DuplexMemoryStream; | using AK::DuplexMemoryStream; | ||||||
| using AK::FlyString; | using AK::FlyString; | ||||||
|  | @ -158,7 +155,6 @@ using AK::IPv4Address; | ||||||
| using AK::JsonArray; | using AK::JsonArray; | ||||||
| using AK::JsonObject; | using AK::JsonObject; | ||||||
| using AK::JsonValue; | using AK::JsonValue; | ||||||
| using AK::LogStream; |  | ||||||
| using AK::NonnullOwnPtr; | using AK::NonnullOwnPtr; | ||||||
| using AK::NonnullOwnPtrVector; | using AK::NonnullOwnPtrVector; | ||||||
| using AK::NonnullRefPtr; | using AK::NonnullRefPtr; | ||||||
|  |  | ||||||
|  | @ -27,7 +27,6 @@ | ||||||
| #pragma once | #pragma once | ||||||
| 
 | 
 | ||||||
| #include <AK/HashFunctions.h> | #include <AK/HashFunctions.h> | ||||||
| #include <AK/LogStream.h> |  | ||||||
| #include <AK/StdLibExtras.h> | #include <AK/StdLibExtras.h> | ||||||
| #include <AK/Types.h> | #include <AK/Types.h> | ||||||
| #include <AK/kmalloc.h> | #include <AK/kmalloc.h> | ||||||
|  |  | ||||||
|  | @ -26,6 +26,7 @@ | ||||||
| 
 | 
 | ||||||
| #pragma once | #pragma once | ||||||
| 
 | 
 | ||||||
|  | #include <AK/Forward.h> | ||||||
| #include <AK/HashTable.h> | #include <AK/HashTable.h> | ||||||
| 
 | 
 | ||||||
| namespace AK { | namespace AK { | ||||||
|  |  | ||||||
|  | @ -27,7 +27,6 @@ | ||||||
| #pragma once | #pragma once | ||||||
| 
 | 
 | ||||||
| #include <AK/Endian.h> | #include <AK/Endian.h> | ||||||
| #include <AK/LogStream.h> |  | ||||||
| #include <AK/Optional.h> | #include <AK/Optional.h> | ||||||
| #include <AK/String.h> | #include <AK/String.h> | ||||||
| #include <AK/StringView.h> | #include <AK/StringView.h> | ||||||
|  | @ -143,11 +142,6 @@ struct Traits<IPv4Address> : public GenericTraits<IPv4Address> { | ||||||
|     static constexpr unsigned hash(const IPv4Address& address) { return int_hash(address.to_u32()); } |     static constexpr unsigned hash(const IPv4Address& address) { return int_hash(address.to_u32()); } | ||||||
| }; | }; | ||||||
| 
 | 
 | ||||||
| inline const LogStream& operator<<(const LogStream& stream, const IPv4Address& value) |  | ||||||
| { |  | ||||||
|     return stream << value.to_string(); |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| template<> | template<> | ||||||
| struct Formatter<IPv4Address> : Formatter<String> { | struct Formatter<IPv4Address> : Formatter<String> { | ||||||
|     void format(FormatBuilder& builder, IPv4Address value) |     void format(FormatBuilder& builder, IPv4Address value) | ||||||
|  |  | ||||||
							
								
								
									
										240
									
								
								AK/LogStream.cpp
									
										
									
									
									
								
							
							
						
						
									
										240
									
								
								AK/LogStream.cpp
									
										
									
									
									
								
							|  | @ -1,240 +0,0 @@ | ||||||
| /*
 |  | ||||||
|  * Copyright (c) 2018-2020, Andreas Kling <kling@serenityos.org> |  | ||||||
|  * All rights reserved. |  | ||||||
|  * |  | ||||||
|  * Redistribution and use in source and binary forms, with or without |  | ||||||
|  * modification, are permitted provided that the following conditions are met: |  | ||||||
|  * |  | ||||||
|  * 1. Redistributions of source code must retain the above copyright notice, this |  | ||||||
|  *    list of conditions and the following disclaimer. |  | ||||||
|  * |  | ||||||
|  * 2. Redistributions in binary form must reproduce the above copyright notice, |  | ||||||
|  *    this list of conditions and the following disclaimer in the documentation |  | ||||||
|  *    and/or other materials provided with the distribution. |  | ||||||
|  * |  | ||||||
|  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" |  | ||||||
|  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE |  | ||||||
|  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE |  | ||||||
|  * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE |  | ||||||
|  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL |  | ||||||
|  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR |  | ||||||
|  * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER |  | ||||||
|  * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, |  | ||||||
|  * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE |  | ||||||
|  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |  | ||||||
|  */ |  | ||||||
| 
 |  | ||||||
| #include <AK/FlyString.h> |  | ||||||
| #include <AK/LogStream.h> |  | ||||||
| #include <AK/String.h> |  | ||||||
| #include <AK/StringBuilder.h> |  | ||||||
| #include <AK/StringView.h> |  | ||||||
| 
 |  | ||||||
| #ifdef KERNEL |  | ||||||
| #    include <Kernel/Process.h> |  | ||||||
| #    include <Kernel/Thread.h> |  | ||||||
| #endif |  | ||||||
| 
 |  | ||||||
| namespace AK { |  | ||||||
| 
 |  | ||||||
| const LogStream& operator<<(const LogStream& stream, const String& value) |  | ||||||
| { |  | ||||||
|     stream.write(value.characters(), value.length()); |  | ||||||
|     return stream; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| const LogStream& operator<<(const LogStream& stream, const FlyString& value) |  | ||||||
| { |  | ||||||
|     return stream << value.view(); |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| const LogStream& operator<<(const LogStream& stream, const StringView& value) |  | ||||||
| { |  | ||||||
|     stream.write(value.characters_without_null_termination(), value.length()); |  | ||||||
|     return stream; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| const LogStream& operator<<(const LogStream& stream, int value) |  | ||||||
| { |  | ||||||
|     char buffer[32]; |  | ||||||
|     snprintf(buffer, sizeof(buffer), "%d", value); |  | ||||||
|     return stream << buffer; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| const LogStream& operator<<(const LogStream& stream, long value) |  | ||||||
| { |  | ||||||
|     char buffer[32]; |  | ||||||
|     snprintf(buffer, sizeof(buffer), "%ld", value); |  | ||||||
|     return stream << buffer; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| const LogStream& operator<<(const LogStream& stream, long long value) |  | ||||||
| { |  | ||||||
|     char buffer[32]; |  | ||||||
|     snprintf(buffer, sizeof(buffer), "%lld", value); |  | ||||||
|     return stream << buffer; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| const LogStream& operator<<(const LogStream& stream, unsigned value) |  | ||||||
| { |  | ||||||
|     char buffer[32]; |  | ||||||
|     snprintf(buffer, sizeof(buffer), "%u", value); |  | ||||||
|     return stream << buffer; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| const LogStream& operator<<(const LogStream& stream, unsigned long long value) |  | ||||||
| { |  | ||||||
|     char buffer[32]; |  | ||||||
|     snprintf(buffer, sizeof(buffer), "%llu", value); |  | ||||||
|     return stream << buffer; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| const LogStream& operator<<(const LogStream& stream, unsigned long value) |  | ||||||
| { |  | ||||||
|     char buffer[32]; |  | ||||||
|     snprintf(buffer, sizeof(buffer), "%lu", value); |  | ||||||
|     return stream << buffer; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| const LogStream& operator<<(const LogStream& stream, const void* value) |  | ||||||
| { |  | ||||||
|     char buffer[32]; |  | ||||||
|     snprintf(buffer, sizeof(buffer), "%p", value); |  | ||||||
|     return stream << buffer; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| #if defined(__serenity__) && !defined(KERNEL) |  | ||||||
| static TriState got_process_name = TriState::Unknown; |  | ||||||
| static char process_name_buffer[256]; |  | ||||||
| #endif |  | ||||||
| 
 |  | ||||||
| DebugLogStream dbg() |  | ||||||
| { |  | ||||||
|     DebugLogStream stream; |  | ||||||
| 
 |  | ||||||
|     // FIXME: This logic is redundant with the stuff in Format.cpp.
 |  | ||||||
| #if defined(__serenity__) && !defined(KERNEL) |  | ||||||
|     if (got_process_name == TriState::Unknown) { |  | ||||||
|         if (get_process_name(process_name_buffer, sizeof(process_name_buffer)) == 0) |  | ||||||
|             got_process_name = TriState::True; |  | ||||||
|         else |  | ||||||
|             got_process_name = TriState::False; |  | ||||||
|     } |  | ||||||
|     if (got_process_name == TriState::True) |  | ||||||
|         stream << "\033[33;1m" << process_name_buffer << '(' << getpid() << ")\033[0m: "; |  | ||||||
| #endif |  | ||||||
| #if defined(__serenity__) && defined(KERNEL) |  | ||||||
|     if (Kernel::Processor::is_initialized() && Kernel::Thread::current()) |  | ||||||
|         stream << "\033[34;1m[#" << Kernel::Processor::id() << " " << *Kernel::Thread::current() << "]\033[0m: "; |  | ||||||
|     else |  | ||||||
|         stream << "\033[36;1m[Kernel]\033[0m: "; |  | ||||||
| #endif |  | ||||||
|     return stream; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| #ifdef KERNEL |  | ||||||
| KernelLogStream klog() |  | ||||||
| { |  | ||||||
|     KernelLogStream stream; |  | ||||||
|     if (Kernel::Processor::is_initialized() && Kernel::Thread::current()) |  | ||||||
|         stream << "\033[34;1m[#" << Kernel::Processor::id() << " " << *Kernel::Thread::current() << "]\033[0m: "; |  | ||||||
|     else |  | ||||||
|         stream << "\033[36;1m[Kernel]\033[0m: "; |  | ||||||
|     return stream; |  | ||||||
| } |  | ||||||
| #else |  | ||||||
| DebugLogStream klog() |  | ||||||
| { |  | ||||||
| #    pragma GCC diagnostic push |  | ||||||
| #    pragma GCC diagnostic ignored "-Wdeprecated-declarations" |  | ||||||
|     return dbg(); |  | ||||||
| #    pragma GCC diagnostic pop |  | ||||||
| } |  | ||||||
| #endif |  | ||||||
| 
 |  | ||||||
| #ifdef KERNEL |  | ||||||
| KernelLogStream::~KernelLogStream() |  | ||||||
| { |  | ||||||
|     if (!empty()) { |  | ||||||
|         char newline = '\n'; |  | ||||||
|         write(&newline, 1); |  | ||||||
|         kernelputstr(reinterpret_cast<char*>(data()), size()); |  | ||||||
|     } |  | ||||||
| } |  | ||||||
| #endif |  | ||||||
| 
 |  | ||||||
| DebugLogStream::~DebugLogStream() |  | ||||||
| { |  | ||||||
|     if (!empty() && s_enabled) { |  | ||||||
|         char newline = '\n'; |  | ||||||
|         write(&newline, 1); |  | ||||||
|         dbgputstr(reinterpret_cast<char*>(data()), size()); |  | ||||||
|     } |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| void DebugLogStream::set_enabled(bool enabled) |  | ||||||
| { |  | ||||||
|     s_enabled = enabled; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| bool DebugLogStream::is_enabled() |  | ||||||
| { |  | ||||||
|     return s_enabled; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| bool DebugLogStream::s_enabled = true; |  | ||||||
| 
 |  | ||||||
| #ifndef KERNEL |  | ||||||
| const LogStream& operator<<(const LogStream& stream, double value) |  | ||||||
| { |  | ||||||
|     return stream << String::format("%.4f", value); |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| const LogStream& operator<<(const LogStream& stream, float value) |  | ||||||
| { |  | ||||||
|     return stream << String::format("%.4f", value); |  | ||||||
| } |  | ||||||
| #endif |  | ||||||
| 
 |  | ||||||
| void dump_bytes(ReadonlyBytes bytes) |  | ||||||
| { |  | ||||||
|     StringBuilder builder; |  | ||||||
| 
 |  | ||||||
|     u8 buffered_byte = 0; |  | ||||||
|     size_t nrepeat = 0; |  | ||||||
|     const char* prefix = ""; |  | ||||||
| 
 |  | ||||||
|     auto flush = [&]() { |  | ||||||
|         if (nrepeat > 0) { |  | ||||||
|             if (nrepeat == 1) |  | ||||||
|                 builder.appendff("{}{:#02x}", prefix, static_cast<int>(buffered_byte)); |  | ||||||
|             else |  | ||||||
|                 builder.appendff("{}{} * {:#02x}", prefix, nrepeat, static_cast<int>(buffered_byte)); |  | ||||||
| 
 |  | ||||||
|             nrepeat = 0; |  | ||||||
|             prefix = ", "; |  | ||||||
|         } |  | ||||||
|     }; |  | ||||||
| 
 |  | ||||||
|     builder.append("{ "); |  | ||||||
| 
 |  | ||||||
|     for (auto byte : bytes) { |  | ||||||
|         if (nrepeat > 0) { |  | ||||||
|             if (byte != buffered_byte) |  | ||||||
|                 flush(); |  | ||||||
| 
 |  | ||||||
|             buffered_byte = byte; |  | ||||||
|             nrepeat++; |  | ||||||
|         } else { |  | ||||||
|             buffered_byte = byte; |  | ||||||
|             nrepeat = 1; |  | ||||||
|         } |  | ||||||
|     } |  | ||||||
|     flush(); |  | ||||||
| 
 |  | ||||||
|     builder.append(" }"); |  | ||||||
| 
 |  | ||||||
|     dbgln("{}", builder.string_view()); |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| } |  | ||||||
							
								
								
									
										196
									
								
								AK/LogStream.h
									
										
									
									
									
								
							
							
						
						
									
										196
									
								
								AK/LogStream.h
									
										
									
									
									
								
							|  | @ -1,196 +0,0 @@ | ||||||
| /*
 |  | ||||||
|  * Copyright (c) 2018-2020, Andreas Kling <kling@serenityos.org> |  | ||||||
|  * All rights reserved. |  | ||||||
|  * |  | ||||||
|  * Redistribution and use in source and binary forms, with or without |  | ||||||
|  * modification, are permitted provided that the following conditions are met: |  | ||||||
|  * |  | ||||||
|  * 1. Redistributions of source code must retain the above copyright notice, this |  | ||||||
|  *    list of conditions and the following disclaimer. |  | ||||||
|  * |  | ||||||
|  * 2. Redistributions in binary form must reproduce the above copyright notice, |  | ||||||
|  *    this list of conditions and the following disclaimer in the documentation |  | ||||||
|  *    and/or other materials provided with the distribution. |  | ||||||
|  * |  | ||||||
|  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" |  | ||||||
|  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE |  | ||||||
|  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE |  | ||||||
|  * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE |  | ||||||
|  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL |  | ||||||
|  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR |  | ||||||
|  * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER |  | ||||||
|  * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, |  | ||||||
|  * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE |  | ||||||
|  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |  | ||||||
|  */ |  | ||||||
| 
 |  | ||||||
| #pragma once |  | ||||||
| 
 |  | ||||||
| #include <AK/Format.h> |  | ||||||
| #include <AK/Forward.h> |  | ||||||
| #include <AK/Types.h> |  | ||||||
| #include <AK/kmalloc.h> |  | ||||||
| #include <AK/kstdio.h> |  | ||||||
| 
 |  | ||||||
| #if !defined(KERNEL) |  | ||||||
| #    include <AK/ScopedValueRollback.h> |  | ||||||
| #    include <AK/StringView.h> |  | ||||||
| #    include <errno.h> |  | ||||||
| #    include <unistd.h> |  | ||||||
| #endif |  | ||||||
| 
 |  | ||||||
| namespace AK { |  | ||||||
| 
 |  | ||||||
| class LogStream { |  | ||||||
| public: |  | ||||||
|     LogStream() |  | ||||||
| #if !defined(KERNEL) |  | ||||||
|         : m_errno_restorer(errno) |  | ||||||
| #endif |  | ||||||
|     { |  | ||||||
|     } |  | ||||||
|     virtual ~LogStream() = default; |  | ||||||
| 
 |  | ||||||
|     virtual void write(const char*, int) const = 0; |  | ||||||
| 
 |  | ||||||
| private: |  | ||||||
| #if !defined(KERNEL) |  | ||||||
|     ScopedValueRollback<int> m_errno_restorer; |  | ||||||
| #endif |  | ||||||
| }; |  | ||||||
| 
 |  | ||||||
| class BufferedLogStream : public LogStream { |  | ||||||
|     mutable size_t m_size { 0 }; |  | ||||||
|     mutable size_t m_capacity { 128 }; |  | ||||||
|     union { |  | ||||||
|         mutable u8* m_buffer { nullptr }; |  | ||||||
|         mutable u8 m_local_buffer[128]; |  | ||||||
|     } u; |  | ||||||
| 
 |  | ||||||
|     void grow(size_t bytes_needed) const |  | ||||||
|     { |  | ||||||
|         size_t new_capacity = (m_size + bytes_needed + 0x7F) & ~0x7F; |  | ||||||
|         u8* new_data = static_cast<u8*>(kmalloc(new_capacity)); |  | ||||||
|         if (m_capacity <= sizeof(u.m_local_buffer)) { |  | ||||||
|             __builtin_memcpy(new_data, u.m_local_buffer, m_size); |  | ||||||
|         } else if (u.m_buffer) { |  | ||||||
|             __builtin_memcpy(new_data, u.m_buffer, m_size); |  | ||||||
|             kfree(u.m_buffer); |  | ||||||
|         } |  | ||||||
|         u.m_buffer = new_data; |  | ||||||
|         m_capacity = new_capacity; |  | ||||||
|     } |  | ||||||
| 
 |  | ||||||
| protected: |  | ||||||
|     u8* data() const |  | ||||||
|     { |  | ||||||
|         if (m_capacity <= sizeof(u.m_local_buffer)) |  | ||||||
|             return u.m_local_buffer; |  | ||||||
|         return u.m_buffer; |  | ||||||
|     } |  | ||||||
| 
 |  | ||||||
|     size_t size() const { return m_size; } |  | ||||||
| 
 |  | ||||||
|     bool empty() const { return m_size == 0; } |  | ||||||
| 
 |  | ||||||
| public: |  | ||||||
|     BufferedLogStream() = default; |  | ||||||
| 
 |  | ||||||
|     virtual ~BufferedLogStream() override |  | ||||||
|     { |  | ||||||
|         if (m_capacity > sizeof(u.m_local_buffer)) |  | ||||||
|             kfree(u.m_buffer); |  | ||||||
|     } |  | ||||||
| 
 |  | ||||||
|     virtual void write(const char* str, int len) const override |  | ||||||
|     { |  | ||||||
|         size_t new_size = m_size + len; |  | ||||||
|         if (new_size > m_capacity) |  | ||||||
|             grow(len); |  | ||||||
|         __builtin_memcpy(data() + m_size, str, len); |  | ||||||
|         m_size = new_size; |  | ||||||
|     } |  | ||||||
| }; |  | ||||||
| 
 |  | ||||||
| class DebugLogStream final : public BufferedLogStream { |  | ||||||
| public: |  | ||||||
|     DebugLogStream() = default; |  | ||||||
|     virtual ~DebugLogStream() override; |  | ||||||
| 
 |  | ||||||
|     // DebugLogStream only checks `enabled` and possibly generates output while the destructor runs.
 |  | ||||||
|     static void set_enabled(bool); |  | ||||||
|     static bool is_enabled(); |  | ||||||
| 
 |  | ||||||
| private: |  | ||||||
|     static bool s_enabled; |  | ||||||
| }; |  | ||||||
| 
 |  | ||||||
| #ifdef KERNEL |  | ||||||
| class KernelLogStream final : public BufferedLogStream { |  | ||||||
| public: |  | ||||||
|     KernelLogStream() = default; |  | ||||||
|     virtual ~KernelLogStream() override; |  | ||||||
| }; |  | ||||||
| #endif |  | ||||||
| 
 |  | ||||||
| inline const LogStream& operator<<(const LogStream& stream, const char* value) |  | ||||||
| { |  | ||||||
|     if (!value) |  | ||||||
|         return stream << "(null)"; |  | ||||||
|     int length = 0; |  | ||||||
|     const char* p = value; |  | ||||||
|     while (*(p++)) |  | ||||||
|         ++length; |  | ||||||
|     stream.write(value, length); |  | ||||||
|     return stream; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| const LogStream& operator<<(const LogStream&, const FlyString&); |  | ||||||
| const LogStream& operator<<(const LogStream&, const String&); |  | ||||||
| const LogStream& operator<<(const LogStream&, const StringView&); |  | ||||||
| const LogStream& operator<<(const LogStream&, int); |  | ||||||
| const LogStream& operator<<(const LogStream&, long); |  | ||||||
| const LogStream& operator<<(const LogStream&, unsigned); |  | ||||||
| const LogStream& operator<<(const LogStream&, long long); |  | ||||||
| const LogStream& operator<<(const LogStream&, unsigned long); |  | ||||||
| const LogStream& operator<<(const LogStream&, unsigned long long); |  | ||||||
| 
 |  | ||||||
| #if !defined(KERNEL) |  | ||||||
| const LogStream& operator<<(const LogStream&, double); |  | ||||||
| const LogStream& operator<<(const LogStream&, float); |  | ||||||
| #endif |  | ||||||
| 
 |  | ||||||
| template<typename T> |  | ||||||
| const LogStream& operator<<(const LogStream& stream, Span<T> span) |  | ||||||
| { |  | ||||||
|     return stream << "{ " << span.data() << ", " << span.size() << " }"; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| const LogStream& operator<<(const LogStream&, const void*); |  | ||||||
| 
 |  | ||||||
| inline const LogStream& operator<<(const LogStream& stream, char value) |  | ||||||
| { |  | ||||||
|     stream.write(&value, 1); |  | ||||||
|     return stream; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| inline const LogStream& operator<<(const LogStream& stream, bool value) |  | ||||||
| { |  | ||||||
|     return stream << (value ? "true" : "false"); |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| [[deprecated("Plase use dbgln in AK/Format.h instead.")]] DebugLogStream dbg(); |  | ||||||
| 
 |  | ||||||
| #ifdef KERNEL |  | ||||||
| KernelLogStream klog(); |  | ||||||
| #else |  | ||||||
| DebugLogStream klog(); |  | ||||||
| #endif |  | ||||||
| 
 |  | ||||||
| void dump_bytes(ReadonlyBytes); |  | ||||||
| 
 |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| using AK::dbg; |  | ||||||
| using AK::klog; |  | ||||||
| using AK::LogStream; |  | ||||||
|  | @ -27,6 +27,7 @@ | ||||||
| #include <AK/MappedFile.h> | #include <AK/MappedFile.h> | ||||||
| #include <AK/ScopeGuard.h> | #include <AK/ScopeGuard.h> | ||||||
| #include <AK/String.h> | #include <AK/String.h> | ||||||
|  | #include <errno.h> | ||||||
| #include <fcntl.h> | #include <fcntl.h> | ||||||
| #include <sys/mman.h> | #include <sys/mman.h> | ||||||
| #include <sys/stat.h> | #include <sys/stat.h> | ||||||
|  |  | ||||||
|  | @ -27,7 +27,7 @@ | ||||||
| #pragma once | #pragma once | ||||||
| 
 | 
 | ||||||
| #include <AK/Assertions.h> | #include <AK/Assertions.h> | ||||||
| #include <AK/LogStream.h> | #include <AK/Format.h> | ||||||
| #include <AK/RefCounted.h> | #include <AK/RefCounted.h> | ||||||
| #include <AK/StdLibExtras.h> | #include <AK/StdLibExtras.h> | ||||||
| #include <AK/Traits.h> | #include <AK/Traits.h> | ||||||
|  | @ -183,12 +183,6 @@ struct Traits<NonnullOwnPtr<T>> : public GenericTraits<NonnullOwnPtr<T>> { | ||||||
|     static bool equals(const NonnullOwnPtr<T>& a, const NonnullOwnPtr<T>& b) { return a.ptr() == b.ptr(); } |     static bool equals(const NonnullOwnPtr<T>& a, const NonnullOwnPtr<T>& b) { return a.ptr() == b.ptr(); } | ||||||
| }; | }; | ||||||
| 
 | 
 | ||||||
| template<typename T> |  | ||||||
| inline const LogStream& operator<<(const LogStream& stream, const NonnullOwnPtr<T>& value) |  | ||||||
| { |  | ||||||
|     return stream << value.ptr(); |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| template<typename T, typename U> | template<typename T, typename U> | ||||||
| inline void swap(NonnullOwnPtr<T>& a, NonnullOwnPtr<U>& b) | inline void swap(NonnullOwnPtr<T>& a, NonnullOwnPtr<U>& b) | ||||||
| { | { | ||||||
|  |  | ||||||
|  | @ -28,7 +28,7 @@ | ||||||
| 
 | 
 | ||||||
| #include <AK/Assertions.h> | #include <AK/Assertions.h> | ||||||
| #include <AK/Atomic.h> | #include <AK/Atomic.h> | ||||||
| #include <AK/LogStream.h> | #include <AK/Format.h> | ||||||
| #include <AK/Types.h> | #include <AK/Types.h> | ||||||
| #ifdef KERNEL | #ifdef KERNEL | ||||||
| #    include <Kernel/Arch/i386/CPU.h> | #    include <Kernel/Arch/i386/CPU.h> | ||||||
|  | @ -339,12 +339,6 @@ inline NonnullRefPtr<T> adopt(T& object) | ||||||
|     return NonnullRefPtr<T>(NonnullRefPtr<T>::Adopt, object); |     return NonnullRefPtr<T>(NonnullRefPtr<T>::Adopt, object); | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| template<typename T> |  | ||||||
| inline const LogStream& operator<<(const LogStream& stream, const NonnullRefPtr<T>& value) |  | ||||||
| { |  | ||||||
|     return stream << value.ptr(); |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| template<typename T> | template<typename T> | ||||||
| struct Formatter<NonnullRefPtr<T>> : Formatter<const T*> { | struct Formatter<NonnullRefPtr<T>> : Formatter<const T*> { | ||||||
|     void format(FormatBuilder& builder, const NonnullRefPtr<T>& value) |     void format(FormatBuilder& builder, const NonnullRefPtr<T>& value) | ||||||
|  |  | ||||||
|  | @ -27,6 +27,7 @@ | ||||||
| #pragma once | #pragma once | ||||||
| 
 | 
 | ||||||
| #include <AK/Format.h> | #include <AK/Format.h> | ||||||
|  | #include <errno.h> | ||||||
| #include <string.h> | #include <string.h> | ||||||
| 
 | 
 | ||||||
| namespace AK { | namespace AK { | ||||||
|  |  | ||||||
|  | @ -218,12 +218,6 @@ struct Traits<OwnPtr<T>> : public GenericTraits<OwnPtr<T>> { | ||||||
|     static bool equals(const OwnPtr<T>& a, const OwnPtr<T>& b) { return a.ptr() == b.ptr(); } |     static bool equals(const OwnPtr<T>& a, const OwnPtr<T>& b) { return a.ptr() == b.ptr(); } | ||||||
| }; | }; | ||||||
| 
 | 
 | ||||||
| template<typename T> |  | ||||||
| inline const LogStream& operator<<(const LogStream& stream, const OwnPtr<T>& value) |  | ||||||
| { |  | ||||||
|     return stream << value.ptr(); |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| using AK::OwnPtr; | using AK::OwnPtr; | ||||||
|  |  | ||||||
|  | @ -61,6 +61,7 @@ | ||||||
| #define FLATTEN [[gnu::flatten]] | #define FLATTEN [[gnu::flatten]] | ||||||
| 
 | 
 | ||||||
| #ifndef __serenity__ | #ifndef __serenity__ | ||||||
|  | #    include <unistd.h> | ||||||
| #    define PAGE_SIZE sysconf(_SC_PAGESIZE) | #    define PAGE_SIZE sysconf(_SC_PAGESIZE) | ||||||
| #endif | #endif | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -27,7 +27,7 @@ | ||||||
| #pragma once | #pragma once | ||||||
| 
 | 
 | ||||||
| #include <AK/Atomic.h> | #include <AK/Atomic.h> | ||||||
| #include <AK/LogStream.h> | #include <AK/Format.h> | ||||||
| #include <AK/NonnullRefPtr.h> | #include <AK/NonnullRefPtr.h> | ||||||
| #include <AK/StdLibExtras.h> | #include <AK/StdLibExtras.h> | ||||||
| #include <AK/Traits.h> | #include <AK/Traits.h> | ||||||
|  | @ -461,12 +461,6 @@ private: | ||||||
|     mutable Atomic<FlatPtr> m_bits { PtrTraits::default_null_value }; |     mutable Atomic<FlatPtr> m_bits { PtrTraits::default_null_value }; | ||||||
| }; | }; | ||||||
| 
 | 
 | ||||||
| template<typename T, typename PtrTraits = RefPtrTraits<T>> |  | ||||||
| inline const LogStream& operator<<(const LogStream& stream, const RefPtr<T, PtrTraits>& value) |  | ||||||
| { |  | ||||||
|     return stream << value.ptr(); |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| template<typename T> | template<typename T> | ||||||
| struct Formatter<RefPtr<T>> : Formatter<const T*> { | struct Formatter<RefPtr<T>> : Formatter<const T*> { | ||||||
|     void format(FormatBuilder& builder, const RefPtr<T>& value) |     void format(FormatBuilder& builder, const RefPtr<T>& value) | ||||||
|  |  | ||||||
|  | @ -26,7 +26,6 @@ | ||||||
| 
 | 
 | ||||||
| #include <AK/Assertions.h> | #include <AK/Assertions.h> | ||||||
| #include <AK/Checked.h> | #include <AK/Checked.h> | ||||||
| #include <AK/LogStream.h> |  | ||||||
| #include <AK/Time.h> | #include <AK/Time.h> | ||||||
| 
 | 
 | ||||||
| // Make a reasonable guess as to which timespec/timeval definition to use.
 | // Make a reasonable guess as to which timespec/timeval definition to use.
 | ||||||
|  |  | ||||||
							
								
								
									
										5
									
								
								AK/URL.h
									
										
									
									
									
								
							
							
						
						
									
										5
									
								
								AK/URL.h
									
										
									
									
									
								
							|  | @ -105,11 +105,6 @@ private: | ||||||
|     String m_data_payload; |     String m_data_payload; | ||||||
| }; | }; | ||||||
| 
 | 
 | ||||||
| inline const LogStream& operator<<(const LogStream& stream, const URL& value) |  | ||||||
| { |  | ||||||
|     return stream << value.to_string(); |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| template<> | template<> | ||||||
| struct Formatter<URL> : Formatter<StringView> { | struct Formatter<URL> : Formatter<StringView> { | ||||||
|     void format(FormatBuilder& builder, const URL& value) |     void format(FormatBuilder& builder, const URL& value) | ||||||
|  |  | ||||||
|  | @ -25,7 +25,7 @@ | ||||||
|  */ |  */ | ||||||
| 
 | 
 | ||||||
| #include <AK/Assertions.h> | #include <AK/Assertions.h> | ||||||
| #include <AK/LogStream.h> | #include <AK/Format.h> | ||||||
| #include <AK/Utf8View.h> | #include <AK/Utf8View.h> | ||||||
| 
 | 
 | ||||||
| namespace AK { | namespace AK { | ||||||
|  |  | ||||||
							
								
								
									
										12
									
								
								AK/WeakPtr.h
									
										
									
									
									
								
							
							
						
						
									
										12
									
								
								AK/WeakPtr.h
									
										
									
									
									
								
							|  | @ -26,7 +26,6 @@ | ||||||
| 
 | 
 | ||||||
| #pragma once | #pragma once | ||||||
| 
 | 
 | ||||||
| #include <AK/LogStream.h> |  | ||||||
| #include <AK/Weakable.h> | #include <AK/Weakable.h> | ||||||
| 
 | 
 | ||||||
| namespace AK { | namespace AK { | ||||||
|  | @ -236,17 +235,6 @@ inline WeakPtr<U> Weakable<T>::make_weak_ptr() const | ||||||
|     return weak_ptr; |     return weak_ptr; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| template<typename T> |  | ||||||
| inline const LogStream& operator<<(const LogStream& stream, const WeakPtr<T>& value) |  | ||||||
| { |  | ||||||
| #ifdef KERNEL |  | ||||||
|     auto ref = value.strong_ref(); |  | ||||||
|     return stream << ref.ptr(); |  | ||||||
| #else |  | ||||||
|     return stream << value.ptr(); |  | ||||||
| #endif |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| template<typename T> | template<typename T> | ||||||
| struct Formatter<WeakPtr<T>> : Formatter<const T*> { | struct Formatter<WeakPtr<T>> : Formatter<const T*> { | ||||||
|     void format(FormatBuilder& builder, const WeakPtr<T>& value) |     void format(FormatBuilder& builder, const WeakPtr<T>& value) | ||||||
|  |  | ||||||
|  | @ -33,21 +33,20 @@ | ||||||
| #        include <AK/Types.h> | #        include <AK/Types.h> | ||||||
| #        include <stdarg.h> | #        include <stdarg.h> | ||||||
| extern "C" { | extern "C" { | ||||||
| int dbgputstr(const char*, ssize_t); | void dbgputstr(const char*, size_t); | ||||||
| int sprintf(char* buf, const char* fmt, ...) __attribute__((format(printf, 2, 3))); | int sprintf(char* buf, const char* fmt, ...) __attribute__((format(printf, 2, 3))); | ||||||
| int snprintf(char* buffer, size_t, const char* fmt, ...) __attribute__((format(printf, 3, 4))); | int snprintf(char* buffer, size_t, const char* fmt, ...) __attribute__((format(printf, 3, 4))); | ||||||
| } | } | ||||||
| #    endif | #    endif | ||||||
| #else | #else | ||||||
| #    include <stdio.h> | #    include <stdio.h> | ||||||
| inline int dbgputstr(const char* characters, ssize_t length) | inline void dbgputstr(const char* characters, size_t length) | ||||||
| { | { | ||||||
|     fwrite(characters, 1, length, stderr); |     fwrite(characters, 1, length, stderr); | ||||||
|     return 0; |  | ||||||
| } | } | ||||||
| #endif | #endif | ||||||
| template<size_t N> | template<size_t N> | ||||||
| inline int dbgputstr(const char (&array)[N]) | inline void dbgputstr(const char (&array)[N]) | ||||||
| { | { | ||||||
|     return ::dbgputstr(array, N); |     return ::dbgputstr(array, N); | ||||||
| } | } | ||||||
|  |  | ||||||
|  | @ -25,6 +25,7 @@ | ||||||
|  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | ||||||
|  */ |  */ | ||||||
| 
 | 
 | ||||||
|  | #include <AK/Format.h> | ||||||
| #include <AK/StringView.h> | #include <AK/StringView.h> | ||||||
| #include <Kernel/ACPI/Parser.h> | #include <Kernel/ACPI/Parser.h> | ||||||
| #include <Kernel/Arch/PC/BIOS.h> | #include <Kernel/Arch/PC/BIOS.h> | ||||||
|  | @ -32,7 +33,6 @@ | ||||||
| #include <Kernel/IO.h> | #include <Kernel/IO.h> | ||||||
| #include <Kernel/PCI/Access.h> | #include <Kernel/PCI/Access.h> | ||||||
| #include <Kernel/StdLib.h> | #include <Kernel/StdLib.h> | ||||||
| #include <Kernel/VM/MemoryManager.h> |  | ||||||
| #include <Kernel/VM/TypedMapping.h> | #include <Kernel/VM/TypedMapping.h> | ||||||
| 
 | 
 | ||||||
| namespace Kernel { | namespace Kernel { | ||||||
|  |  | ||||||
|  | @ -243,7 +243,6 @@ set(AK_SOURCES | ||||||
|     ../AK/JsonParser.cpp |     ../AK/JsonParser.cpp | ||||||
|     ../AK/JsonValue.cpp |     ../AK/JsonValue.cpp | ||||||
|     ../AK/LexicalPath.cpp |     ../AK/LexicalPath.cpp | ||||||
|     ../AK/LogStream.cpp |  | ||||||
|     ../AK/String.cpp |     ../AK/String.cpp | ||||||
|     ../AK/StringBuilder.cpp |     ../AK/StringBuilder.cpp | ||||||
|     ../AK/StringImpl.cpp |     ../AK/StringImpl.cpp | ||||||
|  |  | ||||||
|  | @ -24,6 +24,7 @@ | ||||||
|  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | ||||||
|  */ |  */ | ||||||
| 
 | 
 | ||||||
|  | #include <AK/Format.h> | ||||||
| #include <AK/Singleton.h> | #include <AK/Singleton.h> | ||||||
| #include <AK/StringView.h> | #include <AK/StringView.h> | ||||||
| #include <AK/Types.h> | #include <AK/Types.h> | ||||||
|  | @ -31,7 +32,6 @@ | ||||||
| #include <Kernel/DMI.h> | #include <Kernel/DMI.h> | ||||||
| #include <Kernel/StdLib.h> | #include <Kernel/StdLib.h> | ||||||
| #include <Kernel/VM/MappedROM.h> | #include <Kernel/VM/MappedROM.h> | ||||||
| #include <Kernel/VM/MemoryManager.h> |  | ||||||
| #include <Kernel/VM/TypedMapping.h> | #include <Kernel/VM/TypedMapping.h> | ||||||
| 
 | 
 | ||||||
| namespace Kernel { | namespace Kernel { | ||||||
|  |  | ||||||
|  | @ -25,6 +25,7 @@ | ||||||
|  */ |  */ | ||||||
| 
 | 
 | ||||||
| #include <AK/Checked.h> | #include <AK/Checked.h> | ||||||
|  | #include <AK/Format.h> | ||||||
| #include <AK/Singleton.h> | #include <AK/Singleton.h> | ||||||
| #include <Kernel/Debug.h> | #include <Kernel/Debug.h> | ||||||
| #include <Kernel/Devices/BXVGADevice.h> | #include <Kernel/Devices/BXVGADevice.h> | ||||||
|  |  | ||||||
|  | @ -72,12 +72,6 @@ private: | ||||||
|     InodeIndex m_index { 0 }; |     InodeIndex m_index { 0 }; | ||||||
| }; | }; | ||||||
| 
 | 
 | ||||||
| inline const LogStream& operator<<(const LogStream& stream, const InodeIdentifier& value) |  | ||||||
| { |  | ||||||
|     stream << value.fsid() << ':' << value.index().value(); |  | ||||||
|     return stream; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| template<> | template<> | ||||||
|  |  | ||||||
|  | @ -27,7 +27,6 @@ | ||||||
| #pragma once | #pragma once | ||||||
| 
 | 
 | ||||||
| #include <AK/Assertions.h> | #include <AK/Assertions.h> | ||||||
| #include <AK/LogStream.h> |  | ||||||
| #include <AK/String.h> | #include <AK/String.h> | ||||||
| #include <AK/Types.h> | #include <AK/Types.h> | ||||||
| #include <Kernel/Arch/i386/CPU.h> | #include <Kernel/Arch/i386/CPU.h> | ||||||
|  | @ -157,11 +156,6 @@ private: | ||||||
|     u16 m_address { 0 }; |     u16 m_address { 0 }; | ||||||
| }; | }; | ||||||
| 
 | 
 | ||||||
| inline const LogStream& operator<<(const LogStream& stream, IOAddress value) |  | ||||||
| { |  | ||||||
|     return stream << "IO " << String::formatted("{:x}", value.get()); |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| template<> | template<> | ||||||
| struct AK::Formatter<IOAddress> : AK::Formatter<FormatString> { | struct AK::Formatter<IOAddress> : AK::Formatter<FormatString> { | ||||||
|     void format(FormatBuilder& builder, IOAddress value) |     void format(FormatBuilder& builder, IOAddress value) | ||||||
|  |  | ||||||
|  | @ -38,7 +38,6 @@ | ||||||
| 
 | 
 | ||||||
| #include <AK/Assertions.h> | #include <AK/Assertions.h> | ||||||
| #include <AK/ByteBuffer.h> | #include <AK/ByteBuffer.h> | ||||||
| #include <AK/LogStream.h> |  | ||||||
| #include <AK/Memory.h> | #include <AK/Memory.h> | ||||||
| #include <AK/StringView.h> | #include <AK/StringView.h> | ||||||
| #include <Kernel/VM/MemoryManager.h> | #include <Kernel/VM/MemoryManager.h> | ||||||
|  | @ -175,9 +174,4 @@ private: | ||||||
|     RefPtr<KBufferImpl> m_impl; |     RefPtr<KBufferImpl> m_impl; | ||||||
| }; | }; | ||||||
| 
 | 
 | ||||||
| inline const LogStream& operator<<(const LogStream& stream, const KBuffer& value) |  | ||||||
| { |  | ||||||
|     return stream << StringView(value.data(), value.size()); |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| } | } | ||||||
|  |  | ||||||
|  | @ -24,7 +24,7 @@ | ||||||
|  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | ||||||
|  */ |  */ | ||||||
| 
 | 
 | ||||||
| #include <AK/LogStream.h> | #include <AK/Format.h> | ||||||
| #include <Kernel/Modules/module_syms.h> | #include <Kernel/Modules/module_syms.h> | ||||||
| 
 | 
 | ||||||
| extern "C" const char module_name[] = "TestModule"; | extern "C" const char module_name[] = "TestModule"; | ||||||
|  |  | ||||||
|  | @ -123,7 +123,6 @@ private: | ||||||
| }; | }; | ||||||
| 
 | 
 | ||||||
| static_assert(sizeof(IPv4Packet) == 20); | static_assert(sizeof(IPv4Packet) == 20); | ||||||
| const LogStream& operator<<(const LogStream& stream, const IPv4Packet& packet); |  | ||||||
| 
 | 
 | ||||||
| inline NetworkOrdered<u16> internet_checksum(const void* ptr, size_t count) | inline NetworkOrdered<u16> internet_checksum(const void* ptr, size_t count) | ||||||
| { | { | ||||||
|  |  | ||||||
|  | @ -27,7 +27,6 @@ | ||||||
| #pragma once | #pragma once | ||||||
| 
 | 
 | ||||||
| #include <AK/Function.h> | #include <AK/Function.h> | ||||||
| #include <AK/LogStream.h> |  | ||||||
| #include <AK/String.h> | #include <AK/String.h> | ||||||
| #include <AK/Types.h> | #include <AK/Types.h> | ||||||
| #include <AK/Vector.h> | #include <AK/Vector.h> | ||||||
|  | @ -84,10 +83,7 @@ struct ID { | ||||||
|         return vendor_id != other.vendor_id || device_id != other.device_id; |         return vendor_id != other.vendor_id || device_id != other.device_id; | ||||||
|     } |     } | ||||||
| }; | }; | ||||||
| inline const LogStream& operator<<(const LogStream& stream, const ID value) | 
 | ||||||
| { |  | ||||||
|     return stream << String::formatted("({:04x}:{:04x})", value.vendor_id, value.device_id); |  | ||||||
| } |  | ||||||
| struct Address { | struct Address { | ||||||
| public: | public: | ||||||
|     Address() = default; |     Address() = default; | ||||||
|  | @ -141,11 +137,6 @@ protected: | ||||||
|     u8 m_function { 0 }; |     u8 m_function { 0 }; | ||||||
| }; | }; | ||||||
| 
 | 
 | ||||||
| inline const LogStream& operator<<(const LogStream& stream, const Address value) |  | ||||||
| { |  | ||||||
|     return stream << "PCI [" << String::formatted("{:04x}:{:02x}:{:02x}:{:02x}", value.seg(), value.bus(), value.device(), value.function()) << "]"; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| struct ChangeableAddress : public Address { | struct ChangeableAddress : public Address { | ||||||
|     ChangeableAddress() |     ChangeableAddress() | ||||||
|         : Address(0) |         : Address(0) | ||||||
|  |  | ||||||
|  | @ -26,7 +26,7 @@ | ||||||
| 
 | 
 | ||||||
| #pragma once | #pragma once | ||||||
| 
 | 
 | ||||||
| #include <AK/LogStream.h> | #include <AK/Format.h> | ||||||
| #include <AK/Types.h> | #include <AK/Types.h> | ||||||
| 
 | 
 | ||||||
| class PhysicalAddress { | class PhysicalAddress { | ||||||
|  | @ -61,11 +61,6 @@ private: | ||||||
|     FlatPtr m_address { 0 }; |     FlatPtr m_address { 0 }; | ||||||
| }; | }; | ||||||
| 
 | 
 | ||||||
| inline const LogStream& operator<<(const LogStream& stream, PhysicalAddress value) |  | ||||||
| { |  | ||||||
|     return stream << 'P' << value.as_ptr(); |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| template<> | template<> | ||||||
| struct AK::Formatter<PhysicalAddress> : AK::Formatter<FormatString> { | struct AK::Formatter<PhysicalAddress> : AK::Formatter<FormatString> { | ||||||
|     void format(FormatBuilder& builder, PhysicalAddress value) |     void format(FormatBuilder& builder, PhysicalAddress value) | ||||||
|  |  | ||||||
|  | @ -719,11 +719,6 @@ inline ProcessID Thread::pid() const | ||||||
|     return m_process->pid(); |     return m_process->pid(); | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| inline const LogStream& operator<<(const LogStream& stream, const Process& process) |  | ||||||
| { |  | ||||||
|     return stream << process.name() << '(' << process.pid().value() << ')'; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| #define REQUIRE_NO_PROMISES                        \ | #define REQUIRE_NO_PROMISES                        \ | ||||||
|     do {                                           \ |     do {                                           \ | ||||||
|         if (Process::current()->has_promises()) {  \ |         if (Process::current()->has_promises()) {  \ | ||||||
|  |  | ||||||
|  | @ -25,7 +25,6 @@ | ||||||
|  */ |  */ | ||||||
| 
 | 
 | ||||||
| #include <AK/Assertions.h> | #include <AK/Assertions.h> | ||||||
| #include <AK/LogStream.h> |  | ||||||
| #include <AK/Time.h> | #include <AK/Time.h> | ||||||
| #include <Kernel/CMOS.h> | #include <Kernel/CMOS.h> | ||||||
| #include <Kernel/RTC.h> | #include <Kernel/RTC.h> | ||||||
|  |  | ||||||
|  | @ -1027,11 +1027,6 @@ KResult Thread::make_thread_specific_region(Badge<Process>) | ||||||
|     return KSuccess; |     return KSuccess; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| const LogStream& operator<<(const LogStream& stream, const Thread& value) |  | ||||||
| { |  | ||||||
|     return stream << value.process().name() << "(" << value.pid().value() << ":" << value.tid().value() << ")"; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| RefPtr<Thread> Thread::from_tid(ThreadID tid) | RefPtr<Thread> Thread::from_tid(ThreadID tid) | ||||||
| { | { | ||||||
|     RefPtr<Thread> found_thread; |     RefPtr<Thread> found_thread; | ||||||
|  |  | ||||||
|  | @ -1298,8 +1298,6 @@ inline IterationDecision Thread::for_each_in_state(State state, Callback callbac | ||||||
|     return IterationDecision::Continue; |     return IterationDecision::Continue; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| const LogStream& operator<<(const LogStream&, const Thread&); |  | ||||||
| 
 |  | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| template<> | template<> | ||||||
|  |  | ||||||
|  | @ -475,7 +475,7 @@ PageFaultResponse MemoryManager::handle_page_fault(const PageFault& fault) | ||||||
|     dbgln_if(PAGE_FAULT_DEBUG, "MM: CPU[{}] handle_page_fault({:#04x}) at {}", Processor::id(), fault.code(), fault.vaddr()); |     dbgln_if(PAGE_FAULT_DEBUG, "MM: CPU[{}] handle_page_fault({:#04x}) at {}", Processor::id(), fault.code(), fault.vaddr()); | ||||||
|     auto* region = find_region_from_vaddr(fault.vaddr()); |     auto* region = find_region_from_vaddr(fault.vaddr()); | ||||||
|     if (!region) { |     if (!region) { | ||||||
|         dmesgln("CPU[{}] NP(error) fault at invalid address {}", Processor::id(), fault.vaddr()); |         Process::current()->space().dump_regions(); | ||||||
|         return PageFaultResponse::ShouldCrash; |         return PageFaultResponse::ShouldCrash; | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -26,7 +26,7 @@ | ||||||
| 
 | 
 | ||||||
| #pragma once | #pragma once | ||||||
| 
 | 
 | ||||||
| #include <AK/LogStream.h> | #include <AK/Format.h> | ||||||
| #include <AK/Types.h> | #include <AK/Types.h> | ||||||
| 
 | 
 | ||||||
| class VirtualAddress { | class VirtualAddress { | ||||||
|  | @ -71,11 +71,6 @@ inline VirtualAddress operator-(const VirtualAddress& a, const VirtualAddress& b | ||||||
|     return VirtualAddress(a.get() - b.get()); |     return VirtualAddress(a.get() - b.get()); | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| inline const LogStream& operator<<(const LogStream& stream, VirtualAddress value) |  | ||||||
| { |  | ||||||
|     return stream << 'V' << value.as_ptr(); |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| template<> | template<> | ||||||
| struct AK::Formatter<VirtualAddress> : AK::Formatter<FormatString> { | struct AK::Formatter<VirtualAddress> : AK::Formatter<FormatString> { | ||||||
|     void format(FormatBuilder& builder, const VirtualAddress& value) |     void format(FormatBuilder& builder, const VirtualAddress& value) | ||||||
|  |  | ||||||
|  | @ -72,6 +72,7 @@ | ||||||
| #include <Kernel/Tasks/SyncTask.h> | #include <Kernel/Tasks/SyncTask.h> | ||||||
| #include <Kernel/Time/TimeManagement.h> | #include <Kernel/Time/TimeManagement.h> | ||||||
| #include <Kernel/VM/MemoryManager.h> | #include <Kernel/VM/MemoryManager.h> | ||||||
|  | #include <Kernel/kstdio.h> | ||||||
| 
 | 
 | ||||||
| // Defined in the linker script
 | // Defined in the linker script
 | ||||||
| typedef void (*ctor_func_t)(); | typedef void (*ctor_func_t)(); | ||||||
|  | @ -337,7 +338,7 @@ void init_stage2(void*) | ||||||
| 
 | 
 | ||||||
| UNMAP_AFTER_INIT void setup_serial_debug() | UNMAP_AFTER_INIT void setup_serial_debug() | ||||||
| { | { | ||||||
|     // serial_debug will output all the klog() and dbgln() data to COM1 at
 |     // serial_debug will output all the dbgln() data to COM1 at
 | ||||||
|     // 8-N-1 57600 baud. this is particularly useful for debugging the boot
 |     // 8-N-1 57600 baud. this is particularly useful for debugging the boot
 | ||||||
|     // process on live hardware.
 |     // process on live hardware.
 | ||||||
|     if (StringView(kernel_cmdline).contains("serial_debug")) { |     if (StringView(kernel_cmdline).contains("serial_debug")) { | ||||||
|  |  | ||||||
|  | @ -36,7 +36,7 @@ | ||||||
| 
 | 
 | ||||||
| static bool serial_debug; | static bool serial_debug; | ||||||
| // A recursive spinlock allows us to keep writing in the case where a
 | // A recursive spinlock allows us to keep writing in the case where a
 | ||||||
| // page fault happens in the middle of a dbgln(), klog(), etc
 | // page fault happens in the middle of a dbgln(), etc
 | ||||||
| static RecursiveSpinLock s_log_lock; | static RecursiveSpinLock s_log_lock; | ||||||
| 
 | 
 | ||||||
| void set_serial_debug(bool on_or_off) | void set_serial_debug(bool on_or_off) | ||||||
|  | @ -148,22 +148,20 @@ static void debugger_out(char ch) | ||||||
|     IO::out8(0xe9, ch); |     IO::out8(0xe9, ch); | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| extern "C" int dbgputstr(const char* characters, int length) | extern "C" void dbgputstr(const char* characters, size_t length) | ||||||
| { | { | ||||||
|     if (!characters) |     if (!characters) | ||||||
|         return 0; |         return; | ||||||
|     ScopedSpinLock lock(s_log_lock); |     ScopedSpinLock lock(s_log_lock); | ||||||
|     for (int i = 0; i < length; ++i) |     for (size_t i = 0; i < length; ++i) | ||||||
|         debugger_out(characters[i]); |         debugger_out(characters[i]); | ||||||
|     return 0; |  | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| extern "C" int kernelputstr(const char* characters, int length) | extern "C" void kernelputstr(const char* characters, size_t length) | ||||||
| { | { | ||||||
|     if (!characters) |     if (!characters) | ||||||
|         return 0; |         return; | ||||||
|     ScopedSpinLock lock(s_log_lock); |     ScopedSpinLock lock(s_log_lock); | ||||||
|     for (int i = 0; i < length; ++i) |     for (size_t i = 0; i < length; ++i) | ||||||
|         console_out(characters[i]); |         console_out(characters[i]); | ||||||
|     return 0; |  | ||||||
| } | } | ||||||
|  |  | ||||||
|  | @ -29,8 +29,8 @@ | ||||||
| #include <AK/Types.h> | #include <AK/Types.h> | ||||||
| 
 | 
 | ||||||
| extern "C" { | extern "C" { | ||||||
| int dbgputstr(const char*, int); | void dbgputstr(const char*, size_t); | ||||||
| int kernelputstr(const char*, int); | void kernelputstr(const char*, size_t); | ||||||
| int snprintf(char* buf, size_t, const char* fmt, ...) __attribute__((format(printf, 3, 4))); | int snprintf(char* buf, size_t, const char* fmt, ...) __attribute__((format(printf, 3, 4))); | ||||||
| void set_serial_debug(bool on_or_off); | void set_serial_debug(bool on_or_off); | ||||||
| int get_serial_debug(); | int get_serial_debug(); | ||||||
|  |  | ||||||
|  | @ -29,7 +29,7 @@ | ||||||
| #include <LibGUI/Icon.h> | #include <LibGUI/Icon.h> | ||||||
| #include <LibGfx/Bitmap.h> | #include <LibGfx/Bitmap.h> | ||||||
| #include <stdio.h> | #include <stdio.h> | ||||||
| #include <sys/utsname.h> | #include <unistd.h> | ||||||
| 
 | 
 | ||||||
| int main(int argc, char** argv) | int main(int argc, char** argv) | ||||||
| { | { | ||||||
|  |  | ||||||
|  | @ -26,7 +26,6 @@ | ||||||
| 
 | 
 | ||||||
| #include "BookmarksBarWidget.h" | #include "BookmarksBarWidget.h" | ||||||
| #include "Browser.h" | #include "Browser.h" | ||||||
| #include "InspectorWidget.h" |  | ||||||
| #include "Tab.h" | #include "Tab.h" | ||||||
| #include "WindowActions.h" | #include "WindowActions.h" | ||||||
| #include <AK/StringBuilder.h> | #include <AK/StringBuilder.h> | ||||||
|  | @ -47,6 +46,7 @@ | ||||||
| #include <LibWeb/Loader/ResourceLoader.h> | #include <LibWeb/Loader/ResourceLoader.h> | ||||||
| #include <stdio.h> | #include <stdio.h> | ||||||
| #include <stdlib.h> | #include <stdlib.h> | ||||||
|  | #include <unistd.h> | ||||||
| 
 | 
 | ||||||
| namespace Browser { | namespace Browser { | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -34,6 +34,7 @@ | ||||||
| #include <LibGUI/Window.h> | #include <LibGUI/Window.h> | ||||||
| #include <LibGfx/Bitmap.h> | #include <LibGfx/Bitmap.h> | ||||||
| #include <stdio.h> | #include <stdio.h> | ||||||
|  | #include <unistd.h> | ||||||
| 
 | 
 | ||||||
| int main(int argc, char** argv) | int main(int argc, char** argv) | ||||||
| { | { | ||||||
|  |  | ||||||
|  | @ -38,9 +38,9 @@ | ||||||
| #include <LibGUI/Window.h> | #include <LibGUI/Window.h> | ||||||
| #include <LibGfx/Bitmap.h> | #include <LibGfx/Bitmap.h> | ||||||
| #include <LibGfx/Color.h> | #include <LibGfx/Color.h> | ||||||
| #include <LibGfx/Font.h> |  | ||||||
| #include <LibGfx/FontDatabase.h> | #include <LibGfx/FontDatabase.h> | ||||||
| #include <stdio.h> | #include <stdio.h> | ||||||
|  | #include <unistd.h> | ||||||
| 
 | 
 | ||||||
| int main(int argc, char** argv) | int main(int argc, char** argv) | ||||||
| { | { | ||||||
|  |  | ||||||
|  | @ -48,6 +48,7 @@ | ||||||
| #include <LibGUI/Widget.h> | #include <LibGUI/Widget.h> | ||||||
| #include <LibGUI/Window.h> | #include <LibGUI/Window.h> | ||||||
| #include <string.h> | #include <string.h> | ||||||
|  | #include <unistd.h> | ||||||
| 
 | 
 | ||||||
| struct TitleAndText { | struct TitleAndText { | ||||||
|     String title; |     String title; | ||||||
|  |  | ||||||
|  | @ -27,7 +27,6 @@ | ||||||
| #include <AK/Assertions.h> | #include <AK/Assertions.h> | ||||||
| #include <AK/ByteBuffer.h> | #include <AK/ByteBuffer.h> | ||||||
| #include <AK/Demangle.h> | #include <AK/Demangle.h> | ||||||
| #include <AK/LogStream.h> |  | ||||||
| #include <AK/StringBuilder.h> | #include <AK/StringBuilder.h> | ||||||
| #include <LibC/sys/arch/i386/regs.h> | #include <LibC/sys/arch/i386/regs.h> | ||||||
| #include <LibCore/ArgsParser.h> | #include <LibCore/ArgsParser.h> | ||||||
|  |  | ||||||
|  | @ -32,10 +32,10 @@ | ||||||
| #include <LibGUI/Menu.h> | #include <LibGUI/Menu.h> | ||||||
| #include <LibGUI/MenuBar.h> | #include <LibGUI/MenuBar.h> | ||||||
| #include <LibGUI/TabWidget.h> | #include <LibGUI/TabWidget.h> | ||||||
| #include <LibGUI/Widget.h> |  | ||||||
| #include <LibGUI/Window.h> | #include <LibGUI/Window.h> | ||||||
| #include <LibGfx/Bitmap.h> | #include <LibGfx/Bitmap.h> | ||||||
| #include <stdio.h> | #include <stdio.h> | ||||||
|  | #include <unistd.h> | ||||||
| 
 | 
 | ||||||
| int main(int argc, char** argv) | int main(int argc, char** argv) | ||||||
| { | { | ||||||
|  |  | ||||||
|  | @ -41,6 +41,7 @@ | ||||||
| #include <LibGfx/FontDatabase.h> | #include <LibGfx/FontDatabase.h> | ||||||
| #include <LibGfx/Point.h> | #include <LibGfx/Point.h> | ||||||
| #include <stdio.h> | #include <stdio.h> | ||||||
|  | #include <unistd.h> | ||||||
| 
 | 
 | ||||||
| int main(int argc, char** argv) | int main(int argc, char** argv) | ||||||
| { | { | ||||||
|  |  | ||||||
|  | @ -50,6 +50,7 @@ | ||||||
| #include <libgen.h> | #include <libgen.h> | ||||||
| #include <stdio.h> | #include <stdio.h> | ||||||
| #include <string.h> | #include <string.h> | ||||||
|  | #include <unistd.h> | ||||||
| 
 | 
 | ||||||
| int main(int argc, char* argv[]) | int main(int argc, char* argv[]) | ||||||
| { | { | ||||||
|  |  | ||||||
|  | @ -29,6 +29,7 @@ | ||||||
| #include <LibGUI/MenuBar.h> | #include <LibGUI/MenuBar.h> | ||||||
| #include <LibGfx/Bitmap.h> | #include <LibGfx/Bitmap.h> | ||||||
| #include <stdio.h> | #include <stdio.h> | ||||||
|  | #include <unistd.h> | ||||||
| 
 | 
 | ||||||
| int main(int argc, char** argv) | int main(int argc, char** argv) | ||||||
| { | { | ||||||
|  |  | ||||||
|  | @ -39,6 +39,7 @@ | ||||||
| #include <pwd.h> | #include <pwd.h> | ||||||
| #include <stdio.h> | #include <stdio.h> | ||||||
| #include <strings.h> | #include <strings.h> | ||||||
|  | #include <unistd.h> | ||||||
| 
 | 
 | ||||||
| enum IRCNumeric { | enum IRCNumeric { | ||||||
|     RPL_WELCOME = 1, |     RPL_WELCOME = 1, | ||||||
|  |  | ||||||
|  | @ -30,6 +30,7 @@ | ||||||
| #include <LibGUI/Application.h> | #include <LibGUI/Application.h> | ||||||
| #include <LibGUI/MessageBox.h> | #include <LibGUI/MessageBox.h> | ||||||
| #include <stdio.h> | #include <stdio.h> | ||||||
|  | #include <unistd.h> | ||||||
| 
 | 
 | ||||||
| int main(int argc, char** argv) | int main(int argc, char** argv) | ||||||
| { | { | ||||||
|  |  | ||||||
|  | @ -32,6 +32,7 @@ | ||||||
| #include <LibGUI/Icon.h> | #include <LibGUI/Icon.h> | ||||||
| #include <LibGUI/Menu.h> | #include <LibGUI/Menu.h> | ||||||
| #include <LibGUI/MenuBar.h> | #include <LibGUI/MenuBar.h> | ||||||
|  | #include <unistd.h> | ||||||
| 
 | 
 | ||||||
| int main(int argc, char** argv) | int main(int argc, char** argv) | ||||||
| { | { | ||||||
|  |  | ||||||
|  | @ -44,14 +44,13 @@ | ||||||
| #include <LibGUI/Clipboard.h> | #include <LibGUI/Clipboard.h> | ||||||
| #include <LibGUI/FilePicker.h> | #include <LibGUI/FilePicker.h> | ||||||
| #include <LibGUI/Icon.h> | #include <LibGUI/Icon.h> | ||||||
| #include <LibGUI/Menu.h> |  | ||||||
| #include <LibGUI/MenuBar.h> | #include <LibGUI/MenuBar.h> | ||||||
| #include <LibGUI/MessageBox.h> | #include <LibGUI/MessageBox.h> | ||||||
| #include <LibGUI/TableView.h> |  | ||||||
| #include <LibGUI/Window.h> | #include <LibGUI/Window.h> | ||||||
| #include <LibGfx/Bitmap.h> | #include <LibGfx/Bitmap.h> | ||||||
| #include <LibGfx/Matrix4x4.h> | #include <LibGfx/Matrix4x4.h> | ||||||
| #include <stdio.h> | #include <stdio.h> | ||||||
|  | #include <unistd.h> | ||||||
| 
 | 
 | ||||||
| int main(int argc, char** argv) | int main(int argc, char** argv) | ||||||
| { | { | ||||||
|  |  | ||||||
|  | @ -24,14 +24,10 @@ | ||||||
|  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | ||||||
|  */ |  */ | ||||||
| 
 | 
 | ||||||
| #include <AK/LexicalPath.h> |  | ||||||
| #include <AK/StringBuilder.h> |  | ||||||
| #include <AK/Types.h> |  | ||||||
| #include <AK/URL.h> |  | ||||||
| #include <LibGUI/Application.h> |  | ||||||
| #include <string.h> |  | ||||||
| 
 |  | ||||||
| #include "RunWindow.h" | #include "RunWindow.h" | ||||||
|  | #include <AK/StringBuilder.h> | ||||||
|  | #include <LibGUI/Application.h> | ||||||
|  | #include <unistd.h> | ||||||
| 
 | 
 | ||||||
| int main(int argc, char** argv) | int main(int argc, char** argv) | ||||||
| { | { | ||||||
|  |  | ||||||
|  | @ -28,6 +28,7 @@ | ||||||
| #include <LibGUI/Application.h> | #include <LibGUI/Application.h> | ||||||
| #include <LibGUI/Icon.h> | #include <LibGUI/Icon.h> | ||||||
| #include <LibGUI/Window.h> | #include <LibGUI/Window.h> | ||||||
|  | #include <unistd.h> | ||||||
| 
 | 
 | ||||||
| int main(int argc, char** argv) | int main(int argc, char** argv) | ||||||
| { | { | ||||||
|  |  | ||||||
|  | @ -43,6 +43,7 @@ | ||||||
| #include <LibGUI/MessageBox.h> | #include <LibGUI/MessageBox.h> | ||||||
| #include <LibGUI/StatusBar.h> | #include <LibGUI/StatusBar.h> | ||||||
| #include <sys/stat.h> | #include <sys/stat.h> | ||||||
|  | #include <unistd.h> | ||||||
| 
 | 
 | ||||||
| static const char* APP_NAME = "Space Analyzer"; | static const char* APP_NAME = "Space Analyzer"; | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -40,6 +40,7 @@ | ||||||
| #include <LibJS/Parser.h> | #include <LibJS/Parser.h> | ||||||
| #include <LibJS/Runtime/Function.h> | #include <LibJS/Runtime/Function.h> | ||||||
| #include <ctype.h> | #include <ctype.h> | ||||||
|  | #include <unistd.h> | ||||||
| 
 | 
 | ||||||
| namespace Spreadsheet { | namespace Spreadsheet { | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -33,11 +33,11 @@ | ||||||
| #include <LibGUI/Application.h> | #include <LibGUI/Application.h> | ||||||
| #include <LibGUI/Clipboard.h> | #include <LibGUI/Clipboard.h> | ||||||
| #include <LibGUI/FilePicker.h> | #include <LibGUI/FilePicker.h> | ||||||
| #include <LibGUI/Forward.h> |  | ||||||
| #include <LibGUI/Icon.h> | #include <LibGUI/Icon.h> | ||||||
| #include <LibGUI/Menu.h> | #include <LibGUI/Menu.h> | ||||||
| #include <LibGUI/MenuBar.h> | #include <LibGUI/MenuBar.h> | ||||||
| #include <LibGUI/Window.h> | #include <LibGUI/Window.h> | ||||||
|  | #include <unistd.h> | ||||||
| 
 | 
 | ||||||
| int main(int argc, char* argv[]) | int main(int argc, char* argv[]) | ||||||
| { | { | ||||||
|  |  | ||||||
|  | @ -29,6 +29,7 @@ | ||||||
| #include <LibGUI/MenuBar.h> | #include <LibGUI/MenuBar.h> | ||||||
| #include <LibGfx/Bitmap.h> | #include <LibGfx/Bitmap.h> | ||||||
| #include <stdio.h> | #include <stdio.h> | ||||||
|  | #include <unistd.h> | ||||||
| 
 | 
 | ||||||
| int main(int argc, char** argv) | int main(int argc, char** argv) | ||||||
| { | { | ||||||
|  |  | ||||||
|  | @ -32,6 +32,7 @@ | ||||||
| #include <LibGUI/Icon.h> | #include <LibGUI/Icon.h> | ||||||
| #include <LibGUI/Model.h> | #include <LibGUI/Model.h> | ||||||
| #include <LibGUI/Window.h> | #include <LibGUI/Window.h> | ||||||
|  | #include <unistd.h> | ||||||
| 
 | 
 | ||||||
| class ColorRoleModel final : public GUI::Model { | class ColorRoleModel final : public GUI::Model { | ||||||
| public: | public: | ||||||
|  |  | ||||||
|  | @ -37,10 +37,9 @@ | ||||||
| #include <LibGfx/Bitmap.h> | #include <LibGfx/Bitmap.h> | ||||||
| #include <LibGfx/Matrix4x4.h> | #include <LibGfx/Matrix4x4.h> | ||||||
| #include <LibGfx/Vector3.h> | #include <LibGfx/Vector3.h> | ||||||
| #include <math.h> |  | ||||||
| #include <stdio.h> | #include <stdio.h> | ||||||
| #include <stdlib.h> | #include <stdlib.h> | ||||||
| #include <time.h> | #include <unistd.h> | ||||||
| 
 | 
 | ||||||
| const int WIDTH = 200; | const int WIDTH = 200; | ||||||
| const int HEIGHT = 200; | const int HEIGHT = 200; | ||||||
|  |  | ||||||
|  | @ -32,6 +32,7 @@ | ||||||
| #include <LibGUI/MenuBar.h> | #include <LibGUI/MenuBar.h> | ||||||
| #include <LibGUI/Window.h> | #include <LibGUI/Window.h> | ||||||
| #include <LibGfx/Bitmap.h> | #include <LibGfx/Bitmap.h> | ||||||
|  | #include <unistd.h> | ||||||
| 
 | 
 | ||||||
| int main(int argc, char* argv[]) | int main(int argc, char* argv[]) | ||||||
| { | { | ||||||
|  |  | ||||||
|  | @ -53,6 +53,7 @@ | ||||||
| #include <stdio.h> | #include <stdio.h> | ||||||
| #include <stdlib.h> | #include <stdlib.h> | ||||||
| #include <time.h> | #include <time.h> | ||||||
|  | #include <unistd.h> | ||||||
| 
 | 
 | ||||||
| #define FIRE_WIDTH 320 | #define FIRE_WIDTH 320 | ||||||
| #define FIRE_HEIGHT 168 | #define FIRE_HEIGHT 168 | ||||||
|  |  | ||||||
|  | @ -30,10 +30,10 @@ | ||||||
| #include <LibGUI/Widget.h> | #include <LibGUI/Widget.h> | ||||||
| #include <LibGUI/Window.h> | #include <LibGUI/Window.h> | ||||||
| #include <LibGfx/Bitmap.h> | #include <LibGfx/Bitmap.h> | ||||||
| #include <LibGfx/Font.h> |  | ||||||
| #include <LibGfx/FontDatabase.h> | #include <LibGfx/FontDatabase.h> | ||||||
| #include <LibGfx/Painter.h> | #include <LibGfx/Painter.h> | ||||||
| #include <LibGfx/Path.h> | #include <LibGfx/Path.h> | ||||||
|  | #include <unistd.h> | ||||||
| 
 | 
 | ||||||
| const int WIDTH = 780; | const int WIDTH = 780; | ||||||
| const int HEIGHT = 600; | const int HEIGHT = 600; | ||||||
|  |  | ||||||
|  | @ -31,12 +31,12 @@ | ||||||
| #include <LibGUI/Window.h> | #include <LibGUI/Window.h> | ||||||
| #include <LibGfx/Bitmap.h> | #include <LibGfx/Bitmap.h> | ||||||
| #include <LibGfx/Font.h> | #include <LibGfx/Font.h> | ||||||
| #include <LibGfx/FontDatabase.h> |  | ||||||
| #include <LibGfx/Painter.h> | #include <LibGfx/Painter.h> | ||||||
| #include <LibGfx/Palette.h> | #include <LibGfx/Palette.h> | ||||||
| #include <LibGfx/Path.h> | #include <LibGfx/Path.h> | ||||||
| #include <LibGfx/SystemTheme.h> | #include <LibGfx/SystemTheme.h> | ||||||
| #include <LibGfx/WindowTheme.h> | #include <LibGfx/WindowTheme.h> | ||||||
|  | #include <unistd.h> | ||||||
| 
 | 
 | ||||||
| const int WIDTH = 300; | const int WIDTH = 300; | ||||||
| const int HEIGHT = 200; | const int HEIGHT = 200; | ||||||
|  |  | ||||||
|  | @ -36,6 +36,7 @@ | ||||||
| #include <LibGUI/Window.h> | #include <LibGUI/Window.h> | ||||||
| #include <LibGfx/Bitmap.h> | #include <LibGfx/Bitmap.h> | ||||||
| #include <LibGfx/Path.h> | #include <LibGfx/Path.h> | ||||||
|  | #include <unistd.h> | ||||||
| 
 | 
 | ||||||
| #include <math.h> | #include <math.h> | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -33,6 +33,7 @@ | ||||||
| #include <LibGfx/Bitmap.h> | #include <LibGfx/Bitmap.h> | ||||||
| #include <stdio.h> | #include <stdio.h> | ||||||
| #include <time.h> | #include <time.h> | ||||||
|  | #include <unistd.h> | ||||||
| 
 | 
 | ||||||
| class Screensaver final : public GUI::Widget { | class Screensaver final : public GUI::Widget { | ||||||
|     C_OBJECT(Screensaver) |     C_OBJECT(Screensaver) | ||||||
|  |  | ||||||
|  | @ -31,6 +31,7 @@ | ||||||
| #include <LibGUI/Menu.h> | #include <LibGUI/Menu.h> | ||||||
| #include <LibGUI/MenuBar.h> | #include <LibGUI/MenuBar.h> | ||||||
| #include <LibGUI/Window.h> | #include <LibGUI/Window.h> | ||||||
|  | #include <unistd.h> | ||||||
| 
 | 
 | ||||||
| int main(int argc, char** argv) | int main(int argc, char** argv) | ||||||
| { | { | ||||||
|  |  | ||||||
|  | @ -29,7 +29,6 @@ | ||||||
| #include "FormWidget.h" | #include "FormWidget.h" | ||||||
| #include "WidgetTreeModel.h" | #include "WidgetTreeModel.h" | ||||||
| #include <AK/Debug.h> | #include <AK/Debug.h> | ||||||
| #include <AK/LogStream.h> |  | ||||||
| #include <LibGfx/Palette.h> | #include <LibGfx/Palette.h> | ||||||
| 
 | 
 | ||||||
| namespace HackStudio { | namespace HackStudio { | ||||||
|  |  | ||||||
|  | @ -26,7 +26,6 @@ | ||||||
| 
 | 
 | ||||||
| #include "GitWidget.h" | #include "GitWidget.h" | ||||||
| #include "GitFilesModel.h" | #include "GitFilesModel.h" | ||||||
| #include <AK/LogStream.h> |  | ||||||
| #include <LibCore/File.h> | #include <LibCore/File.h> | ||||||
| #include <LibDiff/Format.h> | #include <LibDiff/Format.h> | ||||||
| #include <LibGUI/Application.h> | #include <LibGUI/Application.h> | ||||||
|  |  | ||||||
|  | @ -25,7 +25,7 @@ | ||||||
|  */ |  */ | ||||||
| 
 | 
 | ||||||
| #include "WidgetTool.h" | #include "WidgetTool.h" | ||||||
| #include <AK/LogStream.h> | #include <AK/Format.h> | ||||||
| 
 | 
 | ||||||
| namespace HackStudio { | namespace HackStudio { | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -28,7 +28,6 @@ | ||||||
| #include <AK/URL.h> | #include <AK/URL.h> | ||||||
| #include <LibCore/ArgsParser.h> | #include <LibCore/ArgsParser.h> | ||||||
| #include <LibCore/File.h> | #include <LibCore/File.h> | ||||||
| #include <LibCore/Property.h> |  | ||||||
| #include <LibDesktop/Launcher.h> | #include <LibDesktop/Launcher.h> | ||||||
| #include <LibGUI/Application.h> | #include <LibGUI/Application.h> | ||||||
| #include <LibGUI/AutocompleteProvider.h> | #include <LibGUI/AutocompleteProvider.h> | ||||||
|  | @ -45,6 +44,7 @@ | ||||||
| #include <LibGUI/TextEditor.h> | #include <LibGUI/TextEditor.h> | ||||||
| #include <LibGUI/Window.h> | #include <LibGUI/Window.h> | ||||||
| #include <string.h> | #include <string.h> | ||||||
|  | #include <unistd.h> | ||||||
| 
 | 
 | ||||||
| namespace { | namespace { | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -38,6 +38,7 @@ | ||||||
| #include <LibX86/ELFSymbolProvider.h> | #include <LibX86/ELFSymbolProvider.h> | ||||||
| #include <fcntl.h> | #include <fcntl.h> | ||||||
| #include <syscall.h> | #include <syscall.h> | ||||||
|  | #include <unistd.h> | ||||||
| 
 | 
 | ||||||
| #if defined(__GNUC__) && !defined(__clang__) | #if defined(__GNUC__) && !defined(__clang__) | ||||||
| #    pragma GCC optimize("O3") | #    pragma GCC optimize("O3") | ||||||
|  |  | ||||||
|  | @ -28,10 +28,10 @@ | ||||||
| #include "Emulator.h" | #include "Emulator.h" | ||||||
| #include "MmapRegion.h" | #include "MmapRegion.h" | ||||||
| #include <AK/Debug.h> | #include <AK/Debug.h> | ||||||
| #include <AK/LogStream.h> |  | ||||||
| #include <AK/TemporaryChange.h> | #include <AK/TemporaryChange.h> | ||||||
| #include <mallocdefs.h> | #include <mallocdefs.h> | ||||||
| #include <string.h> | #include <string.h> | ||||||
|  | #include <unistd.h> | ||||||
| 
 | 
 | ||||||
| namespace UserspaceEmulator { | namespace UserspaceEmulator { | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -26,7 +26,7 @@ | ||||||
| 
 | 
 | ||||||
| #pragma once | #pragma once | ||||||
| 
 | 
 | ||||||
| #include <AK/LogStream.h> | #include <AK/Format.h> | ||||||
| 
 | 
 | ||||||
| extern bool g_report_to_debug; | extern bool g_report_to_debug; | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -31,6 +31,7 @@ | ||||||
| #include <math.h> | #include <math.h> | ||||||
| #include <stdio.h> | #include <stdio.h> | ||||||
| #include <string.h> | #include <string.h> | ||||||
|  | #include <unistd.h> | ||||||
| 
 | 
 | ||||||
| #if defined(__GNUC__) && !defined(__clang__) | #if defined(__GNUC__) && !defined(__clang__) | ||||||
| #    pragma GCC optimize("O3") | #    pragma GCC optimize("O3") | ||||||
|  |  | ||||||
|  | @ -25,16 +25,13 @@ | ||||||
|  */ |  */ | ||||||
| 
 | 
 | ||||||
| #include "Emulator.h" | #include "Emulator.h" | ||||||
| #include "SoftCPU.h" |  | ||||||
| #include <AK/Format.h> | #include <AK/Format.h> | ||||||
| #include <AK/LexicalPath.h> | #include <AK/LexicalPath.h> | ||||||
| #include <AK/MappedFile.h> |  | ||||||
| #include <AK/StringBuilder.h> | #include <AK/StringBuilder.h> | ||||||
| #include <LibCore/ArgsParser.h> | #include <LibCore/ArgsParser.h> | ||||||
| #include <LibCore/DirIterator.h> | #include <LibCore/DirIterator.h> | ||||||
| #include <LibELF/Image.h> |  | ||||||
| #include <getopt.h> |  | ||||||
| #include <pthread.h> | #include <pthread.h> | ||||||
|  | #include <serenity.h> | ||||||
| #include <string.h> | #include <string.h> | ||||||
| 
 | 
 | ||||||
| bool g_report_to_debug = false; | bool g_report_to_debug = false; | ||||||
|  |  | ||||||
|  | @ -24,7 +24,6 @@ | ||||||
|  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | ||||||
|  */ |  */ | ||||||
| 
 | 
 | ||||||
| #include <AK/LogStream.h> |  | ||||||
| #include <LibC/sys/internals.h> | #include <LibC/sys/internals.h> | ||||||
| #include <LibC/unistd.h> | #include <LibC/unistd.h> | ||||||
| #include <LibELF/AuxiliaryVector.h> | #include <LibELF/AuxiliaryVector.h> | ||||||
|  |  | ||||||
|  | @ -25,7 +25,7 @@ | ||||||
|  */ |  */ | ||||||
| 
 | 
 | ||||||
| #include "misc.h" | #include "misc.h" | ||||||
| #include "AK/LogStream.h" | #include <AK/Format.h> | ||||||
| 
 | 
 | ||||||
| extern "C" { | extern "C" { | ||||||
| const char* __cxa_demangle(const char*, void*, void*, int*) | const char* __cxa_demangle(const char*, void*, void*, int*) | ||||||
|  |  | ||||||
|  | @ -40,6 +40,7 @@ | ||||||
| #include <LibGUI/Window.h> | #include <LibGUI/Window.h> | ||||||
| #include <stdio.h> | #include <stdio.h> | ||||||
| #include <time.h> | #include <time.h> | ||||||
|  | #include <unistd.h> | ||||||
| 
 | 
 | ||||||
| int main(int argc, char** argv) | int main(int argc, char** argv) | ||||||
| { | { | ||||||
|  |  | ||||||
|  | @ -31,6 +31,7 @@ | ||||||
| #include <LibGUI/Painter.h> | #include <LibGUI/Painter.h> | ||||||
| #include <LibGfx/Font.h> | #include <LibGfx/Font.h> | ||||||
| #include <LibGfx/StandardCursor.h> | #include <LibGfx/StandardCursor.h> | ||||||
|  | #include <unistd.h> | ||||||
| 
 | 
 | ||||||
| namespace Breakout { | namespace Breakout { | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -31,6 +31,7 @@ | ||||||
| #include <LibGUI/MenuBar.h> | #include <LibGUI/MenuBar.h> | ||||||
| #include <LibGUI/Window.h> | #include <LibGUI/Window.h> | ||||||
| #include <LibGfx/Bitmap.h> | #include <LibGfx/Bitmap.h> | ||||||
|  | #include <unistd.h> | ||||||
| 
 | 
 | ||||||
| int main(int argc, char** argv) | int main(int argc, char** argv) | ||||||
| { | { | ||||||
|  |  | ||||||
|  | @ -29,7 +29,7 @@ | ||||||
| #include <fcntl.h> | #include <fcntl.h> | ||||||
| #include <spawn.h> | #include <spawn.h> | ||||||
| #include <stdio.h> | #include <stdio.h> | ||||||
| #include <stdlib.h> | #include <unistd.h> | ||||||
| 
 | 
 | ||||||
| Engine::~Engine() | Engine::~Engine() | ||||||
| { | { | ||||||
|  |  | ||||||
|  | @ -36,6 +36,7 @@ | ||||||
| #include <LibGUI/MenuBar.h> | #include <LibGUI/MenuBar.h> | ||||||
| #include <LibGUI/MessageBox.h> | #include <LibGUI/MessageBox.h> | ||||||
| #include <LibGUI/Window.h> | #include <LibGUI/Window.h> | ||||||
|  | #include <unistd.h> | ||||||
| 
 | 
 | ||||||
| int main(int argc, char** argv) | int main(int argc, char** argv) | ||||||
| { | { | ||||||
|  |  | ||||||
|  | @ -31,6 +31,7 @@ | ||||||
| #include <LibGUI/MenuBar.h> | #include <LibGUI/MenuBar.h> | ||||||
| #include <LibGUI/Window.h> | #include <LibGUI/Window.h> | ||||||
| #include <stdio.h> | #include <stdio.h> | ||||||
|  | #include <unistd.h> | ||||||
| 
 | 
 | ||||||
| int main(int argc, char** argv) | int main(int argc, char** argv) | ||||||
| { | { | ||||||
|  |  | ||||||
|  | @ -37,6 +37,7 @@ | ||||||
| #include <LibGUI/MenuBar.h> | #include <LibGUI/MenuBar.h> | ||||||
| #include <LibGUI/Window.h> | #include <LibGUI/Window.h> | ||||||
| #include <stdio.h> | #include <stdio.h> | ||||||
|  | #include <unistd.h> | ||||||
| 
 | 
 | ||||||
| int main(int argc, char** argv) | int main(int argc, char** argv) | ||||||
| { | { | ||||||
|  |  | ||||||
|  | @ -32,6 +32,7 @@ | ||||||
| #include <LibGUI/MenuBar.h> | #include <LibGUI/MenuBar.h> | ||||||
| #include <LibGUI/Window.h> | #include <LibGUI/Window.h> | ||||||
| #include <LibGfx/Bitmap.h> | #include <LibGfx/Bitmap.h> | ||||||
|  | #include <unistd.h> | ||||||
| 
 | 
 | ||||||
| int main(int argc, char** argv) | int main(int argc, char** argv) | ||||||
| { | { | ||||||
|  |  | ||||||
|  | @ -35,6 +35,7 @@ | ||||||
| #include <LibGUI/MenuBar.h> | #include <LibGUI/MenuBar.h> | ||||||
| #include <LibGUI/Window.h> | #include <LibGUI/Window.h> | ||||||
| #include <stdio.h> | #include <stdio.h> | ||||||
|  | #include <unistd.h> | ||||||
| 
 | 
 | ||||||
| int main(int argc, char** argv) | int main(int argc, char** argv) | ||||||
| { | { | ||||||
|  |  | ||||||
|  | @ -25,12 +25,13 @@ | ||||||
|  */ |  */ | ||||||
| 
 | 
 | ||||||
| #include <AK/Debug.h> | #include <AK/Debug.h> | ||||||
| #include <AK/LogStream.h> | #include <AK/Format.h> | ||||||
| #include <assert.h> | #include <assert.h> | ||||||
| #include <stdio.h> | #include <stdio.h> | ||||||
| #include <stdlib.h> | #include <stdlib.h> | ||||||
| #include <sys/internals.h> | #include <sys/internals.h> | ||||||
| #include <sys/mman.h> | #include <sys/mman.h> | ||||||
|  | #include <unistd.h> | ||||||
| 
 | 
 | ||||||
| extern "C" { | extern "C" { | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -29,13 +29,11 @@ | ||||||
| #include <AK/RefPtr.h> | #include <AK/RefPtr.h> | ||||||
| #include <AK/ScopeGuard.h> | #include <AK/ScopeGuard.h> | ||||||
| #include <AK/String.h> | #include <AK/String.h> | ||||||
| #include <AK/StringBuilder.h> |  | ||||||
| #include <LibELF/DynamicLoader.h> | #include <LibELF/DynamicLoader.h> | ||||||
| #include <assert.h> | #include <assert.h> | ||||||
| #include <dlfcn.h> | #include <dlfcn.h> | ||||||
| #include <fcntl.h> | #include <fcntl.h> | ||||||
| #include <stdio.h> | #include <unistd.h> | ||||||
| #include <stdlib.h> |  | ||||||
| 
 | 
 | ||||||
| // NOTE: The string here should never include a trailing newline (according to POSIX)
 | // NOTE: The string here should never include a trailing newline (according to POSIX)
 | ||||||
| String g_dlerror_msg; | String g_dlerror_msg; | ||||||
|  |  | ||||||
|  | @ -24,7 +24,6 @@ | ||||||
|  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | ||||||
|  */ |  */ | ||||||
| 
 | 
 | ||||||
| #include <AK/LogStream.h> |  | ||||||
| #include <assert.h> | #include <assert.h> | ||||||
| #include <locale.h> | #include <locale.h> | ||||||
| #include <stdio.h> | #include <stdio.h> | ||||||
|  |  | ||||||
|  | @ -26,7 +26,6 @@ | ||||||
| 
 | 
 | ||||||
| #include <AK/Debug.h> | #include <AK/Debug.h> | ||||||
| #include <AK/InlineLinkedList.h> | #include <AK/InlineLinkedList.h> | ||||||
| #include <AK/LogStream.h> |  | ||||||
| #include <AK/ScopedValueRollback.h> | #include <AK/ScopedValueRollback.h> | ||||||
| #include <AK/Vector.h> | #include <AK/Vector.h> | ||||||
| #include <LibELF/AuxiliaryVector.h> | #include <LibELF/AuxiliaryVector.h> | ||||||
|  |  | ||||||
|  | @ -25,8 +25,8 @@ | ||||||
|  */ |  */ | ||||||
| 
 | 
 | ||||||
| #include <AK/Assertions.h> | #include <AK/Assertions.h> | ||||||
|  | #include <AK/Format.h> | ||||||
| #include <AK/GenericLexer.h> | #include <AK/GenericLexer.h> | ||||||
| #include <AK/LogStream.h> |  | ||||||
| #include <AK/StdLibExtras.h> | #include <AK/StdLibExtras.h> | ||||||
| #include <ctype.h> | #include <ctype.h> | ||||||
| #include <stdarg.h> | #include <stdarg.h> | ||||||
|  |  | ||||||
|  | @ -1048,10 +1048,9 @@ void dbgputch(char ch) | ||||||
|     syscall(SC_dbgputch, ch); |     syscall(SC_dbgputch, ch); | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| int dbgputstr(const char* characters, ssize_t length) | void dbgputstr(const char* characters, size_t length) | ||||||
| { | { | ||||||
|     int rc = syscall(SC_dbgputstr, characters, length); |     syscall(SC_dbgputstr, characters, length); | ||||||
|     __RETURN_WITH_ERRNO(rc, rc, -1); |  | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| char* tmpnam(char*) | char* tmpnam(char*) | ||||||
|  |  | ||||||
|  | @ -94,7 +94,7 @@ int vsnprintf(char* buffer, size_t, const char* fmt, va_list) __attribute__((for | ||||||
| int fprintf(FILE*, const char* fmt, ...) __attribute__((format(printf, 2, 3))); | int fprintf(FILE*, const char* fmt, ...) __attribute__((format(printf, 2, 3))); | ||||||
| int printf(const char* fmt, ...) __attribute__((format(printf, 1, 2))); | int printf(const char* fmt, ...) __attribute__((format(printf, 1, 2))); | ||||||
| void dbgputch(char); | void dbgputch(char); | ||||||
| int dbgputstr(const char*, ssize_t); | void dbgputstr(const char*, size_t); | ||||||
| int sprintf(char* buffer, const char* fmt, ...) __attribute__((format(printf, 2, 3))); | int sprintf(char* buffer, const char* fmt, ...) __attribute__((format(printf, 2, 3))); | ||||||
| int snprintf(char* buffer, size_t, const char* fmt, ...) __attribute__((format(printf, 3, 4))); | int snprintf(char* buffer, size_t, const char* fmt, ...) __attribute__((format(printf, 3, 4))); | ||||||
| int putchar(int ch); | int putchar(int ch); | ||||||
|  |  | ||||||
|  | @ -24,7 +24,6 @@ | ||||||
|  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | ||||||
|  */ |  */ | ||||||
| 
 | 
 | ||||||
| #include <AK/LogStream.h> |  | ||||||
| #include <errno.h> | #include <errno.h> | ||||||
| #include <sys/ptrace.h> | #include <sys/ptrace.h> | ||||||
| #include <syscall.h> | #include <syscall.h> | ||||||
|  |  | ||||||
|  | @ -25,7 +25,6 @@ | ||||||
|  */ |  */ | ||||||
| 
 | 
 | ||||||
| #include <AK/Assertions.h> | #include <AK/Assertions.h> | ||||||
| #include <AK/LogStream.h> |  | ||||||
| #include <AK/String.h> | #include <AK/String.h> | ||||||
| #include <AK/StringBuilder.h> | #include <AK/StringBuilder.h> | ||||||
| #include <AK/Vector.h> | #include <AK/Vector.h> | ||||||
|  |  | ||||||
|  | @ -27,7 +27,6 @@ | ||||||
| #include <AK/Array.h> | #include <AK/Array.h> | ||||||
| #include <AK/Assertions.h> | #include <AK/Assertions.h> | ||||||
| #include <AK/BinarySearch.h> | #include <AK/BinarySearch.h> | ||||||
| #include <AK/LogStream.h> |  | ||||||
| #include <AK/MemoryStream.h> | #include <AK/MemoryStream.h> | ||||||
| 
 | 
 | ||||||
| #include <LibCompress/Deflate.h> | #include <LibCompress/Deflate.h> | ||||||
|  |  | ||||||
Some files were not shown because too many files have changed in this diff Show more
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Andreas Kling
						Andreas Kling