2 Star 1 Fork 1

吴越/spdk_oss

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
克隆/下载
objectstore.h 1.82 KB
一键复制 编辑 原始数据 按行查看 历史
吴越 提交于 2020-12-24 15:02 . up
#ifndef _OBJECTSTORE_H_
#define _OBJECTSTORE_H_
#include "spdk/thread.h"
#include "spdk/event.h"
#include "spdk/env.h"
#include "message.h"
#include "operation.h"
// #define ostore_rqst(req) ((void*)(req))
// #define ostore_async_ctx(req) ((void*)( (char*)((req)) + sizeof(message_t)))
// typedef int (*op_handle_func_ptr_t) (void* rqst_ctx , cb_func_t cb);
enum OBJECTSTORE_TYPE{
NULLSTORE,
CHUNKSTORE,
ZSTORE,
};
typedef struct objstore_interface_t {
// int (*stat)(char *out, uint32_t len);
//通常不会使用异步的 mount 和 unmount , mkfs
// int (*mkfs) (const char* dev_list[], int mkfs_flag, cb_func_t , void*);
// int (*mount)(const char* dev_list[], /* size = 3*/ int mount_flag /**/, cb_func_t , void*);
// int (*unmount)(cb_func_t , void*);
int (*mkfs) (const char* dev_list[], int mkfs_flag);
int (*mount)(const char* dev_list[], /* size = 3*/ int mount_flag /**/);
int (*unmount)();
const int (*obj_async_op_context_size)();
/**
* 调用者在 message->meta_buffer 中传递操作码和参数
* 见 operation.h ,
* message->data_buffer 指向 DMA safe 的缓冲区
* 调用者务必按照如下方式分配请求本身需要的连续内存
* p = malloc(sizeof(message_t) + obj_async_op_context_size());
* 以保证 obj_async_op_context 的内存紧连着 message 的内存
* 返回值:0 代表异步操作提交成功,否则代表操作提交失败
* 回调函数:status_code 为 0 代表执行成功,否则代表执行失败
* 错误码见:util/errcode.h
*/
int (*obj_async_op_call)(void *request_msg_with_op_context, cb_func_t _cb);
//Private API
} objstore_interface_t ;
typedef objstore_interface_t objstore_impl_t;
extern const objstore_impl_t* ostore_get_impl( int store_type );
#endif
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/wynebula/spdk_oss.git
git@gitee.com:wynebula/spdk_oss.git
wynebula
spdk_oss
spdk_oss
master

搜索帮助