您当前的位置:首页 > IT编程 > C++
| C语言 | Java | VB | VC | python | Android | TensorFlow | C++ | oracle | 学术与代码 | cnn卷积神经网络 | gnn | 图像修复 | Keras | 数据集 | Neo4j | 自然语言处理 | 深度学习 | 医学CAD | 医学影像 | 超参数 | pointnet | pytorch | 异常检测 | Transformers | 情感分类 | 知识图谱 |

自学教程:C++ CHK_OVERFLOW函数代码示例

51自学网 2021-06-01 20:01:26
  C++
这篇教程C++ CHK_OVERFLOW函数代码示例写得很实用,希望能帮到您。

本文整理汇总了C++中CHK_OVERFLOW函数的典型用法代码示例。如果您正苦于以下问题:C++ CHK_OVERFLOW函数的具体用法?C++ CHK_OVERFLOW怎么用?C++ CHK_OVERFLOW使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。

在下文中一共展示了CHK_OVERFLOW函数的7个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。

示例1: diag_update_msg_mask

static void diag_update_msg_mask(int start, int end , uint8_t *buf){	int found = 0, first, last, actual_last;	uint8_t *actual_last_ptr;	uint8_t *ptr = driver->msg_masks;	uint8_t *ptr_buffer_start = &(*(driver->msg_masks));	uint8_t *ptr_buffer_end = &(*(driver->msg_masks)) + MSG_MASK_SIZE;	mutex_lock(&driver->diagchar_mutex);	/* First SSID can be zero : So check that last is non-zero */	while (*(uint32_t *)(ptr + 4)) {		first = *(uint32_t *)ptr;		ptr += 4;		last = *(uint32_t *)ptr;		ptr += 4;		actual_last = *(uint32_t *)ptr;		actual_last_ptr = ptr;		ptr += 4;		if (start >= first && start <= actual_last) {			ptr += (start - first)*4;			if (end > actual_last) {				pr_info("diag: ssid range mismatch/n");				actual_last = end;				*(uint32_t *)(actual_last_ptr) = end;			}			if (CHK_OVERFLOW(ptr_buffer_start, ptr, ptr_buffer_end,					  (((end - start)+1)*4))) {				pr_debug("diag: update ssid start %d, end %d/n",								 start, end);				memcpy(ptr, buf , ((end - start)+1)*4);			} else				pr_alert("diag: Not enough space MSG_MASK/n");			found = 1;			break;		} else {			ptr += MAX_SSID_PER_RANGE*4;		}	}	/* Entry was not found - add new table */	if (!found) {		if (CHK_OVERFLOW(ptr_buffer_start, ptr, ptr_buffer_end,				  8 + ((end - start) + 1)*4)) {			memcpy(ptr, &(start) , 4);			ptr += 4;			memcpy(ptr, &(end), 4);			ptr += 4;			memcpy(ptr, &(end), 4); /* create actual_last entry */			ptr += 4;			pr_debug("diag: adding NEW ssid start %d, end %d/n",								 start, end);			memcpy(ptr, buf , ((end - start) + 1)*4);		} else			pr_alert("diag: Not enough buffer space for MSG_MASK/n");	}	mutex_unlock(&driver->diagchar_mutex);	diag_print_mask_table();}
开发者ID:Adrioid83,项目名称:jflte_xxx,代码行数:58,


示例2: diag_update_log_mask

static void diag_update_log_mask(int equip_id, uint8_t *buf, int num_items){	uint8_t *temp = buf;	int i = 0;	unsigned char *ptr_data;	int offset = (sizeof(struct mask_info))*MAX_EQUIP_ID;	struct mask_info *ptr = (struct mask_info *)(driver->log_masks);	pr_debug("diag: received equip id = %d/n", equip_id);	mutex_lock(&driver->diagchar_mutex);	/* Check if we already know index of this equipment ID */	for (i = 0; i < MAX_EQUIP_ID; i++) {		if ((ptr->equip_id == equip_id) && (ptr->index != 0)) {			offset = ptr->index;			break;		}		if ((ptr->equip_id == 0) && (ptr->index == 0)) {			/* Reached a null entry */			ptr->equip_id = equip_id;			ptr->num_items = num_items;			ptr->index = driver->log_masks_length;			offset = driver->log_masks_length;			driver->log_masks_length += ((num_items+7)/8);			break;		}		ptr++;	}	ptr_data = driver->log_masks + offset;	if (CHK_OVERFLOW(driver->log_masks, ptr_data, driver->log_masks					 + LOG_MASK_SIZE, (num_items+7)/8))		memcpy(ptr_data, temp , (num_items+7)/8);	else		pr_err("diag: Not enough buffer space for LOG_MASK/n");	mutex_unlock(&driver->diagchar_mutex);}
开发者ID:Adrioid83,项目名称:jflte_xxx,代码行数:35,


