This source file includes following definitions.
- RF_SstfQ_t
- RF_Sstf_t
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 #ifndef _RF__RF_SSTF_H_
32 #define _RF__RF_SSTF_H_
33
34 #include "rf_diskqueue.h"
35
36 typedef struct RF_SstfQ_s {
37 RF_DiskQueueData_t *queue;
38 RF_DiskQueueData_t *qtail;
39 int qlen;
40 } RF_SstfQ_t;
41
42 typedef struct RF_Sstf_s {
43 RF_SstfQ_t left;
44 RF_SstfQ_t right;
45 RF_SstfQ_t lopri;
46 RF_SectorNum_t last_sector;
47 int dir;
48 int allow_reverse;
49 } RF_Sstf_t;
50
51 void *rf_SstfCreate(RF_SectorCount_t, RF_AllocListElem_t *,
52 RF_ShutdownList_t **);
53 void *rf_ScanCreate(RF_SectorCount_t, RF_AllocListElem_t *,
54 RF_ShutdownList_t **);
55 void *rf_CscanCreate(RF_SectorCount_t, RF_AllocListElem_t *,
56 RF_ShutdownList_t **);
57 void rf_SstfEnqueue(void *, RF_DiskQueueData_t *, int);
58 RF_DiskQueueData_t *rf_SstfDequeue(void *);
59 RF_DiskQueueData_t *rf_SstfPeek(void *);
60 int rf_SstfPromote(void *, RF_StripeNum_t, RF_ReconUnitNum_t);
61 RF_DiskQueueData_t *rf_ScanDequeue(void *);
62 RF_DiskQueueData_t *rf_ScanPeek(void *);
63 RF_DiskQueueData_t *rf_CscanDequeue(void *);
64 RF_DiskQueueData_t *rf_CscanPeek(void *);
65
66 #endif