summaryrefslogtreecommitdiff
path: root/Kernel
diff options
context:
space:
mode:
Diffstat (limited to 'Kernel')
-rw-r--r--Kernel/Alarm.h4
-rw-r--r--Kernel/Assertions.h21
-rw-r--r--Kernel/Console.h1
-rw-r--r--Kernel/Devices/BXVGADevice.h6
-rw-r--r--Kernel/Devices/BlockDevice.h5
-rw-r--r--Kernel/Devices/CharacterDevice.h5
-rw-r--r--Kernel/Devices/DiskDevice.h1
-rw-r--r--Kernel/Devices/FileBackedDiskDevice.h5
-rw-r--r--Kernel/Devices/FullDevice.h1
-rw-r--r--Kernel/Devices/IDEDiskDevice.h6
-rw-r--r--Kernel/Devices/KeyboardDevice.h11
-rw-r--r--Kernel/Devices/NullDevice.h1
-rw-r--r--Kernel/Devices/PS2MouseDevice.h7
-rw-r--r--Kernel/Devices/RandomDevice.h1
-rw-r--r--Kernel/Devices/ZeroDevice.h1
-rw-r--r--Kernel/FileSystem/DevPtsFS.h1
-rw-r--r--Kernel/FileSystem/Ext2FileSystem.h8
-rw-r--r--Kernel/FileSystem/FIFO.h9
-rw-r--r--Kernel/FileSystem/FileDescriptor.h13
-rw-r--r--Kernel/FileSystem/FileSystem.h16
-rw-r--r--Kernel/FileSystem/Inode.h8
-rw-r--r--Kernel/FileSystem/InodeIdentifier.h3
-rw-r--r--Kernel/FileSystem/InodeMetadata.h2
-rw-r--r--Kernel/FileSystem/ProcFS.h6
-rw-r--r--Kernel/FileSystem/SyntheticFileSystem.h3
-rw-r--r--Kernel/FileSystem/VirtualFileSystem.h11
-rw-r--r--Kernel/FileSystem/ext2_fs.h926
-rw-r--r--Kernel/FileSystem/ext2_types.h229
-rw-r--r--Kernel/IO.h27
-rw-r--r--Kernel/IRQHandler.h1
-rw-r--r--Kernel/KResult.h43
-rw-r--r--Kernel/KeyCode.h6
-rw-r--r--Kernel/LinearAddress.h7
-rw-r--r--Kernel/Lock.h31
-rw-r--r--Kernel/Net/ARP.h23
-rw-r--r--Kernel/Net/E1000NetworkAdapter.h13
-rw-r--r--Kernel/Net/EtherType.h9
-rw-r--r--Kernel/Net/EthernetFrameHeader.h10
-rw-r--r--Kernel/Net/ICMP.h21
-rw-r--r--Kernel/Net/IPv4.h11
-rw-r--r--Kernel/Net/IPv4Socket.h10
-rw-r--r--Kernel/Net/LocalSocket.h3
-rw-r--r--Kernel/Net/MACAddress.h9
-rw-r--r--Kernel/Net/NetworkAdapter.h14
-rw-r--r--Kernel/Net/Socket.h25
-rw-r--r--Kernel/Net/TCP.h24
-rw-r--r--Kernel/Net/TCPSocket.h5
-rw-r--r--Kernel/Net/UDP.h7
-rw-r--r--Kernel/Net/UDPSocket.h3
-rw-r--r--Kernel/PCI.h9
-rw-r--r--Kernel/PIC.h5
-rw-r--r--Kernel/PhysicalAddress.h8
-rw-r--r--Kernel/Process.h43
-rw-r--r--Kernel/ProcessTracer.h2
-rw-r--r--Kernel/RTC.h1
-rw-r--r--Kernel/Scheduler.h1
-rw-r--r--Kernel/SharedMemory.h6
-rw-r--r--Kernel/StdLib.h3
-rw-r--r--Kernel/Syscall.h244
-rw-r--r--Kernel/TTY/PTYMultiplexer.h2
-rw-r--r--Kernel/TTY/SlavePTY.h1
-rw-r--r--Kernel/TTY/TTY.h1
-rw-r--r--Kernel/TTY/VirtualConsole.h17
-rw-r--r--Kernel/Thread.h35
-rw-r--r--Kernel/UnixTypes.h289
-rw-r--r--Kernel/VM/MemoryManager.h40
-rw-r--r--Kernel/VM/PageDirectory.h7
-rw-r--r--Kernel/VM/PhysicalPage.h5
-rw-r--r--Kernel/VM/RangeAllocator.h5
-rw-r--r--Kernel/VM/Region.h1
-rw-r--r--Kernel/VM/VMObject.h13
-rw-r--r--Kernel/i386.h76
-rw-r--r--Kernel/i8253.h28
-rw-r--r--Kernel/kstdio.h8
-rwxr-xr-xKernel/makeall.sh1
75 files changed, 1315 insertions, 1149 deletions
diff --git a/Kernel/Alarm.h b/Kernel/Alarm.h
index a724a06ec1..ba8fb6211f 100644
--- a/Kernel/Alarm.h
+++ b/Kernel/Alarm.h
@@ -2,8 +2,8 @@
class Alarm {
public:
- Alarm() { }
- virtual ~Alarm() { }
+ Alarm() {}
+ virtual ~Alarm() {}
virtual bool is_ringing() const = 0;
};
diff --git a/Kernel/Assertions.h b/Kernel/Assertions.h
index 8eada59219..de744bf11f 100644
--- a/Kernel/Assertions.h
+++ b/Kernel/Assertions.h
@@ -1,17 +1,24 @@
#pragma once
-#include <Kernel/kstdio.h>
#include <Kernel/i386.h>
+#include <Kernel/kstdio.h>
#ifdef DEBUG
[[noreturn]] void __assertion_failed(const char* msg, const char* file, unsigned line, const char* func);
-#define ASSERT(expr) (static_cast<bool>(expr) ? (void)0 : __assertion_failed(#expr, __FILE__, __LINE__, __PRETTY_FUNCTION__))
-#define ASSERT_NOT_REACHED() ASSERT(false)
+# define ASSERT(expr) (static_cast<bool>(expr) ? (void)0 : __assertion_failed(# expr, __FILE__, __LINE__, __PRETTY_FUNCTION__))
+# define ASSERT_NOT_REACHED() ASSERT(false)
#else
-#define ASSERT(expr)
-#define ASSERT_NOT_REACHED() CRASH()
+# define ASSERT(expr)
+# define ASSERT_NOT_REACHED() CRASH()
#endif
-#define CRASH() do { asm volatile("ud2"); } while(0)
-#define RELEASE_ASSERT(x) do { if (!(x)) CRASH(); } while(0)
+#define CRASH() \
+ do { \
+ asm volatile("ud2"); \
+ } while (0)
+#define RELEASE_ASSERT(x) \
+ do { \
+ if (!(x)) \
+ CRASH(); \
+ } while (0)
#define ASSERT_INTERRUPTS_DISABLED() ASSERT(!(cpu_flags() & 0x200))
#define ASSERT_INTERRUPTS_ENABLED() ASSERT(cpu_flags() & 0x200)
diff --git a/Kernel/Console.h b/Kernel/Console.h
index 45101a8d0d..59fe006c4e 100644
--- a/Kernel/Console.h
+++ b/Kernel/Console.h
@@ -35,4 +35,3 @@ private:
ConsoleImplementation* m_implementation { nullptr };
CircularQueue<char, 16384> m_logbuffer;
};
-
diff --git a/Kernel/Devices/BXVGADevice.h b/Kernel/Devices/BXVGADevice.h
index 96207d400d..d797724475 100644
--- a/Kernel/Devices/BXVGADevice.h
+++ b/Kernel/Devices/BXVGADevice.h
@@ -1,10 +1,10 @@
#pragma once
-#include <AK/Types.h>
#include <AK/AKString.h>
-#include <SharedGraphics/Size.h>
-#include <Kernel/PhysicalAddress.h>
+#include <AK/Types.h>
#include <Kernel/Devices/BlockDevice.h>
+#include <Kernel/PhysicalAddress.h>
+#include <SharedGraphics/Size.h>
class BXVGADevice final : public BlockDevice {
AK_MAKE_ETERNAL
diff --git a/Kernel/Devices/BlockDevice.h b/Kernel/Devices/BlockDevice.h
index c96d4d3185..d76d90614d 100644
--- a/Kernel/Devices/BlockDevice.h
+++ b/Kernel/Devices/BlockDevice.h
@@ -10,7 +10,10 @@ public:
virtual bool is_seekable() const override { return true; }
protected:
- BlockDevice(unsigned major, unsigned minor) : Device(major, minor) { }
+ BlockDevice(unsigned major, unsigned minor)
+ : Device(major, minor)
+ {
+ }
private:
virtual bool is_block_device() const final { return true; }
diff --git a/Kernel/Devices/CharacterDevice.h b/Kernel/Devices/CharacterDevice.h
index 6dedf20743..3e4778b260 100644
--- a/Kernel/Devices/CharacterDevice.h
+++ b/Kernel/Devices/CharacterDevice.h
@@ -7,7 +7,10 @@ public:
virtual ~CharacterDevice() override;
protected:
- CharacterDevice(unsigned major, unsigned minor) : Device(major, minor) { }
+ CharacterDevice(unsigned major, unsigned minor)
+ : Device(major, minor)
+ {
+ }
private:
virtual bool is_character_device() const final { return true; }
diff --git a/Kernel/Devices/DiskDevice.h b/Kernel/Devices/DiskDevice.h
index badf92b0ca..66a51a8f41 100644
--- a/Kernel/Devices/DiskDevice.h
+++ b/Kernel/Devices/DiskDevice.h
@@ -23,4 +23,3 @@ public:
protected:
DiskDevice();
};
-
diff --git a/Kernel/Devices/FileBackedDiskDevice.h b/Kernel/Devices/FileBackedDiskDevice.h
index c16c848f8b..667f3af427 100644
--- a/Kernel/Devices/FileBackedDiskDevice.h
+++ b/Kernel/Devices/FileBackedDiskDevice.h
@@ -1,9 +1,9 @@
#pragma once
-#include <Kernel/Devices/DiskDevice.h>
-#include <AK/RetainPtr.h>
#include <AK/AKString.h>
+#include <AK/RetainPtr.h>
#include <AK/Types.h>
+#include <Kernel/Devices/DiskDevice.h>
#include <stdio.h>
class FileBackedDiskDevice final : public DiskDevice {
@@ -30,4 +30,3 @@ private:
DiskOffset m_file_length { 0 };
unsigned m_block_size { 0 };
};
-
diff --git a/Kernel/Devices/FullDevice.h b/Kernel/Devices/FullDevice.h
index c88e6f6857..9974e47c4d 100644
--- a/Kernel/Devices/FullDevice.h
+++ b/Kernel/Devices/FullDevice.h
@@ -16,4 +16,3 @@ private:
virtual bool can_write(FileDescriptor&) const override { return true; }
virtual const char* class_name() const override { return "FullDevice"; }
};
-
diff --git a/Kernel/Devices/IDEDiskDevice.h b/Kernel/Devices/IDEDiskDevice.h
index d87ab9e690..7f5cfbd99e 100644
--- a/Kernel/Devices/IDEDiskDevice.h
+++ b/Kernel/Devices/IDEDiskDevice.h
@@ -1,9 +1,9 @@
#pragma once
-#include <Kernel/Lock.h>
#include <AK/RetainPtr.h>
#include <Kernel/Devices/DiskDevice.h>
#include <Kernel/IRQHandler.h>
+#include <Kernel/Lock.h>
#include <Kernel/PCI.h>
#include <Kernel/PhysicalAddress.h>
#include <Kernel/VM/PhysicalPage.h>
@@ -14,7 +14,8 @@ struct PhysicalRegionDescriptor {
word end_of_table { 0 };
};
-class IDEDiskDevice final : public IRQHandler, public DiskDevice {
+class IDEDiskDevice final : public IRQHandler
+ , public DiskDevice {
AK_MAKE_ETERNAL
public:
static Retained<IDEDiskDevice> create();
@@ -58,4 +59,3 @@ private:
word m_bus_master_base { 0 };
Lockable<bool> m_dma_enabled;
};
-
diff --git a/Kernel/Devices/KeyboardDevice.h b/Kernel/Devices/KeyboardDevice.h
index c6e9fa972e..16f134b2a7 100644
--- a/Kernel/Devices/KeyboardDevice.h
+++ b/Kernel/Devices/KeyboardDevice.h
@@ -1,15 +1,16 @@
#pragma once
-#include <AK/Types.h>
-#include <AK/DoublyLinkedList.h>
-#include <AK/CircularQueue.h>
-#include <Kernel/Devices/CharacterDevice.h>
#include "IRQHandler.h"
#include "KeyCode.h"
+#include <AK/CircularQueue.h>
+#include <AK/DoublyLinkedList.h>
+#include <AK/Types.h>
+#include <Kernel/Devices/CharacterDevice.h>
class KeyboardClient;
-class KeyboardDevice final : public IRQHandler, public CharacterDevice {
+class KeyboardDevice final : public IRQHandler
+ , public CharacterDevice {
AK_MAKE_ETERNAL
public:
using Event = KeyEvent;
diff --git a/Kernel/Devices/NullDevice.h b/Kernel/Devices/NullDevice.h
index b00cfeed67..47ba7baf5a 100644
--- a/Kernel/Devices/NullDevice.h
+++ b/Kernel/Devices/NullDevice.h
@@ -18,4 +18,3 @@ private:
virtual bool can_read(FileDescriptor&) const override;
virtual const char* class_name() const override { return "NullDevice"; }
};
-
diff --git a/Kernel/Devices/PS2MouseDevice.h b/Kernel/Devices/PS2MouseDevice.h
index 6a04ab672c..de97cfe4e1 100644
--- a/Kernel/Devices/PS2MouseDevice.h
+++ b/Kernel/Devices/PS2MouseDevice.h
@@ -1,11 +1,12 @@
#pragma once
+#include <AK/CircularQueue.h>
#include <Kernel/Devices/CharacterDevice.h>
-#include <Kernel/MousePacket.h>
#include <Kernel/IRQHandler.h>
-#include <AK/CircularQueue.h>
+#include <Kernel/MousePacket.h>
-class PS2MouseDevice final : public IRQHandler, public CharacterDevice {
+class PS2MouseDevice final : public IRQHandler
+ , public CharacterDevice {
public:
PS2MouseDevice();
virtual ~PS2MouseDevice() override;
diff --git a/Kernel/Devices/RandomDevice.h b/Kernel/Devices/RandomDevice.h
index fe7fd1a439..ecce3c6bfb 100644
--- a/Kernel/Devices/RandomDevice.h
+++ b/Kernel/Devices/RandomDevice.h
@@ -18,4 +18,3 @@ private:
virtual bool can_write(FileDescriptor&) const override { return true; }
virtual const char* class_name() const override { return "RandomDevice"; }
};
-
diff --git a/Kernel/Devices/ZeroDevice.h b/Kernel/Devices/ZeroDevice.h
index 74cfb60361..930f3adec2 100644
--- a/Kernel/Devices/ZeroDevice.h
+++ b/Kernel/Devices/ZeroDevice.h
@@ -16,4 +16,3 @@ private:
virtual bool can_write(FileDescriptor&) const override { return true; }
virtual const char* class_name() const override { return "ZeroDevice"; }
};
-
diff --git a/Kernel/FileSystem/DevPtsFS.h b/Kernel/FileSystem/DevPtsFS.h
index 9898ea0786..fc638bd580 100644
--- a/Kernel/FileSystem/DevPtsFS.h
+++ b/Kernel/FileSystem/DevPtsFS.h
@@ -26,4 +26,3 @@ private:
HashTable<SlavePTY*> m_slave_ptys;
};
-
diff --git a/Kernel/FileSystem/Ext2FileSystem.h b/Kernel/FileSystem/Ext2FileSystem.h
index c958bac411..21e4e856b3 100644
--- a/Kernel/FileSystem/Ext2FileSystem.h
+++ b/Kernel/FileSystem/Ext2FileSystem.h
@@ -1,9 +1,9 @@
#pragma once
-#include <Kernel/UnixTypes.h>
+#include <Kernel/FileSystem/DiskBackedFileSystem.h>
#include <Kernel/FileSystem/Inode.h>
#include <Kernel/FileSystem/ext2_fs.h>
-#include <Kernel/FileSystem/DiskBackedFileSystem.h>
+#include <Kernel/UnixTypes.h>
struct ext2_group_desc;
struct ext2_inode;
@@ -13,6 +13,7 @@ class Ext2FS;
class Ext2FSInode final : public Inode {
friend class Ext2FS;
+
public:
virtual ~Ext2FSInode() override;
@@ -59,8 +60,9 @@ private:
class Ext2FS final : public DiskBackedFS {
friend class Ext2FSInode;
+
public:
- static Retained <Ext2FS> create(Retained<DiskDevice>&&);
+ static Retained<Ext2FS> create(Retained<DiskDevice>&&);
virtual ~Ext2FS() override;
virtual bool initialize() override;
diff --git a/Kernel/FileSystem/FIFO.h b/Kernel/FileSystem/FIFO.h
index b9eea984cb..72faae428d 100644
--- a/Kernel/FileSystem/FIFO.h
+++ b/Kernel/FileSystem/FIFO.h
@@ -1,15 +1,18 @@
#pragma once
#include <Kernel/DoubleBuffer.h>
-#include <Kernel/UnixTypes.h>
#include <Kernel/File.h>
+#include <Kernel/UnixTypes.h>
class FileDescriptor;
class FIFO final : public File {
public:
- enum class Direction : byte {
- Neither, Reader, Writer
+ enum class Direction : byte
+ {
+ Neither,
+ Reader,
+ Writer
};
static RetainPtr<FIFO> from_fifo_id(dword);
diff --git a/Kernel/FileSystem/FileDescriptor.h b/Kernel/FileSystem/FileDescriptor.h
index 2f9b98c42b..30ebbce559 100644
--- a/Kernel/FileSystem/FileDescriptor.h
+++ b/Kernel/FileSystem/FileDescriptor.h
@@ -1,14 +1,14 @@
#pragma once
-#include <Kernel/FileSystem/VirtualFileSystem.h>
-#include <Kernel/FileSystem/InodeMetadata.h>
-#include <Kernel/FileSystem/Inode.h>
-#include <Kernel/FileSystem/FIFO.h>
-#include <Kernel/LinearAddress.h>
+#include <AK/Badge.h>
#include <AK/ByteBuffer.h>
#include <AK/CircularQueue.h>
#include <AK/Retainable.h>
-#include <AK/Badge.h>
+#include <Kernel/FileSystem/FIFO.h>
+#include <Kernel/FileSystem/Inode.h>
+#include <Kernel/FileSystem/InodeMetadata.h>
+#include <Kernel/FileSystem/VirtualFileSystem.h>
+#include <Kernel/LinearAddress.h>
#include <Kernel/Net/Socket.h>
class File;
@@ -119,4 +119,3 @@ private:
SocketRole m_socket_role { SocketRole::None };
FIFO::Direction m_fifo_direction { FIFO::Direction::Neither };
};
-
diff --git a/Kernel/FileSystem/FileSystem.h b/Kernel/FileSystem/FileSystem.h
index 800391036d..097d479b00 100644
--- a/Kernel/FileSystem/FileSystem.h
+++ b/Kernel/FileSystem/FileSystem.h
@@ -1,20 +1,20 @@
#pragma once
-#include <Kernel/Devices/DiskDevice.h>
#include "InodeIdentifier.h"
#include "InodeMetadata.h"
#include "UnixTypes.h"
+#include <AK/AKString.h>
#include <AK/ByteBuffer.h>
+#include <AK/Function.h>
#include <AK/HashMap.h>
#include <AK/OwnPtr.h>
-#include <AK/Retainable.h>
#include <AK/RetainPtr.h>
-#include <AK/AKString.h>
-#include <AK/Function.h>
-#include <AK/kstdio.h>
-#include <Kernel/Lock.h>
+#include <AK/Retainable.h>
#include <AK/WeakPtr.h>
+#include <AK/kstdio.h>
+#include <Kernel/Devices/DiskDevice.h>
#include <Kernel/KResult.h>
+#include <Kernel/Lock.h>
static const dword mepoch = 476763780;
@@ -25,6 +25,7 @@ class VMObject;
class FS : public Retainable<FS> {
friend class Inode;
+
public:
virtual ~FS();
@@ -57,7 +58,7 @@ public:
virtual RetainPtr<Inode> get_inode(InodeIdentifier) const = 0;
- virtual void flush_writes() { }
+ virtual void flush_writes() {}
protected:
FS();
@@ -93,4 +94,3 @@ struct Traits<InodeIdentifier> {
};
}
-
diff --git a/Kernel/FileSystem/Inode.h b/Kernel/FileSystem/Inode.h
index 520b271f88..f7f560ce37 100644
--- a/Kernel/FileSystem/Inode.h
+++ b/Kernel/FileSystem/Inode.h
@@ -1,12 +1,12 @@
#pragma once
-#include <AK/Retainable.h>
#include <AK/AKString.h>
#include <AK/Function.h>
+#include <AK/Retainable.h>
#include <AK/WeakPtr.h>
+#include <Kernel/FileSystem/FileSystem.h>
#include <Kernel/FileSystem/InodeIdentifier.h>
#include <Kernel/FileSystem/InodeMetadata.h>
-#include <Kernel/FileSystem/FileSystem.h>
#include <Kernel/KResult.h>
#include <Kernel/Lock.h>
@@ -17,10 +17,11 @@ class VMObject;
class Inode : public Retainable<Inode> {
friend class VFS;
friend class FS;
+
public:
virtual ~Inode();
- virtual void one_retain_left() { }
+ virtual void one_retain_left() {}
FS& fs() { return m_fs; }
const FS& fs() const { return m_fs; }
@@ -89,4 +90,3 @@ private:
RetainPtr<LocalSocket> m_socket;
bool m_metadata_dirty { false };
};
-
diff --git a/Kernel/FileSystem/InodeIdentifier.h b/Kernel/FileSystem/InodeIdentifier.h
index cb0c24f8c3..95c1bc6226 100644
--- a/Kernel/FileSystem/InodeIdentifier.h
+++ b/Kernel/FileSystem/InodeIdentifier.h
@@ -8,7 +8,7 @@ struct InodeMetadata;
class InodeIdentifier {
public:
- InodeIdentifier() { }
+ InodeIdentifier() {}
InodeIdentifier(dword fsid, dword inode)
: m_fsid(fsid)
, m_index(inode)
@@ -39,4 +39,3 @@ private:
dword m_fsid { 0 };
dword m_index { 0 };
};
-
diff --git a/Kernel/FileSystem/InodeMetadata.h b/Kernel/FileSystem/InodeMetadata.h
index ee24330f9d..f151fbe048 100644
--- a/Kernel/FileSystem/InodeMetadata.h
+++ b/Kernel/FileSystem/InodeMetadata.h
@@ -84,5 +84,3 @@ struct InodeMetadata {
unsigned major_device { 0 };
unsigned minor_device { 0 };
};
-
-
diff --git a/Kernel/FileSystem/ProcFS.h b/Kernel/FileSystem/ProcFS.h
index 5693806d4e..a8e27a35ac 100644
--- a/Kernel/FileSystem/ProcFS.h
+++ b/Kernel/FileSystem/ProcFS.h
@@ -1,9 +1,9 @@
#pragma once
-#include <Kernel/Lock.h>
#include <AK/Types.h>
#include <Kernel/FileSystem/FileSystem.h>
#include <Kernel/FileSystem/Inode.h>
+#include <Kernel/Lock.h>
class Process;
@@ -11,6 +11,7 @@ class ProcFSInode;
class ProcFS final : public FS {
friend class ProcFSInode;
+
public:
[[gnu::pure]] static ProcFS& the();
@@ -34,7 +35,7 @@ private:
ProcFS();
struct ProcFSDirectoryEntry {
- ProcFSDirectoryEntry() { }
+ ProcFSDirectoryEntry() {}
ProcFSDirectoryEntry(const char* a_name, unsigned a_proc_file_type, Function<ByteBuffer(InodeIdentifier)>&& a_read_callback = nullptr, Function<ssize_t(InodeIdentifier, const ByteBuffer&)>&& a_write_callback = nullptr, RetainPtr<ProcFSInode>&& a_inode = nullptr)
: name(a_name)
, proc_file_type(a_proc_file_type)
@@ -69,6 +70,7 @@ struct ProcFSInodeCustomData {
class ProcFSInode final : public Inode {
friend class ProcFS;
+
public:
virtual ~ProcFSInode() override;
diff --git a/Kernel/FileSystem/SyntheticFileSystem.h b/Kernel/FileSystem/SyntheticFileSystem.h
index 2e1cfc2254..291d8918dc 100644
--- a/Kernel/FileSystem/SyntheticFileSystem.h
+++ b/Kernel/FileSystem/SyntheticFileSystem.h
@@ -1,9 +1,9 @@
#pragma once
+#include <AK/HashMap.h>
#include <Kernel/FileSystem/FileSystem.h>
#include <Kernel/FileSystem/Inode.h>
#include <Kernel/UnixTypes.h>
-#include <AK/HashMap.h>
class SynthFSInode;
@@ -47,6 +47,7 @@ struct SynthFSInodeCustomData {
class SynthFSInode final : public Inode {
friend class SynthFS;
friend class DevPtsFS;
+
public:
virtual ~SynthFSInode() override;
diff --git a/Kernel/FileSystem/VirtualFileSystem.h b/Kernel/FileSystem/VirtualFileSystem.h
index 16b0dafbad..04ef61a432 100644
--- a/Kernel/FileSystem/VirtualFileSystem.h
+++ b/Kernel/FileSystem/VirtualFileSystem.h
@@ -1,14 +1,14 @@
#pragma once
+#include "FileSystem.h"
+#include "InodeIdentifier.h"
+#include "InodeMetadata.h"
+#include <AK/AKString.h>
+#include <AK/Function.h>
#include <AK/HashMap.h>
#include <AK/OwnPtr.h>
#include <AK/RetainPtr.h>
-#include <AK/AKString.h>
#include <AK/Vector.h>
-#include <AK/Function.h>
-#include "InodeIdentifier.h"
-#include "InodeMetadata.h"
-#include "FileSystem.h"
#include <Kernel/KResult.h>
#define O_RDONLY 0
@@ -116,4 +116,3 @@ private:
Vector<OwnPtr<Mount>> m_mounts;
HashMap<dword, Device*> m_devices;
};
-
diff --git a/Kernel/FileSystem/ext2_fs.h b/Kernel/FileSystem/ext2_fs.h
index 4f0856acf1..372423f0ec 100644
--- a/Kernel/FileSystem/ext2_fs.h
+++ b/Kernel/FileSystem/ext2_fs.h
@@ -16,7 +16,7 @@
#ifndef _LINUX_EXT2_FS_H
#define _LINUX_EXT2_FS_H
-#include "ext2_types.h" /* Changed from linux/types.h */
+#include "ext2_types.h" /* Changed from linux/types.h */
/*
* The second extended filesystem constants/structures
@@ -31,149 +31,145 @@
* Define EXT2_PREALLOCATE to preallocate data blocks for expanding files
*/
#define EXT2_PREALLOCATE
-#define EXT2_DEFAULT_PREALLOC_BLOCKS 8
+#define EXT2_DEFAULT_PREALLOC_BLOCKS 8
/*
* The second extended file system version
*/
-#define EXT2FS_DATE "95/08/09"
-#define EXT2FS_VERSION "0.5b"
+#define EXT2FS_DATE "95/08/09"
+#define EXT2FS_VERSION "0.5b"
/*
* Special inode numbers
*/
-#define EXT2_BAD_INO 1 /* Bad blocks inode */
-#define EXT2_ROOT_INO 2 /* Root inode */
-#define EXT2_ACL_IDX_INO 3 /* ACL inode */
-#define EXT2_ACL_DATA_INO 4 /* ACL inode */
-#define EXT2_BOOT_LOADER_INO 5 /* Boot loader inode */
-#define EXT2_UNDEL_DIR_INO 6 /* Undelete directory inode */
-#define EXT2_RESIZE_INO 7 /* Reserved group descriptors inode */
-#define EXT2_JOURNAL_INO 8 /* Journal inode */
+#define EXT2_BAD_INO 1 /* Bad blocks inode */
+#define EXT2_ROOT_INO 2 /* Root inode */
+#define EXT2_ACL_IDX_INO 3 /* ACL inode */
+#define EXT2_ACL_DATA_INO 4 /* ACL inode */
+#define EXT2_BOOT_LOADER_INO 5 /* Boot loader inode */
+#define EXT2_UNDEL_DIR_INO 6 /* Undelete directory inode */
+#define EXT2_RESIZE_INO 7 /* Reserved group descriptors inode */
+#define EXT2_JOURNAL_INO 8 /* Journal inode */
/* First non-reserved inode for old ext2 filesystems */
-#define EXT2_GOOD_OLD_FIRST_INO 11
+#define EXT2_GOOD_OLD_FIRST_INO 11
/*
* The second extended file system magic number
*/
-#define EXT2_SUPER_MAGIC 0xEF53
+#define EXT2_SUPER_MAGIC 0xEF53
#ifdef __KERNEL__
-#define EXT2_SB(sb) (&((sb)->u.ext2_sb))
+# define EXT2_SB(sb) (&((sb)->u.ext2_sb))
#else
/* Assume that user mode programs are passing in an ext2fs superblock, not
* a kernel struct super_block. This will allow us to call the feature-test
* macros from user land. */
-#define EXT2_SB(sb) (sb)
+# define EXT2_SB(sb) (sb)
#endif
/*
* Maximal count of links to a file
*/
-#define EXT2_LINK_MAX 65000
+#define EXT2_LINK_MAX 65000
/*
* Macro-instructions used to manage several block sizes
*/
-#define EXT2_MIN_BLOCK_LOG_SIZE 10 /* 1024 */
-#define EXT2_MAX_BLOCK_LOG_SIZE 16 /* 65536 */
-#define EXT2_MIN_BLOCK_SIZE (1 << EXT2_MIN_BLOCK_LOG_SIZE)
-#define EXT2_MAX_BLOCK_SIZE (1 << EXT2_MAX_BLOCK_LOG_SIZE)
+#define EXT2_MIN_BLOCK_LOG_SIZE 10 /* 1024 */
+#define EXT2_MAX_BLOCK_LOG_SIZE 16 /* 65536 */
+#define EXT2_MIN_BLOCK_SIZE (1 << EXT2_MIN_BLOCK_LOG_SIZE)
+#define EXT2_MAX_BLOCK_SIZE (1 << EXT2_MAX_BLOCK_LOG_SIZE)
#ifdef __KERNEL__
-#define EXT2_BLOCK_SIZE(s) ((s)->s_blocksize)
-#define EXT2_BLOCK_SIZE_BITS(s) ((s)->s_blocksize_bits)
-#define EXT2_ADDR_PER_BLOCK_BITS(s) (EXT2_SB(s)->addr_per_block_bits)
-#define EXT2_INODE_SIZE(s) (EXT2_SB(s)->s_inode_size)
-#define EXT2_FIRST_INO(s) (EXT2_SB(s)->s_first_ino)
+# define EXT2_BLOCK_SIZE(s) ((s)->s_blocksize)
+# define EXT2_BLOCK_SIZE_BITS(s) ((s)->s_blocksize_bits)
+# define EXT2_ADDR_PER_BLOCK_BITS(s) (EXT2_SB(s)->addr_per_block_bits)
+# define EXT2_INODE_SIZE(s) (EXT2_SB(s)->s_inode_size)
+# define EXT2_FIRST_INO(s) (EXT2_SB(s)->s_first_ino)
#else
-#define EXT2_BLOCK_SIZE(s) (EXT2_MIN_BLOCK_SIZE << (s)->s_log_block_size)
-#define EXT2_BLOCK_SIZE_BITS(s) ((s)->s_log_block_size + 10)
-#define EXT2_INODE_SIZE(s) (((s)->s_rev_level == EXT2_GOOD_OLD_REV) ? \
- EXT2_GOOD_OLD_INODE_SIZE : (s)->s_inode_size)
-#define EXT2_FIRST_INO(s) (((s)->s_rev_level == EXT2_GOOD_OLD_REV) ? \
- EXT2_GOOD_OLD_FIRST_INO : (s)->s_first_ino)
+# define EXT2_BLOCK_SIZE(s) (EXT2_MIN_BLOCK_SIZE << (s)->s_log_block_size)
+# define EXT2_BLOCK_SIZE_BITS(s) ((s)->s_log_block_size + 10)
+# define EXT2_INODE_SIZE(s) (((s)->s_rev_level == EXT2_GOOD_OLD_REV) ? EXT2_GOOD_OLD_INODE_SIZE : (s)->s_inode_size)
+# define EXT2_FIRST_INO(s) (((s)->s_rev_level == EXT2_GOOD_OLD_REV) ? EXT2_GOOD_OLD_FIRST_INO : (s)->s_first_ino)
#endif
-#define EXT2_ADDR_PER_BLOCK(s) (EXT2_BLOCK_SIZE(s) / sizeof(__u32))
+#define EXT2_ADDR_PER_BLOCK(s) (EXT2_BLOCK_SIZE(s) / sizeof(__u32))
/*
* Macro-instructions used to manage fragments
*/
-#define EXT2_MIN_FRAG_SIZE EXT2_MIN_BLOCK_SIZE
-#define EXT2_MAX_FRAG_SIZE EXT2_MAX_BLOCK_SIZE
-#define EXT2_MIN_FRAG_LOG_SIZE EXT2_MIN_BLOCK_LOG_SIZE
+#define EXT2_MIN_FRAG_SIZE EXT2_MIN_BLOCK_SIZE
+#define EXT2_MAX_FRAG_SIZE EXT2_MAX_BLOCK_SIZE
+#define EXT2_MIN_FRAG_LOG_SIZE EXT2_MIN_BLOCK_LOG_SIZE
#ifdef __KERNEL__
-# define EXT2_FRAG_SIZE(s) (EXT2_SB(s)->s_frag_size)
-# define EXT2_FRAGS_PER_BLOCK(s) (EXT2_SB(s)->s_frags_per_block)
+# define EXT2_FRAG_SIZE(s) (EXT2_SB(s)->s_frag_size)
+# define EXT2_FRAGS_PER_BLOCK(s) (EXT2_SB(s)->s_frags_per_block)
#else
-# define EXT2_FRAG_SIZE(s) (EXT2_MIN_FRAG_SIZE << (s)->s_log_frag_size)
-# define EXT2_FRAGS_PER_BLOCK(s) (EXT2_BLOCK_SIZE(s) / EXT2_FRAG_SIZE(s))
+# define EXT2_FRAG_SIZE(s) (EXT2_MIN_FRAG_SIZE << (s)->s_log_frag_size)
+# define EXT2_FRAGS_PER_BLOCK(s) (EXT2_BLOCK_SIZE(s) / EXT2_FRAG_SIZE(s))
#endif
/*
* ACL structures
*/
-struct ext2_acl_header /* Header of Access Control Lists */
+struct ext2_acl_header /* Header of Access Control Lists */
{
- __u32 aclh_size;
- __u32 aclh_file_count;
- __u32 aclh_acle_count;
- __u32 aclh_first_acle;
+ __u32 aclh_size;
+ __u32 aclh_file_count;
+ __u32 aclh_acle_count;
+ __u32 aclh_first_acle;
};
-struct ext2_acl_entry /* Access Control List Entry */
+struct ext2_acl_entry /* Access Control List Entry */
{
- __u32 acle_size;
- __u16 acle_perms; /* Access permissions */
- __u16 acle_type; /* Type of entry */
- __u16 acle_tag; /* User or group identity */
- __u16 acle_pad1;
- __u32 acle_next; /* Pointer on next entry for the */
- /* same inode or on next free entry */
+ __u32 acle_size;
+ __u16 acle_perms; /* Access permissions */
+ __u16 acle_type; /* Type of entry */
+ __u16 acle_tag; /* User or group identity */
+ __u16 acle_pad1;
+ __u32 acle_next; /* Pointer on next entry for the */
+ /* same inode or on next free entry */
};
/*
* Structure of a blocks group descriptor
*/
-struct ext2_group_desc
-{
- __u32 bg_block_bitmap; /* Blocks bitmap block */
- __u32 bg_inode_bitmap; /* Inodes bitmap block */
- __u32 bg_inode_table; /* Inodes table block */
- __u16 bg_free_blocks_count; /* Free blocks count */
- __u16 bg_free_inodes_count; /* Free inodes count */
- __u16 bg_used_dirs_count; /* Directories count */
- __u16 bg_flags;
- __u32 bg_reserved[2];
- __u16 bg_itable_unused; /* Unused inodes count */
- __u16 bg_checksum; /* crc16(s_uuid+grouo_num+group_desc)*/
+struct ext2_group_desc {
+ __u32 bg_block_bitmap; /* Blocks bitmap block */
+ __u32 bg_inode_bitmap; /* Inodes bitmap block */
+ __u32 bg_inode_table; /* Inodes table block */
+ __u16 bg_free_blocks_count; /* Free blocks count */
+ __u16 bg_free_inodes_count; /* Free inodes count */
+ __u16 bg_used_dirs_count; /* Directories count */
+ __u16 bg_flags;
+ __u32 bg_reserved[2];
+ __u16 bg_itable_unused; /* Unused inodes count */
+ __u16 bg_checksum; /* crc16(s_uuid+grouo_num+group_desc)*/
};
-struct ext4_group_desc
-{
- __u32 bg_block_bitmap; /* Blocks bitmap block */
- __u32 bg_inode_bitmap; /* Inodes bitmap block */
- __u32 bg_inode_table; /* Inodes table block */
- __u16 bg_free_blocks_count; /* Free blocks count */
- __u16 bg_free_inodes_count; /* Free inodes count */
- __u16 bg_used_dirs_count; /* Directories count */
- __u16 bg_flags;
- __u32 bg_reserved[2];
- __u16 bg_itable_unused; /* Unused inodes count */
- __u16 bg_checksum; /* crc16(s_uuid+grouo_num+group_desc)*/
- __u32 bg_block_bitmap_hi; /* Blocks bitmap block MSB */
- __u32 bg_inode_bitmap_hi; /* Inodes bitmap block MSB */
- __u32 bg_inode_table_hi; /* Inodes table block MSB */
- __u16 bg_free_blocks_count_hi;/* Free blocks count MSB */
- __u16 bg_free_inodes_count_hi;/* Free inodes count MSB */
- __u16 bg_used_dirs_count_hi; /* Directories count MSB */
- __u16 bg_pad;
- __u32 bg_reserved2[3];
+struct ext4_group_desc {
+ __u32 bg_block_bitmap; /* Blocks bitmap block */
+ __u32 bg_inode_bitmap; /* Inodes bitmap block */
+ __u32 bg_inode_table; /* Inodes table block */
+ __u16 bg_free_blocks_count; /* Free blocks count */
+ __u16 bg_free_inodes_count; /* Free inodes count */
+ __u16 bg_used_dirs_count; /* Directories count */
+ __u16 bg_flags;
+ __u32 bg_reserved[2];
+ __u16 bg_itable_unused; /* Unused inodes count */
+ __u16 bg_checksum; /* crc16(s_uuid+grouo_num+group_desc)*/
+ __u32 bg_block_bitmap_hi; /* Blocks bitmap block MSB */
+ __u32 bg_inode_bitmap_hi; /* Inodes bitmap block MSB */
+ __u32 bg_inode_table_hi; /* Inodes table block MSB */
+ __u16 bg_free_blocks_count_hi; /* Free blocks count MSB */
+ __u16 bg_free_inodes_count_hi; /* Free inodes count MSB */
+ __u16 bg_used_dirs_count_hi; /* Directories count MSB */
+ __u16 bg_pad;
+ __u32 bg_reserved2[3];
};
-#define EXT2_BG_INODE_UNINIT 0x0001 /* Inode table/bitmap not initialized */
-#define EXT2_BG_BLOCK_UNINIT 0x0002 /* Block bitmap not initialized */
-#define EXT2_BG_INODE_ZEROED 0x0004 /* On-disk itable initialized to zero */
+#define EXT2_BG_INODE_UNINIT 0x0001 /* Inode table/bitmap not initialized */
+#define EXT2_BG_BLOCK_UNINIT 0x0002 /* Block bitmap not initialized */
+#define EXT2_BG_INODE_ZEROED 0x0004 /* On-disk itable initialized to zero */
/*
* Data structures used by the directory indexing feature
@@ -188,95 +184,93 @@ struct ext4_group_desc
* Sincerely, the paranoia department.
*/
struct ext2_dx_root_info {
- __u32 reserved_zero;
- __u8 hash_version; /* 0 now, 1 at release */
- __u8 info_length; /* 8 */
- __u8 indirect_levels;
- __u8 unused_flags;
+ __u32 reserved_zero;
+ __u8 hash_version; /* 0 now, 1 at release */
+ __u8 info_length; /* 8 */
+ __u8 indirect_levels;
+ __u8 unused_flags;
};
-#define EXT2_HASH_LEGACY 0
-#define EXT2_HASH_HALF_MD4 1
-#define EXT2_HASH_TEA 2
-#define EXT2_HASH_LEGACY_UNSIGNED 3 /* reserved for userspace lib */
-#define EXT2_HASH_HALF_MD4_UNSIGNED 4 /* reserved for userspace lib */
-#define EXT2_HASH_TEA_UNSIGNED 5 /* reserved for userspace lib */
+#define EXT2_HASH_LEGACY 0
+#define EXT2_HASH_HALF_MD4 1
+#define EXT2_HASH_TEA 2
+#define EXT2_HASH_LEGACY_UNSIGNED 3 /* reserved for userspace lib */
+#define EXT2_HASH_HALF_MD4_UNSIGNED 4 /* reserved for userspace lib */
+#define EXT2_HASH_TEA_UNSIGNED 5 /* reserved for userspace lib */
-#define EXT2_HASH_FLAG_INCOMPAT 0x1
+#define EXT2_HASH_FLAG_INCOMPAT 0x1
struct ext2_dx_entry {
- __u32 hash;
- __u32 block;
+ __u32 hash;
+ __u32 block;
};
struct ext2_dx_countlimit {
- __u16 limit;
- __u16 count;
+ __u16 limit;
+ __u16 count;
};
-
/*
* Macro-instructions used to manage group descriptors
*/
-#define EXT2_MIN_DESC_SIZE 32
-#define EXT2_MIN_DESC_SIZE_64BIT 64
-#define EXT2_MAX_DESC_SIZE EXT2_MIN_BLOCK_SIZE
-#define EXT2_DESC_SIZE(s) \
- ((EXT2_SB(s)->s_feature_incompat & EXT4_FEATURE_INCOMPAT_64BIT) ? \
- (s)->s_desc_size : EXT2_MIN_DESC_SIZE)
+#define EXT2_MIN_DESC_SIZE 32
+#define EXT2_MIN_DESC_SIZE_64BIT 64
+#define EXT2_MAX_DESC_SIZE EXT2_MIN_BLOCK_SIZE
+#define EXT2_DESC_SIZE(s) \
+ ((EXT2_SB(s)->s_feature_incompat & EXT4_FEATURE_INCOMPAT_64BIT) ? (s)->s_desc_size : EXT2_MIN_DESC_SIZE)
-#define EXT2_BLOCKS_PER_GROUP(s) (EXT2_SB(s)->s_blocks_per_group)
-#define EXT2_INODES_PER_GROUP(s) (EXT2_SB(s)->s_inodes_per_group)
-#define EXT2_INODES_PER_BLOCK(s) (EXT2_BLOCK_SIZE(s)/EXT2_INODE_SIZE(s))
+#define EXT2_BLOCKS_PER_GROUP(s) (EXT2_SB(s)->s_blocks_per_group)
+#define EXT2_INODES_PER_GROUP(s) (EXT2_SB(s)->s_inodes_per_group)
+#define EXT2_INODES_PER_BLOCK(s) (EXT2_BLOCK_SIZE(s) / EXT2_INODE_SIZE(s))
/* limits imposed by 16-bit value gd_free_{blocks,inode}_count */
-#define EXT2_MAX_BLOCKS_PER_GROUP(s) ((1 << 16) - 8)
-#define EXT2_MAX_INODES_PER_GROUP(s) ((1 << 16) - EXT2_INODES_PER_BLOCK(s))
+#define EXT2_MAX_BLOCKS_PER_GROUP(s) ((1 << 16) - 8)
+#define EXT2_MAX_INODES_PER_GROUP(s) ((1 << 16) - EXT2_INODES_PER_BLOCK(s))
#ifdef __KERNEL__
-#define EXT2_DESC_PER_BLOCK(s) (EXT2_SB(s)->s_desc_per_block)
-#define EXT2_DESC_PER_BLOCK_BITS(s) (EXT2_SB(s)->s_desc_per_block_bits)
+# define EXT2_DESC_PER_BLOCK(s) (EXT2_SB(s)->s_desc_per_block)
+# define EXT2_DESC_PER_BLOCK_BITS(s) (EXT2_SB(s)->s_desc_per_block_bits)
#else
-#define EXT2_DESC_PER_BLOCK(s) (EXT2_BLOCK_SIZE(s) / EXT2_DESC_SIZE(s))
+# define EXT2_DESC_PER_BLOCK(s) (EXT2_BLOCK_SIZE(s) / EXT2_DESC_SIZE(s))
#endif
/*
* Constants relative to the data blocks
*/
-#define EXT2_NDIR_BLOCKS 12
-#define EXT2_IND_BLOCK EXT2_NDIR_BLOCKS
-#define EXT2_DIND_BLOCK (EXT2_IND_BLOCK + 1)
-#define EXT2_TIND_BLOCK (EXT2_DIND_BLOCK + 1)
-#define EXT2_N_BLOCKS (EXT2_TIND_BLOCK + 1)
+#define EXT2_NDIR_BLOCKS 12
+#define EXT2_IND_BLOCK EXT2_NDIR_BLOCKS
+#define EXT2_DIND_BLOCK (EXT2_IND_BLOCK + 1)
+#define EXT2_TIND_BLOCK (EXT2_DIND_BLOCK + 1)
+#define EXT2_N_BLOCKS (EXT2_TIND_BLOCK + 1)
/*
* Inode flags
*/
-#define EXT2_SECRM_FL 0x00000001 /* Secure deletion */
-#define EXT2_UNRM_FL 0x00000002 /* Undelete */
-#define EXT2_COMPR_FL 0x00000004 /* Compress file */
-#define EXT2_SYNC_FL 0x00000008 /* Synchronous updates */
-#define EXT2_IMMUTABLE_FL 0x00000010 /* Immutable file */
-#define EXT2_APPEND_FL 0x00000020 /* writes to file may only append */
-#define EXT2_NODUMP_FL 0x00000040 /* do not dump file */
-#define EXT2_NOATIME_FL 0x00000080 /* do not update atime */
+#define EXT2_SECRM_FL 0x00000001 /* Secure deletion */
+#define EXT2_UNRM_FL 0x00000002 /* Undelete */
+#define EXT2_COMPR_FL 0x00000004 /* Compress file */
+#define EXT2_SYNC_FL 0x00000008 /* Synchronous updates */
+#define EXT2_IMMUTABLE_FL 0x00000010 /* Immutable file */
+#define EXT2_APPEND_FL 0x00000020 /* writes to file may only append */
+#define EXT2_NODUMP_FL 0x00000040 /* do not dump file */
+#define EXT2_NOATIME_FL 0x00000080 /* do not update atime */
/* Reserved for compression usage... */
-#define EXT2_DIRTY_FL 0x00000100
-#define EXT2_COMPRBLK_FL 0x00000200 /* One or more compressed clusters */
-#define EXT2_NOCOMPR_FL 0x00000400 /* Access raw compressed data */
-#define EXT2_ECOMPR_FL 0x00000800 /* Compression error */
+#define EXT2_DIRTY_FL 0x00000100
+#define EXT2_COMPRBLK_FL 0x00000200 /* One or more compressed clusters */
+#define EXT2_NOCOMPR_FL 0x00000400 /* Access raw compressed data */
+#define EXT2_ECOMPR_FL 0x00000800 /* Compression error */
/* End compression flags --- maybe not all used */
-#define EXT2_BTREE_FL 0x00001000 /* btree format dir */
-#define EXT2_INDEX_FL 0x00001000 /* hash-indexed directory */
-#define EXT2_IMAGIC_FL 0x00002000
-#define EXT3_JOURNAL_DATA_FL 0x00004000 /* file data should be journaled */
-#define EXT2_NOTAIL_FL 0x00008000 /* file tail should not be merged */
-#define EXT2_DIRSYNC_FL 0x00010000 /* Synchronous directory modifications */
-#define EXT2_TOPDIR_FL 0x00020000 /* Top of directory hierarchies*/
-#define EXT4_HUGE_FILE_FL 0x00040000 /* Set to each huge file */
-#define EXT4_EXTENTS_FL 0x00080000 /* Inode uses extents */
-#define EXT2_RESERVED_FL 0x80000000 /* reserved for ext2 lib */
+#define EXT2_BTREE_FL 0x00001000 /* btree format dir */
+#define EXT2_INDEX_FL 0x00001000 /* hash-indexed directory */
+#define EXT2_IMAGIC_FL 0x00002000
+#define EXT3_JOURNAL_DATA_FL 0x00004000 /* file data should be journaled */
+#define EXT2_NOTAIL_FL 0x00008000 /* file tail should not be merged */
+#define EXT2_DIRSYNC_FL 0x00010000 /* Synchronous directory modifications */
+#define EXT2_TOPDIR_FL 0x00020000 /* Top of directory hierarchies*/
+#define EXT4_HUGE_FILE_FL 0x00040000 /* Set to each huge file */
+#define EXT4_EXTENTS_FL 0x00080000 /* Inode uses extents */
+#define EXT2_RESERVED_FL 0x80000000 /* reserved for ext2 lib */
-#define EXT2_FL_USER_VISIBLE 0x000BDFFF /* User visible flags */
-#define EXT2_FL_USER_MODIFIABLE 0x000080FF /* User modifiable flags */
+#define EXT2_FL_USER_VISIBLE 0x000BDFFF /* User visible flags */
+#define EXT2_FL_USER_MODIFIABLE 0x000080FF /* User modifiable flags */
/*
* ioctl commands
@@ -284,244 +278,243 @@ struct ext2_dx_countlimit {
/* Used for online resize */
struct ext2_new_group_input {
- __u32 group; /* Group number for this data */
- __u32 block_bitmap; /* Absolute block number of block bitmap */
- __u32 inode_bitmap; /* Absolute block number of inode bitmap */
- __u32 inode_table; /* Absolute block number of inode table start */
- __u32 blocks_count; /* Total number of blocks in this group */
- __u16 reserved_blocks; /* Number of reserved blocks in this group */
- __u16 unused; /* Number of reserved GDT blocks in group */
+ __u32 group; /* Group number for this data */
+ __u32 block_bitmap; /* Absolute block number of block bitmap */
+ __u32 inode_bitmap; /* Absolute block number of inode bitmap */
+ __u32 inode_table; /* Absolute block number of inode table start */
+ __u32 blocks_count; /* Total number of blocks in this group */
+ __u16 reserved_blocks; /* Number of reserved blocks in this group */
+ __u16 unused; /* Number of reserved GDT blocks in group */
};
struct ext4_new_group_input {
- __u32 group; /* Group number for this data */
- __u64 block_bitmap; /* Absolute block number of block bitmap */
- __u64 inode_bitmap; /* Absolute block number of inode bitmap */
- __u64 inode_table; /* Absolute block number of inode table start */
- __u32 blocks_count; /* Total number of blocks in this group */
- __u16 reserved_blocks; /* Number of reserved blocks in this group */
- __u16 unused;
+ __u32 group; /* Group number for this data */
+ __u64 block_bitmap; /* Absolute block number of block bitmap */
+ __u64 inode_bitmap; /* Absolute block number of inode bitmap */
+ __u64 inode_table; /* Absolute block number of inode table start */
+ __u32 blocks_count; /* Total number of blocks in this group */
+ __u16 reserved_blocks; /* Number of reserved blocks in this group */
+ __u16 unused;
};
-#ifdef __GNU__ /* Needed for the Hurd */
-#define _IOT_ext2_new_group_input _IOT (_IOTS(__u32), 5, _IOTS(__u16), 2, 0, 0)
+#ifdef __GNU__ /* Needed for the Hurd */
+# define _IOT_ext2_new_group_input _IOT(_IOTS(__u32), 5, _IOTS(__u16), 2, 0, 0)
#endif
-#define EXT2_IOC_GETFLAGS _IOR('f', 1, long)
-#define EXT2_IOC_SETFLAGS _IOW('f', 2, long)
-#define EXT2_IOC_GETVERSION _IOR('v', 1, long)
-#define EXT2_IOC_SETVERSION _IOW('v', 2, long)
-#define EXT2_IOC_GETVERSION_NEW _IOR('f', 3, long)
-#define EXT2_IOC_SETVERSION_NEW _IOW('f', 4, long)
-#define EXT2_IOC_GROUP_EXTEND _IOW('f', 7, unsigned long)
-#define EXT2_IOC_GROUP_ADD _IOW('f', 8,struct ext2_new_group_input)
-#define EXT4_IOC_GROUP_ADD _IOW('f', 8,struct ext4_new_group_input)
+#define EXT2_IOC_GETFLAGS _IOR('f', 1, long)
+#define EXT2_IOC_SETFLAGS _IOW('f', 2, long)
+#define EXT2_IOC_GETVERSION _IOR('v', 1, long)
+#define EXT2_IOC_SETVERSION _IOW('v', 2, long)
+#define EXT2_IOC_GETVERSION_NEW _IOR('f', 3, long)
+#define EXT2_IOC_SETVERSION_NEW _IOW('f', 4, long)
+#define EXT2_IOC_GROUP_EXTEND _IOW('f', 7, unsigned long)
+#define EXT2_IOC_GROUP_ADD _IOW('f', 8, struct ext2_new_group_input)
+#define EXT4_IOC_GROUP_ADD _IOW('f', 8, struct ext4_new_group_input)
/*
* Structure of an inode on the disk
*/
struct ext2_inode {
- __u16 i_mode; /* File mode */
- __u16 i_uid; /* Low 16 bits of Owner Uid */
- __u32 i_size; /* Size in bytes */
- __u32 i_atime; /* Access time */
- __u32 i_ctime; /* Inode change time */
- __u32 i_mtime; /* Modification time */
- __u32 i_dtime; /* Deletion Time */
- __u16 i_gid; /* Low 16 bits of Group Id */
- __u16 i_links_count; /* Links count */
- __u32 i_blocks; /* Blocks count */
- __u32 i_flags; /* File flags */
- union {
- struct {
- __u32 l_i_version; /* was l_i_reserved1 */
- } linux1;
- struct {
- __u32 h_i_translator;
- } hurd1;
- } osd1; /* OS dependent 1 */
- __u32 i_block[EXT2_N_BLOCKS];/* Pointers to blocks */
- __u32 i_generation; /* File version (for NFS) */
- __u32 i_file_acl; /* File ACL */
- __u32 i_dir_acl; /* Directory ACL */
- __u32 i_faddr; /* Fragment address */
- union {
- struct {
- __u16 l_i_blocks_hi;
- __u16 l_i_file_acl_high;
- __u16 l_i_uid_high; /* these 2 fields */
- __u16 l_i_gid_high; /* were reserved2[0] */
- __u32 l_i_reserved2;
- } linux2;
- struct {
- __u8 h_i_frag; /* Fragment number */
- __u8 h_i_fsize; /* Fragment size */
- __u16 h_i_mode_high;
- __u16 h_i_uid_high;
- __u16 h_i_gid_high;
- __u32 h_i_author;
- } hurd2;
- } osd2; /* OS dependent 2 */
+ __u16 i_mode; /* File mode */
+ __u16 i_uid; /* Low 16 bits of Owner Uid */
+ __u32 i_size; /* Size in bytes */
+ __u32 i_atime; /* Access time */
+ __u32 i_ctime; /* Inode change time */
+ __u32 i_mtime; /* Modification time */
+ __u32 i_dtime; /* Deletion Time */
+ __u16 i_gid; /* Low 16 bits of Group Id */
+ __u16 i_links_count; /* Links count */
+ __u32 i_blocks; /* Blocks count */
+ __u32 i_flags; /* File flags */
+ union {
+ struct {
+ __u32 l_i_version; /* was l_i_reserved1 */
+ } linux1;
+ struct {
+ __u32 h_i_translator;
+ } hurd1;
+ } osd1; /* OS dependent 1 */
+ __u32 i_block[EXT2_N_BLOCKS]; /* Pointers to blocks */
+ __u32 i_generation; /* File version (for NFS) */
+ __u32 i_file_acl; /* File ACL */
+ __u32 i_dir_acl; /* Directory ACL */
+ __u32 i_faddr; /* Fragment address */
+ union {
+ struct {
+ __u16 l_i_blocks_hi;
+ __u16 l_i_file_acl_high;
+ __u16 l_i_uid_high; /* these 2 fields */
+ __u16 l_i_gid_high; /* were reserved2[0] */
+ __u32 l_i_reserved2;
+ } linux2;
+ struct {
+ __u8 h_i_frag; /* Fragment number */
+ __u8 h_i_fsize; /* Fragment size */
+ __u16 h_i_mode_high;
+ __u16 h_i_uid_high;
+ __u16 h_i_gid_high;
+ __u32 h_i_author;
+ } hurd2;
+ } osd2; /* OS dependent 2 */
};
/*
* Permanent part of an large inode on the disk
*/
struct ext2_inode_large {
- __u16 i_mode; /* File mode */
- __u16 i_uid; /* Low 16 bits of Owner Uid */
- __u32 i_size; /* Size in bytes */
- __u32 i_atime; /* Access time */
- __u32 i_ctime; /* Inode Change time */
- __u32 i_mtime; /* Modification time */
- __u32 i_dtime; /* Deletion Time */
- __u16 i_gid; /* Low 16 bits of Group Id */
- __u16 i_links_count; /* Links count */
- __u32 i_blocks; /* Blocks count */
- __u32 i_flags; /* File flags */
- union {
- struct {
- __u32 l_i_version; /* was l_i_reserved1 */
- } linux1;
- struct {
- __u32 h_i_translator;
- } hurd1;
- } osd1; /* OS dependent 1 */
- __u32 i_block[EXT2_N_BLOCKS];/* Pointers to blocks */
- __u32 i_generation; /* File version (for NFS) */
- __u32 i_file_acl; /* File ACL */
- __u32 i_dir_acl; /* Directory ACL */
- __u32 i_faddr; /* Fragment address */
- union {
- struct {
- __u16 l_i_blocks_hi;
- __u16 l_i_file_acl_high;
- __u16 l_i_uid_high; /* these 2 fields */
- __u16 l_i_gid_high; /* were reserved2[0] */
- __u32 l_i_reserved2;
- } linux2;
- struct {
- __u8 h_i_frag; /* Fragment number */
- __u8 h_i_fsize; /* Fragment size */
- __u16 h_i_mode_high;
- __u16 h_i_uid_high;
- __u16 h_i_gid_high;
- __u32 h_i_author;
- } hurd2;
- } osd2; /* OS dependent 2 */
- __u16 i_extra_isize;
- __u16 i_pad1;
- __u32 i_ctime_extra; /* extra Change time (nsec << 2 | epoch) */
- __u32 i_mtime_extra; /* extra Modification time (nsec << 2 | epoch) */
- __u32 i_atime_extra; /* extra Access time (nsec << 2 | epoch) */
- __u32 i_crtime; /* File creation time */
- __u32 i_crtime_extra; /* extra File creation time (nsec << 2 | epoch)*/
- __u32 i_version_hi; /* high 32 bits for 64-bit version */
+ __u16 i_mode; /* File mode */
+ __u16 i_uid; /* Low 16 bits of Owner Uid */
+ __u32 i_size; /* Size in bytes */
+ __u32 i_atime; /* Access time */
+ __u32 i_ctime; /* Inode Change time */
+ __u32 i_mtime; /* Modification time */
+ __u32 i_dtime; /* Deletion Time */
+ __u16 i_gid; /* Low 16 bits of Group Id */
+ __u16 i_links_count; /* Links count */
+ __u32 i_blocks; /* Blocks count */
+ __u32 i_flags; /* File flags */
+ union {
+ struct {
+ __u32 l_i_version; /* was l_i_reserved1 */
+ } linux1;
+ struct {
+ __u32 h_i_translator;
+ } hurd1;
+ } osd1; /* OS dependent 1 */
+ __u32 i_block[EXT2_N_BLOCKS]; /* Pointers to blocks */
+ __u32 i_generation; /* File version (for NFS) */
+ __u32 i_file_acl; /* File ACL */
+ __u32 i_dir_acl; /* Directory ACL */
+ __u32 i_faddr; /* Fragment address */
+ union {
+ struct {
+ __u16 l_i_blocks_hi;
+ __u16 l_i_file_acl_high;
+ __u16 l_i_uid_high; /* these 2 fields */
+ __u16 l_i_gid_high; /* were reserved2[0] */
+ __u32 l_i_reserved2;
+ } linux2;
+ struct {
+ __u8 h_i_frag; /* Fragment number */
+ __u8 h_i_fsize; /* Fragment size */
+ __u16 h_i_mode_high;
+ __u16 h_i_uid_high;
+ __u16 h_i_gid_high;
+ __u32 h_i_author;
+ } hurd2;
+ } osd2; /* OS dependent 2 */
+ __u16 i_extra_isize;
+ __u16 i_pad1;
+ __u32 i_ctime_extra; /* extra Change time (nsec << 2 | epoch) */
+ __u32 i_mtime_extra; /* extra Modification time (nsec << 2 | epoch) */
+ __u32 i_atime_extra; /* extra Access time (nsec << 2 | epoch) */
+ __u32 i_crtime; /* File creation time */
+ __u32 i_crtime_extra; /* extra File creation time (nsec << 2 | epoch)*/
+ __u32 i_version_hi; /* high 32 bits for 64-bit version */
};
-#define i_size_high i_dir_acl
+#define i_size_high i_dir_acl
#if defined(__KERNEL__) || defined(__linux__)
-#define i_reserved1 osd1.linux1.l_i_reserved1
-#define i_frag osd2.linux2.l_i_frag
-#define i_fsize osd2.linux2.l_i_fsize
-#define i_uid_low i_uid
-#define i_gid_low i_gid
-#define i_uid_high osd2.linux2.l_i_uid_high
-#define i_gid_high osd2.linux2.l_i_gid_high
-#define i_reserved2 osd2.linux2.l_i_reserved2
+# define i_reserved1 osd1.linux1.l_i_reserved1
+# define i_frag osd2.linux2.l_i_frag
+# define i_fsize osd2.linux2.l_i_fsize
+# define i_uid_low i_uid
+# define i_gid_low i_gid
+# define i_uid_high osd2.linux2.l_i_uid_high
+# define i_gid_high osd2.linux2.l_i_gid_high
+# define i_reserved2 osd2.linux2.l_i_reserved2
#else
-#if defined(__GNU__)
+# if defined(__GNU__)
-#define i_translator osd1.hurd1.h_i_translator
-#define i_frag osd2.hurd2.h_i_frag;
-#define i_fsize osd2.hurd2.h_i_fsize;
-#define i_uid_high osd2.hurd2.h_i_uid_high
-#define i_gid_high osd2.hurd2.h_i_gid_high
-#define i_author osd2.hurd2.h_i_author
+# define i_translator osd1.hurd1.h_i_translator
+# define i_frag osd2.hurd2.h_i_frag;
+# define i_fsize osd2.hurd2.h_i_fsize;
+# define i_uid_high osd2.hurd2.h_i_uid_high
+# define i_gid_high osd2.hurd2.h_i_gid_high
+# define i_author osd2.hurd2.h_i_author
-#endif /* __GNU__ */
-#endif /* defined(__KERNEL__) || defined(__linux__) */
+# endif /* __GNU__ */
+#endif /* defined(__KERNEL__) || defined(__linux__) */
-#define inode_uid(inode) ((inode).i_uid | (inode).osd2.linux2.l_i_uid_high << 16)
-#define inode_gid(inode) ((inode).i_gid | (inode).osd2.linux2.l_i_gid_high << 16)
-#define ext2fs_set_i_uid_high(inode,x) ((inode).osd2.linux2.l_i_uid_high = (x))
-#define ext2fs_set_i_gid_high(inode,x) ((inode).osd2.linux2.l_i_gid_high = (x))
+#define inode_uid(inode) ((inode).i_uid | (inode).osd2.linux2.l_i_uid_high << 16)
+#define inode_gid(inode) ((inode).i_gid | (inode).osd2.linux2.l_i_gid_high << 16)
+#define ext2fs_set_i_uid_high(inode, x) ((inode).osd2.linux2.l_i_uid_high = (x))
+#define ext2fs_set_i_gid_high(inode, x) ((inode).osd2.linux2.l_i_gid_high = (x))
/*
* File system states
*/
-#define EXT2_VALID_FS 0x0001 /* Unmounted cleanly */
-#define EXT2_ERROR_FS 0x0002 /* Errors detected */
-#define EXT3_ORPHAN_FS 0x0004 /* Orphans being recovered */
+#define EXT2_VALID_FS 0x0001 /* Unmounted cleanly */
+#define EXT2_ERROR_FS 0x0002 /* Errors detected */
+#define EXT3_ORPHAN_FS 0x0004 /* Orphans being recovered */
/*
* Misc. filesystem flags
*/
-#define EXT2_FLAGS_SIGNED_HASH 0x0001 /* Signed dirhash in use */
-#define EXT2_FLAGS_UNSIGNED_HASH 0x0002 /* Unsigned dirhash in use */
-#define EXT2_FLAGS_TEST_FILESYS 0x0004 /* OK for use on development code */
+#define EXT2_FLAGS_SIGNED_HASH 0x0001 /* Signed dirhash in use */
+#define EXT2_FLAGS_UNSIGNED_HASH 0x0002 /* Unsigned dirhash in use */
+#define EXT2_FLAGS_TEST_FILESYS 0x0004 /* OK for use on development code */
/*
* Mount flags
*/
-#define EXT2_MOUNT_CHECK 0x0001 /* Do mount-time checks */
-#define EXT2_MOUNT_GRPID 0x0004 /* Create files with directory's group */
-#define EXT2_MOUNT_DEBUG 0x0008 /* Some debugging messages */
-#define EXT2_MOUNT_ERRORS_CONT 0x0010 /* Continue on errors */
-#define EXT2_MOUNT_ERRORS_RO 0x0020 /* Remount fs ro on errors */
-#define EXT2_MOUNT_ERRORS_PANIC 0x0040 /* Panic on errors */
-#define EXT2_MOUNT_MINIX_DF 0x0080 /* Mimics the Minix statfs */
-#define EXT2_MOUNT_NO_UID32 0x0200 /* Disable 32-bit UIDs */
+#define EXT2_MOUNT_CHECK 0x0001 /* Do mount-time checks */
+#define EXT2_MOUNT_GRPID 0x0004 /* Create files with directory's group */
+#define EXT2_MOUNT_DEBUG 0x0008 /* Some debugging messages */
+#define EXT2_MOUNT_ERRORS_CONT 0x0010 /* Continue on errors */
+#define EXT2_MOUNT_ERRORS_RO 0x0020 /* Remount fs ro on errors */
+#define EXT2_MOUNT_ERRORS_PANIC 0x0040 /* Panic on errors */
+#define EXT2_MOUNT_MINIX_DF 0x0080 /* Mimics the Minix statfs */
+#define EXT2_MOUNT_NO_UID32 0x0200 /* Disable 32-bit UIDs */
-#define clear_opt(o, opt) o &= ~EXT2_MOUNT_##opt
-#define set_opt(o, opt) o |= EXT2_MOUNT_##opt
-#define test_opt(sb, opt) (EXT2_SB(sb)->s_mount_opt & \
- EXT2_MOUNT_##opt)
+#define clear_opt(o, opt) o &= ~EXT2_MOUNT_##opt
+#define set_opt(o, opt) o |= EXT2_MOUNT_##opt
+#define test_opt(sb, opt) (EXT2_SB(sb)->s_mount_opt & EXT2_MOUNT_##opt)
/*
* Maximal mount counts between two filesystem checks
*/
-#define EXT2_DFL_MAX_MNT_COUNT 20 /* Allow 20 mounts */
-#define EXT2_DFL_CHECKINTERVAL 0 /* Don't use interval check */
+#define EXT2_DFL_MAX_MNT_COUNT 20 /* Allow 20 mounts */
+#define EXT2_DFL_CHECKINTERVAL 0 /* Don't use interval check */
/*
* Behaviour when detecting errors
*/
-#define EXT2_ERRORS_CONTINUE 1 /* Continue execution */
-#define EXT2_ERRORS_RO 2 /* Remount fs read-only */
-#define EXT2_ERRORS_PANIC 3 /* Panic */
-#define EXT2_ERRORS_DEFAULT EXT2_ERRORS_CONTINUE
+#define EXT2_ERRORS_CONTINUE 1 /* Continue execution */
+#define EXT2_ERRORS_RO 2 /* Remount fs read-only */
+#define EXT2_ERRORS_PANIC 3 /* Panic */
+#define EXT2_ERRORS_DEFAULT EXT2_ERRORS_CONTINUE
/*
* Structure of the super block
*/
struct ext2_super_block {
- __u32 s_inodes_count; /* Inodes count */
- __u32 s_blocks_count; /* Blocks count */
- __u32 s_r_blocks_count; /* Reserved blocks count */
- __u32 s_free_blocks_count; /* Free blocks count */
- __u32 s_free_inodes_count; /* Free inodes count */
- __u32 s_first_data_block; /* First Data Block */
- __u32 s_log_block_size; /* Block size */
- __s32 s_log_frag_size; /* Fragment size */
- __u32 s_blocks_per_group; /* # Blocks per group */
- __u32 s_frags_per_group; /* # Fragments per group */
- __u32 s_inodes_per_group; /* # Inodes per group */
- __u32 s_mtime; /* Mount time */
- __u32 s_wtime; /* Write time */
- __u16 s_mnt_count; /* Mount count */
- __s16 s_max_mnt_count; /* Maximal mount count */
- __u16 s_magic; /* Magic signature */
- __u16 s_state; /* File system state */
- __u16 s_errors; /* Behaviour when detecting errors */
- __u16 s_minor_rev_level; /* minor revision level */
- __u32 s_lastcheck; /* time of last check */
- __u32 s_checkinterval; /* max. time between checks */
- __u32 s_creator_os; /* OS */
- __u32 s_rev_level; /* Revision level */
- __u16 s_def_resuid; /* Default uid for reserved blocks */
- __u16 s_def_resgid; /* Default gid for reserved blocks */
- /*
+ __u32 s_inodes_count; /* Inodes count */
+ __u32 s_blocks_count; /* Blocks count */
+ __u32 s_r_blocks_count; /* Reserved blocks count */
+ __u32 s_free_blocks_count; /* Free blocks count */
+ __u32 s_free_inodes_count; /* Free inodes count */
+ __u32 s_first_data_block; /* First Data Block */
+ __u32 s_log_block_size; /* Block size */
+ __s32 s_log_frag_size; /* Fragment size */
+ __u32 s_blocks_per_group; /* # Blocks per group */
+ __u32 s_frags_per_group; /* # Fragments per group */
+ __u32 s_inodes_per_group; /* # Inodes per group */
+ __u32 s_mtime; /* Mount time */
+ __u32 s_wtime; /* Write time */
+ __u16 s_mnt_count; /* Mount count */
+ __s16 s_max_mnt_count; /* Maximal mount count */
+ __u16 s_magic; /* Magic signature */
+ __u16 s_state; /* File system state */
+ __u16 s_errors; /* Behaviour when detecting errors */
+ __u16 s_minor_rev_level; /* minor revision level */
+ __u32 s_lastcheck; /* time of last check */
+ __u32 s_checkinterval; /* max. time between checks */
+ __u32 s_creator_os; /* OS */
+ __u32 s_rev_level; /* Revision level */
+ __u16 s_def_resuid; /* Default uid for reserved blocks */
+ __u16 s_def_resgid; /* Default gid for reserved blocks */
+ /*
* These fields are for EXT2_DYNAMIC_REV superblocks only.
*
* Note: the difference between the compatible feature set and
@@ -534,142 +527,138 @@ struct ext2_super_block {
* feature set, it must abort and not try to meddle with
* things it doesn't understand...
*/
- __u32 s_first_ino; /* First non-reserved inode */
- __u16 s_inode_size; /* size of inode structure */
- __u16 s_block_group_nr; /* block group # of this superblock */
- __u32 s_feature_compat; /* compatible feature set */
- __u32 s_feature_incompat; /* incompatible feature set */
- __u32 s_feature_ro_compat; /* readonly-compatible feature set */
- __u8 s_uuid[16]; /* 128-bit uuid for volume */
- char s_volume_name[16]; /* volume name */
- char s_last_mounted[64]; /* directory where last mounted */
- __u32 s_algorithm_usage_bitmap; /* For compression */
- /*
+ __u32 s_first_ino; /* First non-reserved inode */
+ __u16 s_inode_size; /* size of inode structure */
+ __u16 s_block_group_nr; /* block group # of this superblock */
+ __u32 s_feature_compat; /* compatible feature set */
+ __u32 s_feature_incompat; /* incompatible feature set */
+ __u32 s_feature_ro_compat; /* readonly-compatible feature set */
+ __u8 s_uuid[16]; /* 128-bit uuid for volume */
+ char s_volume_name[16]; /* volume name */
+ char s_last_mounted[64]; /* directory where last mounted */
+ __u32 s_algorithm_usage_bitmap; /* For compression */
+ /*
* Performance hints. Directory preallocation should only
* happen if the EXT2_FEATURE_COMPAT_DIR_PREALLOC flag is on.
*/
- __u8 s_prealloc_blocks; /* Nr of blocks to try to preallocate*/
- __u8 s_prealloc_dir_blocks; /* Nr to preallocate for dirs */
- __u16 s_reserved_gdt_blocks; /* Per group table for online growth */
- /*
+ __u8 s_prealloc_blocks; /* Nr of blocks to try to preallocate*/
+ __u8 s_prealloc_dir_blocks; /* Nr to preallocate for dirs */
+ __u16 s_reserved_gdt_blocks; /* Per group table for online growth */
+ /*
* Journaling support valid if EXT2_FEATURE_COMPAT_HAS_JOURNAL set.
*/
- __u8 s_journal_uuid[16]; /* uuid of journal superblock */
- __u32 s_journal_inum; /* inode number of journal file */
- __u32 s_journal_dev; /* device number of journal file */
- __u32 s_last_orphan; /* start of list of inodes to delete */
- __u32 s_hash_seed[4]; /* HTREE hash seed */
- __u8 s_def_hash_version; /* Default hash version to use */
- __u8 s_jnl_backup_type; /* Default type of journal backup */
- __u16 s_desc_size; /* Group desc. size: INCOMPAT_64BIT */
- __u32 s_default_mount_opts;
- __u32 s_first_meta_bg; /* First metablock group */
- __u32 s_mkfs_time; /* When the filesystem was created */
- __u32 s_jnl_blocks[17]; /* Backup of the journal inode */
- __u32 s_blocks_count_hi; /* Blocks count high 32bits */
- __u32 s_r_blocks_count_hi; /* Reserved blocks count high 32 bits*/
- __u32 s_free_blocks_hi; /* Free blocks count */
- __u16 s_min_extra_isize; /* All inodes have at least # bytes */
- __u16 s_want_extra_isize; /* New inodes should reserve # bytes */
- __u32 s_flags; /* Miscellaneous flags */
- __u16 s_raid_stride; /* RAID stride */
- __u16 s_mmp_interval; /* # seconds to wait in MMP checking */
- __u64 s_mmp_block; /* Block for multi-mount protection */
- __u32 s_raid_stripe_width; /* blocks on all data disks (N*stride)*/
- __u8 s_log_groups_per_flex; /* FLEX_BG group size */
- __u8 s_reserved_char_pad;
- __u16 s_reserved_pad; /* Padding to next 32bits */
- __u32 s_reserved[162]; /* Padding to the end of the block */
+ __u8 s_journal_uuid[16]; /* uuid of journal superblock */
+ __u32 s_journal_inum; /* inode number of journal file */
+ __u32 s_journal_dev; /* device number of journal file */
+ __u32 s_last_orphan; /* start of list of inodes to delete */
+ __u32 s_hash_seed[4]; /* HTREE hash seed */
+ __u8 s_def_hash_version; /* Default hash version to use */
+ __u8 s_jnl_backup_type; /* Default type of journal backup */
+ __u16 s_desc_size; /* Group desc. size: INCOMPAT_64BIT */
+ __u32 s_default_mount_opts;
+ __u32 s_first_meta_bg; /* First metablock group */
+ __u32 s_mkfs_time; /* When the filesystem was created */
+ __u32 s_jnl_blocks[17]; /* Backup of the journal inode */
+ __u32 s_blocks_count_hi; /* Blocks count high 32bits */
+ __u32 s_r_blocks_count_hi; /* Reserved blocks count high 32 bits*/
+ __u32 s_free_blocks_hi; /* Free blocks count */
+ __u16 s_min_extra_isize; /* All inodes have at least # bytes */
+ __u16 s_want_extra_isize; /* New inodes should reserve # bytes */
+ __u32 s_flags; /* Miscellaneous flags */
+ __u16 s_raid_stride; /* RAID stride */
+ __u16 s_mmp_interval; /* # seconds to wait in MMP checking */
+ __u64 s_mmp_block; /* Block for multi-mount protection */
+ __u32 s_raid_stripe_width; /* blocks on all data disks (N*stride)*/
+ __u8 s_log_groups_per_flex; /* FLEX_BG group size */
+ __u8 s_reserved_char_pad;
+ __u16 s_reserved_pad; /* Padding to next 32bits */
+ __u32 s_reserved[162]; /* Padding to the end of the block */
};
/*
* Codes for operating systems
*/
-#define EXT2_OS_LINUX 0
-#define EXT2_OS_HURD 1
-#define EXT2_OBSO_OS_MASIX 2
-#define EXT2_OS_FREEBSD 3
-#define EXT2_OS_LITES 4
+#define EXT2_OS_LINUX 0
+#define EXT2_OS_HURD 1
+#define EXT2_OBSO_OS_MASIX 2
+#define EXT2_OS_FREEBSD 3
+#define EXT2_OS_LITES 4
/*
* Revision levels
*/
-#define EXT2_GOOD_OLD_REV 0 /* The good old (original) format */
-#define EXT2_DYNAMIC_REV 1 /* V2 format w/ dynamic inode sizes */
+#define EXT2_GOOD_OLD_REV 0 /* The good old (original) format */
+#define EXT2_DYNAMIC_REV 1 /* V2 format w/ dynamic inode sizes */
-#define EXT2_CURRENT_REV EXT2_GOOD_OLD_REV
-#define EXT2_MAX_SUPP_REV EXT2_DYNAMIC_REV
+#define EXT2_CURRENT_REV EXT2_GOOD_OLD_REV
+#define EXT2_MAX_SUPP_REV EXT2_DYNAMIC_REV
#define EXT2_GOOD_OLD_INODE_SIZE 128
/*
* Journal inode backup types
*/
-#define EXT3_JNL_BACKUP_BLOCKS 1
+#define EXT3_JNL_BACKUP_BLOCKS 1
/*
* Feature set definitions
*/
-#define EXT2_HAS_COMPAT_FEATURE(sb,mask) \
- ( EXT2_SB(sb)->s_feature_compat & (mask) )
-#define EXT2_HAS_RO_COMPAT_FEATURE(sb,mask) \
- ( EXT2_SB(sb)->s_feature_ro_compat & (mask) )
-#define EXT2_HAS_INCOMPAT_FEATURE(sb,mask) \
- ( EXT2_SB(sb)->s_feature_incompat & (mask) )
+#define EXT2_HAS_COMPAT_FEATURE(sb, mask) \
+ (EXT2_SB(sb)->s_feature_compat & (mask))
+#define EXT2_HAS_RO_COMPAT_FEATURE(sb, mask) \
+ (EXT2_SB(sb)->s_feature_ro_compat & (mask))
+#define EXT2_HAS_INCOMPAT_FEATURE(sb, mask) \
+ (EXT2_SB(sb)->s_feature_incompat & (mask))
-#define EXT2_FEATURE_COMPAT_DIR_PREALLOC 0x0001
-#define EXT2_FEATURE_COMPAT_IMAGIC_INODES 0x0002
-#define EXT3_FEATURE_COMPAT_HAS_JOURNAL 0x0004
-#define EXT2_FEATURE_COMPAT_EXT_ATTR 0x0008
-#define EXT2_FEATURE_COMPAT_RESIZE_INODE 0x0010
-#define EXT2_FEATURE_COMPAT_DIR_INDEX 0x0020
-#define EXT2_FEATURE_COMPAT_LAZY_BG 0x0040
+#define EXT2_FEATURE_COMPAT_DIR_PREALLOC 0x0001
+#define EXT2_FEATURE_COMPAT_IMAGIC_INODES 0x0002
+#define EXT3_FEATURE_COMPAT_HAS_JOURNAL 0x0004
+#define EXT2_FEATURE_COMPAT_EXT_ATTR 0x0008
+#define EXT2_FEATURE_COMPAT_RESIZE_INODE 0x0010
+#define EXT2_FEATURE_COMPAT_DIR_INDEX 0x0020
+#define EXT2_FEATURE_COMPAT_LAZY_BG 0x0040
-#define EXT2_FEATURE_RO_COMPAT_SPARSE_SUPER 0x0001
-#define EXT2_FEATURE_RO_COMPAT_LARGE_FILE 0x0002
+#define EXT2_FEATURE_RO_COMPAT_SPARSE_SUPER 0x0001
+#define EXT2_FEATURE_RO_COMPAT_LARGE_FILE 0x0002
/* #define EXT2_FEATURE_RO_COMPAT_BTREE_DIR 0x0004 not used */
-#define EXT4_FEATURE_RO_COMPAT_HUGE_FILE 0x0008
-#define EXT4_FEATURE_RO_COMPAT_GDT_CSUM 0x0010
-#define EXT4_FEATURE_RO_COMPAT_DIR_NLINK 0x0020
-#define EXT4_FEATURE_RO_COMPAT_EXTRA_ISIZE 0x0040
-
-#define EXT2_FEATURE_INCOMPAT_COMPRESSION 0x0001
-#define EXT2_FEATURE_INCOMPAT_FILETYPE 0x0002
-#define EXT3_FEATURE_INCOMPAT_RECOVER 0x0004 /* Needs recovery */
-#define EXT3_FEATURE_INCOMPAT_JOURNAL_DEV 0x0008 /* Journal device */
-#define EXT2_FEATURE_INCOMPAT_META_BG 0x0010
-#define EXT3_FEATURE_INCOMPAT_EXTENTS 0x0040
-#define EXT4_FEATURE_INCOMPAT_64BIT 0x0080
-#define EXT4_FEATURE_INCOMPAT_MMP 0x0100
-#define EXT4_FEATURE_INCOMPAT_FLEX_BG 0x0200
-
-
-#define EXT2_FEATURE_COMPAT_SUPP 0
-#define EXT2_FEATURE_INCOMPAT_SUPP (EXT2_FEATURE_INCOMPAT_FILETYPE)
-#define EXT2_FEATURE_RO_COMPAT_SUPP (EXT2_FEATURE_RO_COMPAT_SPARSE_SUPER| \
- EXT2_FEATURE_RO_COMPAT_LARGE_FILE| \
- EXT4_FEATURE_RO_COMPAT_DIR_NLINK| \
- EXT2_FEATURE_RO_COMPAT_BTREE_DIR)
+#define EXT4_FEATURE_RO_COMPAT_HUGE_FILE 0x0008
+#define EXT4_FEATURE_RO_COMPAT_GDT_CSUM 0x0010
+#define EXT4_FEATURE_RO_COMPAT_DIR_NLINK 0x0020
+#define EXT4_FEATURE_RO_COMPAT_EXTRA_ISIZE 0x0040
+
+#define EXT2_FEATURE_INCOMPAT_COMPRESSION 0x0001
+#define EXT2_FEATURE_INCOMPAT_FILETYPE 0x0002
+#define EXT3_FEATURE_INCOMPAT_RECOVER 0x0004 /* Needs recovery */
+#define EXT3_FEATURE_INCOMPAT_JOURNAL_DEV 0x0008 /* Journal device */
+#define EXT2_FEATURE_INCOMPAT_META_BG 0x0010
+#define EXT3_FEATURE_INCOMPAT_EXTENTS 0x0040
+#define EXT4_FEATURE_INCOMPAT_64BIT 0x0080
+#define EXT4_FEATURE_INCOMPAT_MMP 0x0100
+#define EXT4_FEATURE_INCOMPAT_FLEX_BG 0x0200
+
+#define EXT2_FEATURE_COMPAT_SUPP 0
+#define EXT2_FEATURE_INCOMPAT_SUPP (EXT2_FEATURE_INCOMPAT_FILETYPE)
+#define EXT2_FEATURE_RO_COMPAT_SUPP (EXT2_FEATURE_RO_COMPAT_SPARSE_SUPER | EXT2_FEATURE_RO_COMPAT_LARGE_FILE | EXT4_FEATURE_RO_COMPAT_DIR_NLINK | EXT2_FEATURE_RO_COMPAT_BTREE_DIR)
/*
* Default values for user and/or group using reserved blocks
*/
-#define EXT2_DEF_RESUID 0
-#define EXT2_DEF_RESGID 0
+#define EXT2_DEF_RESUID 0
+#define EXT2_DEF_RESGID 0
/*
* Default mount options
*/
-#define EXT2_DEFM_DEBUG 0x0001
-#define EXT2_DEFM_BSDGROUPS 0x0002
-#define EXT2_DEFM_XATTR_USER 0x0004
-#define EXT2_DEFM_ACL 0x0008
-#define EXT2_DEFM_UID16 0x0010
-#define EXT3_DEFM_JMODE 0x0060
-#define EXT3_DEFM_JMODE_DATA 0x0020
-#define EXT3_DEFM_JMODE_ORDERED 0x0040
-#define EXT3_DEFM_JMODE_WBACK 0x0060
+#define EXT2_DEFM_DEBUG 0x0001
+#define EXT2_DEFM_BSDGROUPS 0x0002
+#define EXT2_DEFM_XATTR_USER 0x0004
+#define EXT2_DEFM_ACL 0x0008
+#define EXT2_DEFM_UID16 0x0010
+#define EXT3_DEFM_JMODE 0x0060
+#define EXT3_DEFM_JMODE_DATA 0x0020
+#define EXT3_DEFM_JMODE_ORDERED 0x0040
+#define EXT3_DEFM_JMODE_WBACK 0x0060
/*
* Structure of a directory entry
@@ -677,10 +666,10 @@ struct ext2_super_block {
#define EXT2_NAME_LEN 255
struct ext2_dir_entry {
- __u32 inode; /* Inode number */
- __u16 rec_len; /* Directory entry length */
- __u16 name_len; /* Name length */
- char name[EXT2_NAME_LEN]; /* File name */
+ __u32 inode; /* Inode number */
+ __u16 rec_len; /* Directory entry length */
+ __u16 name_len; /* Name length */
+ char name[EXT2_NAME_LEN]; /* File name */
};
/*
@@ -690,61 +679,60 @@ struct ext2_dir_entry {
* file_type field.
*/
struct ext2_dir_entry_2 {
- __u32 inode; /* Inode number */
- __u16 rec_len; /* Directory entry length */
- __u8 name_len; /* Name length */
- __u8 file_type;
- char name[EXT2_NAME_LEN]; /* File name */
+ __u32 inode; /* Inode number */
+ __u16 rec_len; /* Directory entry length */
+ __u8 name_len; /* Name length */
+ __u8 file_type;
+ char name[EXT2_NAME_LEN]; /* File name */
};
/*
* Ext2 directory file types. Only the low 3 bits are used. The
* other bits are reserved for now.
*/
-#define EXT2_FT_UNKNOWN 0
-#define EXT2_FT_REG_FILE 1
-#define EXT2_FT_DIR 2
-#define EXT2_FT_CHRDEV 3
-#define EXT2_FT_BLKDEV 4
-#define EXT2_FT_FIFO 5
-#define EXT2_FT_SOCK 6
-#define EXT2_FT_SYMLINK 7
+#define EXT2_FT_UNKNOWN 0
+#define EXT2_FT_REG_FILE 1
+#define EXT2_FT_DIR 2
+#define EXT2_FT_CHRDEV 3
+#define EXT2_FT_BLKDEV 4
+#define EXT2_FT_FIFO 5
+#define EXT2_FT_SOCK 6
+#define EXT2_FT_SYMLINK 7
-#define EXT2_FT_MAX 8
+#define EXT2_FT_MAX 8
/*
* EXT2_DIR_PAD defines the directory entries boundaries
*
* NOTE: It must be a multiple of 4
*/
-#define EXT2_DIR_PAD 4
-#define EXT2_DIR_ROUND (EXT2_DIR_PAD - 1)
-#define EXT2_DIR_REC_LEN(name_len) (((name_len) + 8 + EXT2_DIR_ROUND) & \
- ~EXT2_DIR_ROUND)
+#define EXT2_DIR_PAD 4
+#define EXT2_DIR_ROUND (EXT2_DIR_PAD - 1)
+#define EXT2_DIR_REC_LEN(name_len) (((name_len) + 8 + EXT2_DIR_ROUND) & ~EXT2_DIR_ROUND)
/*
* This structure will be used for multiple mount protection. It will be
* written into the block number saved in the s_mmp_block field in the
* superblock.
*/
-#define EXT2_MMP_MAGIC 0x004D4D50 /* ASCII for MMP */
-#define EXT2_MMP_CLEAN 0xFF4D4D50 /* Value of mmp_seq for clean unmount */
-#define EXT2_MMP_FSCK_ON 0xE24D4D50 /* Value of mmp_seq when being fscked */
+#define EXT2_MMP_MAGIC 0x004D4D50 /* ASCII for MMP */
+#define EXT2_MMP_CLEAN 0xFF4D4D50 /* Value of mmp_seq for clean unmount */
+#define EXT2_MMP_FSCK_ON 0xE24D4D50 /* Value of mmp_seq when being fscked */
struct mmp_struct {
- __u32 mmp_magic;
- __u32 mmp_seq;
- __u64 mmp_time;
- char mmp_nodename[64];
- char mmp_bdevname[32];
- __u16 mmp_interval;
- __u16 mmp_pad1;
- __u32 mmp_pad2;
+ __u32 mmp_magic;
+ __u32 mmp_seq;
+ __u64 mmp_time;
+ char mmp_nodename[64];
+ char mmp_bdevname[32];
+ __u16 mmp_interval;
+ __u16 mmp_pad1;
+ __u32 mmp_pad2;
};
/*
* Interval in number of seconds to update the MMP sequence number.
*/
-#define EXT2_MMP_DEF_INTERVAL 5
+#define EXT2_MMP_DEF_INTERVAL 5
-#endif /* _LINUX_EXT2_FS_H */
+#endif /* _LINUX_EXT2_FS_H */
diff --git a/Kernel/FileSystem/ext2_types.h b/Kernel/FileSystem/ext2_types.h
index 27277fa3fe..10160466cf 100644
--- a/Kernel/FileSystem/ext2_types.h
+++ b/Kernel/FileSystem/ext2_types.h
@@ -3,140 +3,141 @@
* everything we need. (cross fingers) Other header files may have
* also defined the types that we need.
*/
-#if (!defined(_LINUX_TYPES_H) && !defined(_BLKID_TYPES_H) && \
- !defined(_EXT2_TYPES_H))
-#define _EXT2_TYPES_H
+#if (!defined(_LINUX_TYPES_H) && !defined(_BLKID_TYPES_H) && !defined(_EXT2_TYPES_H))
+# define _EXT2_TYPES_H
-#define __S8_TYPEDEF __signed__ char
-#define __U8_TYPEDEF unsigned char
-#define __S16_TYPEDEF __signed__ short
-#define __U16_TYPEDEF unsigned short
-#define __S32_TYPEDEF __signed__ int
-#define __U32_TYPEDEF unsigned int
-#define __S64_TYPEDEF __signed__ long long
-#define __U64_TYPEDEF unsigned long long
+# define __S8_TYPEDEF __signed__ char
+# define __U8_TYPEDEF unsigned char
+# define __S16_TYPEDEF __signed__ short
+# define __U16_TYPEDEF unsigned short
+# define __S32_TYPEDEF __signed__ int
+# define __U32_TYPEDEF unsigned int
+# define __S64_TYPEDEF __signed__ long long
+# define __U64_TYPEDEF unsigned long long
-#ifdef __U8_TYPEDEF
+# ifdef __U8_TYPEDEF
typedef __U8_TYPEDEF __u8;
-#else
+# else
typedef unsigned char __u8;
-#endif
+# endif
-#ifdef __S8_TYPEDEF
+# ifdef __S8_TYPEDEF
typedef __S8_TYPEDEF __s8;
-#else
+# else
typedef signed char __s8;
-#endif
+# endif
-#ifdef __U16_TYPEDEF
+# ifdef __U16_TYPEDEF
typedef __U16_TYPEDEF __u16;
-#else
-#if (4 == 2)
-typedef unsigned int __u16;
-#else
-#if (2 == 2)
-typedef unsigned short __u16;
-#else
- ?==error: undefined 16 bit type
-#endif /* SIZEOF_SHORT == 2 */
-#endif /* SIZEOF_INT == 2 */
-#endif /* __U16_TYPEDEF */
+# else
+# if (4 == 2)
+typedef unsigned int __u16;
+# else
+# if (2 == 2)
+typedef unsigned short __u16;
+# else
+? == error : undefined 16 bit type
+# endif /* SIZEOF_SHORT == 2 */
+# endif /* SIZEOF_INT == 2 */
+# endif /* __U16_TYPEDEF */
-#ifdef __S16_TYPEDEF
+# ifdef __S16_TYPEDEF
typedef __S16_TYPEDEF __s16;
-#else
-#if (4 == 2)
-typedef int __s16;
-#else
-#if (2 == 2)
-typedef short __s16;
-#else
- ?==error: undefined 16 bit type
-#endif /* SIZEOF_SHORT == 2 */
-#endif /* SIZEOF_INT == 2 */
-#endif /* __S16_TYPEDEF */
+# else
+# if (4 == 2)
+typedef int __s16;
+# else
+# if (2 == 2)
+typedef short __s16;
+# else
+ ? == error
+ : undefined 16 bit type
+# endif /* SIZEOF_SHORT == 2 */
+# endif /* SIZEOF_INT == 2 */
+# endif /* __S16_TYPEDEF */
-
-#ifdef __U32_TYPEDEF
+# ifdef __U32_TYPEDEF
typedef __U32_TYPEDEF __u32;
-#else
-#if (4 == 4)
-typedef unsigned int __u32;
-#else
-#if (4 == 4)
-typedef unsigned long __u32;
-#else
-#if (2 == 4)
-typedef unsigned short __u32;
-#else
- ?== error: undefined 32 bit type
-#endif /* SIZEOF_SHORT == 4 */
-#endif /* SIZEOF_LONG == 4 */
-#endif /* SIZEOF_INT == 4 */
-#endif /* __U32_TYPEDEF */
+# else
+# if (4 == 4)
+typedef unsigned int __u32;
+# else
+# if (4 == 4)
+typedef unsigned long __u32;
+# else
+# if (2 == 4)
+ typedef unsigned short __u32;
+# else
+ ? == error
+ : undefined 32 bit type
+# endif /* SIZEOF_SHORT == 4 */
+# endif /* SIZEOF_LONG == 4 */
+# endif /* SIZEOF_INT == 4 */
+# endif /* __U32_TYPEDEF */
-#ifdef __S32_TYPEDEF
+# ifdef __S32_TYPEDEF
typedef __S32_TYPEDEF __s32;
-#else
-#if (4 == 4)
-typedef int __s32;
-#else
-#if (4 == 4)
-typedef long __s32;
-#else
-#if (2 == 4)
-typedef short __s32;
-#else
- ?== error: undefined 32 bit type
-#endif /* SIZEOF_SHORT == 4 */
-#endif /* SIZEOF_LONG == 4 */
-#endif /* SIZEOF_INT == 4 */
-#endif /* __S32_TYPEDEF */
+# else
+# if (4 == 4)
+typedef int __s32;
+# else
+# if (4 == 4)
+typedef long __s32;
+# else
+# if (2 == 4)
+typedef short __s32;
+# else
+ ? == error
+ : undefined 32 bit type
+# endif /* SIZEOF_SHORT == 4 */
+# endif /* SIZEOF_LONG == 4 */
+# endif /* SIZEOF_INT == 4 */
+# endif /* __S32_TYPEDEF */
-#ifdef __U64_TYPEDEF
+# ifdef __U64_TYPEDEF
typedef __U64_TYPEDEF __u64;
-#else
-#if (4 == 8)
-typedef unsigned int __u64;
-#else
-#if (4 == 8)
-typedef unsigned long __u64;
-#else
-#if (8 == 8)
-typedef unsigned long long __u64;
-#endif /* SIZEOF_LONG_LONG == 8 */
-#endif /* SIZEOF_LONG == 8 */
-#endif /* SIZEOF_INT == 8 */
-#endif /* __U64_TYPEDEF */
+# else
+# if (4 == 8)
+typedef unsigned int __u64;
+# else
+# if (4 == 8)
+typedef unsigned long __u64;
+# else
+# if (8 == 8)
+typedef unsigned long long __u64;
+# endif /* SIZEOF_LONG_LONG == 8 */
+# endif /* SIZEOF_LONG == 8 */
+# endif /* SIZEOF_INT == 8 */
+# endif /* __U64_TYPEDEF */
-#ifdef __S64_TYPEDEF
+# ifdef __S64_TYPEDEF
typedef __S64_TYPEDEF __s64;
-#else
-#if (4 == 8)
-typedef int __s64;
-#else
-#if (4 == 8)
-typedef long __s64;
-#else
-#if (8 == 8)
-#if defined(__GNUC__)
-typedef __signed__ long long __s64;
-#else
-typedef signed long long __s64;
-#endif /* __GNUC__ */
-#endif /* SIZEOF_LONG_LONG == 8 */
-#endif /* SIZEOF_LONG == 8 */
-#endif /* SIZEOF_INT == 8 */
-#endif /* __S64_TYPEDEF */
+# else
+# if (4 == 8)
+typedef int __s64;
+# else
+# if (4 == 8)
+typedef long __s64;
+# else
+# if (8 == 8)
+# if defined(__GNUC__)
+typedef __signed__ long long __s64;
+# else
+typedef signed long long __s64;
+# endif /* __GNUC__ */
+# endif /* SIZEOF_LONG_LONG == 8 */
+# endif /* SIZEOF_LONG == 8 */
+# endif /* SIZEOF_INT == 8 */
+# endif /* __S64_TYPEDEF */
-#undef __S8_TYPEDEF
-#undef __U8_TYPEDEF
-#undef __S16_TYPEDEF
-#undef __U16_TYPEDEF
-#undef __S32_TYPEDEF
-#undef __U32_TYPEDEF
-#undef __S64_TYPEDEF
-#undef __U64_TYPEDEF
+# undef __S8_TYPEDEF
+# undef __U8_TYPEDEF
+# undef __S16_TYPEDEF
+# undef __U16_TYPEDEF
+# undef __S32_TYPEDEF
+# undef __U32_TYPEDEF
+# undef __S64_TYPEDEF
+# undef __U64_TYPEDEF
#endif /* _*_TYPES_H */
diff --git a/Kernel/IO.h b/Kernel/IO.h
index 5453b98494..259911264c 100644
--- a/Kernel/IO.h
+++ b/Kernel/IO.h
@@ -7,47 +7,58 @@ namespace IO {
inline byte in8(word port)
{
byte value;
- asm volatile("inb %1, %0":"=a"(value):"Nd"(port));
+ asm volatile("inb %1, %0"
+ : "=a"(value)
+ : "Nd"(port));
return value;
}
inline word in16(word port)
{
word value;
- asm volatile("inw %1, %0":"=a"(value):"Nd"(port));
+ asm volatile("inw %1, %0"
+ : "=a"(value)
+ : "Nd"(port));
return value;
}
inline dword in32(word port)
{
dword value;
- asm volatile("inl %1, %0":"=a"(value):"Nd"(port));
+ asm volatile("inl %1, %0"
+ : "=a"(value)
+ : "Nd"(port));
return value;
}
inline void repeated_in16(word port, byte* buffer, int buffer_size)
{
- asm volatile("rep insw" : "+D"(buffer), "+c"(buffer_size) : "d"(port) : "memory");
+ asm volatile("rep insw"
+ : "+D"(buffer), "+c"(buffer_size)
+ : "d"(port)
+ : "memory");
}
inline void out8(word port, byte value)
{
- asm volatile("outb %0, %1"::"a"(value), "Nd"(port));
+ asm volatile("outb %0, %1" ::"a"(value), "Nd"(port));
}
inline void out16(word port, word value)
{
- asm volatile("outw %0, %1"::"a"(value), "Nd"(port));
+ asm volatile("outw %0, %1" ::"a"(value), "Nd"(port));
}
inline void out32(word port, dword value)
{
- asm volatile("outl %0, %1"::"a"(value), "Nd"(port));
+ asm volatile("outl %0, %1" ::"a"(value), "Nd"(port));
}
inline void repeated_out16(word port, const byte* data, int data_size)
{
- asm volatile("rep outsw" : "+S"(data), "+c"(data_size) : "d"(port));
+ asm volatile("rep outsw"
+ : "+S"(data), "+c"(data_size)
+ : "d"(port));
}
}
diff --git a/Kernel/IRQHandler.h b/Kernel/IRQHandler.h
index e856b84e46..4abadf6b20 100644
--- a/Kernel/IRQHandler.h
+++ b/Kernel/IRQHandler.h
@@ -18,4 +18,3 @@ protected:
private:
byte m_irq_number { 0 };
};
-
diff --git a/Kernel/KResult.h b/Kernel/KResult.h
index 1cc740bc74..291e9ea2ea 100644
--- a/Kernel/KResult.h
+++ b/Kernel/KResult.h
@@ -3,20 +3,31 @@
#include <AK/Assertions.h>
#include <LibC/errno_numbers.h>
-enum KSuccessTag { KSuccess };
+enum KSuccessTag
+{
+ KSuccess
+};
class KResult {
public:
- explicit KResult(int negative_e) : m_error(negative_e) { ASSERT(negative_e <= 0); }
- KResult(KSuccessTag) : m_error(0) { }
+ explicit KResult(int negative_e)
+ : m_error(negative_e)
+ {
+ ASSERT(negative_e <= 0);
+ }
+ KResult(KSuccessTag)
+ : m_error(0)
+ {
+ }
operator int() const { return m_error; }
bool is_success() const { return m_error == ESUCCESS; }
bool is_error() const { return !is_success(); }
private:
- template<typename T> friend class KResultOr;
- KResult() { }
+ template<typename T>
+ friend class KResultOr;
+ KResult() {}
int m_error { 0 };
};
@@ -27,7 +38,8 @@ public:
KResultOr(KResult error)
: m_error(error)
, m_is_error(true)
- { }
+ {
+ }
KResultOr(T&& value)
{
@@ -54,9 +66,21 @@ public:
}
bool is_error() const { return m_is_error; }
- KResult error() const { ASSERT(m_is_error); return m_error; }
- T& value() { ASSERT(!m_is_error); return *reinterpret_cast<T*>(&m_storage); }
- const T& value() const { ASSERT(!m_is_error); return *reinterpret_cast<T*>(&m_storage); }
+ KResult error() const
+ {
+ ASSERT(m_is_error);
+ return m_error;
+ }
+ T& value()
+ {
+ ASSERT(!m_is_error);
+ return *reinterpret_cast<T*>(&m_storage);
+ }
+ const T& value() const
+ {
+ ASSERT(!m_is_error);
+ return *reinterpret_cast<T*>(&m_storage);
+ }
T release_value()
{
@@ -71,4 +95,3 @@ private:
KResult m_error;
bool m_is_error { false };
};
-
diff --git a/Kernel/KeyCode.h b/Kernel/KeyCode.h
index 310c950ca9..67c065625f 100644
--- a/Kernel/KeyCode.h
+++ b/Kernel/KeyCode.h
@@ -2,7 +2,8 @@
#include <AK/Types.h>
-enum KeyCode : byte {
+enum KeyCode : byte
+{
Key_Invalid = 0,
Key_Escape,
Key_Tab,
@@ -113,7 +114,8 @@ enum KeyCode : byte {
Key_Shift = Key_LeftShift,
};
-enum KeyModifier {
+enum KeyModifier
+{
Mod_None = 0x00,
Mod_Alt = 0x01,
Mod_Ctrl = 0x02,
diff --git a/Kernel/LinearAddress.h b/Kernel/LinearAddress.h
index c3064a9af4..3b0eecea02 100644
--- a/Kernel/LinearAddress.h
+++ b/Kernel/LinearAddress.h
@@ -4,8 +4,11 @@
class LinearAddress {
public:
- LinearAddress() { }
- explicit LinearAddress(dword address) : m_address(address) { }
+ LinearAddress() {}
+ explicit LinearAddress(dword address)
+ : m_address(address)
+ {
+ }
bool is_null() const { return m_address == 0; }
diff --git a/Kernel/Lock.h b/Kernel/Lock.h
index c61df5f647..fcd9a69a94 100644
--- a/Kernel/Lock.h
+++ b/Kernel/Lock.h
@@ -2,9 +2,9 @@
#include <AK/Assertions.h>
#include <AK/Types.h>
-#include <Kernel/i386.h>
-#include <Kernel/Scheduler.h>
#include <Kernel/KSyms.h>
+#include <Kernel/Scheduler.h>
+#include <Kernel/i386.h>
class Thread;
extern Thread* current;
@@ -14,16 +14,19 @@ static inline dword CAS(volatile dword* mem, dword newval, dword oldval)
dword ret;
asm volatile(
"cmpxchgl %2, %1"
- :"=a"(ret), "+m"(*mem)
- :"r"(newval), "0"(oldval)
- :"cc", "memory");
+ : "=a"(ret), "+m"(*mem)
+ : "r"(newval), "0"(oldval)
+ : "cc", "memory");
return ret;
}
class Lock {
public:
- Lock(const char* name = nullptr) : m_name(name) { }
- ~Lock() { }
+ Lock(const char* name = nullptr)
+ : m_name(name)
+ {
+ }
+ ~Lock() {}
void lock();
void unlock();
@@ -40,7 +43,11 @@ private:
class Locker {
public:
- [[gnu::always_inline]] inline explicit Locker(Lock& l) : m_lock(l) { lock(); }
+ [[gnu::always_inline]] inline explicit Locker(Lock& l)
+ : m_lock(l)
+ {
+ lock();
+ }
[[gnu::always_inline]] inline ~Locker() { unlock(); }
[[gnu::always_inline]] inline void unlock() { m_lock.unlock(); }
[[gnu::always_inline]] inline void lock() { m_lock.lock(); }
@@ -123,8 +130,11 @@ inline bool Lock::unlock_if_locked()
template<typename T>
class Lockable {
public:
- Lockable() { }
- Lockable(T&& resource) : m_resource(move(resource)) { }
+ Lockable() {}
+ Lockable(T&& resource)
+ : m_resource(move(resource))
+ {
+ }
Lock& lock() { return m_lock; }
T& resource() { return m_resource; }
@@ -138,4 +148,3 @@ private:
T m_resource;
Lock m_lock;
};
-
diff --git a/Kernel/Net/ARP.h b/Kernel/Net/ARP.h
index ddfcd54f63..2fecc2b0a0 100644
--- a/Kernel/Net/ARP.h
+++ b/Kernel/Net/ARP.h
@@ -1,23 +1,26 @@
#pragma once
-#include <Kernel/Net/MACAddress.h>
-#include <Kernel/Net/IPv4.h>
#include <Kernel/Net/EtherType.h>
+#include <Kernel/Net/IPv4.h>
+#include <Kernel/Net/MACAddress.h>
struct ARPOperation {
-enum : word {
- Request = 1,
- Response = 2,
-};
+ enum : word
+ {
+ Request = 1,
+ Response = 2,
+ };
};
struct ARPHardwareType {
-enum : word {
- Ethernet = 1,
-};
+ enum : word
+ {
+ Ethernet = 1,
+ };
};
-class [[gnu::packed]] ARPPacket {
+class [[gnu::packed]] ARPPacket
+{
public:
word hardware_type() const { return ntohs(m_hardware_type); }
void set_hardware_type(word w) { m_hardware_type = htons(w); }
diff --git a/Kernel/Net/E1000NetworkAdapter.h b/Kernel/Net/E1000NetworkAdapter.h
index cf9bdb3ba5..e2050853d5 100644
--- a/Kernel/Net/E1000NetworkAdapter.h
+++ b/Kernel/Net/E1000NetworkAdapter.h
@@ -1,12 +1,13 @@
#pragma once
+#include <AK/OwnPtr.h>
+#include <Kernel/IRQHandler.h>
#include <Kernel/Net/NetworkAdapter.h>
#include <Kernel/PCI.h>
#include <Kernel/VM/MemoryManager.h>
-#include <Kernel/IRQHandler.h>
-#include <AK/OwnPtr.h>
-class E1000NetworkAdapter final : public NetworkAdapter, public IRQHandler {
+class E1000NetworkAdapter final : public NetworkAdapter
+ , public IRQHandler {
public:
static E1000NetworkAdapter* the();
@@ -21,7 +22,8 @@ private:
virtual void handle_irq() override;
virtual const char* class_name() const override { return "E1000NetworkAdapter"; }
- struct [[gnu::packed]] e1000_rx_desc {
+ struct [[gnu::packed]] e1000_rx_desc
+ {
volatile uint64_t addr { 0 };
volatile uint16_t length { 0 };
volatile uint16_t checksum { 0 };
@@ -30,7 +32,8 @@ private:
volatile uint16_t special { 0 };
};
- struct [[gnu::packed]] e1000_tx_desc {
+ struct [[gnu::packed]] e1000_tx_desc
+ {
volatile uint64_t addr { 0 };
volatile uint16_t length { 0 };
volatile uint8_t cso { 0 };
diff --git a/Kernel/Net/EtherType.h b/Kernel/Net/EtherType.h
index 027967ff77..42edc16427 100644
--- a/Kernel/Net/EtherType.h
+++ b/Kernel/Net/EtherType.h
@@ -3,8 +3,9 @@
#include <AK/Types.h>
struct EtherType {
-enum : word {
- ARP = 0x0806,
- IPv4 = 0x0800,
-};
+ enum : word
+ {
+ ARP = 0x0806,
+ IPv4 = 0x0800,
+ };
};
diff --git a/Kernel/Net/EthernetFrameHeader.h b/Kernel/Net/EthernetFrameHeader.h
index 18afc9242b..137285230e 100644
--- a/Kernel/Net/EthernetFrameHeader.h
+++ b/Kernel/Net/EthernetFrameHeader.h
@@ -1,12 +1,13 @@
#pragma once
-#include <Kernel/Net/MACAddress.h>
#include <AK/NetworkOrdered.h>
+#include <Kernel/Net/MACAddress.h>
-class [[gnu::packed]] EthernetFrameHeader {
+class [[gnu::packed]] EthernetFrameHeader
+{
public:
- EthernetFrameHeader() { }
- ~EthernetFrameHeader() { }
+ EthernetFrameHeader() {}
+ ~EthernetFrameHeader() {}
MACAddress destination() const { return m_destination; }
void set_destination(const MACAddress& address) { m_destination = address; }
@@ -28,4 +29,3 @@ private:
};
static_assert(sizeof(EthernetFrameHeader) == 14);
-
diff --git a/Kernel/Net/ICMP.h b/Kernel/Net/ICMP.h
index efc6cf4ca6..2433626a64 100644
--- a/Kernel/Net/ICMP.h
+++ b/Kernel/Net/ICMP.h
@@ -1,19 +1,21 @@
#pragma once
-#include <Kernel/Net/MACAddress.h>
#include <Kernel/Net/IPv4.h>
+#include <Kernel/Net/MACAddress.h>
struct ICMPType {
-enum {
- EchoReply = 0,
- EchoRequest = 8,
-};
+ enum
+ {
+ EchoReply = 0,
+ EchoRequest = 8,
+ };
};
-class [[gnu::packed]] ICMPHeader {
+class [[gnu::packed]] ICMPHeader
+{
public:
- ICMPHeader() { }
- ~ICMPHeader() { }
+ ICMPHeader() {}
+ ~ICMPHeader() {}
byte type() const { return m_type; }
void set_type(byte b) { m_type = b; }
@@ -36,7 +38,8 @@ private:
static_assert(sizeof(ICMPHeader) == 4);
-struct [[gnu::packed]] ICMPEchoPacket {
+struct [[gnu::packed]] ICMPEchoPacket
+{
ICMPHeader header;
NetworkOrdered<word> identifier;
NetworkOrdered<word> sequence_number;
diff --git a/Kernel/Net/IPv4.h b/Kernel/Net/IPv4.h
index 61232b78e2..0c858d94d0 100644
--- a/Kernel/Net/IPv4.h
+++ b/Kernel/Net/IPv4.h
@@ -5,7 +5,8 @@
#include <AK/NetworkOrdered.h>
#include <AK/Types.h>
-enum class IPv4Protocol : word {
+enum class IPv4Protocol : word
+{
ICMP = 1,
TCP = 6,
UDP = 17,
@@ -13,9 +14,10 @@ enum class IPv4Protocol : word {
NetworkOrdered<word> internet_checksum(const void*, size_t);
-class [[gnu::packed]] IPv4Address {
+class [[gnu::packed]] IPv4Address
+{
public:
- IPv4Address() { }
+ IPv4Address() {}
IPv4Address(const byte data[4])
{
m_data[0] = data[0];
@@ -64,7 +66,8 @@ struct Traits<IPv4Address> {
}
-class [[gnu::packed]] IPv4Packet {
+class [[gnu::packed]] IPv4Packet
+{
public:
byte version() const { return (m_version_and_ihl >> 4) & 0xf; }
void set_version(byte version) { m_version_and_ihl = (m_version_and_ihl & 0x0f) | (version << 4); }
diff --git a/Kernel/Net/IPv4Socket.h b/Kernel/Net/IPv4Socket.h
index 33b4f9d420..4f18d63113 100644
--- a/Kernel/Net/IPv4Socket.h
+++ b/Kernel/Net/IPv4Socket.h
@@ -1,11 +1,11 @@
#pragma once
-#include <Kernel/Net/Socket.h>
-#include <Kernel/DoubleBuffer.h>
-#include <Kernel/Net/IPv4.h>
#include <AK/HashMap.h>
-#include <Kernel/Lock.h>
#include <AK/SinglyLinkedList.h>
+#include <Kernel/DoubleBuffer.h>
+#include <Kernel/Lock.h>
+#include <Kernel/Net/IPv4.h>
+#include <Kernel/Net/Socket.h>
class IPv4SocketHandle;
class TCPSocketHandle;
@@ -86,7 +86,7 @@ private:
class IPv4SocketHandle : public SocketHandle {
public:
- IPv4SocketHandle() { }
+ IPv4SocketHandle() {}
IPv4SocketHandle(RetainPtr<IPv4Socket>&& socket)
: SocketHandle(move(socket))
diff --git a/Kernel/Net/LocalSocket.h b/Kernel/Net/LocalSocket.h
index db481912f2..3328fd4eba 100644
--- a/Kernel/Net/LocalSocket.h
+++ b/Kernel/Net/LocalSocket.h
@@ -1,7 +1,7 @@
#pragma once
-#include <Kernel/Net/Socket.h>
#include <Kernel/DoubleBuffer.h>
+#include <Kernel/Net/Socket.h>
class FileDescriptor;
@@ -39,4 +39,3 @@ private:
DoubleBuffer m_for_client;
DoubleBuffer m_for_server;
};
-
diff --git a/Kernel/Net/MACAddress.h b/Kernel/Net/MACAddress.h
index 0c2de93b27..3cf906decb 100644
--- a/Kernel/Net/MACAddress.h
+++ b/Kernel/Net/MACAddress.h
@@ -1,18 +1,19 @@
#pragma once
-#include <AK/Assertions.h>
#include <AK/AKString.h>
+#include <AK/Assertions.h>
#include <AK/Types.h>
#include <Kernel/StdLib.h>
-class [[gnu::packed]] MACAddress {
+class [[gnu::packed]] MACAddress
+{
public:
- MACAddress() { }
+ MACAddress() {}
MACAddress(const byte data[6])
{
memcpy(m_data, data, 6);
}
- ~MACAddress() { }
+ ~MACAddress() {}
byte operator[](int i) const
{
diff --git a/Kernel/Net/NetworkAdapter.h b/Kernel/Net/NetworkAdapter.h
index 3a7d0755c7..fd24d7ca41 100644
--- a/Kernel/Net/NetworkAdapter.h
+++ b/Kernel/Net/NetworkAdapter.h
@@ -3,19 +3,23 @@
#include <AK/ByteBuffer.h>
#include <AK/SinglyLinkedList.h>
#include <AK/Types.h>
-#include <Kernel/Net/MACAddress.h>
-#include <Kernel/Net/IPv4.h>
+#include <Kernel/Alarm.h>
#include <Kernel/Net/ARP.h>
#include <Kernel/Net/ICMP.h>
-#include <Kernel/Alarm.h>
+#include <Kernel/Net/IPv4.h>
+#include <Kernel/Net/MACAddress.h>
class NetworkAdapter;
class PacketQueueAlarm final : public Alarm {
public:
- PacketQueueAlarm(NetworkAdapter& adapter) : m_adapter(adapter) { }
- virtual ~PacketQueueAlarm() override { }
+ PacketQueueAlarm(NetworkAdapter& adapter)
+ : m_adapter(adapter)
+ {
+ }
+ virtual ~PacketQueueAlarm() override {}
virtual bool is_ringing() const override;
+
private:
NetworkAdapter& m_adapter;
};
diff --git a/Kernel/Net/Socket.h b/Kernel/Net/Socket.h
index 0fb9544cbb..45693a2ffc 100644
--- a/Kernel/Net/Socket.h
+++ b/Kernel/Net/Socket.h
@@ -1,16 +1,27 @@
#pragma once
-#include <Kernel/Lock.h>
-#include <AK/Retainable.h>
-#include <AK/RetainPtr.h>
#include <AK/HashTable.h>
+#include <AK/RetainPtr.h>
+#include <AK/Retainable.h>
#include <AK/Vector.h>
#include <Kernel/File.h>
-#include <Kernel/UnixTypes.h>
#include <Kernel/KResult.h>
+#include <Kernel/Lock.h>
+#include <Kernel/UnixTypes.h>
-enum class SocketRole : byte { None, Listener, Accepted, Connected, Connecting };
-enum class ShouldBlock { No = 0, Yes = 1 };
+enum class SocketRole : byte
+{
+ None,
+ Listener,
+ Accepted,
+ Connected,
+ Connecting
+};
+enum class ShouldBlock
+{
+ No = 0,
+ Yes = 1
+};
class FileDescriptor;
@@ -85,7 +96,7 @@ private:
class SocketHandle {
public:
- SocketHandle() { }
+ SocketHandle() {}
SocketHandle(RetainPtr<Socket>&& socket)
: m_socket(move(socket))
diff --git a/Kernel/Net/TCP.h b/Kernel/Net/TCP.h
index e2eac61449..8138ed3d52 100644
--- a/Kernel/Net/TCP.h
+++ b/Kernel/Net/TCP.h
@@ -3,20 +3,22 @@
#include <Kernel/Net/IPv4.h>
struct TCPFlags {
-enum : word {
- FIN = 0x01,
- SYN = 0x02,
- RST = 0x04,
- PUSH = 0x08,
- ACK = 0x10,
- URG = 0x20
-};
+ enum : word
+ {
+ FIN = 0x01,
+ SYN = 0x02,
+ RST = 0x04,
+ PUSH = 0x08,
+ ACK = 0x10,
+ URG = 0x20
+ };
};
-class [[gnu::packed]] TCPPacket {
+class [[gnu::packed]] TCPPacket
+{
public:
- TCPPacket() { }
- ~TCPPacket() { }
+ TCPPacket() {}
+ ~TCPPacket() {}
size_t header_size() const { return data_offset() * sizeof(dword); }
diff --git a/Kernel/Net/TCPSocket.h b/Kernel/Net/TCPSocket.h
index c248b9d9ba..35856d7ae8 100644
--- a/Kernel/Net/TCPSocket.h
+++ b/Kernel/Net/TCPSocket.h
@@ -7,7 +7,8 @@ public:
static Retained<TCPSocket> create(int protocol);
virtual ~TCPSocket() override;
- enum class State {
+ enum class State
+ {
Disconnected,
Connecting,
Connected,
@@ -47,7 +48,7 @@ private:
class TCPSocketHandle : public SocketHandle {
public:
- TCPSocketHandle() { }
+ TCPSocketHandle() {}
TCPSocketHandle(RetainPtr<TCPSocket>&& socket)
: SocketHandle(move(socket))
diff --git a/Kernel/Net/UDP.h b/Kernel/Net/UDP.h
index ba6d02af37..7ec39719cd 100644
--- a/Kernel/Net/UDP.h
+++ b/Kernel/Net/UDP.h
@@ -2,10 +2,11 @@
#include <Kernel/Net/IPv4.h>
-class [[gnu::packed]] UDPPacket {
+class [[gnu::packed]] UDPPacket
+{
public:
- UDPPacket() { }
- ~UDPPacket() { }
+ UDPPacket() {}
+ ~UDPPacket() {}
word source_port() const { return m_source_port; }
void set_source_port(word port) { m_source_port = port; }
diff --git a/Kernel/Net/UDPSocket.h b/Kernel/Net/UDPSocket.h
index ea94887754..a76eaa7fe7 100644
--- a/Kernel/Net/UDPSocket.h
+++ b/Kernel/Net/UDPSocket.h
@@ -25,7 +25,7 @@ private:
class UDPSocketHandle : public SocketHandle {
public:
- UDPSocketHandle() { }
+ UDPSocketHandle() {}
UDPSocketHandle(RetainPtr<UDPSocket>&& socket)
: SocketHandle(move(socket))
@@ -46,4 +46,3 @@ public:
UDPSocket& socket() { return static_cast<UDPSocket&>(SocketHandle::socket()); }
const UDPSocket& socket() const { return static_cast<const UDPSocket&>(SocketHandle::socket()); }
};
-
diff --git a/Kernel/PCI.h b/Kernel/PCI.h
index e8330d4245..f295fb8f4d 100644
--- a/Kernel/PCI.h
+++ b/Kernel/PCI.h
@@ -18,8 +18,13 @@ struct ID {
};
struct Address {
- Address() { }
- Address(byte bus, byte slot, byte function) : m_bus(bus), m_slot(slot), m_function(function) { }
+ Address() {}
+ Address(byte bus, byte slot, byte function)
+ : m_bus(bus)
+ , m_slot(slot)
+ , m_function(function)
+ {
+ }
bool is_null() const { return !m_bus && !m_slot && !m_function; }
operator bool() const { return !is_null(); }
diff --git a/Kernel/PIC.h b/Kernel/PIC.h
index 2f6304139c..7b0dcbe6a5 100644
--- a/Kernel/PIC.h
+++ b/Kernel/PIC.h
@@ -15,7 +15,10 @@ word get_irr();
class IRQHandlerScope {
public:
- explicit IRQHandlerScope(byte irq) : m_irq(irq) { }
+ explicit IRQHandlerScope(byte irq)
+ : m_irq(irq)
+ {
+ }
~IRQHandlerScope() { PIC::eoi(m_irq); }
private:
diff --git a/Kernel/PhysicalAddress.h b/Kernel/PhysicalAddress.h
index 1f8ff12b4f..6fd869dca6 100644
--- a/Kernel/PhysicalAddress.h
+++ b/Kernel/PhysicalAddress.h
@@ -2,8 +2,11 @@
class PhysicalAddress {
public:
- PhysicalAddress() { }
- explicit PhysicalAddress(dword address) : m_address(address) { }
+ PhysicalAddress() {}
+ explicit PhysicalAddress(dword address)
+ : m_address(address)
+ {
+ }
PhysicalAddress offset(dword o) const { return PhysicalAddress(m_address + o); }
dword get() const { return m_address; }
@@ -22,4 +25,3 @@ public:
private:
dword m_address { 0 };
};
-
diff --git a/Kernel/Process.h b/Kernel/Process.h
index 328cb3a788..242219d889 100644
--- a/Kernel/Process.h
+++ b/Kernel/Process.h
@@ -1,18 +1,18 @@
#pragma once
-#include <AK/Types.h>
-#include <AK/InlineLinkedList.h>
#include <AK/AKString.h>
+#include <AK/InlineLinkedList.h>
+#include <AK/Types.h>
#include <AK/Vector.h>
#include <AK/WeakPtr.h>
#include <AK/Weakable.h>
#include <Kernel/FileSystem/VirtualFileSystem.h>
-#include <Kernel/VM/RangeAllocator.h>
-#include <Kernel/TTY/TTY.h>
+#include <Kernel/Lock.h>
#include <Kernel/Syscall.h>
-#include <Kernel/UnixTypes.h>
+#include <Kernel/TTY/TTY.h>
#include <Kernel/Thread.h>
-#include <Kernel/Lock.h>
+#include <Kernel/UnixTypes.h>
+#include <Kernel/VM/RangeAllocator.h>
#include <LibC/signal_numbers.h>
class ELFLoader;
@@ -24,9 +24,11 @@ class ProcessTracer;
void kgettimeofday(timeval&);
-class Process : public InlineLinkedListNode<Process>, public Weakable<Process> {
+class Process : public InlineLinkedListNode<Process>
+ , public Weakable<Process> {
friend class InlineLinkedListNode<Process>;
friend class Thread;
+
public:
static Process* create_kernel_process(String&& name, void (*entry)());
static Process* create_user_process(const String& path, uid_t, gid_t, pid_t ppid, int& error, Vector<String>&& arguments = Vector<String>(), Vector<String>&& environment = Vector<String>(), TTY* = nullptr);
@@ -35,14 +37,16 @@ public:
static Vector<pid_t> all_pids();
static Vector<Process*> all_processes();
- enum Priority {
+ enum Priority
+ {
IdlePriority,
LowPriority,
NormalPriority,
HighPriority,
};
- enum RingLevel {
+ enum RingLevel
+ {
Ring0 = 0,
Ring3 = 3,
};
@@ -83,10 +87,14 @@ public:
FileDescriptor* file_descriptor(int fd);
const FileDescriptor* file_descriptor(int fd) const;
- template<typename Callback> static void for_each(Callback);
- template<typename Callback> static void for_each_in_pgrp(pid_t, Callback);
- template<typename Callback> void for_each_child(Callback);
- template<typename Callback> void for_each_thread(Callback) const;
+ template<typename Callback>
+ static void for_each(Callback);
+ template<typename Callback>
+ static void for_each_in_pgrp(pid_t, Callback);
+ template<typename Callback>
+ void for_each_child(Callback);
+ template<typename Callback>
+ void for_each_thread(Callback) const;
void die();
void finalize();
@@ -179,7 +187,7 @@ public:
int sys$getsockname(int sockfd, sockaddr* addr, socklen_t* addrlen);
int sys$getpeername(int sockfd, sockaddr* addr, socklen_t* addrlen);
int sys$restore_signal_mask(dword mask);
- int sys$create_thread(int(*)(void*), void*);
+ int sys$create_thread(int (*)(void*), void*);
void sys$exit_thread(int code);
int sys$rename(const char* oldpath, const char* newpath);
int sys$systrace(pid_t);
@@ -216,8 +224,10 @@ public:
bool validate_read(const void*, ssize_t) const;
bool validate_write(void*, ssize_t) const;
bool validate_read_str(const char* str);
- template<typename T> bool validate_read_typed(T* value, size_t count = 1) { return validate_read(value, sizeof(T) * count); }
- template<typename T> bool validate_write_typed(T* value, size_t count = 1) { return validate_write(value, sizeof(T) * count); }
+ template<typename T>
+ bool validate_read_typed(T* value, size_t count = 1) { return validate_read(value, sizeof(T) * count); }
+ template<typename T>
+ bool validate_write_typed(T* value, size_t count = 1) { return validate_write(value, sizeof(T) * count); }
Inode& cwd_inode();
Inode* executable_inode() { return m_executable.ptr(); }
@@ -365,6 +375,7 @@ public:
Process* operator->() { return &m_process; }
Process& operator*() { return m_process; }
+
private:
Process& m_process;
};
diff --git a/Kernel/ProcessTracer.h b/Kernel/ProcessTracer.h
index 9db8aa60a4..b0b0321b67 100644
--- a/Kernel/ProcessTracer.h
+++ b/Kernel/ProcessTracer.h
@@ -1,7 +1,7 @@
#pragma once
-#include <Kernel/File.h>
#include <AK/CircularQueue.h>
+#include <Kernel/File.h>
#include <Kernel/UnixTypes.h>
class ProcessTracer : public File {
diff --git a/Kernel/RTC.h b/Kernel/RTC.h
index 7fe25b3392..3ae5a441a5 100644
--- a/Kernel/RTC.h
+++ b/Kernel/RTC.h
@@ -10,4 +10,3 @@ time_t boot_time();
void read_registers(unsigned& year, unsigned& month, unsigned& day, unsigned& hour, unsigned& minute, unsigned& second);
}
-
diff --git a/Kernel/Scheduler.h b/Kernel/Scheduler.h
index da3c5c8e3e..76b4a8d070 100644
--- a/Kernel/Scheduler.h
+++ b/Kernel/Scheduler.h
@@ -26,6 +26,7 @@ public:
static Process* colonel();
static bool is_active();
static void beep();
+
private:
static void prepare_for_iret_to_new_process();
};
diff --git a/Kernel/SharedMemory.h b/Kernel/SharedMemory.h
index ffbb7ac468..4c8520ce12 100644
--- a/Kernel/SharedMemory.h
+++ b/Kernel/SharedMemory.h
@@ -1,11 +1,11 @@
#pragma once
-#include <AK/Retainable.h>
-#include <AK/RetainPtr.h>
#include <AK/AKString.h>
+#include <AK/RetainPtr.h>
+#include <AK/Retainable.h>
+#include <Kernel/File.h>
#include <Kernel/KResult.h>
#include <Kernel/UnixTypes.h>
-#include <Kernel/File.h>
class VMObject;
diff --git a/Kernel/StdLib.h b/Kernel/StdLib.h
index 3f32de4797..6fa43e3563 100644
--- a/Kernel/StdLib.h
+++ b/Kernel/StdLib.h
@@ -12,12 +12,11 @@ char* strncpy(char*, const char*, size_t);
int strcmp(char const*, const char*);
size_t strlen(const char*);
void* memset(void*, int, size_t);
-char *strdup(const char*);
+char* strdup(const char*);
int memcmp(const void*, const void*, size_t);
char* strrchr(const char* str, int ch);
void* memmove(void* dest, const void* src, size_t n);
inline word ntohs(word w) { return (w & 0xff) << 8 | ((w >> 8) & 0xff); }
inline word htons(word w) { return (w & 0xff) << 8 | ((w >> 8) & 0xff); }
-
}
diff --git a/Kernel/Syscall.h b/Kernel/Syscall.h
index 2d093f6a74..c6ff1bc686 100644
--- a/Kernel/Syscall.h
+++ b/Kernel/Syscall.h
@@ -3,116 +3,116 @@
#include <AK/Types.h>
#include <LibC/fd_set.h>
-#define ENUMERATE_SYSCALLS \
- __ENUMERATE_SYSCALL(sleep) \
- __ENUMERATE_SYSCALL(yield) \
- __ENUMERATE_SYSCALL(putch) \
- __ENUMERATE_SYSCALL(open) \
- __ENUMERATE_SYSCALL(close) \
- __ENUMERATE_SYSCALL(read) \
- __ENUMERATE_SYSCALL(lseek) \
- __ENUMERATE_SYSCALL(kill) \
- __ENUMERATE_SYSCALL(getuid) \
- __ENUMERATE_SYSCALL(exit) \
- __ENUMERATE_SYSCALL(getgid) \
- __ENUMERATE_SYSCALL(getpid) \
- __ENUMERATE_SYSCALL(waitpid) \
- __ENUMERATE_SYSCALL(mmap) \
- __ENUMERATE_SYSCALL(munmap) \
- __ENUMERATE_SYSCALL(get_dir_entries) \
- __ENUMERATE_SYSCALL(lstat) \
- __ENUMERATE_SYSCALL(getcwd) \
- __ENUMERATE_SYSCALL(gettimeofday) \
- __ENUMERATE_SYSCALL(gethostname) \
- __ENUMERATE_SYSCALL(chdir) \
- __ENUMERATE_SYSCALL(uname) \
- __ENUMERATE_SYSCALL(set_mmap_name) \
- __ENUMERATE_SYSCALL(readlink) \
- __ENUMERATE_SYSCALL(write) \
- __ENUMERATE_SYSCALL(ttyname_r) \
- __ENUMERATE_SYSCALL(stat) \
- __ENUMERATE_SYSCALL(getsid) \
- __ENUMERATE_SYSCALL(setsid) \
- __ENUMERATE_SYSCALL(getpgid) \
- __ENUMERATE_SYSCALL(setpgid) \
- __ENUMERATE_SYSCALL(getpgrp) \
- __ENUMERATE_SYSCALL(fork) \
- __ENUMERATE_SYSCALL(execve) \
- __ENUMERATE_SYSCALL(geteuid) \
- __ENUMERATE_SYSCALL(getegid) \
- __ENUMERATE_SYSCALL(isatty) \
- __ENUMERATE_SYSCALL(getdtablesize) \
- __ENUMERATE_SYSCALL(dup) \
- __ENUMERATE_SYSCALL(dup2) \
- __ENUMERATE_SYSCALL(sigaction) \
- __ENUMERATE_SYSCALL(getppid) \
- __ENUMERATE_SYSCALL(umask) \
- __ENUMERATE_SYSCALL(getgroups) \
- __ENUMERATE_SYSCALL(setgroups) \
- __ENUMERATE_SYSCALL(sigreturn) \
- __ENUMERATE_SYSCALL(sigprocmask) \
- __ENUMERATE_SYSCALL(sigpending) \
- __ENUMERATE_SYSCALL(pipe) \
- __ENUMERATE_SYSCALL(killpg) \
- __ENUMERATE_SYSCALL(setuid) \
- __ENUMERATE_SYSCALL(setgid) \
- __ENUMERATE_SYSCALL(alarm) \
- __ENUMERATE_SYSCALL(fstat) \
- __ENUMERATE_SYSCALL(access) \
- __ENUMERATE_SYSCALL(fcntl) \
- __ENUMERATE_SYSCALL(ioctl) \
- __ENUMERATE_SYSCALL(mkdir) \
- __ENUMERATE_SYSCALL(times) \
- __ENUMERATE_SYSCALL(utime) \
- __ENUMERATE_SYSCALL(sync) \
- __ENUMERATE_SYSCALL(ptsname_r) \
- __ENUMERATE_SYSCALL(select) \
- __ENUMERATE_SYSCALL(unlink) \
- __ENUMERATE_SYSCALL(poll) \
- __ENUMERATE_SYSCALL(read_tsc) \
- __ENUMERATE_SYSCALL(rmdir) \
- __ENUMERATE_SYSCALL(chmod) \
- __ENUMERATE_SYSCALL(usleep) \
- __ENUMERATE_SYSCALL(socket) \
- __ENUMERATE_SYSCALL(bind) \
- __ENUMERATE_SYSCALL(accept) \
- __ENUMERATE_SYSCALL(listen) \
- __ENUMERATE_SYSCALL(connect) \
- __ENUMERATE_SYSCALL(create_shared_buffer) \
- __ENUMERATE_SYSCALL(get_shared_buffer) \
- __ENUMERATE_SYSCALL(release_shared_buffer) \
- __ENUMERATE_SYSCALL(link) \
- __ENUMERATE_SYSCALL(chown) \
- __ENUMERATE_SYSCALL(fchmod) \
- __ENUMERATE_SYSCALL(symlink) \
- __ENUMERATE_SYSCALL(restore_signal_mask) \
+#define ENUMERATE_SYSCALLS \
+ __ENUMERATE_SYSCALL(sleep) \
+ __ENUMERATE_SYSCALL(yield) \
+ __ENUMERATE_SYSCALL(putch) \
+ __ENUMERATE_SYSCALL(open) \
+ __ENUMERATE_SYSCALL(close) \
+ __ENUMERATE_SYSCALL(read) \
+ __ENUMERATE_SYSCALL(lseek) \
+ __ENUMERATE_SYSCALL(kill) \
+ __ENUMERATE_SYSCALL(getuid) \
+ __ENUMERATE_SYSCALL(exit) \
+ __ENUMERATE_SYSCALL(getgid) \
+ __ENUMERATE_SYSCALL(getpid) \
+ __ENUMERATE_SYSCALL(waitpid) \
+ __ENUMERATE_SYSCALL(mmap) \
+ __ENUMERATE_SYSCALL(munmap) \
+ __ENUMERATE_SYSCALL(get_dir_entries) \
+ __ENUMERATE_SYSCALL(lstat) \
+ __ENUMERATE_SYSCALL(getcwd) \
+ __ENUMERATE_SYSCALL(gettimeofday) \
+ __ENUMERATE_SYSCALL(gethostname) \
+ __ENUMERATE_SYSCALL(chdir) \
+ __ENUMERATE_SYSCALL(uname) \
+ __ENUMERATE_SYSCALL(set_mmap_name) \
+ __ENUMERATE_SYSCALL(readlink) \
+ __ENUMERATE_SYSCALL(write) \
+ __ENUMERATE_SYSCALL(ttyname_r) \
+ __ENUMERATE_SYSCALL(stat) \
+ __ENUMERATE_SYSCALL(getsid) \
+ __ENUMERATE_SYSCALL(setsid) \
+ __ENUMERATE_SYSCALL(getpgid) \
+ __ENUMERATE_SYSCALL(setpgid) \
+ __ENUMERATE_SYSCALL(getpgrp) \
+ __ENUMERATE_SYSCALL(fork) \
+ __ENUMERATE_SYSCALL(execve) \
+ __ENUMERATE_SYSCALL(geteuid) \
+ __ENUMERATE_SYSCALL(getegid) \
+ __ENUMERATE_SYSCALL(isatty) \
+ __ENUMERATE_SYSCALL(getdtablesize) \
+ __ENUMERATE_SYSCALL(dup) \
+ __ENUMERATE_SYSCALL(dup2) \
+ __ENUMERATE_SYSCALL(sigaction) \
+ __ENUMERATE_SYSCALL(getppid) \
+ __ENUMERATE_SYSCALL(umask) \
+ __ENUMERATE_SYSCALL(getgroups) \
+ __ENUMERATE_SYSCALL(setgroups) \
+ __ENUMERATE_SYSCALL(sigreturn) \
+ __ENUMERATE_SYSCALL(sigprocmask) \
+ __ENUMERATE_SYSCALL(sigpending) \
+ __ENUMERATE_SYSCALL(pipe) \
+ __ENUMERATE_SYSCALL(killpg) \
+ __ENUMERATE_SYSCALL(setuid) \
+ __ENUMERATE_SYSCALL(setgid) \
+ __ENUMERATE_SYSCALL(alarm) \
+ __ENUMERATE_SYSCALL(fstat) \
+ __ENUMERATE_SYSCALL(access) \
+ __ENUMERATE_SYSCALL(fcntl) \
+ __ENUMERATE_SYSCALL(ioctl) \
+ __ENUMERATE_SYSCALL(mkdir) \
+ __ENUMERATE_SYSCALL(times) \
+ __ENUMERATE_SYSCALL(utime) \
+ __ENUMERATE_SYSCALL(sync) \
+ __ENUMERATE_SYSCALL(ptsname_r) \
+ __ENUMERATE_SYSCALL(select) \
+ __ENUMERATE_SYSCALL(unlink) \
+ __ENUMERATE_SYSCALL(poll) \
+ __ENUMERATE_SYSCALL(read_tsc) \
+ __ENUMERATE_SYSCALL(rmdir) \
+ __ENUMERATE_SYSCALL(chmod) \
+ __ENUMERATE_SYSCALL(usleep) \
+ __ENUMERATE_SYSCALL(socket) \
+ __ENUMERATE_SYSCALL(bind) \
+ __ENUMERATE_SYSCALL(accept) \
+ __ENUMERATE_SYSCALL(listen) \
+ __ENUMERATE_SYSCALL(connect) \
+ __ENUMERATE_SYSCALL(create_shared_buffer) \
+ __ENUMERATE_SYSCALL(get_shared_buffer) \
+ __ENUMERATE_SYSCALL(release_shared_buffer) \
+ __ENUMERATE_SYSCALL(link) \
+ __ENUMERATE_SYSCALL(chown) \
+ __ENUMERATE_SYSCALL(fchmod) \
+ __ENUMERATE_SYSCALL(symlink) \
+ __ENUMERATE_SYSCALL(restore_signal_mask) \
__ENUMERATE_SYSCALL(get_shared_buffer_size) \
- __ENUMERATE_SYSCALL(seal_shared_buffer) \
- __ENUMERATE_SYSCALL(sendto) \
- __ENUMERATE_SYSCALL(recvfrom) \
- __ENUMERATE_SYSCALL(getsockopt) \
- __ENUMERATE_SYSCALL(setsockopt) \
- __ENUMERATE_SYSCALL(create_thread) \
- __ENUMERATE_SYSCALL(gettid) \
- __ENUMERATE_SYSCALL(donate) \
- __ENUMERATE_SYSCALL(rename) \
- __ENUMERATE_SYSCALL(shm_open) \
- __ENUMERATE_SYSCALL(shm_close) \
- __ENUMERATE_SYSCALL(ftruncate) \
- __ENUMERATE_SYSCALL(systrace) \
- __ENUMERATE_SYSCALL(exit_thread) \
- __ENUMERATE_SYSCALL(mknod) \
- __ENUMERATE_SYSCALL(writev) \
- __ENUMERATE_SYSCALL(beep) \
- __ENUMERATE_SYSCALL(getsockname) \
- __ENUMERATE_SYSCALL(getpeername) \
-
+ __ENUMERATE_SYSCALL(seal_shared_buffer) \
+ __ENUMERATE_SYSCALL(sendto) \
+ __ENUMERATE_SYSCALL(recvfrom) \
+ __ENUMERATE_SYSCALL(getsockopt) \
+ __ENUMERATE_SYSCALL(setsockopt) \
+ __ENUMERATE_SYSCALL(create_thread) \
+ __ENUMERATE_SYSCALL(gettid) \
+ __ENUMERATE_SYSCALL(donate) \
+ __ENUMERATE_SYSCALL(rename) \
+ __ENUMERATE_SYSCALL(shm_open) \
+ __ENUMERATE_SYSCALL(shm_close) \
+ __ENUMERATE_SYSCALL(ftruncate) \
+ __ENUMERATE_SYSCALL(systrace) \
+ __ENUMERATE_SYSCALL(exit_thread) \
+ __ENUMERATE_SYSCALL(mknod) \
+ __ENUMERATE_SYSCALL(writev) \
+ __ENUMERATE_SYSCALL(beep) \
+ __ENUMERATE_SYSCALL(getsockname) \
+ __ENUMERATE_SYSCALL(getpeername)
namespace Syscall {
-enum Function {
+enum Function
+{
#undef __ENUMERATE_SYSCALL
-#define __ENUMERATE_SYSCALL(x) SC_ ##x ,
+#define __ENUMERATE_SYSCALL(x) SC_##x,
ENUMERATE_SYSCALLS
#undef __ENUMERATE_SYSCALL
};
@@ -121,8 +121,10 @@ inline constexpr const char* to_string(Function function)
{
switch (function) {
#undef __ENUMERATE_SYSCALL
-#define __ENUMERATE_SYSCALL(x) case SC_ ##x: return #x;
- ENUMERATE_SYSCALLS
+#define __ENUMERATE_SYSCALL(x) \
+ case SC_##x: \
+ return #x;
+ ENUMERATE_SYSCALLS
#undef __ENUMERATE_SYSCALL
}
return "Unknown";
@@ -152,7 +154,7 @@ struct SC_sendto_params {
const void* data;
size_t data_length;
int flags;
- const void* addr; // const sockaddr*
+ const void* addr; // const sockaddr*
size_t addr_length; // socklen_t
};
@@ -161,7 +163,7 @@ struct SC_recvfrom_params {
void* buffer;
size_t buffer_length;
int flags;
- void* addr; // sockaddr*
+ void* addr; // sockaddr*
void* addr_length; // socklen_t*
};
@@ -187,7 +189,10 @@ int sync();
inline dword invoke(Function function)
{
dword result;
- asm volatile("int $0x82":"=a"(result):"a"(function):"memory");
+ asm volatile("int $0x82"
+ : "=a"(result)
+ : "a"(function)
+ : "memory");
return result;
}
@@ -195,7 +200,10 @@ template<typename T1>
inline dword invoke(Function function, T1 arg1)
{
dword result;
- asm volatile("int $0x82":"=a"(result):"a"(function),"d"((dword)arg1):"memory");
+ asm volatile("int $0x82"
+ : "=a"(result)
+ : "a"(function), "d"((dword)arg1)
+ : "memory");
return result;
}
@@ -203,7 +211,10 @@ template<typename T1, typename T2>
inline dword invoke(Function function, T1 arg1, T2 arg2)
{
dword result;
- asm volatile("int $0x82":"=a"(result):"a"(function),"d"((dword)arg1),"c"((dword)arg2):"memory");
+ asm volatile("int $0x82"
+ : "=a"(result)
+ : "a"(function), "d"((dword)arg1), "c"((dword)arg2)
+ : "memory");
return result;
}
@@ -211,7 +222,10 @@ template<typename T1, typename T2, typename T3>
inline dword invoke(Function function, T1 arg1, T2 arg2, T3 arg3)
{
dword result;
- asm volatile("int $0x82":"=a"(result):"a"(function),"d"((dword)arg1),"c"((dword)arg2),"b"((dword)arg3):"memory");
+ asm volatile("int $0x82"
+ : "=a"(result)
+ : "a"(function), "d"((dword)arg1), "c"((dword)arg2), "b"((dword)arg3)
+ : "memory");
return result;
}
#endif
@@ -219,7 +233,7 @@ inline dword invoke(Function function, T1 arg1, T2 arg2, T3 arg3)
}
#undef __ENUMERATE_SYSCALL
-#define __ENUMERATE_SYSCALL(x) using Syscall::SC_ ##x;
- ENUMERATE_SYSCALLS
+#define __ENUMERATE_SYSCALL(x) using Syscall::SC_##x;
+ENUMERATE_SYSCALLS
#undef __ENUMERATE_SYSCALL
#define syscall Syscall::invoke
diff --git a/Kernel/TTY/PTYMultiplexer.h b/Kernel/TTY/PTYMultiplexer.h
index c5979ba991..1d06d6f4d8 100644
--- a/Kernel/TTY/PTYMultiplexer.h
+++ b/Kernel/TTY/PTYMultiplexer.h
@@ -1,7 +1,7 @@
#pragma once
-#include <Kernel/Devices/CharacterDevice.h>
#include <AK/Badge.h>
+#include <Kernel/Devices/CharacterDevice.h>
#include <Kernel/Lock.h>
class MasterPTY;
diff --git a/Kernel/TTY/SlavePTY.h b/Kernel/TTY/SlavePTY.h
index f764c43649..ffe7ebd8b1 100644
--- a/Kernel/TTY/SlavePTY.h
+++ b/Kernel/TTY/SlavePTY.h
@@ -35,4 +35,3 @@ private:
InodeIdentifier m_devpts_inode_id;
String m_tty_name;
};
-
diff --git a/Kernel/TTY/TTY.h b/Kernel/TTY/TTY.h
index 56fbcb3c6f..e6d489579c 100644
--- a/Kernel/TTY/TTY.h
+++ b/Kernel/TTY/TTY.h
@@ -52,4 +52,3 @@ private:
unsigned short m_rows { 0 };
unsigned short m_columns { 0 };
};
-
diff --git a/Kernel/TTY/VirtualConsole.h b/Kernel/TTY/VirtualConsole.h
index eb0c11b3fe..8e89fac853 100644
--- a/Kernel/TTY/VirtualConsole.h
+++ b/Kernel/TTY/VirtualConsole.h
@@ -1,13 +1,19 @@
#pragma once
-#include <Kernel/TTY/TTY.h>
-#include <Kernel/Devices/KeyboardDevice.h>
#include "Console.h"
+#include <Kernel/Devices/KeyboardDevice.h>
+#include <Kernel/TTY/TTY.h>
-class VirtualConsole final : public TTY, public KeyboardClient, public ConsoleImplementation {
+class VirtualConsole final : public TTY
+ , public KeyboardClient
+ , public ConsoleImplementation {
AK_MAKE_ETERNAL
public:
- enum InitialContents { Cleared, AdoptCurrentVGABuffer };
+ enum InitialContents
+ {
+ Cleared,
+ AdoptCurrentVGABuffer
+ };
VirtualConsole(unsigned index, InitialContents = Cleared);
virtual ~VirtualConsole() override;
@@ -67,7 +73,8 @@ private:
void execute_escape_sequence(byte final);
- enum EscapeState {
+ enum EscapeState
+ {
Normal,
ExpectBracket,
ExpectParameter,
diff --git a/Kernel/Thread.h b/Kernel/Thread.h
index 11091f6d3b..40f7abba11 100644
--- a/Kernel/Thread.h
+++ b/Kernel/Thread.h
@@ -1,15 +1,15 @@
#pragma once
-#include <Kernel/i386.h>
-#include <Kernel/KResult.h>
-#include <Kernel/LinearAddress.h>
-#include <Kernel/UnixTypes.h>
-#include <Kernel/VM/Region.h>
#include <AK/AKString.h>
#include <AK/InlineLinkedList.h>
#include <AK/OwnPtr.h>
#include <AK/RetainPtr.h>
#include <AK/Vector.h>
+#include <Kernel/KResult.h>
+#include <Kernel/LinearAddress.h>
+#include <Kernel/UnixTypes.h>
+#include <Kernel/VM/Region.h>
+#include <Kernel/i386.h>
class Alarm;
class FileDescriptor;
@@ -17,7 +17,11 @@ class Process;
class Region;
class Thread;
-enum class ShouldUnblockThread { No = 0, Yes };
+enum class ShouldUnblockThread
+{
+ No = 0,
+ Yes
+};
struct SignalActionData {
LinearAddress handler_or_sigaction;
@@ -31,6 +35,7 @@ extern InlineLinkedList<Thread>* g_nonrunnable_threads;
class Thread : public InlineLinkedListNode<Thread> {
friend class Process;
friend class Scheduler;
+
public:
explicit Thread(Process&);
~Thread();
@@ -49,7 +54,8 @@ public:
void finalize();
- enum State : byte {
+ enum State : byte
+ {
Invalid = 0,
Runnable,
Running,
@@ -136,11 +142,16 @@ public:
InlineLinkedList<Thread>* thread_list() { return m_thread_list; }
void set_thread_list(InlineLinkedList<Thread>*);
- template<typename Callback> static void for_each_in_state(State, Callback);
- template<typename Callback> static void for_each_living(Callback);
- template<typename Callback> static void for_each_runnable(Callback);
- template<typename Callback> static void for_each_nonrunnable(Callback);
- template<typename Callback> static void for_each(Callback);
+ template<typename Callback>
+ static void for_each_in_state(State, Callback);
+ template<typename Callback>
+ static void for_each_living(Callback);
+ template<typename Callback>
+ static void for_each_runnable(Callback);
+ template<typename Callback>
+ static void for_each_nonrunnable(Callback);
+ template<typename Callback>
+ static void for_each(Callback);
static bool is_runnable_state(Thread::State state)
{
diff --git a/Kernel/UnixTypes.h b/Kernel/UnixTypes.h
index 62ed18d1c6..4e092e8e88 100644
--- a/Kernel/UnixTypes.h
+++ b/Kernel/UnixTypes.h
@@ -56,160 +56,160 @@
#define VEOL2 16
/* c_iflag bits */
-#define IGNBRK 0000001
-#define BRKINT 0000002
-#define IGNPAR 0000004
-#define PARMRK 0000010
-#define INPCK 0000020
-#define ISTRIP 0000040
-#define INLCR 0000100
-#define IGNCR 0000200
-#define ICRNL 0000400
-#define IUCLC 0001000
-#define IXON 0002000
-#define IXANY 0004000
-#define IXOFF 0010000
-#define IMAXBEL 0020000
-#define IUTF8 0040000
+#define IGNBRK 0000001
+#define BRKINT 0000002
+#define IGNPAR 0000004
+#define PARMRK 0000010
+#define INPCK 0000020
+#define ISTRIP 0000040
+#define INLCR 0000100
+#define IGNCR 0000200
+#define ICRNL 0000400
+#define IUCLC 0001000
+#define IXON 0002000
+#define IXANY 0004000
+#define IXOFF 0010000
+#define IMAXBEL 0020000
+#define IUTF8 0040000
/* c_oflag bits */
-#define OPOST 0000001
-#define OLCUC 0000002
-#define ONLCR 0000004
-#define OCRNL 0000010
-#define ONOCR 0000020
-#define ONLRET 0000040
-#define OFILL 0000100
-#define OFDEL 0000200
+#define OPOST 0000001
+#define OLCUC 0000002
+#define ONLCR 0000004
+#define OCRNL 0000010
+#define ONOCR 0000020
+#define ONLRET 0000040
+#define OFILL 0000100
+#define OFDEL 0000200
#if defined __USE_MISC || defined __USE_XOPEN
-# define NLDLY 0000400
-# define NL0 0000000
-# define NL1 0000400
-# define CRDLY 0003000
-# define CR0 0000000
-# define CR1 0001000
-# define CR2 0002000
-# define CR3 0003000
-# define TABDLY 0014000
-# define TAB0 0000000
-# define TAB1 0004000
-# define TAB2 0010000
-# define TAB3 0014000
-# define BSDLY 0020000
-# define BS0 0000000
-# define BS1 0020000
-# define FFDLY 0100000
-# define FF0 0000000
-# define FF1 0100000
+# define NLDLY 0000400
+# define NL0 0000000
+# define NL1 0000400
+# define CRDLY 0003000
+# define CR0 0000000
+# define CR1 0001000
+# define CR2 0002000
+# define CR3 0003000
+# define TABDLY 0014000
+# define TAB0 0000000
+# define TAB1 0004000
+# define TAB2 0010000
+# define TAB3 0014000
+# define BSDLY 0020000
+# define BS0 0000000
+# define BS1 0020000
+# define FFDLY 0100000
+# define FF0 0000000
+# define FF1 0100000
#endif
-#define VTDLY 0040000
-#define VT0 0000000
-#define VT1 0040000
+#define VTDLY 0040000
+#define VT0 0000000
+#define VT1 0040000
#ifdef __USE_MISC
-# define XTABS 0014000
+# define XTABS 0014000
#endif
/* c_cflag bit meaning */
#ifdef __USE_MISC
-# define CBAUD 0010017
+# define CBAUD 0010017
#endif
-#define B0 0000000 /* hang up */
-#define B50 0000001
-#define B75 0000002
-#define B110 0000003
-#define B134 0000004
-#define B150 0000005
-#define B200 0000006
-#define B300 0000007
-#define B600 0000010
-#define B1200 0000011
-#define B1800 0000012
-#define B2400 0000013
-#define B4800 0000014
-#define B9600 0000015
-#define B19200 0000016
-#define B38400 0000017
+#define B0 0000000 /* hang up */
+#define B50 0000001
+#define B75 0000002
+#define B110 0000003
+#define B134 0000004
+#define B150 0000005
+#define B200 0000006
+#define B300 0000007
+#define B600 0000010
+#define B1200 0000011
+#define B1800 0000012
+#define B2400 0000013
+#define B4800 0000014
+#define B9600 0000015
+#define B19200 0000016
+#define B38400 0000017
#ifdef __USE_MISC
-# define EXTA B19200
-# define EXTB B38400
+# define EXTA B19200
+# define EXTB B38400
#endif
-#define CSIZE 0000060
-#define CS5 0000000
-#define CS6 0000020
-#define CS7 0000040
-#define CS8 0000060
-#define CSTOPB 0000100
-#define CREAD 0000200
-#define PARENB 0000400
-#define PARODD 0001000
-#define HUPCL 0002000
-#define CLOCAL 0004000
+#define CSIZE 0000060
+#define CS5 0000000
+#define CS6 0000020
+#define CS7 0000040
+#define CS8 0000060
+#define CSTOPB 0000100
+#define CREAD 0000200
+#define PARENB 0000400
+#define PARODD 0001000
+#define HUPCL 0002000
+#define CLOCAL 0004000
#ifdef __USE_MISC
-# define CBAUDEX 0010000
+# define CBAUDEX 0010000
#endif
-#define B57600 0010001
-#define B115200 0010002
-#define B230400 0010003
-#define B460800 0010004
-#define B500000 0010005
-#define B576000 0010006
-#define B921600 0010007
-#define B1000000 0010010
-#define B1152000 0010011
-#define B1500000 0010012
-#define B2000000 0010013
-#define B2500000 0010014
-#define B3000000 0010015
-#define B3500000 0010016
-#define B4000000 0010017
+#define B57600 0010001
+#define B115200 0010002
+#define B230400 0010003
+#define B460800 0010004
+#define B500000 0010005
+#define B576000 0010006
+#define B921600 0010007
+#define B1000000 0010010
+#define B1152000 0010011
+#define B1500000 0010012
+#define B2000000 0010013
+#define B2500000 0010014
+#define B3000000 0010015
+#define B3500000 0010016
+#define B4000000 0010017
#define __MAX_BAUD B4000000
#ifdef __USE_MISC
-# define CIBAUD 002003600000 /* input baud rate (not used) */
-# define CMSPAR 010000000000 /* mark or space (stick) parity */
-# define CRTSCTS 020000000000 /* flow control */
+# define CIBAUD 002003600000 /* input baud rate (not used) */
+# define CMSPAR 010000000000 /* mark or space (stick) parity */
+# define CRTSCTS 020000000000 /* flow control */
#endif
/* c_lflag bits */
-#define ISIG 0000001
-#define ICANON 0000002
+#define ISIG 0000001
+#define ICANON 0000002
#if defined __USE_MISC || (defined __USE_XOPEN && !defined __USE_XOPEN2K)
-# define XCASE 0000004
+# define XCASE 0000004
#endif
-#define ECHO 0000010
-#define ECHOE 0000020
-#define ECHOK 0000040
-#define ECHONL 0000100
-#define NOFLSH 0000200
-#define TOSTOP 0000400
+#define ECHO 0000010
+#define ECHOE 0000020
+#define ECHOK 0000040
+#define ECHONL 0000100
+#define NOFLSH 0000200
+#define TOSTOP 0000400
#ifdef __USE_MISC
-# define ECHOCTL 0001000
-# define ECHOPRT 0002000
-# define ECHOKE 0004000
-# define FLUSHO 0010000
-# define PENDIN 0040000
+# define ECHOCTL 0001000
+# define ECHOPRT 0002000
+# define ECHOKE 0004000
+# define FLUSHO 0010000
+# define PENDIN 0040000
#endif
-#define IEXTEN 0100000
+#define IEXTEN 0100000
#ifdef __USE_MISC
-# define EXTPROC 0200000
+# define EXTPROC 0200000
#endif
/* tcflow() and TCXONC use these */
-#define TCOOFF 0
-#define TCOON 1
-#define TCIOFF 2
-#define TCION 3
+#define TCOOFF 0
+#define TCOON 1
+#define TCIOFF 2
+#define TCION 3
/* tcflush() and TCFLSH use these */
-#define TCIFLUSH 0
-#define TCOFLUSH 1
-#define TCIOFLUSH 2
+#define TCIFLUSH 0
+#define TCOFLUSH 1
+#define TCIOFLUSH 2
/* tcsetattr uses these */
-#define TCSANOW 0
-#define TCSADRAIN 1
-#define TCSAFLUSH 2
+#define TCSANOW 0
+#define TCSADRAIN 1
+#define TCSAFLUSH 2
struct winsize {
unsigned short ws_row;
@@ -281,36 +281,36 @@ struct termios {
tcflag_t c_oflag;
tcflag_t c_cflag;
tcflag_t c_lflag;
- cc_t c_cc[NCCS];
- speed_t c_ispeed;
- speed_t c_ospeed;
+ cc_t c_cc[NCCS];
+ speed_t c_ispeed;
+ speed_t c_ospeed;
};
struct stat {
- dev_t st_dev; /* ID of device containing file */
- ino_t st_ino; /* inode number */
- mode_t st_mode; /* protection */
- nlink_t st_nlink; /* number of hard links */
- uid_t st_uid; /* user ID of owner */
- gid_t st_gid; /* group ID of owner */
- dev_t st_rdev; /* device ID (if special file) */
- off_t st_size; /* total size, in bytes */
+ dev_t st_dev; /* ID of device containing file */
+ ino_t st_ino; /* inode number */
+ mode_t st_mode; /* protection */
+ nlink_t st_nlink; /* number of hard links */
+ uid_t st_uid; /* user ID of owner */
+ gid_t st_gid; /* group ID of owner */
+ dev_t st_rdev; /* device ID (if special file) */
+ off_t st_size; /* total size, in bytes */
blksize_t st_blksize; /* blocksize for file system I/O */
- blkcnt_t st_blocks; /* number of 512B blocks allocated */
- time_t st_atime; /* time of last access */
- time_t st_mtime; /* time of last modification */
- time_t st_ctime; /* time of last status change */
+ blkcnt_t st_blocks; /* number of 512B blocks allocated */
+ time_t st_atime; /* time of last access */
+ time_t st_mtime; /* time of last modification */
+ time_t st_ctime; /* time of last status change */
};
-#define POLLIN (1u << 0)
-#define POLLPRI (1u << 2)
-#define POLLOUT (1u << 3)
-#define POLLERR (1u << 4)
-#define POLLHUP (1u << 5)
+#define POLLIN (1u << 0)
+#define POLLPRI (1u << 2)
+#define POLLOUT (1u << 3)
+#define POLLERR (1u << 4)
+#define POLLHUP (1u << 5)
#define POLLNVAL (1u << 6)
struct pollfd {
- int fd;
+ int fd;
short events;
short revents;
};
@@ -345,7 +345,7 @@ struct sockaddr {
char sa_data[14];
};
-#define S_IFSOCK 0140000
+#define S_IFSOCK 0140000
#define UNIX_PATH_MAX 108
struct sockaddr_un {
@@ -388,7 +388,8 @@ struct utsname {
char machine[UTSNAME_ENTRY_LEN];
};
-struct [[gnu::packed]] FarPtr {
+struct [[gnu::packed]] FarPtr
+{
dword offset { 0 };
word selector { 0 };
};
diff --git a/Kernel/VM/MemoryManager.h b/Kernel/VM/MemoryManager.h
index 3615826fb3..b45cfcbf00 100644
--- a/Kernel/VM/MemoryManager.h
+++ b/Kernel/VM/MemoryManager.h
@@ -1,27 +1,28 @@
#pragma once
-#include <AK/Types.h>
#include "i386.h"
+#include <AK/AKString.h>
+#include <AK/Badge.h>
#include <AK/Bitmap.h>
#include <AK/ByteBuffer.h>
-#include <AK/Retainable.h>
+#include <AK/HashTable.h>
#include <AK/RetainPtr.h>
+#include <AK/Retainable.h>
+#include <AK/Types.h>
#include <AK/Vector.h>
-#include <AK/HashTable.h>
-#include <AK/AKString.h>
-#include <AK/Badge.h>
#include <AK/Weakable.h>
+#include <Kernel/FileSystem/InodeIdentifier.h>
#include <Kernel/LinearAddress.h>
#include <Kernel/VM/PhysicalPage.h>
#include <Kernel/VM/Region.h>
#include <Kernel/VM/VMObject.h>
-#include <Kernel/FileSystem/InodeIdentifier.h>
-#define PAGE_ROUND_UP(x) ((((dword)(x)) + PAGE_SIZE-1) & (~(PAGE_SIZE-1)))
+#define PAGE_ROUND_UP(x) ((((dword)(x)) + PAGE_SIZE - 1) & (~(PAGE_SIZE - 1)))
class SynthFSInode;
-enum class PageFaultResponse {
+enum class PageFaultResponse
+{
ShouldCrash,
Continue,
};
@@ -36,6 +37,7 @@ class MemoryManager {
friend class VMObject;
friend ByteBuffer procfs$mm(InodeIdentifier);
friend ByteBuffer procfs$memstat(InodeIdentifier);
+
public:
[[gnu::pure]] static MemoryManager& the();
@@ -54,7 +56,11 @@ public:
bool validate_user_read(const Process&, LinearAddress) const;
bool validate_user_write(const Process&, LinearAddress) const;
- enum class ShouldZeroFill { No, Yes };
+ enum class ShouldZeroFill
+ {
+ No,
+ Yes
+ };
RetainPtr<PhysicalPage> allocate_physical_page(ShouldZeroFill);
RetainPtr<PhysicalPage> allocate_supervisor_physical_page();
@@ -106,7 +112,10 @@ private:
PageDirectory& kernel_page_directory() { return *m_kernel_page_directory; }
struct PageDirectoryEntry {
- explicit PageDirectoryEntry(dword* pde) : m_pde(pde) { }
+ explicit PageDirectoryEntry(dword* pde)
+ : m_pde(pde)
+ {
+ }
dword* page_table_base() { return reinterpret_cast<dword*>(raw() & 0xfffff000u); }
void set_page_table_base(dword value)
@@ -118,7 +127,8 @@ private:
dword raw() const { return *m_pde; }
dword* ptr() { return m_pde; }
- enum Flags {
+ enum Flags
+ {
Present = 1 << 0,
ReadWrite = 1 << 1,
UserSupervisor = 1 << 2,
@@ -153,7 +163,10 @@ private:
};
struct PageTableEntry {
- explicit PageTableEntry(dword* pte) : m_pte(pte) { }
+ explicit PageTableEntry(dword* pte)
+ : m_pte(pte)
+ {
+ }
dword* physical_page_base() { return reinterpret_cast<dword*>(raw() & 0xfffff000u); }
void set_physical_page_base(dword value)
@@ -165,7 +178,8 @@ private:
dword raw() const { return *m_pte; }
dword* ptr() { return m_pte; }
- enum Flags {
+ enum Flags
+ {
Present = 1 << 0,
ReadWrite = 1 << 1,
UserSupervisor = 1 << 2,
diff --git a/Kernel/VM/PageDirectory.h b/Kernel/VM/PageDirectory.h
index 409a5f919c..8207389ab7 100644
--- a/Kernel/VM/PageDirectory.h
+++ b/Kernel/VM/PageDirectory.h
@@ -1,13 +1,14 @@
#pragma once
-#include <Kernel/VM/PhysicalPage.h>
-#include <Kernel/VM/RangeAllocator.h>
#include <AK/HashMap.h>
-#include <AK/Retainable.h>
#include <AK/RetainPtr.h>
+#include <AK/Retainable.h>
+#include <Kernel/VM/PhysicalPage.h>
+#include <Kernel/VM/RangeAllocator.h>
class PageDirectory : public Retainable<PageDirectory> {
friend class MemoryManager;
+
public:
static Retained<PageDirectory> create_for_userspace(const RangeAllocator* parent_range_allocator = nullptr) { return adopt(*new PageDirectory(parent_range_allocator)); }
static Retained<PageDirectory> create_at_fixed_address(PhysicalAddress paddr) { return adopt(*new PageDirectory(paddr)); }
diff --git a/Kernel/VM/PhysicalPage.h b/Kernel/VM/PhysicalPage.h
index 2d9cd88677..bf2726bcef 100644
--- a/Kernel/VM/PhysicalPage.h
+++ b/Kernel/VM/PhysicalPage.h
@@ -1,13 +1,14 @@
#pragma once
+#include <AK/Retained.h>
#include <Kernel/Assertions.h>
#include <Kernel/PhysicalAddress.h>
-#include <AK/Retained.h>
class PhysicalPage {
friend class MemoryManager;
friend class PageDirectory;
friend class VMObject;
+
public:
PhysicalAddress paddr() const { return m_paddr; }
@@ -35,7 +36,7 @@ public:
private:
PhysicalPage(PhysicalAddress paddr, bool supervisor, bool may_return_to_freelist = true);
- ~PhysicalPage() { }
+ ~PhysicalPage() {}
void return_to_freelist();
diff --git a/Kernel/VM/RangeAllocator.h b/Kernel/VM/RangeAllocator.h
index e80e1278ca..7381aa5db7 100644
--- a/Kernel/VM/RangeAllocator.h
+++ b/Kernel/VM/RangeAllocator.h
@@ -1,12 +1,13 @@
#pragma once
-#include <Kernel/LinearAddress.h>
#include <AK/Vector.h>
+#include <Kernel/LinearAddress.h>
class Range {
friend class RangeAllocator;
+
public:
- Range() { }
+ Range() {}
Range(LinearAddress base, size_t size)
: m_base(base)
, m_size(size)
diff --git a/Kernel/VM/Region.h b/Kernel/VM/Region.h
index 806fa6460c..254469cf1d 100644
--- a/Kernel/VM/Region.h
+++ b/Kernel/VM/Region.h
@@ -10,6 +10,7 @@ class VMObject;
class Region : public Retainable<Region> {
friend class MemoryManager;
+
public:
Region(const Range&, String&&, bool r, bool w, bool cow = false);
Region(const Range&, Retained<VMObject>&&, size_t offset_in_vmo, String&&, bool r, bool w, bool cow = false);
diff --git a/Kernel/VM/VMObject.h b/Kernel/VM/VMObject.h
index 4a0fee7436..0f7b9c4fea 100644
--- a/Kernel/VM/VMObject.h
+++ b/Kernel/VM/VMObject.h
@@ -1,11 +1,11 @@
#pragma once
+#include <AK/AKString.h>
#include <AK/Badge.h>
-#include <AK/Retainable.h>
-#include <AK/Weakable.h>
#include <AK/RetainPtr.h>
+#include <AK/Retainable.h>
#include <AK/Vector.h>
-#include <AK/AKString.h>
+#include <AK/Weakable.h>
#include <Kernel/Lock.h>
#include <Kernel/PhysicalAddress.h>
#include <Kernel/UnixTypes.h>
@@ -13,8 +13,10 @@
class Inode;
class PhysicalPage;
-class VMObject : public Retainable<VMObject>, public Weakable<VMObject> {
+class VMObject : public Retainable<VMObject>
+ , public Weakable<VMObject> {
friend class MemoryManager;
+
public:
static Retained<VMObject> create_file_backed(RetainPtr<Inode>&&);
static Retained<VMObject> create_anonymous(size_t);
@@ -46,7 +48,8 @@ private:
explicit VMObject(size_t);
VMObject(PhysicalAddress, size_t);
- template<typename Callback> void for_each_region(Callback);
+ template<typename Callback>
+ void for_each_region(Callback);
String m_name;
bool m_allow_cpu_caching { true };
diff --git a/Kernel/i386.h b/Kernel/i386.h
index c770d45286..a323947d03 100644
--- a/Kernel/i386.h
+++ b/Kernel/i386.h
@@ -1,12 +1,13 @@
#pragma once
-#include <Kernel/kstdio.h>
#include <Kernel/LinearAddress.h>
+#include <Kernel/kstdio.h>
#define PAGE_SIZE 4096
#define PAGE_MASK 0xfffff000
-struct [[gnu::packed]] TSS32 {
+struct [[gnu::packed]] TSS32
+{
word backlink, __blh;
dword esp0;
word ss0, __ss0h;
@@ -15,7 +16,7 @@ struct [[gnu::packed]] TSS32 {
dword esp2;
word ss2, __ss2h;
dword cr3, eip, eflags;
- dword eax,ecx,edx,ebx,esp,ebp,esi,edi;
+ dword eax, ecx, edx, ebx, esp, ebp, esi, edi;
word es, __esh;
word cs, __csh;
word ss, __ssh;
@@ -26,7 +27,8 @@ struct [[gnu::packed]] TSS32 {
word trace, iomapbase;
};
-union [[gnu::packed]] Descriptor {
+union [[gnu::packed]] Descriptor
+{
struct {
word limit_lo;
word base_lo;
@@ -47,7 +49,8 @@ union [[gnu::packed]] Descriptor {
dword high;
};
- enum Type {
+ enum Type
+ {
Invalid = 0,
AvailableTSS_16bit = 0x1,
LDT = 0x2,
@@ -65,7 +68,7 @@ union [[gnu::packed]] Descriptor {
void set_base(void* b)
{
- base_lo = (dword)(b) & 0xffff;
+ base_lo = (dword)(b)&0xffff;
base_hi = ((dword)(b) >> 16) & 0xff;
base_hi2 = ((dword)(b) >> 24) & 0xff;
}
@@ -97,22 +100,27 @@ void write_gdt_entry(word selector, Descriptor&);
[[noreturn]] static inline void hang()
{
asm volatile("cli; hlt");
- for (;;) { }
+ for (;;) {
+ }
}
-#define LSW(x) ((dword)(x) & 0xFFFF)
+#define LSW(x) ((dword)(x)&0xFFFF)
#define MSW(x) (((dword)(x) >> 16) & 0xFFFF)
-#define LSB(x) ((x) & 0xFF)
-#define MSB(x) (((x)>>8) & 0xFF)
+#define LSB(x) ((x)&0xFF)
+#define MSB(x) (((x) >> 8) & 0xFF)
-#define cli() asm volatile("cli" ::: "memory")
-#define sti() asm volatile("sti" ::: "memory")
-#define memory_barrier() asm volatile ("" ::: "memory")
+#define cli() asm volatile("cli" :: \
+ : "memory")
+#define sti() asm volatile("sti" :: \
+ : "memory")
+#define memory_barrier() asm volatile("" :: \
+ : "memory")
inline dword cpu_cr3()
{
dword cr3;
- asm volatile("movl %%cr3, %%eax":"=a"(cr3));
+ asm volatile("movl %%cr3, %%eax"
+ : "=a"(cr3));
return cr3;
}
@@ -122,8 +130,7 @@ inline dword cpu_flags()
asm volatile(
"pushf\n"
"pop %0\n"
- :"=rm"(flags)
- ::"memory");
+ : "=rm"(flags)::"memory");
return flags;
}
@@ -173,15 +180,16 @@ private:
#define IRQ_VECTOR_BASE 0x50
struct PageFaultFlags {
-enum Flags {
- NotPresent = 0x00,
- ProtectionViolation = 0x01,
- Read = 0x00,
- Write = 0x02,
- UserMode = 0x04,
- SupervisorMode = 0x00,
- InstructionFetch = 0x08,
-};
+ enum Flags
+ {
+ NotPresent = 0x00,
+ ProtectionViolation = 0x01,
+ Read = 0x00,
+ Write = 0x02,
+ UserMode = 0x04,
+ SupervisorMode = 0x00,
+ InstructionFetch = 0x08,
+ };
};
class PageFault {
@@ -208,7 +216,8 @@ private:
LinearAddress m_laddr;
};
-struct [[gnu::packed]] RegisterDump {
+struct [[gnu::packed]] RegisterDump
+{
word ss;
word gs;
word fs;
@@ -230,7 +239,8 @@ struct [[gnu::packed]] RegisterDump {
word ss_if_crossRing;
};
-struct [[gnu::packed]] RegisterDumpWithExceptionCode {
+struct [[gnu::packed]] RegisterDumpWithExceptionCode
+{
word ss;
word gs;
word fs;
@@ -254,7 +264,8 @@ struct [[gnu::packed]] RegisterDumpWithExceptionCode {
word ss_if_crossRing;
};
-struct [[gnu::aligned(16)]] FPUState {
+struct [[gnu::aligned(16)]] FPUState
+{
byte buffer[512];
};
@@ -265,11 +276,14 @@ inline constexpr dword page_base_of(dword address)
class CPUID {
public:
- CPUID(dword function) { asm volatile("cpuid" : "=a" (m_eax), "=b" (m_ebx), "=c" (m_ecx), "=d" (m_edx) : "a" (function), "c" (0)); }
+ CPUID(dword function) { asm volatile("cpuid"
+ : "=a"(m_eax), "=b"(m_ebx), "=c"(m_ecx), "=d"(m_edx)
+ : "a"(function), "c"(0)); }
dword eax() const { return m_eax; }
dword ebx() const { return m_ebx; }
dword ecx() const { return m_ecx; }
dword edx() const { return m_edx; }
+
private:
dword m_eax { 0xffffffff };
dword m_ebx { 0xffffffff };
@@ -279,7 +293,8 @@ private:
inline void read_tsc(dword& lsw, dword& msw)
{
- asm volatile("rdtsc":"=d"(msw),"=a"(lsw));
+ asm volatile("rdtsc"
+ : "=d"(msw), "=a"(lsw));
}
struct Stopwatch {
@@ -290,6 +305,7 @@ struct Stopwatch {
};
uint64_t qw { 0 };
};
+
public:
Stopwatch(const char* name)
: m_name(name)
diff --git a/Kernel/i8253.h b/Kernel/i8253.h
index c537036f2a..573399d1a1 100644
--- a/Kernel/i8253.h
+++ b/Kernel/i8253.h
@@ -2,26 +2,26 @@
#include <AK/Types.h>
-#define TICKS_PER_SECOND 1000
+#define TICKS_PER_SECOND 1000
/* Timer related ports */
-#define TIMER0_CTL 0x40
-#define TIMER1_CTL 0x41
-#define TIMER2_CTL 0x42
-#define PIT_CTL 0x43
+#define TIMER0_CTL 0x40
+#define TIMER1_CTL 0x41
+#define TIMER2_CTL 0x42
+#define PIT_CTL 0x43
/* Building blocks for PIT_CTL */
-#define TIMER0_SELECT 0x00
-#define TIMER1_SELECT 0x40
-#define TIMER2_SELECT 0x80
+#define TIMER0_SELECT 0x00
+#define TIMER1_SELECT 0x40
+#define TIMER2_SELECT 0x80
-#define MODE_COUNTDOWN 0x00
-#define MODE_ONESHOT 0x02
-#define MODE_RATE 0x04
-#define MODE_SQUARE_WAVE 0x06
+#define MODE_COUNTDOWN 0x00
+#define MODE_ONESHOT 0x02
+#define MODE_RATE 0x04
+#define MODE_SQUARE_WAVE 0x06
-#define WRITE_WORD 0x30
+#define WRITE_WORD 0x30
-#define BASE_FREQUENCY 1193182
+#define BASE_FREQUENCY 1193182
namespace PIT {
diff --git a/Kernel/kstdio.h b/Kernel/kstdio.h
index d44d215f64..00509e320c 100644
--- a/Kernel/kstdio.h
+++ b/Kernel/kstdio.h
@@ -1,11 +1,11 @@
#pragma once
extern "C" {
-int dbgprintf(const char *fmt, ...);
-int kprintf(const char *fmt, ...);
-int ksprintf(char* buf, const char *fmt, ...);
+int dbgprintf(const char* fmt, ...);
+int kprintf(const char* fmt, ...);
+int ksprintf(char* buf, const char* fmt, ...);
}
#ifndef USERLAND
-#define printf dbgprintf
+# define printf dbgprintf
#endif
diff --git a/Kernel/makeall.sh b/Kernel/makeall.sh
index 09dbc40463..fc2fa28cad 100755
--- a/Kernel/makeall.sh
+++ b/Kernel/makeall.sh
@@ -38,6 +38,7 @@ build_targets="$build_targets ." # the kernel
for targ in $build_targets; do
echo "Building $targ"
+ #(cd "$targ" && find . -name "*.c" -o -name "*.cpp" -o -name "*.h" -exec clang-format -i {} \;)
$make_cmd -C "$targ" clean
$make_cmd -C "$targ"