1 /* 2 * CDDL HEADER START 3 * 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 7 * with the License. 8 * 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. 13 * 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] 19 * 20 * CDDL HEADER END 21 */ 22 /* 23 * Copyright 2003 Sun Microsystems, Inc. All rights reserved. 24 * Use is subject to license terms. 25 */ 26 27 #include <ctf_impl.h> 28 #include <libctf.h> 29 #include <sys/mman.h> 30 #include <stdarg.h> 31 32 void * 33 ctf_data_alloc(size_t size) 34 { 35 return (mmap(NULL, size, PROT_READ | PROT_WRITE, 36 MAP_PRIVATE | MAP_ANON, -1, 0)); 37 } 38 39 void 40 ctf_data_free(void *buf, size_t size) 41 { 42 (void) munmap(buf, size); 43 } 44 45 void 46 ctf_data_protect(void *buf, size_t size) 47 { 48 (void) mprotect(buf, size, PROT_READ); 49 } 50 51 void * 52 ctf_alloc(size_t size) 53 { 54 return (malloc(size)); 55 } 56 57 void * 58 mergeq_alloc(size_t size) 59 { 60 return (malloc(size)); 61 } 62 63 void * 64 workq_alloc(size_t size) 65 { 66 return (malloc(size)); 67 } 68 69 /*ARGSUSED*/ 70 void 71 ctf_free(void *buf, size_t size) 72 { 73 free(buf); 74 } 75 76 /*ARGSUSED*/ 77 void 78 mergeq_free(void *buf, size_t size) 79 { 80 free(buf); 81 } 82 83 /*ARGSUSED*/ 84 void 85 workq_free(void *buf, size_t size) 86 { 87 free(buf); 88 } 89 90 const char * 91 ctf_strerror(int err) 92 { 93 return (strerror(err)); 94 } 95 96 /*PRINTFLIKE1*/ 97 void 98 ctf_dprintf(const char *format, ...) 99 { 100 if (_libctf_debug) { 101 va_list alist; 102 103 va_start(alist, format); 104 (void) fputs("libctf DEBUG: ", stderr); 105 (void) vfprintf(stderr, format, alist); 106 va_end(alist); 107 } 108 } 109