1
0
mirror of https://github.com/EnderIce2/Fennix.git synced 2025-08-12 23:04:15 +00:00
Files
.devcontainer
.github
.vscode
Bootloader
Drivers
Kernel
.vscode
arch
core
drivers
audio
fs
misc
aip
aip.hpp
ata.cpp
keyboard.cpp
main.cpp
mouse.cpp
scancodes.c
uart.cpp
mem
pty
vmware
net
storage
video
trusted.c
exec
files
include
include_std
kshell
library
network
profiling
storage
subsystem
syscalls
tasking
tests
tty
virtualization
.editorconfig
.gdbinit
.gitignore
ISSUES.md
Makefile
README.md
TODO.md
dump.sh
kernel.cpp
kernel.h
kernel_config.cpp
kernel_note.cpp
kernel_thread.cpp
kernel_vfs.cpp
Userspace
rootfs
tools
.editorconfig
.gitignore
.gitlab-ci.yml
CHANGELOG.md
CODE_OF_CONDUCT.md
CONTRIBUTING.md
CREDITS.md
Doxyfile
Fennix Bootloader.code-workspace
Fennix Drivers.code-workspace
Fennix Kernel.code-workspace
Fennix Userspace.code-workspace
Fennix Website.code-workspace
Fennix.code-workspace
INSTALL.md
LICENSE.md
LICENSES.md
Makefile
README.md
SECURITY.md
STYLE_GUIDE.md
cliff.toml
config.mk
Fennix/Kernel/drivers/misc/aip/ata.cpp
2025-03-05 23:19:02 +00:00

75 lines
1.8 KiB
C++

/*
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/>.
*/
#if defined(__amd64__) || defined(__i386__)
#include <driver.hpp>
#include <cpu.hpp>
#include <pci.hpp>
#include <io.h>
extern Driver::Manager *DriverManager;
extern PCI::Manager *PCIManager;
namespace Driver::AdvancedIntegratedPeripheral
{
extern dev_t DriverID;
const struct InodeOperations opsATA = {
.Lookup = nullptr,
.Create = nullptr,
.Remove = nullptr,
.Rename = nullptr,
.Read = nullptr,
.Write = nullptr,
.Truncate = nullptr,
.Open = nullptr,
.Close = nullptr,
.Ioctl = nullptr,
.ReadDir = nullptr,
.MkDir = nullptr,
.RmDir = nullptr,
.SymLink = nullptr,
.ReadLink = nullptr,
.Seek = nullptr,
.Stat = nullptr,
};
void MasterInterruptHandler(CPU::TrapFrame *)
{
}
void SlaveInterruptHandler(CPU::TrapFrame *)
{
}
int InitializeATA()
{
v0::RegisterInterruptHandler(DriverID, 14, (void *)MasterInterruptHandler);
v0::RegisterInterruptHandler(DriverID, 15, (void *)SlaveInterruptHandler);
return 0;
}
int FinalizeATA()
{
v0::UnregisterInterruptHandler(DriverID, 14, (void *)MasterInterruptHandler);
v0::UnregisterInterruptHandler(DriverID, 15, (void *)SlaveInterruptHandler);
return 0;
}
}
#endif