Difference between revisions of "Zephyr drivers"

From Wiki at Neela Nurseries
Jump to: navigation, search
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