fedora core 6 1.2949 + vserver 2.2.0
[linux-2.6.git] / include / sound / control.h
index 2489b1e..1de148b 100644 (file)
@@ -30,6 +30,11 @@ struct snd_kcontrol;
 typedef int (snd_kcontrol_info_t) (struct snd_kcontrol * kcontrol, struct snd_ctl_elem_info * uinfo);
 typedef int (snd_kcontrol_get_t) (struct snd_kcontrol * kcontrol, struct snd_ctl_elem_value * ucontrol);
 typedef int (snd_kcontrol_put_t) (struct snd_kcontrol * kcontrol, struct snd_ctl_elem_value * ucontrol);
+typedef int (snd_kcontrol_tlv_rw_t)(struct snd_kcontrol *kcontrol,
+                                   int op_flag, /* 0=read,1=write,-1=command */
+                                   unsigned int size,
+                                   unsigned int __user *tlv);
+
 
 struct snd_kcontrol_new {
        snd_ctl_elem_iface_t iface;     /* interface identifier */
@@ -42,6 +47,10 @@ struct snd_kcontrol_new {
        snd_kcontrol_info_t *info;
        snd_kcontrol_get_t *get;
        snd_kcontrol_put_t *put;
+       union {
+               snd_kcontrol_tlv_rw_t *c;
+               unsigned int *p;
+       } tlv;
        unsigned long private_value;
 };
 
@@ -58,6 +67,10 @@ struct snd_kcontrol {
        snd_kcontrol_info_t *info;
        snd_kcontrol_get_t *get;
        snd_kcontrol_put_t *put;
+       union {
+               snd_kcontrol_tlv_rw_t *c;
+               unsigned int *p;
+       } tlv;
        unsigned long private_value;
        void *private_data;
        void (*private_free)(struct snd_kcontrol *kcontrol);