Signed-off-by: Andy Whitcroft <[EMAIL PROTECTED]>
---
Makefile | 6 +++---
hugetlbfs.h | 16 ----------------
hugeutils.c | 6 +-----
init_privutils.c | 2 ++
libhugetlbfs_internal.h | 12 ++++++++++++
libhugetlbfs_privutils.h | 23 +++++++++++++++++++++++
6 files changed, 41 insertions(+), 24 deletions(-)
diff --git a/Makefile b/Makefile
index 1bb4589..0b5821d 100644
--- a/Makefile
+++ b/Makefile
@@ -2,7 +2,7 @@ PREFIX = /usr/local
EXEDIR = /bin
LIBOBJS = hugeutils.o version.o init.o morecore.o debug.o alloc.o shm.o
kernel-features.o
-LIBPUOBJS = init_privutils.o debug.o
+LIBPUOBJS = hugeutils.o debug.o hugeutils.o
INSTALL_OBJ_LIBS = libhugetlbfs.so libhugetlbfs.a libhugetlbfs_privutils.so
BIN_OBJ_DIR=obj
INSTALL_BIN = hugectl hugeedit hugeadm pagesize
@@ -285,13 +285,13 @@ $(BIN_OBJ_DIR)/hugeedit: $(BIN_OBJ_DIR)/hugeedit.o
mkdir -p $(BIN_OBJ_DIR)
$(CC) $(CPPFLAGS) $(CFLAGS) $(LIBPATHS) -o $@ $^
-HUGEADM_OBJ=hugeadm.o hugeutils.o debug.o
+HUGEADM_OBJ=hugeadm.o libhugetlbfs_privutils.a
$(BIN_OBJ_DIR)/hugeadm: $(foreach file,$(HUGEADM_OBJ),$(BIN_OBJ_DIR)/$(file))
@$(VECHO) LDHOST $@
mkdir -p $(BIN_OBJ_DIR)
$(CC) $(CPPFLAGS) $(CFLAGS) $(LIBPATHS) -o $@ $^
-PAGESIZE_OBJ=pagesize.o hugeutils.o debug.o
+PAGESIZE_OBJ=pagesize.o libhugetlbfs_privutils.a
$(BIN_OBJ_DIR)/pagesize: $(foreach file,$(PAGESIZE_OBJ),$(BIN_OBJ_DIR)/$(file))
@$(VECHO) LDHOST $@
mkdir -p $(BIN_OBJ_DIR)
diff --git a/hugetlbfs.h b/hugetlbfs.h
index c2c88f1..3dff758 100644
--- a/hugetlbfs.h
+++ b/hugetlbfs.h
@@ -62,20 +62,4 @@ enum {
};
int hugetlbfs_test_feature(int feature_code);
-/* Hugetlb pool counter operations */
-/* Keys for reading hugetlb pool counters */
-enum { /* The number of pages of a given size that ... */
- HUGEPAGES_TOTAL, /* are allocated to the pool */
- HUGEPAGES_FREE, /* are not in use */
- HUGEPAGES_RSVD, /* are reserved for possible future use */
- HUGEPAGES_SURP, /* are allocated to the pool on demand */
- HUGEPAGES_OC, /* can be allocated on demand - maximum */
- HUGEPAGES_MAX_COUNTERS,
-};
-long get_huge_page_counter(long pagesize, unsigned int counter);
-int set_huge_page_counter(long pagesize, unsigned int counter,
- unsigned long val);
-int set_nr_hugepages(long pagesize, unsigned long val);
-int set_nr_overcommit_hugepages(long pagesize, unsigned long val);
-long read_meminfo(const char *tag);
#endif /* _HUGETLBFS_H */
diff --git a/hugeutils.c b/hugeutils.c
index b9e63ad..81a834a 100644
--- a/hugeutils.c
+++ b/hugeutils.c
@@ -62,17 +62,13 @@ static int hpage_sizes_default_idx = -1;
#define BUF_SZ 256
#define MEMINFO_SIZE 2048
-#define MEMINFO "/proc/meminfo"
-#define PROC_HUGEPAGES_DIR "/proc/sys/vm/"
-#define SYSFS_HUGEPAGES_DIR "/sys/kernel/mm/hugepages/"
-
/*
* Convert a quantity in a given unit to the next smallest unit by
* multiplying the quantity by 1024 (eg. convert 1MB to 1024kB).
* If the conversion would overflow the variable, return LONG_MAX to signify
* the error.
*/
-static inline long size_to_smaller_unit(long size)
+long size_to_smaller_unit(long size)
{
if (size < 0 || size * 1024 < size)
return -1;
diff --git a/init_privutils.c b/init_privutils.c
index 6c9243d..f32d83b 100644
--- a/init_privutils.c
+++ b/init_privutils.c
@@ -22,4 +22,6 @@
static void __attribute__ ((constructor)) setup_libhugetlbfs(void)
{
hugetlbfs_setup_debug();
+ setup_mounts();
+ setup_features();
}
diff --git a/libhugetlbfs_internal.h b/libhugetlbfs_internal.h
index 4e20885..da84234 100644
--- a/libhugetlbfs_internal.h
+++ b/libhugetlbfs_internal.h
@@ -115,6 +115,14 @@ struct hpage_pool {
int is_default;
};
+#define size_to_smaller_unit __lh_size_to_smaller_unit
+extern long size_to_smaller_unit(long size);
+
+#define file_read_ulong __lh_file_read_ulong
+extern long file_read_ulong(char *file, const char *tag);
+#define file_write_ulong __lh_file_write_ulong
+extern int file_write_ulong(char *file, unsigned long val);
+
#define hpool_sizes __lh_hpool_sizes
extern int hpool_sizes(struct hpage_pool *, int);
#define get_pool_size __lh_get_pool_size
@@ -124,4 +132,8 @@ extern int get_pool_size(long, struct hpage_pool *);
extern int direct_syscall(int sysnum, ...);
extern ElfW(Word) plt_extrasz(ElfW(Dyn) *dyntab);
+#define MEMINFO "/proc/meminfo"
+#define PROC_HUGEPAGES_DIR "/proc/sys/vm/"
+#define SYSFS_HUGEPAGES_DIR "/sys/kernel/mm/hugepages/"
+
#endif /* _LIBHUGETLBFS_INTERNAL_H */
diff --git a/libhugetlbfs_privutils.h b/libhugetlbfs_privutils.h
index 1a45ed0..9f0c479 100644
--- a/libhugetlbfs_privutils.h
+++ b/libhugetlbfs_privutils.h
@@ -19,4 +19,27 @@
#ifndef _LIBHUGETLBFS_PRIVUTILS_H
#define _LIBHUGETLBFS_PRIVUTILS_H
+/* Hugetlb pool counter operations */
+/* Keys for reading hugetlb pool counters */
+enum { /* The number of pages of a given size that ... */
+ HUGEPAGES_TOTAL, /* are allocated to the pool */
+ HUGEPAGES_FREE, /* are not in use */
+ HUGEPAGES_RSVD, /* are reserved for possible future use */
+ HUGEPAGES_SURP, /* are allocated to the pool on demand */
+ HUGEPAGES_OC, /* can be allocated on demand - maximum */
+ HUGEPAGES_MAX_COUNTERS,
+};
+#define get_huge_page_counter __pu_get_huge_page_counter
+long get_huge_page_counter(long pagesize, unsigned int counter);
+#define set_huge_page_counter __pu_set_huge_page_counter
+int set_huge_page_counter(long pagesize, unsigned int counter,
+ unsigned long val);
+#define set_nr_hugepages __pu_set_nr_hugepages
+int set_nr_hugepages(long pagesize, unsigned long val);
+#define set_nr_overcommit_hugepages __pu_set_nr_overcommit_hugepages
+int set_nr_overcommit_hugepages(long pagesize, unsigned long val);
+
+#define read_meminfo __pu_read_meminfo
+long read_meminfo(const char *tag);
+
#endif /* _LIBHUGETLBFS_PRIVUTILS_H */
--
1.6.0.2.711.gf1ba4
-------------------------------------------------------------------------
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
[email protected]
https://lists.sourceforge.net/lists/listinfo/libhugetlbfs-devel