本文整理汇总了C++中AR_DEBUG_ASSERT函数的典型用法代码示例。如果您正苦于以下问题:C++ AR_DEBUG_ASSERT函数的具体用法?C++ AR_DEBUG_ASSERT怎么用?C++ AR_DEBUG_ASSERT使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了AR_DEBUG_ASSERT函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: HIFInit
A_STATUS HIFInit(OSDRV_CALLBACKS *callbacks)
{
SD_API_STATUS sdStatus;
AR_DEBUG_ASSERT(callbacks != NULL);
/* store the callback handlers */
osdrvCallbacks = *callbacks;
/* Register with bus driver core */
NDIS_DEBUG_PRINTF(DBG_LEVEL_HIF, "AR6000: HIFInit registering \r\n");
registered = 1;
#if defined(CONFIG_PM)
// TODO about power management.
#endif /* CONFIG_PM */
/* Register with bus driver core */
sdFunction.pName = "sdio_wlan";
sdFunction.pProbe = hifDeviceInserted;
sdFunction.pRemove = hifDeviceRemoved;
A_MUTEX_INIT(&hif_lock);
NdisAllocateSpinLock(&sLock);
sdStatus = SDIORegisterFunction(&sdFunction);
AR_DEBUG_ASSERT(SD_API_SUCCESS(sdStatus));
return A_OK;
}
示例2: _WRITE_WINDOW_ADDR
/*
* Commit an address to either WINDOW_WRITE_ADDR_REG or to
* WINDOW_READ_ADDR_REG. We write the least significan byte (LSB)
* last, since it triggers the read/write.
*/
static void
_WRITE_WINDOW_ADDR(HTC_TARGET *target, A_UINT32 whichreg, A_UINT32 value)
{
A_UINT32 window_addr;
HIF_REQUEST request;
A_STATUS status;
A_UINT32 address;
window_addr = value;
HIF_FRAME_REQUEST(&request, HIF_WRITE, HIF_EXTENDED_IO, HIF_SYNCHRONOUS,
HIF_BYTE_BASIS, HIF_INCREMENTAL_ADDRESS);
address = getRegAddr(whichreg, ENDPOINT_UNUSED);
#ifdef ONLY_16BIT
status = HIFReadWrite(target->device, address+2,
(A_UCHAR *)&window_addr+2, 2, &request, NULL);
AR_DEBUG_ASSERT(status == A_OK);
status = HIFReadWrite(target->device, address,
(A_UCHAR *)&window_addr, 2, &request, NULL);
status = HIFReadWrite(target->device, address,
(A_UCHAR *)&window_addr, 2, &request, NULL);
AR_DEBUG_ASSERT(status == A_OK);
#else
status = HIFReadWrite(target->device, address+1,
(A_UCHAR *)&window_addr+1, 3, &request, NULL);
AR_DEBUG_ASSERT(status == A_OK);
status = HIFReadWrite(target->device, address,
(A_UCHAR *)&window_addr, 1, &request, NULL);
AR_DEBUG_ASSERT(status == A_OK);
#endif
}
示例3: hifDeviceRemoved
static void hifDeviceRemoved(struct sdio_func *func)
{
A_STATUS status = A_OK;
HIF_DEVICE *device;
int ret;
AR_DEBUG_ASSERT(func != NULL);
AR_DEBUG_PRINTF(ATH_DEBUG_TRACE, ("AR6000: +hifDeviceRemoved\n"));
device = getHifDevice(func);
if (device->claimedContext != NULL) {
status = osdrvCallbacks.deviceRemovedHandler(device->claimedContext, device);
}
do {
if (device->is_suspend) {
device->is_suspend = FALSE;
break;
}
if (!IS_ERR(device->async_task)) {
init_completion(&device->async_completion);
device->async_shutdown = 1;
up(&device->sem_async);
wait_for_completion(&device->async_completion);
device->async_task = NULL;
}
/* Disable the card */
sdio_claim_host(device->func);
ret = sdio_disable_func(device->func);
sdio_release_host(device->func);
} while (0);
delHifDevice(device);
AR_DEBUG_ASSERT(status == A_OK);
AR_DEBUG_PRINTF(ATH_DEBUG_TRACE, ("AR6000: -hifDeviceRemoved\n"));
}
示例4: HIFInit
/* ------ Functions ------ */
A_STATUS HIFInit(OSDRV_CALLBACKS *callbacks)
{
int status;
AR_DEBUG_ASSERT(callbacks != NULL);
A_REGISTER_MODULE_DEBUG_INFO(hif);
/* store the callback handlers */
osdrvCallbacks = *callbacks;
/* Register with bus driver core */
AR_DEBUG_PRINTF(ATH_DEBUG_TRACE, ("AR6000: HIFInit registering\n"));
registered = 1;
#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,27) && defined(CONFIG_PM)
if (callbacks->deviceSuspendHandler && callbacks->deviceResumeHandler) {
ar6k_driver.drv.pm = &ar6k_device_pm_ops;
}
#endif /* CONFIG_PM */
status = sdio_register_driver(&ar6k_driver);
AR_DEBUG_ASSERT(status==0);
if (status != 0) {
return A_ERROR;
}
return A_OK;
}
示例5: hifDeviceRemoved
static void hifDeviceRemoved(struct sdio_func *func)
{
A_STATUS status = A_OK;
HIF_DEVICE *device;
AR_DEBUG_ASSERT(func != NULL);
AR_DEBUG_PRINTF(ATH_DEBUG_TRACE, ("AR6000: +hifDeviceRemoved\n"));
device = getHifDevice(func);
if (device->claimedContext != NULL) {
status = osdrvCallbacks.deviceRemovedHandler(device->claimedContext, device);
}
if (device->is_suspend) {
device->is_suspend = FALSE;
} else {
if (hifDisableFunc(device, func)!=0) {
status = A_ERROR;
}
}
CleanupHIFScatterResources(device);
delHifDevice(device);
AR_DEBUG_ASSERT(status == A_OK);
AR_DEBUG_PRINTF(ATH_DEBUG_TRACE, ("AR6000: -hifDeviceRemoved\n"));
}
示例6: HIFShutDownDevice
void
HIFShutDownDevice(HIF_DEVICE *device)
{
SD_API_STATUS sdStatus;
//SDCONFIG_BUS_MODE_DATA busSettings;
UCHAR buffer;
if (device == NULL) {
HIF_DEBUG_PRINTF(ATH_LOG_ERR, "Invalid Handle passed\n");
return;
}
/* Remove the allocated current if any */
/*
* There is no equivalent for this one in WINCE
status = SDLIB_IssueConfig(device->handle, SDCONFIG_FUNC_FREE_SLOT_CURRENT,
NULL, 0);
DBG_ASSERT(SDIO_SUCCESS(status));
*/
/* Disable the card */
SDIODisconnectInterrupt(device->handle);
sdStatus = SDSetCardFeature(device->handle, SD_IO_FUNCTION_DISABLE,
NULL, 0);
AR_DEBUG_ASSERT(SD_API_SUCCESS(sdStatus));
/* Perform a soft I/O reset */
sdStatus = SDReadWriteRegistersDirect(device->handle, SD_IO_WRITE, 0,
SD_IO_REG_IO_ABORT, 1, &buffer, 0);
AR_DEBUG_ASSERT(SD_API_SUCCESS(sdStatus));
/*
* WAR - Codetelligence driver does not seem to shutdown correctly in 1
* bit mode. By default it configures the HC in the 4 bit. Its later in
* our driver that we switch to 1 bit mode. If we try to shutdown, the
* driver hangs so we revert to 4 bit mode, to be transparent to the
* underlying bus driver.
*/
/*
* Not sure whether this is required for WINCE hence commenting
*/
/*
if (sdio1bitmode) {
ZERO_OBJECT(busSettings);
busSettings.BusModeFlags = device->handle->pHcd->CardProperties.BusMode;
SDCONFIG_SET_BUS_WIDTH(busSettings.BusModeFlags,
SDCONFIG_BUS_WIDTH_4_BIT);
// Issue config request to change the bus width to 4 bit
status = SDLIB_IssueConfig(device->handle, SDCONFIG_BUS_MODE_CTRL,
&busSettings,
sizeof(SDCONFIG_BUS_MODE_DATA));
DBG_ASSERT(SDIO_SUCCESS(status));
}
*/
/* Unregister with bus driver core */
sdStatus = SDIOUnregisterFunction(&sdFunction);
AR_DEBUG_ASSERT(SD_API_SUCCESS(sdStatus));
return;
}
示例7: htcServiceCPUInterrupt
void
htcServiceCPUInterrupt(HTC_TARGET *target)
{
A_STATUS status;
A_UINT32 address;
HIF_REQUEST request;
A_UINT8 cpu_int_status;
HTC_DEBUG_PRINTF(ATH_LOG_INF, "CPU Interrupt\n");
cpu_int_status = target->table.cpu_int_status &
target->table.cpu_int_status_enable;
AR_DEBUG_ASSERT(cpu_int_status);
HTC_DEBUG_PRINTF(ATH_LOG_INF,
"Valid interrupt source(s) in CPU_INT_STATUS: 0x%x\n",
cpu_int_status);
/* Figure out the interrupt number */
HTC_DEBUG_PRINTF(ATH_LOG_INF, "Interrupt Number: 0x%x\n",
htcGetBitNumSet(cpu_int_status));
/* Clear the interrupt */
target->table.cpu_int_status = cpu_int_status; /* W1C */
HIF_FRAME_REQUEST(&request, HIF_WRITE, HIF_EXTENDED_IO, HIF_SYNCHRONOUS,
HIF_BYTE_BASIS, HIF_FIXED_ADDRESS);
address = getRegAddr(CPU_INT_STATUS_REG, ENDPOINT_UNUSED);
status = HIFReadWrite(target->device, address,
&target->table.cpu_int_status, 1, &request, NULL);
AR_DEBUG_ASSERT(status == A_OK);
}
示例8: hifIRQHandler
SD_API_STATUS
hifIRQHandler(SD_DEVICE_HANDLE hDevice, PVOID notUsed)
{
#ifndef CEPC
A_STATUS status;
HIF_DEVICE *device;
A_BOOL callDSR;
#endif
HIF_DEBUG_PRINTF(ATH_LOG_TRC, "hifIRQHandler : Enter\n");
#ifndef CEPC
/* Disable device interrupts */
device = getHifDevice(hDevice);
status = htcCallbacks.deviceInterruptDisabler(device, &callDSR);
AR_DEBUG_ASSERT(status == A_OK);
/* Call the DSR Handler if it is not a Spurious Interrupt */
if (callDSR) {
status = htcCallbacks.dsrHandler(device);
AR_DEBUG_ASSERT(status == A_OK);
}
#else
NdisSetEvent(&hifIRQEvent);
#endif
HIF_DEBUG_PRINTF(ATH_LOG_TRC, "hifIRQHandler : Exit\n");
return SD_API_STATUS_SUCCESS;
}
示例9: CF_BusRequest_16
static A_STATUS
CF_BusRequest_16(CF_DEVICE_HANDLE cfHandle, CF_REQUEST *pReq)
{
volatile A_UINT16 *data, *base;
A_UINT32 len, i;
CF_DEVICE *device;
device = (CF_DEVICE *)cfHandle;
if (device == NULL || pReq == NULL) {
return A_ERROR;
}
HIF_DEBUG_PRINTF(ATH_LOG_TRC,"CF_BusRequest_16 \n");
data = (A_UINT16 *)pReq->pDataBuffer;
base = (A_UINT16 *)(device->mappedMemBase + pReq->address);
len = pReq->length;
/*
* Assert on odd address and odd length
*/
AR_DEBUG_ASSERT(!(((A_UINT32)data)%2));
AR_DEBUG_ASSERT(!(((A_UINT32)base)%2));
AR_DEBUG_ASSERT(!(len%2));
len = len/2;
if (pReq->flags & CFREQ_FLAGS_DATA_WRITE) {
if (pReq->flags & CFREQ_FLAGS_FIXED_ADDRESS) {
for (i = 0; i < len; i++) {
*base = *data;
data++;
}
} else {
for (i = 0; i < len; i++) {
*base = *data;
base++;
data++;
}
}
} else {
if (pReq->flags & CFREQ_FLAGS_FIXED_ADDRESS) {
for (i = 0; i < len; i++) {
*data = *base;
data++;
}
} else {
for (i = 0; i < len; i++) {
*data = *base;
base++;
data++;
}
}
}
return A_OK;
}
示例10: htcInterruptEnabler
A_STATUS htcInterruptEnabler(HIF_DEVICE *device) {
A_STATUS status;
A_UINT32 address;
HIF_REQUEST request;
HTC_TARGET *target;
HTC_REG_REQUEST_ELEMENT *element;
target = getTargetInstance(device);
AR_DEBUG_ASSERT(target != NULL);
HTC_DEBUG_PRINTF(ATH_LOG_TRC,
"htcInterruptEnabler Enter target: 0x%p\n", target);
target->table.int_status_enable = INT_STATUS_ENABLE_ERROR_SET(0x01) |
INT_STATUS_ENABLE_CPU_SET(0x01) |
INT_STATUS_ENABLE_COUNTER_SET(0x01) |
INT_STATUS_ENABLE_MBOX_DATA_SET(0x0F);
/* Reenable Dragon Interrupts */
element = allocateRegRequestElement(target);
AR_DEBUG_ASSERT(element != NULL);
#ifdef ONLY_16BIT
FILL_REG_BUFFER(element, (A_UINT16 *)&target->table.int_status_enable, 2,
INT_STATUS_ENABLE_REG, ENDPOINT_UNUSED);
#else
FILL_REG_BUFFER(element, &target->table.int_status_enable, 1,
INT_STATUS_ENABLE_REG, ENDPOINT_UNUSED);
#endif
HIF_FRAME_REQUEST(&request, HIF_WRITE, HIF_EXTENDED_IO, HIF_ASYNCHRONOUS,
HIF_BYTE_BASIS, HIF_FIXED_ADDRESS);
address = getRegAddr(INT_STATUS_ENABLE_REG, ENDPOINT_UNUSED);
#ifdef ONLY_16BIT
status = HIFReadWrite(target->device, address,
&target->table.int_status_enable, 2,
&request, element);
#else
status = HIFReadWrite(target->device, address,
&target->table.int_status_enable, 1,
&request, element);
#endif
#ifndef HTC_SYNC
AR_DEBUG_ASSERT(status == A_OK);
#else
AR_DEBUG_ASSERT(status == A_OK || status == A_PENDING);
if ( status == A_OK ) {
element->completionCB(element, status);
}
#endif //HTC_SYNC
HTC_DEBUG_PRINTF(ATH_LOG_TRC,"htcInterruptEnabler Exit\n");
return A_OK;
}
示例11: HIFMaskInterrupt
void HIFMaskInterrupt(HIF_DEVICE *device)
{
SDIO_STATUS status;
AR_DEBUG_ASSERT(device != NULL);
AR_DEBUG_ASSERT(device->handle != NULL);
/* Mask our function IRQ */
status = SDLIB_IssueConfig(device->handle, SDCONFIG_FUNC_MASK_IRQ,
NULL, 0);
AR_DEBUG_ASSERT(SDIO_SUCCESS(status));
}
示例12: htcInterruptPending
A_STATUS
htcInterruptPending(HIF_DEVICE *device, A_BOOL *intPending)
{
A_STATUS status;
A_UINT32 address;
HTC_TARGET *target;
HIF_REQUEST request;
A_UCHAR intStatus[2] = {0,0};
A_UCHAR intMask[2] = {0,0};
target = getTargetInstance(device);
AR_DEBUG_ASSERT(target != NULL);
HTC_DEBUG_PRINTF(ATH_LOG_TRC,
"htcInterruptPending Enter target: 0x%p\n", target);
// get the current interrupt status register
HIF_FRAME_REQUEST(&request, HIF_READ, HIF_EXTENDED_IO, HIF_SYNCHRONOUS,
HIF_BYTE_BASIS, HIF_FIXED_ADDRESS);
address = getRegAddr(INT_STATUS_REG, ENDPOINT_UNUSED);
#ifdef ONLY_16BIT
status = HIFReadWrite(target->device, address,
intStatus, 2, &request, NULL);
#else
status = HIFReadWrite(target->device, address,
intStatus, 1, &request, NULL);
#endif
AR_DEBUG_ASSERT(status == A_OK);
// get the interrupt enable register value
HIF_FRAME_REQUEST(&request, HIF_READ, HIF_EXTENDED_IO, HIF_SYNCHRONOUS,
HIF_BYTE_BASIS, HIF_FIXED_ADDRESS);
address = getRegAddr(INT_STATUS_ENABLE_REG, ENDPOINT_UNUSED);
#ifdef ONLY_16BIT
status = HIFReadWrite(target->device, address,
intMask, 2, &request, NULL);
#else
status = HIFReadWrite(target->device, address,
intMask, 1, &request, NULL);
#endif
AR_DEBUG_ASSERT(status == A_OK);
if (!((intMask[0] & intStatus[0]) == 0)) {
*intPending = TRUE;
} else {
*intPending = FALSE;
}
return A_OK;
}
示例13: HIFMaskInterrupt
void HIFMaskInterrupt(HIF_DEVICE *device)
{
int ret;;
AR_DEBUG_ASSERT(device != NULL);
AR_DEBUG_ASSERT(device->func != NULL);
AR_DEBUG_PRINTF(ATH_DEBUG_TRACE, ("AR6000: HIFMaskInterrupt\n"));
/* Mask our function IRQ */
sdio_claim_host(device->func);
ret = sdio_release_irq(device->func);
sdio_release_host(device->func);
AR_DEBUG_ASSERT(ret == 0);
}
示例14: hifRWCompletionHandler
void
hifRWCompletionHandler(SDREQUEST *request)
{
void *context;
A_STATUS status = A_OK;
HIF_DEVICE *device;
BUS_REQUEST *busrequest;
busrequest = (BUS_REQUEST *)request->pCompleteContext;
AR_DEBUG_ASSERT(busrequest->request == request);
device = busrequest->device;
context = busrequest->context;
if (!SDIO_SUCCESS(request->Status)) {
status = A_ERROR;
}
/* free the request, we have all the info we need */
hifFreeBusRequest(device,busrequest);
busrequest = NULL;
if (device->shutdownInProgress) {
device->htcCallbacks.rwCompletionHandler(context, A_ERROR);
return;
}
device->htcCallbacks.rwCompletionHandler(context, status);
}
示例15: sort_barcodes
/**
* Returns a lexicographically sorted list of merged barcodes, each paired with
* the 0-based index of corresponding barcode in the source vector.
*/
barcode_vec sort_barcodes(const fastq_pair_vec& barcodes)
{
AR_DEBUG_ASSERT(!barcodes.empty());
barcode_vec sorted_barcodes;
const size_t max_key_1_len = barcodes.front().first.length();
const size_t max_key_2_len = barcodes.front().second.length();
for (auto it = barcodes.begin(); it != barcodes.end(); ++it) {
if (it->first.length() != max_key_1_len) {
throw barcode_error("mate 1 barcodes do not have the same length");
} else if (it->second.length() != max_key_2_len) {
throw barcode_error("mate 2 barcodes do not have the same length");
}
std::string barcode;
barcode.reserve(max_key_1_len + max_key_2_len);
barcode.append(it->first.sequence());
barcode.append(it->second.sequence());
sorted_barcodes.push_back(barcode_pair(barcode, it - barcodes.begin()));
}
std::sort(sorted_barcodes.begin(), sorted_barcodes.end());
return sorted_barcodes;
}