summaryrefslogtreecommitdiffstats
path: root/gbdk/gbdk-lib/include/stdatomic.h
diff options
context:
space:
mode:
authorLouis Burda <quent.burda@gmail.com>2022-06-02 15:28:40 +0200
committerLouis Burda <quent.burda@gmail.com>2022-06-02 15:28:40 +0200
commit5bc16063c29aa4d3d287ebd163ccdbcbf54c4f9f (patch)
treec131f947a37b3af2d14d41e9eda098bdec2d061c /gbdk/gbdk-lib/include/stdatomic.h
parent78a5f810b22f0d8cafa05f638b0cb2e889824859 (diff)
downloadcscg2022-gearboy-master.tar.gz
cscg2022-gearboy-master.zip
Added submodule filesHEADmaster
Diffstat (limited to 'gbdk/gbdk-lib/include/stdatomic.h')
-rw-r--r--gbdk/gbdk-lib/include/stdatomic.h21
1 files changed, 21 insertions, 0 deletions
diff --git a/gbdk/gbdk-lib/include/stdatomic.h b/gbdk/gbdk-lib/include/stdatomic.h
new file mode 100644
index 00000000..747179d0
--- /dev/null
+++ b/gbdk/gbdk-lib/include/stdatomic.h
@@ -0,0 +1,21 @@
+#ifndef __SDCC_STDATOMIC_H
+#define __SDCC_STDATOMIC_H 1
+
+#include <types.h>
+
+typedef struct {unsigned char flag;} atomic_flag;
+
+#if defined(__SDCC_z80) || defined(__SDCC_z180) || defined(__SDCC_ez80_z80) || defined(__SDCC_sm83) || defined(__SDCC_r2k) || defined(__SDCC_r3ka) || defined(__SDCC_stm8) || defined(__SDCC_hc08) || defined(__SDCC_s08)
+#define ATOMIC_FLAG_INIT {1}
+//#elif defined(__SDCC_mcs51)
+//#define ATOMIC_FLAG_INIT {0}
+#else
+#error Support for atomic_flag not implemented
+#endif
+
+_Bool atomic_flag_test_and_set(volatile atomic_flag *object) OLDCALL;
+
+void atomic_flag_clear(volatile atomic_flag *object);
+
+#endif
+