xref: /openbmc/estoraged/include/verifyDriveGeometry.hpp (revision e6ffe7040eb28d8ea2a242177d2780516b6f5cf0)
1*e6ffe704SJohn Edward Broadbent #pragma once
2*e6ffe704SJohn Edward Broadbent 
3*e6ffe704SJohn Edward Broadbent #include "erase.hpp"
4*e6ffe704SJohn Edward Broadbent 
5*e6ffe704SJohn Edward Broadbent #include <string_view>
6*e6ffe704SJohn Edward Broadbent 
7*e6ffe704SJohn Edward Broadbent class VerifyDriveGeometry : public Erase
8*e6ffe704SJohn Edward Broadbent {
9*e6ffe704SJohn Edward Broadbent   public:
10*e6ffe704SJohn Edward Broadbent     /** @brief Creates a verifyDriveGeomentry erase object.
11*e6ffe704SJohn Edward Broadbent      *
12*e6ffe704SJohn Edward Broadbent      *  @param[in] inDevPath - the linux device path for the block device.
13*e6ffe704SJohn Edward Broadbent      */
14*e6ffe704SJohn Edward Broadbent     VerifyDriveGeometry(std::string_view inDevPath) : Erase(inDevPath)
15*e6ffe704SJohn Edward Broadbent     {}
16*e6ffe704SJohn Edward Broadbent 
17*e6ffe704SJohn Edward Broadbent     /** @brief Test if input is in between the max and min expected sizes,
18*e6ffe704SJohn Edward Broadbent      * and throws errors accordingly.
19*e6ffe704SJohn Edward Broadbent      *
20*e6ffe704SJohn Edward Broadbent      *  @param[in] bytes - Size of the block device
21*e6ffe704SJohn Edward Broadbent      */
22*e6ffe704SJohn Edward Broadbent     void geometryOkay(uint64_t bytes);
23*e6ffe704SJohn Edward Broadbent };
24