On Mon, Oct 20, 2008 at 11:36:30AM +0100, Mel Gorman wrote: > On (17/10/08 17:14), Andy Whitcroft didst pronounce: > > Currently we have three types of function: > > > > file local -- marked static in the normal way, > > library local -- external but prefixed with __lh_ > > library exported -- external and listed in the library.lds file > > > > While the library prefix works, it does not allow functions to trivially > > move from file local to library local as all references to the function > > have to be modified to the new name. > > > > This patch introduces a new idiom. When a function is intended to be > > library local it is already necessary to declare that function in the > > libhugetlbfs_internal.h, if we also add a single define for that function > > adding the __lh_ prefix (as below) then all other references including the > > original definition may use the original name unchanged but the function > > will remain unexported: > > > > #define hpool_sizes __lh_hpool_sizes > > extern int hpool_sizes(struct hpage_pool *, int); > > > > This patch converts all current library local functions to this new idiom. > > > > Signed-off-by: Andy Whitcroft <[EMAIL PROTECTED]> > > There are two spaces vs tabs issues noted below, but it's not a biggie. > Other than that, I didn't spot anything bad. > > Acked-by: Mel Gorman <[EMAIL PROTECTED]> > > > --- > > alloc.c | 2 +- > > debug.c | 2 +- > > elflink.c | 6 +++--- > > hugeadm.c | 14 +++++++------- > > hugetlbfs.h | 3 ++- > > hugeutils.c | 20 ++++++++++---------- > > init.c | 10 +++++----- > > kernel-features.c | 2 +- > > libhugetlbfs_internal.h | 33 ++++++++++++++++++++++++--------- > > morecore.c | 10 +++++----- > > pagesize.c | 2 +- > > 11 files changed, 60 insertions(+), 44 deletions(-) > > > > diff --git a/alloc.c b/alloc.c > > index 197c1ce..750b2cb 100644 > > --- a/alloc.c > > +++ b/alloc.c > > @@ -103,7 +103,7 @@ void *get_huge_pages(size_t len, ghp_t flags) > > } > > > > /* Fault the region to ensure accesses succeed */ > > - if (__lh_hugetlbfs_prefault(heap_fd, buf, len) != 0) { > > + if (hugetlbfs_prefault(heap_fd, buf, len) != 0) { > > munmap(buf, len); > > close(heap_fd); > > > > diff --git a/debug.c b/debug.c > > index bd54d58..e854dff 100644 > > --- a/debug.c > > +++ b/debug.c > > @@ -58,7 +58,7 @@ static void __hugetlbfs_init_debug(void) > > initialized = 1; > > } > > > > -void __lh_hugetlbfs_setup_debug(void) > > +void hugetlbfs_setup_debug(void) > > { > > __hugetlbfs_init_debug(); > > } > > diff --git a/elflink.c b/elflink.c > > index 75a9dbb..f6a7fb5 100644 > > --- a/elflink.c > > +++ b/elflink.c > > @@ -809,7 +809,7 @@ static void check_range_empty(void *addr, unsigned long > > len) > > WARNING("Unable to verify address range %p - %p. Not empty?\n", > > addr, addr + len); > > if (__hugetlbfs_debug) > > - __lh_dump_proc_pid_maps(); > > + dump_proc_pid_maps(); > > } > > if (p != MAP_FAILED) > > munmap(p, len); > > @@ -1147,7 +1147,7 @@ static int set_hpage_sizes(const char *env) > > continue; > > > > if (*(++pos) == '=') { > > - size = __lh_parse_page_size(pos + 1); > > + size = parse_page_size(pos + 1); > > if (size == -1) > > return size; > > } else > > @@ -1258,7 +1258,7 @@ static int parse_elf() > > return 0; > > } > > > > -void __lh_hugetlbfs_setup_elflink(void) > > +void hugetlbfs_setup_elflink(void) > > { > > int i, ret; > > > > diff --git a/hugeadm.c b/hugeadm.c > > index 4aef40e..cee6aac 100644 > > --- a/hugeadm.c > > +++ b/hugeadm.c > > @@ -89,7 +89,7 @@ void pool_list(void) > > int pos; > > int cnt; > > > > - cnt = __lh_hpool_sizes(pools, MAX_POOLS); > > + cnt = hpool_sizes(pools, MAX_POOLS); > > if (cnt < 0) { > > ERROR("unable to obtain pools list"); > > exit(EXIT_FAILURE); > > @@ -165,9 +165,9 @@ void pool_adjust(char *cmd, unsigned int counter) > > page_size_str, adjust_str, counter); > > > > /* Convert and validate the page_size. */ > > - page_size = __lh_parse_page_size(page_size_str); > > + page_size = parse_page_size(page_size_str); > > > > - cnt = __lh_hpool_sizes(pools, MAX_POOLS); > > + cnt = hpool_sizes(pools, MAX_POOLS); > > if (cnt < 0) { > > ERROR("unable to obtain pools list"); > > exit(EXIT_FAILURE); > > @@ -210,7 +210,7 @@ void pool_adjust(char *cmd, unsigned int counter) > > * requested should there be insufficient pages. Check the new > > * value and adjust HUGEPAGES_OC accordingly. > > */ > > - __lh_get_pool_size(page_size, &pools[pos]); > > + get_pool_size(page_size, &pools[pos]); > > if (pools[pos].minimum != min) { > > ERROR("failed to set pool minimum to %ld became %ld\n", > > min, pools[pos].minimum); > > @@ -228,7 +228,7 @@ void page_sizes(int all) > > int pos; > > int cnt; > > > > - cnt = __lh_hpool_sizes(pools, MAX_POOLS); > > + cnt = hpool_sizes(pools, MAX_POOLS); > > if (cnt < 0) { > > ERROR("unable to obtain pools list"); > > exit(EXIT_FAILURE); > > @@ -259,8 +259,8 @@ int main(int argc, char** argv) > > {0}, > > }; > > > > - __lh_hugetlbfs_setup_debug(); > > - __lh_setup_mounts(); > > + hugetlbfs_setup_debug(); > > + setup_mounts(); > > > > Could fix up the whitespace damage here, but no a big issue. > > > while (ret != -1) { > > ret = getopt_long(argc, argv, opts, long_opts, &index); > > diff --git a/hugetlbfs.h b/hugetlbfs.h > > index 3f2eb30..c2c88f1 100644 > > --- a/hugetlbfs.h > > +++ b/hugetlbfs.h > > @@ -32,7 +32,8 @@ int hugetlbfs_unlinked_fd(void); > > int hugetlbfs_unlinked_fd_for_size(long page_size); > > > > /* Diagnoses/debugging only functions */ > > -long __lh_dump_proc_pid_maps(void); > > +#define dump_proc_pid_maps __lh_dump_proc_pid_maps > > +long dump_proc_pid_maps(void); > > > > #define PF_LINUX_HUGETLB 0x100000 > > > > diff --git a/hugeutils.c b/hugeutils.c > > index 433e6e8..b9e63ad 100644 > > --- a/hugeutils.c > > +++ b/hugeutils.c > > @@ -88,7 +88,7 @@ static inline long size_to_smaller_unit(long size) > > * EINVAL - str could not be parsed or was not greater > > than zero > > * EOVERFLOW - Overflow when converting from the specified units > > */ > > -long __lh_parse_page_size(const char *str) > > +long parse_page_size(const char *str) > > { > > char *pos; > > long size; > > @@ -292,7 +292,7 @@ static void probe_default_hpage_size(void) > > */ > > env = getenv("HUGETLB_DEFAULT_PAGE_SIZE"); > > if (env && strlen(env) > 0) > > - size = __lh_parse_page_size(env); > > + size = parse_page_size(env); > > else { > > size = file_read_ulong(MEMINFO, "Hugepagesize:"); > > size *= 1024; /* convert from kB to B */ > > @@ -410,7 +410,7 @@ static void find_mounts(void) > > close(fd); > > } > > > > -void __lh_setup_mounts(void) > > +void setup_mounts(void) > > { > > char *env; > > int do_scan = 1; > > @@ -445,7 +445,7 @@ void __lh_setup_mounts(void) > > debug_show_page_sizes(); > > } > > > > -int __lh_get_pool_size(long size, struct hpage_pool *pool) > > +int get_pool_size(long size, struct hpage_pool *pool) > > { > > long nr_over = 0; > > long nr_used = 0; > > @@ -493,7 +493,7 @@ int __lh_get_pool_size(long size, struct hpage_pool > > *pool) > > return 0; > > } > > > > -int __lh_hpool_sizes(struct hpage_pool *pools, int pcnt) > > +int hpool_sizes(struct hpage_pool *pools, int pcnt) > > { > > long default_size; > > int which = 0; > > @@ -503,7 +503,7 @@ int __lh_hpool_sizes(struct hpage_pool *pools, int pcnt) > > default_size = size_to_smaller_unit(file_read_ulong(MEMINFO, > > "Hugepagesize:")); > > if (default_size >= 0 && which < pcnt) > > - if (__lh_get_pool_size(default_size, &pools[which])) { > > + if (get_pool_size(default_size, &pools[which])) { > > pools[which].is_default = 1; > > which++; > > } > > @@ -523,7 +523,7 @@ int __lh_hpool_sizes(struct hpage_pool *pools, int pcnt) > > if (size < 0 || size == default_size) > > continue; > > > > - if (__lh_get_pool_size(size, &pools[which])) > > + if (get_pool_size(size, &pools[which])) > > which++; > > } > > closedir(dir); > > @@ -538,7 +538,7 @@ int __lh_hpool_sizes(struct hpage_pool *pools, int pcnt) > > > > /* > > * NOTE: This function uses data that is initialized by > > - * __lh_setup_mounts() which is called during libhugetlbfs initialization. > > + * setup_mounts() which is called during libhugetlbfs initialization. > > * > > * returns: > > * on success, size of a huge page in number of bytes > > @@ -744,7 +744,7 @@ int hugetlbfs_unlinked_fd(void) > > } > > > > #define IOV_LEN 64 > > -int __lh_hugetlbfs_prefault(int fd, void *addr, size_t length) > > +int hugetlbfs_prefault(int fd, void *addr, size_t length) > > { > > /* > > * The NUMA users of libhugetlbfs' malloc feature are > > @@ -827,7 +827,7 @@ int set_nr_overcommit_hugepages(long pagesize, unsigned > > long val) > > /********************************************************************/ > > > > #define MAPS_BUF_SZ 4096 > > -long __lh_dump_proc_pid_maps() > > +long dump_proc_pid_maps() > > { > > FILE *f; > > char line[MAPS_BUF_SZ]; > > diff --git a/init.c b/init.c > > index f58d34b..f9cd804 100644 > > --- a/init.c > > +++ b/init.c > > @@ -21,11 +21,11 @@ > > > > static void __attribute__ ((constructor)) setup_libhugetlbfs(void) > > { > > - __lh_hugetlbfs_setup_debug(); > > - __lh_setup_mounts(); > > - __lh_setup_features(); > > + hugetlbfs_setup_debug(); > > + setup_mounts(); > > + setup_features(); > > #ifndef NO_ELFLINK > > - __lh_hugetlbfs_setup_elflink(); > > + hugetlbfs_setup_elflink(); > > #endif > > - __lh_hugetlbfs_setup_morecore(); > > + hugetlbfs_setup_morecore(); > > } > > diff --git a/kernel-features.c b/kernel-features.c > > index 577e560..8f105b4 100644 > > --- a/kernel-features.c > > +++ b/kernel-features.c > > @@ -199,7 +199,7 @@ int check_features_env_valid(const char *env) > > return 0; > > } > > > > -void __lh_setup_features() > > +void setup_features() > > { > > struct utsname u; > > char *env; > > diff --git a/libhugetlbfs_internal.h b/libhugetlbfs_internal.h > > index e07787f..4d7add7 100644 > > --- a/libhugetlbfs_internal.h > > +++ b/libhugetlbfs_internal.h > > @@ -41,17 +41,30 @@ > > #define SLICE_HIGH_SHIFT 63 > > #endif > > > > +/* > > + * When adding a library local variable externalise the symbol as > > + * normal, plus add a #define of the form below. This define effectively > > + * renames the routine into the local namespace __lh_* which is forced > > + * local in the linker script version.lds. > > + */ > > extern int __hugetlbfs_verbose; > > extern int __hugetlbfs_debug; > > extern int __hugetlbfs_prefault; > > -extern void __lh_hugetlbfs_setup_elflink(); > > -extern void __lh_hugetlbfs_setup_morecore(); > > -extern void __lh_hugetlbfs_setup_debug(); > > -extern void __lh_setup_mounts(); > > -extern void __lh_setup_features(); > > +#define hugetlbfs_setup_elflink __lh_hugetlbfs_setup_elflink > > +extern void hugetlbfs_setup_elflink(); > > +#define hugetlbfs_setup_morecore __lh_hugetlbfs_setup_morecore > > +extern void hugetlbfs_setup_morecore(); > > +#define hugetlbfs_setup_debug __lh_hugetlbfs_setup_debug > > +extern void hugetlbfs_setup_debug(); > > +#define setup_mounts __lh_setup_mounts > > +extern void setup_mounts(); > > +#define setup_features __lh_setup_features > > +extern void setup_features(); > > extern char __hugetlbfs_hostname[]; > > -extern int __lh_hugetlbfs_prefault(int fd, void *addr, size_t length); > > -extern long __lh_parse_page_size(const char *str); > > +#define hugetlbfs_prefault __lh_hugetlbfs_prefault > > +extern int hugetlbfs_prefault(int fd, void *addr, size_t length); > > +#define parse_page_size __lh_parse_page_size > > +extern long parse_page_size(const char *str); > > > > #ifndef REPORT_UTIL > > #define REPORT_UTIL "libhugetlbfs" > > @@ -97,8 +110,10 @@ struct hpage_pool { > > int is_default; > > }; > > > > -extern int __lh_hpool_sizes(struct hpage_pool *, int); > > -extern int __lh_get_pool_size(long, struct hpage_pool *); > > +#define hpool_sizes __lh_hpool_sizes > > +extern int hpool_sizes(struct hpage_pool *, int); > > +#define get_pool_size __lh_get_pool_size > > +extern int get_pool_size(long, struct hpage_pool *); > > > > /* Arch-specific callbacks */ > > extern int direct_syscall(int sysnum, ...); > > diff --git a/morecore.c b/morecore.c > > index ddcd77d..19d18b8 100644 > > --- a/morecore.c > > +++ b/morecore.c > > @@ -108,7 +108,7 @@ static void *hugetlbfs_morecore(ptrdiff_t increment) > > WARNING("Heap originates at %p instead of %p\n", > > p, heapbase); > > if (__hugetlbfs_debug) > > - __lh_dump_proc_pid_maps(); > > + dump_proc_pid_maps(); > > } > > /* then setup the heap variables */ > > heapbase = heaptop = p; > > @@ -118,12 +118,12 @@ static void *hugetlbfs_morecore(ptrdiff_t increment) > > WARNING("New heap segment mapped at %p instead of %p\n", > > p, heapbase + mapsize); > > if (__hugetlbfs_debug) > > - __lh_dump_proc_pid_maps(); > > + dump_proc_pid_maps(); > > return NULL; > > } > > > > /* Fault the region to ensure accesses succeed */ > > - if (__lh_hugetlbfs_prefault(zero_fd, p, delta) != 0) { > > + if (hugetlbfs_prefault(zero_fd, p, delta) != 0) { > > munmap(p, delta); > > return NULL; > > } > > @@ -190,7 +190,7 @@ static void *hugetlbfs_morecore(ptrdiff_t increment) > > return p; > > } > > > > -void __lh_hugetlbfs_setup_morecore(void) > > +void hugetlbfs_setup_morecore(void) > > { > > char *env, *ep; > > unsigned long heapaddr; > > @@ -212,7 +212,7 @@ void __lh_hugetlbfs_setup_morecore(void) > > if (strncasecmp(env, "y", 1) == 0) > > hpage_size = gethugepagesize(); > > else > > - hpage_size = __lh_parse_page_size(env); > > + hpage_size = parse_page_size(env); > > > > if (hpage_size <= 0) { > > if (errno == ENOSYS) > > diff --git a/pagesize.c b/pagesize.c > > index aca4de4..11dd68d 100644 > > --- a/pagesize.c > > +++ b/pagesize.c > > @@ -80,7 +80,7 @@ int main(int argc, char** argv) > > long pagesizes[MAX_PAGESIZES]; > > int i; > > > > - __lh_hugetlbfs_setup_debug(); > > + hugetlbfs_setup_debug(); > > > > Another spaces vs tabs here, but again barely worth getting into a > twist over. > > > while (ret != -1) { > > ret = getopt_long(argc, argv, opts, long_opts, &index); > > -- > > 1.6.0.2.711.gf1ba4 > >
I had not changed the spacing to keep the change purly mechanical. I guess we should audit things for whitespace generally (as I have noticed a poor line endings here and there) and sort it out, perhaps after the next release as a global thing while noone has any patches out standing? -apw ------------------------------------------------------------------------- This SF.Net email is sponsored by the Moblin Your Move Developer's challenge Build the coolest Linux based applications with Moblin SDK & win great prizes Grand prize is a trip for two to an Open Source event anywhere in the world http://moblin-contest.org/redirect.php?banner_id=100&url=/ _______________________________________________ Libhugetlbfs-devel mailing list Libhugetlbfs-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/libhugetlbfs-devel