#include #include #include #include #include #include #include void swapfs_init(void) { static_assert((PGSIZE % SECTSIZE) == 0); if (!ide_device_valid(SWAP_DEV_NO)) { panic("swap fs isn't available.\n"); } max_swap_offset = ide_device_size(SWAP_DEV_NO) / (PGSIZE / SECTSIZE); } int swapfs_read(swap_entry_t entry, struct Page *page) { return ide_read_secs(SWAP_DEV_NO, swap_offset(entry) * PAGE_NSECT, page2kva(page), PAGE_NSECT); } int swapfs_write(swap_entry_t entry, struct Page *page) { return ide_write_secs(SWAP_DEV_NO, swap_offset(entry) * PAGE_NSECT, page2kva(page), PAGE_NSECT); }