88 lines
		
	
	
	
		
			3.3 KiB
			
		
	
	
	
		
			C
		
	
	
	
	
	
		
		
			
		
	
	
			88 lines
		
	
	
	
		
			3.3 KiB
			
		
	
	
	
		
			C
		
	
	
	
	
	
|   | /*
 | ||
|  |   This file is provided under a dual BSD/GPLv2 license.  When using or | ||
|  |   redistributing this file, you may do so under either license. | ||
|  | 
 | ||
|  |   GPL LICENSE SUMMARY | ||
|  |   Copyright(c) 2014 Intel Corporation. | ||
|  |   This program is free software; you can redistribute it and/or modify | ||
|  |   it under the terms of version 2 of the GNU General Public License as | ||
|  |   published by the Free Software Foundation. | ||
|  | 
 | ||
|  |   This program is distributed in the hope that it will be useful, but | ||
|  |   WITHOUT ANY WARRANTY; without even the implied warranty of | ||
|  |   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU | ||
|  |   General Public License for more details. | ||
|  | 
 | ||
|  |   Contact Information: | ||
|  |   qat-linux@intel.com | ||
|  | 
 | ||
|  |   BSD LICENSE | ||
|  |   Copyright(c) 2014 Intel Corporation. | ||
|  |   Redistribution and use in source and binary forms, with or without | ||
|  |   modification, are permitted provided that the following conditions | ||
|  |   are met: | ||
|  | 
 | ||
|  |     * Redistributions of source code must retain the above copyright | ||
|  |       notice, this list of conditions and the following disclaimer. | ||
|  |     * Redistributions in binary form must reproduce the above copyright | ||
|  |       notice, this list of conditions and the following disclaimer in | ||
|  |       the documentation and/or other materials provided with the | ||
|  |       distribution. | ||
|  |     * Neither the name of Intel Corporation nor the names of its | ||
|  |       contributors may be used to endorse or promote products derived | ||
|  |       from this software without specific prior written permission. | ||
|  | 
 | ||
|  |   THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS | ||
|  |   "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT | ||
|  |   LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR | ||
|  |   A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT | ||
|  |   OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, | ||
|  |   SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT | ||
|  |   LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, | ||
|  |   DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY | ||
|  |   THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT | ||
|  |   (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE | ||
|  |   OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | ||
|  | */ | ||
|  | #ifndef ADF_CFG_H_
 | ||
|  | #define ADF_CFG_H_
 | ||
|  | 
 | ||
|  | #include <linux/list.h>
 | ||
|  | #include <linux/rwsem.h>
 | ||
|  | #include <linux/debugfs.h>
 | ||
|  | #include "adf_accel_devices.h"
 | ||
|  | #include "adf_cfg_common.h"
 | ||
|  | #include "adf_cfg_strings.h"
 | ||
|  | 
 | ||
|  | struct adf_cfg_key_val { | ||
|  | 	char key[ADF_CFG_MAX_KEY_LEN_IN_BYTES]; | ||
|  | 	char val[ADF_CFG_MAX_VAL_LEN_IN_BYTES]; | ||
|  | 	enum adf_cfg_val_type type; | ||
|  | 	struct list_head list; | ||
|  | }; | ||
|  | 
 | ||
|  | struct adf_cfg_section { | ||
|  | 	char name[ADF_CFG_MAX_SECTION_LEN_IN_BYTES]; | ||
|  | 	struct list_head list; | ||
|  | 	struct list_head param_head; | ||
|  | }; | ||
|  | 
 | ||
|  | struct adf_cfg_device_data { | ||
|  | 	struct list_head sec_list; | ||
|  | 	struct dentry *debug; | ||
|  | 	struct rw_semaphore lock; | ||
|  | }; | ||
|  | 
 | ||
|  | int adf_cfg_dev_add(struct adf_accel_dev *accel_dev); | ||
|  | void adf_cfg_dev_remove(struct adf_accel_dev *accel_dev); | ||
|  | int adf_cfg_section_add(struct adf_accel_dev *accel_dev, const char *name); | ||
|  | void adf_cfg_del_all(struct adf_accel_dev *accel_dev); | ||
|  | int adf_cfg_add_key_value_param(struct adf_accel_dev *accel_dev, | ||
|  | 				const char *section_name, | ||
|  | 				const char *key, const void *val, | ||
|  | 				enum adf_cfg_val_type type); | ||
|  | int adf_cfg_get_param_value(struct adf_accel_dev *accel_dev, | ||
|  | 			    const char *section, const char *name, char *value); | ||
|  | 
 | ||
|  | #endif
 |