本文整理汇总了C++中sci_object_get_association函数的典型用法代码示例。如果您正苦于以下问题:C++ sci_object_get_association函数的具体用法?C++ sci_object_get_association怎么用?C++ sci_object_get_association使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了sci_object_get_association函数的17个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的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);
}
}
开发者ID:dcui,项目名称:FreeBSD-9.3_kernel,代码行数:30,代码来源:scif_sas_domain.c
示例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);
}
开发者ID:dcui,项目名称:FreeBSD-9.3_kernel,代码行数:35,代码来源:scif_sas_domain.c
示例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
);
}
开发者ID:AhmadTux,项目名称:freebsd,代码行数:13,代码来源:scif_sas_stp_io_request.c
示例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));
}
开发者ID:tomtor,项目名称:freebsd,代码行数:26,代码来源:isci.c
示例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);
}
开发者ID:2asoft,项目名称:freebsd,代码行数:38,代码来源:isci_controller.c
示例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
);
}
开发者ID:AhmadTux,项目名称:freebsd,代码行数:17,代码来源:scif_sas_stp_io_request.c
示例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;
}
}
}
}
开发者ID:dcui,项目名称:FreeBSD-9.3_kernel,代码行数:45,代码来源:scif_sas_domain.c
示例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);
}
开发者ID:dcui,项目名称:FreeBSD-9.3_kernel,代码行数:18,代码来源:scif_sas_domain.c
示例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);
}
开发者ID:JabirTech,项目名称:Source,代码行数:10,代码来源:scif_sas_timer.c
示例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);
}
开发者ID:JabirTech,项目名称:Source,代码行数:11,代码来源:scif_sas_timer.c
示例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);
}
开发者ID:JabirTech,项目名称:Source,代码行数:11,代码来源:scif_sas_timer.c
示例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
));
}
开发者ID:dcui,项目名称:FreeBSD-9.3_kernel,代码行数:13,代码来源:scif_sas_domain.c
示例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;
}
}
开发者ID:JabirTech,项目名称:Source,代码行数:13,代码来源:scif_sas_timer.c
示例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
));
}
开发者ID:dcui,项目名称:FreeBSD-9.3_kernel,代码行数:13,代码来源:scif_sas_domain.c
示例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);
}
开发者ID:dcui,项目名称:FreeBSD-9.3_kernel,代码行数:23,代码来源:scif_sas_domain.c
示例16: scif_cb_controller_free_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_free_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);
/*
* Put the buffer back into the controller's buffer pool, rather
* than invoking configfree. This helps reduce chance we won't
* have buffers available when system is under memory pressure.
*/
sci_pool_put(isci_controller->unmap_buffer_pool,
mde->virtual_address);
}
开发者ID:2asoft,项目名称:freebsd,代码行数:25,代码来源:isci_controller.c
示例17: scif_cb_remote_device_ready
/**
* @brief This callback method informs the framework user that the remote
* device is ready and capable of processing IO requests.
*
* @param[in] controller This parameter specifies the controller object
* with which this callback is associated.
* @param[in] domain This parameter specifies the domain object with
* which this callback is associated.
* @param[in] remote_device This parameter specifies the device object with
* which this callback is associated.
*
* @return none
*/
void
scif_cb_remote_device_ready(SCI_CONTROLLER_HANDLE_T controller,
SCI_DOMAIN_HANDLE_T domain, SCI_REMOTE_DEVICE_HANDLE_T remote_device)
{
struct ISCI_REMOTE_DEVICE *isci_remote_device =
sci_object_get_association(remote_device);
struct ISCI_CONTROLLER *isci_controller =
sci_object_get_association(controller);
uint32_t device_index = isci_remote_device->index;
if (isci_controller->remote_device[device_index] == NULL) {
/* This new device is now ready, so put it in the controller's
* remote device list so it is visible to CAM.
*/
isci_controller->remote_device[device_index] =
isci_remote_device;
if (isci_controller->has_been_scanned) {
/* The sim object has been scanned at least once
* already. In that case, create a CCB to instruct
* CAM to rescan this device.
* If the sim object has not been scanned, this device
* will get scanned as part of the initial scan.
*/
union ccb *ccb = xpt_alloc_ccb_nowait();
xpt_create_path(&ccb->ccb_h.path, NULL,
cam_sim_path(isci_controller->sim),
isci_remote_device->index, CAM_LUN_WILDCARD);
xpt_rescan(ccb);
}
}
isci_remote_device_release_device_queue(isci_remote_device);
}
开发者ID:2asoft,项目名称:freebsd,代码行数:49,代码来源:isci_remote_device.c
注:本文中的sci_object_get_association函数示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论