staging: fix up speakup kobject mode
It uses the unnecessary S_IFREG bit which broke when my stricter-checking-for-mode patch went in. Since we're fixing it anyway, the extra level of indirection is confusing for readers (ROOT_W == rw-r--r-- for example). Also, many of these are other-writable. Is that really intended? I'll-queue-this-patch-up-in-a-bit-by: Greg KH <greg@kroah.com> Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
This commit is contained in:
parent
57673c2b0b
commit
22c9bcad85
17 changed files with 210 additions and 212 deletions
|
@ -851,75 +851,75 @@ static ssize_t message_store(struct kobject *kobj, struct kobj_attribute *attr,
|
|||
* Declare the attributes.
|
||||
*/
|
||||
static struct kobj_attribute keymap_attribute =
|
||||
__ATTR(keymap, ROOT_W, keymap_show, keymap_store);
|
||||
__ATTR(keymap, S_IWUSR|S_IRUGO, keymap_show, keymap_store);
|
||||
static struct kobj_attribute silent_attribute =
|
||||
__ATTR(silent, USER_W, NULL, silent_store);
|
||||
__ATTR(silent, S_IWUGO, NULL, silent_store);
|
||||
static struct kobj_attribute synth_attribute =
|
||||
__ATTR(synth, USER_RW, synth_show, synth_store);
|
||||
__ATTR(synth, S_IWUGO|S_IRUGO, synth_show, synth_store);
|
||||
static struct kobj_attribute synth_direct_attribute =
|
||||
__ATTR(synth_direct, USER_W, NULL, synth_direct_store);
|
||||
__ATTR(synth_direct, S_IWUGO, NULL, synth_direct_store);
|
||||
static struct kobj_attribute version_attribute =
|
||||
__ATTR_RO(version);
|
||||
|
||||
static struct kobj_attribute delimiters_attribute =
|
||||
__ATTR(delimiters, USER_RW, punc_show, punc_store);
|
||||
__ATTR(delimiters, S_IWUGO|S_IRUGO, punc_show, punc_store);
|
||||
static struct kobj_attribute ex_num_attribute =
|
||||
__ATTR(ex_num, USER_RW, punc_show, punc_store);
|
||||
__ATTR(ex_num, S_IWUGO|S_IRUGO, punc_show, punc_store);
|
||||
static struct kobj_attribute punc_all_attribute =
|
||||
__ATTR(punc_all, USER_RW, punc_show, punc_store);
|
||||
__ATTR(punc_all, S_IWUGO|S_IRUGO, punc_show, punc_store);
|
||||
static struct kobj_attribute punc_most_attribute =
|
||||
__ATTR(punc_most, USER_RW, punc_show, punc_store);
|
||||
__ATTR(punc_most, S_IWUGO|S_IRUGO, punc_show, punc_store);
|
||||
static struct kobj_attribute punc_some_attribute =
|
||||
__ATTR(punc_some, USER_RW, punc_show, punc_store);
|
||||
__ATTR(punc_some, S_IWUGO|S_IRUGO, punc_show, punc_store);
|
||||
static struct kobj_attribute repeats_attribute =
|
||||
__ATTR(repeats, USER_RW, punc_show, punc_store);
|
||||
__ATTR(repeats, S_IWUGO|S_IRUGO, punc_show, punc_store);
|
||||
|
||||
static struct kobj_attribute attrib_bleep_attribute =
|
||||
__ATTR(attrib_bleep, USER_RW, spk_var_show, spk_var_store);
|
||||
__ATTR(attrib_bleep, S_IWUGO|S_IRUGO, spk_var_show, spk_var_store);
|
||||
static struct kobj_attribute bell_pos_attribute =
|
||||
__ATTR(bell_pos, USER_RW, spk_var_show, spk_var_store);
|
||||
__ATTR(bell_pos, S_IWUGO|S_IRUGO, spk_var_show, spk_var_store);
|
||||
static struct kobj_attribute bleep_time_attribute =
|
||||
__ATTR(bleep_time, USER_RW, spk_var_show, spk_var_store);
|
||||
__ATTR(bleep_time, S_IWUGO|S_IRUGO, spk_var_show, spk_var_store);
|
||||
static struct kobj_attribute bleeps_attribute =
|
||||
__ATTR(bleeps, USER_RW, spk_var_show, spk_var_store);
|
||||
__ATTR(bleeps, S_IWUGO|S_IRUGO, spk_var_show, spk_var_store);
|
||||
static struct kobj_attribute cursor_time_attribute =
|
||||
__ATTR(cursor_time, USER_RW, spk_var_show, spk_var_store);
|
||||
__ATTR(cursor_time, S_IWUGO|S_IRUGO, spk_var_show, spk_var_store);
|
||||
static struct kobj_attribute key_echo_attribute =
|
||||
__ATTR(key_echo, USER_RW, spk_var_show, spk_var_store);
|
||||
__ATTR(key_echo, S_IWUGO|S_IRUGO, spk_var_show, spk_var_store);
|
||||
static struct kobj_attribute no_interrupt_attribute =
|
||||
__ATTR(no_interrupt, USER_RW, spk_var_show, spk_var_store);
|
||||
__ATTR(no_interrupt, S_IWUGO|S_IRUGO, spk_var_show, spk_var_store);
|
||||
static struct kobj_attribute punc_level_attribute =
|
||||
__ATTR(punc_level, USER_RW, spk_var_show, spk_var_store);
|
||||
__ATTR(punc_level, S_IWUGO|S_IRUGO, spk_var_show, spk_var_store);
|
||||
static struct kobj_attribute reading_punc_attribute =
|
||||
__ATTR(reading_punc, USER_RW, spk_var_show, spk_var_store);
|
||||
__ATTR(reading_punc, S_IWUGO|S_IRUGO, spk_var_show, spk_var_store);
|
||||
static struct kobj_attribute say_control_attribute =
|
||||
__ATTR(say_control, USER_RW, spk_var_show, spk_var_store);
|
||||
__ATTR(say_control, S_IWUGO|S_IRUGO, spk_var_show, spk_var_store);
|
||||
static struct kobj_attribute say_word_ctl_attribute =
|
||||
__ATTR(say_word_ctl, USER_RW, spk_var_show, spk_var_store);
|
||||
__ATTR(say_word_ctl, S_IWUGO|S_IRUGO, spk_var_show, spk_var_store);
|
||||
static struct kobj_attribute spell_delay_attribute =
|
||||
__ATTR(spell_delay, USER_RW, spk_var_show, spk_var_store);
|
||||
__ATTR(spell_delay, S_IWUGO|S_IRUGO, spk_var_show, spk_var_store);
|
||||
|
||||
/*
|
||||
* These attributes are i18n related.
|
||||
*/
|
||||
static struct kobj_attribute announcements_attribute =
|
||||
__ATTR(announcements, USER_RW, message_show, message_store);
|
||||
__ATTR(announcements, S_IWUGO|S_IRUGO, message_show, message_store);
|
||||
static struct kobj_attribute characters_attribute =
|
||||
__ATTR(characters, USER_RW, chars_chartab_show, chars_chartab_store);
|
||||
__ATTR(characters, S_IWUGO|S_IRUGO, chars_chartab_show, chars_chartab_store);
|
||||
static struct kobj_attribute chartab_attribute =
|
||||
__ATTR(chartab, USER_RW, chars_chartab_show, chars_chartab_store);
|
||||
__ATTR(chartab, S_IWUGO|S_IRUGO, chars_chartab_show, chars_chartab_store);
|
||||
static struct kobj_attribute ctl_keys_attribute =
|
||||
__ATTR(ctl_keys, USER_RW, message_show, message_store);
|
||||
__ATTR(ctl_keys, S_IWUGO|S_IRUGO, message_show, message_store);
|
||||
static struct kobj_attribute colors_attribute =
|
||||
__ATTR(colors, USER_RW, message_show, message_store);
|
||||
__ATTR(colors, S_IWUGO|S_IRUGO, message_show, message_store);
|
||||
static struct kobj_attribute formatted_attribute =
|
||||
__ATTR(formatted, USER_RW, message_show, message_store);
|
||||
__ATTR(formatted, S_IWUGO|S_IRUGO, message_show, message_store);
|
||||
static struct kobj_attribute function_names_attribute =
|
||||
__ATTR(function_names, USER_RW, message_show, message_store);
|
||||
__ATTR(function_names, S_IWUGO|S_IRUGO, message_show, message_store);
|
||||
static struct kobj_attribute key_names_attribute =
|
||||
__ATTR(key_names, USER_RW, message_show, message_store);
|
||||
__ATTR(key_names, S_IWUGO|S_IRUGO, message_show, message_store);
|
||||
static struct kobj_attribute states_attribute =
|
||||
__ATTR(states, USER_RW, message_show, message_store);
|
||||
__ATTR(states, S_IWUGO|S_IRUGO, message_show, message_store);
|
||||
|
||||
/*
|
||||
* Create groups of attributes so that we can create and destroy them all
|
||||
|
|
|
@ -12,8 +12,6 @@
|
|||
/* proc permissions */
|
||||
#define USER_R (S_IFREG|S_IRUGO)
|
||||
#define USER_W (S_IFREG|S_IWUGO)
|
||||
#define USER_RW (S_IFREG|S_IRUGO|S_IWUGO)
|
||||
#define ROOT_W (S_IFREG|S_IRUGO|S_IWUSR)
|
||||
|
||||
#define TOGGLE_0 .u.n = {NULL, 0, 0, 1, 0, 0, NULL }
|
||||
#define TOGGLE_1 .u.n = {NULL, 1, 0, 1, 0, 0, NULL }
|
||||
|
|
|
@ -62,28 +62,28 @@ static struct var_t vars[] = {
|
|||
* These attributes will appear in /sys/accessibility/speakup/acntpc.
|
||||
*/
|
||||
static struct kobj_attribute caps_start_attribute =
|
||||
__ATTR(caps_start, USER_RW, spk_var_show, spk_var_store);
|
||||
__ATTR(caps_start, S_IWUGO|S_IRUGO, spk_var_show, spk_var_store);
|
||||
static struct kobj_attribute caps_stop_attribute =
|
||||
__ATTR(caps_stop, USER_RW, spk_var_show, spk_var_store);
|
||||
__ATTR(caps_stop, S_IWUGO|S_IRUGO, spk_var_show, spk_var_store);
|
||||
static struct kobj_attribute pitch_attribute =
|
||||
__ATTR(pitch, USER_RW, spk_var_show, spk_var_store);
|
||||
__ATTR(pitch, S_IWUGO|S_IRUGO, spk_var_show, spk_var_store);
|
||||
static struct kobj_attribute rate_attribute =
|
||||
__ATTR(rate, USER_RW, spk_var_show, spk_var_store);
|
||||
__ATTR(rate, S_IWUGO|S_IRUGO, spk_var_show, spk_var_store);
|
||||
static struct kobj_attribute tone_attribute =
|
||||
__ATTR(tone, USER_RW, spk_var_show, spk_var_store);
|
||||
__ATTR(tone, S_IWUGO|S_IRUGO, spk_var_show, spk_var_store);
|
||||
static struct kobj_attribute vol_attribute =
|
||||
__ATTR(vol, USER_RW, spk_var_show, spk_var_store);
|
||||
__ATTR(vol, S_IWUGO|S_IRUGO, spk_var_show, spk_var_store);
|
||||
|
||||
static struct kobj_attribute delay_time_attribute =
|
||||
__ATTR(delay_time, ROOT_W, spk_var_show, spk_var_store);
|
||||
__ATTR(delay_time, S_IWUSR|S_IRUGO, spk_var_show, spk_var_store);
|
||||
static struct kobj_attribute direct_attribute =
|
||||
__ATTR(direct, USER_RW, spk_var_show, spk_var_store);
|
||||
__ATTR(direct, S_IWUGO|S_IRUGO, spk_var_show, spk_var_store);
|
||||
static struct kobj_attribute full_time_attribute =
|
||||
__ATTR(full_time, ROOT_W, spk_var_show, spk_var_store);
|
||||
__ATTR(full_time, S_IWUSR|S_IRUGO, spk_var_show, spk_var_store);
|
||||
static struct kobj_attribute jiffy_delta_attribute =
|
||||
__ATTR(jiffy_delta, ROOT_W, spk_var_show, spk_var_store);
|
||||
__ATTR(jiffy_delta, S_IWUSR|S_IRUGO, spk_var_show, spk_var_store);
|
||||
static struct kobj_attribute trigger_time_attribute =
|
||||
__ATTR(trigger_time, ROOT_W, spk_var_show, spk_var_store);
|
||||
__ATTR(trigger_time, S_IWUSR|S_IRUGO, spk_var_show, spk_var_store);
|
||||
|
||||
/*
|
||||
* Create a group of attributes so that we can create and destroy them all
|
||||
|
|
|
@ -47,28 +47,28 @@ static struct var_t vars[] = {
|
|||
* These attributes will appear in /sys/accessibility/speakup/acntsa.
|
||||
*/
|
||||
static struct kobj_attribute caps_start_attribute =
|
||||
__ATTR(caps_start, USER_RW, spk_var_show, spk_var_store);
|
||||
__ATTR(caps_start, S_IWUGO|S_IRUGO, spk_var_show, spk_var_store);
|
||||
static struct kobj_attribute caps_stop_attribute =
|
||||
__ATTR(caps_stop, USER_RW, spk_var_show, spk_var_store);
|
||||
__ATTR(caps_stop, S_IWUGO|S_IRUGO, spk_var_show, spk_var_store);
|
||||
static struct kobj_attribute pitch_attribute =
|
||||
__ATTR(pitch, USER_RW, spk_var_show, spk_var_store);
|
||||
__ATTR(pitch, S_IWUGO|S_IRUGO, spk_var_show, spk_var_store);
|
||||
static struct kobj_attribute rate_attribute =
|
||||
__ATTR(rate, USER_RW, spk_var_show, spk_var_store);
|
||||
__ATTR(rate, S_IWUGO|S_IRUGO, spk_var_show, spk_var_store);
|
||||
static struct kobj_attribute tone_attribute =
|
||||
__ATTR(tone, USER_RW, spk_var_show, spk_var_store);
|
||||
__ATTR(tone, S_IWUGO|S_IRUGO, spk_var_show, spk_var_store);
|
||||
static struct kobj_attribute vol_attribute =
|
||||
__ATTR(vol, USER_RW, spk_var_show, spk_var_store);
|
||||
__ATTR(vol, S_IWUGO|S_IRUGO, spk_var_show, spk_var_store);
|
||||
|
||||
static struct kobj_attribute delay_time_attribute =
|
||||
__ATTR(delay_time, ROOT_W, spk_var_show, spk_var_store);
|
||||
__ATTR(delay_time, S_IRUSR|S_IRUGO, spk_var_show, spk_var_store);
|
||||
static struct kobj_attribute direct_attribute =
|
||||
__ATTR(direct, USER_RW, spk_var_show, spk_var_store);
|
||||
__ATTR(direct, S_IWUGO|S_IRUGO, spk_var_show, spk_var_store);
|
||||
static struct kobj_attribute full_time_attribute =
|
||||
__ATTR(full_time, ROOT_W, spk_var_show, spk_var_store);
|
||||
__ATTR(full_time, S_IRUSR|S_IRUGO, spk_var_show, spk_var_store);
|
||||
static struct kobj_attribute jiffy_delta_attribute =
|
||||
__ATTR(jiffy_delta, ROOT_W, spk_var_show, spk_var_store);
|
||||
__ATTR(jiffy_delta, S_IRUSR|S_IRUGO, spk_var_show, spk_var_store);
|
||||
static struct kobj_attribute trigger_time_attribute =
|
||||
__ATTR(trigger_time, ROOT_W, spk_var_show, spk_var_store);
|
||||
__ATTR(trigger_time, S_IRUSR|S_IRUGO, spk_var_show, spk_var_store);
|
||||
|
||||
/*
|
||||
* Create a group of attributes so that we can create and destroy them all
|
||||
|
|
|
@ -53,30 +53,30 @@ static struct var_t vars[] = {
|
|||
* These attributes will appear in /sys/accessibility/speakup/apollo.
|
||||
*/
|
||||
static struct kobj_attribute caps_start_attribute =
|
||||
__ATTR(caps_start, USER_RW, spk_var_show, spk_var_store);
|
||||
__ATTR(caps_start, S_IWUGO|S_IRUGO, spk_var_show, spk_var_store);
|
||||
static struct kobj_attribute caps_stop_attribute =
|
||||
__ATTR(caps_stop, USER_RW, spk_var_show, spk_var_store);
|
||||
__ATTR(caps_stop, S_IWUGO|S_IRUGO, spk_var_show, spk_var_store);
|
||||
static struct kobj_attribute lang_attribute =
|
||||
__ATTR(lang, USER_RW, spk_var_show, spk_var_store);
|
||||
__ATTR(lang, S_IWUGO|S_IRUGO, spk_var_show, spk_var_store);
|
||||
static struct kobj_attribute pitch_attribute =
|
||||
__ATTR(pitch, USER_RW, spk_var_show, spk_var_store);
|
||||
__ATTR(pitch, S_IWUGO|S_IRUGO, spk_var_show, spk_var_store);
|
||||
static struct kobj_attribute rate_attribute =
|
||||
__ATTR(rate, USER_RW, spk_var_show, spk_var_store);
|
||||
__ATTR(rate, S_IWUGO|S_IRUGO, spk_var_show, spk_var_store);
|
||||
static struct kobj_attribute voice_attribute =
|
||||
__ATTR(voice, USER_RW, spk_var_show, spk_var_store);
|
||||
__ATTR(voice, S_IWUGO|S_IRUGO, spk_var_show, spk_var_store);
|
||||
static struct kobj_attribute vol_attribute =
|
||||
__ATTR(vol, USER_RW, spk_var_show, spk_var_store);
|
||||
__ATTR(vol, S_IWUGO|S_IRUGO, spk_var_show, spk_var_store);
|
||||
|
||||
static struct kobj_attribute delay_time_attribute =
|
||||
__ATTR(delay_time, ROOT_W, spk_var_show, spk_var_store);
|
||||
__ATTR(delay_time, S_IWUSR|S_IRUGO, spk_var_show, spk_var_store);
|
||||
static struct kobj_attribute direct_attribute =
|
||||
__ATTR(direct, USER_RW, spk_var_show, spk_var_store);
|
||||
__ATTR(direct, S_IWUGO|S_IRUGO, spk_var_show, spk_var_store);
|
||||
static struct kobj_attribute full_time_attribute =
|
||||
__ATTR(full_time, ROOT_W, spk_var_show, spk_var_store);
|
||||
__ATTR(full_time, S_IWUSR|S_IRUGO, spk_var_show, spk_var_store);
|
||||
static struct kobj_attribute jiffy_delta_attribute =
|
||||
__ATTR(jiffy_delta, ROOT_W, spk_var_show, spk_var_store);
|
||||
__ATTR(jiffy_delta, S_IWUSR|S_IRUGO, spk_var_show, spk_var_store);
|
||||
static struct kobj_attribute trigger_time_attribute =
|
||||
__ATTR(trigger_time, ROOT_W, spk_var_show, spk_var_store);
|
||||
__ATTR(trigger_time, S_IWUSR|S_IRUGO, spk_var_show, spk_var_store);
|
||||
|
||||
/*
|
||||
* Create a group of attributes so that we can create and destroy them all
|
||||
|
|
|
@ -49,30 +49,30 @@ static struct var_t vars[] = {
|
|||
* These attributes will appear in /sys/accessibility/speakup/audptr.
|
||||
*/
|
||||
static struct kobj_attribute caps_start_attribute =
|
||||
__ATTR(caps_start, USER_RW, spk_var_show, spk_var_store);
|
||||
__ATTR(caps_start, S_IWUGO|S_IRUGO, spk_var_show, spk_var_store);
|
||||
static struct kobj_attribute caps_stop_attribute =
|
||||
__ATTR(caps_stop, USER_RW, spk_var_show, spk_var_store);
|
||||
__ATTR(caps_stop, S_IWUGO|S_IRUGO, spk_var_show, spk_var_store);
|
||||
static struct kobj_attribute pitch_attribute =
|
||||
__ATTR(pitch, USER_RW, spk_var_show, spk_var_store);
|
||||
__ATTR(pitch, S_IWUGO|S_IRUGO, spk_var_show, spk_var_store);
|
||||
static struct kobj_attribute punct_attribute =
|
||||
__ATTR(punct, USER_RW, spk_var_show, spk_var_store);
|
||||
__ATTR(punct, S_IWUGO|S_IRUGO, spk_var_show, spk_var_store);
|
||||
static struct kobj_attribute rate_attribute =
|
||||
__ATTR(rate, USER_RW, spk_var_show, spk_var_store);
|
||||
__ATTR(rate, S_IWUGO|S_IRUGO, spk_var_show, spk_var_store);
|
||||
static struct kobj_attribute tone_attribute =
|
||||
__ATTR(tone, USER_RW, spk_var_show, spk_var_store);
|
||||
__ATTR(tone, S_IWUGO|S_IRUGO, spk_var_show, spk_var_store);
|
||||
static struct kobj_attribute vol_attribute =
|
||||
__ATTR(vol, USER_RW, spk_var_show, spk_var_store);
|
||||
__ATTR(vol, S_IWUGO|S_IRUGO, spk_var_show, spk_var_store);
|
||||
|
||||
static struct kobj_attribute delay_time_attribute =
|
||||
__ATTR(delay_time, ROOT_W, spk_var_show, spk_var_store);
|
||||
__ATTR(delay_time, S_IWUSR|S_IRUGO, spk_var_show, spk_var_store);
|
||||
static struct kobj_attribute direct_attribute =
|
||||
__ATTR(direct, USER_RW, spk_var_show, spk_var_store);
|
||||
__ATTR(direct, S_IWUGO|S_IRUGO, spk_var_show, spk_var_store);
|
||||
static struct kobj_attribute full_time_attribute =
|
||||
__ATTR(full_time, ROOT_W, spk_var_show, spk_var_store);
|
||||
__ATTR(full_time, S_IWUSR|S_IRUGO, spk_var_show, spk_var_store);
|
||||
static struct kobj_attribute jiffy_delta_attribute =
|
||||
__ATTR(jiffy_delta, ROOT_W, spk_var_show, spk_var_store);
|
||||
__ATTR(jiffy_delta, S_IWUSR|S_IRUGO, spk_var_show, spk_var_store);
|
||||
static struct kobj_attribute trigger_time_attribute =
|
||||
__ATTR(trigger_time, ROOT_W, spk_var_show, spk_var_store);
|
||||
__ATTR(trigger_time, S_IWUSR|S_IRUGO, spk_var_show, spk_var_store);
|
||||
|
||||
/*
|
||||
* Create a group of attributes so that we can create and destroy them all
|
||||
|
|
|
@ -44,28 +44,28 @@ static struct var_t vars[] = {
|
|||
* These attributes will appear in /sys/accessibility/speakup/bns.
|
||||
*/
|
||||
static struct kobj_attribute caps_start_attribute =
|
||||
__ATTR(caps_start, USER_RW, spk_var_show, spk_var_store);
|
||||
__ATTR(caps_start, S_IWUGO|S_IRUGO, spk_var_show, spk_var_store);
|
||||
static struct kobj_attribute caps_stop_attribute =
|
||||
__ATTR(caps_stop, USER_RW, spk_var_show, spk_var_store);
|
||||
__ATTR(caps_stop, S_IWUGO|S_IRUGO, spk_var_show, spk_var_store);
|
||||
static struct kobj_attribute pitch_attribute =
|
||||
__ATTR(pitch, USER_RW, spk_var_show, spk_var_store);
|
||||
__ATTR(pitch, S_IWUGO|S_IRUGO, spk_var_show, spk_var_store);
|
||||
static struct kobj_attribute rate_attribute =
|
||||
__ATTR(rate, USER_RW, spk_var_show, spk_var_store);
|
||||
__ATTR(rate, S_IWUGO|S_IRUGO, spk_var_show, spk_var_store);
|
||||
static struct kobj_attribute tone_attribute =
|
||||
__ATTR(tone, USER_RW, spk_var_show, spk_var_store);
|
||||
__ATTR(tone, S_IWUGO|S_IRUGO, spk_var_show, spk_var_store);
|
||||
static struct kobj_attribute vol_attribute =
|
||||
__ATTR(vol, USER_RW, spk_var_show, spk_var_store);
|
||||
__ATTR(vol, S_IWUGO|S_IRUGO, spk_var_show, spk_var_store);
|
||||
|
||||
static struct kobj_attribute delay_time_attribute =
|
||||
__ATTR(delay_time, ROOT_W, spk_var_show, spk_var_store);
|
||||
__ATTR(delay_time, S_IWUSR|S_IRUGO, spk_var_show, spk_var_store);
|
||||
static struct kobj_attribute direct_attribute =
|
||||
__ATTR(direct, USER_RW, spk_var_show, spk_var_store);
|
||||
__ATTR(direct, S_IWUGO|S_IRUGO, spk_var_show, spk_var_store);
|
||||
static struct kobj_attribute full_time_attribute =
|
||||
__ATTR(full_time, ROOT_W, spk_var_show, spk_var_store);
|
||||
__ATTR(full_time, S_IWUSR|S_IRUGO, spk_var_show, spk_var_store);
|
||||
static struct kobj_attribute jiffy_delta_attribute =
|
||||
__ATTR(jiffy_delta, ROOT_W, spk_var_show, spk_var_store);
|
||||
__ATTR(jiffy_delta, S_IWUSR|S_IRUGO, spk_var_show, spk_var_store);
|
||||
static struct kobj_attribute trigger_time_attribute =
|
||||
__ATTR(trigger_time, ROOT_W, spk_var_show, spk_var_store);
|
||||
__ATTR(trigger_time, S_IWUSR|S_IRUGO, spk_var_show, spk_var_store);
|
||||
|
||||
/*
|
||||
* Create a group of attributes so that we can create and destroy them all
|
||||
|
|
|
@ -70,30 +70,30 @@ static struct var_t vars[] = {
|
|||
* These attributes will appear in /sys/accessibility/speakup/decext.
|
||||
*/
|
||||
static struct kobj_attribute caps_start_attribute =
|
||||
__ATTR(caps_start, USER_RW, spk_var_show, spk_var_store);
|
||||
__ATTR(caps_start, S_IWUGO|S_IRUGO, spk_var_show, spk_var_store);
|
||||
static struct kobj_attribute caps_stop_attribute =
|
||||
__ATTR(caps_stop, USER_RW, spk_var_show, spk_var_store);
|
||||
__ATTR(caps_stop, S_IWUGO|S_IRUGO, spk_var_show, spk_var_store);
|
||||
static struct kobj_attribute pitch_attribute =
|
||||
__ATTR(pitch, USER_RW, spk_var_show, spk_var_store);
|
||||
__ATTR(pitch, S_IWUGO|S_IRUGO, spk_var_show, spk_var_store);
|
||||
static struct kobj_attribute punct_attribute =
|
||||
__ATTR(punct, USER_RW, spk_var_show, spk_var_store);
|
||||
__ATTR(punct, S_IWUGO|S_IRUGO, spk_var_show, spk_var_store);
|
||||
static struct kobj_attribute rate_attribute =
|
||||
__ATTR(rate, USER_RW, spk_var_show, spk_var_store);
|
||||
__ATTR(rate, S_IWUGO|S_IRUGO, spk_var_show, spk_var_store);
|
||||
static struct kobj_attribute voice_attribute =
|
||||
__ATTR(voice, USER_RW, spk_var_show, spk_var_store);
|
||||
__ATTR(voice, S_IWUGO|S_IRUGO, spk_var_show, spk_var_store);
|
||||
static struct kobj_attribute vol_attribute =
|
||||
__ATTR(vol, USER_RW, spk_var_show, spk_var_store);
|
||||
__ATTR(vol, S_IWUGO|S_IRUGO, spk_var_show, spk_var_store);
|
||||
|
||||
static struct kobj_attribute delay_time_attribute =
|
||||
__ATTR(delay_time, ROOT_W, spk_var_show, spk_var_store);
|
||||
__ATTR(delay_time, S_IWUSR|S_IRUGO, spk_var_show, spk_var_store);
|
||||
static struct kobj_attribute direct_attribute =
|
||||
__ATTR(direct, USER_RW, spk_var_show, spk_var_store);
|
||||
__ATTR(direct, S_IWUGO|S_IRUGO, spk_var_show, spk_var_store);
|
||||
static struct kobj_attribute full_time_attribute =
|
||||
__ATTR(full_time, ROOT_W, spk_var_show, spk_var_store);
|
||||
__ATTR(full_time, S_IWUSR|S_IRUGO, spk_var_show, spk_var_store);
|
||||
static struct kobj_attribute jiffy_delta_attribute =
|
||||
__ATTR(jiffy_delta, ROOT_W, spk_var_show, spk_var_store);
|
||||
__ATTR(jiffy_delta, S_IWUSR|S_IRUGO, spk_var_show, spk_var_store);
|
||||
static struct kobj_attribute trigger_time_attribute =
|
||||
__ATTR(trigger_time, ROOT_W, spk_var_show, spk_var_store);
|
||||
__ATTR(trigger_time, S_IWUSR|S_IRUGO, spk_var_show, spk_var_store);
|
||||
|
||||
/*
|
||||
* Create a group of attributes so that we can create and destroy them all
|
||||
|
|
|
@ -164,30 +164,30 @@ static struct var_t vars[] = {
|
|||
* These attributes will appear in /sys/accessibility/speakup/decpc.
|
||||
*/
|
||||
static struct kobj_attribute caps_start_attribute =
|
||||
__ATTR(caps_start, USER_RW, spk_var_show, spk_var_store);
|
||||
__ATTR(caps_start, S_IWUGO|S_IRUGO, spk_var_show, spk_var_store);
|
||||
static struct kobj_attribute caps_stop_attribute =
|
||||
__ATTR(caps_stop, USER_RW, spk_var_show, spk_var_store);
|
||||
__ATTR(caps_stop, S_IWUGO|S_IRUGO, spk_var_show, spk_var_store);
|
||||
static struct kobj_attribute pitch_attribute =
|
||||
__ATTR(pitch, USER_RW, spk_var_show, spk_var_store);
|
||||
__ATTR(pitch, S_IWUGO|S_IRUGO, spk_var_show, spk_var_store);
|
||||
static struct kobj_attribute punct_attribute =
|
||||
__ATTR(punct, USER_RW, spk_var_show, spk_var_store);
|
||||
__ATTR(punct, S_IWUGO|S_IRUGO, spk_var_show, spk_var_store);
|
||||
static struct kobj_attribute rate_attribute =
|
||||
__ATTR(rate, USER_RW, spk_var_show, spk_var_store);
|
||||
__ATTR(rate, S_IWUGO|S_IRUGO, spk_var_show, spk_var_store);
|
||||
static struct kobj_attribute voice_attribute =
|
||||
__ATTR(voice, USER_RW, spk_var_show, spk_var_store);
|
||||
__ATTR(voice, S_IWUGO|S_IRUGO, spk_var_show, spk_var_store);
|
||||
static struct kobj_attribute vol_attribute =
|
||||
__ATTR(vol, USER_RW, spk_var_show, spk_var_store);
|
||||
__ATTR(vol, S_IWUGO|S_IRUGO, spk_var_show, spk_var_store);
|
||||
|
||||
static struct kobj_attribute delay_time_attribute =
|
||||
__ATTR(delay_time, ROOT_W, spk_var_show, spk_var_store);
|
||||
__ATTR(delay_time, S_IWUSR|S_IRUGO, spk_var_show, spk_var_store);
|
||||
static struct kobj_attribute direct_attribute =
|
||||
__ATTR(direct, USER_RW, spk_var_show, spk_var_store);
|
||||
__ATTR(direct, S_IWUGO|S_IRUGO, spk_var_show, spk_var_store);
|
||||
static struct kobj_attribute full_time_attribute =
|
||||
__ATTR(full_time, ROOT_W, spk_var_show, spk_var_store);
|
||||
__ATTR(full_time, S_IWUSR|S_IRUGO, spk_var_show, spk_var_store);
|
||||
static struct kobj_attribute jiffy_delta_attribute =
|
||||
__ATTR(jiffy_delta, ROOT_W, spk_var_show, spk_var_store);
|
||||
__ATTR(jiffy_delta, S_IWUSR|S_IRUGO, spk_var_show, spk_var_store);
|
||||
static struct kobj_attribute trigger_time_attribute =
|
||||
__ATTR(trigger_time, ROOT_W, spk_var_show, spk_var_store);
|
||||
__ATTR(trigger_time, S_IWUSR|S_IRUGO, spk_var_show, spk_var_store);
|
||||
|
||||
/*
|
||||
* Create a group of attributes so that we can create and destroy them all
|
||||
|
|
|
@ -70,30 +70,30 @@ static struct var_t vars[] = {
|
|||
* These attributes will appear in /sys/accessibility/speakup/dectlk.
|
||||
*/
|
||||
static struct kobj_attribute caps_start_attribute =
|
||||
__ATTR(caps_start, USER_RW, spk_var_show, spk_var_store);
|
||||
__ATTR(caps_start, S_IWUGO|S_IRUGO, spk_var_show, spk_var_store);
|
||||
static struct kobj_attribute caps_stop_attribute =
|
||||
__ATTR(caps_stop, USER_RW, spk_var_show, spk_var_store);
|
||||
__ATTR(caps_stop, S_IWUGO|S_IRUGO, spk_var_show, spk_var_store);
|
||||
static struct kobj_attribute pitch_attribute =
|
||||
__ATTR(pitch, USER_RW, spk_var_show, spk_var_store);
|
||||
__ATTR(pitch, S_IWUGO|S_IRUGO, spk_var_show, spk_var_store);
|
||||
static struct kobj_attribute punct_attribute =
|
||||
__ATTR(punct, USER_RW, spk_var_show, spk_var_store);
|
||||
__ATTR(punct, S_IWUGO|S_IRUGO, spk_var_show, spk_var_store);
|
||||
static struct kobj_attribute rate_attribute =
|
||||
__ATTR(rate, USER_RW, spk_var_show, spk_var_store);
|
||||
__ATTR(rate, S_IWUGO|S_IRUGO, spk_var_show, spk_var_store);
|
||||
static struct kobj_attribute voice_attribute =
|
||||
__ATTR(voice, USER_RW, spk_var_show, spk_var_store);
|
||||
__ATTR(voice, S_IWUGO|S_IRUGO, spk_var_show, spk_var_store);
|
||||
static struct kobj_attribute vol_attribute =
|
||||
__ATTR(vol, USER_RW, spk_var_show, spk_var_store);
|
||||
__ATTR(vol, S_IWUGO|S_IRUGO, spk_var_show, spk_var_store);
|
||||
|
||||
static struct kobj_attribute delay_time_attribute =
|
||||
__ATTR(delay_time, ROOT_W, spk_var_show, spk_var_store);
|
||||
__ATTR(delay_time, S_IWUSR|S_IRUGO, spk_var_show, spk_var_store);
|
||||
static struct kobj_attribute direct_attribute =
|
||||
__ATTR(direct, USER_RW, spk_var_show, spk_var_store);
|
||||
__ATTR(direct, S_IWUGO|S_IRUGO, spk_var_show, spk_var_store);
|
||||
static struct kobj_attribute full_time_attribute =
|
||||
__ATTR(full_time, ROOT_W, spk_var_show, spk_var_store);
|
||||
__ATTR(full_time, S_IWUSR|S_IRUGO, spk_var_show, spk_var_store);
|
||||
static struct kobj_attribute jiffy_delta_attribute =
|
||||
__ATTR(jiffy_delta, ROOT_W, spk_var_show, spk_var_store);
|
||||
__ATTR(jiffy_delta, S_IWUSR|S_IRUGO, spk_var_show, spk_var_store);
|
||||
static struct kobj_attribute trigger_time_attribute =
|
||||
__ATTR(trigger_time, ROOT_W, spk_var_show, spk_var_store);
|
||||
__ATTR(trigger_time, S_IWUSR|S_IRUGO, spk_var_show, spk_var_store);
|
||||
|
||||
/*
|
||||
* Create a group of attributes so that we can create and destroy them all
|
||||
|
|
|
@ -67,34 +67,34 @@ static struct var_t vars[] = {
|
|||
* These attributes will appear in /sys/accessibility/speakup/dtlk.
|
||||
*/
|
||||
static struct kobj_attribute caps_start_attribute =
|
||||
__ATTR(caps_start, USER_RW, spk_var_show, spk_var_store);
|
||||
__ATTR(caps_start, S_IWUGO|S_IRUGO, spk_var_show, spk_var_store);
|
||||
static struct kobj_attribute caps_stop_attribute =
|
||||
__ATTR(caps_stop, USER_RW, spk_var_show, spk_var_store);
|
||||
__ATTR(caps_stop, S_IWUGO|S_IRUGO, spk_var_show, spk_var_store);
|
||||
static struct kobj_attribute freq_attribute =
|
||||
__ATTR(freq, USER_RW, spk_var_show, spk_var_store);
|
||||
__ATTR(freq, S_IWUGO|S_IRUGO, spk_var_show, spk_var_store);
|
||||
static struct kobj_attribute pitch_attribute =
|
||||
__ATTR(pitch, USER_RW, spk_var_show, spk_var_store);
|
||||
__ATTR(pitch, S_IWUGO|S_IRUGO, spk_var_show, spk_var_store);
|
||||
static struct kobj_attribute punct_attribute =
|
||||
__ATTR(punct, USER_RW, spk_var_show, spk_var_store);
|
||||
__ATTR(punct, S_IWUGO|S_IRUGO, spk_var_show, spk_var_store);
|
||||
static struct kobj_attribute rate_attribute =
|
||||
__ATTR(rate, USER_RW, spk_var_show, spk_var_store);
|
||||
__ATTR(rate, S_IWUGO|S_IRUGO, spk_var_show, spk_var_store);
|
||||
static struct kobj_attribute tone_attribute =
|
||||
__ATTR(tone, USER_RW, spk_var_show, spk_var_store);
|
||||
__ATTR(tone, S_IWUGO|S_IRUGO, spk_var_show, spk_var_store);
|
||||
static struct kobj_attribute voice_attribute =
|
||||
__ATTR(voice, USER_RW, spk_var_show, spk_var_store);
|
||||
__ATTR(voice, S_IWUGO|S_IRUGO, spk_var_show, spk_var_store);
|
||||
static struct kobj_attribute vol_attribute =
|
||||
__ATTR(vol, USER_RW, spk_var_show, spk_var_store);
|
||||
__ATTR(vol, S_IWUGO|S_IRUGO, spk_var_show, spk_var_store);
|
||||
|
||||
static struct kobj_attribute delay_time_attribute =
|
||||
__ATTR(delay_time, ROOT_W, spk_var_show, spk_var_store);
|
||||
__ATTR(delay_time, S_IWUSR|S_IRUGO, spk_var_show, spk_var_store);
|
||||
static struct kobj_attribute direct_attribute =
|
||||
__ATTR(direct, USER_RW, spk_var_show, spk_var_store);
|
||||
__ATTR(direct, S_IWUGO|S_IRUGO, spk_var_show, spk_var_store);
|
||||
static struct kobj_attribute full_time_attribute =
|
||||
__ATTR(full_time, ROOT_W, spk_var_show, spk_var_store);
|
||||
__ATTR(full_time, S_IWUSR|S_IRUGO, spk_var_show, spk_var_store);
|
||||
static struct kobj_attribute jiffy_delta_attribute =
|
||||
__ATTR(jiffy_delta, ROOT_W, spk_var_show, spk_var_store);
|
||||
__ATTR(jiffy_delta, S_IWUSR|S_IRUGO, spk_var_show, spk_var_store);
|
||||
static struct kobj_attribute trigger_time_attribute =
|
||||
__ATTR(trigger_time, ROOT_W, spk_var_show, spk_var_store);
|
||||
__ATTR(trigger_time, S_IWUSR|S_IRUGO, spk_var_show, spk_var_store);
|
||||
|
||||
/*
|
||||
* Create a group of attributes so that we can create and destroy them all
|
||||
|
|
|
@ -46,28 +46,28 @@ static struct var_t vars[] = {
|
|||
* These attributes will appear in /sys/accessibility/speakup/dummy.
|
||||
*/
|
||||
static struct kobj_attribute caps_start_attribute =
|
||||
__ATTR(caps_start, USER_RW, spk_var_show, spk_var_store);
|
||||
__ATTR(caps_start, S_IWUGO|S_IRUGO, spk_var_show, spk_var_store);
|
||||
static struct kobj_attribute caps_stop_attribute =
|
||||
__ATTR(caps_stop, USER_RW, spk_var_show, spk_var_store);
|
||||
__ATTR(caps_stop, S_IWUGO|S_IRUGO, spk_var_show, spk_var_store);
|
||||
static struct kobj_attribute pitch_attribute =
|
||||
__ATTR(pitch, USER_RW, spk_var_show, spk_var_store);
|
||||
__ATTR(pitch, S_IWUGO|S_IRUGO, spk_var_show, spk_var_store);
|
||||
static struct kobj_attribute rate_attribute =
|
||||
__ATTR(rate, USER_RW, spk_var_show, spk_var_store);
|
||||
__ATTR(rate, S_IWUGO|S_IRUGO, spk_var_show, spk_var_store);
|
||||
static struct kobj_attribute tone_attribute =
|
||||
__ATTR(tone, USER_RW, spk_var_show, spk_var_store);
|
||||
__ATTR(tone, S_IWUGO|S_IRUGO, spk_var_show, spk_var_store);
|
||||
static struct kobj_attribute vol_attribute =
|
||||
__ATTR(vol, USER_RW, spk_var_show, spk_var_store);
|
||||
__ATTR(vol, S_IWUGO|S_IRUGO, spk_var_show, spk_var_store);
|
||||
|
||||
static struct kobj_attribute delay_time_attribute =
|
||||
__ATTR(delay_time, ROOT_W, spk_var_show, spk_var_store);
|
||||
__ATTR(delay_time, S_IWUSR|S_IRUGO, spk_var_show, spk_var_store);
|
||||
static struct kobj_attribute direct_attribute =
|
||||
__ATTR(direct, USER_RW, spk_var_show, spk_var_store);
|
||||
__ATTR(direct, S_IWUGO|S_IRUGO, spk_var_show, spk_var_store);
|
||||
static struct kobj_attribute full_time_attribute =
|
||||
__ATTR(full_time, ROOT_W, spk_var_show, spk_var_store);
|
||||
__ATTR(full_time, S_IWUSR|S_IRUGO, spk_var_show, spk_var_store);
|
||||
static struct kobj_attribute jiffy_delta_attribute =
|
||||
__ATTR(jiffy_delta, ROOT_W, spk_var_show, spk_var_store);
|
||||
__ATTR(jiffy_delta, S_IWUSR|S_IRUGO, spk_var_show, spk_var_store);
|
||||
static struct kobj_attribute trigger_time_attribute =
|
||||
__ATTR(trigger_time, ROOT_W, spk_var_show, spk_var_store);
|
||||
__ATTR(trigger_time, S_IWUSR|S_IRUGO, spk_var_show, spk_var_store);
|
||||
|
||||
/*
|
||||
* Create a group of attributes so that we can create and destroy them all
|
||||
|
|
|
@ -59,24 +59,24 @@ static struct var_t vars[] = {
|
|||
* These attributes will appear in /sys/accessibility/speakup/keypc.
|
||||
*/
|
||||
static struct kobj_attribute caps_start_attribute =
|
||||
__ATTR(caps_start, USER_RW, spk_var_show, spk_var_store);
|
||||
__ATTR(caps_start, S_IWUGO|S_IRUGO, spk_var_show, spk_var_store);
|
||||
static struct kobj_attribute caps_stop_attribute =
|
||||
__ATTR(caps_stop, USER_RW, spk_var_show, spk_var_store);
|
||||
__ATTR(caps_stop, S_IWUGO|S_IRUGO, spk_var_show, spk_var_store);
|
||||
static struct kobj_attribute pitch_attribute =
|
||||
__ATTR(pitch, USER_RW, spk_var_show, spk_var_store);
|
||||
__ATTR(pitch, S_IWUGO|S_IRUGO, spk_var_show, spk_var_store);
|
||||
static struct kobj_attribute rate_attribute =
|
||||
__ATTR(rate, USER_RW, spk_var_show, spk_var_store);
|
||||
__ATTR(rate, S_IWUGO|S_IRUGO, spk_var_show, spk_var_store);
|
||||
|
||||
static struct kobj_attribute delay_time_attribute =
|
||||
__ATTR(delay_time, ROOT_W, spk_var_show, spk_var_store);
|
||||
__ATTR(delay_time, S_IWUSR|S_IRUGO, spk_var_show, spk_var_store);
|
||||
static struct kobj_attribute direct_attribute =
|
||||
__ATTR(direct, USER_RW, spk_var_show, spk_var_store);
|
||||
__ATTR(direct, S_IWUGO|S_IRUGO, spk_var_show, spk_var_store);
|
||||
static struct kobj_attribute full_time_attribute =
|
||||
__ATTR(full_time, ROOT_W, spk_var_show, spk_var_store);
|
||||
__ATTR(full_time, S_IWUSR|S_IRUGO, spk_var_show, spk_var_store);
|
||||
static struct kobj_attribute jiffy_delta_attribute =
|
||||
__ATTR(jiffy_delta, ROOT_W, spk_var_show, spk_var_store);
|
||||
__ATTR(jiffy_delta, S_IWUSR|S_IRUGO, spk_var_show, spk_var_store);
|
||||
static struct kobj_attribute trigger_time_attribute =
|
||||
__ATTR(trigger_time, ROOT_W, spk_var_show, spk_var_store);
|
||||
__ATTR(trigger_time, S_IWUSR|S_IRUGO, spk_var_show, spk_var_store);
|
||||
|
||||
/*
|
||||
* Create a group of attributes so that we can create and destroy them all
|
||||
|
|
|
@ -50,34 +50,34 @@ static struct var_t vars[] = {
|
|||
* These attributes will appear in /sys/accessibility/speakup/ltlk.
|
||||
*/
|
||||
static struct kobj_attribute caps_start_attribute =
|
||||
__ATTR(caps_start, USER_RW, spk_var_show, spk_var_store);
|
||||
__ATTR(caps_start, S_IWUGO|S_IRUGO, spk_var_show, spk_var_store);
|
||||
static struct kobj_attribute caps_stop_attribute =
|
||||
__ATTR(caps_stop, USER_RW, spk_var_show, spk_var_store);
|
||||
__ATTR(caps_stop, S_IWUGO|S_IRUGO, spk_var_show, spk_var_store);
|
||||
static struct kobj_attribute freq_attribute =
|
||||
__ATTR(freq, USER_RW, spk_var_show, spk_var_store);
|
||||
__ATTR(freq, S_IWUGO|S_IRUGO, spk_var_show, spk_var_store);
|
||||
static struct kobj_attribute pitch_attribute =
|
||||
__ATTR(pitch, USER_RW, spk_var_show, spk_var_store);
|
||||
__ATTR(pitch, S_IWUGO|S_IRUGO, spk_var_show, spk_var_store);
|
||||
static struct kobj_attribute punct_attribute =
|
||||
__ATTR(punct, USER_RW, spk_var_show, spk_var_store);
|
||||
__ATTR(punct, S_IWUGO|S_IRUGO, spk_var_show, spk_var_store);
|
||||
static struct kobj_attribute rate_attribute =
|
||||
__ATTR(rate, USER_RW, spk_var_show, spk_var_store);
|
||||
__ATTR(rate, S_IWUGO|S_IRUGO, spk_var_show, spk_var_store);
|
||||
static struct kobj_attribute tone_attribute =
|
||||
__ATTR(tone, USER_RW, spk_var_show, spk_var_store);
|
||||
__ATTR(tone, S_IWUGO|S_IRUGO, spk_var_show, spk_var_store);
|
||||
static struct kobj_attribute voice_attribute =
|
||||
__ATTR(voice, USER_RW, spk_var_show, spk_var_store);
|
||||
__ATTR(voice, S_IWUGO|S_IRUGO, spk_var_show, spk_var_store);
|
||||
static struct kobj_attribute vol_attribute =
|
||||
__ATTR(vol, USER_RW, spk_var_show, spk_var_store);
|
||||
__ATTR(vol, S_IWUGO|S_IRUGO, spk_var_show, spk_var_store);
|
||||
|
||||
static struct kobj_attribute delay_time_attribute =
|
||||
__ATTR(delay_time, ROOT_W, spk_var_show, spk_var_store);
|
||||
__ATTR(delay_time, S_IWUSR|S_IRUGO, spk_var_show, spk_var_store);
|
||||
static struct kobj_attribute direct_attribute =
|
||||
__ATTR(direct, USER_RW, spk_var_show, spk_var_store);
|
||||
__ATTR(direct, S_IWUGO|S_IRUGO, spk_var_show, spk_var_store);
|
||||
static struct kobj_attribute full_time_attribute =
|
||||
__ATTR(full_time, ROOT_W, spk_var_show, spk_var_store);
|
||||
__ATTR(full_time, S_IWUSR|S_IRUGO, spk_var_show, spk_var_store);
|
||||
static struct kobj_attribute jiffy_delta_attribute =
|
||||
__ATTR(jiffy_delta, ROOT_W, spk_var_show, spk_var_store);
|
||||
__ATTR(jiffy_delta, S_IWUSR|S_IRUGO, spk_var_show, spk_var_store);
|
||||
static struct kobj_attribute trigger_time_attribute =
|
||||
__ATTR(trigger_time, ROOT_W, spk_var_show, spk_var_store);
|
||||
__ATTR(trigger_time, S_IWUSR|S_IRUGO, spk_var_show, spk_var_store);
|
||||
|
||||
/*
|
||||
* Create a group of attributes so that we can create and destroy them all
|
||||
|
|
|
@ -61,41 +61,41 @@ static struct var_t vars[] = {
|
|||
* These attributes will appear in /sys/accessibility/speakup/soft.
|
||||
*/
|
||||
static struct kobj_attribute caps_start_attribute =
|
||||
__ATTR(caps_start, USER_RW, spk_var_show, spk_var_store);
|
||||
__ATTR(caps_start, S_IWUGO|S_IRUGO, spk_var_show, spk_var_store);
|
||||
static struct kobj_attribute caps_stop_attribute =
|
||||
__ATTR(caps_stop, USER_RW, spk_var_show, spk_var_store);
|
||||
__ATTR(caps_stop, S_IWUGO|S_IRUGO, spk_var_show, spk_var_store);
|
||||
static struct kobj_attribute freq_attribute =
|
||||
__ATTR(freq, USER_RW, spk_var_show, spk_var_store);
|
||||
__ATTR(freq, S_IWUGO|S_IRUGO, spk_var_show, spk_var_store);
|
||||
static struct kobj_attribute pitch_attribute =
|
||||
__ATTR(pitch, USER_RW, spk_var_show, spk_var_store);
|
||||
__ATTR(pitch, S_IWUGO|S_IRUGO, spk_var_show, spk_var_store);
|
||||
static struct kobj_attribute punct_attribute =
|
||||
__ATTR(punct, USER_RW, spk_var_show, spk_var_store);
|
||||
__ATTR(punct, S_IWUGO|S_IRUGO, spk_var_show, spk_var_store);
|
||||
static struct kobj_attribute rate_attribute =
|
||||
__ATTR(rate, USER_RW, spk_var_show, spk_var_store);
|
||||
__ATTR(rate, S_IWUGO|S_IRUGO, spk_var_show, spk_var_store);
|
||||
static struct kobj_attribute tone_attribute =
|
||||
__ATTR(tone, USER_RW, spk_var_show, spk_var_store);
|
||||
__ATTR(tone, S_IWUGO|S_IRUGO, spk_var_show, spk_var_store);
|
||||
static struct kobj_attribute voice_attribute =
|
||||
__ATTR(voice, USER_RW, spk_var_show, spk_var_store);
|
||||
__ATTR(voice, S_IWUGO|S_IRUGO, spk_var_show, spk_var_store);
|
||||
static struct kobj_attribute vol_attribute =
|
||||
__ATTR(vol, USER_RW, spk_var_show, spk_var_store);
|
||||
__ATTR(vol, S_IWUGO|S_IRUGO, spk_var_show, spk_var_store);
|
||||
|
||||
/*
|
||||
* We should uncomment the following definition, when we agree on a
|
||||
* method of passing a language designation to the software synthesizer.
|
||||
* static struct kobj_attribute lang_attribute =
|
||||
* __ATTR(lang, USER_RW, spk_var_show, spk_var_store);
|
||||
* __ATTR(lang, S_IWUGO|S_IRUGO, spk_var_show, spk_var_store);
|
||||
*/
|
||||
|
||||
static struct kobj_attribute delay_time_attribute =
|
||||
__ATTR(delay_time, ROOT_W, spk_var_show, spk_var_store);
|
||||
__ATTR(delay_time, S_IWUSR|S_IRUGO, spk_var_show, spk_var_store);
|
||||
static struct kobj_attribute direct_attribute =
|
||||
__ATTR(direct, USER_RW, spk_var_show, spk_var_store);
|
||||
__ATTR(direct, S_IWUGO|S_IRUGO, spk_var_show, spk_var_store);
|
||||
static struct kobj_attribute full_time_attribute =
|
||||
__ATTR(full_time, ROOT_W, spk_var_show, spk_var_store);
|
||||
__ATTR(full_time, S_IWUSR|S_IRUGO, spk_var_show, spk_var_store);
|
||||
static struct kobj_attribute jiffy_delta_attribute =
|
||||
__ATTR(jiffy_delta, ROOT_W, spk_var_show, spk_var_store);
|
||||
__ATTR(jiffy_delta, S_IWUSR|S_IRUGO, spk_var_show, spk_var_store);
|
||||
static struct kobj_attribute trigger_time_attribute =
|
||||
__ATTR(trigger_time, ROOT_W, spk_var_show, spk_var_store);
|
||||
__ATTR(trigger_time, S_IWUSR|S_IRUGO, spk_var_show, spk_var_store);
|
||||
|
||||
/*
|
||||
* Create a group of attributes so that we can create and destroy them all
|
||||
|
|
|
@ -48,30 +48,30 @@ static struct var_t vars[] = {
|
|||
* These attributes will appear in /sys/accessibility/speakup/spkout.
|
||||
*/
|
||||
static struct kobj_attribute caps_start_attribute =
|
||||
__ATTR(caps_start, USER_RW, spk_var_show, spk_var_store);
|
||||
__ATTR(caps_start, S_IWUGO|S_IRUGO, spk_var_show, spk_var_store);
|
||||
static struct kobj_attribute caps_stop_attribute =
|
||||
__ATTR(caps_stop, USER_RW, spk_var_show, spk_var_store);
|
||||
__ATTR(caps_stop, S_IWUGO|S_IRUGO, spk_var_show, spk_var_store);
|
||||
static struct kobj_attribute pitch_attribute =
|
||||
__ATTR(pitch, USER_RW, spk_var_show, spk_var_store);
|
||||
__ATTR(pitch, S_IWUGO|S_IRUGO, spk_var_show, spk_var_store);
|
||||
static struct kobj_attribute punct_attribute =
|
||||
__ATTR(punct, USER_RW, spk_var_show, spk_var_store);
|
||||
__ATTR(punct, S_IWUGO|S_IRUGO, spk_var_show, spk_var_store);
|
||||
static struct kobj_attribute rate_attribute =
|
||||
__ATTR(rate, USER_RW, spk_var_show, spk_var_store);
|
||||
__ATTR(rate, S_IWUGO|S_IRUGO, spk_var_show, spk_var_store);
|
||||
static struct kobj_attribute tone_attribute =
|
||||
__ATTR(tone, USER_RW, spk_var_show, spk_var_store);
|
||||
__ATTR(tone, S_IWUGO|S_IRUGO, spk_var_show, spk_var_store);
|
||||
static struct kobj_attribute vol_attribute =
|
||||
__ATTR(vol, USER_RW, spk_var_show, spk_var_store);
|
||||
__ATTR(vol, S_IWUGO|S_IRUGO, spk_var_show, spk_var_store);
|
||||
|
||||
static struct kobj_attribute delay_time_attribute =
|
||||
__ATTR(delay_time, ROOT_W, spk_var_show, spk_var_store);
|
||||
__ATTR(delay_time, S_IWUSR|S_IRUGO, spk_var_show, spk_var_store);
|
||||
static struct kobj_attribute direct_attribute =
|
||||
__ATTR(direct, USER_RW, spk_var_show, spk_var_store);
|
||||
__ATTR(direct, S_IWUGO|S_IRUGO, spk_var_show, spk_var_store);
|
||||
static struct kobj_attribute full_time_attribute =
|
||||
__ATTR(full_time, ROOT_W, spk_var_show, spk_var_store);
|
||||
__ATTR(full_time, S_IWUSR|S_IRUGO, spk_var_show, spk_var_store);
|
||||
static struct kobj_attribute jiffy_delta_attribute =
|
||||
__ATTR(jiffy_delta, ROOT_W, spk_var_show, spk_var_store);
|
||||
__ATTR(jiffy_delta, S_IWUSR|S_IRUGO, spk_var_show, spk_var_store);
|
||||
static struct kobj_attribute trigger_time_attribute =
|
||||
__ATTR(trigger_time, ROOT_W, spk_var_show, spk_var_store);
|
||||
__ATTR(trigger_time, S_IWUSR|S_IRUGO, spk_var_show, spk_var_store);
|
||||
|
||||
/*
|
||||
* Create a group of attributes so that we can create and destroy them all
|
||||
|
|
|
@ -44,28 +44,28 @@ static struct var_t vars[] = {
|
|||
* These attributes will appear in /sys/accessibility/speakup/txprt.
|
||||
*/
|
||||
static struct kobj_attribute caps_start_attribute =
|
||||
__ATTR(caps_start, USER_RW, spk_var_show, spk_var_store);
|
||||
__ATTR(caps_start, S_IWUGO|S_IRUGO, spk_var_show, spk_var_store);
|
||||
static struct kobj_attribute caps_stop_attribute =
|
||||
__ATTR(caps_stop, USER_RW, spk_var_show, spk_var_store);
|
||||
__ATTR(caps_stop, S_IWUGO|S_IRUGO, spk_var_show, spk_var_store);
|
||||
static struct kobj_attribute pitch_attribute =
|
||||
__ATTR(pitch, USER_RW, spk_var_show, spk_var_store);
|
||||
__ATTR(pitch, S_IWUGO|S_IRUGO, spk_var_show, spk_var_store);
|
||||
static struct kobj_attribute rate_attribute =
|
||||
__ATTR(rate, USER_RW, spk_var_show, spk_var_store);
|
||||
__ATTR(rate, S_IWUGO|S_IRUGO, spk_var_show, spk_var_store);
|
||||
static struct kobj_attribute tone_attribute =
|
||||
__ATTR(tone, USER_RW, spk_var_show, spk_var_store);
|
||||
__ATTR(tone, S_IWUGO|S_IRUGO, spk_var_show, spk_var_store);
|
||||
static struct kobj_attribute vol_attribute =
|
||||
__ATTR(vol, USER_RW, spk_var_show, spk_var_store);
|
||||
__ATTR(vol, S_IWUGO|S_IRUGO, spk_var_show, spk_var_store);
|
||||
|
||||
static struct kobj_attribute delay_time_attribute =
|
||||
__ATTR(delay_time, ROOT_W, spk_var_show, spk_var_store);
|
||||
__ATTR(delay_time, S_IWUSR|S_IRUGO, spk_var_show, spk_var_store);
|
||||
static struct kobj_attribute direct_attribute =
|
||||
__ATTR(direct, USER_RW, spk_var_show, spk_var_store);
|
||||
__ATTR(direct, S_IWUGO|S_IRUGO, spk_var_show, spk_var_store);
|
||||
static struct kobj_attribute full_time_attribute =
|
||||
__ATTR(full_time, ROOT_W, spk_var_show, spk_var_store);
|
||||
__ATTR(full_time, S_IWUSR|S_IRUGO, spk_var_show, spk_var_store);
|
||||
static struct kobj_attribute jiffy_delta_attribute =
|
||||
__ATTR(jiffy_delta, ROOT_W, spk_var_show, spk_var_store);
|
||||
__ATTR(jiffy_delta, S_IWUSR|S_IRUGO, spk_var_show, spk_var_store);
|
||||
static struct kobj_attribute trigger_time_attribute =
|
||||
__ATTR(trigger_time, ROOT_W, spk_var_show, spk_var_store);
|
||||
__ATTR(trigger_time, S_IWUSR|S_IRUGO, spk_var_show, spk_var_store);
|
||||
|
||||
/*
|
||||
* Create a group of attributes so that we can create and destroy them all
|
||||
|
|
Loading…
Reference in a new issue