e40303eb0f
Any DPDK public header file which includes stdbool.h may conflict with local definition of bool, if any, which further results in compilation error. To avoid, used standard stdbool.h instead of defining bool internally. I observed this issue during a development where I included rte_uuid.h into rte_ethdev.h. As rte_ethdev.h is included to PMD driver, it started throwing error as given below: CC ionic_rxtx.o In file included from .../dpdk/build/include/rte_uuid.h:17:0, from .../dpdk/build/include/rte_ethdev.h:161, from .../dpdk/build/include/rte_ethdev_driver.h:18, from .../dpdk/drivers/net/ionic/ionic_rxtx.c:34: .../dpdk/drivers/net/ionic/ionic_osdep.h:48:17: error: two or more data types in declaration specifiers typedef uint8_t bool; ^ In file included from .../dpdk/drivers/net/ionic/ionic_dev.h:8:0, from .../dpdk/drivers/net/ionic/ionic.h:13, from .../dpdk/drivers/net/ionic/ionic_mac_api.h:8, from .../dpdk/drivers/net/ionic/ionic_rxtx.c:45: .../dpdk/drivers/net/ionic/ionic_osdep.h:48:1: warning: useless type name in empty declaration typedef uint8_t bool; ^~~~~~~ cc1: warning: unrecognized command line option ‘-Wno-address-of-packed-member’ .../dpdk/mk/internal/rte.compile-pre.mk:114: recipe for target 'ionic_rxtx.o' failed Fixes: 5ef518098ec6 ("net/ionic: register and initialize adapter") Cc: stable@dpdk.org Signed-off-by: Sunil Kumar Kori <skori@marvell.com> Acked-by: Alfredo Cardigliano <cardigliano@ntop.org>
64 lines
1008 B
C
64 lines
1008 B
C
/* SPDX-License-Identifier: (BSD-3-Clause OR GPL-2.0)
|
|
* Copyright(c) 2018-2019 Pensando Systems, Inc. All rights reserved.
|
|
*/
|
|
|
|
#include <stdbool.h>
|
|
|
|
#include "ionic_mac_api.h"
|
|
|
|
int32_t
|
|
ionic_init_mac(struct ionic_hw *hw)
|
|
{
|
|
int err = 0;
|
|
|
|
IONIC_PRINT_CALL();
|
|
|
|
/*
|
|
* Set the mac type
|
|
*/
|
|
ionic_set_mac_type(hw);
|
|
|
|
switch (hw->mac.type) {
|
|
case IONIC_MAC_CAPRI:
|
|
break;
|
|
default:
|
|
err = -EINVAL;
|
|
break;
|
|
}
|
|
|
|
return err;
|
|
}
|
|
|
|
int32_t
|
|
ionic_set_mac_type(struct ionic_hw *hw)
|
|
{
|
|
int err = 0;
|
|
|
|
IONIC_PRINT_CALL();
|
|
|
|
if (hw->vendor_id != IONIC_PENSANDO_VENDOR_ID) {
|
|
IONIC_PRINT(ERR, "Unsupported vendor id: %" PRIx32 "",
|
|
hw->vendor_id);
|
|
return -EINVAL;
|
|
}
|
|
|
|
switch (hw->device_id) {
|
|
case IONIC_DEV_ID_ETH_PF:
|
|
case IONIC_DEV_ID_ETH_VF:
|
|
case IONIC_DEV_ID_ETH_MGMT:
|
|
hw->mac.type = IONIC_MAC_CAPRI;
|
|
break;
|
|
default:
|
|
err = -EINVAL;
|
|
IONIC_PRINT(ERR, "Unsupported device id: %" PRIx32 "",
|
|
hw->device_id);
|
|
break;
|
|
}
|
|
|
|
IONIC_PRINT(INFO, "Mac: %d (%d)",
|
|
hw->mac.type, err);
|
|
|
|
return err;
|
|
}
|
|
|