openUBMC Chip Abstract Layer V0.1
载入中...
搜索中...
未找到
Edma(PCIe DMA驱动)

原先的EDMA驱动,由Edma类作为Edma设备的总管,edma_pcie作为具体Edma设备的驱动 bcal设计IDriver的子类为设备总管,通过index访问设备,不限定设备的实现方式,因此不再需要edma_pcie

接口用途

  • ipmi_core 收发ipmi消息

对比

<tt>free</tt>

  • 原接口
    void free();
  • 新接口
    void free();
  • 变更说明 作为IDriver的公共函数

<tt>init</tt>

  • 原接口
    void init();
  • 新接口
    void config(int32_t index, void *config, uint32_t size);
  • 变更说明 设备初始化函数名称统一变更

<tt>open</tt>

  • 原接口
    uint8_t open();
  • 新接口 无
  • 变更说明 不再需要open接口,如果需要打开设备,在新的init接口执行

<tt>set_fd</tt>/<tt>get_fd</tt>

  • 原接口
    void set_fd(uint8_t idx, int32_t fd);
    int32_t get_fd(uint8_t idx);
  • 新接口 无
  • 变更说明 原接口需要在Edma类实例之间(owner和非owner)、Edma类和edma_pcie类之间传递句柄资源。 新接口对设备的形式不做限定,因此删除该接口

<tt>edma_poll</tt>

  • 原接口
    uint8_t edma_poll();
  • 新接口
    uint8_t edma_poll();
  • 变更说明 无变更

<tt>edma_read</tt>

  • 原接口
    string edma_read(uint8_t id, uint32_t max_len, uint32_t timeout);
  • 新接口
    string_t edma_read(int32_t index, uint32_t max_len, uint32_t timeout);
  • 变更说明 入参形式小修改;明确规定读写的消息格式

<tt>edma_write</tt>

  • 原接口
    void edma_write(uint8_t id, const string_view &val, uint32_t timeout);
  • 新接口
    int32_t edma_write(int32_t index, const std::string_view &val, uint32_t timeout);
  • 变更说明 入参形式小修改;明确规定读写的消息格式