1*ac478689SIgor Romanov /* SPDX-License-Identifier: BSD-3-Clause 2*ac478689SIgor Romanov * 3*ac478689SIgor Romanov * Copyright(c) 2019-2021 Xilinx, Inc. 4*ac478689SIgor Romanov * Copyright(c) 2019 Solarflare Communications Inc. 5*ac478689SIgor Romanov * 6*ac478689SIgor Romanov * This software was jointly developed between OKTET Labs (under contract 7*ac478689SIgor Romanov * for Solarflare) and Solarflare Communications, Inc. 8*ac478689SIgor Romanov */ 9*ac478689SIgor Romanov 10*ac478689SIgor Romanov #ifndef _SFC_ETHDEV_STATE_H 11*ac478689SIgor Romanov #define _SFC_ETHDEV_STATE_H 12*ac478689SIgor Romanov 13*ac478689SIgor Romanov #ifdef __cplusplus 14*ac478689SIgor Romanov extern "C" { 15*ac478689SIgor Romanov #endif 16*ac478689SIgor Romanov 17*ac478689SIgor Romanov /* 18*ac478689SIgor Romanov * +---------------+ 19*ac478689SIgor Romanov * | UNINITIALIZED |<-----------+ 20*ac478689SIgor Romanov * +---------------+ | 21*ac478689SIgor Romanov * |.eth_dev_init |.eth_dev_uninit 22*ac478689SIgor Romanov * V | 23*ac478689SIgor Romanov * +---------------+------------+ 24*ac478689SIgor Romanov * | INITIALIZED | 25*ac478689SIgor Romanov * +---------------+<-----------<---------------+ 26*ac478689SIgor Romanov * |.dev_configure | | 27*ac478689SIgor Romanov * V |failed | 28*ac478689SIgor Romanov * +---------------+------------+ | 29*ac478689SIgor Romanov * | CONFIGURING | | 30*ac478689SIgor Romanov * +---------------+----+ | 31*ac478689SIgor Romanov * |success | | 32*ac478689SIgor Romanov * | | +---------------+ 33*ac478689SIgor Romanov * | | | CLOSING | 34*ac478689SIgor Romanov * | | +---------------+ 35*ac478689SIgor Romanov * | | ^ 36*ac478689SIgor Romanov * V |.dev_configure | 37*ac478689SIgor Romanov * +---------------+----+ |.dev_close 38*ac478689SIgor Romanov * | CONFIGURED |----------------------------+ 39*ac478689SIgor Romanov * +---------------+<-----------+ 40*ac478689SIgor Romanov * |.dev_start | 41*ac478689SIgor Romanov * V | 42*ac478689SIgor Romanov * +---------------+ | 43*ac478689SIgor Romanov * | STARTING |------------^ 44*ac478689SIgor Romanov * +---------------+ failed | 45*ac478689SIgor Romanov * |success | 46*ac478689SIgor Romanov * | +---------------+ 47*ac478689SIgor Romanov * | | STOPPING | 48*ac478689SIgor Romanov * | +---------------+ 49*ac478689SIgor Romanov * | ^ 50*ac478689SIgor Romanov * V |.dev_stop 51*ac478689SIgor Romanov * +---------------+------------+ 52*ac478689SIgor Romanov * | STARTED | 53*ac478689SIgor Romanov * +---------------+ 54*ac478689SIgor Romanov */ 55*ac478689SIgor Romanov enum sfc_ethdev_state { 56*ac478689SIgor Romanov SFC_ETHDEV_UNINITIALIZED = 0, 57*ac478689SIgor Romanov SFC_ETHDEV_INITIALIZED, 58*ac478689SIgor Romanov SFC_ETHDEV_CONFIGURING, 59*ac478689SIgor Romanov SFC_ETHDEV_CONFIGURED, 60*ac478689SIgor Romanov SFC_ETHDEV_CLOSING, 61*ac478689SIgor Romanov SFC_ETHDEV_STARTING, 62*ac478689SIgor Romanov SFC_ETHDEV_STARTED, 63*ac478689SIgor Romanov SFC_ETHDEV_STOPPING, 64*ac478689SIgor Romanov 65*ac478689SIgor Romanov SFC_ETHDEV_NSTATES 66*ac478689SIgor Romanov }; 67*ac478689SIgor Romanov 68*ac478689SIgor Romanov #ifdef __cplusplus 69*ac478689SIgor Romanov } 70*ac478689SIgor Romanov #endif 71*ac478689SIgor Romanov 72*ac478689SIgor Romanov #endif /* _SFC_ETHDEV_STATE_H */ 73