1 /* 2 * Copyright (c) 2015-2022 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 #include <kern/debug.h> 30 31 #if !SKYWALK 32 33 #define STUB(_name) \ 34 __attribute__((noreturn)) \ 35 int _name(void); \ 36 int \ 37 _name(void) \ 38 { \ 39 panic("stub called in a config with no SKYWALK"); \ 40 /* NOTREACHED */ \ 41 __builtin_unreachable(); \ 42 } 43 44 STUB(kern_buflet_get_data_address); 45 STUB(kern_buflet_get_data_offset); 46 STUB(kern_buflet_get_data_length); 47 STUB(kern_buflet_get_data_limit); 48 STUB(kern_buflet_get_object_address); 49 STUB(kern_buflet_get_object_limit); 50 STUB(kern_buflet_get_object_segment); 51 STUB(kern_buflet_set_data_address); 52 STUB(kern_buflet_set_data_offset); 53 STUB(kern_buflet_set_data_length); 54 STUB(kern_buflet_set_data_limit); 55 STUB(kern_buflet_set_buffer_offset); 56 STUB(kern_channel_advance_slot); 57 STUB(kern_channel_available_slot_count); 58 STUB(kern_channel_get_context); 59 STUB(kern_channel_get_next_slot); 60 STUB(kern_channel_notify); 61 STUB(kern_channel_reclaim); 62 STUB(kern_channel_ring_get_container); 63 STUB(kern_channel_ring_get_context); 64 STUB(kern_channel_slot_get_context); 65 STUB(kern_channel_slot_attach_packet); 66 STUB(kern_channel_slot_detach_packet); 67 STUB(kern_channel_slot_get_packet); 68 STUB(kern_channel_increment_ring_stats); 69 STUB(kern_channel_increment_ring_net_stats); 70 STUB(kern_channel_tx_refill); 71 STUB(kern_channel_get_service_class); 72 STUB(kern_channel_event_transmit_status); 73 STUB(kern_channel_event_transmit_status_with_nexus); 74 STUB(kern_channel_event_transmit_expired); 75 STUB(kern_channel_event_transmit_expired_with_nexus); 76 STUB(kern_netif_queue_rx_enqueue); 77 STUB(kern_netif_queue_tx_dequeue); 78 STUB(kern_netif_queue_get_service_class); 79 STUB(kern_copy_and_inet_checksum); 80 STUB(kern_inet_checksum); 81 STUB(kern_nexus_attr_create); 82 STUB(kern_nexus_attr_clone); 83 STUB(kern_nexus_attr_destroy); 84 STUB(kern_nexus_attr_set); 85 STUB(kern_nexus_attr_get); 86 STUB(kern_nexus_controller_create); 87 STUB(kern_nexus_controller_destroy); 88 STUB(kern_nexus_controller_alloc_provider_instance); 89 STUB(kern_nexus_controller_alloc_net_provider_instance); 90 STUB(kern_nexus_controller_bind_provider_instance); 91 STUB(kern_nexus_controller_deregister_provider); 92 STUB(kern_nexus_controller_free_provider_instance); 93 STUB(kern_nexus_controller_read_provider_attr); 94 STUB(kern_nexus_controller_register_provider); 95 STUB(kern_nexus_controller_unbind_provider_instance); 96 STUB(kern_nexus_deregister_domain_provider); 97 STUB(kern_nexus_get_default_domain_provider); 98 STUB(kern_nexus_get_flowswitch_instance); 99 STUB(kern_nexus_get_context); 100 STUB(kern_nexus_get_pbufpool); 101 STUB(kern_nexus_register_domain_provider); 102 STUB(kern_nexus_netif_llink_add); 103 STUB(kern_nexus_netif_llink_remove); 104 STUB(kern_packet_check_for_expiry_and_notify); 105 STUB(kern_packet_clear_flow_uuid); 106 STUB(kern_packet_clone); 107 STUB(kern_packet_clone_nosleep); 108 STUB(kern_packet_get_euuid); 109 STUB(kern_packet_finalize); 110 STUB(kern_packet_get_buflet_count); 111 STUB(kern_packet_get_data_length); 112 STUB(kern_packet_get_compression_generation_count); 113 STUB(kern_packet_get_flow_uuid); 114 STUB(kern_packet_get_inet_checksum); 115 STUB(kern_packet_get_headroom); 116 STUB(kern_packet_get_link_broadcast); 117 STUB(kern_packet_get_link_ethfcs); 118 STUB(kern_packet_get_link_header_offset); 119 STUB(kern_packet_get_link_header_length); 120 STUB(kern_packet_get_link_multicast); 121 STUB(kern_packet_get_network_header_offset); 122 STUB(kern_packet_get_next_buflet); 123 STUB(kern_packet_get_object_index); 124 STUB(kern_packet_get_policy_id); 125 STUB(kern_packet_get_skip_policy_id); 126 STUB(kern_packet_get_service_class); 127 STUB(kern_packet_get_service_class_index); 128 STUB(kern_packet_is_high_priority); 129 STUB(kern_packet_get_traffic_class); 130 STUB(kern_packet_get_timestamp); 131 STUB(kern_packet_get_transport_header_offset); 132 STUB(kern_packet_get_transport_new_flow); 133 STUB(kern_packet_get_transport_retransmit); 134 STUB(kern_packet_get_transport_last_packet); 135 STUB(kern_packet_get_transport_traffic_background) 136 STUB(kern_packet_get_transport_traffic_realtime) 137 STUB(kern_packet_set_compression_generation_count); 138 STUB(kern_packet_set_flow_uuid); 139 STUB(kern_packet_set_inet_checksum); 140 STUB(kern_packet_set_headroom); 141 STUB(kern_packet_set_link_broadcast); 142 STUB(kern_packet_set_link_header_offset); 143 STUB(kern_packet_set_link_header_length); 144 STUB(kern_packet_set_link_multicast); 145 STUB(kern_packet_set_link_ethfcs); 146 STUB(kern_packet_set_network_header_offset); 147 STUB(kern_packet_set_policy_id); 148 STUB(kern_packet_set_service_class); 149 STUB(kern_packet_set_timestamp); 150 STUB(kern_packet_set_traffic_class); 151 STUB(kern_packet_set_transport_header_offset); 152 STUB(kern_packet_get_timestamp_requested); 153 STUB(kern_packet_get_tx_completion_status); 154 STUB(kern_packet_set_tx_completion_status); 155 STUB(kern_packet_tx_completion); 156 STUB(kern_packet_set_group_start); 157 STUB(kern_packet_get_group_start); 158 STUB(kern_packet_set_group_end); 159 STUB(kern_packet_get_group_end); 160 STUB(kern_packet_set_expire_time); 161 STUB(kern_packet_get_expire_time); 162 STUB(kern_packet_set_expiry_action); 163 STUB(kern_packet_get_expiry_action); 164 STUB(kern_packet_set_token); 165 STUB(kern_packet_get_token); 166 STUB(kern_packet_get_packetid); 167 STUB(kern_packet_set_vlan_tag); 168 STUB(kern_packet_get_vlan_tag); 169 STUB(kern_packet_get_vlan_id); 170 STUB(kern_packet_get_vlan_priority); 171 STUB(kern_packet_get_app_metadata); 172 STUB(kern_packet_set_wake_flag); 173 STUB(kern_packet_get_wake_flag); 174 STUB(kern_packet_add_buflet); 175 STUB(kern_packet_append); 176 STUB(kern_packet_get_next); 177 STUB(kern_packet_set_next); 178 STUB(kern_packet_set_chain_counts); 179 STUB(kern_packet_get_chain_counts); 180 STUB(kern_packet_set_trace_id); 181 STUB(kern_packet_get_trace_id); 182 STUB(kern_packet_trace_event); 183 STUB(kern_packet_copy_bytes); 184 STUB(kern_packet_set_fpd_sequence_number); 185 STUB(kern_packet_set_fpd_context_id); 186 STUB(kern_packet_set_fpd_command); 187 STUB(kern_packet_get_flowid); 188 STUB(kern_packet_set_trace_tag); 189 STUB(kern_packet_get_trace_tag); 190 STUB(kern_packet_get_tx_nexus_port_id); 191 STUB(kern_packet_get_protocol_segment_size); 192 STUB(kern_packet_get_priv); 193 STUB(kern_packet_set_priv); 194 STUB(kern_packet_set_segment_count); 195 STUB(kern_packet_get_tso_flags); 196 STUB(kern_pbufpool_alloc); 197 STUB(kern_pbufpool_alloc_batch); 198 STUB(kern_pbufpool_alloc_batch_callback); 199 STUB(kern_pbufpool_alloc_nosleep); 200 STUB(kern_pbufpool_alloc_batch_nosleep); 201 STUB(kern_pbufpool_alloc_batch_nosleep_callback); 202 STUB(kern_pbufpool_create); 203 STUB(kern_pbufpool_destroy); 204 STUB(kern_pbufpool_free); 205 STUB(kern_pbufpool_free_batch); 206 STUB(kern_pbufpool_free_chain); 207 STUB(kern_pbufpool_get_context); 208 STUB(kern_pbufpool_get_memory_info); 209 STUB(kern_pbufpool_alloc_buffer); 210 STUB(kern_pbufpool_alloc_buffer_nosleep); 211 STUB(kern_pbufpool_free_buffer); 212 STUB(kern_pbufpool_alloc_buflet); 213 STUB(kern_pbufpool_alloc_buflet_nosleep); 214 STUB(kern_segment_get_index); 215 #if NETWORKING 216 STUB(bpf_tap_packet_in); 217 STUB(bpf_tap_packet_out); 218 #endif 219 #undef STUB 220 #endif /* !SKYWALK */ 221