]>
Commit | Line | Data |
---|---|---|
34dc7c2f BB |
1 | /* |
2 | * CDDL HEADER START | |
3 | * | |
4 | * The contents of this file are subject to the terms of the | |
b128c09f BB |
5 | * Common Development and Distribution License (the "License"). |
6 | * You may not use this file except in compliance with the License. | |
34dc7c2f BB |
7 | * |
8 | * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE | |
9 | * or http://www.opensolaris.org/os/licensing. | |
10 | * See the License for the specific language governing permissions | |
11 | * and limitations under the License. | |
12 | * | |
13 | * When distributing Covered Code, include this CDDL HEADER in each | |
14 | * file and include the License file at usr/src/OPENSOLARIS.LICENSE. | |
15 | * If applicable, add the following below this CDDL HEADER, with the | |
16 | * fields enclosed by brackets "[]" replaced with your own identifying | |
17 | * information: Portions Copyright [yyyy] [name of copyright owner] | |
18 | * | |
19 | * CDDL HEADER END | |
20 | */ | |
b128c09f | 21 | |
34dc7c2f | 22 | /* |
b128c09f | 23 | * Copyright 2008 Sun Microsystems, Inc. All rights reserved. |
34dc7c2f BB |
24 | * Use is subject to license terms. |
25 | */ | |
34dc7c2f | 26 | |
b128c09f | 27 | #pragma ident "%Z%%M% %I% %E% SMI" |
34dc7c2f BB |
28 | |
29 | /* | |
30 | * Initialization routines for the library version of libumem. | |
31 | */ | |
32 | ||
34dc7c2f BB |
33 | #include "umem_base.h" |
34 | #include "vmem_base.h" | |
34dc7c2f | 35 | #include <unistd.h> |
34dc7c2f | 36 | #include <dlfcn.h> |
34dc7c2f BB |
37 | |
38 | void | |
39 | vmem_heap_init(void) | |
40 | { | |
34dc7c2f BB |
41 | void *handle = dlopen("libmapmalloc.so.1", RTLD_NOLOAD); |
42 | ||
43 | if (handle != NULL) { | |
34dc7c2f BB |
44 | log_message("sbrk backend disabled\n"); |
45 | vmem_backend = VMEM_BACKEND_MMAP; | |
34dc7c2f | 46 | } |
34dc7c2f BB |
47 | |
48 | if ((vmem_backend & VMEM_BACKEND_MMAP) != 0) { | |
49 | vmem_backend = VMEM_BACKEND_MMAP; | |
50 | (void) vmem_mmap_arena(NULL, NULL); | |
51 | } else { | |
34dc7c2f BB |
52 | vmem_backend = VMEM_BACKEND_SBRK; |
53 | (void) vmem_sbrk_arena(NULL, NULL); | |
34dc7c2f BB |
54 | } |
55 | } | |
56 | ||
57 | /*ARGSUSED*/ | |
58 | void | |
59 | umem_type_init(caddr_t start, size_t len, size_t pgsize) | |
60 | { | |
34dc7c2f | 61 | pagesize = _sysconf(_SC_PAGESIZE); |
34dc7c2f BB |
62 | } |
63 | ||
64 | int | |
65 | umem_get_max_ncpus(void) | |
66 | { | |
b128c09f BB |
67 | if (thr_main() != -1) |
68 | return (2 * sysconf(_SC_NPROCESSORS_ONLN)); | |
69 | else | |
70 | return (1); | |
34dc7c2f | 71 | } |