CS350 COS
COS
Loading...
Searching...
No Matches
disk.h
Go to the documentation of this file.
1
2#ifndef __SYS_DISK_H__
3#define __SYS_DISK_H__
4
5#include <sys/queue.h>
6#include <sys/sga.h>
7
8typedef void (*DiskCB)(int, void *);
9
10typedef struct Disk Disk;
11typedef struct Disk {
12 void *handle; // Driver handle
13 uint64_t ctrlNo; // Controller number
14 uint64_t diskNo; // Disk number
15 uint64_t sectorSize; // Sector Size
16 uint64_t sectorCount; // Sector Count
17 uint64_t diskSize; // Disk Size in Bytes
18 int (*read)(Disk *, void *, SGArray *, DiskCB, void *); // Read
19 int (*write)(Disk *, void *, SGArray *, DiskCB, void *); // Write
20 int (*flush)(Disk *, void *, SGArray *, DiskCB, void *); // Flush
21 LIST_ENTRY(Disk) entries;
22} Disk;
23
24void Disk_AddDisk(Disk *disk);
25void Disk_RemoveDisk(Disk *disk);
26Disk *Disk_GetByID(uint64_t ctrlNo, uint64_t diskNo);
27int Disk_Read(Disk *disk, void * buf, SGArray *sga, DiskCB cb, void *arg);
28int Disk_Write(Disk *disk, void * buf, SGArray *sga, DiskCB cb, void *arg);
29int Disk_Flush(Disk *disk, void * buf, SGArray *sga, DiskCB cb, void *arg);
30
31#endif /* __SYS_DISK_H__ */
32
void Disk_AddDisk(Disk *disk)
void Disk_RemoveDisk(Disk *disk)
Definition: disk.c:25
void(* DiskCB)(int, void *)
Definition: disk.h:8
int Disk_Flush(Disk *disk, void *buf, SGArray *sga, DiskCB cb, void *arg)
Definition: disk.c:56
int Disk_Write(Disk *disk, void *buf, SGArray *sga, DiskCB cb, void *arg)
Definition: disk.c:50
int Disk_Read(Disk *disk, void *buf, SGArray *sga, DiskCB cb, void *arg)
Definition: disk.c:44
Disk * Disk_GetByID(uint64_t ctrlNo, uint64_t diskNo)
Definition: disk.c:31
static char buf[4096]
Definition: ethdump.c:10
Definition: sga.h:14
Definition: disk.h:11
uint64_t ctrlNo
Definition: disk.h:13
void * handle
Definition: disk.h:12
uint64_t sectorCount
Definition: disk.h:16
uint64_t diskNo
Definition: disk.h:14
int(* write)(Disk *, void *, SGArray *, DiskCB, void *)
Definition: disk.h:19
int(* flush)(Disk *, void *, SGArray *, DiskCB, void *)
Definition: disk.h:20
uint64_t diskSize
Definition: disk.h:17
uint64_t sectorSize
Definition: disk.h:15
LIST_ENTRY(Disk) entries
int(* read)(Disk *, void *, SGArray *, DiskCB, void *)
Definition: disk.h:18
unsigned long uint64_t
Definition: types.h:13