File tree 1 file changed +20
-8
lines changed
1 file changed +20
-8
lines changed Original file line number Diff line number Diff line change @@ -1028,29 +1028,41 @@ RTM_EXPORT(rt_free_align);
1028
1028
#ifndef RT_USING_CPU_FFS
1029
1029
#ifdef RT_USING_PUNY_FFS
1030
1030
int __rt_ffs (rt_int32_t value ) {
1031
+ int position = 1 ; // position start from 1
1032
+
1031
1033
if (value == 0 )
1034
+ {
1032
1035
return 0 ; // 0 means no bit 1
1033
-
1034
- int position = 1 ; // position start from 1
1035
-
1036
+ }
1037
+
1036
1038
// search half range
1037
- if ((value & 0xFFFF ) == 0 ) { // is lower 16bit 0
1039
+ if ((value & 0xFFFF ) == 0 )
1040
+ {
1041
+ // is lower 16bit 0
1038
1042
position += 16 ;
1039
1043
value >>= 16 ;
1040
1044
}
1041
- if ((value & 0xFF ) == 0 ) { // is lower 8bit 0
1045
+ if ((value & 0xFF ) == 0 )
1046
+ {
1047
+ // is lower 8bit 0
1042
1048
position += 8 ;
1043
1049
value >>= 8 ;
1044
1050
}
1045
- if ((value & 0xF ) == 0 ) { // is lower 4bit 0
1051
+ if ((value & 0xF ) == 0 )
1052
+ {
1053
+ // is lower 4bit 0
1046
1054
position += 4 ;
1047
1055
value >>= 4 ;
1048
1056
}
1049
- if ((value & 0x3 ) == 0 ) { // is lower 2bit 0
1057
+ if ((value & 0x3 ) == 0 )
1058
+ {
1059
+ // is lower 2bit 0
1050
1060
position += 2 ;
1051
1061
value >>= 2 ;
1052
1062
}
1053
- if ((value & 0x1 ) == 0 ) { // is lower 1bit 0
1063
+ if ((value & 0x1 ) == 0 )
1064
+ {
1065
+ // is lower 1bit 0
1054
1066
position += 1 ;
1055
1067
}
1056
1068
You can’t perform that action at this time.
0 commit comments