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