示例3: diag_update_log_mask

static void diag_update_log_mask(uint8_t *buf, int num_items){	uint8_t *ptr = driver->log_masks;	uint8_t *temp = buf;	mutex_lock(&driver->diagchar_mutex);	if (CHK_OVERFLOW(ptr, ptr, ptr + LOG_MASK_SIZE,				  (num_items+7)/8))		memcpy(ptr, temp , (num_items+7)/8);	else		printk(KERN_CRIT " Not enough buffer space for LOG_MASK/n");	mutex_unlock(&driver->diagchar_mutex);}
开发者ID:AntonioPT,项目名称:u8150-kernel-pulse-port,代码行数:13,


示例4: diag_update_event_mask

static void diag_update_event_mask(uint8_t *buf, int num_bytes){	uint8_t *ptr = driver->event_masks;	uint8_t *temp = buf + 2;	mutex_lock(&driver->diagchar_mutex);	if (CHK_OVERFLOW(ptr, ptr, ptr+EVENT_MASK_SIZE, num_bytes)) {		memcpy(ptr, temp, num_bytes);		driver->event_status = DIAG_CTRL_MASK_VALID;	} else {		pr_err("diag: In %s, not enough buffer space/n", __func__);	}	mutex_unlock(&driver->diagchar_mutex);}
开发者ID:Hani-K,项目名称:H-Vitamin,代码行数:14,


示例5: diag_update_event_mask

static void diag_update_event_mask(uint8_t *buf, int toggle, int num_bytes){	uint8_t *ptr = driver->event_masks;	uint8_t *temp = buf + 2;	mutex_lock(&driver->diagchar_mutex);	if (!toggle)		memset(ptr, 0 , EVENT_MASK_SIZE);	else		if (CHK_OVERFLOW(ptr, ptr,				 ptr+EVENT_MASK_SIZE, num_bytes))			memcpy(ptr, temp , num_bytes);		else			printk(KERN_CRIT "Not enough buffer space for EVENT_MASK/n");	mutex_unlock(&driver->diagchar_mutex);}
开发者ID:Adrioid83,项目名称:jflte_xxx,代码行数:16,


示例6: diag_update_msg_mask

static void diag_update_msg_mask(int start, int end , uint8_t *buf){	int found = 0, first, last, actual_last;	uint8_t *actual_last_ptr;	uint8_t *ptr = driver->msg_masks;	uint8_t *ptr_buffer_start = &(*(driver->msg_masks));	uint8_t *ptr_buffer_end = &(*(driver->msg_masks)) + MSG_MASK_SIZE;	uint32_t copy_len = (end - start + 1) * sizeof(int);	mutex_lock(&driver->diagchar_mutex);		while (*(uint32_t *)(ptr + 4)) {		first = *(uint32_t *)ptr;		ptr += 4;		last = *(uint32_t *)ptr;		ptr += 4;		actual_last = *(uint32_t *)ptr;		actual_last_ptr = ptr;		ptr += 4;		if (start >= first && start <= actual_last) {			ptr += (start - first)*4;			if (end > actual_last) {				pr_info("diag: ssid range mismatch/n");				actual_last = end;				*(uint32_t *)(actual_last_ptr) = end;			}			if (actual_last-first >= MAX_SSID_PER_RANGE) {				pr_err("diag: In %s, truncating ssid range, %d-%d to max allowed: %d",					__func__, first, actual_last,					MAX_SSID_PER_RANGE);				copy_len = MAX_SSID_PER_RANGE;				actual_last = first + MAX_SSID_PER_RANGE;				*(uint32_t *)actual_last_ptr = actual_last;			}			if (CHK_OVERFLOW(ptr_buffer_start, ptr, ptr_buffer_end,					  (((end - start)+1)*4))) {				pr_debug("diag: update ssid start %d, end %d/n",								 start, end);				memcpy(ptr, buf , copy_len);			} else				pr_alert("diag: Not enough space MSG_MASK/n");			found = 1;			break;		} else {			ptr += MAX_SSID_PER_RANGE*4;		}	}		if (!found) {		if (CHK_OVERFLOW(ptr_buffer_start, ptr, ptr_buffer_end,				  8 + ((end - start) + 1)*4)) {			memcpy(ptr, &(start) , 4);			ptr += 4;			memcpy(ptr, &(end), 4);			ptr += 4;			memcpy(ptr, &(end), 4); 			ptr += 4;			pr_debug("diag: adding NEW ssid start %d, end %d/n",								 start, end);			memcpy(ptr, buf , ((end - start) + 1)*4);		} else			pr_alert("diag: Not enough buffer space for MSG_MASK/n");	}	driver->msg_status = DIAG_CTRL_MASK_VALID;	mutex_unlock(&driver->diagchar_mutex);	diag_print_mask_table();}
开发者ID:DirtyDroidX,项目名称:android_kernel_htc_m8ul,代码行数:68,


