mirror of
https://github.com/RGBCube/serenity
synced 2025-05-31 14:28:12 +00:00
Make it possible to build the Kernel on a macOS host.
It still requires an ELF compiler and linker, but at least it builds. I need to get rid of the "Unix" namespace. This does a lot of that.
This commit is contained in:
parent
44036f32bc
commit
85b886c2e0
31 changed files with 88 additions and 94 deletions
|
@ -14,8 +14,8 @@ public:
|
|||
|
||||
virtual bool hasDataAvailableForRead() const = 0;
|
||||
|
||||
virtual Unix::ssize_t read(byte* buffer, Unix::size_t bufferSize) = 0;
|
||||
virtual Unix::ssize_t write(const byte* buffer, Unix::size_t bufferSize) = 0;
|
||||
virtual ssize_t read(byte* buffer, size_t bufferSize) = 0;
|
||||
virtual ssize_t write(const byte* buffer, size_t bufferSize) = 0;
|
||||
|
||||
unsigned major() const { return m_major; }
|
||||
unsigned minor() const { return m_minor; }
|
||||
|
|
|
@ -12,7 +12,7 @@ public:
|
|||
DiskDevice& device() { return *m_device; }
|
||||
const DiskDevice& device() const { return *m_device; }
|
||||
|
||||
unsigned blockSize() const { return m_blockSize; }
|
||||
size_t blockSize() const { return m_blockSize; }
|
||||
|
||||
protected:
|
||||
explicit DiskBackedFS(RetainPtr<DiskDevice>&&);
|
||||
|
@ -27,7 +27,7 @@ protected:
|
|||
bool writeBlocks(unsigned index, unsigned count, const ByteBuffer&);
|
||||
|
||||
private:
|
||||
unsigned m_blockSize { 0 };
|
||||
size_t m_blockSize { 0 };
|
||||
RetainPtr<DiskDevice> m_device;
|
||||
|
||||
mutable SpinLock m_blockCacheLock;
|
||||
|
|
|
@ -325,7 +325,7 @@ RetainPtr<CoreInode> Ext2FS::get_inode(InodeIdentifier inode) const
|
|||
return new_inode;
|
||||
}
|
||||
|
||||
Unix::ssize_t Ext2FSInode::read_bytes(Unix::off_t offset, Unix::size_t count, byte* buffer, FileDescriptor*)
|
||||
ssize_t Ext2FSInode::read_bytes(Unix::off_t offset, size_t count, byte* buffer, FileDescriptor*)
|
||||
{
|
||||
ASSERT(offset >= 0);
|
||||
if (m_raw_inode.i_size == 0)
|
||||
|
@ -335,7 +335,7 @@ Unix::ssize_t Ext2FSInode::read_bytes(Unix::off_t offset, Unix::size_t count, by
|
|||
// This avoids wasting an entire block on short links. (Most links are short.)
|
||||
static const unsigned max_inline_symlink_length = 60;
|
||||
if (is_symlink() && size() < max_inline_symlink_length) {
|
||||
Unix::ssize_t nread = min((Unix::off_t)size() - offset, static_cast<Unix::off_t>(count));
|
||||
ssize_t nread = min((Unix::off_t)size() - offset, static_cast<Unix::off_t>(count));
|
||||
memcpy(buffer, m_raw_inode.i_block + offset, nread);
|
||||
return nread;
|
||||
}
|
||||
|
@ -361,8 +361,8 @@ Unix::ssize_t Ext2FSInode::read_bytes(Unix::off_t offset, Unix::size_t count, by
|
|||
|
||||
dword offset_into_first_block = offset % block_size;
|
||||
|
||||
Unix::ssize_t nread = 0;
|
||||
Unix::size_t remaining_count = min((Unix::off_t)count, (Unix::off_t)size() - offset);
|
||||
ssize_t nread = 0;
|
||||
size_t remaining_count = min((Unix::off_t)count, (Unix::off_t)size() - offset);
|
||||
byte* out = buffer;
|
||||
|
||||
#ifdef EXT2_DEBUG
|
||||
|
@ -387,7 +387,7 @@ Unix::ssize_t Ext2FSInode::read_bytes(Unix::off_t offset, Unix::size_t count, by
|
|||
return nread;
|
||||
}
|
||||
|
||||
Unix::ssize_t Ext2FS::read_inode_bytes(InodeIdentifier inode, Unix::off_t offset, Unix::size_t count, byte* buffer, FileDescriptor*) const
|
||||
ssize_t Ext2FS::read_inode_bytes(InodeIdentifier inode, Unix::off_t offset, size_t count, byte* buffer, FileDescriptor*) const
|
||||
{
|
||||
ASSERT(offset >= 0);
|
||||
ASSERT(inode.fsid() == id());
|
||||
|
@ -411,7 +411,7 @@ Unix::ssize_t Ext2FS::read_inode_bytes(InodeIdentifier inode, Unix::off_t offset
|
|||
// This avoids wasting an entire block on short links. (Most links are short.)
|
||||
static const unsigned maxInlineSymlinkLength = 60;
|
||||
if (isSymbolicLink(e2inode->i_mode) && e2inode->i_size < maxInlineSymlinkLength) {
|
||||
Unix::ssize_t nread = min((Unix::off_t)e2inode->i_size - offset, static_cast<Unix::off_t>(count));
|
||||
ssize_t nread = min((Unix::off_t)e2inode->i_size - offset, static_cast<Unix::off_t>(count));
|
||||
memcpy(buffer, e2inode->i_block + offset, nread);
|
||||
return nread;
|
||||
}
|
||||
|
@ -431,8 +431,8 @@ Unix::ssize_t Ext2FS::read_inode_bytes(InodeIdentifier inode, Unix::off_t offset
|
|||
|
||||
dword offsetIntoFirstBlock = offset % blockSize();
|
||||
|
||||
Unix::ssize_t nread = 0;
|
||||
Unix::size_t remainingCount = min((Unix::off_t)count, (Unix::off_t)e2inode->i_size - offset);
|
||||
ssize_t nread = 0;
|
||||
size_t remainingCount = min((Unix::off_t)count, (Unix::off_t)e2inode->i_size - offset);
|
||||
byte* out = buffer;
|
||||
|
||||
#ifdef EXT2_DEBUG
|
||||
|
@ -453,7 +453,7 @@ Unix::ssize_t Ext2FS::read_inode_bytes(InodeIdentifier inode, Unix::off_t offset
|
|||
else
|
||||
offsetIntoBlock = 0;
|
||||
|
||||
dword numBytesToCopy = min(blockSize() - offsetIntoBlock, remainingCount);
|
||||
size_t numBytesToCopy = min(blockSize() - offsetIntoBlock, remainingCount);
|
||||
memcpy(out, block.pointer() + offsetIntoBlock, numBytesToCopy);
|
||||
remainingCount -= numBytesToCopy;
|
||||
nread += numBytesToCopy;
|
||||
|
|
|
@ -22,7 +22,7 @@ public:
|
|||
|
||||
private:
|
||||
// ^CoreInode
|
||||
virtual Unix::ssize_t read_bytes(Unix::off_t, Unix::size_t, byte* buffer, FileDescriptor*) override;
|
||||
virtual ssize_t read_bytes(Unix::off_t, size_t, byte* buffer, FileDescriptor*) override;
|
||||
virtual void populate_metadata() const override;
|
||||
virtual bool traverse_as_directory(Function<bool(const FS::DirectoryEntry&)>) override;
|
||||
virtual InodeIdentifier lookup(const String& name) override;
|
||||
|
@ -74,7 +74,7 @@ private:
|
|||
virtual InodeMetadata inodeMetadata(InodeIdentifier) const override;
|
||||
virtual bool set_mtime(InodeIdentifier, dword timestamp) override;
|
||||
virtual InodeIdentifier create_inode(InodeIdentifier parentInode, const String& name, Unix::mode_t, unsigned size, int& error) override;
|
||||
virtual Unix::ssize_t read_inode_bytes(InodeIdentifier, Unix::off_t offset, Unix::size_t count, byte* buffer, FileDescriptor*) const override;
|
||||
virtual ssize_t read_inode_bytes(InodeIdentifier, Unix::off_t offset, size_t count, byte* buffer, FileDescriptor*) const override;
|
||||
virtual InodeIdentifier create_directory(InodeIdentifier parentInode, const String& name, Unix::mode_t, int& error) override;
|
||||
virtual InodeIdentifier find_parent_of_inode(InodeIdentifier) const override;
|
||||
virtual RetainPtr<CoreInode> get_inode(InodeIdentifier) const override;
|
||||
|
|
|
@ -133,7 +133,7 @@ Unix::off_t FileDescriptor::seek(Unix::off_t offset, int whence)
|
|||
return m_currentOffset;
|
||||
}
|
||||
|
||||
Unix::ssize_t FileDescriptor::read(byte* buffer, Unix::size_t count)
|
||||
ssize_t FileDescriptor::read(byte* buffer, size_t count)
|
||||
{
|
||||
if (is_fifo()) {
|
||||
ASSERT(fifo_direction() == FIFO::Reader);
|
||||
|
@ -143,12 +143,12 @@ Unix::ssize_t FileDescriptor::read(byte* buffer, Unix::size_t count)
|
|||
// FIXME: What should happen to m_currentOffset?
|
||||
return m_vnode->characterDevice()->read(buffer, count);
|
||||
}
|
||||
Unix::ssize_t nread = m_vnode->fileSystem()->read_inode_bytes(m_vnode->inode, m_currentOffset, count, buffer, this);
|
||||
ssize_t nread = m_vnode->fileSystem()->read_inode_bytes(m_vnode->inode, m_currentOffset, count, buffer, this);
|
||||
m_currentOffset += nread;
|
||||
return nread;
|
||||
}
|
||||
|
||||
Unix::ssize_t FileDescriptor::write(const byte* data, Unix::size_t size)
|
||||
ssize_t FileDescriptor::write(const byte* data, size_t size)
|
||||
{
|
||||
if (is_fifo()) {
|
||||
ASSERT(fifo_direction() == FIFO::Writer);
|
||||
|
@ -189,7 +189,7 @@ ByteBuffer FileDescriptor::readEntireFile()
|
|||
|
||||
if (m_vnode->isCharacterDevice()) {
|
||||
auto buffer = ByteBuffer::createUninitialized(1024);
|
||||
Unix::ssize_t nread = m_vnode->characterDevice()->read(buffer.pointer(), buffer.size());
|
||||
ssize_t nread = m_vnode->characterDevice()->read(buffer.pointer(), buffer.size());
|
||||
buffer.trim(nread);
|
||||
return buffer;
|
||||
}
|
||||
|
@ -205,7 +205,7 @@ bool FileDescriptor::isDirectory() const
|
|||
return m_vnode->metadata().isDirectory();
|
||||
}
|
||||
|
||||
ssize_t FileDescriptor::get_dir_entries(byte* buffer, Unix::size_t size)
|
||||
ssize_t FileDescriptor::get_dir_entries(byte* buffer, size_t size)
|
||||
{
|
||||
auto metadata = m_vnode->metadata();
|
||||
if (!metadata.isValid())
|
||||
|
|
|
@ -23,14 +23,14 @@ public:
|
|||
int close();
|
||||
|
||||
Unix::off_t seek(Unix::off_t, int whence);
|
||||
Unix::ssize_t read(byte*, Unix::size_t);
|
||||
Unix::ssize_t write(const byte* data, Unix::size_t);
|
||||
ssize_t read(byte*, size_t);
|
||||
ssize_t write(const byte* data, size_t);
|
||||
int stat(Unix::stat*);
|
||||
|
||||
bool hasDataAvailableForRead();
|
||||
bool can_write();
|
||||
|
||||
ssize_t get_dir_entries(byte* buffer, Unix::size_t);
|
||||
ssize_t get_dir_entries(byte* buffer, size_t);
|
||||
|
||||
ByteBuffer readEntireFile();
|
||||
|
||||
|
|
|
@ -44,20 +44,20 @@ ByteBuffer CoreInode::read_entire(FileDescriptor* descriptor)
|
|||
size_t initial_size = metadata().size ? metadata().size : 4096;
|
||||
auto contents = ByteBuffer::createUninitialized(initial_size);
|
||||
|
||||
Unix::ssize_t nread;
|
||||
ssize_t nread;
|
||||
byte buffer[4096];
|
||||
byte* out = contents.pointer();
|
||||
Unix::off_t offset = 0;
|
||||
for (;;) {
|
||||
nread = read_bytes(offset, sizeof(buffer), buffer, descriptor);
|
||||
//kprintf("nread: %u, bufsiz: %u, initial_size: %u\n", nread, sizeof(buffer), initial_size);
|
||||
ASSERT(nread <= (Unix::ssize_t)sizeof(buffer));
|
||||
ASSERT(nread <= (ssize_t)sizeof(buffer));
|
||||
if (nread <= 0)
|
||||
break;
|
||||
memcpy(out, buffer, nread);
|
||||
out += nread;
|
||||
offset += nread;
|
||||
ASSERT(offset <= (Unix::ssize_t)initial_size); // FIXME: Support dynamically growing the buffer.
|
||||
ASSERT(offset <= (ssize_t)initial_size); // FIXME: Support dynamically growing the buffer.
|
||||
}
|
||||
if (nread < 0) {
|
||||
kprintf("CoreInode::read_entire: ERROR: %d\n", nread);
|
||||
|
@ -82,20 +82,20 @@ ByteBuffer FS::readEntireInode(InodeIdentifier inode, FileDescriptor* handle) co
|
|||
size_t initialSize = metadata.size ? metadata.size : 4096;
|
||||
auto contents = ByteBuffer::createUninitialized(initialSize);
|
||||
|
||||
Unix::ssize_t nread;
|
||||
ssize_t nread;
|
||||
byte buffer[4096];
|
||||
byte* out = contents.pointer();
|
||||
Unix::off_t offset = 0;
|
||||
for (;;) {
|
||||
nread = read_inode_bytes(inode, offset, sizeof(buffer), buffer, handle);
|
||||
//kprintf("nread: %u, bufsiz: %u, initialSize: %u\n", nread, sizeof(buffer), initialSize);
|
||||
ASSERT(nread <= (Unix::ssize_t)sizeof(buffer));
|
||||
ASSERT(nread <= (ssize_t)sizeof(buffer));
|
||||
if (nread <= 0)
|
||||
break;
|
||||
memcpy(out, buffer, nread);
|
||||
out += nread;
|
||||
offset += nread;
|
||||
ASSERT(offset <= (Unix::ssize_t)initialSize); // FIXME: Support dynamically growing the buffer.
|
||||
ASSERT(offset <= (ssize_t)initialSize); // FIXME: Support dynamically growing the buffer.
|
||||
}
|
||||
if (nread < 0) {
|
||||
kprintf("[fs] readInode: ERROR: %d\n", nread);
|
||||
|
@ -115,7 +115,7 @@ FS::DirectoryEntry::DirectoryEntry(const char* n, InodeIdentifier i, byte ft)
|
|||
name[name_length] = '\0';
|
||||
}
|
||||
|
||||
FS::DirectoryEntry::DirectoryEntry(const char* n, Unix::size_t nl, InodeIdentifier i, byte ft)
|
||||
FS::DirectoryEntry::DirectoryEntry(const char* n, size_t nl, InodeIdentifier i, byte ft)
|
||||
: name_length(nl)
|
||||
, inode(i)
|
||||
, fileType(ft)
|
||||
|
|
|
@ -33,13 +33,13 @@ public:
|
|||
virtual bool writeInode(InodeIdentifier, const ByteBuffer&) = 0;
|
||||
virtual InodeMetadata inodeMetadata(InodeIdentifier) const = 0;
|
||||
|
||||
virtual Unix::ssize_t read_inode_bytes(InodeIdentifier, Unix::off_t offset, Unix::size_t count, byte* buffer, FileDescriptor*) const = 0;
|
||||
virtual ssize_t read_inode_bytes(InodeIdentifier, Unix::off_t offset, size_t count, byte* buffer, FileDescriptor*) const = 0;
|
||||
|
||||
struct DirectoryEntry {
|
||||
DirectoryEntry(const char* name, InodeIdentifier, byte fileType);
|
||||
DirectoryEntry(const char* name, Unix::size_t name_length, InodeIdentifier, byte fileType);
|
||||
DirectoryEntry(const char* name, size_t name_length, InodeIdentifier, byte fileType);
|
||||
char name[256];
|
||||
Unix::size_t name_length { 0 };
|
||||
size_t name_length { 0 };
|
||||
InodeIdentifier inode;
|
||||
byte fileType { 0 };
|
||||
};
|
||||
|
@ -80,7 +80,7 @@ public:
|
|||
|
||||
ByteBuffer read_entire(FileDescriptor* = nullptr);
|
||||
|
||||
virtual Unix::ssize_t read_bytes(Unix::off_t, Unix::size_t, byte* buffer, FileDescriptor*) = 0;
|
||||
virtual ssize_t read_bytes(Unix::off_t, size_t, byte* buffer, FileDescriptor*) = 0;
|
||||
virtual bool traverse_as_directory(Function<bool(const FS::DirectoryEntry&)>) = 0;
|
||||
virtual InodeIdentifier lookup(const String& name) = 0;
|
||||
virtual String reverse_lookup(InodeIdentifier) = 0;
|
||||
|
|
|
@ -18,14 +18,14 @@ bool FullDevice::hasDataAvailableForRead() const
|
|||
return true;
|
||||
}
|
||||
|
||||
Unix::ssize_t FullDevice::read(byte* buffer, Unix::size_t bufferSize)
|
||||
ssize_t FullDevice::read(byte* buffer, size_t bufferSize)
|
||||
{
|
||||
Unix::size_t count = min(GoodBufferSize, bufferSize);
|
||||
size_t count = min(GoodBufferSize, bufferSize);
|
||||
memset(buffer, 0, count);
|
||||
return count;
|
||||
}
|
||||
|
||||
Unix::ssize_t FullDevice::write(const byte*, Unix::size_t bufferSize)
|
||||
ssize_t FullDevice::write(const byte*, size_t bufferSize)
|
||||
{
|
||||
if (bufferSize == 0)
|
||||
return 0;
|
||||
|
|
|
@ -8,8 +8,8 @@ public:
|
|||
FullDevice();
|
||||
virtual ~FullDevice();
|
||||
|
||||
virtual Unix::ssize_t read(byte* buffer, Unix::size_t bufferSize) override;
|
||||
virtual Unix::ssize_t write(const byte* buffer, Unix::size_t bufferSize) override;
|
||||
virtual ssize_t read(byte* buffer, size_t bufferSize) override;
|
||||
virtual ssize_t write(const byte* buffer, size_t bufferSize) override;
|
||||
virtual bool hasDataAvailableForRead() const override;
|
||||
};
|
||||
|
||||
|
|
|
@ -9,6 +9,6 @@ inline static const Unix::off_t maxFileOffset = 2147483647;
|
|||
inline static const Unix::off_t maxFileOffset = std::numeric_limits<Unix::off_t>::max();
|
||||
#endif
|
||||
|
||||
static const Unix::size_t GoodBufferSize = 4096;
|
||||
static const size_t GoodBufferSize = 4096;
|
||||
|
||||
|
||||
|
|
|
@ -17,12 +17,12 @@ bool NullDevice::hasDataAvailableForRead() const
|
|||
return true;
|
||||
}
|
||||
|
||||
Unix::ssize_t NullDevice::read(byte*, Unix::size_t)
|
||||
ssize_t NullDevice::read(byte*, size_t)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
Unix::ssize_t NullDevice::write(const byte*, Unix::size_t bufferSize)
|
||||
ssize_t NullDevice::write(const byte*, size_t bufferSize)
|
||||
{
|
||||
return min(GoodBufferSize, bufferSize);
|
||||
}
|
||||
|
|
|
@ -8,8 +8,8 @@ public:
|
|||
NullDevice();
|
||||
virtual ~NullDevice() override;
|
||||
|
||||
virtual Unix::ssize_t read(byte* buffer, Unix::size_t bufferSize) override;
|
||||
virtual Unix::ssize_t write(const byte* buffer, Unix::size_t bufferSize) override;
|
||||
virtual ssize_t read(byte* buffer, size_t bufferSize) override;
|
||||
virtual ssize_t write(const byte* buffer, size_t bufferSize) override;
|
||||
virtual bool hasDataAvailableForRead() const override;
|
||||
};
|
||||
|
||||
|
|
|
@ -34,18 +34,18 @@ bool RandomDevice::hasDataAvailableForRead() const
|
|||
return true;
|
||||
}
|
||||
|
||||
Unix::ssize_t RandomDevice::read(byte* buffer, Unix::size_t bufferSize)
|
||||
ssize_t RandomDevice::read(byte* buffer, size_t bufferSize)
|
||||
{
|
||||
const int range = 'z' - 'a';
|
||||
Unix::ssize_t nread = min(bufferSize, GoodBufferSize);
|
||||
for (Unix::ssize_t i = 0; i < nread; ++i) {
|
||||
ssize_t nread = min(bufferSize, GoodBufferSize);
|
||||
for (ssize_t i = 0; i < nread; ++i) {
|
||||
dword r = myrand() % range;
|
||||
buffer[i] = 'a' + r;
|
||||
}
|
||||
return nread;
|
||||
}
|
||||
|
||||
Unix::ssize_t RandomDevice::write(const byte*, Unix::size_t bufferSize)
|
||||
ssize_t RandomDevice::write(const byte*, size_t bufferSize)
|
||||
{
|
||||
// FIXME: Use input for entropy? I guess that could be a neat feature?
|
||||
return min(GoodBufferSize, bufferSize);
|
||||
|
|
|
@ -8,8 +8,8 @@ public:
|
|||
RandomDevice();
|
||||
virtual ~RandomDevice() override;
|
||||
|
||||
virtual Unix::ssize_t read(byte* buffer, Unix::size_t bufferSize) override;
|
||||
virtual Unix::ssize_t write(const byte* buffer, Unix::size_t bufferSize) override;
|
||||
virtual ssize_t read(byte* buffer, size_t bufferSize) override;
|
||||
virtual ssize_t write(const byte* buffer, size_t bufferSize) override;
|
||||
virtual bool hasDataAvailableForRead() const override;
|
||||
};
|
||||
|
||||
|
|
|
@ -170,7 +170,7 @@ bool SynthFS::writeInode(InodeIdentifier, const ByteBuffer&)
|
|||
return false;
|
||||
}
|
||||
|
||||
Unix::ssize_t SynthFS::read_inode_bytes(InodeIdentifier inode, Unix::off_t offset, Unix::size_t count, byte* buffer, FileDescriptor* handle) const
|
||||
ssize_t SynthFS::read_inode_bytes(InodeIdentifier inode, Unix::off_t offset, size_t count, byte* buffer, FileDescriptor* handle) const
|
||||
{
|
||||
ASSERT(inode.fsid() == id());
|
||||
#ifdef SYNTHFS_DEBUG
|
||||
|
@ -200,7 +200,7 @@ Unix::ssize_t SynthFS::read_inode_bytes(InodeIdentifier inode, Unix::off_t offse
|
|||
}
|
||||
|
||||
auto* data = generatedData ? &generatedData : &file.m_data;
|
||||
Unix::ssize_t nread = min(static_cast<Unix::off_t>(data->size() - offset), static_cast<Unix::off_t>(count));
|
||||
ssize_t nread = min(static_cast<Unix::off_t>(data->size() - offset), static_cast<Unix::off_t>(count));
|
||||
memcpy(buffer, data->pointer() + offset, nread);
|
||||
if (nread == 0 && handle && handle->generatorCache())
|
||||
handle->generatorCache().clear();
|
||||
|
@ -249,7 +249,7 @@ void SynthFSInode::populate_metadata() const
|
|||
// Already done when SynthFS created the file.
|
||||
}
|
||||
|
||||
Unix::ssize_t SynthFSInode::read_bytes(Unix::off_t offset, Unix::size_t count, byte* buffer, FileDescriptor* descriptor)
|
||||
ssize_t SynthFSInode::read_bytes(Unix::off_t offset, size_t count, byte* buffer, FileDescriptor* descriptor)
|
||||
{
|
||||
#ifdef SYNTHFS_DEBUG
|
||||
kprintf("SynthFS: read_bytes %u\n", index());
|
||||
|
@ -269,7 +269,7 @@ Unix::ssize_t SynthFSInode::read_bytes(Unix::off_t offset, Unix::size_t count, b
|
|||
}
|
||||
|
||||
auto* data = generatedData ? &generatedData : &m_data;
|
||||
Unix::ssize_t nread = min(static_cast<Unix::off_t>(data->size() - offset), static_cast<Unix::off_t>(count));
|
||||
ssize_t nread = min(static_cast<Unix::off_t>(data->size() - offset), static_cast<Unix::off_t>(count));
|
||||
memcpy(buffer, data->pointer() + offset, nread);
|
||||
if (nread == 0 && descriptor && descriptor->generatorCache())
|
||||
descriptor->generatorCache().clear();
|
||||
|
|
|
@ -18,7 +18,7 @@ public:
|
|||
virtual InodeMetadata inodeMetadata(InodeIdentifier) const override;
|
||||
virtual bool set_mtime(InodeIdentifier, dword timestamp) override;
|
||||
virtual InodeIdentifier create_inode(InodeIdentifier parentInode, const String& name, Unix::mode_t, unsigned size, int& error) override;
|
||||
virtual Unix::ssize_t read_inode_bytes(InodeIdentifier, Unix::off_t offset, Unix::size_t count, byte* buffer, FileDescriptor*) const override;
|
||||
virtual ssize_t read_inode_bytes(InodeIdentifier, Unix::off_t offset, size_t count, byte* buffer, FileDescriptor*) const override;
|
||||
virtual InodeIdentifier create_directory(InodeIdentifier parentInode, const String& name, Unix::mode_t, int& error) override;
|
||||
virtual InodeIdentifier find_parent_of_inode(InodeIdentifier) const override;
|
||||
virtual RetainPtr<CoreInode> get_inode(InodeIdentifier) const override;
|
||||
|
@ -50,7 +50,7 @@ public:
|
|||
|
||||
private:
|
||||
// ^CoreInode
|
||||
virtual Unix::ssize_t read_bytes(Unix::off_t, Unix::size_t, byte* buffer, FileDescriptor*) override;
|
||||
virtual ssize_t read_bytes(Unix::off_t, size_t, byte* buffer, FileDescriptor*) override;
|
||||
virtual void populate_metadata() const override;
|
||||
virtual bool traverse_as_directory(Function<bool(const FS::DirectoryEntry&)>) override;
|
||||
virtual InodeIdentifier lookup(const String& name) override;
|
||||
|
|
|
@ -258,8 +258,6 @@ typedef ::time_t time_t;
|
|||
|
||||
typedef dword blksize_t;
|
||||
typedef dword blkcnt_t;
|
||||
typedef dword size_t;
|
||||
typedef signed_dword ssize_t;
|
||||
|
||||
#define NCCS 32
|
||||
|
||||
|
|
|
@ -17,14 +17,14 @@ bool ZeroDevice::hasDataAvailableForRead() const
|
|||
return true;
|
||||
}
|
||||
|
||||
Unix::ssize_t ZeroDevice::read(byte* buffer, Unix::size_t bufferSize)
|
||||
ssize_t ZeroDevice::read(byte* buffer, size_t bufferSize)
|
||||
{
|
||||
Unix::size_t count = min(GoodBufferSize, bufferSize);
|
||||
size_t count = min(GoodBufferSize, bufferSize);
|
||||
memset(buffer, 0, count);
|
||||
return count;
|
||||
}
|
||||
|
||||
Unix::ssize_t ZeroDevice::write(const byte*, Unix::size_t bufferSize)
|
||||
ssize_t ZeroDevice::write(const byte*, size_t bufferSize)
|
||||
{
|
||||
return min(GoodBufferSize, bufferSize);
|
||||
}
|
||||
|
|
|
@ -8,8 +8,8 @@ public:
|
|||
ZeroDevice();
|
||||
virtual ~ZeroDevice() override;
|
||||
|
||||
virtual Unix::ssize_t read(byte* buffer, Unix::size_t bufferSize) override;
|
||||
virtual Unix::ssize_t write(const byte* buffer, Unix::size_t bufferSize) override;
|
||||
virtual ssize_t read(byte* buffer, size_t bufferSize) override;
|
||||
virtual ssize_t write(const byte* buffer, size_t bufferSize) override;
|
||||
virtual bool hasDataAvailableForRead() const override;
|
||||
};
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue