diff --git a/cmdline/elem.h b/cmdline/elem.h index fefabaae..6f8ae406 100644 --- a/cmdline/elem.h +++ b/cmdline/elem.h @@ -46,18 +46,6 @@ */ #define POS_NULL ((block_off_t)-1) -/** - * Basic block position type. - * With 32 bits and 128k blocks you can address 256 TB. - */ -typedef uint32_t block_off_t; - -/** - * Basic data position type. - * It's signed as file size and offset are usually signed. - */ -typedef int64_t data_off_t; - /** * Content file specification. */ @@ -448,7 +436,7 @@ struct snapraid_map { * the new size will be written only at the next * 'sync'. */ -#define PARITY_SIZE_INVALID -1ULL +#define PARITY_SIZE_INVALID -1LL /** * Parity split. @@ -462,7 +450,7 @@ struct snapraid_split { * Only the latest not zero size is allowed to grow. * If the value is unset, it's PARITY_SIZE_INVALID. */ - uint64_t size; + data_off_t size; uint64_t device; /**< Device identifier of the parity. */ }; diff --git a/cmdline/parity.c b/cmdline/parity.c index 2c91ac43..44c19be5 100644 --- a/cmdline/parity.c +++ b/cmdline/parity.c @@ -170,7 +170,7 @@ void parity_size(struct snapraid_parity_handle* handle, data_off_t* out_size) if (split->st.st_size < 0) break; - if ((uint64_t)split->st.st_size < split->size) { + if (split->st.st_size < split->size) { /* this is a size error, so report only up to this size */ /* but don't fail the function */ size += split->st.st_size; @@ -184,7 +184,7 @@ void parity_size(struct snapraid_parity_handle* handle, data_off_t* out_size) *out_size = size; } -int parity_create(struct snapraid_parity_handle* handle, const struct snapraid_parity* parity, unsigned level, int mode, uint64_t limit_size) +int parity_create(struct snapraid_parity_handle* handle, const struct snapraid_parity* parity, unsigned level, int mode, data_off_t limit_size) { unsigned s; @@ -464,7 +464,7 @@ int parity_chsize(struct snapraid_parity_handle* handle, struct snapraid_parity* data_off_t run; if (is_fixed) { - if ((uint64_t)size <= split->size) { + if (size <= split->size) { is_fixed = 0; /* not fixed anymore */ run = size; } else { @@ -511,7 +511,7 @@ int parity_chsize(struct snapraid_parity_handle* handle, struct snapraid_parity* return 0; } -int parity_open(struct snapraid_parity_handle* handle, const struct snapraid_parity* parity, unsigned level, int mode, uint64_t limit_size) +int parity_open(struct snapraid_parity_handle* handle, const struct snapraid_parity* parity, unsigned level, int mode, data_off_t limit_size) { unsigned s; @@ -642,7 +642,7 @@ struct snapraid_split_handle* parity_split_find(struct snapraid_parity_handle* h for (s = 0;s < handle->split_mac;++s) { struct snapraid_split_handle* split = &handle->split_map[s]; - if ((uint64_t)*offset < split->size) + if (*offset < split->size) return split; *offset -= split->size; diff --git a/cmdline/parity.h b/cmdline/parity.h index 8c2ea093..d39f1473 100644 --- a/cmdline/parity.h +++ b/cmdline/parity.h @@ -34,13 +34,13 @@ struct snapraid_split_handle { * Only the latest not zero size is allowed to grow. * Note that this value CANNOT be PARITY_SIZE_INVALID. */ - uint64_t size; + data_off_t size; /** * Artificial size limit for testing. * 0 means unlimited. */ - uint64_t limit_size; + data_off_t limit_size; }; struct snapraid_parity_handle { @@ -88,7 +88,7 @@ void parity_overflow(struct snapraid_state* state, data_off_t size); * Create the parity file. * \param out_size Return the size of the parity file. */ -int parity_create(struct snapraid_parity_handle* handle, const struct snapraid_parity* parity, unsigned level, int mode, uint64_t limit_size); +int parity_create(struct snapraid_parity_handle* handle, const struct snapraid_parity* parity, unsigned level, int mode, data_off_t limit_size); /** * Change the parity size. @@ -106,7 +106,7 @@ void parity_size(struct snapraid_parity_handle* handle, data_off_t* out_size); /** * Open an already existing parity file. */ -int parity_open(struct snapraid_parity_handle* handle, const struct snapraid_parity* parity, unsigned level, int mode, uint64_t limit_size); +int parity_open(struct snapraid_parity_handle* handle, const struct snapraid_parity* parity, unsigned level, int mode, data_off_t limit_size); /** * Flush the parity file in the disk. diff --git a/cmdline/portable.h b/cmdline/portable.h index 025a53c4..de758089 100644 --- a/cmdline/portable.h +++ b/cmdline/portable.h @@ -267,6 +267,18 @@ #define HAVE_LOCKFILE 1 #endif +/** + * Basic block position type. + * With 32 bits and 128k blocks you can address 256 TB. + */ +typedef uint32_t block_off_t; + +/** + * Basic data position type. + * It's signed as file size and offset are usually signed. + */ +typedef int64_t data_off_t; + /** * Includes specific support for Windows or Linux. */ diff --git a/cmdline/support.c b/cmdline/support.c index 0d2552a5..6e176a0e 100644 --- a/cmdline/support.c +++ b/cmdline/support.c @@ -937,10 +937,10 @@ int advise_open(struct advise_struct* advise, int f) return 0; } -int advise_write(struct advise_struct* advise, int f, uint64_t offset, uint64_t size) +int advise_write(struct advise_struct* advise, int f, data_off_t offset, data_off_t size) { - uint64_t handle_offset; - uint64_t handle_size; + data_off_t handle_offset; + data_off_t handle_size; (void)f; @@ -1075,7 +1075,7 @@ int advise_write(struct advise_struct* advise, int f, uint64_t offset, uint64_t return 0; } -int advise_read(struct advise_struct* advise, int f, uint64_t offset, uint64_t size) +int advise_read(struct advise_struct* advise, int f, data_off_t offset, data_off_t size) { (void)advise; (void)f; diff --git a/cmdline/support.h b/cmdline/support.h index f3b543d0..5d070096 100644 --- a/cmdline/support.h +++ b/cmdline/support.h @@ -341,15 +341,15 @@ int fmtime(int f, int64_t mtime_sec, int mtime_nsec); struct advise_struct { int mode; - uint64_t dirty_begin; - uint64_t dirty_end; + data_off_t dirty_begin; + data_off_t dirty_end; }; void advise_init(struct advise_struct* advise, int mode); int advise_flags(struct advise_struct* advise); int advise_open(struct advise_struct* advise, int f); -int advise_write(struct advise_struct* advise, int f, uint64_t offset, uint64_t size); -int advise_read(struct advise_struct* advise, int f, uint64_t offset, uint64_t size); +int advise_write(struct advise_struct* advise, int f, data_off_t offset, data_off_t size); +int advise_read(struct advise_struct* advise, int f, data_off_t offset, data_off_t size); /****************************************************************************/ /* memory */