microsoft / mu_tiano_plus
Duplication

Places in code with 6 or more lines that are exactly the same.

Intro
  • For duplication, we look at places in code where there are 6 or more lines of code that are exactly the same.
  • Before duplication is calculated, the code is cleaned to remove empty lines, comments, and frequently duplicated constructs such as imports.
  • You should aim at having as little as possible (<5%) of duplicated code as high-level of duplication can lead to maintenance difficulties, poor factoring, and logical contradictions.
Learn more...
Duplication Overall
  • 26% duplication:
    • 63,876 cleaned lines of cleaned code (without empty lines, comments, and frequently duplicated constructs such as imports)
    • 16,640 duplicated lines
  • 2,070 duplicates
system26% (16,640 lines)
Duplication per Extension
c26% (14,460 lines)
h24% (1,968 lines)
yaml51% (141 lines)
nasm9% (71 lines)
Duplication per Component (primary)
SecurityPkg/Library34% (6,046 lines)
SecurityPkg/Tcg37% (3,539 lines)
EmbeddedPkg/GdbStub38% (996 lines)
SecurityPkg/VariableAuthenticated27% (962 lines)
SecurityPkg/HddPassword39% (727 lines)
SecurityPkg/Include32% (655 lines)
SourceLevelDebugPkg/Library10% (651 lines)
FatPkg/EnhancedFatDxe13% (596 lines)
EmbeddedPkg/Library8% (368 lines)
FmpDevicePkg/FmpDxe18% (278 lines)
FatPkg/FatPei16% (253 lines)
EmbeddedPkg/Drivers15% (253 lines)
SecurityPkg/Pkcs7Verify41% (246 lines)
EmbeddedPkg/Include14% (227 lines)
FmpDevicePkg/Library26% (209 lines)
EmbeddedPkg/Universal8% (141 lines)
SourceLevelDebugPkg/Include27% (87 lines)
SecurityPkg/RandomNumberGenerator20% (77 lines)
FmpDevicePkg/Include34% (64 lines)
EmbeddedPkg/Application9% (49 lines)
FatPkg70% (36 lines)
FmpDevicePkg53% (30 lines)
EmbeddedPkg66% (28 lines)
EmbeddedPkg/SimpleTextInOutSerial5% (26 lines)
SecurityPkg30% (25 lines)
SourceLevelDebugPkg50% (22 lines)
SecurityPkg/EnrollFromDefaultKeysApp32% (19 lines)
FmpDevicePkg/PrivateInclude18% (18 lines)
SecurityPkg/FvReportPei4% (12 lines)
EmbeddedPkg/EmbeddedMonotonicCounter0% (0 lines)
EmbeddedPkg/MetronomeDxe0% (0 lines)
EmbeddedPkg/RealTimeClockRuntimeDxe0% (0 lines)
EmbeddedPkg/ResetRuntimeDxe0% (0 lines)
FmpDevicePkg/CapsuleUpdatePolicyDxe0% (0 lines)
SecurityPkg/Hash2DxeCrypto0% (0 lines)
SourceLevelDebugPkg/DebugAgentDxe0% (0 lines)
SourceLevelDebugPkg/DebugAgentPei0% (0 lines)

Duplication Between Components (50+ lines)

G SecurityPkg/Include SecurityPkg/Include SecurityPkg/Library SecurityPkg/Library SecurityPkg/Include--SecurityPkg/Library 1232 SecurityPkg/Tcg SecurityPkg/Tcg SecurityPkg/Include--SecurityPkg/Tcg 97 SecurityPkg/Library--SecurityPkg/Tcg 463 SecurityPkg/VariableAuthenticated SecurityPkg/VariableAuthenticated SecurityPkg/Library--SecurityPkg/VariableAuthenticated 356 SecurityPkg/Pkcs7Verify SecurityPkg/Pkcs7Verify SecurityPkg/Library--SecurityPkg/Pkcs7Verify 77 SecurityPkg/HddPassword SecurityPkg/HddPassword SecurityPkg/HddPassword--SecurityPkg/Tcg 524 SecurityPkg/HddPassword--SecurityPkg/VariableAuthenticated 72 SecurityPkg/Tcg--SecurityPkg/VariableAuthenticated 374 EmbeddedPkg/Include EmbeddedPkg/Include EmbeddedPkg/Library EmbeddedPkg/Library EmbeddedPkg/Include--EmbeddedPkg/Library 268 FmpDevicePkg/Include FmpDevicePkg/Include FmpDevicePkg/Library FmpDevicePkg/Library FmpDevicePkg/Include--FmpDevicePkg/Library 134 FatPkg/EnhancedFatDxe FatPkg/EnhancedFatDxe FatPkg/FatPei FatPkg/FatPei FatPkg/EnhancedFatDxe--FatPkg/FatPei 133 EmbeddedPkg/Drivers EmbeddedPkg/Drivers EmbeddedPkg/Drivers--FatPkg/EnhancedFatDxe 112 EmbeddedPkg/Universal EmbeddedPkg/Universal EmbeddedPkg/Drivers--EmbeddedPkg/Universal 64 EmbeddedPkg/Universal--FatPkg/EnhancedFatDxe 62 FatPkg FatPkg FmpDevicePkg FmpDevicePkg FatPkg--FmpDevicePkg 60 SecurityPkg SecurityPkg FatPkg--SecurityPkg 50 SourceLevelDebugPkg/Include SourceLevelDebugPkg/Include SourceLevelDebugPkg/Library SourceLevelDebugPkg/Library SourceLevelDebugPkg/Include--SourceLevelDebugPkg/Library 52

