blob: 8af3e8de2a4a8c74c8171ab41d9a383b9d7a1401 [file] [log] [blame]
Andrew Jefferya9d15082021-05-24 13:55:12 +09301#pragma once
2
3#include "NVMeContext.hpp"
4
5#include <boost/asio/ip/tcp.hpp>
6
7class NVMeMCTPContext : public NVMeContext
8{
9 public:
10 NVMeMCTPContext(boost::asio::io_service& io, int rootBus);
11
Ed Tanous74cffa82022-01-25 13:00:28 -080012 ~NVMeMCTPContext() override;
Andrew Jefferya9d15082021-05-24 13:55:12 +093013
Ed Tanous74cffa82022-01-25 13:00:28 -080014 void pollNVMeDevices() override;
15 void close() override;
16 void readAndProcessNVMeSensor() override;
17 void processResponse(void* msg, size_t len) override;
Andrew Jefferya9d15082021-05-24 13:55:12 +093018
19 private:
20 boost::asio::ip::tcp::socket nvmeSlaveSocket;
21 boost::asio::deadline_timer mctpResponseTimer;
22
23 void readResponse();
24};
25
Ed Tanous74cffa82022-01-25 13:00:28 -080026namespace nvme_mctp
Andrew Jefferya9d15082021-05-24 13:55:12 +093027{
28void init(void);
29}