MCPcopy Create free account
hub / github.com/LemonOSProject/LemonOS / Controller

Class Controller

Kernel/include/nvme.h:202–394  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

200 };
201
202 class Controller{
203 public:
204 enum DriverStatus{
205 ControllerNotReady,
206 ControllerError,
207 ControllerReady,
208 };
209 private:
210
211 enum ControllerConfigCommandSet{
212 NVMeConfigCmdSetNVM = 0,
213 NVMeConfigCmdSetAdminOnly = 0b111,
214 };
215
216 enum AdminCommands{
217 AdminCmdDeleteIOSubmissionQueue = 0x0,
218 AdminCmdCreateIOSubmissionQueue = 0x1,
219 AdminCmdGetLogPage = 0x2,
220 AdminCmdDeleteIOCompletionQueue = 0x4,
221 AdminCmdCreateIOCompletionQueue = 0x5,
222 AdminCmdIdentify = 0x6,
223 };
224
225 enum ControllerType{
226 IOController = 1,
227 DiscoveryController = 2,
228 AdminController = 3,
229 };
230
231 struct ControllerIdentity{
232 uint16_t vendorID; // PCI Vendor ID
233 uint16_t subsystemVendorID; // PCI Subsystem Vendor ID
234 int8_t serialNumber[20]; // ASCII encoded serial number
235 int8_t modelNumber[40]; // ASCII encoded model number
236 int8_t firmwareRevision[8]; // ASCII encoded firmware revision
237 uint8_t recommendedArbitrationBurst;
238 uint8_t ieee[3]; // IEEE Organization Unique Identifier
239 uint8_t cmic; // Controller Multi-Path I/O and Namespace Sharing Capabilities
240 uint8_t maximumDataTransferSize; // Maximum Data Transfer Size (2 ^ (CAP.MPSMIN * n))
241 uint16_t controllerID; // NVM unique controller ID
242 uint32_t version;
243 uint32_t rtd3ResumeLatency;
244 uint32_t rtd3EntryLatency;
245 uint32_t oaes;
246 uint32_t controllerAttributes;
247 uint16_t rrls;
248 uint8_t reserved[9];
249 uint8_t controllerType;
250 uint8_t fGUID[16];
251 uint16_t crdt[3];
252 uint8_t reserved2[122];
253 uint16_t oacs;
254 uint8_t acl;
255 uint8_t aerl;
256 uint8_t firmwareUpdates;
257 uint8_t logPageAttributes;
258 uint8_t errorLogPageEntries;
259 uint8_t numberOfPowerStates;

Callers

nothing calls this directly

Calls

no outgoing calls

Tested by

no test coverage detected