Difference between revisions of "Zephyr drivers"
From Wiki at Neela Nurseries
m (Add section "Zephyr Kernel Level Device Support") |
m (→^ Zephyr Kernel Level Device Support) |
||
Line 7: | Line 7: | ||
== [[#top|^]] Zephyr Kernel Level Device Support == | == [[#top|^]] Zephyr Kernel Level Device Support == | ||
+ | |||
+ | Interesting code excerpt from `zephy/kernel/device.c`, this following routine is the implementation behind a wrapper like function `device_is_read()`. But this routine, and sensibly so, doesn't say anything about how a given device is initialized. It only looks at two data members of a device instance data structure: | ||
<pre> | <pre> |
Revision as of 22:57, 1 November 2022
drivers
^ Zephyr Kernel Level Device Support
Interesting code excerpt from `zephy/kernel/device.c`, this following routine is the implementation behind a wrapper like function `device_is_read()`. But this routine, and sensibly so, doesn't say anything about how a given device is initialized. It only looks at two data members of a device instance data structure:
150 151 bool z_device_is_ready(const struct device *dev) 152 { 153 /* 154 * if an invalid device pointer is passed as argument, this call 155 * reports the `device` as not ready for usage. 156 */ 157 if (dev == NULL) { 158 return false; 159 } 160 161 return dev->state->initialized && (dev->state->init_res == 0U); 162 } 163