xref: /xnu-11417.140.69/osfmk/kern/kmod.c (revision 43a90889846e00bfb5cf1d255cdc0a701a1e05a4)
1 /*
2  * Copyright (c) 2000-2019 Apple Inc. All rights reserved.
3  *
4  * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
5  *
6  * This file contains Original Code and/or Modifications of Original Code
7  * as defined in and that are subject to the Apple Public Source License
8  * Version 2.0 (the 'License'). You may not use this file except in
9  * compliance with the License. The rights granted to you under the License
10  * may not be used to create, or enable the creation or redistribution of,
11  * unlawful or unlicensed copies of an Apple operating system, or to
12  * circumvent, violate, or enable the circumvention or violation of, any
13  * terms of an Apple operating system software license agreement.
14  *
15  * Please obtain a copy of the License at
16  * http://www.opensource.apple.com/apsl/ and read it before using this file.
17  *
18  * The Original Code and all software distributed under the License are
19  * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
20  * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
21  * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
22  * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
23  * Please see the License for the specific language governing rights and
24  * limitations under the License.
25  *
26  * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
27  */
28 /*
29  * NOTICE: This file was modified by McAfee Research in 2004 to introduce
30  * support for mandatory and extensible security protections.  This notice
31  * is included in support of clause 2.2 (b) of the Apple Public License,
32  * Version 2.0.
33  */
34 /*
35  * Copyright (c) 1999 Apple Inc.  All rights reserved.
36  *
37  * HISTORY
38  *
39  * 1999 Mar 29 rsulack created.
40  */
41 
42 #include <mach/mach_types.h>
43 #include <mach/vm_types.h>
44 #include <mach/kern_return.h>
45 #include <mach/host_priv_server.h>
46 #include <mach/vm_map.h>
47 
48 #include <kern/kern_types.h>
49 #include <kern/thread.h>
50 
51 #include <vm/vm_kern.h>
52 
53 #include <libkern/kernel_mach_header.h>
54 
55 /*********************************************************************
56  **********************************************************************
57  ***           KMOD INTERFACE DEPRECATED AS OF SNOWLEOPARD          ***
58  **********************************************************************
59  **********************************************************************
60  * Except for kmod_get_info(), which continues to work for K32 with
61  * 32-bit clients, all remaining functions in this module remain
62  * for symbol linkage or MIG support only,
63  * and return KERN_NOT_SUPPORTED.
64  *
65  * Some kernel-internal portions have been moved to
66  * libkern/OSKextLib.cpp and libkern/c++/OSKext.cpp.
67  **********************************************************************/
68 
69 // bsd/sys/proc.h
70 extern void proc_selfname(char * buf, int size);
71 
72 #define NOT_SUPPORTED_USER64()    \
73     do { \
74 	char procname[64] = "unknown";  \
75 	proc_selfname(procname, sizeof(procname));  \
76 	printf("%s is not supported for 64-bit clients (called from %s)\n",  \
77 	    __FUNCTION__, procname);  \
78     } while (0)
79 
80 #define NOT_SUPPORTED_KERNEL()    \
81     do { \
82 	char procname[64] = "unknown";  \
83 	proc_selfname(procname, sizeof(procname));  \
84 	printf("%s is not supported on this kernel architecture (called from %s)\n",  \
85 	    __FUNCTION__, procname);  \
86     } while (0)
87 
88 #define KMOD_MIG_UNUSED __unused
89 
90 
91 /********************************************************************/
92 kern_return_t
93 kmod_get_info(
94 	host_t host __unused,
95 	kmod_info_array_t * kmod_list KMOD_MIG_UNUSED,
96 	mach_msg_type_number_t * kmodCount KMOD_MIG_UNUSED);
97 kern_return_t
kmod_get_info(host_t host __unused,kmod_info_array_t * kmod_list KMOD_MIG_UNUSED,mach_msg_type_number_t * kmodCount KMOD_MIG_UNUSED)98 kmod_get_info(
99 	host_t host __unused,
100 	kmod_info_array_t * kmod_list KMOD_MIG_UNUSED,
101 	mach_msg_type_number_t * kmodCount KMOD_MIG_UNUSED)
102 {
103 	NOT_SUPPORTED_KERNEL();
104 	return KERN_NOT_SUPPORTED;
105 }
106