| #!/usr/bin/env python3 |
| #/* |
| # * FreeRTOS Kernel <DEVELOPMENT BRANCH> |
| # * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. |
| # * |
| # * SPDX-License-Identifier: MIT |
| # * |
| # * Permission is hereby granted, free of charge, to any person obtaining a copy of |
| # * this software and associated documentation files (the "Software"), to deal in |
| # * the Software without restriction, including without limitation the rights to |
| # * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of |
| # * the Software, and to permit persons to whom the Software is furnished to do so, |
| # * subject to the following conditions: |
| # * |
| # * The above copyright notice and this permission notice shall be included in all |
| # * copies or substantial portions of the Software. |
| # * |
| # * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR |
| # * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS |
| # * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR |
| # * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER |
| # * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN |
| # * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. |
| # * |
| # * https://www.FreeRTOS.org |
| # * https://github.com/FreeRTOS |
| # * |
| # */ |
| |
| import os |
| from common.header_checker import HeaderChecker |
| |
| #-------------------------------------------------------------------------------------------------- |
| # CONFIG |
| #-------------------------------------------------------------------------------------------------- |
| KERNEL_IGNORED_FILES = [ |
| 'FreeRTOS-openocd.c', |
| 'Makefile', |
| '.DS_Store', |
| 'cspell.config.yaml' |
| ] |
| |
| KERNEL_IGNORED_EXTENSIONS = [ |
| '.yml', |
| '.css', |
| '.idx', |
| '.md', |
| '.url', |
| '.sty', |
| '.0-rc2', |
| '.s82', |
| '.js', |
| '.out', |
| '.pack', |
| '.2', |
| '.1-kernel-only', |
| '.0-kernel-only', |
| '.0-rc1', |
| '.readme', |
| '.tex', |
| '.png', |
| '.bat', |
| '.sh', |
| '.txt', |
| '.cmake' |
| ] |
| |
| KERNEL_ASM_EXTENSIONS = [ |
| '.s', |
| '.S', |
| '.src', |
| '.inc', |
| '.s26', |
| '.s43', |
| '.s79', |
| '.s85', |
| '.s87', |
| '.s90', |
| '.asm', |
| '.h' |
| ] |
| |
| KERNEL_PY_EXTENSIONS = [ |
| '.py' |
| ] |
| |
| KERNEL_IGNORED_PATTERNS = [ |
| r'.*\.git.*', |
| r'.*portable/IAR/AtmelSAM7S64/.*AT91SAM7.*', |
| r'.*portable/GCC/ARM7_AT91SAM7S/.*', |
| r'.*portable/MPLAB/PIC18F/stdio.h', |
| r'.*portable/ThirdParty/xClang/XCOREAI/*', |
| r'.*IAR/ARM_C*', |
| r'.*IAR/78K0R/*', |
| r'.*CCS/MSP430X/*', |
| r'.*portable/template/*', |
| r'.*sample_configuration/*' |
| ] |
| |
| KERNEL_THIRD_PARTY_PATTERNS = [ |
| r'.*portable/ThirdParty/GCC/Posix/port*', |
| r'.*portable/ThirdParty/*', |
| r'.*portable/IAR/AVR32_UC3/.*', |
| r'.*portable/GCC/AVR32_UC3/.*', |
| ] |
| |
| KERNEL_HEADER = [ |
| '/*\n', |
| ' * FreeRTOS Kernel <DEVELOPMENT BRANCH>\n', |
| ' * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved.\n', |
| ' *\n', |
| ' * SPDX-License-Identifier: MIT\n', |
| ' *\n', |
| ' * Permission is hereby granted, free of charge, to any person obtaining a copy of\n', |
| ' * this software and associated documentation files (the "Software"), to deal in\n', |
| ' * the Software without restriction, including without limitation the rights to\n', |
| ' * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of\n', |
| ' * the Software, and to permit persons to whom the Software is furnished to do so,\n', |
| ' * subject to the following conditions:\n', |
| ' *\n', |
| ' * The above copyright notice and this permission notice shall be included in all\n', |
| ' * copies or substantial portions of the Software.\n', |
| ' *\n', |
| ' * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n', |
| ' * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS\n', |
| ' * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR\n', |
| ' * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER\n', |
| ' * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN\n', |
| ' * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n', |
| ' *\n', |
| ' * https://www.FreeRTOS.org\n', |
| ' * https://github.com/FreeRTOS\n', |
| ' *\n', |
| ' */\n', |
| ] |
| |
| def main(): |
| parser = HeaderChecker.configArgParser() |
| args = parser.parse_args() |
| |
| # Configure the checks then run |
| checker = HeaderChecker(KERNEL_HEADER, |
| ignored_files=KERNEL_IGNORED_FILES, |
| ignored_ext=KERNEL_IGNORED_EXTENSIONS, |
| ignored_patterns=KERNEL_IGNORED_PATTERNS, |
| third_party_patterns=KERNEL_THIRD_PARTY_PATTERNS, |
| py_ext=KERNEL_PY_EXTENSIONS, |
| asm_ext=KERNEL_ASM_EXTENSIONS) |
| checker.ignoreFile(os.path.split(__file__)[-1]) |
| |
| rc = checker.processArgs(args) |
| if rc: |
| checker.showHelp(__file__) |
| |
| return rc |
| |
| if __name__ == '__main__': |
| exit(main()) |