23 #ifndef _DISK_MANAGER_H_ 24 #define _DISK_MANAGER_H_ 35 #define DISK_VOLHEADER_PAGE 0 41 #define VSID_SET_NULL(vsidp) (vsidp)->sectid = NULL_SECTID; (vsidp)->volid = NULL_VOLID 42 #define VSID_IS_NULL(vsidp) ((vsidp)->sectid == NULL_SECTID || (vsidp)->volid == NULL_VOLID) 43 #define VSID_COPY(dest, src) *((VSID *) dest) = *((VSID *) src) 44 #define VSID_EQ(first, second) ((first)->volid == (second)->volid && (first)->sectid == (second)->sectid) 67 #define DISK_VOLUME_SPACE_INFO_INITIALIZER { 0, 0, 0 } 69 #define DISK_SECTS_SIZE(nsects) ((INT64) (nsects) * IO_SECTORSIZE) 70 #define DISK_SECTS_NPAGES(nsects) ((nsects) * DISK_SECTOR_NPAGES) 71 #define DISK_PAGES_TO_SECTS(npages) (CEIL_PTVDIV (npages, DISK_SECTOR_NPAGES)) 87 const char *path,
const char *name,
const char *comments,
88 int max_write_size_in_sec,
bool overwrite,
VOLID * volid_out);
91 #if defined (SERVER_MODE) 97 const INT64 * new_dbcreation,
const LOG_LSA * new_chkptlsa,
bool logchange,
105 VSID * reserved_sectors);
113 INT32 * sys_lastpage);
131 #if defined (SA_MODE) 157 #if !defined (NDEBUG)
void disk_rv_dump_set_creation_time(FILE *fp, int length_ignore, void *data)
DISK_ISVALID disk_is_page_sector_reserved_with_debug_crash(THREAD_ENTRY *thread_p, VOLID volid, PAGEID pageid, bool debug_crash)
INT16 xdisk_get_purpose_and_sys_lastpage(THREAD_ENTRY *thread_p, INT16 volid, DISK_VOLPURPOSE *vol_purpose, INT32 *sys_lastpage)
int disk_rv_volhead_extend_redo(THREAD_ENTRY *thread_p, LOG_RCV *rcv)
DISK_ISVALID disk_check(THREAD_ENTRY *thread_p, bool repair)
int disk_set_boot_hfid(THREAD_ENTRY *thread_p, INT16 volid, const HFID *hfid)
int disk_unformat(THREAD_ENTRY *thread_p, const char *vol_fullname)
SCAN_CODE disk_volume_header_next_scan(THREAD_ENTRY *thread_p, int cursor, DB_VALUE **out_values, int out_cnt, void *ctx)
int disk_add_volume_extension(THREAD_ENTRY *thread_p, DB_VOLPURPOSE purpose, DKNPAGES npages, const char *path, const char *name, const char *comments, int max_write_size_in_sec, bool overwrite, VOLID *volid_out)
DISK_ISVALID disk_check_sectors_are_reserved(THREAD_ENTRY *thread_p, VSID *vsids, int nsects)
INT32 disk_get_total_numsectors(THREAD_ENTRY *thread_p, INT16 volid)
void disk_unlock_extend(void)
int disk_volume_header_end_scan(THREAD_ENTRY *thread_p, void **ctx)
int disk_sectors_to_extend_npages(const int num_pages)
void disk_rv_dump_init_map(FILE *fp, int length_ignore, void *data)
int disk_spacedb(THREAD_ENTRY *thread_p, SPACEDB_ALL *spaceall, SPACEDB_ONEVOL **spacevols)
char * disk_get_link(THREAD_ENTRY *thread_p, INT16 volid, INT16 *next_volid, char *next_volext_fullname)
int disk_get_checkpoint(THREAD_ENTRY *thread_p, INT16 volid, LOG_LSA *vol_lsa)
int disk_rv_redo_format(THREAD_ENTRY *thread_p, LOG_RCV *rcv)
int disk_rv_volhead_extend_undo(THREAD_ENTRY *thread_p, LOG_RCV *rcv)
HFID * disk_get_boot_hfid(THREAD_ENTRY *thread_p, INT16 volid, HFID *hfid)
int disk_set_creation(THREAD_ENTRY *thread_p, INT16 volid, const char *new_vol_fullname, const INT64 *new_dbcreation, const LOG_LSA *new_chkptlsa, bool logchange, DISK_FLUSH_TYPE flush_page)
int disk_rv_redo_init_map(THREAD_ENTRY *thread_p, LOG_RCV *rcv)
int disk_rv_redo_volume_expand(THREAD_ENTRY *thread_p, LOG_RCV *rcv)
int disk_set_link(THREAD_ENTRY *thread_p, INT16 volid, INT16 next_volid, const char *next_volext_fullname, bool logchange, DISK_FLUSH_TYPE flush)
int disk_rv_redo_dboutside_newvol(THREAD_ENTRY *thread_p, LOG_RCV *rcv)
int disk_rv_undoredo_link(THREAD_ENTRY *thread_p, LOG_RCV *rcv)
int disk_rv_undoredo_set_creation_time(THREAD_ENTRY *thread_p, LOG_RCV *rcv)
void disk_rv_dump_set_boot_hfid(FILE *fp, int length_ignore, void *data)
int disk_dump_all(THREAD_ENTRY *thread_p, FILE *fp)
int disk_rv_unreserve_sectors(THREAD_ENTRY *thread_p, LOG_RCV *rcv)
void disk_volheader_check_magic(THREAD_ENTRY *thread_p, const PAGE_PTR page_volheader)
int disk_manager_init(THREAD_ENTRY *thread_p, bool load_form_disk)
int disk_get_creation_time(THREAD_ENTRY *thread_p, INT16 volid, INT64 *db_creation)
void disk_lock_extend(void)
int disk_format_first_volume(THREAD_ENTRY *thread_p, const char *full_dbname, const char *dbcomments, DKNPAGES npages)
int disk_rv_undoredo_set_boot_hfid(THREAD_ENTRY *thread_p, LOG_RCV *rcv)
int disk_volume_header_start_scan(THREAD_ENTRY *thread_p, int type, DB_VALUE **arg_values, int arg_cnt, void **ctx)
void disk_rv_dump_hdr(FILE *fp, int length_ignore, void *data)
int disk_reserve_sectors(THREAD_ENTRY *thread_p, DB_VOLPURPOSE purpose, VOLID volid_hint, int n_sectors, VSID *reserved_sectors)
void disk_manager_final(void)
void disk_rv_dump_volume_expand(FILE *fp, int length_ignore, void *data)
DISK_ISVALID disk_is_page_sector_reserved(THREAD_ENTRY *thread_p, VOLID volid, PAGEID pageid)
int disk_compare_vsids(const void *a, const void *b)
void disk_rv_dump_link(FILE *fp, int length_ignore, void *data)
int disk_unreserve_ordered_sectors(THREAD_ENTRY *thread_p, DB_VOLPURPOSE purpose, int nsects, VSID *vsids)
int disk_rv_reserve_sectors(THREAD_ENTRY *thread_p, LOG_RCV *rcv)
int disk_set_checkpoint(THREAD_ENTRY *thread_p, INT16 volid, const LOG_LSA *log_chkpt_lsa)
int disk_rv_undo_format(THREAD_ENTRY *thread_p, LOG_RCV *rcv)