mirror of
https://github.com/Fennix-Project/Kernel.git
synced 2025-07-14 00:39:19 +00:00
Update kernel code
This commit is contained in:
49
FileSystem/Mounts/Null.cpp
Normal file
49
FileSystem/Mounts/Null.cpp
Normal file
@ -0,0 +1,49 @@
|
||||
/*
|
||||
This file is part of Fennix Kernel.
|
||||
|
||||
Fennix Kernel is free software: you can redistribute it and/or
|
||||
modify it under the terms of the GNU General Public License as
|
||||
published by the Free Software Foundation, either version 3 of
|
||||
the License, or (at your option) any later version.
|
||||
|
||||
Fennix Kernel is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with Fennix Kernel. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#include <filesystem.hpp>
|
||||
#include <errno.h>
|
||||
|
||||
#include "../../kernel.h"
|
||||
|
||||
using namespace VirtualFileSystem;
|
||||
|
||||
ReadFSFunction(Null_Read)
|
||||
{
|
||||
if (Size <= 0)
|
||||
return 0;
|
||||
|
||||
memset(Buffer, 0, Size);
|
||||
return Size;
|
||||
}
|
||||
|
||||
ReadFSFunction(Null_Write)
|
||||
{
|
||||
return Size;
|
||||
}
|
||||
|
||||
FileSystemOperations null_op = {
|
||||
.Name = "Null",
|
||||
.Read = Null_Read,
|
||||
.Write = Null_Write,
|
||||
};
|
||||
|
||||
void Init_Null(Virtual *vfs_ctx)
|
||||
{
|
||||
Node *n = vfs_ctx->Create("null", CHARDEVICE, DevFS);
|
||||
n->Operator = &null_op;
|
||||
}
|
52
FileSystem/Mounts/Random.cpp
Normal file
52
FileSystem/Mounts/Random.cpp
Normal file
@ -0,0 +1,52 @@
|
||||
/*
|
||||
This file is part of Fennix Kernel.
|
||||
|
||||
Fennix Kernel is free software: you can redistribute it and/or
|
||||
modify it under the terms of the GNU General Public License as
|
||||
published by the Free Software Foundation, either version 3 of
|
||||
the License, or (at your option) any later version.
|
||||
|
||||
Fennix Kernel is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with Fennix Kernel. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#include <filesystem.hpp>
|
||||
#include <rand.hpp>
|
||||
#include <errno.h>
|
||||
|
||||
#include "../../kernel.h"
|
||||
|
||||
using namespace VirtualFileSystem;
|
||||
|
||||
ReadFSFunction(Random_Read)
|
||||
{
|
||||
if (Size <= 0)
|
||||
return 0;
|
||||
|
||||
uint64_t *buf = (uint64_t *)Buffer;
|
||||
for (size_t i = 0; i < Size / sizeof(uint64_t); i++)
|
||||
buf[i] = Random::rand64();
|
||||
return Size;
|
||||
}
|
||||
|
||||
ReadFSFunction(Random_Write)
|
||||
{
|
||||
return Size;
|
||||
}
|
||||
|
||||
FileSystemOperations random_op = {
|
||||
.Name = "Random",
|
||||
.Read = Random_Read,
|
||||
.Write = Random_Write,
|
||||
};
|
||||
|
||||
void Init_Random(Virtual *vfs_ctx)
|
||||
{
|
||||
Node *n = vfs_ctx->Create("random", CHARDEVICE, DevFS);
|
||||
n->Operator = &random_op;
|
||||
}
|
43
FileSystem/Mounts/Teletype.cpp
Normal file
43
FileSystem/Mounts/Teletype.cpp
Normal file
@ -0,0 +1,43 @@
|
||||
/*
|
||||
This file is part of Fennix Kernel.
|
||||
|
||||
Fennix Kernel is free software: you can redistribute it and/or
|
||||
modify it under the terms of the GNU General Public License as
|
||||
published by the Free Software Foundation, either version 3 of
|
||||
the License, or (at your option) any later version.
|
||||
|
||||
Fennix Kernel is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with Fennix Kernel. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#include <filesystem.hpp>
|
||||
#include <errno.h>
|
||||
|
||||
#include "../../kernel.h"
|
||||
|
||||
using namespace VirtualFileSystem;
|
||||
|
||||
ReadFSFunction(tty_Write)
|
||||
{
|
||||
for (size_t i = 0; i < Size; i++)
|
||||
putchar(((char *)Buffer)[i]);
|
||||
|
||||
Display->SetBuffer(0);
|
||||
return Size;
|
||||
}
|
||||
|
||||
FileSystemOperations tty_op = {
|
||||
.Name = "tty",
|
||||
.Write = tty_Write,
|
||||
};
|
||||
|
||||
void Init_Teletype(Virtual *vfs_ctx)
|
||||
{
|
||||
Node *n = vfs_ctx->Create("tty", CHARDEVICE, DevFS);
|
||||
n->Operator = &tty_op;
|
||||
}
|
49
FileSystem/Mounts/Zero.cpp
Normal file
49
FileSystem/Mounts/Zero.cpp
Normal file
@ -0,0 +1,49 @@
|
||||
/*
|
||||
This file is part of Fennix Kernel.
|
||||
|
||||
Fennix Kernel is free software: you can redistribute it and/or
|
||||
modify it under the terms of the GNU General Public License as
|
||||
published by the Free Software Foundation, either version 3 of
|
||||
the License, or (at your option) any later version.
|
||||
|
||||
Fennix Kernel is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with Fennix Kernel. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#include <filesystem.hpp>
|
||||
#include <errno.h>
|
||||
|
||||
#include "../../kernel.h"
|
||||
|
||||
using namespace VirtualFileSystem;
|
||||
|
||||
ReadFSFunction(Zero_Read)
|
||||
{
|
||||
if (Size <= 0)
|
||||
return 0;
|
||||
|
||||
memset(Buffer, 0, Size);
|
||||
return Size;
|
||||
}
|
||||
|
||||
ReadFSFunction(Zero_Write)
|
||||
{
|
||||
return Size;
|
||||
}
|
||||
|
||||
FileSystemOperations zero_op = {
|
||||
.Name = "Zero",
|
||||
.Read = Zero_Read,
|
||||
.Write = Zero_Write,
|
||||
};
|
||||
|
||||
void Init_Zero(Virtual *vfs_ctx)
|
||||
{
|
||||
Node *n = vfs_ctx->Create("zero", CHARDEVICE, DevFS);
|
||||
n->Operator = &zero_op;
|
||||
}
|
Reference in New Issue
Block a user