diff options
| author | Konstantin Kirik (snegovick) <snegovick@uprojects.org> | 2026-01-02 03:15:34 +0300 |
|---|---|---|
| committer | Konstantin Kirik (snegovick) <snegovick@uprojects.org> | 2026-01-02 03:15:34 +0300 |
| commit | ad2dfef092949ed18109419994d931033aa57068 (patch) | |
| tree | cf8445b647d9b686bad613eff966da1a433a5bdf /os/drivers/include/macro_util.h | |
| parent | 78ee7d5717807e6ac779293d0d3c78341de6130a (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.h | 20 |
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__*/ + |
