summaryrefslogtreecommitdiff
path: root/os/drivers/include/macro_util.h
diff options
context:
space:
mode:
authorKonstantin Kirik (snegovick) <snegovick@uprojects.org>2026-01-02 03:15:34 +0300
committerKonstantin Kirik (snegovick) <snegovick@uprojects.org>2026-01-02 03:15:34 +0300
commitad2dfef092949ed18109419994d931033aa57068 (patch)
treecf8445b647d9b686bad613eff966da1a433a5bdf /os/drivers/include/macro_util.h
parent78ee7d5717807e6ac779293d0d3c78341de6130a (diff)
Add structured device drivers
* Add lowlevel generic device struct * Add clock control driver for stm32f769 Generic device struct and common device driver init scheme will help in implementation implementation of device tree or something like that for generalized hardware configuration.
Diffstat (limited to 'os/drivers/include/macro_util.h')
-rw-r--r--os/drivers/include/macro_util.h20
1 files changed, 20 insertions, 0 deletions
diff --git a/os/drivers/include/macro_util.h b/os/drivers/include/macro_util.h
new file mode 100644
index 00000000..0c447476
--- /dev/null
+++ b/os/drivers/include/macro_util.h
@@ -0,0 +1,20 @@
+#ifndef __DD_COMMON_H__
+#define __DD_COMMON_H__
+
+#include <stddef.h>
+
+#define Z_STRINGIFY(x) #x
+#define STRINGIFY(s) Z_STRINGIFY(s)
+
+/* concatenate the values of the arguments into one */
+#define _DO_CONCAT(x, y) x ## y
+#define _CONCAT(x, y) _DO_CONCAT(x, y)
+
+#define OFFSETOF(TYPE, MEMBER) ((size_t) &((TYPE *)0)->MEMBER)
+
+#define CONTAINER_OF(ptr, type, member) ({ \
+ const typeof( ((type *)0)->member ) *__mptr = (ptr); \
+ (type *)((char *)__mptr - OFFSETOF(type,member));})
+
+#endif/*__DD_COMMON_H__*/
+