xref: /dpdk/drivers/net/sfc/sfc_ethdev_state.h (revision ac47868976e9fcdd62dcd70718e325ddaa92a644)
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