struct device 的zephyr中的地位相当于linux中的 struct file_operations .
在linux中,奉行一切皆文件的思想;而在zephyr中,与linux相似,奉行一切皆设备的思想。
先来看看 struct device 长什么样:
struct device {/** Name of the device instance */const char *name;/** Address of device instance config information */const void *config;/** Address of the API structure exposed by the device instance */const void *api;/** Address of the common device state */struct device_state *state;/** Address of the device instance private data */void *data;
#if defined(CONFIG_DEVICE_DEPS) || defined(__DOXYGEN__)/*** Optional pointer to dependencies associated with the device.** This encodes a sequence of sets of device handles that have some* relationship to this node. The individual sets are extracted with* dedicated API, such as device_required_handles_get(). Only available* if @kconfig{CONFIG_DEVICE_DEPS} is enabled.*/Z_DEVICE_DEPS_CONST device_handle_t *deps;
#endif /* CONFIG_DEVICE_DEPS */
#if defined(CONFIG_PM_DEVICE) || defined(__DOXYGEN__)/*** Reference to the device PM resources (only available if* @kconfig{CONFIG_PM_DEVICE} is enabled).*/struct pm_device *pm;
#endif
};