Пример #1
0
int
onlp_sfpi_control_get(int port, onlp_sfp_control_t control, int* value)
{
    switch(control)
    {
    case ONLP_SFP_CONTROL_TX_DISABLE:
    {
        int rv;
        ONLP_IF_ERROR_RETURN(rv = tx_enable_get__(port, value));
        *value = ! *value;
        return ONLP_STATUS_OK;
    }

    case ONLP_SFP_CONTROL_RX_LOS:
    {
        uint32_t flags = 0;
        ONLP_IF_ERROR_RETURN(control_flags_get__(port, &flags));
        *value = (flags & ONLP_SFP_CONTROL_FLAG_RX_LOS) ? 1 : 0;
        return ONLP_STATUS_OK;
    }

    case ONLP_SFP_CONTROL_TX_FAULT:
    {
        uint32_t flags = 0;
        ONLP_IF_ERROR_RETURN(control_flags_get__(port, &flags));
        *value = (flags & ONLP_SFP_CONTROL_FLAG_TX_FAULT) ? 1 : 0;
        return ONLP_STATUS_OK;
    }

    default:
        return ONLP_STATUS_E_UNSUPPORTED;
    }
}
Пример #2
0
int
onlp_i2c_modifyb(int bus, uint8_t addr, uint8_t offset,
                 uint8_t andmask, uint8_t ormask, uint32_t flags)
{
    int v;
    ONLP_IF_ERROR_RETURN(v=onlp_i2c_readb(bus, addr, offset, flags));
    v &= andmask;
    v |= ormask;
    return onlp_i2c_writeb(bus, addr, offset, v, flags);
}