OneCore⢠Storage SDK Release 11.2
User Space iSCSI Target RAMD Driver (Uspace ocs_iscsi_ramd)
All
Data Structures
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Macros
Groups
Pages
ocs_pm.h
Go to the documentation of this file.
1
/*
2
* Copyright (c) 2011-2015, Emulex
3
* All rights reserved.
4
*
5
* Redistribution and use in source and binary forms, with or without
6
* modification, are permitted provided that the following conditions are met:
7
*
8
* 1. Redistributions of source code must retain the above copyright notice,
9
* this list of conditions and the following disclaimer.
10
*
11
* 2. Redistributions in binary form must reproduce the above copyright notice,
12
* this list of conditions and the following disclaimer in the documentation
13
* and/or other materials provided with the distribution.
14
*
15
* 3. Neither the name of the copyright holder nor the names of its contributors
16
* may be used to endorse or promote products derived from this software
17
* without specific prior written permission.
18
*
19
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
20
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
21
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
22
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
23
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
24
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
25
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
26
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
27
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
28
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
29
* POSSIBILITY OF SUCH DAMAGE.
30
*
31
*/
32
33
/**
34
* @file
35
* API for OCS power managment
36
*
37
*/
38
39
#if !defined(__OCS_PM_H__)
40
#define __OCS_PM_H__
41
/**
42
* @brief Power State change message types
43
*
44
*/
45
typedef
enum
{
46
OCS_PM_PREPARE
= 1,
47
OCS_PM_SLEEP
,
48
OCS_PM_HIBERNATE
,
49
OCS_PM_RESUME
,
50
}
ocs_pm_msg_e
;
51
52
/**
53
* @brief Power State values
54
*
55
*/
56
typedef
enum
{
57
OCS_PM_STATE_S0
= 0,
58
OCS_PM_STATE_S1
,
59
OCS_PM_STATE_S2
,
60
OCS_PM_STATE_S3
,
61
OCS_PM_STATE_S4
,
62
}
ocs_pm_state_e
;
63
64
typedef
struct
{
65
ocs_pm_state_e
pm_state
;
/*<< Current PM state */
66
}
ocs_pm_context_t
;
67
68
extern
int32_t
ocs_pm_request
(ocs_t *ocs,
ocs_pm_msg_e
msg, int32_t (*callback)(ocs_t *ocs, int32_t status,
void
*arg),
69
void
*arg);
70
extern
ocs_pm_state_e
ocs_pm_get_state
(ocs_t *ocs);
71
extern
const
char
*
ocs_pm_get_state_string
(ocs_t *ocs);
72
#endif // __OCS_PM_H__
ocs_pm_get_state_string
const char * ocs_pm_get_state_string(ocs_t *ocs)
Return driver power state as an ascii string.
Definition:
ocs_pm.c:141
ocs_pm_context_t::pm_state
ocs_pm_state_e pm_state
Definition:
ocs_pm.h:65
OCS_PM_STATE_S4
Definition:
ocs_pm.h:61
OCS_PM_RESUME
Definition:
ocs_pm.h:49
OCS_PM_STATE_S0
Definition:
ocs_pm.h:57
OCS_PM_SLEEP
Definition:
ocs_pm.h:47
ocs_pm_get_state
ocs_pm_state_e ocs_pm_get_state(ocs_t *ocs)
Return driver power state.
Definition:
ocs_pm.c:127
ocs_pm_request
int32_t ocs_pm_request(ocs_t *ocs, ocs_pm_msg_e msg, int32_t(*callback)(ocs_t *ocs, int32_t status, void *arg), void *arg)
Handle Power Management Request.
Definition:
ocs_pm.c:81
OCS_PM_STATE_S2
Definition:
ocs_pm.h:59
OCS_PM_STATE_S3
Definition:
ocs_pm.h:60
ocs_pm_context_t
Definition:
ocs_pm.h:64
OCS_PM_HIBERNATE
Definition:
ocs_pm.h:48
OCS_PM_PREPARE
Definition:
ocs_pm.h:46
OCS_PM_STATE_S1
Definition:
ocs_pm.h:58
ocs_pm_state_e
ocs_pm_state_e
Power State values.
Definition:
ocs_pm.h:56
ocs_pm_msg_e
ocs_pm_msg_e
Power State change message types.
Definition:
ocs_pm.h:45
common
ocs
ocs_pm.h