4 * The contents of this file are subject to the terms of the
5 * Common Development and Distribution License, Version 1.0 only
6 * (the "License"). You may not use this file except in compliance
9 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
10 * or http://www.opensolaris.org/os/licensing.
11 * See the License for the specific language governing permissions
12 * and limitations under the License.
14 * When distributing Covered Code, include this CDDL HEADER in each
15 * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
16 * If applicable, add the following below this CDDL HEADER, with the
17 * fields enclosed by brackets "[]" replaced with your own identifying
18 * information: Portions Copyright [yyyy] [name of copyright owner]
23 * Copyright 1986 Sun Microsystems, Inc. All rights reserved.
24 * Use is subject to license terms.
27 #pragma ident "%Z%%M% %I% %E% SMI"
33 * mallopt -- System V-compatible malloc "optimizer"
36 mallopt(int cmd
, int value
)
38 if (__mallinfo
.smblks
!= 0)
39 return (-1); /* small block has been allocated */
42 case M_MXFAST
: /* small block size */
45 __mallinfo
.mxfast
= value
;
48 case M_NLBLKS
: /* # small blocks per holding block */
51 __mallinfo
.nlblks
= value
;
54 case M_GRAIN
: /* small block rounding factor */
57 /* round up to multiple of minimum alignment */
58 __mallinfo
.grain
= roundup(value
, ALIGNSIZ
);
61 case M_KEEP
: /* Sun algorithm always preserves data */
68 /* make sure that everything is consistent */
69 __mallinfo
.mxfast
= roundup(__mallinfo
.mxfast
, __mallinfo
.grain
);
76 * mallinfo -- System V-compatible malloc information reporter
84 mi
.uordblks
= mi
.uordbytes
- (mi
.allocated
* sizeof(uint
));
85 mi
.fordblks
= mi
.arena
- (mi
.treeoverhead
+ mi
.uordblks
+
86 (mi
.ordblks
* sizeof(uint
)));