host.h (3bff9d54ecba84e538da822349a9a6fd6e534539) host.h (e2f8db509fdd354bb7a68c86515e9d2d8909ccc9)
1/*
2 * This file is provided under a dual BSD/GPLv2 license. When using or
3 * redistributing this file, you may do so under either license.
4 *
5 * GPL LICENSE SUMMARY
6 *
7 * Copyright(c) 2008 - 2011 Intel Corporation. All rights reserved.
8 *

--- 41 unchanged lines hidden (view full) ---

50 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
51 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
52 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
53 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
54 */
55#ifndef _SCI_HOST_H_
56#define _SCI_HOST_H_
57
1/*
2 * This file is provided under a dual BSD/GPLv2 license. When using or
3 * redistributing this file, you may do so under either license.
4 *
5 * GPL LICENSE SUMMARY
6 *
7 * Copyright(c) 2008 - 2011 Intel Corporation. All rights reserved.
8 *

--- 41 unchanged lines hidden (view full) ---

50 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
51 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
52 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
53 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
54 */
55#ifndef _SCI_HOST_H_
56#define _SCI_HOST_H_
57
58#include "scic_config_parameters.h"
59#include "remote_device.h"
60#include "phy.h"
61#include "pool.h"
62#include "state_machine.h"
63#include "remote_node_table.h"
64#include "registers.h"
65#include "scu_unsolicited_frame.h"
66#include "unsolicited_frame_control.h"
58#include "remote_device.h"
59#include "phy.h"
60#include "pool.h"
61#include "state_machine.h"
62#include "remote_node_table.h"
63#include "registers.h"
64#include "scu_unsolicited_frame.h"
65#include "unsolicited_frame_control.h"
67#include "scic_sds_port_configuration_agent.h"
66#include "probe_roms.h"
68
69struct scic_sds_request;
70struct scu_task_context;
71
67
68struct scic_sds_request;
69struct scu_task_context;
70
71
72/**
73 * struct scic_power_control -
74 *
75 * This structure defines the fields for managing power control for direct
76 * attached disk devices.
77 */
78struct scic_power_control {
79 /**

--- 22 unchanged lines hidden (view full) ---

102 /**
103 * This field is an array of phys that we are waiting on. The phys are direct
104 * mapped into requesters via struct scic_sds_phy.phy_index
105 */
106 struct scic_sds_phy *requesters[SCI_MAX_PHYS];
107
108};
109
72/**
73 * struct scic_power_control -
74 *
75 * This structure defines the fields for managing power control for direct
76 * attached disk devices.
77 */
78struct scic_power_control {
79 /**

--- 22 unchanged lines hidden (view full) ---

102 /**
103 * This field is an array of phys that we are waiting on. The phys are direct
104 * mapped into requesters via struct scic_sds_phy.phy_index
105 */
106 struct scic_sds_phy *requesters[SCI_MAX_PHYS];
107
108};
109
110struct scic_sds_port_configuration_agent;
111typedef void (*port_config_fn)(struct scic_sds_controller *,
112 struct scic_sds_port_configuration_agent *,
113 struct scic_sds_port *, struct scic_sds_phy *);
114
115struct scic_sds_port_configuration_agent {
116 u16 phy_configured_mask;
117 u16 phy_ready_mask;
118 struct {
119 u8 min_index;
120 u8 max_index;
121 } phy_valid_port_range[SCI_MAX_PHYS];
122 bool timer_pending;
123 port_config_fn link_up_handler;
124 port_config_fn link_down_handler;
125 void *timer;
126};
127
110/**
111 * struct scic_sds_controller -
112 *
113 * This structure represents the SCU controller object.
114 */
115struct scic_sds_controller {
116 /**
117 * This field contains the information for the base controller state

--- 677 unchanged lines hidden (view full) ---

795 struct scic_sds_request *io_request);
796
797u16 scic_controller_allocate_io_tag(
798 struct scic_sds_controller *scic);
799
800enum sci_status scic_controller_free_io_tag(
801 struct scic_sds_controller *scic,
802 u16 io_tag);
128/**
129 * struct scic_sds_controller -
130 *
131 * This structure represents the SCU controller object.
132 */
133struct scic_sds_controller {
134 /**
135 * This field contains the information for the base controller state

--- 677 unchanged lines hidden (view full) ---

813 struct scic_sds_request *io_request);
814
815u16 scic_controller_allocate_io_tag(
816 struct scic_sds_controller *scic);
817
818enum sci_status scic_controller_free_io_tag(
819 struct scic_sds_controller *scic,
820 u16 io_tag);
821
822void scic_sds_port_configuration_agent_construct(
823 struct scic_sds_port_configuration_agent *port_agent);
824
825enum sci_status scic_sds_port_configuration_agent_initialize(
826 struct scic_sds_controller *controller,
827 struct scic_sds_port_configuration_agent *port_agent);
803#endif
828#endif