4 * Copyright (c) 2000 - 2011 Samsung Electronics Co., Ltd. All rights reserved.
6 * Contact: JuHak Park <juhaki.park@samsung.com>,
7 * JuneHyuk Lee <junhyuk7.lee@samsung.com>,
8 * SunBong Ha <sunbong.ha@samsung.com>
10 * Licensed under the Apache License, Version 2.0 (the "License");
11 * you may not use this file except in compliance with the License.
12 * You may obtain a copy of the License at
14 * http://www.apache.org/licenses/LICENSE-2.0
16 * Unless required by applicable law or agreed to in writing, software
17 * distributed under the License is distributed on an "AS IS" BASIS,
18 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
19 * See the License for the specific language governing permissions and
20 * limitations under the License.
28 * For any sort of issue you concern as to this software,
29 * you may use following point of contact.
30 * All resources contributed on this software
31 * are orinigally written by S-Core Inc., a member of Samsung Group.
33 * Wook Choi <wook.choi@samsung.com>
36 #ifndef PARAM_SPEC_INTERNAL_H_
37 #define PARAM_SPEC_INTERNAL_H_
39 #include "param_value.h"
41 typedef ec_boolean(*char_validate_func) (ec_int8 value, ec_int8 minimum, ec_int8 maximum);
42 typedef ec_boolean(*uchar_validate_func) (ec_uint8 value, ec_uint8 minimum, ec_uint8 maximum);
43 typedef ec_boolean(*int_validate_func) (ec_int value, ec_int minimum, ec_int maximum);
44 typedef ec_boolean(*uint_validate_func) (ec_uint value, ec_uint minimum, ec_uint maximum);
45 typedef ec_boolean(*float_validate_func) (ec_float value, ec_float minimum, ec_float maximum);
46 typedef ec_boolean(*double_validate_func) (ec_double value, ec_double minimum, ec_double maximum);
48 typedef struct _param_spec_char_validate param_spec_char_validate;
49 typedef struct _param_spec_uchar_validate param_spec_uchar_validate;
50 typedef struct _param_spec_int_validate param_spec_int_validate;
51 typedef struct _param_spec_uint_validate param_spec_uint_validate;
52 typedef struct _param_spec_float_validate param_spec_float_validate;
53 typedef struct _param_spec_double_validate param_spec_double_validate;
55 struct _param_spec_char_validate {
58 char_validate_func valid_func;
61 struct _param_spec_uchar_validate {
64 uchar_validate_func valid_func;
67 struct _param_spec_int_validate {
70 int_validate_func valid_func;
73 struct _param_spec_uint_validate {
76 uint_validate_func valid_func;
79 struct _param_spec_float_validate {
82 float_validate_func valid_func;
85 struct _param_spec_double_validate {
88 double_validate_func valid_func;
91 struct _param_spec_struct_validate {
96 param_spec_char_validate *char_validate;
97 param_spec_uchar_validate *uchar_validate;
98 param_spec_int_validate *int_validate;
99 param_spec_uint_validate *uint_validate;
100 param_spec_float_validate *float_validate;
101 param_spec_double_validate *double_validate;
102 validate_struct_func_callback struct_validate_func;
107 ECValueType value_type;
111 param_value_t default_value;
112 private_validate input_validate;
113 private_validate output_validate;
115 copy_struct_func_callback copy_struct_func;
116 free_struct_func_callback free_struct_func;
119 inline ec_boolean is_input_flag_on(ECParamFlags flags);
120 inline ec_boolean is_output_flag_on(ECParamFlags flags);
121 inline ec_boolean is_input_validate_on_flag_on(ECParamFlags flags);
122 inline ec_boolean is_output_validate_on_flag_on(ECParamFlags flags);
123 inline ec_boolean is_input_default_value_on_flag_on(ECParamFlags flags);
125 #endif /* PARAM_SPEC_INTERNAL_H_ */