blob: b1edebfaade2b850b31a8db832a91db1dc5eb8b6 [file]
package common
import "encoding/json"
type PrebuiltKernelModulesPropertiesJSON struct {
// List or filegroup of prebuilt kernel module files. Should have .ko suffix.
Srcs []string `json:",omitempty"`
// List of kernel module filenames that will be loaded via modules.load.
// Should have .ko suffix.
// If empty, this will default to filenames of Srcs.
// If no sources should be loaded, set `Load_by_default` to false instead.
Src_filenames_to_load []string `json:",omitempty"`
// List or filegroup of prebuilt kernel module files for 16k. Should have .ko suffix.
// These files will be installed in lib/modules/16k-mode/
// These files are ONLY loaded during the Second Boot Stage when the device is in 16k mode.
Srcs_16k []string `json:",omitempty"`
// List of system_dlkm prebuilt_kernel_modules that the local kernel modules
// depend on. Use `:module_name{.modules.zip}` here.
// The deps will be assembled into intermediates directory for running depmod
// but will not be added to the current module's installed files.
System_dep *string `json:",omitempty"`
// If false, then srcs will not be included in modules.load.
// This feature is used by system_dlkm
Load_by_default *bool `json:",omitempty"`
Blocklist_file *string `json:",omitempty"`
// Path to the kernel module options file
Options_file *string `json:",omitempty"`
// Kernel version that these modules are for. Kernel modules are installed to
// /lib/modules/<kernel_version> directory in the corresponding partition. Default is "".
Kernel_version *string `json:",omitempty"`
// Whether this module is directly installable to one of the partitions. Default is true
Installable *bool `json:",omitempty"`
// Whether debug symbols should be stripped from the *.ko files.
// Defaults to true.
Strip_debug_symbols *bool `json:",omitempty"`
// Properties related to loading the kernel modules from a zip file.
// This is useful if you want the list of kernel modules to be dynamic, and unknown at analysis
// time, for example when supplying the kernel modules via CIPD.
//
// Most of these properties are mutually exclusive with the other, non-zip properties. But
// some such as srcs will be merged with the contents / information from the zip file.
Zip ZipProperties
}
type ZipProperties struct {
// The zip file containing the kernel modules and other files like the load/blocklist files.
Src *string `json:",omitempty"`
// The name of the load file inside of the zip file. Only modules listed in it will
// be installed.
Load_file *string `json:",omitempty"`
// List of extra kernel modules to add to the load file.
Extra_loads []string `json:",omitempty"`
// The name of the blocklist file inside of the zip file.
Blocklist_file *string `json:",omitempty"`
// Name of a .cfg file that's loaded by init.insmod.sh. This is just used
// to determine the list of 16k kernel modules, taken from all the modprobe| lines
// in the cfg file.
Srcs_16k_cfg_file *string `json:",omitempty"`
}
func (p *PrebuiltKernelModulesPropertiesJSON) ToJSON() string {
result, err := json.Marshal(p)
if err != nil {
panic(err)
}
return string(result)
}