diff options
| author | 2024-11-18 22:51:14 +0000 | |
|---|---|---|
| committer | 2024-11-18 22:51:14 +0000 | |
| commit | 04a33c6934f46d7a0013401aa05711ec7dc15f56 (patch) | |
| tree | 7a3bf2ff774d75be5e02e1d435ff76057d6359fc /filesystem/filesystem.go | |
| parent | 0a9d9d6abd77b78a3f062eaa5c3609c3aa8fde9e (diff) | |
| parent | 6c03c8ee70c1412e6b2e2a960081c94cbdf0b45e (diff) | |
Merge "Specify dev nodes list file for ramdisk partition generation" into main
Diffstat (limited to 'filesystem/filesystem.go')
| -rw-r--r-- | filesystem/filesystem.go | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/filesystem/filesystem.go b/filesystem/filesystem.go index c34677060..ba5319fb6 100644 --- a/filesystem/filesystem.go +++ b/filesystem/filesystem.go @@ -162,6 +162,10 @@ type FilesystemProperties struct { // Determines if the module is auto-generated from Soong or not. If the module is // auto-generated, its deps are exempted from visibility enforcement. Is_auto_generated *bool + + // Path to the dev nodes description file. This is only needed for building the ramdisk + // partition and should not be explicitly specified. + Dev_nodes_description_file *string `android:"path" blueprint:"mutated"` } // Additional properties required to generate erofs FS partitions. @@ -210,6 +214,10 @@ func initFilesystemModule(module android.DefaultableModule, filesystemModule *fi filesystemModule.PackagingBase.AllowHighPriorityDeps = true android.InitAndroidMultiTargetsArchModule(module, android.DeviceSupported, android.MultilibCommon) android.InitDefaultableModule(module) + + android.AddLoadHook(module, func(ctx android.LoadHookContext) { + filesystemModule.setDevNodesDescriptionProp() + }) } type depTag struct { @@ -229,6 +237,16 @@ func (t depTagWithVisibilityEnforcementBypass) ExcludeFromVisibilityEnforcement( var dependencyTagWithVisibilityEnforcementBypass = depTagWithVisibilityEnforcementBypass{} +// ramdiskDevNodesDescription is the name of the filegroup module that provides the file that +// contains the description of dev nodes added to the CPIO archive for the ramdisk partition. +const ramdiskDevNodesDescription = "ramdisk_node_list" + +func (f *filesystem) setDevNodesDescriptionProp() { + if proptools.String(f.properties.Partition_name) == "ramdisk" { + f.properties.Dev_nodes_description_file = proptools.StringPtr(":" + ramdiskDevNodesDescription) + } +} + func (f *filesystem) DepsMutator(ctx android.BottomUpMutatorContext) { if proptools.Bool(f.properties.Is_auto_generated) { f.AddDeps(ctx, dependencyTagWithVisibilityEnforcementBypass) @@ -659,6 +677,9 @@ func (f *filesystem) buildCpioImage(ctx android.ModuleContext, compressed bool) cmd := builder.Command(). BuiltTool("mkbootfs"). Text(rootDir.String()) // input directory + if nodeList := f.properties.Dev_nodes_description_file; nodeList != nil { + cmd.FlagWithInput("-n ", android.PathForModuleSrc(ctx, proptools.String(nodeList))) + } if compressed { cmd.Text("|"). BuiltTool("lz4"). |