mirror of https://github.com/OpenIPC/firmware.git
				
				
				
			
		
			
				
	
	
		
			103 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			Diff
		
	
	
			
		
		
	
	
			103 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			Diff
		
	
	
| --- linux-4.9.37/drivers/mtd/nand/match_table.c	1970-01-01 03:00:00.000000000 +0300
 | |
| +++ linux-4.9.y/drivers/mtd/nand/match_table.c	2021-06-07 13:01:33.000000000 +0300
 | |
| @@ -0,0 +1,99 @@
 | |
| +/*
 | |
| + * Copyright (c) Hunan Goke,Chengdu Goke,Shandong Goke. 2021. All rights reserved.
 | |
| + */
 | |
| +
 | |
| +#include <linux/string.h>
 | |
| +#include "match_table.h"
 | |
| +
 | |
| +/*****************************************************************************/
 | |
| +int reg2type(struct match_reg_type *table, int length, int reg, int def)
 | |
| +{
 | |
| +	while (length-- > 0) {
 | |
| +		if (table->reg == reg) {
 | |
| +			return table->type;
 | |
| +		}
 | |
| +		table++;
 | |
| +	}
 | |
| +	return def;
 | |
| +}
 | |
| +
 | |
| +int type2reg(struct match_reg_type *table, int length, int type, int def)
 | |
| +{
 | |
| +	while (length-- > 0) {
 | |
| +		if (table->type == type) {
 | |
| +			return table->reg;
 | |
| +		}
 | |
| +		table++;
 | |
| +	}
 | |
| +	return def;
 | |
| +}
 | |
| +
 | |
| +int str2type(struct match_type_str *table, int length, const char *str,
 | |
| +	     int size, int def)
 | |
| +{
 | |
| +	while (length-- > 0) {
 | |
| +		if (!strncmp(table->str, str, size)) {
 | |
| +			return table->type;
 | |
| +		}
 | |
| +		table++;
 | |
| +	}
 | |
| +	return def;
 | |
| +}
 | |
| +
 | |
| +const char *type2str(struct match_type_str *table, int length, int type,
 | |
| +		     const char *def)
 | |
| +{
 | |
| +	while (length-- > 0) {
 | |
| +		if (table->type == type) {
 | |
| +			return table->str;
 | |
| +		}
 | |
| +		table++;
 | |
| +	}
 | |
| +	return def;
 | |
| +}
 | |
| +
 | |
| +int match_reg_to_type(struct match_t *table, int nr_table, int reg, int def)
 | |
| +{
 | |
| +	while (nr_table-- > 0) {
 | |
| +		if (table->reg == reg) {
 | |
| +			return table->type;
 | |
| +		}
 | |
| +		table++;
 | |
| +	}
 | |
| +	return def;
 | |
| +}
 | |
| +
 | |
| +int match_type_to_reg(struct match_t *table, int nr_table, int type, int def)
 | |
| +{
 | |
| +	while (nr_table-- > 0) {
 | |
| +		if (table->type == type) {
 | |
| +			return table->reg;
 | |
| +		}
 | |
| +		table++;
 | |
| +	}
 | |
| +	return def;
 | |
| +}
 | |
| +
 | |
| +int match_data_to_type(struct match_t *table, int nr_table,const char *data,
 | |
| +		       int size, int def)
 | |
| +{
 | |
| +	while (nr_table-- > 0) {
 | |
| +		if (!memcmp(table->data, data, size)) {
 | |
| +			return table->type;
 | |
| +		}
 | |
| +		table++;
 | |
| +	}
 | |
| +	return def;
 | |
| +}
 | |
| +
 | |
| +void *match_type_to_data(struct match_t *table, int nr_table, int type,
 | |
| +			 const void *def)
 | |
| +{
 | |
| +	while (nr_table-- > 0) {
 | |
| +		if (table->type == type) {
 | |
| +			return table->data;
 | |
| +		}
 | |
| +		table++;
 | |
| +	}
 | |
| +	return (void *)def;
 | |
| +}
 |