include/linux/sys_soc.h

Source file repositories/reference/linux-study-clean/include/linux/sys_soc.h

File Facts

System
Linux kernel
Corpus path
include/linux/sys_soc.h
Extension
.h
Size
1635 bytes
Lines
59
Domain
Core OS
Bucket
Core Kernel Interface
Inferred role
Core OS: implementation source
Status
source implementation candidate

Why This File Exists

Core operating-system implementation surface: boot, tasks, memory, VFS, syscall-facing interfaces, synchronization, credentials, and isolation.

Dependency Surface

Detected Declarations

Annotated Snippet

struct soc_device_attribute {
	const char *machine;
	const char *family;
	const char *revision;
	const char *serial_number;
	const char *soc_id;
	const void *data;
	const struct attribute_group *custom_attr_group;
};

/**
 * soc_device_register - register SoC as a device
 * @soc_plat_dev_attr: Attributes passed from platform to be attributed to a SoC
 */
struct soc_device *soc_device_register(
	struct soc_device_attribute *soc_plat_dev_attr);

/**
 * soc_device_unregister - unregister SoC device
 * @dev: SoC device to be unregistered
 */
void soc_device_unregister(struct soc_device *soc_dev);

/**
 * soc_device_to_device - helper function to fetch struct device
 * @soc: Previously registered SoC device container
 */
struct device *soc_device_to_device(struct soc_device *soc);

/**
 * soc_attr_read_machine - retrieve the machine model and store it in
 *                         the soc_device_attribute structure
 * @soc_dev_attr: SoC attribute structure to store the model in
 *
 * Returns:
 * 0 on success, negative error number on failure.
 */
int soc_attr_read_machine(struct soc_device_attribute *soc_dev_attr);

#ifdef CONFIG_SOC_BUS
const struct soc_device_attribute *soc_device_match(
	const struct soc_device_attribute *matches);
#else
static inline const struct soc_device_attribute *soc_device_match(
	const struct soc_device_attribute *matches) { return NULL; }
#endif

#endif /* __SOC_BUS_H */

Annotation

Implementation Notes