| 894 | } |
| 895 | |
| 896 | void AllocateAttributeMasks(CipClass *target_class) { |
| 897 | size_t size = 1 + CalculateIndex(target_class->highest_attribute_number); |
| 898 | OPENER_TRACE_INFO( |
| 899 | ">>> Allocate memory for %s %lu bytes times 3 for masks\n", |
| 900 | target_class->class_name, size); |
| 901 | target_class->get_single_bit_mask = CipCalloc(size, sizeof(uint8_t) ); |
| 902 | target_class->set_bit_mask = CipCalloc(size, sizeof(uint8_t) ); |
| 903 | target_class->get_all_bit_mask = CipCalloc(size, sizeof(uint8_t) ); |
| 904 | } |
| 905 | |
| 906 | size_t CalculateIndex(EipUint16 attribute_number) { |
| 907 | size_t index = attribute_number / 8; |
no test coverage detected