9#include <sys/kassert.h>
10#include <sys/kdebug.h>
14#include <sys/spinlock.h>
46 return disk->
read(disk,
buf, sga, cb, arg);
52 return disk->
write(disk,
buf, sga, cb, arg);
58 return disk->
flush(disk,
buf, sga, cb, arg);
67 kprintf(
"disk%lld.%lld: %lld Sectors\n",
83 kprintf(
"dumpdisk requires 4 arguments!\n");
97 kprintf(
"Reading Sector %lld from disk%lld.%lld\n", sector, ctrlNo, diskNo);
void Disk_RemoveDisk(Disk *disk)
int Disk_Flush(Disk *disk, void *buf, SGArray *sga, DiskCB cb, void *arg)
int Disk_Write(Disk *disk, void *buf, SGArray *sga, DiskCB cb, void *arg)
int Disk_Read(Disk *disk, void *buf, SGArray *sga, DiskCB cb, void *arg)
static void Debug_DumpDisk(int argc, const char *argv[])
Disk * Disk_GetByID(uint64_t ctrlNo, uint64_t diskNo)
static void Debug_Disks(int argc, const char *argv[])
void Disk_AddDisk(Disk *disk)
void(* DiskCB)(int, void *)
int kprintf(const char *fmt,...)
uint64_t Debug_StrToInt(const char *s)
#define REGISTER_DBGCMD(_NAME, _DESC, _FUNC)
void Debug_PrintHex(const char *data, size_t length, off_t off, size_t limit)
#define LIST_REMOVE(elm, field)
#define LIST_HEAD_INITIALIZER(head)
#define LIST_FOREACH(var, head, field)
#define LIST_INSERT_HEAD(head, elm, field)
#define LIST_HEAD(name, type)
SGEntry entries[SGARRAY_MAX_ENTRIES]
int(* write)(Disk *, void *, SGArray *, DiskCB, void *)
int(* flush)(Disk *, void *, SGArray *, DiskCB, void *)
int(* read)(Disk *, void *, SGArray *, DiskCB, void *)