You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
This repo is archived. You can view files and clone it, but cannot push or open issues/pull-requests.

util.h 1.2KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. /*
  2. Copyright 2011 Jun Wako <[email protected]>
  3. This program is free software: you can redistribute it and/or modify
  4. it under the terms of the GNU General Public License as published by
  5. the Free Software Foundation, either version 2 of the License, or
  6. (at your option) any later version.
  7. This program is distributed in the hope that it will be useful,
  8. but WITHOUT ANY WARRANTY; without even the implied warranty of
  9. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  10. GNU General Public License for more details.
  11. You should have received a copy of the GNU General Public License
  12. along with this program. If not, see <http://www.gnu.org/licenses/>.
  13. */
  14. #ifndef UTIL_H
  15. #define UTIL_H
  16. #include <stdint.h>
  17. // convert to L string
  18. #define LSTR(s) XLSTR(s)
  19. #define XLSTR(s) L ## #s
  20. // convert to string
  21. #define STR(s) XSTR(s)
  22. #define XSTR(s) #s
  23. #ifdef __cplusplus
  24. extern "C" {
  25. #endif
  26. uint8_t bitpop(uint8_t bits);
  27. uint8_t bitpop16(uint16_t bits);
  28. uint8_t bitpop32(uint32_t bits);
  29. uint8_t biton(uint8_t bits);
  30. uint8_t biton16(uint16_t bits);
  31. uint8_t biton32(uint32_t bits);
  32. uint8_t bitrev(uint8_t bits);
  33. uint16_t bitrev16(uint16_t bits);
  34. uint32_t bitrev32(uint32_t bits);
  35. #ifdef __cplusplus
  36. }
  37. #endif
  38. #endif