MCPcopy Create free account
hub / github.com/F-Stack/f-stack / ena_com_set_host_attributes

Function ena_com_set_host_attributes

dpdk/drivers/net/ena/base/ena_com.c:3203–3250  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

3201}
3202
3203int ena_com_set_host_attributes(struct ena_com_dev *ena_dev)
3204{
3205 struct ena_host_attribute *host_attr = &ena_dev->host_attr;
3206 struct ena_com_admin_queue *admin_queue;
3207 struct ena_admin_set_feat_cmd cmd;
3208 struct ena_admin_set_feat_resp resp;
3209
3210 int ret;
3211
3212 /* Host attribute config is called before ena_com_get_dev_attr_feat
3213 * so ena_com can't check if the feature is supported.
3214 */
3215
3216 memset(&cmd, 0x0, sizeof(cmd));
3217 admin_queue = &ena_dev->admin_queue;
3218
3219 cmd.aq_common_descriptor.opcode = ENA_ADMIN_SET_FEATURE;
3220 cmd.feat_common.feature_id = ENA_ADMIN_HOST_ATTR_CONFIG;
3221
3222 ret = ena_com_mem_addr_set(ena_dev,
3223 &cmd.u.host_attr.debug_ba,
3224 host_attr->debug_area_dma_addr);
3225 if (unlikely(ret)) {
3226 ena_trc_err(ena_dev, "Memory address set failed\n");
3227 return ret;
3228 }
3229
3230 ret = ena_com_mem_addr_set(ena_dev,
3231 &cmd.u.host_attr.os_info_ba,
3232 host_attr->host_info_dma_addr);
3233 if (unlikely(ret)) {
3234 ena_trc_err(ena_dev, "Memory address set failed\n");
3235 return ret;
3236 }
3237
3238 cmd.u.host_attr.debug_area_size = host_attr->debug_area_size;
3239
3240 ret = ena_com_execute_admin_command(admin_queue,
3241 (struct ena_admin_aq_entry *)&cmd,
3242 sizeof(cmd),
3243 (struct ena_admin_acq_entry *)&resp,
3244 sizeof(resp));
3245
3246 if (unlikely(ret))
3247 ena_trc_err(ena_dev, "Failed to set host attributes: %d\n", ret);
3248
3249 return ret;
3250}
3251
3252/* Interrupt moderation */
3253bool ena_com_interrupt_moderation_supported(struct ena_com_dev *ena_dev)

Callers 2

ena_config_host_infoFunction · 0.50
ena_config_debug_areaFunction · 0.50

Calls 3

memsetFunction · 0.85
ena_com_mem_addr_setFunction · 0.70

Tested by

no test coverage detected