xref: /freebsd/usr.bin/systat/convtbl.h (revision 6b3455a7665208c366849f0b2b3bc916fb97516e)
1 /*
2  * Copyright (c) 2003, Trent Nelson, <trent@arpa.com>.
3  * All rights reserved.
4  *
5  * Redistribution and use in source and binary forms, with or without
6  * modification, are permitted provided that the following conditions
7  * are met:
8  * 1. Redistributions of source code must retain the above copyright
9  *    notice, this list of conditions and the following disclaimer.
10  * 2. Redistributions in binary form must reproduce the above copyright
11  *    notice, this list of conditions and the following disclaimer in the
12  *    documentation and/or other materials provided with the distribution.
13  * 3. The name of the author may not be used to endorse or promote products
14  *    derived from this software without specific prior written permission.
15  *
16  * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
17  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
18  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
19  * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
20  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
21  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
22  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
23  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
24  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
25  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
26  * SUCH DAMAGE.
27  *
28  * $FreeBSD$
29  */
30 
31 #ifndef _CONVTBL_H_
32 #define _CONVTBL_H_
33 
34 #include <sys/types.h>
35 
36 #define BITS	(1)
37 #define BYTES	(1)
38 #define KILO	(1024)
39 #define	MEGA	(KILO * 1024)
40 #define GIGA	(MEGA * 1024)
41 
42 #define SC_BYTE		(0)
43 #define SC_KILOBYTE	(1)
44 #define SC_MEGABYTE	(2)
45 #define SC_GIGABYTE	(3)
46 #define SC_BIT		(4)
47 #define	SC_KILOBIT	(5)
48 #define	SC_MEGABIT	(6)
49 #define SC_GIGABIT	(7)
50 #define SC_AUTO		(8)
51 
52 #define BIT	(8)
53 #define BYTE	(1)
54 
55 struct convtbl {
56 	u_int	 mul;
57 	u_int	 scale;
58 	const char	*str;
59 };
60 
61 extern	struct convtbl convtbl[];
62 
63 extern	double 	 convert(const u_long, const u_int);
64 extern	const char	*get_string(const u_long, const u_int);
65 
66 #endif		/* ! _CONVTBL_H_ */
67 /*
68  * Copyright (c) 2003, Trent Nelson, <trent@arpa.com>.
69  * All rights reserved.
70  *
71  * Redistribution and use in source and binary forms, with or without
72  * modification, are permitted provided that the following conditions
73  * are met:
74  * 1. Redistributions of source code must retain the above copyright
75  *    notice, this list of conditions and the following disclaimer.
76  * 2. Redistributions in binary form must reproduce the above copyright
77  *    notice, this list of conditions and the following disclaimer in the
78  *    documentation and/or other materials provided with the distribution.
79  * 3. The name of the author may not be used to endorse or promote products
80  *    derived from this software without specific prior written permission.
81  *
82  * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
83  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
84  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
85  * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
86  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
87  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
88  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
89  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
90  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
91  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
92  * SUCH DAMAGE.
93  *
94  * $Id$
95  */
96 
97 #ifndef _CONVTBL_H_
98 #define _CONVTBL_H_
99 
100 #include <sys/types.h>
101 
102 #define BITS	(1)
103 #define BYTES	(1)
104 #define KILO	(1024)
105 #define	MEGA	(KILO * 1024)
106 #define GIGA	(MEGA * 1024)
107 
108 #define SC_BYTE		(0)
109 #define SC_KILOBYTE	(1)
110 #define SC_MEGABYTE	(2)
111 #define SC_GIGABYTE	(3)
112 #define SC_BIT		(4)
113 #define	SC_KILOBIT	(5)
114 #define	SC_MEGABIT	(6)
115 #define SC_GIGABIT	(7)
116 #define SC_AUTO		(8)
117 
118 #define BIT	(8)
119 #define BYTE	(1)
120 
121 struct convtbl {
122 	u_int	 mul;
123 	u_int	 scale;
124 	char	*str;
125 };
126 
127 extern	struct convtbl convtbl[];
128 
129 extern	double 	 convert(const u_long, const u_int);
130 extern	char	*get_string(const u_long, const u_int);
131 
132 #endif		/* ! _CONVTBL_H_ */
133