diff options
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_ */ + +/** @} */ |