>> Note that there is no confusion: one val_desc conresponds to one prop_val 
>> and to one string.
> 
> I thought vd_val is a void *, so that it's interpretation is up to
> the get/set implementation?
> 
> typedef struct val_desc {
>         char    *vd_name;
>         void    *vd_val;
> } val_desc_t;
> 
Right, that means if you have more than 1 values for one val_desc_t, you 
should have a structure like below and let vd_val point to that structure:

struct your_prop_val {
        uint_t  cnt;
        your_propval_type       *vals;  
};

But to the framework, each val_desc will have one vd_val, how to interpret 
this vd_val into multiple values is the implementation detail of each link 
property.

> 
>> So that the number of val_desc will be the same as the 
>> number of the prop_val and the number of the string.
>>
>> Unless it doesn't work for your case. If not, please provide an example then 
>> we can discuss how to solve it.
> 
> I need to pass in more than just the char **prop_val. (e.g., meta-information
> about the properties, common header info to be sent to the gldv3 
> drivers). Let me send you code-snippets offline, if that will help.
> 
Sure.

>>>   *my_arg3 = 1, 
>>>   my_arg2.prop_val = arg2;
>>>   my_arg2.val_cnt = arg3;
>>>
>>> Does that make sense? 
>>>
>> I don't understand, if you have "arg3" values, why *my_arg3 is set to 1?
> 
> I believe you are using vd_val as the prop_val itself, whereas
> I'm using the vd_val as a meta structure that contains prop_val plus other
> stuff.
> 
See above.

Thanks
- Cathy

Reply via email to