本文整理汇总了C++中sci_object_get_association函数的典型用法代码示例。如果您正苦于以下问题:C++ sci_object_get_association函数的具体用法?C++ sci_object_get_association怎么用?C++ sci_object_get_association使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了sci_object_get_association函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: scic_cb_port_not_ready
void scic_cb_port_not_ready(
SCI_CONTROLLER_HANDLE_T controller,
SCI_PORT_HANDLE_T port,
U32 reason_code
)
{
SCIF_SAS_DOMAIN_T * fw_domain = (SCIF_SAS_DOMAIN_T*)
sci_object_get_association(port);
SCIF_LOG_TRACE((
sci_base_object_get_logger(fw_domain),
SCIF_LOG_OBJECT_DOMAIN,
"scic_cb_port_not_ready(0x%x, 0x%x) enter\n",
controller, port
));
// The controller supplied with the port should match the controller
// saved in the domain.
ASSERT(sci_object_get_association(controller) == fw_domain->controller);
// There is no need to take action on the port reconfiguring since it is
// just a change of the port width.
if (reason_code != SCIC_PORT_NOT_READY_RECONFIGURING)
{
fw_domain->is_port_ready = FALSE;
fw_domain->state_handlers->port_not_ready_handler(
&fw_domain->parent, reason_code);
}
}
示例2: scic_cb_port_bc_change_primitive_recieved
void scic_cb_port_bc_change_primitive_recieved(
SCI_CONTROLLER_HANDLE_T controller,
SCI_PORT_HANDLE_T port,
SCI_PHY_HANDLE_T phy
)
{
SCIF_SAS_DOMAIN_T * fw_domain = (SCIF_SAS_DOMAIN_T*)
sci_object_get_association(port);
SCIF_SAS_CONTROLLER_T * fw_controller = (SCIF_SAS_CONTROLLER_T *)
sci_object_get_association(controller);
SCIF_LOG_TRACE((
sci_base_object_get_logger(fw_domain),
SCIF_LOG_OBJECT_DOMAIN | SCIF_LOG_OBJECT_DOMAIN_DISCOVERY,
"scic_cb_port_bc_change_primitive_recieved(0x%x, 0x%x, 0x%x) enter\n",
controller, port, phy
));
if (fw_domain->broadcast_change_count == 0)
{ // Enable the BCN detection only if the bcn_count is zero. If bcn_count is
// not zero at this time, we won't enable BCN detection since all non-zero
// BCN_count means same to us. Furthermore, we avoid BCN storm by not
// always enabling the BCN_detection.
scic_port_enable_broadcast_change_notification(fw_domain->core_object);
}
fw_domain->broadcast_change_count++;
//if there is smp device on this domain that is in the middle of discover
//process or smp target reset, don't notify the driver layer.
if( ! scif_sas_domain_is_in_smp_activity(fw_domain) )
// Notify the user that there is, potentially, a change to the domain.
scif_cb_domain_change_notification(fw_controller, fw_domain);
}
示例3: sci_object_get_association
U8 *scic_cb_io_request_get_virtual_address_from_sgl(
void * scic_user_io_request,
U32 byte_offset
)
{
SCIF_SAS_REQUEST_T *fw_request =
(SCIF_SAS_REQUEST_T *) sci_object_get_association(scic_user_io_request);
return scif_cb_io_request_get_virtual_address_from_sgl(
sci_object_get_association(fw_request),
byte_offset
);
}
示例4: scic_cb_pci_read_dword
/**
* @brief In this method the user must read from PCI memory via access.
* This method is used for access to memory space and IO space.
*
* @param[in] controller The controller for which to read a DWORD.
* @param[in] address This parameter depicts the address from
* which to read.
*
* @return The value being returned from the PCI memory location.
*
* @todo This PCI memory access calls likely need to be optimized into macro?
*/
uint32_t
scic_cb_pci_read_dword(SCI_CONTROLLER_HANDLE_T scic_controller, void *address)
{
SCI_CONTROLLER_HANDLE_T scif_controller =
(SCI_CONTROLLER_HANDLE_T)sci_object_get_association(scic_controller);
struct ISCI_CONTROLLER *isci_controller =
(struct ISCI_CONTROLLER *)sci_object_get_association(scif_controller);
struct isci_softc *isci = isci_controller->isci;
uint32_t bar = (uint32_t)(((POINTER_UINT)address & 0xF0000000) >> 28);
bus_size_t offset = (bus_size_t)((POINTER_UINT)address & 0x0FFFFFFF);
return (bus_space_read_4(isci->pci_bar[bar].bus_tag,
isci->pci_bar[bar].bus_handle, offset));
}
示例5: scif_cb_controller_allocate_memory
/**
* @brief This method will be invoked to allocate memory dynamically.
*
* @param[in] controller This parameter represents the controller
* object for which to allocate memory.
* @param[out] mde This parameter represents the memory descriptor to
* be filled in by the user that will reference the newly
* allocated memory.
*
* @return none
*/
void scif_cb_controller_allocate_memory(SCI_CONTROLLER_HANDLE_T controller,
SCI_PHYSICAL_MEMORY_DESCRIPTOR_T *mde)
{
struct ISCI_CONTROLLER *isci_controller = (struct ISCI_CONTROLLER *)
sci_object_get_association(controller);
/*
* Note this routine is only used for buffers needed to translate
* SCSI UNMAP commands to ATA DSM commands for SATA disks.
*
* We first try to pull a buffer from the controller's pool, and only
* call contigmalloc if one isn't there.
*/
if (!sci_pool_empty(isci_controller->unmap_buffer_pool)) {
sci_pool_get(isci_controller->unmap_buffer_pool,
mde->virtual_address);
} else
mde->virtual_address = contigmalloc(PAGE_SIZE,
M_ISCI, M_NOWAIT, 0, BUS_SPACE_MAXADDR,
mde->constant_memory_alignment, 0);
if (mde->virtual_address != NULL)
bus_dmamap_load(isci_controller->buffer_dma_tag,
NULL, mde->virtual_address, PAGE_SIZE,
isci_single_map, &mde->physical_address,
BUS_DMA_NOWAIT);
}
示例6: scic_cb_io_request_copy_buffer
void scic_cb_io_request_copy_buffer(
void * scic_user_io_request,
U8 *source_addr,
U32 offset,
U32 length
)
{
SCIF_SAS_REQUEST_T *fw_request =
(SCIF_SAS_REQUEST_T *)sci_object_get_association(scic_user_io_request);
return scif_cb_io_request_copy_buffer(
sci_object_get_association(fw_request),
source_addr,
offset,
length
);
}
示例7: scic_cb_port_hard_reset_complete
void scic_cb_port_hard_reset_complete(
SCI_CONTROLLER_HANDLE_T controller,
SCI_PORT_HANDLE_T port,
SCI_STATUS completion_status
)
{
SCIF_SAS_DOMAIN_T * fw_domain = (SCIF_SAS_DOMAIN_T*)
sci_object_get_association(port);
SCIF_SAS_REMOTE_DEVICE_T * fw_device;
SCI_FAST_LIST_ELEMENT_T * element = fw_domain->request_list.list_head;
SCIF_SAS_TASK_REQUEST_T * task_request = NULL;
SCIF_LOG_TRACE((
sci_base_object_get_logger(fw_domain),
SCIF_LOG_OBJECT_DOMAIN,
"scic_cb_port_hard_reset_complete(0x%x, 0x%x, 0x%x) enter\n",
controller, port, completion_status
));
while (element != NULL)
{
task_request = (SCIF_SAS_TASK_REQUEST_T*) sci_fast_list_get_object(element);
element = sci_fast_list_get_next(element);
if (scif_sas_task_request_get_function(task_request)
== SCI_SAS_HARD_RESET)
{
fw_device = task_request->parent.device;
if (fw_device->domain == fw_domain)
{
scic_remote_device_reset_complete(fw_device->core_object);
scif_cb_task_request_complete(
sci_object_get_association(controller),
fw_device,
task_request,
(SCI_TASK_STATUS) completion_status
);
break;
}
}
}
}
示例8: scic_cb_port_link_down
void scic_cb_port_link_down(
SCI_CONTROLLER_HANDLE_T controller,
SCI_PORT_HANDLE_T port,
SCI_PHY_HANDLE_T phy
)
{
SCIF_SAS_DOMAIN_T * fw_domain = (SCIF_SAS_DOMAIN_T*)
sci_object_get_association(port);
SCIF_LOG_TRACE((
sci_base_object_get_logger(sci_object_get_association(port)),
SCIF_LOG_OBJECT_DOMAIN,
"scic_cb_port_link_down(0x%x, 0x%x, 0x%x) enter\n",
controller, port, phy
));
scif_sas_domain_update_device_port_width(fw_domain, port);
}
示例9: scic_cb_timer_stop
void scic_cb_timer_stop(
SCI_CONTROLLER_HANDLE_T controller,
void * timer
)
{
SCIF_SAS_CONTROLLER_T * fw_controller = (SCIF_SAS_CONTROLLER_T *)
sci_object_get_association(controller);
scif_cb_timer_stop(fw_controller, timer);
}
示例10: scic_cb_timer_create
void * scic_cb_timer_create(
SCI_CONTROLLER_HANDLE_T controller,
SCI_TIMER_CALLBACK_T timer_callback,
void * cookie
)
{
SCIF_SAS_CONTROLLER_T * fw_controller = (SCIF_SAS_CONTROLLER_T *)
sci_object_get_association(controller);
return scif_cb_timer_create(fw_controller, timer_callback, cookie);
}
示例11: scic_cb_timer_start
void scic_cb_timer_start(
SCI_CONTROLLER_HANDLE_T controller,
void * timer,
U32 milliseconds
)
{
SCIF_SAS_CONTROLLER_T * fw_controller = (SCIF_SAS_CONTROLLER_T *)
sci_object_get_association(controller);
scif_cb_timer_start(fw_controller, timer, milliseconds);
}
示例12: scic_cb_port_bc_aen_primitive_recieved
void scic_cb_port_bc_aen_primitive_recieved(
SCI_CONTROLLER_HANDLE_T controller,
SCI_PORT_HANDLE_T port,
SCI_PHY_HANDLE_T phy
)
{
SCIF_LOG_TRACE((
sci_base_object_get_logger(sci_object_get_association(port)),
SCIF_LOG_OBJECT_DOMAIN,
"scic_cb_port_bc_aen_primitive_received(0x%x, 0x%x, 0x%x) enter\n",
controller, port, phy
));
}
示例13: scic_cb_timer_destroy
void scic_cb_timer_destroy(
SCI_CONTROLLER_HANDLE_T controller,
void * timer
)
{
SCIF_SAS_CONTROLLER_T * fw_controller = (SCIF_SAS_CONTROLLER_T *)
sci_object_get_association(controller);
if (timer != NULL)
{
scif_cb_timer_destroy(fw_controller, timer);
timer = NULL;
}
}
示例14: scic_cb_port_stop_complete
void scic_cb_port_stop_complete(
SCI_CONTROLLER_HANDLE_T controller,
SCI_PORT_HANDLE_T port,
SCI_STATUS completion_status
)
{
SCIF_LOG_TRACE((
sci_base_object_get_logger((SCIF_SAS_DOMAIN_T*)sci_object_get_association(port)),
SCIF_LOG_OBJECT_DOMAIN,
"scic_cb_port_stop_complete(0x%x, 0x%x, 0x%x) enter\n",
controller, port, completion_status
));
}
示例15: scic_cb_port_ready
void scic_cb_port_ready(
SCI_CONTROLLER_HANDLE_T controller,
SCI_PORT_HANDLE_T port
)
{
SCIF_SAS_DOMAIN_T * fw_domain = (SCIF_SAS_DOMAIN_T*)
sci_object_get_association(port);
SCIF_LOG_TRACE((
sci_base_object_get_logger(fw_domain),
SCIF_LOG_OBJECT_DOMAIN,
"scic_cb_port_ready(0x%x, 0x%x) enter\n",
controller, port
));
// The controller supplied with the port should match the controller
// saved in the domain.
ASSERT(sci_object_get_association(controller) == fw_domain->controller);
fw_domain->is_port_ready = TRUE;
fw_domain->state_handlers->port_ready_handler(&fw_domain->parent);
}