diff options
author | barthess <barthess@yandex.ru> | 2015-05-02 20:49:54 +0300 |
---|---|---|
committer | barthess <barthess@yandex.ru> | 2015-05-02 20:49:54 +0300 |
commit | 789b4e18b14ec5b8183978238575a75e6b056d5c (patch) | |
tree | 0ce172d70253fce8bf0ad8156c0a2911e0103f3f /os/various/bitmap.h | |
parent | cce5848449c6468b27fdc3b47537dda467ae0656 (diff) | |
download | ChibiOS-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.h | 77 |
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_ */ + +/** @} */ |