Choco OS  V.0.16.9.0
Join to the chocolate world
oc_bits.h
Go to the documentation of this file.
1 
30 #ifndef SYSTEM_LIBRARIES_BITS_OC_BITS_H_
31 #define SYSTEM_LIBRARIES_BITS_OC_BITS_H_
32 
33 #include <stdint.h>
34 #include <stdbool.h>
35 
36 //==========================================================================================================================================
46 //==========================================================================================================================================
47 #define oC_Bits_Mask_U8( FROM , TO ) ((((((uint8_t)1)<<(TO)) - 1 ) | (((uint8_t)1)<<(TO))) ^ ((((uint8_t)1)<<(FROM)) - 1))
48 
49 //==========================================================================================================================================
59 //==========================================================================================================================================
60 #define oC_Bits_Mask_U16( FROM , TO ) ((((((uint16_t)1)<<(TO)) - 1 ) | (((uint16_t)1)<<(TO))) ^ ((((uint16_t)1)<<(FROM)) - 1))
61 
62 //==========================================================================================================================================
72 //==========================================================================================================================================
73 #define oC_Bits_Mask_U32( FROM , TO ) ((((((uint32_t)1)<<(TO)) - 1 ) | (((uint32_t)1)<<(TO))) ^ ((((uint32_t)1)<<(FROM)) - 1))
74 
75 //==========================================================================================================================================
85 //==========================================================================================================================================
86 #define oC_Bits_Mask_U64( FROM , TO ) ((((((uint64_t)1)<<(TO)) - 1 ) | (((uint64_t)1)<<(TO))) ^ ((((uint64_t)1)<<(FROM)) - 1))
87 
88 //==========================================================================================================================================
105 //==========================================================================================================================================
106 #define oC_Bits_ValueWithMask(VALUE,FROM,MASK) ( ((VALUE) << (FROM)) & (MASK) )
107 
108 //==========================================================================================================================================
119 //==========================================================================================================================================
120 static inline uint8_t oC_Bits_SetBitsU8( uint8_t * outVariable , uint8_t Mask )
121 {
122  *outVariable |= Mask;
123  return *outVariable;
124 }
125 
126 //==========================================================================================================================================
136 //==========================================================================================================================================
137 static inline uint16_t oC_Bits_SetBitsU16( uint16_t * outVariable , uint16_t Mask )
138 {
139  *outVariable |= Mask;
140  return *outVariable;
141 }
142 
143 //==========================================================================================================================================
153 //==========================================================================================================================================
154 static inline uint32_t oC_Bits_SetBitsU32( uint32_t * outVariable , uint32_t Mask )
155 {
156  *outVariable |= Mask;
157  return *outVariable;
158 }
159 
160 //==========================================================================================================================================
170 //==========================================================================================================================================
171 static inline uint64_t oC_Bits_SetBitsU64( uint64_t * outVariable , uint64_t Mask )
172 {
173  *outVariable |= Mask;
174  return *outVariable;
175 }
176 
177 //==========================================================================================================================================
187 //==========================================================================================================================================
188 static inline uint8_t oC_Bits_ClearBitsU8( uint8_t * outVariable , uint8_t Mask )
189 {
190  *outVariable &= ( ~Mask );
191  return *outVariable;
192 }
193 
194 //==========================================================================================================================================
204 //==========================================================================================================================================
205 static inline uint16_t oC_Bits_ClearBitsU16( uint16_t * outVariable , uint16_t Mask )
206 {
207  *outVariable &= ( ~Mask );
208  return *outVariable;
209 }
210 
211 //==========================================================================================================================================
221 //==========================================================================================================================================
222 static inline uint32_t oC_Bits_ClearBitsU32( uint32_t * outVariable , uint32_t Mask )
223 {
224  *outVariable &= ( ~Mask );
225  return *outVariable;
226 }
227 
228 //==========================================================================================================================================
238 //==========================================================================================================================================
239 static inline uint64_t oC_Bits_ClearBitsU64( uint64_t * outVariable , uint64_t Mask )
240 {
241  *outVariable &= ( ~Mask );
242  return *outVariable;
243 }
244 
245 //==========================================================================================================================================
261 //==========================================================================================================================================
262 static inline uint8_t oC_Bits_SetValueU8( uint8_t * outVariable , uint8_t Value , uint8_t StartBitNr , uint8_t EndBitNr)
263 {
264  *outVariable = ( *outVariable & ( ~oC_Bits_Mask_U8 ( StartBitNr , EndBitNr ))) | ((Value<<StartBitNr) & oC_Bits_Mask_U8 ( StartBitNr , EndBitNr ));
265  return *outVariable;
266 }
267 
268 //==========================================================================================================================================
284 //==========================================================================================================================================
285 static inline uint16_t oC_Bits_SetValueU16( uint16_t * outVariable , uint16_t Value , uint8_t StartBitNr , uint8_t EndBitNr)
286 {
287  *outVariable = ( *outVariable & ( ~oC_Bits_Mask_U16 ( StartBitNr , EndBitNr ))) | ((Value<<StartBitNr) & oC_Bits_Mask_U16 ( StartBitNr , EndBitNr ));
288  return *outVariable;
289 }
290 
291 //==========================================================================================================================================
307 //==========================================================================================================================================
308 static inline uint32_t oC_Bits_SetValueU32( uint32_t * outVariable , uint32_t Value , uint8_t StartBitNr , uint8_t EndBitNr)
309 {
310  *outVariable = ( *outVariable & ( ~oC_Bits_Mask_U32 ( StartBitNr , EndBitNr ))) | ((Value<<StartBitNr) & oC_Bits_Mask_U32 ( StartBitNr , EndBitNr ));
311  return *outVariable;
312 }
313 
314 //==========================================================================================================================================
330 //==========================================================================================================================================
331 static inline uint64_t oC_Bits_SetValueU64( uint64_t * outVariable , uint64_t Value , uint8_t StartBitNr , uint8_t EndBitNr)
332 {
333  *outVariable = ( *outVariable & ( ~oC_Bits_Mask_U64 ( StartBitNr , EndBitNr ))) | ((Value<<StartBitNr) & oC_Bits_Mask_U64 ( StartBitNr , EndBitNr ));
334  return *outVariable;
335 }
336 
337 //==========================================================================================================================================
352 //==========================================================================================================================================
353 static inline uint8_t oC_Bits_GetValueU8( uint8_t Variable , uint8_t StartBitNr , uint8_t EndBitNr )
354 {
355  return (oC_Bits_Mask_U8 ( StartBitNr , EndBitNr ) & Variable)>>StartBitNr;
356 }
357 
358 //==========================================================================================================================================
373 //==========================================================================================================================================
374 static inline uint16_t oC_Bits_GetValueU16( uint16_t Variable , uint8_t StartBitNr , uint8_t EndBitNr )
375 {
376  return (oC_Bits_Mask_U16 ( StartBitNr , EndBitNr ) & Variable)>>StartBitNr;
377 }
378 
379 //==========================================================================================================================================
394 //==========================================================================================================================================
395 static inline uint32_t oC_Bits_GetValueU32( uint32_t Variable , uint8_t StartBitNr , uint8_t EndBitNr )
396 {
397  return (oC_Bits_Mask_U32 ( StartBitNr , EndBitNr ) & Variable)>>StartBitNr;
398 }
399 
400 //==========================================================================================================================================
415 //==========================================================================================================================================
416 static inline uint64_t oC_Bits_GetValueU64( uint64_t Variable , uint8_t StartBitNr , uint8_t EndBitNr )
417 {
418  return (oC_Bits_Mask_U64 ( StartBitNr , EndBitNr ) & Variable)>>StartBitNr;
419 }
420 
421 //==========================================================================================================================================
430 //==========================================================================================================================================
431 static inline void oC_Bits_SplitU64ToU32( uint64_t Variable , uint32_t * outLow , uint32_t * outHigh )
432 {
433  *outLow = (uint32_t)Variable;
434  *outHigh = (uint32_t)(Variable>>32);
435 }
436 
437 //==========================================================================================================================================
446 //==========================================================================================================================================
447 static inline void oC_Bits_SplitU32ToU16( uint32_t Variable , uint16_t * outLow , uint16_t * outHigh )
448 {
449  *outLow = (uint16_t)Variable;
450  *outHigh = (uint16_t)(Variable>>16);
451 }
452 
453 //==========================================================================================================================================
462 //==========================================================================================================================================
463 static inline void oC_Bits_SplitU16ToU8( uint16_t Variable , uint8_t * outLow , uint8_t * outHigh )
464 {
465  *outLow = (uint8_t)Variable;
466  *outHigh = (uint8_t)(Variable>>8);
467 }
468 
469 //==========================================================================================================================================
479 //==========================================================================================================================================
480 static inline uint16_t oC_Bits_JoinU8ToU16( uint8_t LowPart , uint8_t HighPart )
481 {
482  return (((uint16_t)HighPart)<<8)|((uint16_t)LowPart);
483 }
484 
485 //==========================================================================================================================================
495 //==========================================================================================================================================
496 static inline uint32_t oC_Bits_JoinU16ToU32( uint16_t LowPart , uint16_t HighPart )
497 {
498  return (((uint32_t)HighPart)<<16)|((uint32_t)LowPart);
499 }
500 
501 //==========================================================================================================================================
511 //==========================================================================================================================================
512 static inline uint64_t oC_Bits_JoinU32ToU64( uint32_t LowPart , uint32_t HighPart )
513 {
514  return (((uint64_t)HighPart)<<32)|((uint64_t)LowPart);
515 }
516 
517 //==========================================================================================================================================
526 //==========================================================================================================================================
527 static inline int8_t oC_Bits_GetBitNumberU8( uint8_t BitMask )
528 {
529  int8_t i;
530  int8_t ret = -1;
531  for (i = 0; i < 8; i++)
532  {
533  if ((BitMask & 0x01) == 0x01)
534  {
535  ret = i;
536  break;
537  }
538  else
539  {
540  BitMask = (BitMask >> 1);
541  }
542  }
543  return ret;
544 }
545 
546 //==========================================================================================================================================
555 //==========================================================================================================================================
556 static inline int8_t oC_Bits_GetBitNumberU16( uint16_t BitMask )
557 {
558  int8_t i;
559  int8_t ret = -1;
560  for (i = 0; i < 16; i++)
561  {
562  if ((BitMask & 0x0001) == 0x0001)
563  {
564  ret = i;
565  break;
566  }
567  else
568  {
569  BitMask = (BitMask >> 1);
570  }
571  }
572  return ret;
573 }
574 
575 //==========================================================================================================================================
584 //==========================================================================================================================================
585 static inline int8_t oC_Bits_GetBitNumberU32( uint32_t BitMask )
586 {
587  int8_t i;
588  int8_t ret = -1;
589  for (i = 0; i < 32; i++)
590  {
591  if ((BitMask & 0x00000001) == 0x00000001)
592  {
593  ret = i;
594  break;
595  }
596  else
597  {
598  BitMask = (BitMask >> 1);
599  }
600  }
601  return ret;
602 }
603 
604 //==========================================================================================================================================
613 //==========================================================================================================================================
614 static inline int8_t oC_Bits_GetBitNumberU64( uint64_t BitMask )
615 {
616  int8_t i;
617  int8_t ret = -1;
618  for (i = 0; i < 64; i++)
619  {
620  if ((BitMask & 0x0000000000000001) == 0x0000000000000001)
621  {
622  ret = i;
623  break;
624  }
625  else
626  {
627  BitMask = (BitMask >> 1);
628  }
629  }
630  return ret;
631 }
632 
633 //==========================================================================================================================================
644 //==========================================================================================================================================
645 static inline bool oC_Bits_IsBitSetU8( uint8_t BitMask , uint8_t BitIndex )
646 {
647  return (BitMask & (1<<BitIndex)) == (1<<BitIndex);
648 }
649 
650 //==========================================================================================================================================
661 //==========================================================================================================================================
662 static inline bool oC_Bits_IsBitSetU16( uint16_t BitMask , uint8_t BitIndex )
663 {
664  return (BitMask & ((uint16_t)1<<BitIndex)) == ((uint16_t)1<<BitIndex);
665 }
666 
667 //==========================================================================================================================================
678 //==========================================================================================================================================
679 static inline bool oC_Bits_IsBitSetU32( uint32_t BitMask , uint8_t BitIndex )
680 {
681  return (BitMask & ((uint32_t)1<<BitIndex)) == ((uint32_t)1<<BitIndex);
682 }
683 
684 //==========================================================================================================================================
695 //==========================================================================================================================================
696 static inline bool oC_Bits_IsBitSetU64( uint64_t BitMask , uint8_t BitIndex )
697 {
698  return (BitMask & ((uint64_t)1<<BitIndex)) == ((uint64_t)1<<BitIndex);
699 }
700 
701 //==========================================================================================================================================
710 //==========================================================================================================================================
711 static inline uint8_t oC_Bits_SetBitU8( uint8_t * outVariable , uint8_t BitIndex )
712 {
713  *outVariable |= (uint8_t)1<<BitIndex;
714  return *outVariable;
715 }
716 
717 //==========================================================================================================================================
726 //==========================================================================================================================================
727 static inline uint16_t oC_Bits_SetBitU16( uint16_t * outVariable , uint8_t BitIndex )
728 {
729  *outVariable |= (uint16_t)1<<BitIndex;
730  return *outVariable;
731 }
732 
733 //==========================================================================================================================================
742 //==========================================================================================================================================
743 static inline uint32_t oC_Bits_SetBitU32( uint32_t * outVariable , uint8_t BitIndex )
744 {
745  *outVariable |= (uint32_t)1<<BitIndex;
746  return *outVariable;
747 }
748 
749 //==========================================================================================================================================
758 //==========================================================================================================================================
759 static inline uint64_t oC_Bits_SetBitU64( uint64_t * outVariable , uint8_t BitIndex )
760 {
761  *outVariable |= (uint64_t)1<<BitIndex;
762  return *outVariable;
763 }
764 
765 
766 //==========================================================================================================================================
777 //==========================================================================================================================================
778 static inline uint8_t oC_Bits_ClearBitU8( uint8_t * outVariable , uint8_t BitIndex )
779 {
780  *outVariable &= ~((uint8_t)1<<BitIndex );
781  return *outVariable;
782 }
783 
784 //==========================================================================================================================================
795 //==========================================================================================================================================
796 static inline uint16_t oC_Bits_ClearBitU16( uint16_t * outVariable , uint8_t BitIndex )
797 {
798  *outVariable &= ~((uint16_t)1<<BitIndex );
799  return *outVariable;
800 }
801 
802 //==========================================================================================================================================
813 //==========================================================================================================================================
814 static inline uint32_t oC_Bits_ClearBitU32( uint32_t * outVariable , uint8_t BitIndex )
815 {
816  *outVariable &= ~((uint32_t)1<<BitIndex );
817  return *outVariable;
818 }
819 
820 //==========================================================================================================================================
831 //==========================================================================================================================================
832 static inline uint64_t oC_Bits_ClearBitU64( uint64_t * outVariable , uint8_t BitIndex )
833 {
834  *outVariable &= ~((uint64_t)1<<BitIndex );
835  return *outVariable;
836 }
837 
838 //==========================================================================================================================================
849 //==========================================================================================================================================
850 static inline bool oC_Bits_AreBitsSetU8( uint8_t BitMask , uint8_t BitsToCheck )
851 {
852  return (BitMask & BitsToCheck) == BitsToCheck;
853 }
854 
855 //==========================================================================================================================================
866 //==========================================================================================================================================
867 static inline bool oC_Bits_AreBitsSetU16( uint16_t BitMask , uint16_t BitsToCheck )
868 {
869  return (BitMask & BitsToCheck) == BitsToCheck;
870 }
871 
872 //==========================================================================================================================================
883 //==========================================================================================================================================
884 static inline bool oC_Bits_AreBitsSetU32( uint32_t BitMask , uint32_t BitsToCheck )
885 {
886  return (BitMask & BitsToCheck) == BitsToCheck;
887 }
888 
889 //==========================================================================================================================================
900 //==========================================================================================================================================
901 static inline bool oC_Bits_AreBitsSetU64( uint64_t BitMask , uint64_t BitsToCheck )
902 {
903  return (BitMask & BitsToCheck) == BitsToCheck;
904 }
905 
906 //==========================================================================================================================================
917 //==========================================================================================================================================
918 static inline bool oC_Bits_AreBitsClearU8( uint8_t BitMask , uint8_t BitsToCheck )
919 {
920  return ((~BitMask) & BitsToCheck) == BitsToCheck;
921 }
922 
923 //==========================================================================================================================================
934 //==========================================================================================================================================
935 static inline bool oC_Bits_AreBitsClearU16( uint16_t BitMask , uint16_t BitsToCheck )
936 {
937  return ((~BitMask) & BitsToCheck) == BitsToCheck;
938 }
939 
940 //==========================================================================================================================================
951 //==========================================================================================================================================
952 static inline bool oC_Bits_AreBitsClearU32( uint32_t BitMask , uint32_t BitsToCheck )
953 {
954  return ((~BitMask) & BitsToCheck) == BitsToCheck;
955 }
956 
957 //==========================================================================================================================================
968 //==========================================================================================================================================
969 static inline bool oC_Bits_AreBitsClearU64( uint64_t BitMask , uint64_t BitsToCheck )
970 {
971  return ((~BitMask) & BitsToCheck) == BitsToCheck;
972 }
973 
974 //==========================================================================================================================================
985 //==========================================================================================================================================
986 static inline bool oC_Bits_IsAtLeastOneBitSetU8( uint8_t BitMask , uint8_t BitsToCheck )
987 {
988  return (BitMask & BitsToCheck);
989 }
990 
991 //==========================================================================================================================================
1002 //==========================================================================================================================================
1003 static inline bool oC_Bits_IsAtLeastOneBitSetU16( uint16_t BitMask , uint16_t BitsToCheck )
1004 {
1005  return (BitMask & BitsToCheck);
1006 }
1007 
1008 //==========================================================================================================================================
1019 //==========================================================================================================================================
1020 static inline bool oC_Bits_IsAtLeastOneBitSetU32( uint32_t BitMask , uint32_t BitsToCheck )
1021 {
1022  return (BitMask & BitsToCheck);
1023 }
1024 
1025 //==========================================================================================================================================
1036 //==========================================================================================================================================
1037 static inline bool oC_Bits_IsAtLeastOneBitSetU64( uint64_t BitMask , uint64_t BitsToCheck )
1038 {
1039  return (BitMask & BitsToCheck);
1040 }
1041 
1042 //==========================================================================================================================================
1053 //==========================================================================================================================================
1054 static inline bool oC_Bits_IsAtLeastOneBitClearU8( uint8_t BitMask , uint8_t BitsToCheck )
1055 {
1056  return ((~BitMask) & BitsToCheck);
1057 }
1058 
1059 //==========================================================================================================================================
1070 //==========================================================================================================================================
1071 static inline bool oC_Bits_IsAtLeastOneBitClearU16( uint16_t BitMask , uint16_t BitsToCheck )
1072 {
1073  return ((~BitMask) & BitsToCheck);
1074 }
1075 
1076 //==========================================================================================================================================
1087 //==========================================================================================================================================
1088 static inline bool oC_Bits_IsAtLeastOneBitClearU32( uint32_t BitMask , uint32_t BitsToCheck )
1089 {
1090  return ((~BitMask) & BitsToCheck);
1091 }
1092 
1093 //==========================================================================================================================================
1104 //==========================================================================================================================================
1105 static inline bool oC_Bits_IsAtLeastOneBitClearU64( uint64_t BitMask , uint64_t BitsToCheck )
1106 {
1107  return ((~BitMask) & BitsToCheck);
1108 }
1109 
1111 #endif /* SYSTEM_LIBRARIES_BITS_OC_BITS_H_ */
static uint64_t oC_Bits_SetBitU64(uint64_t *outVariable, uint8_t BitIndex)
sets bit in the variable
Definition: oc_bits.h:759
#define oC_Bits_Mask_U8(FROM, TO)
Definition: oc_bits.h:47
static bool oC_Bits_AreBitsSetU32(uint32_t BitMask, uint32_t BitsToCheck)
checks if all bits in field are set
Definition: oc_bits.h:884
static bool oC_Bits_AreBitsSetU16(uint16_t BitMask, uint16_t BitsToCheck)
checks if all bits in field are set
Definition: oc_bits.h:867
static bool oC_Bits_AreBitsClearU8(uint8_t BitMask, uint8_t BitsToCheck)
checks if all bits in field are clear
Definition: oc_bits.h:918
static uint16_t oC_Bits_SetBitsU16(uint16_t *outVariable, uint16_t Mask)
Definition: oc_bits.h:137
static bool oC_Bits_AreBitsClearU64(uint64_t BitMask, uint64_t BitsToCheck)
checks if all bits in field are clear
Definition: oc_bits.h:969
static bool oC_Bits_AreBitsClearU16(uint16_t BitMask, uint16_t BitsToCheck)
checks if all bits in field are clear
Definition: oc_bits.h:935
#define oC_Bits_Mask_U32(FROM, TO)
Definition: oc_bits.h:73
static int8_t oC_Bits_GetBitNumberU16(uint16_t BitMask)
Definition: oc_bits.h:556
static bool oC_Bits_IsAtLeastOneBitClearU32(uint32_t BitMask, uint32_t BitsToCheck)
checks if at least one of bits in field is set
Definition: oc_bits.h:1088
#define oC_Bits_Mask_U64(FROM, TO)
Definition: oc_bits.h:86
static uint32_t oC_Bits_SetValueU32(uint32_t *outVariable, uint32_t Value, uint8_t StartBitNr, uint8_t EndBitNr)
Definition: oc_bits.h:308
static bool oC_Bits_IsAtLeastOneBitClearU8(uint8_t BitMask, uint8_t BitsToCheck)
checks if at least one of bits in field is set
Definition: oc_bits.h:1054
static uint32_t oC_Bits_GetValueU32(uint32_t Variable, uint8_t StartBitNr, uint8_t EndBitNr)
Definition: oc_bits.h:395
static uint32_t oC_Bits_JoinU16ToU32(uint16_t LowPart, uint16_t HighPart)
Definition: oc_bits.h:496
static uint8_t oC_Bits_SetBitsU8(uint8_t *outVariable, uint8_t Mask)
Definition: oc_bits.h:120
static bool oC_Bits_AreBitsSetU8(uint8_t BitMask, uint8_t BitsToCheck)
checks if all bits in field are set
Definition: oc_bits.h:850
static uint64_t oC_Bits_GetValueU64(uint64_t Variable, uint8_t StartBitNr, uint8_t EndBitNr)
Definition: oc_bits.h:416
static bool oC_Bits_IsBitSetU64(uint64_t BitMask, uint8_t BitIndex)
checks if bit is set
Definition: oc_bits.h:696
static uint16_t oC_Bits_SetValueU16(uint16_t *outVariable, uint16_t Value, uint8_t StartBitNr, uint8_t EndBitNr)
Definition: oc_bits.h:285
static uint64_t oC_Bits_ClearBitsU64(uint64_t *outVariable, uint64_t Mask)
Definition: oc_bits.h:239
static uint8_t oC_Bits_ClearBitU8(uint8_t *outVariable, uint8_t BitIndex)
clear selected bit
Definition: oc_bits.h:778
static void oC_Bits_SplitU16ToU8(uint16_t Variable, uint8_t *outLow, uint8_t *outHigh)
Definition: oc_bits.h:463
#define oC_Bits_Mask_U16(FROM, TO)
Definition: oc_bits.h:60
static bool oC_Bits_IsBitSetU8(uint8_t BitMask, uint8_t BitIndex)
checks if bit is set
Definition: oc_bits.h:645
static bool oC_Bits_IsAtLeastOneBitClearU64(uint64_t BitMask, uint64_t BitsToCheck)
checks if at least one of bits in field is set
Definition: oc_bits.h:1105
static bool oC_Bits_IsAtLeastOneBitSetU32(uint32_t BitMask, uint32_t BitsToCheck)
checks if at least one of bits in field is set
Definition: oc_bits.h:1020
static void oC_Bits_SplitU64ToU32(uint64_t Variable, uint32_t *outLow, uint32_t *outHigh)
Definition: oc_bits.h:431
static uint32_t oC_Bits_SetBitsU32(uint32_t *outVariable, uint32_t Mask)
Definition: oc_bits.h:154
static int8_t oC_Bits_GetBitNumberU8(uint8_t BitMask)
Definition: oc_bits.h:527
static uint64_t oC_Bits_SetBitsU64(uint64_t *outVariable, uint64_t Mask)
Definition: oc_bits.h:171
static uint16_t oC_Bits_SetBitU16(uint16_t *outVariable, uint8_t BitIndex)
sets bit in the variable
Definition: oc_bits.h:727
static bool oC_Bits_IsAtLeastOneBitSetU8(uint8_t BitMask, uint8_t BitsToCheck)
checks if at least one of bits in field is set
Definition: oc_bits.h:986
static void oC_Bits_SplitU32ToU16(uint32_t Variable, uint16_t *outLow, uint16_t *outHigh)
Definition: oc_bits.h:447
static bool oC_Bits_IsAtLeastOneBitClearU16(uint16_t BitMask, uint16_t BitsToCheck)
checks if at least one of bits in field is set
Definition: oc_bits.h:1071
static int8_t oC_Bits_GetBitNumberU32(uint32_t BitMask)
Definition: oc_bits.h:585
static uint64_t oC_Bits_SetValueU64(uint64_t *outVariable, uint64_t Value, uint8_t StartBitNr, uint8_t EndBitNr)
Definition: oc_bits.h:331
static uint16_t oC_Bits_ClearBitU16(uint16_t *outVariable, uint8_t BitIndex)
clear selected bit
Definition: oc_bits.h:796
static uint16_t oC_Bits_JoinU8ToU16(uint8_t LowPart, uint8_t HighPart)
Definition: oc_bits.h:480
static bool oC_Bits_AreBitsClearU32(uint32_t BitMask, uint32_t BitsToCheck)
checks if all bits in field are clear
Definition: oc_bits.h:952
static uint64_t oC_Bits_JoinU32ToU64(uint32_t LowPart, uint32_t HighPart)
Definition: oc_bits.h:512
static bool oC_Bits_IsBitSetU16(uint16_t BitMask, uint8_t BitIndex)
checks if bit is set
Definition: oc_bits.h:662
static uint16_t oC_Bits_GetValueU16(uint16_t Variable, uint8_t StartBitNr, uint8_t EndBitNr)
Definition: oc_bits.h:374
static bool oC_Bits_IsAtLeastOneBitSetU16(uint16_t BitMask, uint16_t BitsToCheck)
checks if at least one of bits in field is set
Definition: oc_bits.h:1003
static uint32_t oC_Bits_ClearBitsU32(uint32_t *outVariable, uint32_t Mask)
Definition: oc_bits.h:222
static bool oC_Bits_IsAtLeastOneBitSetU64(uint64_t BitMask, uint64_t BitsToCheck)
checks if at least one of bits in field is set
Definition: oc_bits.h:1037
static int8_t oC_Bits_GetBitNumberU64(uint64_t BitMask)
Definition: oc_bits.h:614
static bool oC_Bits_IsBitSetU32(uint32_t BitMask, uint8_t BitIndex)
checks if bit is set
Definition: oc_bits.h:679
static uint8_t oC_Bits_GetValueU8(uint8_t Variable, uint8_t StartBitNr, uint8_t EndBitNr)
Definition: oc_bits.h:353
static uint16_t oC_Bits_ClearBitsU16(uint16_t *outVariable, uint16_t Mask)
Definition: oc_bits.h:205
static uint32_t oC_Bits_SetBitU32(uint32_t *outVariable, uint8_t BitIndex)
sets bit in the variable
Definition: oc_bits.h:743
static uint8_t oC_Bits_SetValueU8(uint8_t *outVariable, uint8_t Value, uint8_t StartBitNr, uint8_t EndBitNr)
Definition: oc_bits.h:262
static uint64_t oC_Bits_ClearBitU64(uint64_t *outVariable, uint8_t BitIndex)
clear selected bit
Definition: oc_bits.h:832
static uint8_t oC_Bits_SetBitU8(uint8_t *outVariable, uint8_t BitIndex)
sets bit in the variable
Definition: oc_bits.h:711
static uint8_t oC_Bits_ClearBitsU8(uint8_t *outVariable, uint8_t Mask)
Definition: oc_bits.h:188
static bool oC_Bits_AreBitsSetU64(uint64_t BitMask, uint64_t BitsToCheck)
checks if all bits in field are set
Definition: oc_bits.h:901
static uint32_t oC_Bits_ClearBitU32(uint32_t *outVariable, uint8_t BitIndex)
clear selected bit
Definition: oc_bits.h:814