source: rtems-libbsd/libbsd.py @ 8440506

4.115-freebsd-12freebsd-9.3
Last change on this file since 8440506 was 8440506, checked in by Chris Johns <chrisj@…>, on Jun 15, 2015 at 7:42:23 AM

Add tcpdump and libpcap.

  • Update the file builder generator to handle generator specific cflags and includes. The tcpdump and libpcap have localised headers and need specific headers paths to see them. There are also module specific flags and these need to be passed to the lex and yacc generators.
  • Add the tcpdump support.
  • Property mode set to 100755
File size: 85.2 KB
Line 
1#
2#  Copyright (c) 2015 Chris Johns <chrisj@rtems.org>. All rights reserved.
3#
4#  Copyright (c) 2009-2015 embedded brains GmbH.  All rights reserved.
5#
6#   embedded brains GmbH
7#   Dornierstr. 4
8#   82178 Puchheim
9#   Germany
10#   <info@embedded-brains.de>
11#
12#  Copyright (c) 2012 OAR Corporation. All rights reserved.
13#
14#  Redistribution and use in source and binary forms, with or without
15#  modification, are permitted provided that the following conditions
16#  are met:
17#  1. Redistributions of source code must retain the above copyright
18#     notice, this list of conditions and the following disclaimer.
19#  2. Redistributions in binary form must reproduce the above copyright
20#     notice, this list of conditions and the following disclaimer in the
21#     documentation and/or other materials provided with the distribution.
22#
23#  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
24#  "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
25#  LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
26#  A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
27#  OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
28#  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
29#  LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
30#  DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
31#  THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
32#  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
33#  OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
34
35import builder
36
37#
38# RTEMS
39#
40def rtems(mm):
41    mod = builder.Module('rtems')
42    mod.addRTEMSSourceFiles(
43        [
44            'local/bus_if.c',
45            'local/cryptodev_if.c',
46            'local/device_if.c',
47            'local/miibus_if.c',
48            'local/pcib_if.c',
49            'local/pci_if.c',
50            'local/usb_if.c',
51            'local/mmcbus_if.c',
52            'local/mmcbr_if.c',
53            'rtems/ipsec_get_policylen.c',
54            'rtems/rtems-bsd-assert.c',
55            'rtems/rtems-bsd-arp-processor.c',
56            'rtems/rtems-bsd-autoconf.c',
57            'rtems/rtems-bsd-bus-dma.c',
58            'rtems/rtems-bsd-bus-dma-mbuf.c',
59            'rtems/rtems-bsd-cam.c',
60            'rtems/rtems-bsd-chunk.c',
61            'rtems/rtems-bsd-conf.c',
62            'rtems/rtems-bsd-configintrhook.c',
63            'rtems/rtems-bsd-delay.c',
64            'rtems/rtems-bsd-get-ethernet-addr.c',
65            'rtems/rtems-bsd-get-file.c',
66            'rtems/rtems-bsd-get-mac-address.c',
67            'rtems/rtems-bsd-get-allocator-domain-size.c',
68            'rtems/rtems-bsd-get-task-priority.c',
69            'rtems/rtems-bsd-get-task-stack-size.c',
70            'rtems/rtems-bsd-init.c',
71            'rtems/rtems-bsd-jail.c',
72            'rtems/rtems-bsd-log.c',
73            'rtems/rtems-bsd-malloc.c',
74            'rtems/rtems-bsd-mbuf.c',
75            'rtems/rtems-bsd-mutex.c',
76            'rtems/rtems-bsd-muteximpl.c',
77            'rtems/rtems-bsd-newproc.c',
78            'rtems/rtems-bsd-nexus.c',
79            'rtems/rtems-bsd-page.c',
80            'rtems/rtems-bsd-panic.c',
81            'rtems/rtems-bsd-pci_bus.c',
82            'rtems/rtems-bsd-pci_cfgreg.c',
83            'rtems/rtems-bsd-program.c',
84            'rtems/rtems-bsd-rwlock.c',
85            'rtems/rtems-bsd-shell.c',
86            'rtems/rtems-bsd-shell-netcmds.c',
87            'rtems/rtems-bsd-signal.c',
88            'rtems/rtems-bsd-sx.c',
89            'rtems/rtems-bsd-syscall-api.c',
90            'rtems/rtems-bsd-sysctlbyname.c',
91            'rtems/rtems-bsd-sysctl.c',
92            'rtems/rtems-bsd-sysctlnametomib.c',
93            'rtems/rtems-bsd-thread.c',
94            'rtems/rtems-bsd-timesupport.c',
95            'rtems/rtems-bsdnet-rtrequest.c',
96            'rtems/rtems-kvm.c',
97            'rtems/rtems_mii_ioctl_kern.c',
98            'rtems/rtems-syslog-initialize.c',
99            'rtems/syslog.c',
100            'ftpd/ftpd.c',
101            'mdns/mdns.c',
102            'mdns/mdns-hostname-default.c',
103            'pppd/auth.c',
104            'pppd/ccp.c',
105            'pppd/chap.c',
106            'pppd/chap_ms.c',
107            'pppd/chat.c',
108            'pppd/demand.c',
109            'pppd/fsm.c',
110            'pppd/ipcp.c',
111            'pppd/lcp.c',
112            'pppd/magic.c',
113            'pppd/options.c',
114            'pppd/rtemsmain.c',
115            'pppd/rtemspppd.c',
116            'pppd/sys-rtems.c',
117            'pppd/upap.c',
118            'pppd/utils.c',
119            'sys/dev/usb/controller/ehci_mpc83xx.c',
120            'sys/dev/usb/controller/ohci_lpc.c',
121            'sys/dev/usb/controller/usb_otg_transceiver.c',
122            'sys/dev/usb/controller/usb_otg_transceiver_dump.c',
123            'sys/dev/smc/if_smc_nexus.c',
124            'sys/dev/ffec/if_ffec_mcf548x.c',
125            'sys/dev/dw_mmc/dw_mmc.c',
126            'sys/net/if_ppp.c',
127            'sys/net/ppp_tty.c',
128            'telnetd/check_passwd.c',
129            'telnetd/des.c',
130            'telnetd/pty.c',
131            'telnetd/telnetd.c',
132            'sys/dev/tsec/if_tsec_nexus.c',
133        ],
134        mm.generator['source']()
135    )
136    mod.addFile(mm.generator['file']('rtems/rtems-kvm-symbols.c',
137                                     mm.generator['rtems-path'](),
138                                     mm.generator['no-convert'](),
139                                     mm.generator['no-convert'](),
140                                     mm.generator['kvm-symbols'](includes = 'rtemsbsd/rtems')))
141    mod.addFile(mm.generator['file']('lib/libc/net/nslexer.l',
142                                     mm.generator['freebsd-path'](),
143                                     mm.generator['convert'](),
144                                     mm.generator['convert'](),
145                                     mm.generator['lex']('_nsyy', 'nsparser.c')))
146    mod.addFile(mm.generator['file']('lib/libc/net/nsparser.y',
147                                     mm.generator['freebsd-path'](),
148                                     mm.generator['convert'](),
149                                     mm.generator['convert'](),
150                                     mm.generator['yacc']('_nsyy', 'nsparser.h')))
151    mod.addFile(mm.generator['file']('lib/libipsec/policy_token.l',
152                                     mm.generator['freebsd-path'](),
153                                     mm.generator['convert'](),
154                                     mm.generator['convert'](),
155                                     mm.generator['lex']('__libipsecyy', 'policy_parse.c')))
156    mod.addFile(mm.generator['file']('lib/libipsec/policy_parse.y',
157                                     mm.generator['freebsd-path'](),
158                                     mm.generator['convert'](),
159                                     mm.generator['convert'](),
160                                     mm.generator['yacc']('__libipsecyy', 'y.tab.h')))
161    return mod
162
163#
164# Base
165#
166def base(mm):
167    mod = builder.Module('base')
168    mod.addKernelSpaceHeaderFiles(
169        [
170            'sys/bsm/audit.h',
171            'sys/bsm/audit_kevents.h',
172            'sys/fs/devfs/devfs_int.h',
173            'sys/security/audit/audit.h',
174            'sys/security/mac/mac_framework.h',
175            'sys/sys/acl.h',
176            'sys/sys/aio.h',
177            'sys/sys/bitstring.h',
178            'sys/sys/bufobj.h',
179            'sys/sys/buf_ring.h',
180            'sys/sys/_bus_dma.h',
181            'sys/sys/bus_dma.h',
182            'sys/sys/bus.h',
183            'sys/sys/_callout.h',
184            'sys/sys/callout.h',
185            'sys/sys/capability.h',
186            'sys/sys/condvar.h',
187            'sys/sys/conf.h',
188            'sys/sys/cpu.h',
189            'sys/sys/ctype.h',
190            'sys/sys/domain.h',
191            'sys/sys/endian.h',
192            'sys/sys/eventhandler.h',
193            'sys/sys/filedesc.h',
194            'sys/sys/file.h',
195            'sys/sys/filio.h',
196            'sys/sys/fnv_hash.h',
197            'sys/sys/hash.h',
198            'sys/sys/hhook.h',
199            'sys/sys/interrupt.h',
200            'sys/sys/jail.h',
201            'sys/sys/kernel.h',
202            'sys/sys/khelp.h',
203            'sys/sys/kobj.h',
204            'sys/sys/kthread.h',
205            'sys/sys/ktr.h',
206            'sys/sys/libkern.h',
207            'sys/sys/limits.h',
208            'sys/sys/linker.h',
209            'sys/sys/linker_set.h',
210            'sys/sys/_lock.h',
211            'sys/sys/_lockmgr.h',
212            'sys/sys/lockmgr.h',
213            'sys/sys/lock_profile.h',
214            'sys/sys/lockstat.h',
215            'sys/sys/loginclass.h',
216            'sys/sys/mac.h',
217            'sys/sys/malloc.h',
218            'sys/sys/mbuf.h',
219            'sys/sys/module.h',
220            'sys/sys/module_khelp.h',
221            'sys/sys/mount.h',
222            'sys/sys/_mutex.h',
223            'sys/sys/mutex.h',
224            'sys/sys/_null.h',
225            'sys/sys/osd.h',
226            'sys/sys/pcpu.h',
227            'sys/sys/priority.h',
228            'sys/sys/priv.h',
229            'sys/sys/proc.h',
230            'sys/sys/protosw.h',
231            'sys/sys/racct.h',
232            'sys/sys/random.h',
233            'sys/sys/reboot.h',
234            'sys/sys/refcount.h',
235            'sys/sys/resourcevar.h',
236            'sys/sys/rman.h',
237            'sys/sys/_rmlock.h',
238            'sys/sys/rmlock.h',
239            'sys/sys/rtprio.h',
240            'sys/sys/runq.h',
241            'sys/sys/_rwlock.h',
242            'sys/sys/rwlock.h',
243            'sys/sys/sbuf.h',
244            'sys/sys/sdt.h',
245            'sys/sys/select.h',
246            'sys/sys/selinfo.h',
247            'sys/sys/_semaphore.h',
248            'sys/sys/sf_buf.h',
249            'sys/sys/sigio.h',
250            'sys/sys/_sigset.h',
251            'sys/sys/smp.h',
252            'sys/sys/sleepqueue.h',
253            'sys/sys/_sockaddr_storage.h',
254            'sys/sys/sockbuf.h',
255            'sys/sys/socket.h',
256            'sys/sys/socketvar.h',
257            'sys/sys/sockio.h',
258            'sys/sys/sockopt.h',
259            'sys/sys/sockstate.h',
260            'sys/sys/stddef.h',
261            'sys/sys/stdint.h',
262            'sys/sys/_sx.h',
263            'sys/sys/sx.h',
264            'sys/sys/sysctl.h',
265            'sys/sys/syslog.h',
266            'sys/sys/sysproto.h',
267            'sys/sys/systm.h',
268            'sys/sys/_task.h',
269            'sys/sys/taskqueue.h',
270            'sys/sys/nlist_aout.h',
271            'sys/rpc/types.h',
272            'sys/sys/tree.h',
273            'sys/sys/ttycom.h',
274            'sys/sys/ucred.h',
275            'sys/sys/un.h',
276            'sys/sys/unpcb.h',
277            'sys/sys/vmmeter.h',
278            'sys/sys/vnode.h',
279            'sys/vm/uma_dbg.h',
280            'sys/vm/uma.h',
281            'sys/vm/uma_int.h',
282            'sys/vm/vm_extern.h',
283            'sys/vm/vm.h',
284        ]
285    )
286    mod.addKernelSpaceSourceFiles(
287        [
288            'sys/kern/init_main.c',
289            'sys/kern/kern_condvar.c',
290            'sys/kern/kern_event.c',
291            'sys/kern/kern_hhook.c',
292            'sys/kern/kern_intr.c',
293            'sys/kern/kern_khelp.c',
294            'sys/kern/kern_linker.c',
295            'sys/kern/kern_mbuf.c',
296            'sys/kern/kern_mib.c',
297            'sys/kern/kern_module.c',
298            'sys/kern/kern_mtxpool.c',
299            'sys/kern/kern_osd.c',
300            'sys/kern/kern_synch.c',
301            'sys/kern/kern_sysctl.c',
302            'sys/kern/kern_time.c',
303            'sys/kern/kern_timeout.c',
304            'sys/kern/subr_bufring.c',
305            'sys/kern/subr_bus.c',
306            'sys/kern/subr_eventhandler.c',
307            'sys/kern/subr_hash.c',
308            'sys/kern/subr_hints.c',
309            'sys/kern/subr_kobj.c',
310            'sys/kern/subr_lock.c',
311            'sys/kern/subr_module.c',
312            'sys/kern/subr_rman.c',
313            'sys/kern/subr_sbuf.c',
314            'sys/kern/subr_sleepqueue.c',
315            'sys/kern/subr_taskqueue.c',
316            'sys/kern/subr_uio.c',
317            'sys/kern/subr_unit.c',
318            'sys/kern/sys_generic.c',
319            'sys/kern/uipc_accf.c',
320            'sys/kern/uipc_domain.c',
321            'sys/kern/uipc_mbuf2.c',
322            'sys/kern/uipc_mbuf.c',
323            'sys/kern/uipc_sockbuf.c',
324            'sys/kern/uipc_socket.c',
325            'sys/kern/uipc_usrreq.c',
326            'sys/libkern/arc4random.c',
327            'sys/libkern/fls.c',
328            'sys/libkern/inet_ntoa.c',
329            'sys/libkern/random.c',
330            'sys/vm/uma_core.c',
331            'sys/vm/uma_dbg.c',
332        ],
333        mm.generator['source']()
334    )
335    return mod
336
337#
338# MMC
339#
340def mmc(mm):
341    mod = builder.Module('mmc')
342    mod.addKernelSpaceHeaderFiles(
343        [
344            'sys/dev/mmc/bridge.h',
345            'sys/dev/mmc/mmcbrvar.h',
346            'sys/dev/mmc/mmcreg.h',
347            'sys/dev/mmc/mmcvar.h',
348            'sys/dev/sdhci/sdhci.h',
349        ]
350    )
351    mod.addKernelSpaceSourceFiles(
352        [
353            'sys/dev/mmc/mmc.c',
354            'sys/dev/mmc/mmcsd.c',
355            'sys/dev/sdhci/sdhci.c',
356        ],
357        mm.generator['source']()
358    )
359    return mod
360
361#
362# USB
363#
364def dev_usb(mm):
365    mod = builder.Module('dev_usb')
366    mod.addKernelSpaceHeaderFiles(
367        [
368            'sys/dev/usb/ufm_ioctl.h',
369            'sys/dev/usb/usb_busdma.h',
370            'sys/dev/usb/usb_bus.h',
371            'sys/dev/usb/usb_cdc.h',
372            'sys/dev/usb/usb_controller.h',
373            'sys/dev/usb/usb_core.h',
374            'sys/dev/usb/usb_debug.h',
375            'sys/dev/usb/usb_dev.h',
376            'sys/dev/usb/usb_device.h',
377            'sys/dev/usb/usbdi.h',
378            'sys/dev/usb/usbdi_util.h',
379            'sys/dev/usb/usb_dynamic.h',
380            'sys/dev/usb/usb_endian.h',
381            'sys/dev/usb/usb_freebsd.h',
382            'sys/dev/usb/usb_generic.h',
383            'sys/dev/usb/usb.h',
384            'sys/dev/usb/usbhid.h',
385            'sys/dev/usb/usb_hub.h',
386            'sys/dev/usb/usb_ioctl.h',
387            'sys/dev/usb/usb_mbuf.h',
388            'sys/dev/usb/usb_msctest.h',
389            'sys/dev/usb/usb_pf.h',
390            'sys/dev/usb/usb_process.h',
391            'sys/dev/usb/usb_request.h',
392            'sys/dev/usb/usb_transfer.h',
393            'sys/dev/usb/usb_util.h',
394        ]
395    )
396    mod.addKernelSpaceSourceFiles(
397        [
398            'sys/dev/usb/usb_busdma.c',
399            'sys/dev/usb/usb_core.c',
400            'sys/dev/usb/usb_debug.c',
401            'sys/dev/usb/usb_dev.c',
402            'sys/dev/usb/usb_device.c',
403            'sys/dev/usb/usb_dynamic.c',
404            'sys/dev/usb/usb_error.c',
405            'sys/dev/usb/usb_generic.c',
406            'sys/dev/usb/usb_handle_request.c',
407            'sys/dev/usb/usb_hid.c',
408            'sys/dev/usb/usb_hub.c',
409            'sys/dev/usb/usb_lookup.c',
410            'sys/dev/usb/usb_mbuf.c',
411            'sys/dev/usb/usb_msctest.c',
412            'sys/dev/usb/usb_parse.c',
413            'sys/dev/usb/usb_process.c',
414            'sys/dev/usb/usb_request.c',
415            'sys/dev/usb/usb_transfer.c',
416            'sys/dev/usb/usb_util.c',
417        ],
418        mm.generator['source']()
419    )
420    return mod
421
422#
423# USB Add Ons
424#
425def dev_usb_add_on(mm):
426    mod.Module('dev_usb_add_on')
427    mod.addKernelSpaceHeaderFiles(
428        [
429            'sys/dev/usb/usb_pci.h',
430            'sys/dev/usb/usb_compat_linux.h',
431        ]
432    )
433    mod.addKernelSpaceSourceFiles(
434        [
435            'sys/dev/usb/usb_compat_linux.c',
436        ],
437        mm.generator['source']()
438    )
439    return mod
440
441#
442# USB Bluetooth
443#
444def dev_usb_bluetooth(mm):
445    mod = builder.Module('dev_usb_bluetooth')
446    mod.addDependency(mm['dev_usb'])
447    mod.addKernelSpaceHeaderFiles(
448        [
449            'sys/dev/usb/bluetooth/ng_ubt_var.h'
450        ]
451    )
452    mod.addKernelSpaceSourceFiles(
453        [
454            'sys/dev/usb/bluetooth/ng_ubt.c',
455            'sys/dev/usb/bluetooth/ubtbcmfw.c',
456        ],
457        mm.generator['source']()
458    )
459    return mod
460
461#
462# USB Controller.
463#
464def dev_usb_controller(mm):
465    mod = builder.Module('dev_usb_controller')
466    mod.addDependency(mm['dev_usb'])
467    mod.addKernelSpaceHeaderFiles(
468        [
469            'sys/dev/usb/controller/ohci.h',
470            'sys/dev/usb/controller/ohcireg.h',
471            'sys/dev/usb/controller/ehci.h',
472            'sys/dev/usb/controller/ehcireg.h',
473            'sys/dev/usb/controller/uhcireg.h',
474            'sys/dev/usb/controller/xhcireg.h',
475        ]
476    )
477    mod.addKernelSpaceSourceFiles(
478        [
479            'sys/dev/usb/controller/ohci.c',
480            'sys/dev/usb/controller/ehci.c',
481            'sys/dev/usb/controller/usb_controller.c',
482        ],
483        mm.generator['source']()
484    )
485    return mod
486
487#
488# USB Controller Add Ons
489#
490def dev_usb_controller_add_on(mm):
491    mod = builder.Module('dev_usb_controller_add_on')
492    mod.addDependency(mm['dev_usb'])
493    mod.addKernelSpaceHeaderFiles(
494        [
495            'sys/dev/usb/controller/at91dci.h',
496            'sys/dev/usb/controller/atmegadci.h',
497            'sys/dev/usb/controller/musb_otg.h',
498            'sys/dev/usb/controller/uss820dci.h',
499        ]
500    )
501    mod.addKernelSpaceSourceFiles(
502        [
503            'sys/dev/usb/controller/at91dci_atmelarm.c',
504            'sys/dev/usb/controller/at91dci.c',
505            'sys/dev/usb/controller/atmegadci_atmelarm.c',
506            'sys/dev/usb/controller/atmegadci.c',
507            'sys/dev/usb/controller/ehci_ixp4xx.c',
508            'sys/dev/usb/controller/ehci_pci.c',
509            'sys/dev/usb/controller/musb_otg.c',
510            'sys/dev/usb/controller/ehci_mbus.c',
511            'sys/dev/usb/controller/musb_otg_atmelarm.c',
512            'sys/dev/usb/controller/ohci_atmelarm.c',
513            'sys/dev/usb/controller/ohci_pci.c',
514            'sys/dev/usb/controller/uhci_pci.c',
515            'sys/dev/usb/controller/uss820dci_atmelarm.c',
516            'sys/dev/usb/controller/uss820dci.c',
517        ],
518        mm.generator['source']()
519    )
520    return mod
521
522#
523# USB Input
524#
525def dev_usb_input(mm):
526    mod = builder.Module('dev_usb_input')
527    mod.addDependency(mm['dev_usb'])
528    mod.addKernelSpaceHeaderFiles(
529        [
530                'sys/dev/usb/input/usb_rdesc.h',
531        ]
532    )
533    mod.addKernelSpaceSourceFiles(
534        [
535            'sys/dev/usb/input/uhid.c',
536            'sys/dev/usb/input/ukbd.c',
537        ],
538        mm.generator['source']()
539    )
540    return mod
541
542#
543# USB Mouse
544#
545def dev_usb_mouse(mm):
546    mod = builder.Module('dev_usb_mouse')
547    mod.addDependency(mm['dev_usb'])
548    mod.addKernelSpaceHeaderFiles(
549        [
550            'sys/sys/tty.h',
551            'sys/sys/mouse.h',
552            'sys/sys/ttyqueue.h',
553            'sys/sys/ttydefaults.h',
554            'sys/sys/ttydisc.h',
555            'sys/sys/ttydevsw.h',
556            'sys/sys/ttyhook.h',
557        ]
558    )
559    mod.addKernelSpaceSourceFiles(
560        [
561            'sys/dev/usb/input/ums.c',
562        ],
563        mm.generator['source']()
564    )
565    return mod
566
567#
568# USB Misc.
569#
570def dev_usb_misc(mm):
571    mod = builder.Module('dev_usb_misc')
572    mod.addDependency(mm['dev_usb'])
573    mod.addKernelSpaceHeaderFiles(
574        [
575            'sys/dev/usb/misc/udbp.h',
576        ]
577    )
578    mod.addKernelSpaceSourceFiles(
579        [
580            'sys/dev/usb/misc/udbp.c',
581            'sys/dev/usb/misc/ufm.c',
582        ],
583        mm.generator['source']()
584    )
585    return mod
586
587#
588# USB Networking
589#
590def dev_usb_net(mm):
591    mod = builder.Module('dev_usb_net')
592    mod.addDependency(mm['dev_usb'])
593    mod.addKernelSpaceHeaderFiles(
594        [
595            'sys/dev/mii/mii.h',
596            'sys/dev/mii/miivar.h',
597            'sys/dev/usb/net/if_cdcereg.h',
598            'sys/dev/usb/net/usb_ethernet.h',
599        ]
600    )
601    mod.addKernelSpaceSourceFiles(
602        [
603            'sys/dev/usb/net/if_cdce.c',
604            'sys/dev/usb/net/usb_ethernet.c',
605        ],
606        mm.generator['source']()
607    )
608    return mod
609
610#
611# USB Quirks
612#
613def dev_usb_quirk(mm):
614    mod = builder.Module('dev_usb_quirk')
615    mod.addDependency(mm['dev_usb'])
616    mod.addKernelSpaceHeaderFiles(
617        [
618            'sys/dev/usb/quirk/usb_quirk.h',
619        ]
620    )
621    mod.addKernelSpaceSourceFiles(
622        [
623            'sys/dev/usb/quirk/usb_quirk.c',
624        ],
625        mm.generator['source']()
626    )
627    return mod
628
629#
630# USB Serial
631#
632def dev_usb_serial(mm):
633    mod = builder.Module('dev_usb_serial')
634    mod.addDependency(mm['dev_usb'])
635    mod.addKernelSpaceHeaderFiles(
636        [
637            'sys/dev/usb/serial/uftdi_reg.h',
638            'sys/dev/usb/serial/usb_serial.h',
639        ]
640    )
641    mod.addKernelSpaceSourceFiles(
642        [
643            'sys/dev/usb/serial/u3g.c',
644            'sys/dev/usb/serial/uark.c',
645            'sys/dev/usb/serial/ubsa.c',
646            'sys/dev/usb/serial/ubser.c',
647            'sys/dev/usb/serial/uchcom.c',
648            'sys/dev/usb/serial/ucycom.c',
649            'sys/dev/usb/serial/ufoma.c',
650            'sys/dev/usb/serial/uftdi.c',
651            'sys/dev/usb/serial/ugensa.c',
652            'sys/dev/usb/serial/uipaq.c',
653            'sys/dev/usb/serial/ulpt.c',
654            'sys/dev/usb/serial/umct.c',
655            'sys/dev/usb/serial/umodem.c',
656            'sys/dev/usb/serial/umoscom.c',
657            'sys/dev/usb/serial/uplcom.c',
658            'sys/dev/usb/serial/usb_serial.c',
659            'sys/dev/usb/serial/uslcom.c',
660            'sys/dev/usb/serial/uvisor.c',
661            'sys/dev/usb/serial/uvscom.c',
662        ],
663        mm.generator['source']()
664    )
665    return mod
666
667#
668# USB Storage
669#
670def dev_usb_storage(mm):
671    mod = builder.Module('dev_usb_storage')
672    mod.addDependency(mm['dev_usb'])
673    mod.addKernelSpaceSourceFiles(
674        [
675            'sys/dev/usb/storage/umass.c',
676        ],
677        mm.generator['source']()
678    )
679    return mod
680
681#
682# USB Storage Add Ons
683#
684def dev_usb_storage_add_on(mm):
685    mod = builder.Module('dev_usb_storage_add_on')
686    mod.addDependency(mm['dev_usb'])
687    mod.addKernelSpaceHeaderFiles(
688        [
689            'sys/dev/usb/storage/rio500_usb.h',
690        ]
691    )
692    mod.addKernelSpaceSourceFiles(
693        [
694            'sys/dev/usb/storage/urio.c',
695            'sys/dev/usb/storage/ustorage_fs.c',
696        ],
697        mm.generator['source']()
698    )
699    return mod
700
701#
702# USB Template
703#
704def dev_usb_template(mm):
705    mod = builder.Module('dev_usb_template')
706    mod.addDependency(mm['dev_usb'])
707    mod.addKernelSpaceHeaderFiles(
708        [
709            'sys/dev/usb/template/usb_template.h',
710        ]
711    )
712    mod.addKernelSpaceSourceFiles(
713        [
714            'sys/dev/usb/template/usb_template.c',
715            'sys/dev/usb/template/usb_template_cdce.c',
716            'sys/dev/usb/template/usb_template_msc.c',
717            'sys/dev/usb/template/usb_template_mtp.c',
718        ],
719        mm.generator['source']()
720    )
721    return mod
722
723#
724# USB WLAN
725#
726def dev_usb_wlan(mm):
727    mod = builder.Module('dev_usb_wlan')
728    mod.addDependency(mm['dev_usb'])
729    mod.addKernelSpaceHeaderFiles(
730        [
731            'sys/dev/usb/wlan/if_rumfw.h',
732            'sys/dev/usb/wlan/if_rumreg.h',
733            'sys/dev/usb/wlan/if_rumvar.h',
734            'sys/dev/usb/wlan/if_uathreg.h',
735            'sys/dev/usb/wlan/if_uathvar.h',
736            'sys/dev/usb/wlan/if_upgtvar.h',
737            'sys/dev/usb/wlan/if_uralreg.h',
738            'sys/dev/usb/wlan/if_uralvar.h',
739            'sys/dev/usb/wlan/if_zydfw.h',
740            'sys/dev/usb/wlan/if_zydreg.h',
741        ]
742    )
743    mod.addKernelSpaceSourceFiles(
744        [
745            'sys/dev/usb/wlan/if_rum.c',
746            'sys/dev/usb/wlan/if_uath.c',
747            'sys/dev/usb/wlan/if_upgt.c',
748            'sys/dev/usb/wlan/if_ural.c',
749            'sys/dev/usb/wlan/if_zyd.c',
750        ],
751        mm.generator['source']()
752    )
753    return mod
754
755#
756# CAM
757#
758def cam(mm):
759    mod = builder.Module('cam')
760    mod.addKernelSpaceHeaderFiles(
761        [
762            'sys/sys/ata.h',
763            'sys/cam/cam.h',
764            'sys/cam/cam_ccb.h',
765            'sys/cam/cam_sim.h',
766            'sys/cam/cam_xpt_sim.h',
767            'sys/cam/scsi/scsi_all.h',
768            'sys/cam/scsi/scsi_da.h',
769            'sys/cam/ata/ata_all.h',
770            'sys/cam/cam_periph.h',
771            'sys/cam/cam_debug.h',
772            'sys/cam/cam_xpt.h',
773        ]
774    )
775    mod.addKernelSpaceSourceFiles(
776        [
777            'sys/cam/cam.c',
778            'sys/cam/scsi/scsi_all.c',
779        ],
780        mm.generator['source']()
781    )
782    return mod
783
784#
785# Networking Devices
786#
787def dev_net(mm):
788    mod = builder.Module('dev_net')
789    mod.addKernelSpaceHeaderFiles(
790        [
791            'sys/dev/mii/mii.h',
792            'sys/dev/mii/mii_bitbang.h',
793            'sys/dev/mii/miivar.h',
794            'sys/dev/mii/brgphyreg.h',
795            'sys/dev/mii/e1000phyreg.h',
796            'sys/dev/mii/icsphyreg.h',
797            'sys/dev/led/led.h',
798            'sys/net/bpf.h',
799            'sys/net/ethernet.h',
800            'sys/net/if_arp.h',
801            'sys/net/if_dl.h',
802            'sys/net/if.h',
803            'sys/net/if_media.h',
804            'sys/net/if_types.h',
805            'sys/net/if_var.h',
806            'sys/net/vnet.h',
807            'sys/dev/ofw/openfirm.h',
808            'sys/dev/tsec/if_tsec.h',
809            'sys/dev/tsec/if_tsecreg.h',
810            'sys/dev/cadence/if_cgem_hw.h',
811            'sys/dev/dwc/if_dwc.h',
812            'sys/arm/xilinx/zy7_slcr.h',
813        ]
814    )
815    mod.addKernelSpaceSourceFiles(
816        [
817            'sys/dev/mii/mii.c',
818            'sys/dev/mii/mii_bitbang.c',
819            'sys/dev/mii/mii_physubr.c',
820            'sys/dev/mii/icsphy.c',
821            'sys/dev/mii/e1000phy.c',
822            'sys/dev/mii/brgphy.c',
823            'sys/dev/mii/micphy.c',
824            'sys/dev/mii/ukphy.c',
825            'sys/dev/mii/ukphy_subr.c',
826            'sys/dev/tsec/if_tsec.c',
827            'sys/dev/cadence/if_cgem.c',
828            'sys/dev/dwc/if_dwc.c',
829            'sys/arm/xilinx/zy7_slcr.c',
830        ],
831        mm.generator['source']()
832    )
833    return mod
834
835#
836# Network Interface Controllers (NIC)
837#
838def dev_nic(mm):
839    mod = builder.Module('dev_nic')
840    mod.addKernelSpaceHeaderFiles(
841        [
842            'sys/sys/pciio.h',
843            'sys/dev/random/randomdev_soft.h',
844            'sys/sys/eventvar.h',
845            'sys/sys/kenv.h',
846            'sys/isa/isavar.h',
847            'sys/isa/pnpvar.h',
848            'sys/netatalk/at.h',
849            'sys/netatalk/endian.h',
850            'sys/netatalk/aarp.h',
851            'sys/netatalk/at_extern.h',
852            'sys/netatalk/at_var.h',
853            'sys/netatalk/ddp.h',
854            'sys/netatalk/ddp_pcb.h',
855            'sys/netatalk/ddp_var.h',
856            'sys/netatalk/phase2.h',
857            'sys/sys/mman.h',
858            'sys/sys/buf.h',
859            'sys/sys/mqueue.h',
860            'sys/sys/tty.h',
861            'sys/sys/ttyqueue.h',
862            'sys/sys/ttydisc.h',
863            'sys/sys/ttydevsw.h',
864            'sys/sys/ttyhook.h',
865            'sys/sys/user.h',
866        ]
867    )
868    mod.addCPUDependentHeaderFiles(
869        [
870            'sys/arm/include/cpufunc.h',
871            'sys/i386/include/specialreg.h',
872            'sys/i386/include/md_var.h',
873            'sys/i386/include/intr_machdep.h',
874            'sys/i386/include/cpufunc.h',
875            'sys/mips/include/cpufunc.h',
876            'sys/mips/include/cpuregs.h',
877            'sys/powerpc/include/cpufunc.h',
878            'sys/powerpc/include/psl.h',
879            'sys/powerpc/include/spr.h',
880            'sys/sparc64/include/cpufunc.h',
881            'sys/sparc64/include/asi.h',
882            'sys/sparc64/include/pstate.h',
883        ]
884    )
885    mod.addKernelSpaceSourceFiles(
886        [
887            'sys/dev/random/harvest.c',
888            'sys/netinet/tcp_hostcache.c',
889            'sys/dev/led/led.c',
890            'sys/netatalk/aarp.c',
891            'sys/netatalk/at_control.c',
892            'sys/netatalk/at_rmx.c',
893            'sys/netatalk/ddp_input.c',
894            'sys/netatalk/ddp_pcb.c',
895            'sys/netatalk/ddp_usrreq.c',
896            'sys/netatalk/at_proto.c',
897            'sys/netatalk/ddp_output.c',
898        ],
899        mm.generator['source']()
900    )
901    return mod
902
903#
904# NIC RE
905#
906def dev_nic_re(mm):
907    mod = builder.Module('dev_nic_re')
908    mod.addKernelSpaceHeaderFiles(
909        [
910            'sys/pci/if_rlreg.h',
911        ]
912    )
913    mod.addKernelSpaceSourceFiles(
914        [
915            'sys/dev/re/if_re.c',
916        ],
917        mm.generator['source']()
918    )
919    return mod
920
921#
922# NIC FXP
923#
924def dev_nic_fxp(mm):
925    mod = builder.Module('dev_nic_fxp')
926    mod.addKernelSpaceHeaderFiles(
927        [
928            'sys/dev/fxp/if_fxpreg.h',
929            'sys/dev/fxp/if_fxpvar.h',
930            'sys/dev/fxp/rcvbundl.h',
931        ]
932    )
933    mod.addKernelSpaceSourceFiles(
934        [
935            'sys/dev/fxp/if_fxp.c',
936        ],
937        mm.generator['source']()
938    )
939    return mod
940
941#
942# NIC E1000
943#
944def dev_nic_e1000(mm):
945    mod = builder.Module('dev_nic_e1000')
946    mod.addKernelSpaceHeaderFiles(
947        [
948            'sys/dev/e1000/e1000_80003es2lan.h',
949            'sys/dev/e1000/e1000_82541.h',
950            'sys/dev/e1000/e1000_82543.h',
951            'sys/dev/e1000/e1000_82571.h',
952            'sys/dev/e1000/e1000_82575.h',
953            'sys/dev/e1000/e1000_api.h',
954            'sys/dev/e1000/e1000_defines.h',
955            'sys/dev/e1000/e1000_hw.h',
956            'sys/dev/e1000/e1000_i210.h',
957            'sys/dev/e1000/e1000_ich8lan.h',
958            'sys/dev/e1000/e1000_mac.h',
959            'sys/dev/e1000/e1000_manage.h',
960            'sys/dev/e1000/e1000_mbx.h',
961            'sys/dev/e1000/e1000_nvm.h',
962            'sys/dev/e1000/e1000_osdep.h',
963            'sys/dev/e1000/e1000_phy.h',
964            'sys/dev/e1000/e1000_regs.h',
965            'sys/dev/e1000/e1000_vf.h',
966            'sys/dev/e1000/if_em.h',
967            'sys/dev/e1000/if_igb.h',
968            'sys/dev/e1000/if_lem.h',
969        ]
970    )
971    mod.addKernelSpaceSourceFiles(
972        [
973            'sys/dev/e1000/e1000_80003es2lan.c',
974            'sys/dev/e1000/e1000_82542.c',
975            'sys/dev/e1000/e1000_82575.c',
976            'sys/dev/e1000/e1000_mac.c',
977            'sys/dev/e1000/e1000_nvm.c',
978            'sys/dev/e1000/e1000_vf.c',
979            'sys/dev/e1000/if_lem.c',
980            'sys/dev/e1000/e1000_82540.c',
981            'sys/dev/e1000/e1000_82543.c',
982            'sys/dev/e1000/e1000_api.c',
983            'sys/dev/e1000/e1000_manage.c',
984            'sys/dev/e1000/e1000_osdep.c',
985            'sys/dev/e1000/if_em.c',
986            'sys/dev/e1000/e1000_82541.c',
987            'sys/dev/e1000/e1000_82571.c',
988            'sys/dev/e1000/e1000_ich8lan.c',
989            'sys/dev/e1000/e1000_mbx.c',
990            'sys/dev/e1000/e1000_phy.c',
991            'sys/dev/e1000/if_igb.c',
992        ],
993        mm.generator['source']()
994    )
995    return mod
996
997#
998# DEC Tulip aka Intel 21143
999#
1000def dev_nic_dc(mm):
1001    mod = builder.Module('dev_nic_dc')
1002    mod.addKernelSpaceHeaderFiles(
1003        [
1004            'sys/dev/dc/if_dcreg.h',
1005        ]
1006    )
1007    mod.addKernelSpaceSourceFiles(
1008        [
1009            'sys/dev/dc/dcphy.c',
1010            'sys/dev/dc/if_dc.c',
1011            'sys/dev/dc/pnphy.c',
1012        ],
1013        mm.generator['source']()
1014    )
1015    return mod
1016
1017#
1018# SMC9111x
1019#
1020def dev_nic_smc(mm):
1021    mod = builder.Module('dev_nic_smc')
1022    mod.addKernelSpaceHeaderFiles(
1023        [
1024            'sys/dev/smc/if_smcreg.h',
1025            'sys/dev/smc/if_smcvar.h',
1026        ]
1027    )
1028    mod.addKernelSpaceSourceFiles(
1029        [
1030            'sys/dev/smc/if_smc.c',
1031        ],
1032        mm.generator['source']()
1033    )
1034    return mod
1035
1036#
1037# Crystal Semiconductor CS8900
1038#
1039def dev_nic_cs(mm):
1040    mod = builder.Module('dev_nic_cs')
1041    mod.addKernelSpaceHeaderFiles(
1042        [
1043            'sys/dev/cs/if_csreg.h',
1044            'sys/dev/cs/if_csvar.h',
1045        ]
1046    )
1047    mod.addKernelSpaceSourceFiles(
1048        [
1049            'sys/dev/cs/if_cs.c',
1050            'sys/dev/cs/if_cs_isa.c',
1051            'sys/dev/cs/if_cs_pccard.c',
1052        ],
1053        mm.generator['source']()
1054    )
1055    return mod
1056
1057#
1058# Broadcomm BCE, BFE, BGE - MII is intertwined
1059#
1060def dev_nic_broadcomm(mm):
1061    mod = builder.Module('dev_nic_broadcomm')
1062    mod.addKernelSpaceHeaderFiles(
1063        [
1064            'sys/dev/bce/if_bcefw.h',
1065            'sys/dev/bce/if_bcereg.h',
1066            'sys/dev/bfe/if_bfereg.h',
1067            'sys/dev/bge/if_bgereg.h',
1068        ]
1069    )
1070    mod.addKernelSpaceSourceFiles(
1071        [
1072            'sys/dev/bce/if_bce.c',
1073            'sys/dev/bfe/if_bfe.c',
1074            'sys/dev/bge/if_bge.c',
1075        ],
1076        mm.generator['source']()
1077    )
1078    return mod
1079
1080#
1081# Networking
1082#
1083def net(mm):
1084    mod = builder.Module('net')
1085    mod.addKernelSpaceHeaderFiles(
1086        [
1087            'sys/net/bpf_buffer.h',
1088            'sys/net/bpfdesc.h',
1089            'sys/net/bpf.h',
1090            'sys/net/bpf_jitter.h',
1091            'sys/net/bpf_zerocopy.h',
1092            'sys/net/bridgestp.h',
1093            'sys/net/ethernet.h',
1094            'sys/net/fddi.h',
1095            'sys/net/firewire.h',
1096            'sys/net/flowtable.h',
1097            'sys/net/ieee8023ad_lacp.h',
1098            'sys/net/if_arc.h',
1099            'sys/net/if_arp.h',
1100            'sys/net/if_atm.h',
1101            'sys/net/if_bridgevar.h',
1102            'sys/net/if_clone.h',
1103            'sys/net/if_dl.h',
1104            'sys/net/if_enc.h',
1105            'sys/net/if_gif.h',
1106            'sys/net/if_gre.h',
1107            'sys/net/if.h',
1108            'sys/net/if_lagg.h',
1109            'sys/net/if_llatbl.h',
1110            'sys/net/if_llc.h',
1111            'sys/net/if_media.h',
1112            'sys/net/if_mib.h',
1113            'sys/net/if_sppp.h',
1114            'sys/net/if_stf.h',
1115            'sys/net/if_tap.h',
1116            'sys/net/if_tapvar.h',
1117            'sys/net/if_tun.h',
1118            'sys/net/if_types.h',
1119            'sys/net/if_var.h',
1120            'sys/net/if_vlan_var.h',
1121            'sys/net/iso88025.h',
1122            'sys/net/netisr.h',
1123            'sys/net/netisr_internal.h',
1124            'sys/net/pfil.h',
1125            'sys/net/pfkeyv2.h',
1126            'sys/net/ppp_defs.h',
1127            'sys/net/radix.h',
1128            'sys/net/radix_mpath.h',
1129            'sys/net/raw_cb.h',
1130            'sys/net/route.h',
1131            'sys/net/slcompress.h',
1132            'sys/net/vnet.h',
1133        ]
1134    )
1135    mod.addKernelSpaceSourceFiles(
1136        [
1137            'sys/kern/sys_socket.c',
1138            'sys/kern/uipc_syscalls.c',
1139            'sys/net/bridgestp.c',
1140            'sys/net/ieee8023ad_lacp.c',
1141            'sys/net/if_atmsubr.c',
1142            'sys/net/if.c',
1143            'sys/net/if_clone.c',
1144            'sys/net/if_dead.c',
1145            'sys/net/if_disc.c',
1146            'sys/net/if_edsc.c',
1147            'sys/net/if_ef.c',
1148            'sys/net/if_enc.c',
1149            'sys/net/if_epair.c',
1150            'sys/net/if_faith.c',
1151            'sys/net/if_fddisubr.c',
1152            'sys/net/if_fwsubr.c',
1153            'sys/net/if_gif.c',
1154            'sys/net/if_gre.c',
1155            'sys/net/if_iso88025subr.c',
1156            'sys/net/if_lagg.c',
1157            'sys/net/if_llatbl.c',
1158            'sys/net/if_loop.c',
1159            'sys/net/if_media.c',
1160            'sys/net/if_mib.c',
1161            'sys/net/if_spppfr.c',
1162            'sys/net/if_spppsubr.c',
1163            'sys/net/if_tap.c',
1164            'sys/net/if_tun.c',
1165            'sys/net/if_vlan.c',
1166            'sys/net/pfil.c',
1167            'sys/net/radix.c',
1168            'sys/net/radix_mpath.c',
1169            'sys/net/raw_cb.c',
1170            'sys/net/raw_usrreq.c',
1171            'sys/net/route.c',
1172            'sys/net/rtsock.c',
1173            'sys/net/slcompress.c',
1174            'sys/net/bpf_buffer.c',
1175            'sys/net/bpf.c',
1176            'sys/net/bpf_filter.c',
1177            'sys/net/bpf_jitter.c',
1178            'sys/net/if_arcsubr.c',
1179            'sys/net/if_bridge.c',
1180            'sys/net/if_ethersubr.c',
1181            'sys/net/netisr.c',
1182        ],
1183        mm.generator['source']()
1184    )
1185    return mod
1186
1187#
1188# Internet Networking
1189#
1190def netinet(mm):
1191    mod = builder.Module('netinet')
1192    mod.addKernelSpaceHeaderFiles(
1193        [
1194            'sys/netinet/cc.h',
1195            'sys/netinet/cc/cc_module.h',
1196            'sys/netinet/icmp6.h',
1197            'sys/netinet/icmp_var.h',
1198            'sys/netinet/if_atm.h',
1199            'sys/netinet/if_ether.h',
1200            'sys/netinet/igmp.h',
1201            'sys/netinet/igmp_var.h',
1202            'sys/netinet/in_gif.h',
1203            'sys/netinet/in.h',
1204            'sys/netinet/in_pcb.h',
1205            'sys/netinet/in_systm.h',
1206            'sys/netinet/in_var.h',
1207            'sys/netinet/ip6.h',
1208            'sys/netinet/ip_carp.h',
1209            'sys/netinet/ip_divert.h',
1210            'sys/netinet/ip_dummynet.h',
1211            'sys/netinet/ip_ecn.h',
1212            'sys/netinet/ip_encap.h',
1213            'sys/netinet/ip_fw.h',
1214            'sys/netinet/ip_gre.h',
1215            'sys/netinet/ip.h',
1216            'sys/netinet/ip_icmp.h',
1217            'sys/netinet/ip_ipsec.h',
1218            'sys/netinet/ip_mroute.h',
1219            'sys/netinet/ip_options.h',
1220            'sys/netinet/ip_var.h',
1221            'sys/netpfil/ipfw/dn_heap.h',
1222            'sys/netpfil/ipfw/dn_sched.h',
1223            'sys/netpfil/ipfw/ip_dn_private.h',
1224            'sys/netpfil/ipfw/ip_fw_private.h',
1225            'sys/netinet/pim.h',
1226            'sys/netinet/pim_var.h',
1227            'sys/netinet/sctp_asconf.h',
1228            'sys/netinet/sctp_auth.h',
1229            'sys/netinet/sctp_bsd_addr.h',
1230            'sys/netinet/sctp_constants.h',
1231            'sys/netinet/sctp_crc32.h',
1232            'sys/netinet/sctp_dtrace_declare.h',
1233            'sys/netinet/sctp_dtrace_define.h',
1234            'sys/netinet/sctp.h',
1235            'sys/netinet/sctp_header.h',
1236            'sys/netinet/sctp_indata.h',
1237            'sys/netinet/sctp_input.h',
1238            'sys/netinet/sctp_lock_bsd.h',
1239            'sys/netinet/sctp_os_bsd.h',
1240            'sys/netinet/sctp_os.h',
1241            'sys/netinet/sctp_output.h',
1242            'sys/netinet/sctp_pcb.h',
1243            'sys/netinet/sctp_peeloff.h',
1244            'sys/netinet/sctp_structs.h',
1245            'sys/netinet/sctp_sysctl.h',
1246            'sys/netinet/sctp_timer.h',
1247            'sys/netinet/sctp_uio.h',
1248            'sys/netinet/sctputil.h',
1249            'sys/netinet/sctp_var.h',
1250            'sys/netinet/tcp_debug.h',
1251            'sys/netinet/tcp_fsm.h',
1252            'sys/netinet/tcp.h',
1253            'sys/netinet/tcp_hostcache.h',
1254            'sys/netinet/tcpip.h',
1255            'sys/netinet/tcp_lro.h',
1256            'sys/netinet/tcp_offload.h',
1257            'sys/netinet/tcp_seq.h',
1258            'sys/netinet/tcp_syncache.h',
1259            'sys/netinet/tcp_timer.h',
1260            'sys/netinet/tcp_var.h',
1261            'sys/netinet/toecore.h',
1262            'sys/netinet/udp.h',
1263            'sys/netinet/udp_var.h',
1264            'sys/netinet/libalias/alias_local.h',
1265            'sys/netinet/libalias/alias.h',
1266            'sys/netinet/libalias/alias_mod.h',
1267            'sys/netinet/libalias/alias_sctp.h',
1268        ]
1269    )
1270    # in_cksum.c is architecture dependent
1271    mod.addKernelSpaceSourceFiles(
1272        [
1273            'sys/netinet/accf_data.c',
1274            'sys/netinet/accf_dns.c',
1275            'sys/netinet/accf_http.c',
1276            'sys/netinet/cc/cc.c',
1277            'sys/netinet/cc/cc_newreno.c',
1278            'sys/netinet/if_atm.c',
1279            'sys/netinet/if_ether.c',
1280            'sys/netinet/igmp.c',
1281            'sys/netinet/in.c',
1282            'sys/netinet/in_gif.c',
1283            'sys/netinet/in_mcast.c',
1284            'sys/netinet/in_pcb.c',
1285            'sys/netinet/in_proto.c',
1286            'sys/netinet/in_rmx.c',
1287            'sys/netinet/ip_carp.c',
1288            'sys/netinet/ip_divert.c',
1289            'sys/netinet/ip_ecn.c',
1290            'sys/netinet/ip_encap.c',
1291            'sys/netinet/ip_fastfwd.c',
1292            'sys/netinet/ip_gre.c',
1293            'sys/netinet/ip_icmp.c',
1294            'sys/netinet/ip_id.c',
1295            'sys/netinet/ip_input.c',
1296            'sys/netinet/ip_mroute.c',
1297            'sys/netinet/ip_options.c',
1298            'sys/netinet/ip_output.c',
1299            'sys/netinet/raw_ip.c',
1300            'sys/netinet/sctp_asconf.c',
1301            'sys/netinet/sctp_auth.c',
1302            'sys/netinet/sctp_bsd_addr.c',
1303            'sys/netinet/sctp_cc_functions.c',
1304            'sys/netinet/sctp_crc32.c',
1305            'sys/netinet/sctp_indata.c',
1306            'sys/netinet/sctp_input.c',
1307            'sys/netinet/sctp_output.c',
1308            'sys/netinet/sctp_pcb.c',
1309            'sys/netinet/sctp_peeloff.c',
1310            'sys/netinet/sctp_sysctl.c',
1311            'sys/netinet/sctp_timer.c',
1312            'sys/netinet/sctp_usrreq.c',
1313            'sys/netinet/sctputil.c',
1314            'sys/netinet/tcp_debug.c',
1315            #'netinet/tcp_hostcache.c',
1316            'sys/netinet/tcp_input.c',
1317            'sys/netinet/tcp_lro.c',
1318            'sys/netinet/tcp_offload.c',
1319            'sys/netinet/tcp_output.c',
1320            'sys/netinet/tcp_reass.c',
1321            'sys/netinet/tcp_sack.c',
1322            'sys/netinet/tcp_subr.c',
1323            'sys/netinet/tcp_syncache.c',
1324            'sys/netinet/tcp_timer.c',
1325            'sys/netinet/tcp_timewait.c',
1326            'sys/netinet/tcp_usrreq.c',
1327            'sys/netpfil/ipfw/dn_heap.c',
1328            'sys/netpfil/ipfw/dn_sched_fifo.c',
1329            'sys/netpfil/ipfw/dn_sched_prio.c',
1330            'sys/netpfil/ipfw/dn_sched_qfq.c',
1331            'sys/netpfil/ipfw/dn_sched_rr.c',
1332            'sys/netpfil/ipfw/dn_sched_wf2q.c',
1333            'sys/netpfil/ipfw/ip_dn_glue.c',
1334            'sys/netpfil/ipfw/ip_dn_io.c',
1335            'sys/netpfil/ipfw/ip_dummynet.c',
1336            'sys/netpfil/ipfw/ip_fw2.c',
1337            #'sys/netpfil/ipfw/ip_fw_dynamic.c',
1338            'sys/netpfil/ipfw/ip_fw_log.c',
1339            'sys/netpfil/ipfw/ip_fw_nat.c',
1340            'sys/netpfil/ipfw/ip_fw_pfil.c',
1341            'sys/netpfil/ipfw/ip_fw_sockopt.c',
1342            'sys/netpfil/ipfw/ip_fw_table.c',
1343            'sys/netinet/udp_usrreq.c',
1344            'sys/netinet/libalias/alias_dummy.c',
1345            'sys/netinet/libalias/alias_pptp.c',
1346            'sys/netinet/libalias/alias_smedia.c',
1347            'sys/netinet/libalias/alias_mod.c',
1348            'sys/netinet/libalias/alias_cuseeme.c',
1349            'sys/netinet/libalias/alias_nbt.c',
1350            'sys/netinet/libalias/alias_irc.c',
1351            'sys/netinet/libalias/alias_util.c',
1352            'sys/netinet/libalias/alias_db.c',
1353            'sys/netinet/libalias/alias_ftp.c',
1354            'sys/netinet/libalias/alias_proxy.c',
1355            'sys/netinet/libalias/alias.c',
1356            'sys/netinet/libalias/alias_skinny.c',
1357            'sys/netinet/libalias/alias_sctp.c',
1358        ],
1359        mm.generator['source']()
1360    )
1361    return mod
1362
1363#
1364# IPv6
1365#
1366def netinet6(mm):
1367    mod = builder.Module('netinet6')
1368    mod.addKernelSpaceHeaderFiles(
1369        [
1370            'sys/netinet6/icmp6.h',
1371            'sys/netinet6/in6_gif.h',
1372            'sys/netinet6/in6.h',
1373            'sys/netinet6/in6_ifattach.h',
1374            'sys/netinet6/in6_pcb.h',
1375            'sys/netinet6/in6_var.h',
1376            'sys/netinet6/ip6_ecn.h',
1377            'sys/netinet6/ip6.h',
1378            'sys/netinet6/ip6_ipsec.h',
1379            'sys/netinet6/ip6_mroute.h',
1380            'sys/netinet6/ip6protosw.h',
1381            'sys/netinet6/ip6_var.h',
1382            'sys/netinet6/mld6.h',
1383            'sys/netinet6/mld6_var.h',
1384            'sys/netinet6/nd6.h',
1385            'sys/netinet6/pim6.h',
1386            'sys/netinet6/pim6_var.h',
1387            'sys/netinet6/raw_ip6.h',
1388            'sys/netinet6/scope6_var.h',
1389            'sys/netinet6/sctp6_var.h',
1390            'sys/netinet6/send.h',
1391            'sys/netinet6/tcp6_var.h',
1392            'sys/netinet6/udp6_var.h',
1393        ]
1394    )
1395    mod.addKernelSpaceSourceFiles(
1396        [
1397            'sys/net/if_stf.c',
1398            'sys/netinet6/dest6.c',
1399            'sys/netinet6/frag6.c',
1400            'sys/netinet6/icmp6.c',
1401            'sys/netinet6/in6.c',
1402            'sys/netinet6/in6_cksum.c',
1403            'sys/netinet6/in6_gif.c',
1404            'sys/netinet6/in6_ifattach.c',
1405            'sys/netinet6/in6_mcast.c',
1406            'sys/netinet6/in6_pcb.c',
1407            'sys/netinet6/in6_proto.c',
1408            'sys/netinet6/in6_rmx.c',
1409            'sys/netinet6/in6_src.c',
1410            'sys/netinet6/ip6_forward.c',
1411            'sys/netinet6/ip6_id.c',
1412            'sys/netinet6/ip6_input.c',
1413            'sys/netinet6/ip6_mroute.c',
1414            'sys/netinet6/ip6_output.c',
1415            'sys/netinet6/mld6.c',
1416            'sys/netinet6/nd6.c',
1417            'sys/netinet6/nd6_nbr.c',
1418            'sys/netinet6/nd6_rtr.c',
1419            'sys/netinet6/raw_ip6.c',
1420            'sys/netinet6/route6.c',
1421            'sys/netinet6/scope6.c',
1422            'sys/netinet6/sctp6_usrreq.c',
1423            'sys/netinet6/udp6_usrreq.c',
1424        ],
1425        mm.generator['source']()
1426    )
1427    return mod
1428
1429#
1430# IPsec
1431#
1432def netipsec(mm):
1433    mod = builder.Module('netipsec')
1434    mod.addKernelSpaceHeaderFiles(
1435        [
1436            'sys/netipsec/ah.h',
1437            'sys/netipsec/ah_var.h',
1438            'sys/netipsec/esp.h',
1439            'sys/netipsec/esp_var.h',
1440            'sys/netipsec/ipcomp.h',
1441            'sys/netipsec/ipcomp_var.h',
1442            'sys/netipsec/ipip_var.h',
1443            'sys/netipsec/ipsec6.h',
1444            'sys/netipsec/ipsec.h',
1445            'sys/netipsec/keydb.h',
1446            'sys/netipsec/key_debug.h',
1447            'sys/netipsec/key.h',
1448            'sys/netipsec/keysock.h',
1449            'sys/netipsec/key_var.h',
1450            'sys/netipsec/xform.h',
1451        ]
1452    )
1453    mod.addKernelSpaceSourceFiles(
1454        [
1455            'sys/netinet/ip_ipsec.c',
1456            'sys/netinet6/ip6_ipsec.c',
1457            'sys/netipsec/ipsec.c',
1458            'sys/netipsec/ipsec_input.c',
1459            'sys/netipsec/ipsec_mbuf.c',
1460            'sys/netipsec/ipsec_output.c',
1461            'sys/netipsec/key.c',
1462            'sys/netipsec/key_debug.c',
1463            'sys/netipsec/keysock.c',
1464            'sys/netipsec/xform_ah.c',
1465            'sys/netipsec/xform_esp.c',
1466            'sys/netipsec/xform_ipcomp.c',
1467            'sys/netipsec/xform_ipip.c',
1468            'sys/netipsec/xform_tcp.c',
1469        ],
1470        mm.generator['source']()
1471    )
1472    return mod
1473
1474#
1475# IEEE 802.11
1476#
1477def net80211(mm):
1478    mod = builder.Module('net80211')
1479    mod.addKernelSpaceHeaderFiles(
1480        [
1481            'sys/net80211/ieee80211_action.h',
1482            'sys/net80211/ieee80211_adhoc.h',
1483            'sys/net80211/ieee80211_ageq.h',
1484            'sys/net80211/ieee80211_amrr.h',
1485            'sys/net80211/ieee80211_crypto.h',
1486            'sys/net80211/ieee80211_dfs.h',
1487            'sys/net80211/ieee80211_freebsd.h',
1488            'sys/net80211/_ieee80211.h',
1489            'sys/net80211/ieee80211.h',
1490            'sys/net80211/ieee80211_hostap.h',
1491            'sys/net80211/ieee80211_ht.h',
1492            'sys/net80211/ieee80211_input.h',
1493            'sys/net80211/ieee80211_ioctl.h',
1494            'sys/net80211/ieee80211_mesh.h',
1495            'sys/net80211/ieee80211_monitor.h',
1496            'sys/net80211/ieee80211_node.h',
1497            'sys/net80211/ieee80211_phy.h',
1498            'sys/net80211/ieee80211_power.h',
1499            'sys/net80211/ieee80211_proto.h',
1500            'sys/net80211/ieee80211_radiotap.h',
1501            'sys/net80211/ieee80211_ratectl.h',
1502            'sys/net80211/ieee80211_regdomain.h',
1503            'sys/net80211/ieee80211_rssadapt.h',
1504            'sys/net80211/ieee80211_scan.h',
1505            'sys/net80211/ieee80211_sta.h',
1506            'sys/net80211/ieee80211_superg.h',
1507            'sys/net80211/ieee80211_tdma.h',
1508            'sys/net80211/ieee80211_var.h',
1509            'sys/net80211/ieee80211_wds.h',
1510        ]
1511    )
1512    mod.addKernelSpaceSourceFiles(
1513        [
1514                'sys/net80211/ieee80211_acl.c',
1515            'sys/net80211/ieee80211_action.c',
1516            'sys/net80211/ieee80211_adhoc.c',
1517            'sys/net80211/ieee80211_ageq.c',
1518            'sys/net80211/ieee80211_amrr.c',
1519            'sys/net80211/ieee80211.c',
1520            'sys/net80211/ieee80211_crypto.c',
1521            'sys/net80211/ieee80211_crypto_ccmp.c',
1522            'sys/net80211/ieee80211_crypto_none.c',
1523            'sys/net80211/ieee80211_crypto_tkip.c',
1524            'sys/net80211/ieee80211_crypto_wep.c',
1525            'sys/net80211/ieee80211_ddb.c',
1526            'sys/net80211/ieee80211_dfs.c',
1527            'sys/net80211/ieee80211_freebsd.c',
1528            'sys/net80211/ieee80211_hostap.c',
1529            'sys/net80211/ieee80211_ht.c',
1530            'sys/net80211/ieee80211_hwmp.c',
1531            'sys/net80211/ieee80211_input.c',
1532            'sys/net80211/ieee80211_ioctl.c',
1533            'sys/net80211/ieee80211_mesh.c',
1534            'sys/net80211/ieee80211_monitor.c',
1535            'sys/net80211/ieee80211_node.c',
1536            'sys/net80211/ieee80211_output.c',
1537            'sys/net80211/ieee80211_phy.c',
1538            'sys/net80211/ieee80211_power.c',
1539            'sys/net80211/ieee80211_proto.c',
1540            'sys/net80211/ieee80211_radiotap.c',
1541            'sys/net80211/ieee80211_ratectl.c',
1542            'sys/net80211/ieee80211_ratectl_none.c',
1543            'sys/net80211/ieee80211_regdomain.c',
1544            'sys/net80211/ieee80211_rssadapt.c',
1545            'sys/net80211/ieee80211_scan.c',
1546            'sys/net80211/ieee80211_scan_sta.c',
1547            'sys/net80211/ieee80211_sta.c',
1548            'sys/net80211/ieee80211_superg.c',
1549            'sys/net80211/ieee80211_tdma.c',
1550            'sys/net80211/ieee80211_wds.c',
1551            'sys/net80211/ieee80211_xauth.c',
1552        ],
1553        mm.generator['source']()
1554    )
1555    return mod
1556
1557#
1558# Open Crypto
1559#
1560def opencrypto(mm):
1561    mod = builder.Module('opencrypto')
1562    mod.addKernelSpaceHeaderFiles(
1563        [
1564            'sys/opencrypto/deflate.h',
1565            'sys/opencrypto/xform.h',
1566            'sys/opencrypto/cryptosoft.h',
1567            'sys/opencrypto/rmd160.h',
1568            'sys/opencrypto/cryptodev.h',
1569            'sys/opencrypto/castsb.h',
1570            'sys/opencrypto/skipjack.h',
1571            'sys/opencrypto/cast.h',
1572        ]
1573    )
1574    mod.addKernelSpaceSourceFiles(
1575        [
1576                'sys/opencrypto/crypto.c',
1577            'sys/opencrypto/deflate.c',
1578            'sys/opencrypto/cryptosoft.c',
1579            'sys/opencrypto/criov.c',
1580            'sys/opencrypto/rmd160.c',
1581            'sys/opencrypto/xform.c',
1582            'sys/opencrypto/skipjack.c',
1583            'sys/opencrypto/cast.c',
1584        ],
1585        mm.generator['source']()
1586    )
1587    return mod
1588
1589#
1590# Crypto
1591#
1592def crypto(mm):
1593    mod = builder.Module('crypto')
1594    mod.addKernelSpaceHeaderFiles(
1595        [
1596            #'crypto/aesni/aesni.h',
1597            'sys/crypto/sha1.h',
1598            'sys/crypto/sha2/sha2.h',
1599            'sys/crypto/rijndael/rijndael.h',
1600            'sys/crypto/rijndael/rijndael_local.h',
1601            'sys/crypto/rijndael/rijndael-api-fst.h',
1602            'sys/crypto/des/des.h',
1603            'sys/crypto/des/spr.h',
1604            'sys/crypto/des/podd.h',
1605            'sys/crypto/des/sk.h',
1606            'sys/crypto/des/des_locl.h',
1607            'sys/crypto/blowfish/bf_pi.h',
1608            'sys/crypto/blowfish/bf_locl.h',
1609            'sys/crypto/blowfish/blowfish.h',
1610            'sys/crypto/rc4/rc4.h',
1611            #'crypto/via/padlock.h',
1612            'sys/crypto/camellia/camellia.h',
1613        ]
1614    )
1615    mod.addKernelSpaceSourceFiles(
1616        [
1617            #'crypto/aesni/aesni.c',
1618            #'crypto/aesni/aesni_wrap.c',
1619            'sys/crypto/sha1.c',
1620            'sys/crypto/sha2/sha2.c',
1621            'sys/crypto/rijndael/rijndael-alg-fst.c',
1622            'sys/crypto/rijndael/rijndael-api.c',
1623            'sys/crypto/rijndael/rijndael-api-fst.c',
1624            'sys/crypto/des/des_setkey.c',
1625            'sys/crypto/des/des_enc.c',
1626            'sys/crypto/des/des_ecb.c',
1627            'sys/crypto/blowfish/bf_enc.c',
1628            'sys/crypto/blowfish/bf_skey.c',
1629            'sys/crypto/blowfish/bf_ecb.c',
1630            'sys/crypto/rc4/rc4.c',
1631            #'crypto/via/padlock.c',
1632            #'crypto/via/padlock_cipher.c',
1633            #'crypto/via/padlock_hash.c',
1634            'sys/crypto/camellia/camellia-api.c',
1635            'sys/crypto/camellia/camellia.c',
1636        ],
1637        mm.generator['source']()
1638    )
1639    return mod
1640
1641#
1642# Altq
1643#
1644def altq(mm):
1645    mod = builder.Module('altq')
1646    mod.addKernelSpaceHeaderFiles(
1647        [
1648            'sys/contrib/altq/altq/altq_rmclass.h',
1649            'sys/contrib/altq/altq/altq_cbq.h',
1650            'sys/contrib/altq/altq/altq_var.h',
1651            'sys/contrib/altq/altq/altqconf.h',
1652            'sys/contrib/altq/altq/altq.h',
1653            'sys/contrib/altq/altq/altq_hfsc.h',
1654            'sys/contrib/altq/altq/altq_red.h',
1655            'sys/contrib/altq/altq/altq_classq.h',
1656            'sys/contrib/altq/altq/altq_priq.h',
1657            'sys/contrib/altq/altq/altq_rmclass_debug.h',
1658            'sys/contrib/altq/altq/altq_cdnr.h',
1659            'sys/contrib/altq/altq/altq_rio.h',
1660            'sys/contrib/altq/altq/if_altq.h',
1661        ]
1662    )
1663    mod.addKernelSpaceSourceFiles(
1664        [
1665            'sys/contrib/altq/altq/altq_rmclass.c',
1666            'sys/contrib/altq/altq/altq_rio.c',
1667            'sys/contrib/altq/altq/altq_subr.c',
1668            'sys/contrib/altq/altq/altq_cdnr.c',
1669            'sys/contrib/altq/altq/altq_priq.c',
1670            'sys/contrib/altq/altq/altq_cbq.c',
1671            'sys/contrib/altq/altq/altq_hfsc.c',
1672            'sys/contrib/altq/altq/altq_red.c',
1673        ],
1674        mm.generator['source']()
1675    )
1676    return mod
1677
1678#
1679# Packet filter
1680#
1681def pf(mm):
1682    mod = builder.Module('pf')
1683    mod.addKernelSpaceHeaderFiles(
1684        [
1685            'sys/contrib/pf/net/if_pflog.h',
1686            'sys/contrib/pf/net/if_pflow.h',
1687            'sys/contrib/pf/net/if_pfsync.h',
1688            'sys/contrib/pf/net/pfvar.h',
1689            'sys/contrib/pf/net/pf_mtag.h',
1690        ]
1691    )
1692    mod.addKernelSpaceSourceFiles(
1693        [
1694            'sys/contrib/pf/net/if_pflog.c',
1695            'sys/contrib/pf/net/if_pfsync.c',
1696            'sys/contrib/pf/net/pf.c',
1697            'sys/contrib/pf/net/pf_if.c',
1698            'sys/contrib/pf/net/pf_ioctl.c',
1699            'sys/contrib/pf/net/pf_lb.c',
1700            'sys/contrib/pf/net/pf_norm.c',
1701            'sys/contrib/pf/net/pf_osfp.c',
1702            'sys/contrib/pf/net/pf_ruleset.c',
1703            'sys/contrib/pf/net/pf_table.c',
1704            'sys/contrib/pf/netinet/in4_cksum.c',
1705        ],
1706        mm.generator['source']()
1707    )
1708    return mod
1709
1710#
1711# PCI
1712#
1713def pci(mm):
1714    mod = builder.Module('pci')
1715    mod.addKernelSpaceSourceFiles(
1716        [
1717            'sys/dev/pci/pci.c',
1718            'sys/dev/pci/pci_user.c',
1719            'sys/dev/pci/pci_pci.c',
1720        ],
1721        mm.generator['source']()
1722    )
1723    mod.addKernelSpaceHeaderFiles(
1724        [
1725            'sys/dev/pci/pcib_private.h',
1726            'sys/dev/pci/pci_private.h',
1727            'sys/dev/pci/pcireg.h',
1728            'sys/dev/pci/pcivar.h',
1729            'sys/dev/pci/pcivar.h',
1730        ]
1731    )
1732    mod.addCPUDependentHeaderFiles(
1733        [
1734                'sys/i386/include/legacyvar.h',
1735        ]
1736    )
1737    mod.addTargetSourceCPUDependentHeaderFiles(
1738        [ 'arm', 'avr', 'bfin', 'h8300', 'lm32', 'm32c', 'm32r', 'm68k', 'mips',
1739          'nios2', 'powerpc', 'sh', 'sparc', 'sparc64', 'v850' ],
1740        'i386',
1741        [
1742                'sys/i386/include/legacyvar.h',
1743        ]
1744    )
1745    mod.addTargetSourceCPUDependentHeaderFiles(
1746        [ 'arm', 'avr', 'bfin', 'h8300', 'i386', 'lm32', 'm32c', 'm32r', 'm68k',
1747          'mips', 'nios2', 'powerpc', 'sh', 'sparc', 'sparc64', 'v850' ],
1748        'x86',
1749        [
1750                'sys/x86/include/pci_cfgreg.h',
1751        ]
1752    )
1753    mod.addCPUDependentSourceFiles(
1754        'i386',
1755        [
1756            'sys/i386/i386/legacy.c',
1757        ],
1758        mm.generator['source']()
1759    )
1760    mod.addTargetSourceCPUDependentSourceFiles(
1761        [ 'arm', 'avr', 'bfin', 'h8300', 'lm32', 'm32c', 'm32r', 'm68k',
1762          'mips', 'nios2', 'powerpc', 'sh', 'sparc', 'sparc64', 'v850' ],
1763        'i386',
1764        [
1765                'sys/i386/i386/legacy.c',
1766        ],
1767        mm.generator['source']()
1768    )
1769    mod.addTargetSourceCPUDependentSourceFiles(
1770        [ 'arm', 'avr', 'bfin', 'h8300', 'i386', 'lm32', 'm32c', 'm32r',
1771          'm68k', 'mips', 'nios2', 'powerpc', 'sh', 'sparc', 'sparc64', 'v850' ],
1772        'x86',
1773        [
1774                'sys/x86/pci/pci_bus.c',
1775        ],
1776        mm.generator['source']()
1777    )
1778    return mod
1779
1780#
1781# User space
1782#
1783def user_space(mm):
1784    mod = builder.Module('user_space')
1785    mod.addUserSpaceHeaderFiles(
1786        [
1787            'include/arpa/ftp.h',
1788            'include/arpa/inet.h',
1789            'include/arpa/nameser_compat.h',
1790            'include/arpa/nameser.h',
1791            'include/db.h',
1792            'include/err.h',
1793            'include/ifaddrs.h',
1794            'include/mpool.h',
1795            'include/netconfig.h',
1796            'include/netdb.h',
1797            'include/nlist.h',
1798            'include/nsswitch.h',
1799            'include/resolv.h',
1800            'include/res_update.h',
1801            'include/rpc/auth_des.h',
1802            'include/rpc/auth.h',
1803            'include/rpc/auth_unix.h',
1804            'include/rpc/clnt.h',
1805            'include/rpc/clnt_soc.h',
1806            'include/rpc/clnt_stat.h',
1807            'include/rpc/pmap_clnt.h',
1808            'include/rpc/pmap_prot.h',
1809            'include/rpc/rpcb_clnt.h',
1810            'include/rpc/rpcent.h',
1811            'include/rpc/rpc.h',
1812            'include/rpc/rpc_msg.h',
1813            'include/rpc/svc_auth.h',
1814            'include/rpc/svc.h',
1815            'include/rpcsvc/nis_db.h',
1816            'include/rpcsvc/nislib.h',
1817            'include/rpcsvc/nis_tags.h',
1818            'include/rpc/svc_soc.h',
1819            'include/rpcsvc/ypclnt.h',
1820            'include/rpcsvc/yp_prot.h',
1821            'include/rpc/xdr.h',
1822            'include/sysexits.h',
1823            'lib/libc/db/btree/btree.h',
1824            'lib/libc/db/btree/extern.h',
1825            'lib/libc/db/recno/extern.h',
1826            'lib/libc/db/recno/recno.h',
1827            'lib/libc/include/isc/eventlib.h',
1828            'lib/libc/include/isc/list.h',
1829            'lib/libc/include/isc/platform.h',
1830            'lib/libc/include/libc_private.h',
1831            'lib/libc/include/namespace.h',
1832            'lib/libc/include/nss_tls.h',
1833            'lib/libc/include/port_after.h',
1834            'lib/libc/include/port_before.h',
1835            'lib/libc/include/reentrant.h',
1836            'lib/libc/include/resolv_mt.h',
1837            'lib/libc/include/spinlock.h',
1838            'lib/libc/include/un-namespace.h',
1839            'lib/libc/isc/eventlib_p.h',
1840            'lib/libc/net/netdb_private.h',
1841            'lib/libc/net/nss_backends.h',
1842            'lib/libc/net/res_config.h',
1843            'lib/libc/resolv/res_debug.h',
1844            'lib/libc/resolv/res_private.h',
1845            'lib/libc/stdio/local.h',
1846            'lib/libipsec/ipsec_strerror.h',
1847            'lib/libipsec/libpfkey.h',
1848            'lib/libkvm/kvm.h',
1849            'lib/libmemstat/memstat.h',
1850            'lib/libmemstat/memstat_internal.h',
1851            'lib/libutil/libutil.h',
1852            'sbin/dhclient/dhcpd.h',
1853            'sbin/dhclient/dhcp.h',
1854            'sbin/dhclient/dhctoken.h',
1855            'sbin/dhclient/privsep.h',
1856            'sbin/dhclient/tree.h',
1857            'sbin/ifconfig/ifconfig.h',
1858            'sbin/ifconfig/regdomain.h',
1859            'usr.bin/netstat/netstat.h'
1860        ]
1861    )
1862    mod.addFile(mm.generator['file']('include/rpc/rpcb_prot.x',
1863                                     mm.generator['freebsd-path'](),
1864                                     mm.generator['convert'](),
1865                                     mm.generator['convert'](),
1866                                     mm.generator['rpc-gen']()))
1867    mod.addFile(mm.generator['file']('sbin/route/keywords',
1868                                     mm.generator['freebsd-path'](),
1869                                     mm.generator['convert'](),
1870                                     mm.generator['convert'](),
1871                                     mm.generator['route-keywords']()))
1872    mod.addUserSpaceSourceFiles(
1873        [
1874            'lib/libc/db/btree/bt_close.c',
1875            'lib/libc/db/btree/bt_conv.c',
1876            'lib/libc/db/btree/bt_debug.c',
1877            'lib/libc/db/btree/bt_delete.c',
1878            'lib/libc/db/btree/bt_get.c',
1879            'lib/libc/db/btree/bt_open.c',
1880            'lib/libc/db/btree/bt_overflow.c',
1881            'lib/libc/db/btree/bt_page.c',
1882            'lib/libc/db/btree/bt_put.c',
1883            'lib/libc/db/btree/bt_search.c',
1884            'lib/libc/db/btree/bt_seq.c',
1885            'lib/libc/db/btree/bt_split.c',
1886            'lib/libc/db/btree/bt_utils.c',
1887            'lib/libc/db/db/db.c',
1888            'lib/libc/db/mpool/mpool.c',
1889            'lib/libc/db/mpool/mpool-compat.c',
1890            'lib/libc/db/recno/rec_close.c',
1891            'lib/libc/db/recno/rec_delete.c',
1892            'lib/libc/db/recno/rec_get.c',
1893            'lib/libc/db/recno/rec_open.c',
1894            'lib/libc/db/recno/rec_put.c',
1895            'lib/libc/db/recno/rec_search.c',
1896            'lib/libc/db/recno/rec_seq.c',
1897            'lib/libc/db/recno/rec_utils.c',
1898        ],
1899        mm.generator['source']('-D__DBINTERFACE_PRIVATE -DINET6')
1900    )
1901    mod.addUserSpaceSourceFiles(
1902        [
1903            'bin/hostname/hostname.c',
1904            'lib/libc/gen/err.c',
1905            'lib/libc/gen/feature_present.c',
1906            'lib/libc/gen/gethostname.c',
1907            'lib/libc/gen/sethostname.c',
1908            'lib/libc/inet/inet_addr.c',
1909            'lib/libc/inet/inet_cidr_ntop.c',
1910            'lib/libc/inet/inet_cidr_pton.c',
1911            'lib/libc/inet/inet_lnaof.c',
1912            'lib/libc/inet/inet_makeaddr.c',
1913            'lib/libc/inet/inet_neta.c',
1914            'lib/libc/inet/inet_net_ntop.c',
1915            'lib/libc/inet/inet_netof.c',
1916            'lib/libc/inet/inet_net_pton.c',
1917            'lib/libc/inet/inet_network.c',
1918            'lib/libc/inet/inet_ntoa.c',
1919            'lib/libc/inet/inet_ntop.c',
1920            'lib/libc/inet/inet_pton.c',
1921            'lib/libc/inet/nsap_addr.c',
1922            'lib/libc/isc/ev_streams.c',
1923            'lib/libc/isc/ev_timers.c',
1924            'lib/libc/nameser/ns_name.c',
1925            'lib/libc/nameser/ns_netint.c',
1926            'lib/libc/nameser/ns_parse.c',
1927            'lib/libc/nameser/ns_print.c',
1928            'lib/libc/nameser/ns_samedomain.c',
1929            'lib/libc/nameser/ns_ttl.c',
1930            'lib/libc/net/base64.c',
1931            'lib/libc/net/ether_addr.c',
1932            'lib/libc/net/gai_strerror.c',
1933            'lib/libc/net/getaddrinfo.c',
1934            'lib/libc/net/gethostbydns.c',
1935            'lib/libc/net/gethostbyht.c',
1936            'lib/libc/net/gethostbynis.c',
1937            'lib/libc/net/gethostnamadr.c',
1938            'lib/libc/net/getifaddrs.c',
1939            'lib/libc/net/getifmaddrs.c',
1940            'lib/libc/net/getnameinfo.c',
1941            'lib/libc/net/getnetbydns.c',
1942            'lib/libc/net/getnetbyht.c',
1943            'lib/libc/net/getnetbynis.c',
1944            'lib/libc/net/getnetnamadr.c',
1945            'lib/libc/net/getproto.c',
1946            'lib/libc/net/getprotoent.c',
1947            'lib/libc/net/getprotoname.c',
1948            'lib/libc/net/getservent.c',
1949            'lib/libc/net/if_indextoname.c',
1950            'lib/libc/net/if_nameindex.c',
1951            'lib/libc/net/if_nametoindex.c',
1952            'lib/libc/net/ip6opt.c',
1953            'lib/libc/net/linkaddr.c',
1954            'lib/libc/net/map_v4v6.c',
1955            'lib/libc/net/name6.c',
1956            'lib/libc/net/nsdispatch.c',
1957            'lib/libc/net/rcmd.c',
1958            'lib/libc/net/recv.c',
1959            'lib/libc/net/rthdr.c',
1960            'lib/libc/net/send.c',
1961            'lib/libc/posix1e/mac.c',
1962            'lib/libc/resolv/h_errno.c',
1963            'lib/libc/resolv/herror.c',
1964            'lib/libc/resolv/mtctxres.c',
1965            'lib/libc/resolv/res_comp.c',
1966            'lib/libc/resolv/res_data.c',
1967            'lib/libc/resolv/res_debug.c',
1968            'lib/libc/resolv/res_findzonecut.c',
1969            'lib/libc/resolv/res_init.c',
1970            'lib/libc/resolv/res_mkquery.c',
1971            'lib/libc/resolv/res_mkupdate.c',
1972            'lib/libc/resolv/res_query.c',
1973            'lib/libc/resolv/res_send.c',
1974            'lib/libc/resolv/res_state.c',
1975            'lib/libc/resolv/res_update.c',
1976            'lib/libc/stdio/fgetln.c',
1977            'lib/libc/stdlib/strtonum.c',
1978            'lib/libc/string/strsep.c',
1979            'lib/libipsec/ipsec_dump_policy.c',
1980            'lib/libipsec/ipsec_get_policylen.c',
1981            'lib/libipsec/ipsec_strerror.c',
1982            'lib/libipsec/pfkey.c',
1983            'lib/libipsec/pfkey_dump.c',
1984            'lib/libmemstat/memstat_all.c',
1985            'lib/libmemstat/memstat.c',
1986            'lib/libmemstat/memstat_malloc.c',
1987            'lib/libmemstat/memstat_uma.c',
1988            'lib/libutil/expand_number.c',
1989            'lib/libutil/humanize_number.c',
1990            'lib/libutil/trimdomain.c',
1991            'sbin/dhclient/alloc.c',
1992            'sbin/dhclient/bpf.c',
1993            'sbin/dhclient/clparse.c',
1994            'sbin/dhclient/conflex.c',
1995            'sbin/dhclient/convert.c',
1996            'sbin/dhclient/dhclient.c',
1997            'sbin/dhclient/dispatch.c',
1998            'sbin/dhclient/errwarn.c',
1999            'sbin/dhclient/hash.c',
2000            'sbin/dhclient/inet.c',
2001            'sbin/dhclient/options.c',
2002            'sbin/dhclient/packet.c',
2003            'sbin/dhclient/parse.c',
2004            'sbin/dhclient/privsep.c',
2005            'sbin/dhclient/tables.c',
2006            'sbin/dhclient/tree.c',
2007            'sbin/ifconfig/af_atalk.c',
2008            'sbin/ifconfig/af_inet6.c',
2009            'sbin/ifconfig/af_inet.c',
2010            'sbin/ifconfig/af_link.c',
2011            'sbin/ifconfig/af_nd6.c',
2012            'sbin/ifconfig/ifbridge.c',
2013            'sbin/ifconfig/ifcarp.c',
2014            'sbin/ifconfig/ifclone.c',
2015            'sbin/ifconfig/ifconfig.c',
2016            'sbin/ifconfig/ifgif.c',
2017            'sbin/ifconfig/ifgre.c',
2018            'sbin/ifconfig/ifgroup.c',
2019            'sbin/ifconfig/iflagg.c',
2020            'sbin/ifconfig/ifmac.c',
2021            'sbin/ifconfig/ifmedia.c',
2022            'sbin/ifconfig/ifpfsync.c',
2023            'sbin/ifconfig/ifvlan.c',
2024            'sbin/ping6/ping6.c',
2025            'sbin/ping/ping.c',
2026            'sbin/route/route.c',
2027            'usr.bin/netstat/atalk.c',
2028            'usr.bin/netstat/bpf.c',
2029            'usr.bin/netstat/if.c',
2030            'usr.bin/netstat/inet6.c',
2031            'usr.bin/netstat/inet.c',
2032            'usr.bin/netstat/ipsec.c',
2033            'usr.bin/netstat/main.c',
2034            'usr.bin/netstat/mbuf.c',
2035            'usr.bin/netstat/mroute6.c',
2036            'usr.bin/netstat/mroute.c',
2037            'usr.bin/netstat/route.c',
2038            'usr.bin/netstat/pfkey.c',
2039            'usr.bin/netstat/sctp.c',
2040            'usr.bin/netstat/unix.c',
2041        ],
2042        mm.generator['source']('-DINET6')
2043    )
2044    return mod
2045
2046#
2047# Contrib libpcap
2048#
2049def contrib_libpcap(mm):
2050    mod = builder.Module('contrib_libpcap')
2051    cflags = ['-DINET6',
2052              '-D_U_=__attribute__((unused))',
2053              '-DHAVE_INTTYPES=1',
2054              '-DHAVE_STDINT=1',
2055              '-DHAVE_STRERROR=1',
2056              '-DHAVE_STRLCPY=1',
2057              '-DHAVE_SNPRINTF=1',
2058              '-DHAVE_VSNPRINTF=1']
2059    mod.addUserSpaceHeaderFiles(
2060        [
2061            'contrib/libpcap/arcnet.h',
2062            'contrib/libpcap/atmuni31.h',
2063            'contrib/libpcap/ethertype.h',
2064            'contrib/libpcap/gencode.h',
2065            'contrib/libpcap/ieee80211.h',
2066            'contrib/libpcap/llc.h',
2067            'contrib/libpcap/nlpid.h',
2068            'contrib/libpcap/pcap-common.h',
2069            'contrib/libpcap/pcap-int.h',
2070            'contrib/libpcap/pcap-namedb.h',
2071            'contrib/libpcap/pcap.h',
2072            'contrib/libpcap/pcap/ipnet.h',
2073            'contrib/libpcap/pcap/namedb.h',
2074            'contrib/libpcap/pcap/pcap.h',
2075            'contrib/libpcap/pcap/sll.h',
2076            'contrib/libpcap/pcap/usb.h',
2077            'contrib/libpcap/ppp.h',
2078            'contrib/libpcap/sf-pcap-ng.h',
2079            'contrib/libpcap/sf-pcap.h',
2080            'contrib/libpcap/sunatmpos.h',
2081        ]
2082    )
2083    gen_cflags = cflags + ['-DNEED_YYPARSE_WRAPPER=1',
2084                           '-Dyylval=pcap_lval']
2085    mod.addFile(mm.generator['file']('contrib/libpcap/scanner.l',
2086                                     mm.generator['freebsd-path'](),
2087                                     mm.generator['convert'](),
2088                                     mm.generator['convert'](),
2089                                     mm.generator['lex']('pcap',
2090                                                         'scanner.c',
2091                                                         gen_cflags)))
2092    mod.addFile(mm.generator['file']('contrib/libpcap/grammar.y',
2093                                     mm.generator['freebsd-path'](),
2094                                     mm.generator['convert'](),
2095                                     mm.generator['convert'](),
2096                                     mm.generator['yacc']('pcap',
2097                                                          'tokdefs.h',
2098                                                          gen_cflags)))
2099    mod.addUserSpaceSourceFiles(
2100        [
2101            'contrib/libpcap/bpf_image.c',
2102            'contrib/libpcap/etherent.c',
2103            'contrib/libpcap/fad-getad.c',
2104            'contrib/libpcap/gencode.c',
2105            'contrib/libpcap/inet.c',
2106            'contrib/libpcap/pcap.c',
2107            'contrib/libpcap/pcap-bpf.c',
2108            'contrib/libpcap/pcap-common.c',
2109            'contrib/libpcap/optimize.c',
2110            'contrib/libpcap/nametoaddr.c',
2111            'contrib/libpcap/savefile.c',
2112            'contrib/libpcap/sf-pcap.c',
2113            'contrib/libpcap/sf-pcap-ng.c',
2114        ],
2115        mm.generator['source'](cflags)
2116    )
2117    return mod
2118
2119#
2120# /usr/sbin/tcpdump
2121#
2122def usr_sbin_tcpdump(mm):
2123    mod = builder.Module('usr_sbin_tcpdump')
2124    mod.addUserSpaceHeaderFiles(
2125        [
2126            'contrib/tcpdump/addrtoname.h',
2127            'contrib/tcpdump/af.h',
2128            'contrib/tcpdump/ah.h',
2129            'contrib/tcpdump/aodv.h',
2130            'contrib/tcpdump/appletalk.h',
2131            'contrib/tcpdump/arcnet.h',
2132            'contrib/tcpdump/atm.h',
2133            'contrib/tcpdump/bgp.h',
2134            'contrib/tcpdump/bootp.h',
2135            'contrib/tcpdump/chdlc.h',
2136            'contrib/tcpdump/cpack.h',
2137            'contrib/tcpdump/dccp.h',
2138            'contrib/tcpdump/decnet.h',
2139            'contrib/tcpdump/decode_prefix.h',
2140            'contrib/tcpdump/enc.h',
2141            'contrib/tcpdump/esp.h',
2142            'contrib/tcpdump/ether.h',
2143            'contrib/tcpdump/ethertype.h',
2144            'contrib/tcpdump/extract.h',
2145            'contrib/tcpdump/fddi.h',
2146            'contrib/tcpdump/forces.h',
2147            'contrib/tcpdump/gmpls.h',
2148            'contrib/tcpdump/gmt2local.h',
2149            'contrib/tcpdump/icmp6.h',
2150            'contrib/tcpdump/ieee802_11.h',
2151            'contrib/tcpdump/ieee802_11_radio.h',
2152            'contrib/tcpdump/igrp.h',
2153            'contrib/tcpdump/interface.h',
2154            'contrib/tcpdump/ip.h',
2155            'contrib/tcpdump/ip6.h',
2156            'contrib/tcpdump/ipfc.h',
2157            'contrib/tcpdump/ipnet.h',
2158            'contrib/tcpdump/ipproto.h',
2159            'contrib/tcpdump/ipsec_doi.h',
2160            'contrib/tcpdump/ipx.h',
2161            'contrib/tcpdump/isakmp.h',
2162            'contrib/tcpdump/l2tp.h',
2163            'contrib/tcpdump/l2vpn.h',
2164            'contrib/tcpdump/lane.h',
2165            'contrib/tcpdump/llc.h',
2166            'contrib/tcpdump/machdep.h',
2167            'contrib/tcpdump/mib.h',
2168            'contrib/tcpdump/mpls.h',
2169            'contrib/tcpdump/nameser.h',
2170            'contrib/tcpdump/netbios.h',
2171            'contrib/tcpdump/netdissect.h',
2172            'contrib/tcpdump/nfs.h',
2173            'contrib/tcpdump/nfsfh.h',
2174            'contrib/tcpdump/nlpid.h',
2175            'contrib/tcpdump/ntp.h',
2176            'contrib/tcpdump/oakley.h',
2177            'contrib/tcpdump/ospf.h',
2178            'contrib/tcpdump/ospf6.h',
2179            'contrib/tcpdump/oui.h',
2180            'contrib/tcpdump/pcap-missing.h',
2181            'contrib/tcpdump/pmap_prot.h',
2182            'contrib/tcpdump/ppi.h',
2183            'contrib/tcpdump/ppp.h',
2184            'contrib/tcpdump/route6d.h',
2185            'contrib/tcpdump/rpc_auth.h',
2186            'contrib/tcpdump/rpc_msg.h',
2187            'contrib/tcpdump/rx.h',
2188            'contrib/tcpdump/sctpConstants.h',
2189            'contrib/tcpdump/sctpHeader.h',
2190            'contrib/tcpdump/setsignal.h',
2191            'contrib/tcpdump/signature.h',
2192            'contrib/tcpdump/slcompress.h',
2193            'contrib/tcpdump/slip.h',
2194            'contrib/tcpdump/sll.h',
2195            'contrib/tcpdump/smb.h',
2196            'contrib/tcpdump/tcp.h',
2197            'contrib/tcpdump/tcpdump-stdinc.h',
2198            'contrib/tcpdump/telnet.h',
2199            'contrib/tcpdump/tftp.h',
2200            'contrib/tcpdump/timed.h',
2201            'contrib/tcpdump/token.h',
2202            'contrib/tcpdump/udp.h',
2203            'usr.sbin/tcpdump/tcpdump/config.h',
2204        ]
2205    )
2206    mod.addUserSpaceSourceFiles(
2207        [
2208            'contrib/tcpdump/addrtoname.c',
2209            'contrib/tcpdump/af.c',
2210            'contrib/tcpdump/bpf_dump.c',
2211            'contrib/tcpdump/checksum.c',
2212            'contrib/tcpdump/cpack.c',
2213            'contrib/tcpdump/gmpls.c',
2214            'contrib/tcpdump/gmt2local.c',
2215            'contrib/tcpdump/in_cksum.c',
2216            'contrib/tcpdump/ipproto.c',
2217            'contrib/tcpdump/machdep.c',
2218            'contrib/tcpdump/nlpid.c',
2219            'contrib/tcpdump/l2vpn.c',
2220            'contrib/tcpdump/oui.c',
2221            'contrib/tcpdump/parsenfsfh.c',
2222            'contrib/tcpdump/print-802_11.c',
2223            'contrib/tcpdump/print-802_15_4.c',
2224            'contrib/tcpdump/print-ah.c',
2225            'contrib/tcpdump/print-aodv.c',
2226            'contrib/tcpdump/print-ap1394.c',
2227            'contrib/tcpdump/print-arcnet.c',
2228            'contrib/tcpdump/print-arp.c',
2229            'contrib/tcpdump/print-ascii.c',
2230            'contrib/tcpdump/print-atalk.c',
2231            'contrib/tcpdump/print-atm.c',
2232            'contrib/tcpdump/print-babel.c',
2233            'contrib/tcpdump/print-beep.c',
2234            'contrib/tcpdump/print-bfd.c',
2235            'contrib/tcpdump/print-bgp.c',
2236            'contrib/tcpdump/print-bootp.c',
2237            'contrib/tcpdump/print-bt.c',
2238            'contrib/tcpdump/print-carp.c',
2239            'contrib/tcpdump/print-cdp.c',
2240            'contrib/tcpdump/print-cfm.c',
2241            'contrib/tcpdump/print-chdlc.c',
2242            'contrib/tcpdump/print-cip.c',
2243            'contrib/tcpdump/print-cnfp.c',
2244            'contrib/tcpdump/print-dccp.c',
2245            'contrib/tcpdump/print-decnet.c',
2246            'contrib/tcpdump/print-dhcp6.c',
2247            'contrib/tcpdump/print-domain.c',
2248            'contrib/tcpdump/print-dtp.c',
2249            'contrib/tcpdump/print-dvmrp.c',
2250            'contrib/tcpdump/print-eap.c',
2251            'contrib/tcpdump/print-egp.c',
2252            'contrib/tcpdump/print-eigrp.c',
2253            'contrib/tcpdump/print-enc.c',
2254            'contrib/tcpdump/print-esp.c',
2255            'contrib/tcpdump/print-ether.c',
2256            'contrib/tcpdump/print-fddi.c',
2257            'contrib/tcpdump/print-forces.c',
2258            'contrib/tcpdump/print-fr.c',
2259            'contrib/tcpdump/print-frag6.c',
2260            'contrib/tcpdump/print-gre.c',
2261            'contrib/tcpdump/print-hsrp.c',
2262            'contrib/tcpdump/print-icmp.c',
2263            'contrib/tcpdump/print-icmp6.c',
2264            'contrib/tcpdump/print-igmp.c',
2265            'contrib/tcpdump/print-igrp.c',
2266            'contrib/tcpdump/print-ip.c',
2267            'contrib/tcpdump/print-ip6.c',
2268            'contrib/tcpdump/print-ip6opts.c',
2269            'contrib/tcpdump/print-ipcomp.c',
2270            'contrib/tcpdump/print-ipfc.c',
2271            'contrib/tcpdump/print-ipnet.c',
2272            'contrib/tcpdump/print-ipx.c',
2273            'contrib/tcpdump/print-isakmp.c',
2274            'contrib/tcpdump/print-isoclns.c',
2275            'contrib/tcpdump/print-juniper.c',
2276            'contrib/tcpdump/print-krb.c',
2277            'contrib/tcpdump/print-l2tp.c',
2278            'contrib/tcpdump/print-lane.c',
2279            'contrib/tcpdump/print-ldp.c',
2280            'contrib/tcpdump/print-llc.c',
2281            'contrib/tcpdump/print-lldp.c',
2282            'contrib/tcpdump/print-lmp.c',
2283            'contrib/tcpdump/print-lspping.c',
2284            'contrib/tcpdump/print-lwapp.c',
2285            'contrib/tcpdump/print-lwres.c',
2286            'contrib/tcpdump/print-mobile.c',
2287            'contrib/tcpdump/print-mobility.c',
2288            'contrib/tcpdump/print-mpcp.c',
2289            'contrib/tcpdump/print-mpls.c',
2290            'contrib/tcpdump/print-msdp.c',
2291            'contrib/tcpdump/print-msnlb.c',
2292            'contrib/tcpdump/print-netbios.c',
2293            'contrib/tcpdump/print-nfs.c',
2294            'contrib/tcpdump/print-ntp.c',
2295            'contrib/tcpdump/print-null.c',
2296            'contrib/tcpdump/print-olsr.c',
2297            'contrib/tcpdump/print-ospf.c',
2298            'contrib/tcpdump/print-ospf6.c',
2299            'contrib/tcpdump/print-otv.c',
2300            'contrib/tcpdump/print-pflog.c',
2301            'contrib/tcpdump/print-pfsync.c',
2302            'contrib/tcpdump/print-pgm.c',
2303            'contrib/tcpdump/print-pim.c',
2304            'contrib/tcpdump/print-ppi.c',
2305            'contrib/tcpdump/print-ppp.c',
2306            'contrib/tcpdump/print-pppoe.c',
2307            'contrib/tcpdump/print-pptp.c',
2308            'contrib/tcpdump/print-radius.c',
2309            'contrib/tcpdump/print-raw.c',
2310            'contrib/tcpdump/print-rip.c',
2311            'contrib/tcpdump/print-ripng.c',
2312            'contrib/tcpdump/print-rpki-rtr.c',
2313            'contrib/tcpdump/print-rrcp.c',
2314            'contrib/tcpdump/print-rsvp.c',
2315            'contrib/tcpdump/print-rt6.c',
2316            'contrib/tcpdump/print-rx.c',
2317            'contrib/tcpdump/print-sctp.c',
2318            'contrib/tcpdump/print-sflow.c',
2319            'contrib/tcpdump/print-sip.c',
2320            'contrib/tcpdump/print-sl.c',
2321            'contrib/tcpdump/print-sll.c',
2322            'contrib/tcpdump/print-slow.c',
2323            'contrib/tcpdump/print-smb.c',
2324            'contrib/tcpdump/print-snmp.c',
2325            'contrib/tcpdump/print-stp.c',
2326            'contrib/tcpdump/print-sunatm.c',
2327            #'contrib/tcpdump/print-sunrpc.c',
2328            'contrib/tcpdump/print-symantec.c',
2329            'contrib/tcpdump/print-syslog.c',
2330            'contrib/tcpdump/print-tcp.c',
2331            'contrib/tcpdump/print-telnet.c',
2332            'contrib/tcpdump/print-tftp.c',
2333            'contrib/tcpdump/print-timed.c',
2334            'contrib/tcpdump/print-tipc.c',
2335            'contrib/tcpdump/print-token.c',
2336            'contrib/tcpdump/print-udld.c',
2337            'contrib/tcpdump/print-udp.c',
2338            'contrib/tcpdump/print-usb.c',
2339            'contrib/tcpdump/print-vjc.c',
2340            'contrib/tcpdump/print-vqp.c',
2341            'contrib/tcpdump/print-vrrp.c',
2342            'contrib/tcpdump/print-vtp.c',
2343            'contrib/tcpdump/print-vxlan.c',
2344            'contrib/tcpdump/print-wb.c',
2345            'contrib/tcpdump/print-zephyr.c',
2346            'contrib/tcpdump/print-zeromq.c',
2347            'contrib/tcpdump/setsignal.c',
2348            'contrib/tcpdump/signature.c',
2349            'contrib/tcpdump/smbutil.c',
2350            'contrib/tcpdump/tcpdump.c',
2351            'contrib/tcpdump/util.c',
2352        ],
2353        mm.generator['source'](['-DINET6',
2354                                '-D_U_=__attribute__((unused))',
2355                                '-DHAVE_CONFIG_H=1',
2356                                '-DHAVE_NET_PFVAR_H=1'],
2357                               ['freebsd/contrib/tcpdump',
2358                                'freebsd/usr.sbin/tcpdump/tcpdump'])
2359    )
2360    return mod
2361
2362#
2363# in_chksum Module
2364#
2365def in_cksum(mm):
2366    mod = builder.Module('in_cksum')
2367    mod.addRTEMSHeaderFiles(
2368        [
2369        ]
2370    )
2371    mod.addCPUDependentHeaderFiles(
2372        [
2373            'sys/i386/include/in_cksum.h',
2374            'sys/mips/include/in_cksum.h',
2375            'sys/powerpc/include/in_cksum.h',
2376            'sys/sparc64/include/in_cksum.h',
2377        ]
2378    )
2379    mod.addTargetSourceCPUDependentHeaderFiles(
2380        [ 'arm', 'avr', 'bfin', 'h8300', 'lm32', 'm32c', 'm32r', 'm68k',
2381          'nios2', 'sh', 'sparc', 'v850' ],
2382        'mips',
2383        [
2384            'sys/mips/include/in_cksum.h',
2385        ]
2386    )
2387    mod.addTargetSourceCPUDependentSourceFiles(
2388        [ 'arm', 'avr', 'bfin', 'h8300', 'lm32', 'm32c', 'm32r', 'm68k',
2389          'nios2', 'sh', 'sparc', 'v850' ],
2390        'mips',
2391        [
2392            'sys/mips/mips/in_cksum.c',
2393        ],
2394        mm.generator['source']()
2395    )
2396    mod.addCPUDependentSourceFiles(
2397        'i386',
2398        [
2399            'sys/i386/i386/in_cksum.c',
2400        ],
2401        mm.generator['source']()
2402    )
2403    mod.addCPUDependentSourceFiles(
2404        'mips',
2405        [
2406            'sys/mips/mips/in_cksum.c',
2407        ],
2408        mm.generator['source']()
2409    )
2410    mod.addCPUDependentSourceFiles(
2411        'powerpc',
2412        [
2413            'sys/powerpc/powerpc/in_cksum.c',
2414        ],
2415        mm.generator['source']()
2416    )
2417    mod.addCPUDependentSourceFiles(
2418        'sparc',
2419        [
2420            'sys/mips/mips/in_cksum.c',
2421        ],
2422        mm.generator['source']()
2423    )
2424    mod.addCPUDependentSourceFiles(
2425        'sparc64',
2426        [
2427            'sys/sparc64/sparc64/in_cksum.c',
2428        ],
2429        mm.generator['source']()
2430    )
2431    return mod
2432
2433#
2434# Tests
2435#
2436def tests(mm):
2437    mod = builder.Module('tests')
2438    mod.addTest(mm.generator['test']('foobarclient', ['test_main'],
2439                                     runTest = False, netTest = True))
2440    mod.addTest(mm.generator['test']('foobarserver', ['test_main'],
2441                                     runTest = False, netTest = True))
2442    mod.addTest(mm.generator['test']('dhcpcd01', ['test_main'],
2443                                     runTest = False, netTest = True))
2444    mod.addTest(mm.generator['test']('dhcpcd02', ['test_main'],
2445                                     runTest = False, netTest = True))
2446    mod.addTest(mm.generator['test']('arphole', ['test_main'],
2447                                     runTest = False, netTest = True))
2448    mod.addTest(mm.generator['test']('telnetd01', ['test_main'],
2449                                     runTest = False, netTest = True))
2450    mod.addTest(mm.generator['test']('unix01', ['test_main']))
2451    mod.addTest(mm.generator['test']('ftpd01', ['test_main'], netTest = True))
2452    mod.addTest(mm.generator['test']('ping01', ['test_main'], netTest = True))
2453    mod.addTest(mm.generator['test']('selectpollkqueue01', ['test_main']))
2454    mod.addTest(mm.generator['test']('rwlock01', ['test_main']))
2455    mod.addTest(mm.generator['test']('sleep01', ['test_main']))
2456    mod.addTest(mm.generator['test']('syscalls01', ['test_main']))
2457    mod.addTest(mm.generator['test']('commands01', ['test_main']))
2458    mod.addTest(mm.generator['test']('usb01', ['init', 'test-file-system'], False))
2459    mod.addTest(mm.generator['test']('loopback01', ['test_main']))
2460    mod.addTest(mm.generator['test']('netshell01', ['test_main', 'shellconfig'], False))
2461    mod.addTest(mm.generator['test']('swi01', ['init', 'swi_test']))
2462    mod.addTest(mm.generator['test']('timeout01', ['init', 'timeout_test']))
2463    mod.addTest(mm.generator['test']('init01', ['test_main']))
2464    mod.addTest(mm.generator['test']('thread01', ['test_main']))
2465    mod.addTest(mm.generator['test']('mutex01', ['test_main']))
2466    mod.addTest(mm.generator['test']('condvar01', ['test_main']))
2467    mod.addTest(mm.generator['test']('ppp01', ['test_main'], runTest = False))
2468    mod.addTest(mm.generator['test']('zerocopy01', ['test_main'],
2469                                     runTest = False, netTest = True))
2470    mod.addTest(mm.generator['test']('smp01', ['test_main']))
2471    mod.addTest(mm.generator['test']('media01', ['test_main'], runTest = False))
2472    mod.addTest(mm.generator['test']('vlan01', ['test_main'], netTest = True))
2473    mod.addTest(mm.generator['test']('lagg01', ['test_main'], netTest = True))
2474    return mod
2475
2476#
2477# DHCP
2478#
2479def dhcpcd(mm):
2480    mod = builder.Module('dhcpcd')
2481    mod.addSourceFiles(
2482        [
2483            'dhcpcd/arp.c',
2484            'dhcpcd/auth.c',
2485            'dhcpcd/bpf.c',
2486            'dhcpcd/common.c',
2487            'dhcpcd/dhcp6.c',
2488            'dhcpcd/dhcp.c',
2489            'dhcpcd/dhcpcd.c',
2490            'dhcpcd/dhcpcd-embedded.c',
2491            'dhcpcd/dhcp-common.c',
2492            'dhcpcd/duid.c',
2493            'dhcpcd/eloop.c',
2494            'dhcpcd/if-bsd.c',
2495            'dhcpcd/if-options.c',
2496            'dhcpcd/if-pref.c',
2497            'dhcpcd/ipv4.c',
2498            'dhcpcd/ipv4ll.c',
2499            'dhcpcd/ipv6.c',
2500            'dhcpcd/ipv6nd.c',
2501            'dhcpcd/net.c',
2502            'dhcpcd/platform-bsd.c',
2503            'dhcpcd/compat/pselect.c',
2504            'dhcpcd/crypt/hmac_md5.c',
2505        ],
2506        mm.generator['source']('-D__FreeBSD__ -DTHERE_IS_NO_FORK -DMASTER_ONLY -DINET -DINET6')
2507    )
2508    mod.addRTEMSSourceFiles(
2509        [
2510            'rtems/rtems-bsd-shell-dhcpcd.c',
2511        ],
2512        mm.generator['source']()
2513    )
2514    return mod
2515
2516#
2517# MDNS Responder
2518#
2519def mdnsresponder(mm):
2520    mod = builder.Module('mdnsresponder')
2521    mod.addSourceFiles(
2522        [
2523            'mDNSResponder/mDNSCore/anonymous.c',
2524            'mDNSResponder/mDNSCore/CryptoAlg.c',
2525            'mDNSResponder/mDNSCore/DNSCommon.c',
2526            'mDNSResponder/mDNSCore/DNSDigest.c',
2527            'mDNSResponder/mDNSCore/mDNS.c',
2528            'mDNSResponder/mDNSCore/uDNS.c',
2529            'mDNSResponder/mDNSShared/dnssd_clientshim.c',
2530            'mDNSResponder/mDNSShared/mDNSDebug.c',
2531            'mDNSResponder/mDNSShared/PlatformCommon.c',
2532            'mDNSResponder/mDNSShared/GenLinkedList.c',
2533            'mDNSResponder/mDNSPosix/mDNSPosix.c',
2534            'mDNSResponder/mDNSPosix/mDNSUNP.c',
2535        ],
2536        mm.generator['source']()
2537    )
2538    return mod
2539
2540#
2541# Mongoose HTTP
2542#
2543def mghttpd(mm):
2544    mod = builder.Module('mghttpd')
2545    mod.addSourceFiles(
2546        [
2547            'rtemsbsd/mghttpd/mongoose.c',
2548        ],
2549        mm.generator['source']('-DNO_SSL -DNO_POPEN -DNO_CGI -DUSE_WEBSOCKET')
2550    )
2551    return mod
2552
2553def sources(mm):
2554    mm.addModule(rtems(mm))
2555    mm.addModule(base(mm))
2556
2557    mm.addModule(mmc(mm))
2558
2559    mm.addModule(dev_usb(mm))
2560    #mm.addModule(dev_usb_add_on(mm))
2561    mm.addModule(dev_usb_controller(mm))
2562    #mm.addModule(dev_usb_controller_add_on(mm))
2563    mm.addModule(dev_usb_quirk(mm))
2564    #mm.addModule(dev_usb_misc(mm))
2565
2566    #mm.addModule(dev_usb_bluetooth(mm))
2567    #mm.addModule(dev_usb_input(mm))
2568    #mm.addModule(dev_usb_mouse(mm))
2569    #mm.addModule(dev_usb_serial(mm))
2570    #mm.addModule(dev_usb_net(mm))
2571    #mm.addModule(dev_usb_wlan(mm))
2572
2573    mm.addModule(cam(mm))
2574    mm.addModule(dev_usb_storage(mm))
2575    #mm.addModule(dev_usb_storage_add_on(mm))
2576
2577    #mm.addModule(dev_usb_template(mm))
2578
2579    mm.addModule(net(mm))
2580    mm.addModule(netinet(mm))
2581    mm.addModule(netinet6(mm))
2582    #mm.addModule(netipsec(mm))
2583    #mm.addModule(net80211(mm))
2584    mm.addModule(opencrypto(mm))
2585    mm.addModule(crypto(mm))
2586    mm.addModule(altq(mm))
2587    mm.addModule(pf(mm))
2588    mm.addModule(dev_net(mm))
2589
2590    # Add PCI
2591    mm.addModule(pci(mm))
2592
2593    # Add NIC devices
2594    mm.addModule(dev_nic(mm))
2595    mm.addModule(dev_nic_re(mm))
2596    mm.addModule(dev_nic_fxp(mm))
2597    mm.addModule(dev_nic_e1000(mm))
2598    mm.addModule(dev_nic_dc(mm))
2599    mm.addModule(dev_nic_smc(mm))
2600    mm.addModule(dev_nic_broadcomm(mm))
2601    # TBD Requires ISA and PCCard Support to be pulled in.
2602    # mm.addModule(dev_nic_cs(mm))
2603
2604    # Add in_chksum
2605    mm.addModule(in_cksum(mm))
2606
2607    mm.addModule(user_space(mm))
2608    mm.addModule(contrib_libpcap(mm))
2609    mm.addModule(usr_sbin_tcpdump(mm))
2610
2611    mm.addModule(tests(mm))
2612    mm.addModule(dhcpcd(mm))
2613    mm.addModule(mghttpd(mm))
2614    mm.addModule(mdnsresponder(mm))
2615
2616    # XXX TODO Check that no file is also listed in empty
2617    # XXX TODO Check that no file in in two modules
Note: See TracBrowser for help on using the repository browser.