| {{> header}} |
| |
| // Prevent multiple inclusion |
| #pragma once |
| |
| #include <lib/core/CHIPConfig.h> |
| |
| {{#endpoint_config allowUnknownStorageOption="false" spaceForDefaultValue=4}} |
| |
| // Default values for the attributes longer than a pointer, |
| // in a form of a binary blob |
| // Separate block is generated for big-endian and little-endian cases. |
| #if BIGENDIAN_CPU |
| #define GENERATED_DEFAULTS {{endpoint_attribute_long_defaults endian="big"}} |
| |
| #else // !BIGENDIAN_CPU |
| #define GENERATED_DEFAULTS {{endpoint_attribute_long_defaults endian="little"}} |
| #endif // BIGENDIAN_CPU |
| |
| #define GENERATED_DEFAULTS_COUNT ({{endpoint_attribute_long_defaults_count}}) |
| |
| #define ZAP_TYPE(type) ZCL_ ## type ## _ATTRIBUTE_TYPE |
| #define ZAP_LONG_DEFAULTS_INDEX(index) { &generatedDefaults[index] } |
| #define ZAP_MIN_MAX_DEFAULTS_INDEX(index) { &minMaxDefaults[index] } |
| #define ZAP_EMPTY_DEFAULT() {(uint32_t) 0} |
| #define ZAP_SIMPLE_DEFAULT(x) {(uint32_t) x} |
| |
| // This is an array of EmberAfAttributeMinMaxValue structures. |
| #define GENERATED_MIN_MAX_DEFAULT_COUNT {{endpoint_attribute_min_max_count}} |
| #define GENERATED_MIN_MAX_DEFAULTS {{endpoint_attribute_min_max_list}} |
| |
| #define ZAP_ATTRIBUTE_MASK(mask) ATTRIBUTE_MASK_ ## mask |
| // This is an array of EmberAfAttributeMetadata structures. |
| #define GENERATED_ATTRIBUTE_COUNT {{endpoint_attribute_count}} |
| #define GENERATED_ATTRIBUTES {{ endpoint_attribute_list }} |
| |
| // This is an array of EmberAfCluster structures. |
| #define ZAP_ATTRIBUTE_INDEX(index) (&generatedAttributes[index]) |
| |
| #define ZAP_GENERATED_COMMANDS_INDEX(index) ((chip::CommandId *) (&generatedCommands[index])) |
| |
| // Cluster function static arrays |
| #define GENERATED_FUNCTION_ARRAYS {{chip_endpoint_generated_functions}} |
| |
| {{#chip_endpoint_generated_commands_list}} |
| {{#first}} |
| // clang-format off |
| #define GENERATED_COMMANDS { \ |
| {{/first}} |
| {{text}} |
| {{#last}} |
| } |
| |
| // clang-format on |
| {{/last}} |
| {{/chip_endpoint_generated_commands_list}} |
| |
| #define ZAP_CLUSTER_MASK(mask) CLUSTER_MASK_ ## mask |
| #define GENERATED_CLUSTER_COUNT {{endpoint_cluster_count}} |
| |
| |
| // clang-format off |
| #define GENERATED_CLUSTERS {{chip_endpoint_cluster_list}} |
| // clang-format on |
| |
| #define ZAP_CLUSTER_INDEX(index) (&generatedClusters[index]) |
| |
| #define ZAP_FIXED_ENDPOINT_DATA_VERSION_COUNT {{chip_endpoint_data_version_count}} |
| |
| // This is an array of EmberAfEndpointType structures. |
| #define GENERATED_ENDPOINT_TYPES {{endpoint_types_list}} |
| |
| |
| // Largest attribute size is needed for various buffers |
| #define ATTRIBUTE_LARGEST ({{endpoint_largest_attribute_size}}) |
| |
| static_assert(ATTRIBUTE_LARGEST <= CHIP_CONFIG_MAX_ATTRIBUTE_STORE_ELEMENT_SIZE, |
| "ATTRIBUTE_LARGEST larger than expected"); |
| |
| // Total size of singleton attributes |
| #define ATTRIBUTE_SINGLETONS_SIZE ({{endpoint_singletons_size}}) |
| |
| // Total size of attribute storage |
| #define ATTRIBUTE_MAX_SIZE ({{endpoint_total_storage_size}}) |
| |
| // Number of fixed endpoints |
| #define FIXED_ENDPOINT_COUNT ({{endpoint_count}}) |
| |
| // Array of endpoints that are supported, the data inside |
| // the array is the endpoint number. |
| #define FIXED_ENDPOINT_ARRAY {{endpoint_fixed_endpoint_array}} |
| |
| // Array of profile ids |
| #define FIXED_PROFILE_IDS {{endpoint_fixed_profile_id_array}} |
| |
| // Array of device types |
| #define FIXED_DEVICE_TYPES {{endpoint_fixed_device_type_array}} |
| |
| // Array of device type offsets |
| #define FIXED_DEVICE_TYPE_OFFSETS {{endpoint_fixed_device_type_array_offsets}} |
| |
| // Array of device type lengths |
| #define FIXED_DEVICE_TYPE_LENGTHS {{endpoint_fixed_device_type_array_lengths}} |
| |
| // Array of endpoint types supported on each endpoint |
| #define FIXED_ENDPOINT_TYPES {{endpoint_fixed_endpoint_type_array}} |
| |
| // Array of networks supported on each endpoint |
| #define FIXED_NETWORKS {{endpoint_fixed_network_array}} |
| |
| {{/endpoint_config}} |