示例7: diag_update_msg_mask

static void diag_update_msg_mask(int start, int end , uint8_t *buf){	int found = 0;	int first;	int last;	uint8_t *ptr = driver->msg_masks;	uint8_t *ptr_buffer_start = &(*(driver->msg_masks));	uint8_t *ptr_buffer_end = &(*(driver->msg_masks)) + MSG_MASK_SIZE;	mutex_lock(&driver->diagchar_mutex);	/* First SSID can be zero : So check that last is non-zero */	while (*(uint32_t *)(ptr + 4)) {		first = *(uint32_t *)ptr;		ptr += 4;		last = *(uint32_t *)ptr;		ptr += 4;		if (start >= first && start <= last) {			ptr += (start - first)*4;			if (end <= last)				if (CHK_OVERFLOW(ptr_buffer_start, ptr,						  ptr_buffer_end,						  (((end - start)+1)*4)))					memcpy(ptr, buf , ((end - start)+1)*4);				else					printk(KERN_CRIT "Not enough"							 " buffer space for"							 " MSG_MASK/n");			else				printk(KERN_INFO "Unable to copy"						 " mask change/n");			found = 1;			break;		} else {			ptr += ((last - first) + 1)*4;		}	}	/* Entry was not found - add new table */	if (!found) {		if (CHK_OVERFLOW(ptr_buffer_start, ptr, ptr_buffer_end,				  8 + ((end - start) + 1)*4)) {			memcpy(ptr, &(start) , 4);			ptr += 4;			memcpy(ptr, &(end), 4);			ptr += 4;			memcpy(ptr, buf , ((end - start) + 1)*4);		} else			printk(KERN_CRIT " Not enough buffer"					 " space for MSG_MASK/n");	}	mutex_unlock(&driver->diagchar_mutex);	diag_print_mask_table();#ifdef CONFIG_LGE_DIAG	if(ptr[(LGE_DIAG_ICD_LOGGING_SSID-start)*4] == LGE_DIAG_ICD_LOGGING_SSID_MASK)	{		if(key_touch_logging_status == 0) 		{			printk(KERN_INFO "[SLATE] %s : enable hard key press & pan tap event logging/n",__func__);			key_touch_logging_status = 1;		}	}	else	{		if(key_touch_logging_status == 1)		{			printk(KERN_INFO "[SLATE] %s : disable hard key press & pan tap event logging/n",__func__);			key_touch_logging_status = 0;		}	}#endif /*CONFIG_LGE_DIAG*/}
开发者ID:downthemachine,项目名称:VM696-Kernel,代码行数:73,



注:本文中的CHK_OVERFLOW函数示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


C++ CHKiRet函数代码示例
C++ CHK_ORET函数代码示例
万事OK自学网:51自学网_软件自学网_CAD自学网自学excel、自学PS、自学CAD、自学C语言、自学css3实例,是一个通过网络自主学习工作技能的自学平台,网友喜欢的软件自学网站。