Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in / Register
Toggle navigation
Menu
Open sidebar
adam.huang
htop
Commits
bb3e773c
Commit
bb3e773c
authored
Sep 08, 2011
by
Hisham Muhammad
Browse files
Interface improvements for large numbers.
parent
b288eb88
Changes
2
Hide whitespace changes
Inline
Side-by-side
SwapMeter.c
View file @
bb3e773c
...
...
@@ -19,25 +19,40 @@ in the source distribution for its full text.
#include "debug.h"
#include <assert.h>
#define KILOBYTE 1
#define MEGABYTE 1024
#define GIGABYTE 1048576
int
SwapMeter_attributes
[]
=
{
SWAP
};
/* NOTE: Value is in kilobytes */
static
void
SwapMeter_humanNumber
(
char
*
buffer
,
const
long
int
*
value
)
{
if
(
*
value
>=
10
*
GIGABYTE
)
sprintf
(
buffer
,
"%ldG "
,
*
value
/
GIGABYTE
);
else
if
(
*
value
>=
10
*
MEGABYTE
)
sprintf
(
buffer
,
"%ldM "
,
*
value
/
MEGABYTE
);
else
sprintf
(
buffer
,
"%ldK "
,
*
value
);
}
static
void
SwapMeter_setValues
(
Meter
*
this
,
char
*
buffer
,
int
len
)
{
long
int
usedSwap
=
this
->
pl
->
usedSwap
;
this
->
total
=
this
->
pl
->
totalSwap
;
this
->
values
[
0
]
=
usedSwap
;
snprintf
(
buffer
,
len
,
"%ld/%ldMB"
,
(
long
int
)
usedSwap
/
1024
,
(
long
int
)
this
->
total
/
1024
);
snprintf
(
buffer
,
len
,
"%ld/%ldMB"
,
(
long
int
)
usedSwap
/
MEGABYTE
,
(
long
int
)
this
->
total
/
MEGABYTE
);
}
static
void
SwapMeter_display
(
Object
*
cast
,
RichString
*
out
)
{
char
buffer
[
50
];
Meter
*
this
=
(
Meter
*
)
cast
;
long
int
swap
=
(
long
int
)
this
->
values
[
0
];
long
int
total
=
(
long
int
)
this
->
total
;
RichString_write
(
out
,
CRT_colors
[
METER_TEXT
],
":"
);
sprintf
(
buffer
,
"%ldM "
,
(
long
int
)
this
->
total
/
1024
);
SwapMeter_humanNumber
(
buffer
,
&
total
);
RichString_append
(
out
,
CRT_colors
[
METER_VALUE
],
buffer
);
sprintf
(
buffer
,
"%ldk"
,
swap
);
SwapMeter_humanNumber
(
buffer
,
&
swap
);
RichString_append
(
out
,
CRT_colors
[
METER_TEXT
],
"used:"
);
RichString_append
(
out
,
CRT_colors
[
METER_VALUE
],
buffer
);
}
...
...
SwapMeter.h
View file @
bb3e773c
...
...
@@ -22,8 +22,13 @@ in the source distribution for its full text.
#include "debug.h"
#include <assert.h>
#define KILOBYTE 1
#define MEGABYTE 1024
#define GIGABYTE 1048576
extern
int
SwapMeter_attributes
[];
/* NOTE: Value is in kilobytes */
extern
MeterType
SwapMeter
;
#endif
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment