#include <stdbool.h>
#include <stdint.h>
#include <sys/kassert.h>
#include <sys/kdebug.h>
#include <sys/queue.h>
#include <sys/sga.h>
#include <sys/disk.h>
#include <sys/spinlock.h>
Go to the source code of this file.
|
| LIST_HEAD (DiskList, Disk) |
|
void | Disk_RemoveDisk (Disk *disk) |
|
Disk * | Disk_GetByID (uint64_t ctrlNo, uint64_t diskNo) |
|
int | Disk_Read (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_Flush (Disk *disk, void *buf, SGArray *sga, DiskCB cb, void *arg) |
|
static void | Debug_Disks (int argc, const char *argv[]) |
|
| REGISTER_DBGCMD (disks, "List disks", Debug_Disks) |
|
static void | Debug_DumpDisk (int argc, const char *argv[]) |
|
| REGISTER_DBGCMD (dumpdisk, "Dump disk sector", Debug_DumpDisk) |
|
◆ Debug_Disks()
static void Debug_Disks |
( |
int |
argc, |
|
|
const char * |
argv[] |
|
) |
| |
|
static |
Definition at line 62 of file disk.c.
63{
65
67 kprintf(
"disk%lld.%lld: %lld Sectors\n",
69 }
70}
int kprintf(const char *fmt,...)
#define LIST_FOREACH(var, head, field)
◆ Debug_DumpDisk()
static void Debug_DumpDisk |
( |
int |
argc, |
|
|
const char * |
argv[] |
|
) |
| |
|
static |
Definition at line 75 of file disk.c.
76{
81
82 if (argc != 4) {
83 kprintf(
"dumpdisk requires 4 arguments!\n");
84 return;
85 }
86
90
92
96
97 kprintf(
"Reading Sector %lld from disk%lld.%lld\n", sector, ctrlNo, diskNo);
98
101}
int Disk_Read(Disk *disk, void *buf, SGArray *sga, DiskCB cb, void *arg)
Disk * Disk_GetByID(uint64_t ctrlNo, uint64_t diskNo)
uint64_t Debug_StrToInt(const char *s)
void Debug_PrintHex(const char *data, size_t length, off_t off, size_t limit)
SGEntry entries[SGARRAY_MAX_ENTRIES]
◆ Disk_Flush()
Definition at line 56 of file disk.c.
57{
58 return disk->
flush(disk,
buf, sga, cb, arg);
59}
int(* flush)(Disk *, void *, SGArray *, DiskCB, void *)
◆ Disk_GetByID()
Definition at line 31 of file disk.c.
32{
34
37 return d;
38 }
39
41}
◆ Disk_Read()
Definition at line 44 of file disk.c.
45{
46 return disk->
read(disk,
buf, sga, cb, arg);
47}
int(* read)(Disk *, void *, SGArray *, DiskCB, void *)
◆ Disk_RemoveDisk()
void Disk_RemoveDisk |
( |
Disk * |
disk | ) |
|
Definition at line 25 of file disk.c.
26{
28}
#define LIST_REMOVE(elm, field)
◆ Disk_Write()
Definition at line 50 of file disk.c.
51{
52 return disk->
write(disk,
buf, sga, cb, arg);
53}
int(* write)(Disk *, void *, SGArray *, DiskCB, void *)
◆ LIST_HEAD()
LIST_HEAD |
( |
DiskList |
, |
|
|
Disk |
|
|
) |
| |
Definition at line 16 of file disk.c.
20{
22}
#define LIST_INSERT_HEAD(head, elm, field)
◆ REGISTER_DBGCMD() [1/2]
◆ REGISTER_DBGCMD() [2/2]