| #pragma once |
| |
| #include <string> |
| #include <experimental/filesystem> |
| |
| namespace open_power |
| { |
| namespace occ |
| { |
| |
| namespace fs = std::experimental::filesystem; |
| |
| /** @class Bus |
| * @brief Manages the bus on which the OCC device exists |
| */ |
| class Bus |
| { |
| public: |
| Bus() = delete; |
| ~Bus() = default; |
| Bus(const Bus&) = delete; |
| Bus& operator=(const Bus&) = delete; |
| Bus(Bus&&) = default; |
| Bus& operator=(Bus&&) = default; |
| |
| /** @brief Constructs the Bus object |
| * |
| * @param[in] instance - OCC device index |
| */ |
| explicit Bus(int instance) : |
| config("0" + std::to_string(instance) + ":0" + |
| std::to_string(instance) + ":00:06") |
| { |
| // Nothing to do here |
| } |
| |
| void reset() const; |
| |
| private: |
| /** @brief Config value to be used to do bind and unbind */ |
| const std::string config; |
| |
| /** @brief To bind the device to the OCC's bus driver, do: |
| * |
| * Write 0x:0x:00:06 to: /sys/bus/fsi/drivers/sbefifo/bind |
| */ |
| static fs::path bindPath; |
| |
| /** @brief To un-bind the dvice from the OCC's bus driver, do: |
| * Write 0x:0x:00:06 to: /sys/bus/fsi/drivers/sbefifo/unbind |
| */ |
| static fs::path unBindPath; |
| }; |
| |
| } // namespace occ |
| } // namespace open_power |