Download: SVG DOT (open online Graphviz editor)

Open 3D force graph...

Show more details on duplication between components...
Longest Duplicates
The list of 20 longest duplicates.
See data for all 2,070 duplicates...
Size#FoldersFilesLinesCode
99 x 2 EmbeddedPkg/GdbStub/Ia32
EmbeddedPkg/GdbStub/X64
Processor.c
Processor.c
423:636 (18%)
393:607 (19%)
view
57 x 2 SecurityPkg/Tcg/Opal/OpalPassword
SecurityPkg/Tcg/Opal/OpalPassword
OpalDriver.c
OpalDriver.c
1812:1878 (3%)
2007:2073 (3%)
view
48 x 2 SecurityPkg/Tcg/Tcg2Dxe
SecurityPkg/Tcg/TcgDxe
Tcg2Dxe.c
TcgDxe.c
292:382 (3%)
135:228 (6%)
view
47 x 2 EmbeddedPkg/GdbStub/Ia32
EmbeddedPkg/GdbStub/X64
Processor.c
Processor.c
785:863 (8%)
775:852 (9%)
view
47 x 2 SecurityPkg/Tcg/Tcg2Smm
SecurityPkg/Tcg/TcgSmm
Tcg2Smm.c
TcgSmm.c
158:233 (23%)
212:287 (17%)
view
47 x 2 SecurityPkg/HddPassword
SecurityPkg/HddPassword
HddPasswordDxe.c
HddPasswordDxe.c
1571:1643 (2%)
1699:1771 (2%)
view
45 x 2 EmbeddedPkg/GdbStub/Ia32
EmbeddedPkg/GdbStub/X64
Processor.c
Processor.c
865:942 (8%)
854:931 (8%)
view
45 x 2 SecurityPkg/Tcg/Opal/OpalPassword
SecurityPkg/Tcg/Opal/OpalPassword
OpalDriver.c
OpalDriver.c
1744:1804 (2%)
1943:2003 (2%)
view
45 x 2 EmbeddedPkg/GdbStub/Ia32
EmbeddedPkg/GdbStub/X64
Processor.c
Processor.c
665:752 (8%)
649:736 (8%)
view
44 x 2 SecurityPkg/Library/DxeTpm2MeasureBootLib
SecurityPkg/Library/DxeTpmMeasureBootLib
DxeTpm2MeasureBootLib.c
DxeTpmMeasureBootLib.c
146:213 (12%)
141:208 (9%)
view
44 x 2 SecurityPkg/Library/DxeR...GuidedSectionExtractLib
SecurityPkg/Library/PeiR...GuidedSectionExtractLib
DxeRsa2048Sha256GuidedSectionExtractL...
PeiRsa2048Sha256GuidedSectionExtractL...
29:131 (22%)
27:129 (23%)
view
41 x 2 SecurityPkg/Tcg/Opal/OpalPassword
SecurityPkg/Tcg/Opal/OpalPassword
OpalDriver.c
OpalDriver.c
1880:1941 (2%)
2075:2135 (2%)
view
38 x 2 SecurityPkg/Tcg/Tcg2Pei
SecurityPkg/Tcg/TcgPei
Tcg2Pei.c
TcgPei.c
1023:1093 (5%)
584:657 (8%)
view
37 x 2 SourceLevelDebugPkg/Include/Ia32
SourceLevelDebugPkg/Include/Ia32
ProcessorContext.h
ProcessorContext.h
122:158 (22%)
205:241 (22%)
view
36 x 2 SecurityPkg/HddPassword
SecurityPkg/HddPassword
HddPasswordDxe.c
HddPasswordPei.c
895:955 (2%)
33:93 (20%)
view
35 x 2 SecurityPkg/Tcg/Opal/OpalPassword
SecurityPkg/Tcg/Opal/OpalPassword
OpalDriver.c
OpalDriver.c
1552:1607 (1%)
1687:1742 (1%)
view
34 x 2 SecurityPkg/Tcg/Tcg2Pei
SecurityPkg/Tcg/TcgPei
Tcg2Pei.c
TcgPei.c
77:142 (5%)
44:106 (7%)
view
33 x 2 SecurityPkg/Tcg/Tcg2Dxe
SecurityPkg/Tcg/TcgDxe
Tcg2Dxe.c
TcgDxe.c
2240:2284 (2%)
1057:1101 (4%)
view
32 x 2 SecurityPkg/Library/TcgStorageOpalLib
SecurityPkg/Library/TcgStorageOpalLib
TcgStorageOpalCore.c
TcgStorageOpalCore.c
749:802 (2%)
845:898 (2%)
view
31 x 2 SecurityPkg/Library/DxeImageVerificationLib
SecurityPkg/VariableAuth...ted/SecureBootConfigDxe
DxeImageVerificationLib.h
SecureBootConfigImpl.h
94:199 (83%)
228:308 (14%)
view