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

4.1155-freebsd-126-freebsd-12freebsd-9.3
Last change on this file since e45ee81 was e45ee81, checked in by Joel Sherrill <joel.sherrill@…>, on 07/14/12 at 18:48:42

Makefile: Use i386 PCI code for all targets until proven otherwise

The i386 PCI code appears to be target independent with the RTEMS
conditionals and support code. Compiled for SuperH.

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