summaryrefslogtreecommitdiff
path: root/sys/src/cmd/disk/smart/smart.h
blob: 66f4a702ac1fd867c7ea0aa7c62772ec664d2cce (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
enum {
	Tscsi	= 1,
	Tata	= 2,

	Sok	= 0,
	Ssoon	= 1,
	Sfail	= 2,

	Nrb	= 32,
	Pathlen	= 256,
};

typedef struct Dtype Dtype;
typedef struct Sdisk Sdisk;

struct Dtype {
	int	type;
	char	*tname;
	int	(*probe)(Sdisk*);
	int	(*enable)(Sdisk*);
	int	(*status)(Sdisk*, char*, int);
};

struct Sdisk {
	Sdisk	*next;
	Dtype	*t;
	int	fd;
	Sfis;
	char	path[Pathlen];
	char	name[28];
	char	status;
	uchar	silent;
	uvlong	lastcheck;
	uvlong	lastlog;
};

int	scsiprobe(Sdisk*);
int	scsienable(Sdisk*);
int	scsistatus(Sdisk*, char*, int);
int	ataprobe(Sdisk*);
int	ataenable(Sdisk*);
int	atastatus(Sdisk*, char*, int);

void	eprint(Sdisk*, char *, ...);