From 0439c5257565fa873452cf87fc9a0ef68631d93b Mon Sep 17 00:00:00 2001 From: Hongze Cheng Date: Fri, 7 Jan 2022 10:54:54 +0000 Subject: [PATCH] more --- source/libs/tkv/inc/tDiskMgr.h | 4 ++-- source/libs/tkv/src/tDiskMgr.c | 19 +++++++++++++++---- 2 files changed, 17 insertions(+), 6 deletions(-) diff --git a/source/libs/tkv/inc/tDiskMgr.h b/source/libs/tkv/inc/tDiskMgr.h index 43f5bca582..ff6e0b6ab7 100644 --- a/source/libs/tkv/inc/tDiskMgr.h +++ b/source/libs/tkv/inc/tDiskMgr.h @@ -24,8 +24,8 @@ extern "C" { typedef struct SDiskMgr SDiskMgr; -int tdmReadPage(int32_t pgid, char *pData); -int tdmWritePage(int32_t pgid, const char *pData); +int tdmReadPage(SDiskMgr *pDiskMgr, int32_t pgid, void *pData); +int tdmWritePage(SDiskMgr *pDiskMgr, int32_t pgid, const void *pData); int32_t tdmAllocPage(SDiskMgr *pDiskMgr); #ifdef __cplusplus diff --git a/source/libs/tkv/src/tDiskMgr.c b/source/libs/tkv/src/tDiskMgr.c index 916eaf66d6..dfdfd1f96b 100644 --- a/source/libs/tkv/src/tDiskMgr.c +++ b/source/libs/tkv/src/tDiskMgr.c @@ -18,11 +18,22 @@ struct SDiskMgr { const char *fname; uint16_t pgsize; - int fd; + FileFd fd; + int32_t npgid; }; -int tdmReadPage(int32_t pgid, char *pData) {} +#define PAGE_OFFSET(PGID, PGSIZE) ((PGID) * (PGSIZE)) -int tdmWritePage(int32_t pgid, const char *pData) {} +int tdmReadPage(SDiskMgr *pDiskMgr, int32_t pgid, void *pData) { + taosLSeekFile(pDiskMgr->fd, PAGE_OFFSET(pgid, pDiskMgr->pgsize), SEEK_SET); + taosReadFile(pDiskMgr->fd, pData, pDiskMgr->pgsize); + return 0; +} -int32_t tdmAllocPage(SDiskMgr *pDiskMgr) {} \ No newline at end of file +int tdmWritePage(SDiskMgr *pDiskMgr, int32_t pgid, const void *pData) { + taosLSeekFile(pDiskMgr->fd, PAGE_OFFSET(pgid, pDiskMgr->pgsize), SEEK_SET); + taosWriteFile(pDiskMgr->fd, pData, pDiskMgr->pgsize); + return 0; +} + +int32_t tdmAllocPage(SDiskMgr *pDiskMgr) { return pDiskMgr->npgid++; } \ No newline at end of file