Files
mckernel/test/rusage/verbs/mmib.h
2017-09-20 19:48:32 +09:00

55 lines
1.5 KiB
C
Executable File

/*
* mmib.h
*
* Created on: 2011/10/19
* Author: simin
*/
#ifndef MMIB_H_
#define MMIB_H_
#include "mtype.h"
#include "ibcomm.h"
enum mmib_buf_type{
MMIB_MR_BUF,
MMIB_CQ_BUF,
MMIB_QP_BUF,
};
enum mmib_buf_pool_state{
MMIB_BUF_POOL_RESET,
MMIB_BUF_POOL_ACTIVE
};
struct mmib_buf_pool{
addr_t offset;
int page_no; // start page_no
int size;
addr_t cur_start; // offset in page
enum mmib_buf_pool_state state;
};
typedef struct mmib_mrinfo{
struct ibv_mr *mr;
buf_t *buf; /*Registered buf*/
}mmib_mrinfo_t;
extern int mmib_pool_init();
extern buf_t *mmib_new_buf(int size, enum mmib_buf_type buf_type);
extern void mmib_destroy_buf(buf_t *buf);
extern void mmib_pool_destroy();
extern void* mmib_qp_buf_alloc(int size);
extern void* mmib_cq_buf_alloc(int size);
extern void mmib_buf_free(void* buf);
extern int mmib_resource_create(config_t config, resource_t *res);
extern int mmib_pd_create(resource_t *res, pdinfo_t *pdinfo);
extern int mmib_qp_create(resource_t *res, pdinfo_t *pdinfo, qpinfo_t *qpinfo);
extern int mmib_mr_create(resource_t *res, pdinfo_t *pdinfo, buf_t *buf, mmib_mrinfo_t *mrinfo);
extern int mmib_post_send_req(qpinfo_t *qpinfo, mmib_mrinfo_t *mrinfo_list, int opcode, int tag);
extern int mmib_post_recv_req(qpinfo_t *qpinfo, mmib_mrinfo_t *mrinfo_list, int tag);
extern int mmib_poll_cq(qpinfo_t *qpinfo, int cq_flg, int *tag);
extern int mmib_resource_destroy(config_t *config, resource_t *res);
#endif /* MMIB_H_ */