//----------------------------------------------------------------------------// // GNU GPL OS/K // // // // Desc: Basic Read Only ATA Long mode Driver // // // // // // Copyright © 2018-2020 The OS/K Team // // // // This file is part of OS/K. // // // // OS/K 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 // // any later version. // // // // OS/K 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 OS/K. If not, see . // //----------------------------------------------------------------------------// #include #include #include void IoDumpFirstSector(void) { char sector[513] = {0}; KernLog("Sector addr : %p\n", §or[0]); IoReadATA(sector, 1, 1); for (int i = 0; i < 513; i++) { if (isascii(sector[i])) KernLog("%c", sector[i]); else KernLog(" "); } KernLog("\n\n"); } void IoDetectATA(void) { PciDev_t *ataDevice = IoPciGetDeviceByClass(MASS_STORAGE_CLASS, SERIAL_ATA_SUBCLASS); if(!ataDevice) { return; } DebugLog("AHCI controller found at PCI config addr = %p\n", ataDevice->configAddr); }