MCPcopy Create free account
hub / github.com/davidgiven/fluxengine / getTrackOrdering

Function getTrackOrdering

lib/data/layout.cc:57–102  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

55}
56
57static std::vector<CylinderHead> getTrackOrdering(
58 LayoutProto::Order ordering, unsigned tracks, unsigned sides)
59{
60 std::vector<CylinderHead> trackList;
61 switch (ordering)
62 {
63 case LayoutProto::CHS:
64 {
65 for (unsigned track = 0; track < tracks; track++)
66 {
67 for (unsigned side = 0; side < sides; side++)
68 trackList.push_back({track, side});
69 }
70 break;
71 }
72
73 case LayoutProto::HCS:
74 {
75 for (unsigned side = 0; side < sides; side++)
76 {
77 for (unsigned track = 0; track < tracks; track++)
78 trackList.push_back({track, side});
79 }
80 break;
81 }
82
83 case LayoutProto::HCS_RH1:
84 {
85 for (unsigned side = 0; side < sides; side++)
86 {
87 if (side == 0)
88 for (unsigned track = 0; track < tracks; track++)
89 trackList.push_back({track, side});
90 if (side == 1)
91 for (unsigned track = tracks; track >= 0; track--)
92 trackList.push_back({track - 1, side});
93 }
94 break;
95 }
96
97 default:
98 error("LAYOUT: invalid track trackList");
99 }
100
101 return trackList;
102}
103
104static std::vector<unsigned> expandSectorList(
105 const SectorListProto& sectorsProto)

Callers 1

DiskLayoutMethod · 0.85

Calls 2

errorFunction · 0.85
push_backMethod · 0.45

Tested by

no test coverage detected