1 // SPDX-License-Identifier: CDDL-1.0 2 /* 3 * CDDL HEADER START 4 * 5 * The contents of this file are subject to the terms of the 6 * Common Development and Distribution License, Version 1.0 only 7 * (the "License"). You may not use this file except in compliance 8 * with the License. 9 * 10 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 11 * or https://opensource.org/licenses/CDDL-1.0. 12 * See the License for the specific language governing permissions 13 * and limitations under the License. 14 * 15 * When distributing Covered Code, include this CDDL HEADER in each 16 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 17 * If applicable, add the following below this CDDL HEADER, with the 18 * fields enclosed by brackets "[]" replaced with your own identifying 19 * information: Portions Copyright [yyyy] [name of copyright owner] 20 * 21 * CDDL HEADER END 22 */ 23 24 #include <stdint.h> 25 #include <limits.h> 26 #include <sys/param.h> 27 #include <sys/sysctl.h> 28 #include <sys/types.h> 29 #include "../../libspl_impl.h" 30 31 __attribute__((visibility("hidden"))) ssize_t 32 getexecname_impl(char *execname) 33 { 34 size_t len = PATH_MAX; 35 int name[4] = {CTL_KERN, KERN_PROC, KERN_PROC_PATHNAME, -1}; 36 37 if (sysctl(name, nitems(name), execname, &len, NULL, 0) != 0) 38 return (-1); 39 40 return (len); 41 } 42