| @@ -1,90 +1,90 @@ | | | @@ -1,90 +1,90 @@ |
1 | .\" $NetBSD: roundup.9,v 1.3 2010/06/08 09:02:55 jruoho Exp $ | | 1 | .\" $NetBSD: roundup.9,v 1.4 2011/01/24 10:22:15 enami Exp $ |
2 | .\" | | 2 | .\" |
3 | .\" Copyright (c) 2010 The NetBSD Foundation, Inc. | | 3 | .\" Copyright (c) 2010 The NetBSD Foundation, Inc. |
4 | .\" All rights reserved. | | 4 | .\" All rights reserved. |
5 | .\" | | 5 | .\" |
6 | .\" This code is derived from software contributed to The NetBSD Foundation | | 6 | .\" This code is derived from software contributed to The NetBSD Foundation |
7 | .\" by Jukka Ruohonen. | | 7 | .\" by Jukka Ruohonen. |
8 | .\" | | 8 | .\" |
9 | .\" Redistribution and use in source and binary forms, with or without | | 9 | .\" Redistribution and use in source and binary forms, with or without |
10 | .\" modification, are permitted provided that the following conditions | | 10 | .\" modification, are permitted provided that the following conditions |
11 | .\" are met: | | 11 | .\" are met: |
12 | .\" 1. Redistributions of source code must retain the above copyright | | 12 | .\" 1. Redistributions of source code must retain the above copyright |
13 | .\" notice, this list of conditions and the following disclaimer. | | 13 | .\" notice, this list of conditions and the following disclaimer. |
14 | .\" 2. Redistributions in binary form must reproduce the above copyright | | 14 | .\" 2. Redistributions in binary form must reproduce the above copyright |
15 | .\" notice, this list of conditions and the following disclaimer in the | | 15 | .\" notice, this list of conditions and the following disclaimer in the |
16 | .\" documentation and/or other materials provided with the distribution. | | 16 | .\" documentation and/or other materials provided with the distribution. |
17 | .\" | | 17 | .\" |
18 | .\" THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS | | 18 | .\" THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS |
19 | .\" ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED | | 19 | .\" ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED |
20 | .\" TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR | | 20 | .\" TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR |
21 | .\" PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS | | 21 | .\" PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS |
22 | .\" BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR | | 22 | .\" BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR |
23 | .\" CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF | | 23 | .\" CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF |
24 | .\" SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS | | 24 | .\" SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS |
25 | .\" INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN | | 25 | .\" INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN |
26 | .\" CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) | | 26 | .\" CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) |
27 | .\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE | | 27 | .\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE |
28 | .\" POSSIBILITY OF SUCH DAMAGE. | | 28 | .\" POSSIBILITY OF SUCH DAMAGE. |
29 | .\" | | 29 | .\" |
30 | .Dd June 8, 2010 | | 30 | .Dd June 8, 2010 |
31 | .Dt ROUNDUP 9 | | 31 | .Dt ROUNDUP 9 |
32 | .Os | | 32 | .Os |
33 | .Sh NAME | | 33 | .Sh NAME |
34 | .Nm roundup | | 34 | .Nm roundup |
35 | .Nd macros for counting and rounding | | 35 | .Nd macros for counting and rounding |
36 | .Sh SYNOPSIS | | 36 | .Sh SYNOPSIS |
37 | .In sys/param.h | | 37 | .In sys/param.h |
38 | .Ft size | | 38 | .Ft size |
39 | .Fn howmany "x" "size" | | 39 | .Fn howmany "x" "size" |
40 | .Ft size | | 40 | .Ft size |
41 | .Fn roundup "x" "size" | | 41 | .Fn roundup "x" "size" |
42 | .Ft size | | 42 | .Ft size |
43 | .Fn rounddown "x" "size" | | 43 | .Fn rounddown "x" "size" |
44 | .Ft size | | 44 | .Ft size |
45 | .Fn roundup2 "x" "size" | | 45 | .Fn roundup2 "x" "size" |
46 | .Ft int | | 46 | .Ft int |
47 | .Fn powerof2 "x" | | 47 | .Fn powerof2 "x" |
48 | .Sh DESCRIPTION | | 48 | .Sh DESCRIPTION |
49 | The | | 49 | The |
50 | .Fn roundup | | 50 | .Fn roundup |
51 | and | | 51 | and |
52 | .Fn rounddown | | 52 | .Fn rounddown |
53 | macros return an integer from rounding | | 53 | macros return an integer from rounding |
54 | .Fa x | | 54 | .Fa x |
55 | up and down, respectively, to the next | | 55 | up and down, respectively, to the next |
56 | .Fa size . | | 56 | .Fa size . |
57 | The | | 57 | The |
58 | .Fn howmany | | 58 | .Fn howmany |
59 | macro in turn reveals how many times | | 59 | macro in turn reveals how many times |
60 | .Fa size | | 60 | .Fa size |
61 | fits into | | 61 | fits into |
62 | .Fa x , | | 62 | .Fa x , |
63 | rounding the residual up. | | 63 | rounding the residual up. |
64 | .Pp | | 64 | .Pp |
65 | The | | 65 | The |
66 | .Fn roundup2 | | 66 | .Fn roundup2 |
67 | macro also rounds up, but with the assumption that | | 67 | macro also rounds up, but with the assumption that |
68 | .Fa x | | 68 | .Fa size |
69 | is a power of two. | | 69 | is a power of two. |
70 | If | | 70 | If |
71 | .Fa x | | 71 | .Fa x |
72 | is indeed a power of two, | | 72 | is indeed a power of two, |
73 | .Fn powerof2 | | 73 | .Fn powerof2 |
74 | return 1. | | 74 | return 1. |
75 | .Sh RETURN VALUES | | 75 | .Sh RETURN VALUES |
76 | The return value is an integer from the respective operation. | | 76 | The return value is an integer from the respective operation. |
77 | If | | 77 | If |
78 | .Fa x | | 78 | .Fa x |
79 | is 0, all macros except | | 79 | is 0, all macros except |
80 | .Fn powerof2 | | 80 | .Fn powerof2 |
81 | return 0. | | 81 | return 0. |
82 | The behavior is undefined if | | 82 | The behavior is undefined if |
83 | .Fa size | | 83 | .Fa size |
84 | is 0. | | 84 | is 0. |
85 | .Sh SEE ALSO | | 85 | .Sh SEE ALSO |
86 | .Xr ilog2 3 , | | 86 | .Xr ilog2 3 , |
87 | .Xr imax 9 | | 87 | .Xr imax 9 |
88 | .Sh CAVEATS | | 88 | .Sh CAVEATS |
89 | All described macros make no assumptions about the type of the parameters. | | 89 | All described macros make no assumptions about the type of the parameters. |
90 | These are implicitly assumed to be unsigned integers. | | 90 | These are implicitly assumed to be unsigned integers. |