summaryrefslogtreecommitdiff
path: root/lib_generic
diff options
context:
space:
mode:
authorStefan Roese <[email protected]>2008-07-10 09:09:45 +0200
committerStefan Roese <[email protected]>2008-07-10 09:09:45 +0200
commitac5ba41c2234dd513ed2c879914e964cc05a0135 (patch)
treeeea25003c17267efc504264bc1faa419a355a138 /lib_generic
parent7c6237b3e2f2ee0098897da39b79aff4642b8946 (diff)
parent4188f0491886b3b486164e819c0a83fdb97efd7d (diff)
Merge branch 'master' of /home/stefan/git/u-boot/u-boot
Diffstat (limited to 'lib_generic')
-rw-r--r--lib_generic/display_options.c32
-rw-r--r--lib_generic/lmb.c6
2 files changed, 23 insertions, 15 deletions
diff --git a/lib_generic/display_options.c b/lib_generic/display_options.c
index a52fa045481..2dc2567410b 100644
--- a/lib_generic/display_options.c
+++ b/lib_generic/display_options.c
@@ -39,27 +39,35 @@ int display_options (void)
}
/*
- * print sizes as "xxx kB", "xxx.y kB", "xxx MB" or "xxx.y MB" as needed;
- * allow for optional trailing string (like "\n")
+ * print sizes as "xxx kB", "xxx.y kB", "xxx MB", "xxx.y MB",
+ * xxx GB, or xxx.y GB as needed; allow for optional trailing string
+ * (like "\n")
*/
void print_size (phys_size_t size, const char *s)
{
- ulong m, n;
- ulong d = 1 << 20; /* 1 MB */
- char c = 'M';
+ ulong m = 0, n;
+ phys_size_t d = 1 << 30; /* 1 GB */
+ char c = 'G';
- if (size < d) { /* print in kB */
- c = 'k';
- d = 1 << 10;
+ if (size < d) { /* try MB */
+ c = 'M';
+ d = 1 << 20;
+ if (size < d) { /* print in kB */
+ c = 'k';
+ d = 1 << 10;
+ }
}
n = size / d;
- m = (10 * (size - (n * d)) + (d / 2) ) / d;
+ /* If there's a remainder, deal with it */
+ if(size % d) {
+ m = (10 * (size - (n * d)) + (d / 2) ) / d;
- if (m >= 10) {
- m -= 10;
- n += 1;
+ if (m >= 10) {
+ m -= 10;
+ n += 1;
+ }
}
printf ("%2ld", n);
diff --git a/lib_generic/lmb.c b/lib_generic/lmb.c
index 93264c15ec6..6b46fa88684 100644
--- a/lib_generic/lmb.c
+++ b/lib_generic/lmb.c
@@ -181,11 +181,11 @@ long lmb_add(struct lmb *lmb, phys_addr_t base, phys_size_t size)
return lmb_add_region(_rgn, base, size);
}
-long lmb_free(struct lmb *lmb, u64 base, u64 size)
+long lmb_free(struct lmb *lmb, phys_addr_t base, phys_size_t size)
{
struct lmb_region *rgn = &(lmb->reserved);
- u64 rgnbegin, rgnend;
- u64 end = base + size;
+ phys_addr_t rgnbegin, rgnend;
+ phys_addr_t end = base + size;
int i;
rgnbegin = rgnend = 0; /* supress gcc warnings */