|
Voxia OS v0.0.1
Hobby Project Operating System Targeting x86-64
|
#include <atapi.hpp>
Public Member Functions | |
| ATAPIModule () | |
| void | load () override |
| void | unload () override |
Public Member Functions inherited from IOForgeBlock | |
| IOForgeBlock (const char *mod) | |
| template<typename T> | |
| void | foreach_by_type (ioforge_device *node, uint8_t type, T &&callback) |
Public Member Functions inherited from IOForge | |
| IOForge (const char *mod) | |
Static Public Member Functions | |
| static ATAPIModule * | getInstance () |
| static int | read (vnode_t *vnode, uintptr_t addr, void *buf, size_t count) |
| static int | write (vnode_t *vnode, uintptr_t addr, void *buf, size_t count) |
Static Public Member Functions inherited from IOForgeBlock | |
| static void | create (const char *name, block_device_operations_t *ops, void *identifier) |
Protected Member Functions | |
| void | probe (struct ioforge_block_device *block) |
| void | identify (struct ioforge_block_device *block) |
| void | read_sector_size (struct ioforge_block_device *block) |
| void | build_acmd (uint8_t opcode, uint32_t lba, uint32_t sector_count, uint8_t(&acmd)[16]) |
| void | read_ascii (char *out, uint16_t off, uint16_t *buff, uint16_t len) |
Additional Inherited Members | |
Protected Attributes inherited from IOForge | |
| const char * | mod |
| ATAPIModule::ATAPIModule | ( | ) |
Definition at line 7 of file init.cpp.
References IOForgeBlock::IOForgeBlock().
Referenced by getInstance().
|
static |
|
protected |
Definition at line 79 of file atapi.cpp.
References create_and_attach_vnode(), create_dev(), DEV_MAJOR_CDROM, vnode::device, flags, info, IOFORGE_BLOCK_OP_IDENTIFY, IOFORGE_FLAG_DMA, kalloc(), kfree2(), log, cdev::major, device_id::major, memset(), cdev::minor, device_id::minor, IOForge::mod, ioforge_block_device::model_number, notify_call(), vops_blk::open, ioforge_block_device::ops, vnode::ops, vnode::permission, read(), vops_blk::read, read_ascii(), read_sector_size(), serial2_printf(), str(), ioforge_block_op::submit, vnode::type, vops_blk::v_data, VFS_NOTIFY_PROBE, dentry::vnode, VNODE_TYPE_BLK, vxnamei(), write(), and vops_blk::write.
Referenced by probe().
|
overridevirtual |
Implements IOForgeBlock.
Definition at line 17 of file init.cpp.
References IOForgeBlock::foreach_by_type(), IOFORGE_BLOCK_TYPE_SATAPI, ioforge_get_block_devices_root(), log, IOForge::mod, ioforge_block_device::port, and probe().
|
protected |
Definition at line 170 of file atapi.cpp.
References addr, count, EINVAL, flags, getInstance(), IOFORGE_BLOCK_OP_PACKET, IOFORGE_FLAG_DMA, log, memcopy(), memset(), ioforge_block_device::ops, vnode::ops, ioforge_block_device::sector_size, and ioforge_block_op::submit.
Referenced by identify().
|
protected |
Definition at line 47 of file atapi.cpp.
References IOFORGE_BLOCK_OP_PACKET, IOFORGE_FLAG_DMA, log, memset(), IOForge::mod, ioforge_block_device::ops, ioforge_block_device::sector_size, and ioforge_block_op::submit.
Referenced by identify().
|
overridevirtual |
Implements IOForgeBlock.
Definition at line 239 of file atapi.cpp.
References addr, count, EINVAL, EROFS, flags, getInstance(), IOFORGE_BLOCK_OP_PACKET, IOFORGE_FLAG_DMA, log, ioforge_block_device::ops, vnode::ops, ioforge_block_device::sector_size, and ioforge_block_op::submit.
Referenced by identify().