On Thu, Jul 1, 2021 at 1:10 PM Vishal Verma <[email protected]> wrote: > > Copy the Linux kernel's .clang-format and modify it for ndctl. Only the > 'ForEachMacros' section has been modified from the original kernel copy. > > Cc: Dan Williams <[email protected]> > Reported-by: Ben Widawsky <[email protected]> > Signed-off-by: Vishal Verma <[email protected]>
Nice! Reviewed-by: Dan Williams <[email protected]> > --- > .clang-format | 161 ++++++++++++++++++++++++++++++++++++++++++++++++++ > 1 file changed, 161 insertions(+) > create mode 100644 .clang-format > > diff --git a/.clang-format b/.clang-format > new file mode 100644 > index 0000000..4e00fff > --- /dev/null > +++ b/.clang-format > @@ -0,0 +1,161 @@ > +# SPDX-License-Identifier: GPL-2.0 > +# > +# clang-format configuration file. Intended for clang-format >= 4. > +# Copied from Linux's .clang-format > +# > +# For more information, see: > +# > +# https://clang.llvm.org/docs/ClangFormat.html > +# https://clang.llvm.org/docs/ClangFormatStyleOptions.html > +# > +--- > +AccessModifierOffset: -4 > +AlignAfterOpenBracket: Align > +AlignConsecutiveAssignments: false > +AlignConsecutiveDeclarations: false > +#AlignEscapedNewlines: Left # Unknown to clang-format-4.0 > +AlignOperands: true > +AlignTrailingComments: false > +AllowAllParametersOfDeclarationOnNextLine: false > +AllowShortBlocksOnASingleLine: false > +AllowShortCaseLabelsOnASingleLine: false > +AllowShortFunctionsOnASingleLine: None > +AllowShortIfStatementsOnASingleLine: false > +AllowShortLoopsOnASingleLine: false > +AlwaysBreakAfterDefinitionReturnType: None > +AlwaysBreakAfterReturnType: None > +AlwaysBreakBeforeMultilineStrings: false > +AlwaysBreakTemplateDeclarations: false > +BinPackArguments: true > +BinPackParameters: true > +BraceWrapping: > + AfterClass: false > + AfterControlStatement: false > + AfterEnum: false > + AfterFunction: true > + AfterNamespace: true > + AfterObjCDeclaration: false > + AfterStruct: false > + AfterUnion: false > + #AfterExternBlock: false # Unknown to clang-format-5.0 > + BeforeCatch: false > + BeforeElse: false > + IndentBraces: false > + #SplitEmptyFunction: true # Unknown to clang-format-4.0 > + #SplitEmptyRecord: true # Unknown to clang-format-4.0 > + #SplitEmptyNamespace: true # Unknown to clang-format-4.0 > +BreakBeforeBinaryOperators: None > +BreakBeforeBraces: Custom > +#BreakBeforeInheritanceComma: false # Unknown to clang-format-4.0 > +BreakBeforeTernaryOperators: false > +BreakConstructorInitializersBeforeComma: false > +#BreakConstructorInitializers: BeforeComma # Unknown to clang-format-4.0 > +BreakAfterJavaFieldAnnotations: false > +BreakStringLiterals: false > +ColumnLimit: 80 > +CommentPragmas: '^ IWYU pragma:' > +#CompactNamespaces: false # Unknown to clang-format-4.0 > +ConstructorInitializerAllOnOneLineOrOnePerLine: false > +ConstructorInitializerIndentWidth: 8 > +ContinuationIndentWidth: 8 > +Cpp11BracedListStyle: false > +DerivePointerAlignment: false > +DisableFormat: false > +ExperimentalAutoDetectBinPacking: false > +#FixNamespaceComments: false # Unknown to clang-format-4.0 > + > +# Taken from: > +# while read -r sym; do > +# printf " - '%s'\n" "$sym"; > +# done < \ > +# <(cscope -dL6 "foreach|for_each" \ > +# | awk '{ print $4 $5 }' | grep -E 'foreach|for_each' \ > +# | sed -e 's/#define//' \ > +# -e 's/*//' \ > +# -e 's/://' \ > +# -e 's/\(.*for_each.*\)(.*/\1/' \ > +# -e 's/\(.*foreach.*\)(.*/\1/' \ > +# | sort -u) > +ForEachMacros: > + - 'daxctl_dev_foreach' > + - 'daxctl_mapping_foreach' > + - 'daxctl_region_foreach' > + - 'kmod_list_foreach' > + - 'kmod_list_foreach_reverse' > + - 'list_for_each' > + - 'list_for_each_off' > + - 'list_for_each_rev' > + - 'list_for_each_safe' > + - 'list_for_each_safe_off' > + - 'ndctl_btt_foreach' > + - 'ndctl_btt_foreach_safe' > + - 'ndctl_bus_foreach' > + - 'ndctl_dax_foreach' > + - 'ndctl_dax_foreach_safe' > + - 'ndctl_dimm_foreach' > + - 'ndctl_dimm_foreach_in_interleave_set' > + - 'ndctl_dimm_foreach_in_region' > + - 'ndctl_interleave_set_foreach' > + - 'ndctl_mapping_foreach' > + - 'ndctl_namespace_badblock_foreach' > + - 'ndctl_namespace_bb_foreach' > + - 'ndctl_namespace_foreach' > + - 'ndctl_namespace_foreach_safe' > + - 'ndctl_pfn_foreach' > + - 'ndctl_pfn_foreach_safe' > + - 'ndctl_region_badblock_foreach' > + - 'ndctl_region_foreach' > + - 'udev_list_entry_foreach' > + > +#IncludeBlocks: Preserve # Unknown to clang-format-5.0 > +IncludeCategories: > + - Regex: '.*' > + Priority: 1 > +IncludeIsMainRegex: '(Test)?$' > +IndentCaseLabels: false > +#IndentPPDirectives: None # Unknown to clang-format-5.0 > +IndentWidth: 8 > +IndentWrappedFunctionNames: false > +JavaScriptQuotes: Leave > +JavaScriptWrapImports: true > +KeepEmptyLinesAtTheStartOfBlocks: false > +MacroBlockBegin: '' > +MacroBlockEnd: '' > +MaxEmptyLinesToKeep: 1 > +NamespaceIndentation: None > +#ObjCBinPackProtocolList: Auto # Unknown to clang-format-5.0 > +ObjCBlockIndentWidth: 8 > +ObjCSpaceAfterProperty: true > +ObjCSpaceBeforeProtocolList: true > + > +# Taken from git's rules > +#PenaltyBreakAssignment: 10 # Unknown to clang-format-4.0 > +PenaltyBreakBeforeFirstCallParameter: 30 > +PenaltyBreakComment: 10 > +PenaltyBreakFirstLessLess: 0 > +PenaltyBreakString: 10 > +PenaltyExcessCharacter: 100 > +PenaltyReturnTypeOnItsOwnLine: 60 > + > +PointerAlignment: Right > +ReflowComments: false > +SortIncludes: false > +#SortUsingDeclarations: false # Unknown to clang-format-4.0 > +SpaceAfterCStyleCast: false > +SpaceAfterTemplateKeyword: true > +SpaceBeforeAssignmentOperators: true > +#SpaceBeforeCtorInitializerColon: true # Unknown to clang-format-5.0 > +#SpaceBeforeInheritanceColon: true # Unknown to clang-format-5.0 > +SpaceBeforeParens: ControlStatements > +#SpaceBeforeRangeBasedForLoopColon: true # Unknown to clang-format-5.0 > +SpaceInEmptyParentheses: false > +SpacesBeforeTrailingComments: 1 > +SpacesInAngles: false > +SpacesInContainerLiterals: false > +SpacesInCStyleCastParentheses: false > +SpacesInParentheses: false > +SpacesInSquareBrackets: false > +Standard: Cpp03 > +TabWidth: 8 > +UseTab: Always > +... > -- > 2.31.1 >
