project called, PDBM. The project is DBM like project, with a B+tree, and key -> value data, similar to BDB, QDBM or GDBM.
For that project I need implement a Pager system. As I understand a Page is the minimum IO block, and a Data could have more than a Page but a Page just one Data.. Am I right? Here I will write you my structures... please correct me if i am wrong... /* ** This is the Page 0. This is a special Page that have information ** about total of pages, total of allocated but free pages, a pointer to the ** first and last allocated but free pages. */ typedef struct MainPage { unsigned char lock; size_t first_free; size_t last_free; size_t total; size_t free; } MainPage; /* ** The pager struct. A page is a chunk of 1024 bytes of data. ** A data cold have more than a page, but a page could have only ** a data. So a Page is the minimun allocated space for a data. */ typedef struct Pager { /***********************************************/ unsigned char lock; /* 1-Byte, if the Page is locked. */ size_t main; /* 4-Byte, a pointer to the begin of the data */ size_t next; /* 4-Byte, a pointer to the next Page position */ unsigned char file; /* 1-Byte, In what file part if the next Pager */ unsigned char data[1024]; /* 1 KB, the content of a Page */ /***********************************************/ } Pager; #define PAGER_LOCKED 0xAF #define PAGER_UNLOCK 0xFF -- Cesar Rodas http://www.sf.net/projects/pagerank (The PageRank made easy...) http://www.sf.net/projects/fastfs ( The Fast File System) Mobile Phone: 595 961 974165 Phone: 595 21 645590 [EMAIL PROTECTED] [EMAIL PROTECTED]