aboutsummaryrefslogtreecommitdiffstats
path: root/os/various/bitmap.h
diff options
context:
space:
mode:
authorbarthess <barthess@yandex.ru>2015-05-02 20:49:54 +0300
committerbarthess <barthess@yandex.ru>2015-05-02 20:49:54 +0300
commit789b4e18b14ec5b8183978238575a75e6b056d5c (patch)
tree0ce172d70253fce8bf0ad8156c0a2911e0103f3f /os/various/bitmap.h
parentcce5848449c6468b27fdc3b47537dda467ae0656 (diff)
downloadChibiOS-Contrib-789b4e18b14ec5b8183978238575a75e6b056d5c.tar.gz
ChibiOS-Contrib-789b4e18b14ec5b8183978238575a75e6b056d5c.tar.bz2
ChibiOS-Contrib-789b4e18b14ec5b8183978238575a75e6b056d5c.zip
Added bitmap class in os/various
Diffstat (limited to 'os/various/bitmap.h')
-rw-r--r--os/various/bitmap.h77
1 files changed, 77 insertions, 0 deletions
diff --git a/os/various/bitmap.h b/os/various/bitmap.h
new file mode 100644
index 0000000..d7831aa
--- /dev/null
+++ b/os/various/bitmap.h
@@ -0,0 +1,77 @@
+/*
+ ChibiOS/HAL - Copyright (C) 2015 Uladzimir Pylinsky aka barthess
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+*/
+
+/**
+ * @file bitmap.h
+ * @brief Bit map structures and macros.
+ *
+ * @addtogroup bitmap
+ * @{
+ */
+
+#ifndef _BITMAP_H_
+#define _BITMAP_H_
+
+/*===========================================================================*/
+/* Module constants. */
+/*===========================================================================*/
+
+/*===========================================================================*/
+/* Module pre-compile time settings. */
+/*===========================================================================*/
+
+/*===========================================================================*/
+/* Derived constants and error checks. */
+/*===========================================================================*/
+
+/*===========================================================================*/
+/* Module data structures and types. */
+/*===========================================================================*/
+
+typedef unsigned int bitmap_word_t;
+
+/**
+ * @brief Type of a event timer structure.
+ */
+typedef struct {
+ bitmap_word_t *array;
+ size_t len; /* Array length in _words_ NOT bytes */
+} bitmap_t;
+
+/*===========================================================================*/
+/* Module macros. */
+/*===========================================================================*/
+
+/*===========================================================================*/
+/* External declarations. */
+/*===========================================================================*/
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+ void bitmapObjectInit(bitmap_t *map, bitmap_word_t val);
+ void bitmapSet(bitmap_t *map, size_t bit);
+ void bitmapClear(bitmap_t *map, size_t bit);
+ void bitmapInvert(bitmap_t *map, size_t bit);
+ bitmap_word_t bitmapGet(const bitmap_t *map, size_t bit);
+ size_t bitmapGetBitsCount(const bitmap_t *map);
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _BITMAP_H_ */
+
+/** @} */