#pragma once

#include <errno.h>
#include <fcntl.h>
#include <stdint.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <sys/ioctl.h>
#include <unistd.h>

namespace phosphor
{
namespace smbus
{

class Smbus
{
  public:
    Smbus() {};

    int openI2cDev(int i2cbus, char* filename, size_t size, int quiet);

    int smbusInit(int smbus_num);

    void smbusClose(int smbus_num);

    int SendSmbusRWCmdRAW(int smbus_num, int8_t device_addr, uint8_t* tx_data,
                          uint8_t tx_len, uint8_t* rsp_data, uint8_t rx_len);
};

} // namespace smbus
} // namespace phosphor
