1/*
2* This file is produced automatically.
3* Do not modify anything in here by hand.
4*
5* Created from source file
6*   sys/net/ifdi_if.m
7#
8# Copyright (c) 2014-2018, Matthew Macy (mmacy@mattmacy.io)
9# All rights reserved.
10#
11# Redistribution and use in source and binary forms, with or without
12# modification, are permitted provided that the following conditions are met:
13#
14#  1. Redistributions of source code must retain the above copyright notice,
15#     this list of conditions and the following disclaimer.
16#
17#  2. Neither the name of Matthew Macy nor the names of its
18#     contributors may be used to endorse or promote products derived from
19#     this software without specific prior written permission.
20#
21# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
22# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
23# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
24# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
25# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
26# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
27# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
28# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
29# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
30# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
31# POSSIBILITY OF SUCH DAMAGE.
32*/
33
34
35#ifndef _ifdi_if_h_
36#define _ifdi_if_h_
37
38#ifndef __HAIKU__
39extern struct kobjop_desc ifdi_knlist_add_desc;
40typedef int ifdi_knlist_add_t(if_ctx_t _ctx, struct knote *_kn);
41
42static __inline int IFDI_KNLIST_ADD(if_ctx_t _ctx, struct knote *_kn)
43{
44	kobjop_t _m;
45	int rc;
46	KOBJOPLOOKUP(((kobj_t)_ctx)->ops,ifdi_knlist_add);
47	rc = ((ifdi_knlist_add_t *) _m)(_ctx, _kn);
48	return (rc);
49}
50
51extern struct kobjop_desc ifdi_knote_event_desc;
52typedef int ifdi_knote_event_t(if_ctx_t _ctx, struct knote *_kn, int hint);
53
54static __inline int IFDI_KNOTE_EVENT(if_ctx_t _ctx, struct knote *_kn, int hint)
55{
56	kobjop_t _m;
57	int rc;
58	KOBJOPLOOKUP(((kobj_t)_ctx)->ops,ifdi_knote_event);
59	rc = ((ifdi_knote_event_t *) _m)(_ctx, _kn, hint);
60	return (rc);
61}
62#endif
63
64extern struct kobjop_desc ifdi_object_info_get_desc;
65typedef int ifdi_object_info_get_t(if_ctx_t _ctx, void *data, int size);
66
67static __inline int IFDI_OBJECT_INFO_GET(if_ctx_t _ctx, void *data, int size)
68{
69	kobjop_t _m;
70	int rc;
71	KOBJOPLOOKUP(((kobj_t)_ctx)->ops,ifdi_object_info_get);
72	rc = ((ifdi_object_info_get_t *) _m)(_ctx, data, size);
73	return (rc);
74}
75
76extern struct kobjop_desc ifdi_attach_pre_desc;
77typedef int ifdi_attach_pre_t(if_ctx_t _ctx);
78
79static __inline int IFDI_ATTACH_PRE(if_ctx_t _ctx)
80{
81	kobjop_t _m;
82	int rc;
83	KOBJOPLOOKUP(((kobj_t)_ctx)->ops,ifdi_attach_pre);
84	rc = ((ifdi_attach_pre_t *) _m)(_ctx);
85	return (rc);
86}
87
88extern struct kobjop_desc ifdi_attach_post_desc;
89typedef int ifdi_attach_post_t(if_ctx_t _ctx);
90
91static __inline int IFDI_ATTACH_POST(if_ctx_t _ctx)
92{
93	kobjop_t _m;
94	int rc;
95	KOBJOPLOOKUP(((kobj_t)_ctx)->ops,ifdi_attach_post);
96	rc = ((ifdi_attach_post_t *) _m)(_ctx);
97	return (rc);
98}
99
100extern struct kobjop_desc ifdi_reinit_pre_desc;
101typedef int ifdi_reinit_pre_t(if_ctx_t _ctx);
102
103static __inline int IFDI_REINIT_PRE(if_ctx_t _ctx)
104{
105	kobjop_t _m;
106	int rc;
107	KOBJOPLOOKUP(((kobj_t)_ctx)->ops,ifdi_reinit_pre);
108	rc = ((ifdi_reinit_pre_t *) _m)(_ctx);
109	return (rc);
110}
111
112extern struct kobjop_desc ifdi_reinit_post_desc;
113typedef int ifdi_reinit_post_t(if_ctx_t _ctx);
114
115static __inline int IFDI_REINIT_POST(if_ctx_t _ctx)
116{
117	kobjop_t _m;
118	int rc;
119	KOBJOPLOOKUP(((kobj_t)_ctx)->ops,ifdi_reinit_post);
120	rc = ((ifdi_reinit_post_t *) _m)(_ctx);
121	return (rc);
122}
123
124extern struct kobjop_desc ifdi_cloneattach_desc;
125typedef int ifdi_cloneattach_t(if_ctx_t _ctx, struct if_clone *_ifc,
126							const char *_name, caddr_t params);
127
128static __inline int IFDI_CLONEATTACH(if_ctx_t _ctx, struct if_clone *_ifc,
129								 const char *_name, caddr_t params)
130{
131	kobjop_t _m;
132	int rc;
133	KOBJOPLOOKUP(((kobj_t)_ctx)->ops,ifdi_cloneattach);
134	rc = ((ifdi_cloneattach_t *) _m)(_ctx, _ifc, _name, params);
135	return (rc);
136}
137
138extern struct kobjop_desc ifdi_detach_desc;
139typedef int ifdi_detach_t(if_ctx_t _ctx);
140
141static __inline int IFDI_DETACH(if_ctx_t _ctx)
142{
143	kobjop_t _m;
144	int rc;
145	KOBJOPLOOKUP(((kobj_t)_ctx)->ops,ifdi_detach);
146	rc = ((ifdi_detach_t *) _m)(_ctx);
147	return (rc);
148}
149
150extern struct kobjop_desc ifdi_suspend_desc;
151typedef int ifdi_suspend_t(if_ctx_t _ctx);
152
153static __inline int IFDI_SUSPEND(if_ctx_t _ctx)
154{
155	kobjop_t _m;
156	int rc;
157	KOBJOPLOOKUP(((kobj_t)_ctx)->ops,ifdi_suspend);
158	rc = ((ifdi_suspend_t *) _m)(_ctx);
159	return (rc);
160}
161
162extern struct kobjop_desc ifdi_shutdown_desc;
163typedef int ifdi_shutdown_t(if_ctx_t _ctx);
164
165static __inline int IFDI_SHUTDOWN(if_ctx_t _ctx)
166{
167	kobjop_t _m;
168	int rc;
169	KOBJOPLOOKUP(((kobj_t)_ctx)->ops,ifdi_shutdown);
170	rc = ((ifdi_shutdown_t *) _m)(_ctx);
171	return (rc);
172}
173
174extern struct kobjop_desc ifdi_resume_desc;
175typedef int ifdi_resume_t(if_ctx_t _ctx);
176
177static __inline int IFDI_RESUME(if_ctx_t _ctx)
178{
179	kobjop_t _m;
180	int rc;
181	KOBJOPLOOKUP(((kobj_t)_ctx)->ops,ifdi_resume);
182	rc = ((ifdi_resume_t *) _m)(_ctx);
183	return (rc);
184}
185
186extern struct kobjop_desc ifdi_tx_queues_alloc_desc;
187typedef int ifdi_tx_queues_alloc_t(if_ctx_t _ctx, caddr_t *_vaddrs,
188								uint64_t *_paddrs, int ntxqs, int ntxqsets);
189
190static __inline int IFDI_TX_QUEUES_ALLOC(if_ctx_t _ctx, caddr_t *_vaddrs,
191									 uint64_t *_paddrs, int ntxqs,
192									 int ntxqsets)
193{
194	kobjop_t _m;
195	int rc;
196	KOBJOPLOOKUP(((kobj_t)_ctx)->ops,ifdi_tx_queues_alloc);
197	rc = ((ifdi_tx_queues_alloc_t *) _m)(_ctx, _vaddrs, _paddrs, ntxqs, ntxqsets);
198	return (rc);
199}
200
201extern struct kobjop_desc ifdi_rx_queues_alloc_desc;
202typedef int ifdi_rx_queues_alloc_t(if_ctx_t _ctx, caddr_t *_vaddrs,
203								uint64_t *_paddrs, int nrxqs, int nrxqsets);
204
205static __inline int IFDI_RX_QUEUES_ALLOC(if_ctx_t _ctx, caddr_t *_vaddrs,
206									 uint64_t *_paddrs, int nrxqs,
207									 int nrxqsets)
208{
209	kobjop_t _m;
210	int rc;
211	KOBJOPLOOKUP(((kobj_t)_ctx)->ops,ifdi_rx_queues_alloc);
212	rc = ((ifdi_rx_queues_alloc_t *) _m)(_ctx, _vaddrs, _paddrs, nrxqs, nrxqsets);
213	return (rc);
214}
215
216extern struct kobjop_desc ifdi_queues_free_desc;
217typedef void ifdi_queues_free_t(if_ctx_t _ctx);
218
219static __inline void IFDI_QUEUES_FREE(if_ctx_t _ctx)
220{
221	kobjop_t _m;
222	KOBJOPLOOKUP(((kobj_t)_ctx)->ops,ifdi_queues_free);
223	((ifdi_queues_free_t *) _m)(_ctx);
224}
225
226extern struct kobjop_desc ifdi_rx_clset_desc;
227typedef void ifdi_rx_clset_t(if_ctx_t _ctx, uint16_t _fl, uint16_t _qsetid,
228						 caddr_t *_sdcl);
229
230static __inline void IFDI_RX_CLSET(if_ctx_t _ctx, uint16_t _fl,
231								uint16_t _qsetid, caddr_t *_sdcl)
232{
233	kobjop_t _m;
234	KOBJOPLOOKUP(((kobj_t)_ctx)->ops,ifdi_rx_clset);
235	((ifdi_rx_clset_t *) _m)(_ctx, _fl, _qsetid, _sdcl);
236}
237
238extern struct kobjop_desc ifdi_init_desc;
239typedef void ifdi_init_t(if_ctx_t _ctx);
240
241static __inline void IFDI_INIT(if_ctx_t _ctx)
242{
243	kobjop_t _m;
244	KOBJOPLOOKUP(((kobj_t)_ctx)->ops,ifdi_init);
245	((ifdi_init_t *) _m)(_ctx);
246}
247
248extern struct kobjop_desc ifdi_stop_desc;
249typedef void ifdi_stop_t(if_ctx_t _ctx);
250
251static __inline void IFDI_STOP(if_ctx_t _ctx)
252{
253	kobjop_t _m;
254	KOBJOPLOOKUP(((kobj_t)_ctx)->ops,ifdi_stop);
255	((ifdi_stop_t *) _m)(_ctx);
256}
257
258extern struct kobjop_desc ifdi_msix_intr_assign_desc;
259typedef int ifdi_msix_intr_assign_t(if_ctx_t _sctx, int msix);
260
261static __inline int IFDI_MSIX_INTR_ASSIGN(if_ctx_t _sctx, int msix)
262{
263	kobjop_t _m;
264	int rc;
265	KOBJOPLOOKUP(((kobj_t)_sctx)->ops,ifdi_msix_intr_assign);
266	rc = ((ifdi_msix_intr_assign_t *) _m)(_sctx, msix);
267	return (rc);
268}
269
270extern struct kobjop_desc ifdi_intr_enable_desc;
271typedef void ifdi_intr_enable_t(if_ctx_t _ctx);
272
273static __inline void IFDI_INTR_ENABLE(if_ctx_t _ctx)
274{
275	kobjop_t _m;
276	KOBJOPLOOKUP(((kobj_t)_ctx)->ops,ifdi_intr_enable);
277	((ifdi_intr_enable_t *) _m)(_ctx);
278}
279
280extern struct kobjop_desc ifdi_intr_disable_desc;
281typedef void ifdi_intr_disable_t(if_ctx_t _ctx);
282
283static __inline void IFDI_INTR_DISABLE(if_ctx_t _ctx)
284{
285	kobjop_t _m;
286	KOBJOPLOOKUP(((kobj_t)_ctx)->ops,ifdi_intr_disable);
287	((ifdi_intr_disable_t *) _m)(_ctx);
288}
289
290extern struct kobjop_desc ifdi_rx_queue_intr_enable_desc;
291typedef int ifdi_rx_queue_intr_enable_t(if_ctx_t _ctx, uint16_t _qid);
292
293static __inline int IFDI_RX_QUEUE_INTR_ENABLE(if_ctx_t _ctx, uint16_t _qid)
294{
295	kobjop_t _m;
296	int rc;
297	KOBJOPLOOKUP(((kobj_t)_ctx)->ops,ifdi_rx_queue_intr_enable);
298	rc = ((ifdi_rx_queue_intr_enable_t *) _m)(_ctx, _qid);
299	return (rc);
300}
301
302extern struct kobjop_desc ifdi_tx_queue_intr_enable_desc;
303typedef int ifdi_tx_queue_intr_enable_t(if_ctx_t _ctx, uint16_t _qid);
304
305static __inline int IFDI_TX_QUEUE_INTR_ENABLE(if_ctx_t _ctx, uint16_t _qid)
306{
307	kobjop_t _m;
308	int rc;
309	KOBJOPLOOKUP(((kobj_t)_ctx)->ops,ifdi_tx_queue_intr_enable);
310	rc = ((ifdi_tx_queue_intr_enable_t *) _m)(_ctx, _qid);
311	return (rc);
312}
313
314extern struct kobjop_desc ifdi_link_intr_enable_desc;
315typedef void ifdi_link_intr_enable_t(if_ctx_t _ctx);
316
317static __inline void IFDI_LINK_INTR_ENABLE(if_ctx_t _ctx)
318{
319	kobjop_t _m;
320	KOBJOPLOOKUP(((kobj_t)_ctx)->ops,ifdi_link_intr_enable);
321	((ifdi_link_intr_enable_t *) _m)(_ctx);
322}
323
324extern struct kobjop_desc ifdi_multi_set_desc;
325typedef void ifdi_multi_set_t(if_ctx_t _ctx);
326
327static __inline void IFDI_MULTI_SET(if_ctx_t _ctx)
328{
329	kobjop_t _m;
330	KOBJOPLOOKUP(((kobj_t)_ctx)->ops,ifdi_multi_set);
331	((ifdi_multi_set_t *) _m)(_ctx);
332}
333
334extern struct kobjop_desc ifdi_mtu_set_desc;
335typedef int ifdi_mtu_set_t(if_ctx_t _ctx, uint32_t _mtu);
336
337static __inline int IFDI_MTU_SET(if_ctx_t _ctx, uint32_t _mtu)
338{
339	kobjop_t _m;
340	int rc;
341	KOBJOPLOOKUP(((kobj_t)_ctx)->ops,ifdi_mtu_set);
342	rc = ((ifdi_mtu_set_t *) _m)(_ctx, _mtu);
343	return (rc);
344}
345
346extern struct kobjop_desc ifdi_mac_set_desc;
347typedef int ifdi_mac_set_t(if_ctx_t _ctx, const uint8_t *_mac);
348
349static __inline int IFDI_MAC_SET(if_ctx_t _ctx, const uint8_t *_mac)
350{
351	kobjop_t _m;
352	int rc;
353	KOBJOPLOOKUP(((kobj_t)_ctx)->ops,ifdi_mac_set);
354	rc = ((ifdi_mac_set_t *) _m)(_ctx, _mac);
355	return (rc);
356}
357
358extern struct kobjop_desc ifdi_media_set_desc;
359typedef void ifdi_media_set_t(if_ctx_t _ctx);
360
361static __inline void IFDI_MEDIA_SET(if_ctx_t _ctx)
362{
363	kobjop_t _m;
364	KOBJOPLOOKUP(((kobj_t)_ctx)->ops,ifdi_media_set);
365	((ifdi_media_set_t *) _m)(_ctx);
366}
367
368extern struct kobjop_desc ifdi_promisc_set_desc;
369typedef int ifdi_promisc_set_t(if_ctx_t _ctx, int _flags);
370
371static __inline int IFDI_PROMISC_SET(if_ctx_t _ctx, int _flags)
372{
373	kobjop_t _m;
374	int rc;
375	KOBJOPLOOKUP(((kobj_t)_ctx)->ops,ifdi_promisc_set);
376	rc = ((ifdi_promisc_set_t *) _m)(_ctx, _flags);
377	return (rc);
378}
379
380extern struct kobjop_desc ifdi_crcstrip_set_desc;
381typedef void ifdi_crcstrip_set_t(if_ctx_t _ctx, int _onoff, int _strip);
382
383static __inline void IFDI_CRCSTRIP_SET(if_ctx_t _ctx, int _onoff, int _strip)
384{
385	kobjop_t _m;
386	KOBJOPLOOKUP(((kobj_t)_ctx)->ops,ifdi_crcstrip_set);
387	((ifdi_crcstrip_set_t *) _m)(_ctx, _onoff, _strip);
388}
389
390extern struct kobjop_desc ifdi_vflr_handle_desc;
391typedef void ifdi_vflr_handle_t(if_ctx_t _ctx);
392
393static __inline void IFDI_VFLR_HANDLE(if_ctx_t _ctx)
394{
395	kobjop_t _m;
396	KOBJOPLOOKUP(((kobj_t)_ctx)->ops,ifdi_vflr_handle);
397	((ifdi_vflr_handle_t *) _m)(_ctx);
398}
399
400extern struct kobjop_desc ifdi_iov_init_desc;
401typedef int ifdi_iov_init_t(if_ctx_t _ctx, uint16_t num_vfs,
402						const nvlist_t * params);
403
404static __inline int IFDI_IOV_INIT(if_ctx_t _ctx, uint16_t num_vfs,
405							  const nvlist_t * params)
406{
407	kobjop_t _m;
408	int rc;
409	KOBJOPLOOKUP(((kobj_t)_ctx)->ops,ifdi_iov_init);
410	rc = ((ifdi_iov_init_t *) _m)(_ctx, num_vfs, params);
411	return (rc);
412}
413
414extern struct kobjop_desc ifdi_iov_uninit_desc;
415typedef void ifdi_iov_uninit_t(if_ctx_t _ctx);
416
417static __inline void IFDI_IOV_UNINIT(if_ctx_t _ctx)
418{
419	kobjop_t _m;
420	KOBJOPLOOKUP(((kobj_t)_ctx)->ops,ifdi_iov_uninit);
421	((ifdi_iov_uninit_t *) _m)(_ctx);
422}
423
424extern struct kobjop_desc ifdi_iov_vf_add_desc;
425typedef int ifdi_iov_vf_add_t(if_ctx_t _ctx, uint16_t num_vfs,
426						  const nvlist_t * params);
427
428static __inline int IFDI_IOV_VF_ADD(if_ctx_t _ctx, uint16_t num_vfs,
429								const nvlist_t * params)
430{
431	kobjop_t _m;
432	int rc;
433	KOBJOPLOOKUP(((kobj_t)_ctx)->ops,ifdi_iov_vf_add);
434	rc = ((ifdi_iov_vf_add_t *) _m)(_ctx, num_vfs, params);
435	return (rc);
436}
437
438extern struct kobjop_desc ifdi_update_admin_status_desc;
439typedef void ifdi_update_admin_status_t(if_ctx_t _ctx);
440
441static __inline void IFDI_UPDATE_ADMIN_STATUS(if_ctx_t _ctx)
442{
443	kobjop_t _m;
444	KOBJOPLOOKUP(((kobj_t)_ctx)->ops,ifdi_update_admin_status);
445	((ifdi_update_admin_status_t *) _m)(_ctx);
446}
447
448extern struct kobjop_desc ifdi_media_status_desc;
449typedef void ifdi_media_status_t(if_ctx_t _ctx, struct ifmediareq *_ifm);
450
451static __inline void IFDI_MEDIA_STATUS(if_ctx_t _ctx, struct ifmediareq *_ifm)
452{
453	kobjop_t _m;
454	KOBJOPLOOKUP(((kobj_t)_ctx)->ops,ifdi_media_status);
455	((ifdi_media_status_t *) _m)(_ctx, _ifm);
456}
457
458extern struct kobjop_desc ifdi_media_change_desc;
459typedef int ifdi_media_change_t(if_ctx_t _ctx);
460
461static __inline int IFDI_MEDIA_CHANGE(if_ctx_t _ctx)
462{
463	kobjop_t _m;
464	int rc;
465	KOBJOPLOOKUP(((kobj_t)_ctx)->ops,ifdi_media_change);
466	rc = ((ifdi_media_change_t *) _m)(_ctx);
467	return (rc);
468}
469
470extern struct kobjop_desc ifdi_get_counter_desc;
471typedef uint64_t ifdi_get_counter_t(if_ctx_t _ctx, ift_counter cnt);
472
473static __inline uint64_t IFDI_GET_COUNTER(if_ctx_t _ctx, ift_counter cnt)
474{
475	kobjop_t _m;
476	uint64_t rc;
477	KOBJOPLOOKUP(((kobj_t)_ctx)->ops,ifdi_get_counter);
478	rc = ((ifdi_get_counter_t *) _m)(_ctx, cnt);
479	return (rc);
480}
481
482extern struct kobjop_desc ifdi_priv_ioctl_desc;
483typedef int ifdi_priv_ioctl_t(if_ctx_t _ctx, u_long _cmd, caddr_t _data);
484
485static __inline int IFDI_PRIV_IOCTL(if_ctx_t _ctx, u_long _cmd, caddr_t _data)
486{
487	kobjop_t _m;
488	int rc;
489	KOBJOPLOOKUP(((kobj_t)_ctx)->ops,ifdi_priv_ioctl);
490	rc = ((ifdi_priv_ioctl_t *) _m)(_ctx, _cmd, _data);
491	return (rc);
492}
493
494extern struct kobjop_desc ifdi_i2c_req_desc;
495typedef int ifdi_i2c_req_t(if_ctx_t _ctx, struct ifi2creq *_req);
496
497static __inline int IFDI_I2C_REQ(if_ctx_t _ctx, struct ifi2creq *_req)
498{
499	kobjop_t _m;
500	int rc;
501	KOBJOPLOOKUP(((kobj_t)_ctx)->ops,ifdi_i2c_req);
502	rc = ((ifdi_i2c_req_t *) _m)(_ctx, _req);
503	return (rc);
504}
505
506extern struct kobjop_desc ifdi_txq_setup_desc;
507typedef int ifdi_txq_setup_t(if_ctx_t _ctx, uint32_t _txqid);
508
509static __inline int IFDI_TXQ_SETUP(if_ctx_t _ctx, uint32_t _txqid)
510{
511	kobjop_t _m;
512	int rc;
513	KOBJOPLOOKUP(((kobj_t)_ctx)->ops,ifdi_txq_setup);
514	rc = ((ifdi_txq_setup_t *) _m)(_ctx, _txqid);
515	return (rc);
516}
517
518extern struct kobjop_desc ifdi_rxq_setup_desc;
519typedef int ifdi_rxq_setup_t(if_ctx_t _ctx, uint32_t _txqid);
520
521static __inline int IFDI_RXQ_SETUP(if_ctx_t _ctx, uint32_t _txqid)
522{
523	kobjop_t _m;
524	int rc;
525	KOBJOPLOOKUP(((kobj_t)_ctx)->ops,ifdi_rxq_setup);
526	rc = ((ifdi_rxq_setup_t *) _m)(_ctx, _txqid);
527	return (rc);
528}
529
530extern struct kobjop_desc ifdi_timer_desc;
531typedef void ifdi_timer_t(if_ctx_t _ctx, uint16_t _txqid);
532
533static __inline void IFDI_TIMER(if_ctx_t _ctx, uint16_t _txqid)
534{
535	kobjop_t _m;
536	KOBJOPLOOKUP(((kobj_t)_ctx)->ops,ifdi_timer);
537	((ifdi_timer_t *) _m)(_ctx, _txqid);
538}
539
540extern struct kobjop_desc ifdi_watchdog_reset_desc;
541typedef void ifdi_watchdog_reset_t(if_ctx_t _ctx);
542
543static __inline void IFDI_WATCHDOG_RESET(if_ctx_t _ctx)
544{
545	kobjop_t _m;
546	KOBJOPLOOKUP(((kobj_t)_ctx)->ops,ifdi_watchdog_reset);
547	((ifdi_watchdog_reset_t *) _m)(_ctx);
548}
549
550extern struct kobjop_desc ifdi_watchdog_reset_queue_desc;
551typedef void ifdi_watchdog_reset_queue_t(if_ctx_t _ctx, uint16_t _q);
552
553static __inline void IFDI_WATCHDOG_RESET_QUEUE(if_ctx_t _ctx, uint16_t _q)
554{
555	kobjop_t _m;
556	KOBJOPLOOKUP(((kobj_t)_ctx)->ops,ifdi_watchdog_reset_queue);
557	((ifdi_watchdog_reset_queue_t *) _m)(_ctx, _q);
558}
559
560extern struct kobjop_desc ifdi_led_func_desc;
561typedef void ifdi_led_func_t(if_ctx_t _ctx, int _onoff);
562
563static __inline void IFDI_LED_FUNC(if_ctx_t _ctx, int _onoff)
564{
565	kobjop_t _m;
566	KOBJOPLOOKUP(((kobj_t)_ctx)->ops,ifdi_led_func);
567	((ifdi_led_func_t *) _m)(_ctx, _onoff);
568}
569
570extern struct kobjop_desc ifdi_vlan_register_desc;
571typedef void ifdi_vlan_register_t(if_ctx_t _ctx, uint16_t _vtag);
572
573static __inline void IFDI_VLAN_REGISTER(if_ctx_t _ctx, uint16_t _vtag)
574{
575	kobjop_t _m;
576	KOBJOPLOOKUP(((kobj_t)_ctx)->ops,ifdi_vlan_register);
577	((ifdi_vlan_register_t *) _m)(_ctx, _vtag);
578}
579
580extern struct kobjop_desc ifdi_vlan_unregister_desc;
581typedef void ifdi_vlan_unregister_t(if_ctx_t _ctx, uint16_t _vtag);
582
583static __inline void IFDI_VLAN_UNREGISTER(if_ctx_t _ctx, uint16_t _vtag)
584{
585	kobjop_t _m;
586	KOBJOPLOOKUP(((kobj_t)_ctx)->ops,ifdi_vlan_unregister);
587	((ifdi_vlan_unregister_t *) _m)(_ctx, _vtag);
588}
589
590extern struct kobjop_desc ifdi_sysctl_int_delay_desc;
591typedef int ifdi_sysctl_int_delay_t(if_ctx_t _sctx, if_int_delay_info_t _iidi);
592
593static __inline int IFDI_SYSCTL_INT_DELAY(if_ctx_t _sctx,
594	if_int_delay_info_t _iidi)
595{
596	kobjop_t _m;
597	int rc;
598	KOBJOPLOOKUP(((kobj_t)_sctx)->ops,ifdi_sysctl_int_delay);
599	rc = ((ifdi_sysctl_int_delay_t *) _m)(_sctx, _iidi);
600	return (rc);
601}
602
603extern struct kobjop_desc ifdi_debug_desc;
604typedef void ifdi_debug_t(if_ctx_t _ctx);
605
606static __inline void IFDI_DEBUG(if_ctx_t _ctx)
607{
608	kobjop_t _m;
609	KOBJOPLOOKUP(((kobj_t)_ctx)->ops,ifdi_debug);
610	((ifdi_debug_t *) _m)(_ctx);
611}
612
613extern struct kobjop_desc ifdi_needs_restart_desc;
614typedef bool ifdi_needs_restart_t(if_ctx_t _ctx, enum iflib_restart_event _event);
615
616static __inline bool IFDI_NEEDS_RESTART(if_ctx_t _ctx, enum iflib_restart_event _event)
617{
618	kobjop_t _m;
619	bool rc;
620	KOBJOPLOOKUP(((kobj_t)_ctx)->ops,ifdi_needs_restart);
621	rc = ((ifdi_needs_restart_t *) _m)(_ctx, _event);
622	return (rc);
623}
624
625#endif
626