source: rtems-libbsd/freebsd-to-rtems.py @ dbda808

4.1155-freebsd-126-freebsd-12freebsd-9.3
Last change on this file since dbda808 was dbda808, checked in by Joel Sherrill <joel.sherrill@…>, on 07/06/12 at 15:57:12

Put CPU specific bus_space routines into separate files

The code in rtemsbsd/freebsd/machine/bus.h assumed that all bus space
accesses were through memory in a simple fashion. The i386 has a true
distinction between I/O and memory space which must be accounted for.

This may not be the eventual structure of this code but we must
have different bus space accessors for different hardware configurations.
And in many, if not most, cases we will want these to be inlined for
performance.

  • Property mode set to 100755
File size: 49.8 KB
Line 
1#! /usr/bin/python
2#
3#  Copyright (c) 2009-2012 embedded brains GmbH.  All rights reserved.
4#
5#   embedded brains GmbH
6#   Obere Lagerstr. 30
7#   82178 Puchheim
8#   Germany
9#   <info@embedded-brains.de>
10#
11#  Copyright (c) 2012 OAR Corporation. All rights reserved.
12#
13#  Redistribution and use in source and binary forms, with or without
14#  modification, are permitted provided that the following conditions
15#  are met:
16#  1. Redistributions of source code must retain the above copyright
17#     notice, this list of conditions and the following disclaimer.
18#  2. Redistributions in binary form must reproduce the above copyright
19#     notice, this list of conditions and the following disclaimer in the
20#     documentation and/or other materials provided with the distribution.
21#
22#  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
23#  "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
24#  LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
25#  A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
26#  OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
27#  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
28#  LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
29#  DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
30#  THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
31#  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
32#  OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
33
34# FreeBSD: http://svn.freebsd.org/base/releng/8.2/sys (revision 222485)
35
36import shutil
37import os
38import re
39import sys
40import getopt
41import filecmp
42import difflib
43
44RTEMS_DIR = "not_set"
45FreeBSD_DIR = "not_set"
46isVerbose = False
47isForward = True
48isDryRun = False
49isDiffMode = False
50isEarlyExit = False
51isOnlyMakefile = False
52tempFile = "/tmp/tmp_FBRT"
53filesProcessed = 0
54
55def usage():
56  print "freebsd-to-rtems.py [args]"
57  print "  -?|-h|--help     print this and exit"
58  print "  -d|--dry-run     run program but no modifications"
59  print "  -D|--diff        provide diff of files between trees"
60  print "  -e|--early-exit  evaluate arguments, print results, and exit"
61  print "  -m|--makefile    just generate Makefile"
62  print "  -R|--reverse     default FreeBSD -> RTEMS, reverse that"
63  print "  -r|--rtems       RTEMS Libbsd directory"
64  print "  -f|--freebsd     FreeBSD SVN directory"
65  print "  -v|--verbose     enable verbose output mode"
66
67# Parse the arguments
68def parseArguments():
69  global RTEMS_DIR, FreeBSD_DIR
70  global isVerbose, isForward, isDryRun, isEarlyExit
71  global isOnlyMakefile, isDiffMode
72  try:
73    opts, args = getopt.getopt(sys.argv[1:], "?hdDemRr:f:v",
74                 ["help",
75                  "help",
76                  "dry-run"
77                  "diff"
78                  "early-exit"
79                  "makefile"
80                  "reverse"
81                  "rtems="
82                  "freebsd="
83                  "verbose"
84                 ]
85                )
86  except getopt.GetoptError, err:
87    # print help information and exit:
88    print str(err) # will print something like "option -a not recognized"
89    usage()
90    sys.exit(2)
91  for o, a in opts:
92    if o == "-v":
93      isVerbose = True
94    elif o in ("-h", "--help", "-?"):
95      usage()
96      sys.exit()
97    elif o in ("-d", "--dry-run"):
98      isDryRun = True
99    elif o in ("-D", "--diff"):
100      isDiffMode = True
101    elif o in ("-e", "--early-exit"):
102      isEarlyExit = True
103    elif o in ("-m", "--makefile"):
104      isOnlyMakefile = True
105    elif o in ("-R", "--reverse"):
106      isForward = False
107    elif o in ("-r", "--rtems"):
108      RTEMS_DIR = a
109    elif o in ("-r", "--rtems"):
110      RTEMS_DIR = a
111    elif o in ("-f", "--freebsd"):
112      FreeBSD_DIR = a
113    else:
114       assert False, "unhandled option"
115
116parseArguments()
117print "Verbose:                " + ("no", "yes")[isVerbose]
118print "Dry Run:                " + ("no", "yes")[isDryRun]
119print "Diff Mode Enabled:      " + ("no", "yes")[isDiffMode]
120print "Only Generate Makefile: " + ("no", "yes")[isOnlyMakefile]
121print "RTEMS Libbsd Directory: " + RTEMS_DIR
122print "FreeBSD SVN Directory:  " + FreeBSD_DIR
123print "Direction:              " + ("reverse", "forward")[isForward]
124
125# Check directory argument was set and exist
126def wasDirectorySet(desc, path):
127    if path == "not_set":
128        print desc + " Directory was not specified on command line"
129        sys.exit(2)
130
131    if os.path.isdir( path ) != True:
132        print desc + " Directory (" + path + ") does not exist"
133        sys.exit(2)
134
135# Were RTEMS and FreeBSD directories specified
136wasDirectorySet( "RTEMS", RTEMS_DIR )
137wasDirectorySet( "FreeBSD", FreeBSD_DIR )
138 
139# Are we generating or reverting?
140if isForward == True:
141    print "Forward from FreeBSD SVN into ", RTEMS_DIR
142else:
143    print "Reverting from ", RTEMS_DIR
144    if isOnlyMakefile == True:
145        print "Only Makefile Mode and Reverse are contradictory"
146        sys.exit(2)
147
148if isEarlyExit == True:
149    print "Early exit at user request"
150    sys.exit(0)
151 
152# Prefix added to FreeBSD files as they are copied into the RTEMS
153# build tree.
154PREFIX = 'freebsd'
155
156def mapContribPath(path):
157        m = re.match('(.*)(' + PREFIX + '/)(contrib/\\w+/)(.*)', path)
158        if m:
159                path = m.group(1) + m.group(3) + m.group(2) + m.group(4)
160        return path
161
162# Move target dependent files under a machine directory
163def mapCPUDependentPath(path):
164        return path.replace("include/", "include/freebsd/machine/")
165
166# compare and process file only if different
167#  + copy or diff depending on execution mode
168def processIfDifferent(new, old, src):
169  global filesProcessed
170  global isVerbose, isDryRun, isEarlyExit
171  if not os.path.exists(old) or \
172     filecmp.cmp(new, old, shallow=False) == False:
173    filesProcessed += 1
174    if isDiffMode == False:
175      if isVerbose == True:
176        print "Move " + src + " to " + old
177      if isDryRun == False:
178        shutil.move(new, old)
179    else:
180      #print "Diff " + src
181      old_contents = open(old).readlines()
182      new_contents = open(new).readlines()
183      for line in difflib.unified_diff( \
184          old_contents, new_contents, fromfile=src, tofile=new, n=5):
185        sys.stdout.write(line)
186
187# fix include paths inside a C or .h file
188def fixIncludes(data):
189        data = re.sub('#([ \t]*)include <', '#\\1include <' + PREFIX + '/', data)
190        data = re.sub('#include <' + PREFIX + '/rtems', '#include <rtems', data)
191        data = re.sub('#include <' + PREFIX + '/bsp', '#include <bsp', data)
192        data = re.sub('#include "([^"]*)"', '#include <' + PREFIX + '/local/\\1>', data)
193        data = re.sub('_H_', '_HH_', data)
194        return data
195
196# revert fixing the include paths inside a C or .h file
197def revertFixIncludes(data):
198        data = re.sub('_HH_', '_H_', data)
199        data = re.sub('#include <' + PREFIX + '/local/([^>]*)>', '#include "\\1"', data)
200        data = re.sub('#([ \t]*)include <' + PREFIX + '/', '#\\1include <', data)
201        return data
202
203class Converter(object):
204        def convert(self, src):
205                return open(src).read()
206
207        def isConvertible(self):
208                return True
209
210class NoConverter(Converter):
211        def convert(self, src):
212                raise
213
214        def isConvertible(self):
215                return False
216
217class EmptyConverter(Converter):
218        def convert(self, src):
219                return '/* EMPTY */\n'
220
221class FromFreeBSDToRTEMSHeaderConverter(Converter):
222        def convert(self, src):
223                data = super(FromFreeBSDToRTEMSHeaderConverter, self).convert(src)
224                return fixIncludes(data)
225
226class FromRTEMSToFreeBSDHeaderConverter(Converter):
227        def convert(self, src):
228                data = super(FromRTEMSToFreeBSDHeaderConverter, self).convert(src)
229                return revertFixIncludes(data)
230
231class FromFreeBSDToRTEMSSourceConverter(Converter):
232        def convert(self, src):
233                data = super(FromFreeBSDToRTEMSSourceConverter, self).convert(src)
234                data = fixIncludes(data)
235                data = '#include <' + PREFIX + '/machine/rtems-bsd-config.h>\n\n' + data
236                return data
237
238class FromRTEMSToFreeBSDSourceConverter(Converter):
239        def convert(self, src):
240                data = super(FromRTEMSToFreeBSDSourceConverter, self).convert(src)
241                data = re.sub('#include <' + PREFIX + '/machine/rtems-bsd-config.h>\n\n', '', data)
242                data = revertFixIncludes(data)
243                return data
244
245class PathComposer(object):
246        def composeFreeBSDPath(self, path):
247                return FreeBSD_DIR + '/' + path
248
249        def composeRTEMSPath(self, path, prefix):
250                path = prefix + PREFIX + '/' + path
251                path = mapContribPath(path)
252                return path
253
254class RTEMSPathComposer(object):
255        def composeFreeBSDPath(self, path):
256                return path
257
258        def composeRTEMSPath(self, path, prefix):
259                path = prefix + 'rtemsbsd/' + path
260                return path
261
262class CPUDependentPathComposer(PathComposer):
263        def composeRTEMSPath(self, path, prefix):
264                path = super(CPUDependentPathComposer, self).composeRTEMSPath(path, prefix)
265                path = mapCPUDependentPath(path)
266                return path
267
268class File(object):
269        def __init__(self, path, pathComposer, fromFreeBSDToRTEMSConverter, fromRTEMSToFreeBSDConverter):
270                self.path = path
271                self.pathComposer = pathComposer
272                self.fromFreeBSDToRTEMSConverter = fromFreeBSDToRTEMSConverter
273                self.fromRTEMSToFreeBSDConverter = fromRTEMSToFreeBSDConverter
274
275        def copy(self, dst, src, converter):
276                if converter.isConvertible():
277                        global tempFile
278                        try:
279                                if isDryRun == False:
280                                        os.makedirs(os.path.dirname(dst))
281                        except OSError:
282                                pass
283                        data = converter.convert(src)
284                        out = open(tempFile, 'w')
285                        out.write(data)
286                        out.close()
287                        processIfDifferent(tempFile, dst, src)
288
289        def copyFromFreeBSDToRTEMS(self):
290                src = self.pathComposer.composeFreeBSDPath(self.path)
291                dst = self.pathComposer.composeRTEMSPath(self.path, RTEMS_DIR + '/')
292                self.copy(dst, src, self.fromFreeBSDToRTEMSConverter)
293
294        def copyFromRTEMSToFreeBSD(self):
295                src = self.pathComposer.composeRTEMSPath(self.path, RTEMS_DIR + '/')
296                dst = self.pathComposer.composeFreeBSDPath(self.path)
297                self.copy(dst, src, self.fromRTEMSToFreeBSDConverter)
298
299        def getMakefileFragment(self):
300                return self.pathComposer.composeRTEMSPath(self.path, '')
301
302# Remove the output directory
303def deleteOutputDirectory():
304        try:
305                if isVerbose == True:
306                        print "Delete Directory - " + RTEMS_DIR + "/freebsd"
307                if isVerbose == True:
308                        print "Delete Directory - " + RTEMS_DIR + "/contrib"
309                if isDryRun == True:
310                        return
311                shutil.rmtree(RTEMS_DIR + "/freebsd" )
312                shutil.rmtree(RTEMS_DIR + "/contrib" )
313        except OSError:
314            pass
315
316# Module Manager - Collection of Modules
317class ModuleManager:
318        def __init__(self):
319                self.modules = []
320
321        def addModule(self, module):
322                self.modules.append(module)
323
324        def copyFromFreeBSDToRTEMS(self):
325                for m in self.modules:
326                        m.copyFromFreeBSDToRTEMS()
327
328        def copyFromRTEMSToFreeBSD(self):
329                for m in self.modules:
330                        m.copyFromRTEMSToFreeBSD()
331
332        def createMakefile(self):
333                global tempFile
334                data = 'include config.inc\n' \
335                        '\n' \
336                        'include $(RTEMS_MAKEFILE_PATH)/Makefile.inc\n' \
337                        'include $(RTEMS_CUSTOM)\n' \
338                        'include $(PROJECT_ROOT)/make/leaf.cfg\n' \
339                        '\n' \
340                        'CFLAGS += -ffreestanding \n' \
341                        'CFLAGS += -I . \n' \
342                        'CFLAGS += -I rtemsbsd \n' \
343                        'CFLAGS += -I rtemsbsd/$(RTEMS_CPU)/include \n' \
344                        'CFLAGS += -I freebsd/$(RTEMS_CPU)/include \n' \
345                        'CFLAGS += -I contrib/altq \n' \
346                        'CFLAGS += -I contrib/pf \n' \
347                        'CFLAGS += -B $(INSTALL_BASE) \n' \
348                        'CFLAGS += -w \n' \
349                        'CFLAGS += -std=gnu99\n' \
350                        'CFLAGS += -MT $@ -MD -MP -MF $(basename $@).d\n' \
351                        '\n'
352                data += 'C_FILES =\n'
353                for m in self.modules:
354                        for file in m.sourceFiles:
355                                data += 'C_FILES += ' + file.getMakefileFragment() + '\n'
356                        for cpu, files in sorted(m.cpuDependentSourceFiles.items()):
357                                data += 'ifeq ($(RTEMS_CPU), ' + cpu + ')\n'
358                                for file in files:
359                                        data += 'C_FILES += ' + file.getMakefileFragment() + '\n'
360                                data += 'endif\n'
361                data += '\n' \
362                        'C_O_FILES = $(C_FILES:%.c=%.o)\n' \
363                        'C_D_FILES = $(C_FILES:%.c=%.d)\n' \
364                        '\n' \
365                        'LIB = libbsd.a\n' \
366                        '\n' \
367                        'all: lib_usb\n' \
368                        '\n' \
369                        '$(LIB): $(C_O_FILES)\n' \
370                        '\t$(AR) rcu $@ $^\n' \
371                        '\n' \
372                        'lib_usb:\n' \
373                        '\t$(MAKE) $(LIB)\n' \
374                        '\n' \
375                        'install: $(LIB)\n' \
376                        '\tinstall -d $(INSTALL_BASE)/include\n' \
377                        '\tinstall -c -m 644 $(LIB) $(INSTALL_BASE)\n' \
378                        '\tcd rtemsbsd; for i in `find . -name \'*.h\'` ; do \\\n' \
379                        '\t  install -c -m 644 -D "$$i" "$(INSTALL_BASE)/include/$$i" ; done\n' \
380                        '\tfor i in `find contrib freebsd -name \'*.h\'` ; do \\\n' \
381                        '\t  install -c -m 644 -D "$$i" "$(INSTALL_BASE)/include/$$i" ; done\n' \
382                        '\n' \
383                        'clean:\n' \
384                        '\trm -f -r $(PROJECT_INCLUDE)/rtems/freebsd\n' \
385                        '\trm -f $(LIB) $(C_O_FILES) $(C_D_FILES)\n' \
386                        '\trm -f libbsd.html\n' \
387                        '\n' \
388                        '-include $(C_D_FILES)\n' \
389                        '\n' \
390                        'doc: libbsd.html\n' \
391                        '\n' \
392                        'libbsd.html: libbsd.txt\n' \
393                        '\tasciidoc -o libbsd.html libbsd.txt\n'
394 
395                out = open(tempFile, 'w')
396                out.write(data)
397                out.close()
398                makefile = RTEMS_DIR + '/Makefile'
399                processIfDifferent(tempFile, makefile, "Makefile")
400
401def assertHeaderFile(path):
402        if path[-2] != '.' or path[-1] != 'h':
403                print "*** " + path + " does not end in .h"
404                print "*** Move it to a C source file list"
405                sys.exit(2)
406
407def assertSourceFile(path):
408        if path[-2] != '.' or (path[-1] != 'c' and path[-1] != 'S'):
409                print "*** " + path + " does not end in .c"
410                print "*** Move it to a header file list"
411                sys.exit(2)
412
413# Module - logical group of related files we can perform actions on
414class Module:
415        def __init__(self, name):
416                self.name = name
417                self.headerFiles = []
418                self.sourceFiles = []
419                self.cpuDependentSourceFiles = {}
420                self.dependencies = []
421
422        def copyFromFreeBSDToRTEMS(self):
423                for file in self.headerFiles:
424                        file.copyFromFreeBSDToRTEMS()
425                for file in self.sourceFiles:
426                        file.copyFromFreeBSDToRTEMS()
427                for cpu, files in self.cpuDependentSourceFiles.items():
428                        for file in files:
429                                file.copyFromFreeBSDToRTEMS()
430
431        def copyFromRTEMSToFreeBSD(self):
432                for file in self.headerFiles:
433                        file.copyFromRTEMSToFreeBSD()
434                for file in self.sourceFiles:
435                        file.copyFromRTEMSToFreeBSD()
436                for cpu, files in self.cpuDependentSourceFiles.items():
437                        for file in files:
438                                file.copyFromRTEMSToFreeBSD()
439
440        def addFiles(self, currentFiles, newFiles, pathComposer, fromFreeBSDToRTEMSConverter, fromRTEMSToFreeBSDConverter, assertFile):
441                for file in newFiles:
442                        assertFile(file)
443                        currentFiles.append(File(file, pathComposer, fromFreeBSDToRTEMSConverter, fromRTEMSToFreeBSDConverter))
444                return currentFiles
445
446        def addHeaderFiles(self, files):
447                self.headerFiles = self.addFiles(self.headerFiles, files, PathComposer(), FromFreeBSDToRTEMSHeaderConverter(), FromRTEMSToFreeBSDHeaderConverter(), assertHeaderFile)
448
449        def addEmptyHeaderFiles(self, files):
450                self.headerFiles = self.addFiles(self.headerFiles, files, PathComposer(), EmptyConverter(), NoConverter(), assertHeaderFile)
451
452        def addRTEMSHeaderFiles(self, files):
453                self.headerFiles = self.addFiles(self.headerFiles, files, RTEMSPathComposer(), NoConverter(), NoConverter(), assertHeaderFile)
454
455        def addCPUDependentHeaderFiles(self, files):
456                self.headerFiles = self.addFiles(self.headerFiles, files, CPUDependentPathComposer(), FromFreeBSDToRTEMSHeaderConverter(), FromRTEMSToFreeBSDHeaderConverter(), assertHeaderFile)
457
458        def addSourceFiles(self, files):
459                self.sourceFiles = self.addFiles(self.sourceFiles, files, PathComposer(), FromFreeBSDToRTEMSSourceConverter(), FromRTEMSToFreeBSDSourceConverter(), assertSourceFile)
460
461        def addRTEMSSourceFiles(self, files):
462                self.sourceFiles = self.addFiles(self.sourceFiles, files, RTEMSPathComposer(), NoConverter(), NoConverter(), assertSourceFile)
463
464        def addCPUDependentSourceFiles(self, cpu, files):
465                if not self.cpuDependentSourceFiles.has_key(cpu):
466                        self.cpuDependentSourceFiles [cpu] = []
467                self.cpuDependentSourceFiles [cpu] = self.addFiles(self.cpuDependentSourceFiles [cpu], files, CPUDependentPathComposer(), FromFreeBSDToRTEMSSourceConverter(), FromRTEMSToFreeBSDSourceConverter(), assertSourceFile)
468
469        def addDependency(self, dep):
470                self.dependencies.append(dep)
471
472# Create Module Manager and supporting Modules
473#  - initialize each module with set of files associated
474mm = ModuleManager()
475
476rtems = Module('rtems')
477rtems.addRTEMSHeaderFiles(
478        [
479                'rtems/machine/atomic.h',
480                'rtems/machine/_bus.h',
481                'rtems/machine/bus.h',
482                'rtems/machine/bus_dma.h',
483                'rtems/machine/rtems-bsd-config.h',
484                'rtems/machine/clock.h',
485                'rtems/machine/endian.h',
486                'rtems/macpue/_limits.h',
487                'rtems/machine/_align.h',
488                'rtems/machine/mutex.h',
489                'rtems/machine/param.h',
490                'rtems/machine/pcpu.h',
491                'rtems/machine/pmap.h',
492                'rtems/machine/proc.h',
493                'rtems/machine/resource.h',
494                'rtems/machine/runq.h',
495                'rtems/machine/signal.h',
496                'rtems/machine/stdarg.h',
497                'rtems/machine/_stdint.h',
498                'rtems/machine/_types.h',
499                'rtems/machine/ucontext.h',
500                'rtems/machine/cpu.h',
501                'rtems/machine/rtems-bsd-symbols.h',
502                'rtems/machine/rtems-bsd-cache.h',
503                'rtems/machine/rtems-bsd-sysinit.h',
504                'rtems/machine/rtems-bsd-select.h',
505                'rtems/machine/rtems-bsd-taskqueue.h',
506                'rtems/machine/rtems-bsd-bus-dma.h',
507                'bsd.h',
508        ]
509)
510rtems.addRTEMSSourceFiles(
511        [
512                'dev/usb/controller/ohci_lpc24xx.c',
513                'dev/usb/controller/ohci_lpc32xx.c',
514                'dev/usb/controller/ehci_mpc83xx.c',
515                'src/rtems-bsd-thread0-ucred.c',
516                'src/rtems-bsd-cam.c',
517                'src/rtems-bsd-nexus.c',
518                'src/rtems-bsd-autoconf.c',
519                'src/rtems-bsd-delay.c',
520                'src/rtems-bsd-mutex.c',
521                'src/rtems-bsd-thread.c',
522                'src/rtems-bsd-condvar.c',
523                'src/rtems-bsd-lock.c',
524                'src/rtems-bsd-log.c',
525                'src/rtems-bsd-sx.c',
526                'src/rtems-bsd-rwlock.c',
527                'src/rtems-bsd-generic.c',
528                'src/rtems-bsd-panic.c',
529                'src/rtems-bsd-synch.c',
530                'src/rtems-bsd-signal.c',
531                'src/rtems-bsd-init.c',
532                'src/rtems-bsd-init-with-irq.c',
533                'src/rtems-bsd-assert.c',
534                'src/rtems-bsd-jail.c',
535                'src/rtems-bsd-shell.c',
536                'src/rtems-bsd-syscalls.c',
537                'src/rtems-bsd-smp.c',
538                #'src/rtems-bsd-socket.c',
539                #'src/rtems-bsd-mbuf.c',
540                'src/rtems-bsd-malloc.c',
541                'src/rtems-bsd-support.c',
542                'src/rtems-bsd-bus-dma.c',
543                'src/rtems-bsd-bus-dma-mbuf.c',
544                'src/rtems-bsd-sysctl.c',
545                'src/rtems-bsd-sysctlbyname.c',
546                'src/rtems-bsd-sysctlnametomib.c',
547                'src/rtems-bsd-taskqueue.c',
548                'src/rtems-bsd-timesupport.c',
549                'src/rtems-bsd-newproc.c',
550                'src/rtems-bsd-vm_glue.c',
551                'src/rtems-bsd-copyinout.c',
552                'src/rtems-bsd-descrip.c',
553                'src/rtems-bsd-conf.c',
554                'src/rtems-bsd-subr_param.c',
555                'src/rtems-bsd-pci_cfgreg.c',
556                'src/rtems-bsd-pci_bus.c',
557        ]
558)
559rtems.addEmptyHeaderFiles(
560        [
561                'cam/cam_queue.h',
562                'ddb/db_sym.h',
563                'ddb/ddb.h',
564                'machine/elf.h',
565                'machine/sf_buf.h',
566                'machine/smp.h',
567                'machine/vm.h',
568                #'machine/vmparam.h',
569                'local/linker_if.h',
570                'local/opt_bce.h',
571                'local/opt_ntp.h',
572                'security/audit/audit.h',
573                'sys/bio.h',
574                'sys/copyright.h',
575                'sys/cpuset.h',
576                'sys/exec.h',
577                'sys/fail.h',
578                'sys/limits.h',
579                'sys/sleepqueue.h',
580                'sys/namei.h',
581                'sys/_pthreadtypes.h',
582                #'sys/resourcevar.h',
583                'sys/sched.h',
584                'sys/select.h',
585                'sys/syscallsubr.h',
586                'sys/sysent.h',
587                'sys/syslimits.h',
588                'sys/sysproto.h',
589                'sys/stat.h',
590                #'sys/time.h',
591                'time.h',
592                'sys/timespec.h',
593                'sys/_timeval.h',
594                #'sys/vmmeter.h',
595                #'sys/vnode.h',
596                'vm/pmap.h',
597                #'vm/uma_int.h',
598                #'vm/uma_dbg.h',
599                #'vm/vm_extern.h',
600                'vm/vm_map.h',
601                #'vm/vm_object.h',
602                #'vm/vm_page.h',
603                'vm/vm_param.h',
604                #'vm/vm_kern.h',
605                'geom/geom_disk.h',
606                #'sys/kdb.h',
607                #'libkern/jenkins.h',
608                'machine/pcb.h',
609                #'net80211/ieee80211_freebsd.h',
610                'netgraph/ng_ipfw.h',
611                #'sys/sf_buf.h',
612        ]
613)
614
615local = Module('local')
616# RTEMS has its own local/pmap.h
617local.addHeaderFiles(
618        [
619                'local/bus_if.h',
620                'local/device_if.h',
621                'local/opt_bus.h',
622                'local/opt_cam.h',
623                'local/opt_compat.h',
624                'local/opt_ddb.h',
625                'local/opt_hwpmc_hooks.h',
626                'local/opt_init_path.h',
627                'local/opt_ktrace.h',
628                'local/opt_printf.h',
629                'local/opt_scsi.h',
630                'local/opt_usb.h',
631                'local/opt_inet.h',
632                'local/opt_inet6.h',
633                'local/opt_altq.h',
634                'local/opt_atalk.h',
635                'local/opt_bootp.h',
636                'local/opt_bpf.h',
637                'local/opt_bus.h',
638                'local/opt_cam.h',
639                'local/opt_carp.h',
640                'local/opt_compat.h',
641                'local/opt_config.h',
642                'local/opt_cpu.h',
643                'local/opt_ddb.h',
644                'local/opt_device_polling.h',
645                'local/opt_ef.h',
646                'local/opt_enc.h',
647                'local/opt_hwpmc_hooks.h',
648                'local/opt_inet6.h',
649                'local/opt_inet.h',
650                'local/opt_init_path.h',
651                'local/opt_ipdivert.h',
652                'local/opt_ipdn.h',
653                'local/opt_ipfw.h',
654                'local/opt_ipsec.h',
655                'local/opt_ipstealth.h',
656                'local/opt_ipx.h',
657                'local/opt_kdb.h',
658                'local/opt_kdtrace.h',
659                'local/opt_ktrace.h',
660                'local/opt_mbuf_profiling.h',
661                'local/opt_mbuf_stress_test.h',
662                'local/opt_mpath.h',
663                'local/opt_mrouting.h',
664                'local/opt_natm.h',
665                'local/opt_netgraph.h',
666                'local/opt_param.h',
667                'local/opt_posix.h',
668                'local/opt_pf.h',
669                'local/opt_printf.h',
670                'local/opt_route.h',
671                'local/opt_scsi.h',
672                'local/opt_sctp.h',
673                'local/opt_tcpdebug.h',
674                'local/opt_tdma.h',
675                'local/opt_usb.h',
676                'local/opt_vlan.h',
677                'local/opt_wlan.h',
678                'local/opt_zero.h',
679                'local/usbdevs_data.h',
680                'local/usbdevs.h',
681                'local/usb_if.h',
682                'local/vnode_if.h',
683                'local/vnode_if_newproto.h',
684                'local/vnode_if_typedef.h',
685                'local/cryptodev_if.h',
686                'local/miibus_if.h',
687                'local/miidevs.h',
688                'local/pci_if.h',
689                'local/pcib_if.h',
690        ]
691)
692local.addSourceFiles(
693        [
694                'local/usb_if.c',
695                'local/bus_if.c',
696                'local/device_if.c',
697                'local/cryptodev_if.c',
698                'local/miibus_if.c',
699                'local/pci_if.c',
700                'local/pcib_if.c',
701        ]
702)
703
704devUsb = Module('dev_usb')
705devUsb.addHeaderFiles(
706        [
707                'dev/usb/ufm_ioctl.h',
708                'dev/usb/usb_busdma.h',
709                'dev/usb/usb_bus.h',
710                'dev/usb/usb_cdc.h',
711                'dev/usb/usb_controller.h',
712                'dev/usb/usb_core.h',
713                'dev/usb/usb_debug.h',
714                'dev/usb/usb_dev.h',
715                'dev/usb/usb_device.h',
716                'dev/usb/usbdi.h',
717                'dev/usb/usbdi_util.h',
718                'dev/usb/usb_dynamic.h',
719                'dev/usb/usb_endian.h',
720                'dev/usb/usb_freebsd.h',
721                'dev/usb/usb_generic.h',
722                'dev/usb/usb.h',
723                'dev/usb/usbhid.h',
724                'dev/usb/usb_hub.h',
725                'dev/usb/usb_ioctl.h',
726                'dev/usb/usb_mbuf.h',
727                'dev/usb/usb_msctest.h',
728                'dev/usb/usb_process.h',
729                'dev/usb/usb_request.h',
730                'dev/usb/usb_transfer.h',
731                'dev/usb/usb_util.h',
732        ]
733)
734devUsb.addSourceFiles(
735        [
736                'dev/usb/usb_busdma.c',
737                'dev/usb/usb_core.c',
738                'dev/usb/usb_debug.c',
739                'dev/usb/usb_dev.c',
740                'dev/usb/usb_device.c',
741                'dev/usb/usb_dynamic.c',
742                'dev/usb/usb_error.c',
743                'dev/usb/usb_generic.c',
744                'dev/usb/usb_handle_request.c',
745                'dev/usb/usb_hid.c',
746                'dev/usb/usb_hub.c',
747                'dev/usb/usb_lookup.c',
748                'dev/usb/usb_mbuf.c',
749                'dev/usb/usb_msctest.c',
750                'dev/usb/usb_parse.c',
751                'dev/usb/usb_process.c',
752                'dev/usb/usb_request.c',
753                'dev/usb/usb_transfer.c',
754                'dev/usb/usb_util.c',
755        ]
756)
757
758devUsbAddOn = Module('dev_usb_add_on')
759devUsbAddOn.addHeaderFiles(
760        [
761                'dev/usb/usb_pci.h',
762                'dev/usb/usb_compat_linux.h',
763        ]
764)
765devUsbAddOn.addSourceFiles(
766        [
767                'dev/usb/usb_compat_linux.c',
768        ]
769)
770
771devUsbBluetooth = Module('dev_usb_bluetooth')
772devUsbBluetooth.addDependency(devUsb)
773devUsbBluetooth.addHeaderFiles(
774        [
775                'dev/usb/bluetooth/ng_ubt_var.h',
776        ]
777)
778devUsbBluetooth.addSourceFiles(
779        [
780                'dev/usb/bluetooth/ng_ubt.c',
781                'dev/usb/bluetooth/ubtbcmfw.c',
782        ]
783)
784
785devUsbController = Module('dev_usb_controller')
786devUsbController.addDependency(devUsb)
787devUsbController.addHeaderFiles(
788        [
789                'dev/usb/controller/ohci.h',
790                'dev/usb/controller/ohcireg.h',
791                'dev/usb/controller/ehci.h',
792                'dev/usb/controller/ehcireg.h',
793        ]
794)
795devUsbController.addSourceFiles(
796        [
797                'dev/usb/controller/ohci.c',
798                'dev/usb/controller/ehci.c',
799                'dev/usb/controller/usb_controller.c',
800        ]
801)
802
803devUsbControllerAddOn = Module('dev_usb_controller_add_on')
804devUsbControllerAddOn.addDependency(devUsb)
805devUsbControllerAddOn.addHeaderFiles(
806        [
807                'dev/usb/controller/at91dci.h',
808                'dev/usb/controller/atmegadci.h',
809                'dev/usb/controller/musb_otg.h',
810                'dev/usb/controller/uss820dci.h',
811        ]
812)
813devUsbControllerAddOn.addSourceFiles(
814        [
815                'dev/usb/controller/at91dci_atmelarm.c',
816                'dev/usb/controller/at91dci.c',
817                'dev/usb/controller/atmegadci_atmelarm.c',
818                'dev/usb/controller/atmegadci.c',
819                'dev/usb/controller/ehci_ixp4xx.c',
820                'dev/usb/controller/ehci_pci.c',
821                'dev/usb/controller/musb_otg.c',
822                'dev/usb/controller/ehci_mbus.c',
823                'dev/usb/controller/musb_otg_atmelarm.c',
824                'dev/usb/controller/ohci_atmelarm.c',
825                'dev/usb/controller/ohci_pci.c',
826                'dev/usb/controller/uhci_pci.c',
827                'dev/usb/controller/uss820dci_atmelarm.c',
828                'dev/usb/controller/uss820dci.c',
829        ]
830)
831
832devUsbInput = Module('dev_usb_input')
833devUsbInput.addDependency(devUsb)
834devUsbInput.addHeaderFiles(
835        [
836                'dev/usb/input/usb_rdesc.h',
837        ]
838)
839devUsbInput.addSourceFiles(
840        [
841                'dev/usb/input/uhid.c',
842                'dev/usb/input/ukbd.c',
843        ]
844)
845
846devUsbInputMouse = Module('dev_usb_mouse')
847devUsbInputMouse.addDependency(devUsb)
848devUsbInputMouse.addHeaderFiles(
849        [
850                'sys/tty.h',
851                'sys/mouse.h',
852                'sys/ttyqueue.h',
853                'sys/ttydefaults.h',
854                'sys/ttydisc.h',
855                'sys/ttydevsw.h',
856                'sys/ttyhook.h',
857        ]
858)
859devUsbInputMouse.addSourceFiles(
860        [
861                'dev/usb/input/ums.c',
862        ]
863)
864
865devUsbMisc = Module('dev_usb_misc')
866devUsbMisc.addDependency(devUsb)
867devUsbMisc.addHeaderFiles(
868        [
869                'dev/usb/misc/udbp.h',
870        ]
871)
872devUsbMisc.addSourceFiles(
873        [
874                'dev/usb/misc/udbp.c',
875                'dev/usb/misc/ufm.c',
876        ]
877)
878
879devUsbNet = Module('dev_usb_net')
880devUsbNet.addDependency(devUsb)
881devUsbNet.addHeaderFiles(
882        [
883                'dev/mii/mii.h',
884                'dev/mii/miivar.h',
885                'net/bpf.h',
886                'net/ethernet.h',
887                'net/if_arp.h',
888                'net/if_dl.h',
889                'net/if.h',
890                'net/if_media.h',
891                'net/if_types.h',
892                'net/if_var.h',
893                'net/vnet.h',
894                'dev/usb/net/if_cdcereg.h',
895                'dev/usb/net/usb_ethernet.h',
896        ]
897)
898devUsbNet.addSourceFiles(
899        [
900                'dev/usb/net/if_cdce.c',
901                'dev/usb/net/usb_ethernet.c',
902        ]
903)
904
905devUsbQuirk = Module('dev_usb_quirk')
906devUsbQuirk.addDependency(devUsb)
907devUsbQuirk.addHeaderFiles(
908        [
909                'dev/usb/quirk/usb_quirk.h',
910        ]
911)
912devUsbQuirk.addSourceFiles(
913        [
914                'dev/usb/quirk/usb_quirk.c',
915        ]
916)
917
918devUsbSerial = Module('dev_usb_serial')
919devUsbSerial.addDependency(devUsb)
920devUsbSerial.addHeaderFiles(
921        [
922                'dev/usb/serial/uftdi_reg.h',
923                'dev/usb/serial/usb_serial.h',
924        ]
925)
926devUsbSerial.addSourceFiles(
927        [
928                'dev/usb/serial/u3g.c',
929                'dev/usb/serial/uark.c',
930                'dev/usb/serial/ubsa.c',
931                'dev/usb/serial/ubser.c',
932                'dev/usb/serial/uchcom.c',
933                'dev/usb/serial/ucycom.c',
934                'dev/usb/serial/ufoma.c',
935                'dev/usb/serial/uftdi.c',
936                'dev/usb/serial/ugensa.c',
937                'dev/usb/serial/uipaq.c',
938                'dev/usb/serial/ulpt.c',
939                'dev/usb/serial/umct.c',
940                'dev/usb/serial/umodem.c',
941                'dev/usb/serial/umoscom.c',
942                'dev/usb/serial/uplcom.c',
943                'dev/usb/serial/usb_serial.c',
944                'dev/usb/serial/uslcom.c',
945                'dev/usb/serial/uvisor.c',
946                'dev/usb/serial/uvscom.c',
947        ]
948)
949
950devUsbStorage = Module('dev_usb_storage')
951devUsbStorage.addDependency(devUsb)
952devUsbStorage.addSourceFiles(
953        [
954                'dev/usb/storage/umass.c',
955        ]
956)
957
958devUsbStorageAddOn = Module('dev_usb_storage_add_on')
959devUsbStorageAddOn.addDependency(devUsb)
960devUsbStorageAddOn.addHeaderFiles(
961        [
962                'dev/usb/storage/rio500_usb.h',
963        ]
964)
965devUsbStorageAddOn.addSourceFiles(
966        [
967                'dev/usb/storage/urio.c',
968                'dev/usb/storage/ustorage_fs.c',
969        ]
970)
971
972devUsbTemplate = Module('dev_usb_template')
973devUsbTemplate.addDependency(devUsb)
974devUsbTemplate.addHeaderFiles(
975        [
976                'dev/usb/template/usb_template.h',
977        ]
978)
979devUsbTemplate.addSourceFiles(
980        [
981                'dev/usb/template/usb_template.c',
982                'dev/usb/template/usb_template_cdce.c',
983                'dev/usb/template/usb_template_msc.c',
984                'dev/usb/template/usb_template_mtp.c',
985        ]
986)
987
988devUsbWlan = Module('dev_usb_wlan')
989devUsbWlan.addDependency(devUsb)
990devUsbWlan.addHeaderFiles(
991        [
992                'dev/usb/wlan/if_rumfw.h',
993                'dev/usb/wlan/if_rumreg.h',
994                'dev/usb/wlan/if_rumvar.h',
995                'dev/usb/wlan/if_uathreg.h',
996                'dev/usb/wlan/if_uathvar.h',
997                'dev/usb/wlan/if_upgtvar.h',
998                'dev/usb/wlan/if_uralreg.h',
999                'dev/usb/wlan/if_uralvar.h',
1000                'dev/usb/wlan/if_zydfw.h',
1001                'dev/usb/wlan/if_zydreg.h',
1002        ]
1003)
1004devUsbWlan.addSourceFiles(
1005        [
1006                'dev/usb/wlan/if_rum.c',
1007                'dev/usb/wlan/if_uath.c',
1008                'dev/usb/wlan/if_upgt.c',
1009                'dev/usb/wlan/if_ural.c',
1010                'dev/usb/wlan/if_zyd.c',
1011        ]
1012)
1013
1014devPci = Module('dev_pci')
1015devPci.addHeaderFiles(
1016        [
1017                'dev/pci/pcireg.h',
1018                'dev/pci/pcivar.h',
1019        ]
1020)
1021
1022devUsbBase = Module('dev_usb_base')
1023devUsbBase.addHeaderFiles(
1024        [
1025                'bsm/audit.h',
1026                'bsm/audit_kevents.h',
1027                'sys/acl.h',
1028                'sys/bufobj.h',
1029                'sys/_bus_dma.h',
1030                'sys/bus_dma.h',
1031                'sys/bus.h',
1032                'sys/callout.h',
1033                'sys/cdefs.h',
1034                'sys/condvar.h',
1035                'sys/conf.h',
1036                #'sys/cpuset.h',
1037                'sys/ctype.h',
1038                'sys/endian.h',
1039                'sys/errno.h',
1040                'sys/event.h',
1041                'sys/eventhandler.h',
1042                'sys/fcntl.h',
1043                'sys/filedesc.h',
1044                'sys/file.h',
1045                'sys/filio.h',
1046                'sys/ioccom.h',
1047                'sys/_iovec.h',
1048                'sys/kernel.h',
1049                'sys/kobj.h',
1050                'sys/kthread.h',
1051                'sys/ktr.h',
1052                'sys/libkern.h',
1053                'sys/linker_set.h',
1054                'sys/_lock.h',
1055                'sys/lock.h',
1056                'sys/_lockmgr.h',
1057                'sys/lockmgr.h',
1058                'sys/lock_profile.h',
1059                'sys/lockstat.h',
1060                'sys/mac.h',
1061                'sys/malloc.h',
1062                'sys/mbuf.h',
1063                'sys/module.h',
1064                'sys/mount.h',
1065                'sys/_mutex.h',
1066                'sys/mutex.h',
1067                'sys/_null.h',
1068                'sys/osd.h',
1069                'sys/param.h',
1070                'sys/pcpu.h',
1071                'sys/poll.h',
1072                'sys/priority.h',
1073                'sys/priv.h',
1074                'sys/proc.h',
1075                'sys/queue.h',
1076                'sys/refcount.h',
1077                'sys/resource.h',
1078                'sys/resourcevar.h',
1079                'sys/rtprio.h',
1080                'sys/runq.h',
1081                'sys/_rwlock.h',
1082                'sys/rwlock.h',
1083                'sys/_semaphore.h',
1084                'sys/selinfo.h',
1085                'sys/sigio.h',
1086                'sys/signal.h',
1087                'sys/signalvar.h',
1088                'sys/_sigset.h',
1089                #'sys/sleepqueue.h',
1090                'sys/socket.h',
1091                'sys/stddef.h',
1092                'sys/stdint.h',
1093                'sys/_sx.h',
1094                'sys/sx.h',
1095                'sys/sysctl.h',
1096                'sys/systm.h',
1097                'sys/ttycom.h',
1098                'sys/_types.h',
1099                'sys/types.h',
1100                'sys/ucontext.h',
1101                'sys/ucred.h',
1102                'sys/uio.h',
1103                'sys/aio.h',
1104                'sys/unistd.h',
1105                'sys/vmmeter.h',
1106                #'sys/vnode.h',
1107                'sys/rman.h',
1108                'sys/reboot.h',
1109                'sys/bitstring.h',
1110                'sys/linker.h',
1111                'vm/uma.h',
1112                'vm/uma_int.h',
1113                'vm/uma_dbg.h',
1114                'vm/vm.h',
1115                #'vm/vm_page.h',
1116                'fs/devfs/devfs_int.h',
1117        ]
1118)
1119devUsbBase.addSourceFiles(
1120        [
1121                'kern/init_main.c',
1122                'kern/kern_linker.c',
1123                'kern/kern_mib.c',
1124                'kern/kern_timeout.c',
1125                'kern/kern_mbuf.c',
1126                'kern/kern_module.c',
1127                'kern/kern_sysctl.c',
1128                'kern/subr_bus.c',
1129                'kern/subr_kobj.c',
1130                #'kern/subr_sleepqueue.c',
1131                'kern/uipc_mbuf.c',
1132                'kern/uipc_mbuf2.c',
1133                'kern/uipc_socket.c',
1134                'kern/uipc_sockbuf.c',
1135                'kern/uipc_domain.c',
1136                #'kern/uipc_syscalls.c',
1137                'vm/uma_core.c',
1138        ]
1139)
1140
1141cam = Module('cam')
1142cam.addHeaderFiles(
1143        [
1144                'sys/ata.h',
1145                'cam/cam.h',
1146                'cam/cam_ccb.h',
1147                'cam/cam_sim.h',
1148                'cam/cam_xpt_sim.h',
1149                'cam/scsi/scsi_all.h',
1150                'cam/scsi/scsi_da.h',
1151                'cam/ata/ata_all.h',
1152                'cam/cam_periph.h',
1153                'cam/cam_debug.h',
1154                'cam/cam_xpt.h',
1155        ]
1156)
1157cam.addSourceFiles(
1158        [
1159                'cam/cam.c',
1160                'cam/scsi/scsi_all.c',
1161        ]
1162)
1163
1164devNet = Module('dev_net')
1165devNet.addHeaderFiles(
1166        [
1167                'dev/mii/mii.h',
1168                'dev/mii/miivar.h',
1169                'dev/mii/brgphyreg.h',
1170                'dev/mii/icsphyreg.h',
1171                'dev/led/led.h',
1172                'net/bpf.h',
1173                'net/ethernet.h',
1174                'net/if_arp.h',
1175                'net/if_dl.h',
1176                'net/if.h',
1177                'net/if_media.h',
1178                'net/if_types.h',
1179                'net/if_var.h',
1180                'net/vnet.h',
1181        ]
1182)
1183devNet.addSourceFiles(
1184        [
1185                'dev/mii/mii.c',
1186                'dev/mii/mii_physubr.c',
1187                'dev/mii/icsphy.c',
1188                'dev/mii/brgphy.c',
1189        ]
1190)
1191
1192devNic = Module('dev_nic')
1193devNic.addHeaderFiles(
1194        [
1195        #       'sys/taskqueue.h',
1196                'sys/pciio.h',
1197                'dev/random/randomdev_soft.h',
1198                'sys/eventvar.h',
1199                'sys/kenv.h',
1200                'dev/pci/pci_private.h',
1201                'dev/pci/pcib_private.h',
1202                'isa/isavar.h',
1203                'isa/pnpvar.h',
1204        ]
1205)
1206
1207devNic.addCPUDependentHeaderFiles(
1208        [
1209                'i386/include/specialreg.h',
1210                'i386/include/md_var.h',
1211                'i386/include/intr_machdep.h',
1212                'i386/include/legacyvar.h',
1213                'i386/include/pci_cfgreg.h',
1214                'i386/include/cpufunc.h',
1215        ]
1216)
1217devNic.addCPUDependentSourceFiles(
1218        'i386',
1219        [
1220                'i386/pci/pci_bus.c',
1221                'i386/i386/legacy.c',
1222        ]
1223)
1224devNic.addSourceFiles(
1225        [
1226        #       'kern/subr_taskqueue.c',
1227                'kern/subr_hints.c',
1228                'dev/random/harvest.c',
1229                'libkern/random.c',
1230                'libkern/arc4random.c',
1231                'kern/subr_pcpu.c',
1232                'kern/subr_sbuf.c',
1233                'kern/subr_rman.c',
1234                'kern/subr_module.c',
1235                'libkern/inet_ntoa.c',
1236                'kern/kern_prot.c',
1237                'kern/kern_proc.c',
1238                'kern/kern_time.c',
1239                'kern/kern_event.c',
1240                'netinet/tcp_hostcache.c',
1241                'dev/pci/pci.c',
1242                'dev/pci/pci_user.c',
1243                'kern/uipc_accf.c',
1244                'kern/kern_ntptime.c',
1245                'kern/kern_environment.c',
1246                'kern/kern_intr.c',
1247                'kern/kern_resource.c',
1248                'kern/subr_bufring.c',
1249                'dev/led/led.c',
1250                'kern/subr_unit.c',
1251                'dev/pci/pci_pci.c',
1252        ]
1253)
1254
1255devNic_re = Module('dev_nic_re')
1256devNic_re.addHeaderFiles(
1257        [
1258                'pci/if_rlreg.h',
1259        ]
1260)
1261devNic_re.addSourceFiles(
1262        [
1263                'dev/re/if_re.c',
1264        ]
1265)
1266
1267devNic_fxp = Module('dev_nic_fxp')
1268devNic_fxp.addHeaderFiles(
1269        [
1270                'dev/fxp/if_fxpreg.h',
1271                'dev/fxp/if_fxpvar.h',
1272                'dev/fxp/rcvbundl.h',
1273        ]
1274)
1275devNic_fxp.addSourceFiles(
1276        [
1277                'dev/fxp/if_fxp.c',
1278        ]
1279)
1280
1281devNic_e1000 = Module('dev_nic_e1000')
1282devNic_e1000.addHeaderFiles(
1283        [
1284                'dev/e1000/e1000_80003es2lan.h',
1285                'dev/e1000/e1000_82571.h',
1286                'dev/e1000/e1000_defines.h',
1287                'dev/e1000/e1000_mac.h',
1288                'dev/e1000/e1000_nvm.h',
1289                'dev/e1000/e1000_regs.h',
1290                'dev/e1000/if_igb.h',
1291                'dev/e1000/e1000_82541.h',
1292                'dev/e1000/e1000_82575.h',
1293                'dev/e1000/e1000_hw.h',
1294                'dev/e1000/e1000_manage.h',
1295                'dev/e1000/e1000_osdep.h',
1296                'dev/e1000/e1000_vf.h',
1297                'dev/e1000/if_lem.h',
1298                'dev/e1000/e1000_82543.h',
1299                'dev/e1000/e1000_api.h',
1300                'dev/e1000/e1000_ich8lan.h',
1301                'dev/e1000/e1000_mbx.h',
1302                'dev/e1000/e1000_phy.h',
1303                'dev/e1000/if_em.h',
1304        ]
1305)
1306devNic_e1000.addSourceFiles(
1307        [
1308                'dev/e1000/e1000_80003es2lan.c',
1309                'dev/e1000/e1000_82542.c',
1310                'dev/e1000/e1000_82575.c',
1311                'dev/e1000/e1000_mac.c',
1312                'dev/e1000/e1000_nvm.c',
1313                'dev/e1000/e1000_vf.c',
1314                'dev/e1000/if_lem.c',
1315                'dev/e1000/e1000_82540.c',
1316                'dev/e1000/e1000_82543.c',
1317                'dev/e1000/e1000_api.c',
1318                'dev/e1000/e1000_manage.c',
1319                'dev/e1000/e1000_osdep.c',
1320                'dev/e1000/if_em.c',
1321                'dev/e1000/e1000_82541.c',
1322                'dev/e1000/e1000_82571.c',
1323                'dev/e1000/e1000_ich8lan.c',
1324                'dev/e1000/e1000_mbx.c',
1325                'dev/e1000/e1000_phy.c',
1326                'dev/e1000/if_igb.c',
1327        ]
1328)
1329
1330# DEC Tulip aka Intel 21143
1331devNic_dc = Module('dev_nic_dc')
1332devNic_dc.addHeaderFiles(
1333        [
1334                'dev/dc/if_dcreg.h',
1335        ]
1336)
1337devNic_dc.addSourceFiles(
1338        [
1339                'dev/dc/dcphy.c',
1340                'dev/dc/if_dc.c',
1341                'dev/dc/pnphy.c',
1342        ]
1343)
1344
1345# SMC9111x
1346devNic_smc = Module('dev_nic_smc')
1347devNic_smc.addHeaderFiles(
1348        [
1349                'dev/smc/if_smcreg.h',
1350                'dev/smc/if_smcvar.h',
1351        ]
1352)
1353devNic_smc.addSourceFiles(
1354        [
1355                'dev/smc/if_smc.c',
1356        ]
1357)
1358
1359# Crystal Semiconductor CS8900
1360devNic_cs = Module('dev_nic_cs')
1361devNic_cs.addHeaderFiles(
1362        [
1363                'dev/cs/if_csreg.h',
1364                'dev/cs/if_csvar.h',
1365        ]
1366)
1367devNic_cs.addSourceFiles(
1368        [
1369                'dev/cs/if_cs.c',
1370                'dev/cs/if_cs_isa.c',
1371                'dev/cs/if_cs_pccard.c',
1372        ]
1373)
1374
1375# Broadcomm BCE, BFE, BGE - MII is intertwined
1376devNic_broadcomm = Module('dev_nic_broadcomm')
1377devNic_broadcomm.addHeaderFiles(
1378        [
1379                'dev/bce/if_bcefw.h',
1380                'dev/bce/if_bcereg.h',
1381                'dev/bfe/if_bfereg.h',
1382                'dev/bge/if_bgereg.h',
1383        ]
1384)
1385devNic_broadcomm.addSourceFiles(
1386        [
1387                'dev/bce/if_bce.c',
1388                'dev/bfe/if_bfe.c',
1389                'dev/bge/if_bge.c',
1390        ]
1391)
1392
1393netDeps = Module('netDeps')
1394netDeps.addHeaderFiles(
1395        [
1396                'security/mac/mac_framework.h',
1397                'sys/cpu.h',
1398                'sys/interrupt.h',
1399                'sys/fnv_hash.h',
1400                'sys/tree.h',
1401                'sys/buf_ring.h',
1402                'sys/rwlock.h',
1403                'sys/_rmlock.h',
1404                'sys/sockio.h',
1405                'sys/sdt.h',
1406                'sys/_task.h',
1407                'sys/sbuf.h',
1408                'sys/smp.h',
1409                'sys/syslog.h',
1410                'sys/jail.h',
1411                'sys/protosw.h',
1412                'sys/random.h',
1413                'sys/rmlock.h',
1414                'sys/hash.h',
1415                #'sys/select.h',
1416                'sys/sf_buf.h',
1417                'sys/socketvar.h',
1418                'sys/sockbuf.h',
1419                #'sys/sysproto.h',
1420                'sys/sockstate.h',
1421                'sys/sockopt.h',
1422                'sys/domain.h',
1423                'sys/time.h',
1424        ]
1425)
1426
1427net = Module('net')
1428net.addHeaderFiles(
1429        [
1430                'net/bpf_buffer.h',
1431                'net/bpfdesc.h',
1432                'net/bpf.h',
1433                'net/bpf_jitter.h',
1434                'net/bpf_zerocopy.h',
1435                'net/bridgestp.h',
1436                'net/ethernet.h',
1437                'net/fddi.h',
1438                'net/firewire.h',
1439                'net/flowtable.h',
1440                'net/ieee8023ad_lacp.h',
1441                'net/if_arc.h',
1442                'net/if_arp.h',
1443                'net/if_atm.h',
1444                'net/if_bridgevar.h',
1445                'net/if_clone.h',
1446                'net/if_dl.h',
1447                'net/if_enc.h',
1448                'net/if_gif.h',
1449                'net/if_gre.h',
1450                'net/if.h',
1451                'net/if_lagg.h',
1452                'net/if_llatbl.h',
1453                'net/if_llc.h',
1454                'net/if_media.h',
1455                'net/if_mib.h',
1456                'net/if_sppp.h',
1457                'net/if_stf.h',
1458                'net/if_tap.h',
1459                'net/if_tapvar.h',
1460                'net/if_tun.h',
1461                'net/if_types.h',
1462                'net/if_var.h',
1463                'net/if_vlan_var.h',
1464                'net/iso88025.h',
1465                'net/netisr.h',
1466                'net/pfil.h',
1467                'net/pfkeyv2.h',
1468                'net/ppp_defs.h',
1469                'net/radix.h',
1470                'net/radix_mpath.h',
1471                'net/raw_cb.h',
1472                'net/route.h',
1473                'net/slcompress.h',
1474                'net/vnet.h',
1475                'net/zlib.h',
1476                'sys/timepps.h',
1477                'sys/timetc.h',
1478                'sys/timex.h',
1479        ]
1480)
1481net.addSourceFiles(
1482        [
1483                'kern/subr_eventhandler.c',
1484                'kern/kern_subr.c',
1485                'kern/kern_tc.c',
1486                'libkern/fls.c',
1487                'net/bridgestp.c',
1488                'net/ieee8023ad_lacp.c',
1489                'net/if_atmsubr.c',
1490                'net/if.c',
1491                'net/if_clone.c',
1492                'net/if_dead.c',
1493                'net/if_disc.c',
1494                'net/if_edsc.c',
1495                'net/if_ef.c',
1496                'net/if_enc.c',
1497                'net/if_epair.c',
1498                'net/if_faith.c',
1499                'net/if_fddisubr.c',
1500                'net/if_fwsubr.c',
1501                'net/if_gif.c',
1502                'net/if_gre.c',
1503                'net/if_iso88025subr.c',
1504                'net/if_lagg.c',
1505                'net/if_llatbl.c',
1506                'net/if_loop.c',
1507                'net/if_media.c',
1508                'net/if_mib.c',
1509                'net/if_spppfr.c',
1510                'net/if_spppsubr.c',
1511                'net/if_stf.c',
1512                'net/if_tap.c',
1513                'net/if_tun.c',
1514                'net/if_vlan.c',
1515                'net/pfil.c',
1516                'net/radix.c',
1517                'net/radix_mpath.c',
1518                'net/raw_cb.c',
1519                'net/raw_usrreq.c',
1520                'net/route.c',
1521                'net/rtsock.c',
1522                'net/slcompress.c',
1523                'net/zlib.c',
1524                'net/bpf_buffer.c',
1525                'net/bpf.c',
1526                'net/bpf_filter.c',
1527                'net/bpf_jitter.c',
1528                'net/if_arcsubr.c',
1529                'net/if_bridge.c',
1530                'net/if_ethersubr.c',
1531                'net/netisr.c',
1532        ]
1533)
1534
1535netinet = Module('netinet')
1536netinet.addHeaderFiles(
1537        [
1538                'netinet/icmp6.h',
1539                'netinet/icmp_var.h',
1540                'netinet/if_atm.h',
1541                'netinet/if_ether.h',
1542                'netinet/igmp.h',
1543                'netinet/igmp_var.h',
1544                'netinet/in_gif.h',
1545                'netinet/in.h',
1546                'netinet/in_pcb.h',
1547                'netinet/in_systm.h',
1548                'netinet/in_var.h',
1549                'netinet/ip6.h',
1550                'netinet/ip_carp.h',
1551                'netinet/ip_divert.h',
1552                'netinet/ip_dummynet.h',
1553                'netinet/ip_ecn.h',
1554                'netinet/ip_encap.h',
1555                'netinet/ip_fw.h',
1556                'netinet/ip_gre.h',
1557                'netinet/ip.h',
1558                'netinet/ip_icmp.h',
1559                'netinet/ip_ipsec.h',
1560                'netinet/ip_mroute.h',
1561                'netinet/ip_options.h',
1562                'netinet/ip_var.h',
1563                'netinet/ipfw/ip_dn_private.h',
1564                'netinet/ipfw/ip_fw_private.h',
1565                'netinet/ipfw/dn_sched.h',
1566                'netinet/ipfw/dn_heap.h',
1567                'netinet/pim.h',
1568                'netinet/pim_var.h',
1569                'netinet/sctp_asconf.h',
1570                'netinet/sctp_auth.h',
1571                'netinet/sctp_bsd_addr.h',
1572                'netinet/sctp_cc_functions.h',
1573                'netinet/sctp_constants.h',
1574                'netinet/sctp_crc32.h',
1575                'netinet/sctp.h',
1576                'netinet/sctp_header.h',
1577                'netinet/sctp_indata.h',
1578                'netinet/sctp_input.h',
1579                'netinet/sctp_lock_bsd.h',
1580                'netinet/sctp_os_bsd.h',
1581                'netinet/sctp_os.h',
1582                'netinet/sctp_output.h',
1583                'netinet/sctp_pcb.h',
1584                'netinet/sctp_peeloff.h',
1585                'netinet/sctp_structs.h',
1586                'netinet/sctp_sysctl.h',
1587                'netinet/sctp_timer.h',
1588                'netinet/sctp_uio.h',
1589                'netinet/sctputil.h',
1590                'netinet/sctp_var.h',
1591                'netinet/tcp_debug.h',
1592                'netinet/tcp_fsm.h',
1593                'netinet/tcp.h',
1594                'netinet/tcp_hostcache.h',
1595                'netinet/tcpip.h',
1596                'netinet/tcp_lro.h',
1597                'netinet/tcp_offload.h',
1598                'netinet/tcp_seq.h',
1599                'netinet/tcp_syncache.h',
1600                'netinet/tcp_timer.h',
1601                'netinet/tcp_var.h',
1602                'netinet/toedev.h',
1603                'netinet/udp.h',
1604                'netinet/udp_var.h',
1605                'netinet/libalias/alias_local.h',
1606                'netinet/libalias/alias.h',
1607                'netinet/libalias/alias_mod.h',
1608                'netinet/libalias/alias_sctp.h',
1609        ]
1610)
1611# in_cksum.c is architecture dependent
1612netinet.addSourceFiles(
1613        [
1614                'netinet/accf_data.c',
1615                'netinet/accf_dns.c',
1616                'netinet/accf_http.c',
1617                'netinet/if_atm.c',
1618                'netinet/if_ether.c',
1619                'netinet/igmp.c',
1620                'netinet/in.c',
1621                'netinet/in_gif.c',
1622                'netinet/in_mcast.c',
1623                'netinet/in_pcb.c',
1624                'netinet/in_proto.c',
1625                'netinet/in_rmx.c',
1626                'netinet/ip_carp.c',
1627                'netinet/ip_divert.c',
1628                'netinet/ip_ecn.c',
1629                'netinet/ip_encap.c',
1630                'netinet/ip_fastfwd.c',
1631                'netinet/ip_gre.c',
1632                'netinet/ip_icmp.c',
1633                'netinet/ip_id.c',
1634                'netinet/ip_input.c',
1635                'netinet/ip_ipsec.c',
1636                'netinet/ip_mroute.c',
1637                'netinet/ip_options.c',
1638                'netinet/ip_output.c',
1639                'netinet/raw_ip.c',
1640                'netinet/sctp_asconf.c',
1641                'netinet/sctp_auth.c',
1642                'netinet/sctp_bsd_addr.c',
1643                'netinet/sctp_cc_functions.c',
1644                'netinet/sctp_crc32.c',
1645                'netinet/sctp_indata.c',
1646                'netinet/sctp_input.c',
1647                'netinet/sctp_output.c',
1648                'netinet/sctp_pcb.c',
1649                'netinet/sctp_peeloff.c',
1650                'netinet/sctp_sysctl.c',
1651                'netinet/sctp_timer.c',
1652                'netinet/sctp_usrreq.c',
1653                'netinet/sctputil.c',
1654                'netinet/tcp_debug.c',
1655                #'netinet/tcp_hostcache.c',
1656                'netinet/tcp_input.c',
1657                'netinet/tcp_lro.c',
1658                'netinet/tcp_offload.c',
1659                'netinet/tcp_output.c',
1660                'netinet/tcp_reass.c',
1661                'netinet/tcp_sack.c',
1662                'netinet/tcp_subr.c',
1663                'netinet/tcp_syncache.c',
1664                'netinet/tcp_timer.c',
1665                'netinet/tcp_timewait.c',
1666                'netinet/tcp_usrreq.c',
1667                'netinet/udp_usrreq.c',
1668                'netinet/ipfw/dn_sched_fifo.c',
1669                'netinet/ipfw/dn_sched_rr.c',
1670                'netinet/ipfw/ip_fw_log.c',
1671                'netinet/ipfw/dn_sched_qfq.c',
1672                'netinet/ipfw/dn_sched_prio.c',
1673                #'netinet/ipfw/ip_fw_dynamic.c',
1674                'netinet/ipfw/ip_dn_glue.c',
1675                'netinet/ipfw/ip_fw2.c',
1676                'netinet/ipfw/dn_heap.c',
1677                'netinet/ipfw/ip_dummynet.c',
1678                'netinet/ipfw/ip_fw_sockopt.c',
1679                'netinet/ipfw/dn_sched_wf2q.c',
1680                'netinet/ipfw/ip_fw_nat.c',
1681                'netinet/ipfw/ip_fw_pfil.c',
1682                'netinet/ipfw/ip_dn_io.c',
1683                'netinet/ipfw/ip_fw_table.c',
1684                'netinet/libalias/alias_dummy.c',
1685                'netinet/libalias/alias_pptp.c',
1686                'netinet/libalias/alias_smedia.c',
1687                'netinet/libalias/alias_mod.c',
1688                'netinet/libalias/alias_cuseeme.c',
1689                'netinet/libalias/alias_nbt.c',
1690                'netinet/libalias/alias_irc.c',
1691                'netinet/libalias/alias_util.c',
1692                'netinet/libalias/alias_db.c',
1693                'netinet/libalias/alias_ftp.c',
1694                'netinet/libalias/alias_proxy.c',
1695                'netinet/libalias/alias.c',
1696                'netinet/libalias/alias_skinny.c',
1697                'netinet/libalias/alias_sctp.c',
1698        ]
1699)
1700
1701netinet6 = Module('netinet6')
1702netinet6.addHeaderFiles(
1703        [
1704                'netinet6/icmp6.h',
1705                'netinet6/in6_gif.h',
1706                'netinet6/in6.h',
1707                'netinet6/in6_ifattach.h',
1708                'netinet6/in6_pcb.h',
1709                'netinet6/in6_var.h',
1710                'netinet6/ip6_ecn.h',
1711                'netinet6/ip6.h',
1712                'netinet6/ip6_ipsec.h',
1713                'netinet6/ip6_mroute.h',
1714                'netinet6/ip6protosw.h',
1715                'netinet6/ip6_var.h',
1716                'netinet6/mld6.h',
1717                'netinet6/mld6_var.h',
1718                'netinet6/nd6.h',
1719                'netinet6/pim6.h',
1720                'netinet6/pim6_var.h',
1721                'netinet6/raw_ip6.h',
1722                'netinet6/scope6_var.h',
1723                'netinet6/sctp6_var.h',
1724                'netinet6/tcp6_var.h',
1725                'netinet6/udp6_var.h',
1726        ]
1727)
1728netinet6.addSourceFiles(
1729        [
1730                'netinet6/dest6.c',
1731                'netinet6/frag6.c',
1732                'netinet6/icmp6.c',
1733                'netinet6/in6.c',
1734                'netinet6/in6_cksum.c',
1735                'netinet6/in6_gif.c',
1736                'netinet6/in6_ifattach.c',
1737                'netinet6/in6_mcast.c',
1738                'netinet6/in6_pcb.c',
1739                'netinet6/in6_proto.c',
1740                'netinet6/in6_rmx.c',
1741                'netinet6/in6_src.c',
1742                'netinet6/ip6_forward.c',
1743                'netinet6/ip6_id.c',
1744                'netinet6/ip6_input.c',
1745                'netinet6/ip6_ipsec.c',
1746                'netinet6/ip6_mroute.c',
1747                'netinet6/ip6_output.c',
1748                'netinet6/mld6.c',
1749                'netinet6/nd6.c',
1750                'netinet6/nd6_nbr.c',
1751                'netinet6/nd6_rtr.c',
1752                'netinet6/raw_ip6.c',
1753                'netinet6/route6.c',
1754                'netinet6/scope6.c',
1755                'netinet6/sctp6_usrreq.c',
1756                'netinet6/udp6_usrreq.c',
1757        ]
1758)
1759
1760netipsec = Module('netipsec')
1761netipsec.addHeaderFiles(
1762        [
1763                'netipsec/ah.h',
1764                'netipsec/ah_var.h',
1765                'netipsec/esp.h',
1766                'netipsec/esp_var.h',
1767                'netipsec/ipcomp.h',
1768                'netipsec/ipcomp_var.h',
1769                'netipsec/ipip_var.h',
1770                'netipsec/ipsec6.h',
1771                'netipsec/ipsec.h',
1772                'netipsec/keydb.h',
1773                'netipsec/key_debug.h',
1774                'netipsec/key.h',
1775                'netipsec/keysock.h',
1776                'netipsec/key_var.h',
1777                'netipsec/xform.h',
1778        ]
1779)
1780netipsec.addSourceFiles(
1781        [
1782                'netipsec/ipsec.c',
1783                'netipsec/ipsec_input.c',
1784                'netipsec/ipsec_mbuf.c',
1785                'netipsec/ipsec_output.c',
1786                'netipsec/key.c',
1787                'netipsec/key_debug.c',
1788                'netipsec/keysock.c',
1789                'netipsec/xform_ah.c',
1790                'netipsec/xform_esp.c',
1791                'netipsec/xform_ipcomp.c',
1792                'netipsec/xform_ipip.c',
1793                'netipsec/xform_tcp.c',
1794        ]
1795)
1796
1797net80211 = Module('net80211')
1798net80211.addHeaderFiles(
1799        [
1800                'net80211/ieee80211_action.h',
1801                'net80211/ieee80211_adhoc.h',
1802                'net80211/ieee80211_ageq.h',
1803                'net80211/ieee80211_amrr.h',
1804                'net80211/ieee80211_crypto.h',
1805                'net80211/ieee80211_dfs.h',
1806                'net80211/ieee80211_freebsd.h',
1807                'net80211/_ieee80211.h',
1808                'net80211/ieee80211.h',
1809                'net80211/ieee80211_hostap.h',
1810                'net80211/ieee80211_ht.h',
1811                'net80211/ieee80211_input.h',
1812                'net80211/ieee80211_ioctl.h',
1813                'net80211/ieee80211_mesh.h',
1814                'net80211/ieee80211_monitor.h',
1815                'net80211/ieee80211_node.h',
1816                'net80211/ieee80211_phy.h',
1817                'net80211/ieee80211_power.h',
1818                'net80211/ieee80211_proto.h',
1819                'net80211/ieee80211_radiotap.h',
1820                'net80211/ieee80211_ratectl.h',
1821                'net80211/ieee80211_regdomain.h',
1822                'net80211/ieee80211_rssadapt.h',
1823                'net80211/ieee80211_scan.h',
1824                'net80211/ieee80211_sta.h',
1825                'net80211/ieee80211_superg.h',
1826                'net80211/ieee80211_tdma.h',
1827                'net80211/ieee80211_var.h',
1828                'net80211/ieee80211_wds.h',
1829        ]
1830)
1831netipsec.addSourceFiles(
1832        [
1833                'net80211/ieee80211_acl.c',
1834                'net80211/ieee80211_action.c',
1835                'net80211/ieee80211_adhoc.c',
1836                'net80211/ieee80211_ageq.c',
1837                'net80211/ieee80211_amrr.c',
1838                'net80211/ieee80211.c',
1839                'net80211/ieee80211_crypto.c',
1840                'net80211/ieee80211_crypto_ccmp.c',
1841                'net80211/ieee80211_crypto_none.c',
1842                'net80211/ieee80211_crypto_tkip.c',
1843                'net80211/ieee80211_crypto_wep.c',
1844                'net80211/ieee80211_ddb.c',
1845                'net80211/ieee80211_dfs.c',
1846                'net80211/ieee80211_freebsd.c',
1847                'net80211/ieee80211_hostap.c',
1848                'net80211/ieee80211_ht.c',
1849                'net80211/ieee80211_hwmp.c',
1850                'net80211/ieee80211_input.c',
1851                'net80211/ieee80211_ioctl.c',
1852                'net80211/ieee80211_mesh.c',
1853                'net80211/ieee80211_monitor.c',
1854                'net80211/ieee80211_node.c',
1855                'net80211/ieee80211_output.c',
1856                'net80211/ieee80211_phy.c',
1857                'net80211/ieee80211_power.c',
1858                'net80211/ieee80211_proto.c',
1859                'net80211/ieee80211_radiotap.c',
1860                'net80211/ieee80211_ratectl.c',
1861                'net80211/ieee80211_ratectl_none.c',
1862                'net80211/ieee80211_regdomain.c',
1863                'net80211/ieee80211_rssadapt.c',
1864                'net80211/ieee80211_scan.c',
1865                'net80211/ieee80211_scan_sta.c',
1866                'net80211/ieee80211_sta.c',
1867                'net80211/ieee80211_superg.c',
1868                'net80211/ieee80211_tdma.c',
1869                'net80211/ieee80211_wds.c',
1870                'net80211/ieee80211_xauth.c',
1871        ]
1872)
1873
1874opencrypto = Module('opencrypto')
1875opencrypto.addHeaderFiles(
1876        [
1877                'sys/md5.h',
1878                'opencrypto/deflate.h',
1879                'opencrypto/xform.h',
1880                'opencrypto/cryptosoft.h',
1881                'opencrypto/rmd160.h',
1882                'opencrypto/cryptodev.h',
1883                'opencrypto/castsb.h',
1884                'opencrypto/skipjack.h',
1885                'opencrypto/cast.h',
1886        ]
1887)
1888opencrypto.addSourceFiles(
1889        [
1890                'opencrypto/crypto.c',
1891                'opencrypto/deflate.c',
1892                'opencrypto/cryptosoft.c',
1893                'opencrypto/criov.c',
1894                'opencrypto/rmd160.c',
1895                'opencrypto/xform.c',
1896                'opencrypto/skipjack.c',
1897                'opencrypto/cast.c',
1898                'opencrypto/cryptodev.c',
1899        ]
1900)
1901
1902crypto = Module('crypto')
1903crypto.addHeaderFiles(
1904        [
1905                #'crypto/aesni/aesni.h',
1906                'crypto/sha1.h',
1907                'crypto/sha2/sha2.h',
1908                'crypto/rijndael/rijndael.h',
1909                'crypto/rijndael/rijndael_local.h',
1910                'crypto/rijndael/rijndael-api-fst.h',
1911                'crypto/des/des.h',
1912                'crypto/des/spr.h',
1913                'crypto/des/podd.h',
1914                'crypto/des/sk.h',
1915                'crypto/des/des_locl.h',
1916                'crypto/blowfish/bf_pi.h',
1917                'crypto/blowfish/bf_locl.h',
1918                'crypto/blowfish/blowfish.h',
1919                'crypto/rc4/rc4.h',
1920                #'crypto/via/padlock.h',
1921                'crypto/camellia/camellia.h',
1922        ]
1923)
1924crypto.addSourceFiles(
1925        [
1926                #'crypto/aesni/aesni.c',
1927                #'crypto/aesni/aesni_wrap.c',
1928                'crypto/sha1.c',
1929                'crypto/sha2/sha2.c',
1930                'crypto/rijndael/rijndael-alg-fst.c',
1931                'crypto/rijndael/rijndael-api.c',
1932                'crypto/rijndael/rijndael-api-fst.c',
1933                'crypto/des/des_setkey.c',
1934                'crypto/des/des_enc.c',
1935                'crypto/des/des_ecb.c',
1936                'crypto/blowfish/bf_enc.c',
1937                'crypto/blowfish/bf_skey.c',
1938                'crypto/blowfish/bf_ecb.c',
1939                'crypto/rc4/rc4.c',
1940                #'crypto/via/padlock.c',
1941                #'crypto/via/padlock_cipher.c',
1942                #'crypto/via/padlock_hash.c',
1943                'crypto/camellia/camellia-api.c',
1944                'crypto/camellia/camellia.c',
1945        ]
1946)
1947
1948altq = Module('altq')
1949altq.addHeaderFiles(
1950        [
1951                'contrib/altq/altq/altq_rmclass.h',
1952                'contrib/altq/altq/altq_cbq.h',
1953                'contrib/altq/altq/altq_var.h',
1954                'contrib/altq/altq/altqconf.h',
1955                'contrib/altq/altq/altq.h',
1956                'contrib/altq/altq/altq_hfsc.h',
1957                'contrib/altq/altq/altq_red.h',
1958                'contrib/altq/altq/altq_classq.h',
1959                'contrib/altq/altq/altq_priq.h',
1960                'contrib/altq/altq/altq_rmclass_debug.h',
1961                'contrib/altq/altq/altq_cdnr.h',
1962                'contrib/altq/altq/altq_rio.h',
1963                'contrib/altq/altq/if_altq.h',
1964        ]
1965)
1966altq.addSourceFiles(
1967        [
1968                'contrib/altq/altq/altq_rmclass.c',
1969                'contrib/altq/altq/altq_rio.c',
1970                'contrib/altq/altq/altq_subr.c',
1971                'contrib/altq/altq/altq_cdnr.c',
1972                'contrib/altq/altq/altq_priq.c',
1973                'contrib/altq/altq/altq_cbq.c',
1974                'contrib/altq/altq/altq_hfsc.c',
1975                'contrib/altq/altq/altq_red.c',
1976        ]
1977)
1978
1979# contrib/pf Module
1980pf = Module('pf')
1981pf.addHeaderFiles(
1982        [
1983                'contrib/pf/net/pf_mtag.h',
1984                'contrib/pf/net/if_pfsync.h',
1985                'contrib/pf/net/pfvar.h',
1986                'contrib/pf/net/if_pflog.h',
1987        ]
1988)
1989pf.addSourceFiles(
1990        [
1991                'contrib/pf/netinet/in4_cksum.c',
1992                'contrib/pf/net/pf.c',
1993                'contrib/pf/net/if_pflog.c',
1994                'contrib/pf/net/pf_subr.c',
1995                'contrib/pf/net/pf_ioctl.c',
1996                'contrib/pf/net/pf_table.c',
1997                'contrib/pf/net/pf_if.c',
1998                'contrib/pf/net/pf_osfp.c',
1999                'contrib/pf/net/pf_norm.c',
2000                'contrib/pf/net/pf_ruleset.c',
2001                'contrib/pf/net/if_pfsync.c',
2002        ]
2003)
2004
2005# in_chksum Module
2006in_cksum = Module('in_cksum')
2007in_cksum.addRTEMSHeaderFiles(
2008        [
2009                'sparc/include/freebsd/machine/in_cksum.h',
2010        ]
2011)
2012in_cksum.addCPUDependentHeaderFiles(
2013        [
2014                'arm/include/in_cksum.h',
2015                'i386/include/in_cksum.h',
2016                'mips/include/in_cksum.h',
2017                'powerpc/include/in_cksum.h',
2018                'sparc64/include/in_cksum.h',
2019        ]
2020)
2021in_cksum.addCPUDependentSourceFiles(
2022        'arm',
2023        [
2024                'arm/arm/in_cksum_arm.S',
2025                'arm/arm/in_cksum.c',
2026        ]
2027)
2028in_cksum.addCPUDependentSourceFiles(
2029        'i386',
2030        [
2031                'i386/i386/in_cksum.c',
2032        ]
2033)
2034in_cksum.addCPUDependentSourceFiles(
2035        'mips',
2036        [
2037                'mips/mips/in_cksum.c',
2038        ]
2039)
2040in_cksum.addCPUDependentSourceFiles(
2041        'powerpc',
2042        [
2043                'powerpc/powerpc/in_cksum.c',
2044        ]
2045)
2046in_cksum.addCPUDependentSourceFiles(
2047        'sparc',
2048        [
2049                'mips/mips/in_cksum.c',
2050        ]
2051)
2052in_cksum.addCPUDependentSourceFiles(
2053        'sparc64',
2054        [
2055                'sparc64/sparc64/in_cksum.c',
2056        ]
2057)
2058
2059# Register all the Module instances with the Module Manager
2060mm.addModule(rtems)
2061mm.addModule(netDeps)
2062mm.addModule(net)
2063mm.addModule(netinet)
2064mm.addModule(netinet6)
2065mm.addModule(netipsec)
2066mm.addModule(net80211)
2067mm.addModule(opencrypto)
2068mm.addModule(crypto)
2069mm.addModule(altq)
2070mm.addModule(pf)
2071mm.addModule(devNet)
2072
2073mm.addModule(local)
2074mm.addModule(devUsbBase)
2075mm.addModule(devUsb)
2076mm.addModule(devUsbQuirk)
2077mm.addModule(devUsbController)
2078
2079mm.addModule(cam)
2080mm.addModule(devUsbStorage)
2081#mm.addModule(devUsbNet)
2082
2083# Add PCI
2084mm.addModule(devPci)
2085
2086# Add NIC devices
2087mm.addModule(devNic)
2088mm.addModule(devNic_re)
2089mm.addModule(devNic_fxp)
2090mm.addModule(devNic_e1000)
2091mm.addModule(devNic_dc)
2092mm.addModule(devNic_smc)
2093mm.addModule(devNic_broadcomm)
2094# TBD Requires ISA and PCCard Support to be pulled in.
2095# mm.addModule(devNic_cs)
2096
2097# Add in_chksum
2098mm.addModule(in_cksum)
2099
2100# XXX TODO Check that no file is also listed in empty
2101# XXX TODO Check that no file in in two modules
2102
2103# Perform the actual file manipulation
2104if isForward == True:
2105  if isOnlyMakefile == False:
2106    mm.copyFromFreeBSDToRTEMS()
2107  mm.createMakefile()
2108else:
2109  mm.copyFromRTEMSToFreeBSD()
2110
2111# Print a summary if changing files
2112if isDiffMode == False:
2113  if filesProcessed == 1:
2114    print str(filesProcessed) + " file was changed."
2115  else:
2116    print str(filesProcessed) + " files were changed."
Note: See TracBrowser for help on using the repository browser.