From a372c96ccaa1c49942947b6a13b2b915a4318f19 Mon Sep 17 00:00:00 2001 From: Robert Spalek Date: Sun, 16 Oct 2005 15:53:38 +0000 Subject: [PATCH] partmap.h deserves its own header --- lib/lib.h | 32 -------------------------------- lib/partmap.c | 1 + lib/partmap.h | 43 +++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 44 insertions(+), 32 deletions(-) create mode 100644 lib/partmap.h diff --git a/lib/lib.h b/lib/lib.h index 81728f10..ddd03121 100644 --- a/lib/lib.h +++ b/lib/lib.h @@ -201,38 +201,6 @@ uns random_max(uns); void *mmap_file(byte *name, unsigned *len, int writeable); void munmap_file(void *start, unsigned len); -/* partmap.c */ - -struct partmap { - int fd; - sh_off_t file_size; - sh_off_t start_off, end_off; - byte *start_map; - int writeable; -}; - -struct partmap; -struct partmap *partmap_open(byte *name, int writeable); -void partmap_close(struct partmap *p); -sh_off_t partmap_size(struct partmap *p); -void partmap_load(struct partmap *p, sh_off_t start, uns size); - -static inline void * -partmap_map(struct partmap *p, sh_off_t start, uns size) -{ - if (unlikely(!p->start_map || start < p->start_off || (sh_off_t) (start+size) > p->end_off)) - partmap_load(p, start, size); - return p->start_map + (start - p->start_off); -} - -static inline void * -partmap_map_forward(struct partmap *p, sh_off_t start, uns size) -{ - if (unlikely((sh_off_t) (start+size) > p->end_off)) - partmap_load(p, start, size); - return p->start_map + (start - p->start_off); -} - /* proctitle.c */ void setproctitle_init(int argc, char **argv); diff --git a/lib/partmap.c b/lib/partmap.c index e0832fcd..60ec168c 100644 --- a/lib/partmap.c +++ b/lib/partmap.c @@ -10,6 +10,7 @@ #include "lib/lib.h" #include "lib/lfs.h" +#include "lib/partmap.h" #include #include diff --git a/lib/partmap.h b/lib/partmap.h new file mode 100644 index 00000000..b5c48099 --- /dev/null +++ b/lib/partmap.h @@ -0,0 +1,43 @@ +/* + * UCW Library -- Mapping of File Parts + * + * (c) 2003 Martin Mares + * (c) 2003--2005 Robert Spalek + * + * This software may be freely distributed and used according to the terms + * of the GNU Lesser General Public License. + */ + +#ifndef _UCW_PARTMAP_H +#define _UCW_PARTMAP_H + +struct partmap { + int fd; + sh_off_t file_size; + sh_off_t start_off, end_off; + byte *start_map; + int writeable; +}; + +struct partmap *partmap_open(byte *name, int writeable); +void partmap_close(struct partmap *p); +sh_off_t partmap_size(struct partmap *p); +void partmap_load(struct partmap *p, sh_off_t start, uns size); + +static inline void * +partmap_map(struct partmap *p, sh_off_t start, uns size) +{ + if (unlikely(!p->start_map || start < p->start_off || (sh_off_t) (start+size) > p->end_off)) + partmap_load(p, start, size); + return p->start_map + (start - p->start_off); +} + +static inline void * +partmap_map_forward(struct partmap *p, sh_off_t start, uns size) +{ + if (unlikely((sh_off_t) (start+size) > p->end_off)) + partmap_load(p, start, size); + return p->start_map + (start - p->start_off); +} + +#endif -- 2.39.2