提交 2d9a664b 编写于 作者: R Rusty Russell

drivers/staging/speakup/: avoid world-writable sysfs files.

In line with practice for module parameters, we're adding a build-time
check that sysfs files aren't world-writable.

Cc: Christopher Brannon <chris@the-brannons.com>
Cc: Samuel Thibault <samuel.thibault@ens-lyon.org>
Acked-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: NRusty Russell <rusty@rustcorp.com.au>
上级 71e06af2
...@@ -851,75 +851,75 @@ static ssize_t message_store(struct kobject *kobj, struct kobj_attribute *attr, ...@@ -851,75 +851,75 @@ static ssize_t message_store(struct kobject *kobj, struct kobj_attribute *attr,
* Declare the attributes. * Declare the attributes.
*/ */
static struct kobj_attribute keymap_attribute = static struct kobj_attribute keymap_attribute =
__ATTR(keymap, S_IWUSR|S_IRUGO, keymap_show, keymap_store); __ATTR_RW(keymap);
static struct kobj_attribute silent_attribute = static struct kobj_attribute silent_attribute =
__ATTR(silent, S_IWUGO, NULL, silent_store); __ATTR_WO(silent);
static struct kobj_attribute synth_attribute = static struct kobj_attribute synth_attribute =
__ATTR(synth, S_IWUGO|S_IRUGO, synth_show, synth_store); __ATTR_RW(synth);
static struct kobj_attribute synth_direct_attribute = static struct kobj_attribute synth_direct_attribute =
__ATTR(synth_direct, S_IWUGO, NULL, synth_direct_store); __ATTR_WO(synth_direct);
static struct kobj_attribute version_attribute = static struct kobj_attribute version_attribute =
__ATTR_RO(version); __ATTR_RO(version);
static struct kobj_attribute delimiters_attribute = static struct kobj_attribute delimiters_attribute =
__ATTR(delimiters, S_IWUGO|S_IRUGO, punc_show, punc_store); __ATTR(delimiters, S_IWUSR|S_IRUGO, punc_show, punc_store);
static struct kobj_attribute ex_num_attribute = static struct kobj_attribute ex_num_attribute =
__ATTR(ex_num, S_IWUGO|S_IRUGO, punc_show, punc_store); __ATTR(ex_num, S_IWUSR|S_IRUGO, punc_show, punc_store);
static struct kobj_attribute punc_all_attribute = static struct kobj_attribute punc_all_attribute =
__ATTR(punc_all, S_IWUGO|S_IRUGO, punc_show, punc_store); __ATTR(punc_all, S_IWUSR|S_IRUGO, punc_show, punc_store);
static struct kobj_attribute punc_most_attribute = static struct kobj_attribute punc_most_attribute =
__ATTR(punc_most, S_IWUGO|S_IRUGO, punc_show, punc_store); __ATTR(punc_most, S_IWUSR|S_IRUGO, punc_show, punc_store);
static struct kobj_attribute punc_some_attribute = static struct kobj_attribute punc_some_attribute =
__ATTR(punc_some, S_IWUGO|S_IRUGO, punc_show, punc_store); __ATTR(punc_some, S_IWUSR|S_IRUGO, punc_show, punc_store);
static struct kobj_attribute repeats_attribute = static struct kobj_attribute repeats_attribute =
__ATTR(repeats, S_IWUGO|S_IRUGO, punc_show, punc_store); __ATTR(repeats, S_IWUSR|S_IRUGO, punc_show, punc_store);
static struct kobj_attribute attrib_bleep_attribute = static struct kobj_attribute attrib_bleep_attribute =
__ATTR(attrib_bleep, S_IWUGO|S_IRUGO, spk_var_show, spk_var_store); __ATTR(attrib_bleep, S_IWUSR|S_IRUGO, spk_var_show, spk_var_store);
static struct kobj_attribute bell_pos_attribute = static struct kobj_attribute bell_pos_attribute =
__ATTR(bell_pos, S_IWUGO|S_IRUGO, spk_var_show, spk_var_store); __ATTR(bell_pos, S_IWUSR|S_IRUGO, spk_var_show, spk_var_store);
static struct kobj_attribute bleep_time_attribute = static struct kobj_attribute bleep_time_attribute =
__ATTR(bleep_time, S_IWUGO|S_IRUGO, spk_var_show, spk_var_store); __ATTR(bleep_time, S_IWUSR|S_IRUGO, spk_var_show, spk_var_store);
static struct kobj_attribute bleeps_attribute = static struct kobj_attribute bleeps_attribute =
__ATTR(bleeps, S_IWUGO|S_IRUGO, spk_var_show, spk_var_store); __ATTR(bleeps, S_IWUSR|S_IRUGO, spk_var_show, spk_var_store);
static struct kobj_attribute cursor_time_attribute = static struct kobj_attribute cursor_time_attribute =
__ATTR(cursor_time, S_IWUGO|S_IRUGO, spk_var_show, spk_var_store); __ATTR(cursor_time, S_IWUSR|S_IRUGO, spk_var_show, spk_var_store);
static struct kobj_attribute key_echo_attribute = static struct kobj_attribute key_echo_attribute =
__ATTR(key_echo, S_IWUGO|S_IRUGO, spk_var_show, spk_var_store); __ATTR(key_echo, S_IWUSR|S_IRUGO, spk_var_show, spk_var_store);
static struct kobj_attribute no_interrupt_attribute = static struct kobj_attribute no_interrupt_attribute =
__ATTR(no_interrupt, S_IWUGO|S_IRUGO, spk_var_show, spk_var_store); __ATTR(no_interrupt, S_IWUSR|S_IRUGO, spk_var_show, spk_var_store);
static struct kobj_attribute punc_level_attribute = static struct kobj_attribute punc_level_attribute =
__ATTR(punc_level, S_IWUGO|S_IRUGO, spk_var_show, spk_var_store); __ATTR(punc_level, S_IWUSR|S_IRUGO, spk_var_show, spk_var_store);
static struct kobj_attribute reading_punc_attribute = static struct kobj_attribute reading_punc_attribute =
__ATTR(reading_punc, S_IWUGO|S_IRUGO, spk_var_show, spk_var_store); __ATTR(reading_punc, S_IWUSR|S_IRUGO, spk_var_show, spk_var_store);
static struct kobj_attribute say_control_attribute = static struct kobj_attribute say_control_attribute =
__ATTR(say_control, S_IWUGO|S_IRUGO, spk_var_show, spk_var_store); __ATTR(say_control, S_IWUSR|S_IRUGO, spk_var_show, spk_var_store);
static struct kobj_attribute say_word_ctl_attribute = static struct kobj_attribute say_word_ctl_attribute =
__ATTR(say_word_ctl, S_IWUGO|S_IRUGO, spk_var_show, spk_var_store); __ATTR(say_word_ctl, S_IWUSR|S_IRUGO, spk_var_show, spk_var_store);
static struct kobj_attribute spell_delay_attribute = static struct kobj_attribute spell_delay_attribute =
__ATTR(spell_delay, S_IWUGO|S_IRUGO, spk_var_show, spk_var_store); __ATTR(spell_delay, S_IWUSR|S_IRUGO, spk_var_show, spk_var_store);
/* /*
* These attributes are i18n related. * These attributes are i18n related.
*/ */
static struct kobj_attribute announcements_attribute = static struct kobj_attribute announcements_attribute =
__ATTR(announcements, S_IWUGO|S_IRUGO, message_show, message_store); __ATTR(announcements, S_IWUSR|S_IRUGO, message_show, message_store);
static struct kobj_attribute characters_attribute = static struct kobj_attribute characters_attribute =
__ATTR(characters, S_IWUGO|S_IRUGO, chars_chartab_show, chars_chartab_store); __ATTR(characters, S_IWUSR|S_IRUGO, chars_chartab_show, chars_chartab_store);
static struct kobj_attribute chartab_attribute = static struct kobj_attribute chartab_attribute =
__ATTR(chartab, S_IWUGO|S_IRUGO, chars_chartab_show, chars_chartab_store); __ATTR(chartab, S_IWUSR|S_IRUGO, chars_chartab_show, chars_chartab_store);
static struct kobj_attribute ctl_keys_attribute = static struct kobj_attribute ctl_keys_attribute =
__ATTR(ctl_keys, S_IWUGO|S_IRUGO, message_show, message_store); __ATTR(ctl_keys, S_IWUSR|S_IRUGO, message_show, message_store);
static struct kobj_attribute colors_attribute = static struct kobj_attribute colors_attribute =
__ATTR(colors, S_IWUGO|S_IRUGO, message_show, message_store); __ATTR(colors, S_IWUSR|S_IRUGO, message_show, message_store);
static struct kobj_attribute formatted_attribute = static struct kobj_attribute formatted_attribute =
__ATTR(formatted, S_IWUGO|S_IRUGO, message_show, message_store); __ATTR(formatted, S_IWUSR|S_IRUGO, message_show, message_store);
static struct kobj_attribute function_names_attribute = static struct kobj_attribute function_names_attribute =
__ATTR(function_names, S_IWUGO|S_IRUGO, message_show, message_store); __ATTR(function_names, S_IWUSR|S_IRUGO, message_show, message_store);
static struct kobj_attribute key_names_attribute = static struct kobj_attribute key_names_attribute =
__ATTR(key_names, S_IWUGO|S_IRUGO, message_show, message_store); __ATTR(key_names, S_IWUSR|S_IRUGO, message_show, message_store);
static struct kobj_attribute states_attribute = static struct kobj_attribute states_attribute =
__ATTR(states, S_IWUGO|S_IRUGO, message_show, message_store); __ATTR(states, S_IWUSR|S_IRUGO, message_show, message_store);
/* /*
* Create groups of attributes so that we can create and destroy them all * Create groups of attributes so that we can create and destroy them all
......
...@@ -62,22 +62,22 @@ static struct var_t vars[] = { ...@@ -62,22 +62,22 @@ static struct var_t vars[] = {
* These attributes will appear in /sys/accessibility/speakup/acntpc. * These attributes will appear in /sys/accessibility/speakup/acntpc.
*/ */
static struct kobj_attribute caps_start_attribute = static struct kobj_attribute caps_start_attribute =
__ATTR(caps_start, S_IWUGO|S_IRUGO, spk_var_show, spk_var_store); __ATTR(caps_start, S_IWUSR|S_IRUGO, spk_var_show, spk_var_store);
static struct kobj_attribute caps_stop_attribute = static struct kobj_attribute caps_stop_attribute =
__ATTR(caps_stop, S_IWUGO|S_IRUGO, spk_var_show, spk_var_store); __ATTR(caps_stop, S_IWUSR|S_IRUGO, spk_var_show, spk_var_store);
static struct kobj_attribute pitch_attribute = static struct kobj_attribute pitch_attribute =
__ATTR(pitch, S_IWUGO|S_IRUGO, spk_var_show, spk_var_store); __ATTR(pitch, S_IWUSR|S_IRUGO, spk_var_show, spk_var_store);
static struct kobj_attribute rate_attribute = static struct kobj_attribute rate_attribute =
__ATTR(rate, S_IWUGO|S_IRUGO, spk_var_show, spk_var_store); __ATTR(rate, S_IWUSR|S_IRUGO, spk_var_show, spk_var_store);
static struct kobj_attribute tone_attribute = static struct kobj_attribute tone_attribute =
__ATTR(tone, S_IWUGO|S_IRUGO, spk_var_show, spk_var_store); __ATTR(tone, S_IWUSR|S_IRUGO, spk_var_show, spk_var_store);
static struct kobj_attribute vol_attribute = static struct kobj_attribute vol_attribute =
__ATTR(vol, S_IWUGO|S_IRUGO, spk_var_show, spk_var_store); __ATTR(vol, S_IWUSR|S_IRUGO, spk_var_show, spk_var_store);
static struct kobj_attribute delay_time_attribute = static struct kobj_attribute delay_time_attribute =
__ATTR(delay_time, S_IWUSR|S_IRUGO, 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 = static struct kobj_attribute direct_attribute =
__ATTR(direct, S_IWUGO|S_IRUGO, spk_var_show, spk_var_store); __ATTR(direct, S_IWUSR|S_IRUGO, spk_var_show, spk_var_store);
static struct kobj_attribute full_time_attribute = static struct kobj_attribute full_time_attribute =
__ATTR(full_time, S_IWUSR|S_IRUGO, 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 = static struct kobj_attribute jiffy_delta_attribute =
......
...@@ -47,22 +47,22 @@ static struct var_t vars[] = { ...@@ -47,22 +47,22 @@ static struct var_t vars[] = {
* These attributes will appear in /sys/accessibility/speakup/acntsa. * These attributes will appear in /sys/accessibility/speakup/acntsa.
*/ */
static struct kobj_attribute caps_start_attribute = static struct kobj_attribute caps_start_attribute =
__ATTR(caps_start, S_IWUGO|S_IRUGO, spk_var_show, spk_var_store); __ATTR(caps_start, S_IWUSR|S_IRUGO, spk_var_show, spk_var_store);
static struct kobj_attribute caps_stop_attribute = static struct kobj_attribute caps_stop_attribute =
__ATTR(caps_stop, S_IWUGO|S_IRUGO, spk_var_show, spk_var_store); __ATTR(caps_stop, S_IWUSR|S_IRUGO, spk_var_show, spk_var_store);
static struct kobj_attribute pitch_attribute = static struct kobj_attribute pitch_attribute =
__ATTR(pitch, S_IWUGO|S_IRUGO, spk_var_show, spk_var_store); __ATTR(pitch, S_IWUSR|S_IRUGO, spk_var_show, spk_var_store);
static struct kobj_attribute rate_attribute = static struct kobj_attribute rate_attribute =
__ATTR(rate, S_IWUGO|S_IRUGO, spk_var_show, spk_var_store); __ATTR(rate, S_IWUSR|S_IRUGO, spk_var_show, spk_var_store);
static struct kobj_attribute tone_attribute = static struct kobj_attribute tone_attribute =
__ATTR(tone, S_IWUGO|S_IRUGO, spk_var_show, spk_var_store); __ATTR(tone, S_IWUSR|S_IRUGO, spk_var_show, spk_var_store);
static struct kobj_attribute vol_attribute = static struct kobj_attribute vol_attribute =
__ATTR(vol, S_IWUGO|S_IRUGO, spk_var_show, spk_var_store); __ATTR(vol, S_IWUSR|S_IRUGO, spk_var_show, spk_var_store);
static struct kobj_attribute delay_time_attribute = static struct kobj_attribute delay_time_attribute =
__ATTR(delay_time, S_IWUSR|S_IRUGO, 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 = static struct kobj_attribute direct_attribute =
__ATTR(direct, S_IWUGO|S_IRUGO, spk_var_show, spk_var_store); __ATTR(direct, S_IWUSR|S_IRUGO, spk_var_show, spk_var_store);
static struct kobj_attribute full_time_attribute = static struct kobj_attribute full_time_attribute =
__ATTR(full_time, S_IWUSR|S_IRUGO, 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 = static struct kobj_attribute jiffy_delta_attribute =
......
...@@ -53,24 +53,24 @@ static struct var_t vars[] = { ...@@ -53,24 +53,24 @@ static struct var_t vars[] = {
* These attributes will appear in /sys/accessibility/speakup/apollo. * These attributes will appear in /sys/accessibility/speakup/apollo.
*/ */
static struct kobj_attribute caps_start_attribute = static struct kobj_attribute caps_start_attribute =
__ATTR(caps_start, S_IWUGO|S_IRUGO, spk_var_show, spk_var_store); __ATTR(caps_start, S_IWUSR|S_IRUGO, spk_var_show, spk_var_store);
static struct kobj_attribute caps_stop_attribute = static struct kobj_attribute caps_stop_attribute =
__ATTR(caps_stop, S_IWUGO|S_IRUGO, spk_var_show, spk_var_store); __ATTR(caps_stop, S_IWUSR|S_IRUGO, spk_var_show, spk_var_store);
static struct kobj_attribute lang_attribute = static struct kobj_attribute lang_attribute =
__ATTR(lang, S_IWUGO|S_IRUGO, spk_var_show, spk_var_store); __ATTR(lang, S_IWUSR|S_IRUGO, spk_var_show, spk_var_store);
static struct kobj_attribute pitch_attribute = static struct kobj_attribute pitch_attribute =
__ATTR(pitch, S_IWUGO|S_IRUGO, spk_var_show, spk_var_store); __ATTR(pitch, S_IWUSR|S_IRUGO, spk_var_show, spk_var_store);
static struct kobj_attribute rate_attribute = static struct kobj_attribute rate_attribute =
__ATTR(rate, S_IWUGO|S_IRUGO, spk_var_show, spk_var_store); __ATTR(rate, S_IWUSR|S_IRUGO, spk_var_show, spk_var_store);
static struct kobj_attribute voice_attribute = static struct kobj_attribute voice_attribute =
__ATTR(voice, S_IWUGO|S_IRUGO, spk_var_show, spk_var_store); __ATTR(voice, S_IWUSR|S_IRUGO, spk_var_show, spk_var_store);
static struct kobj_attribute vol_attribute = static struct kobj_attribute vol_attribute =
__ATTR(vol, S_IWUGO|S_IRUGO, spk_var_show, spk_var_store); __ATTR(vol, S_IWUSR|S_IRUGO, spk_var_show, spk_var_store);
static struct kobj_attribute delay_time_attribute = static struct kobj_attribute delay_time_attribute =
__ATTR(delay_time, S_IWUSR|S_IRUGO, 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 = static struct kobj_attribute direct_attribute =
__ATTR(direct, S_IWUGO|S_IRUGO, spk_var_show, spk_var_store); __ATTR(direct, S_IWUSR|S_IRUGO, spk_var_show, spk_var_store);
static struct kobj_attribute full_time_attribute = static struct kobj_attribute full_time_attribute =
__ATTR(full_time, S_IWUSR|S_IRUGO, 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 = static struct kobj_attribute jiffy_delta_attribute =
......
...@@ -49,24 +49,24 @@ static struct var_t vars[] = { ...@@ -49,24 +49,24 @@ static struct var_t vars[] = {
* These attributes will appear in /sys/accessibility/speakup/audptr. * These attributes will appear in /sys/accessibility/speakup/audptr.
*/ */
static struct kobj_attribute caps_start_attribute = static struct kobj_attribute caps_start_attribute =
__ATTR(caps_start, S_IWUGO|S_IRUGO, spk_var_show, spk_var_store); __ATTR(caps_start, S_IWUSR|S_IRUGO, spk_var_show, spk_var_store);
static struct kobj_attribute caps_stop_attribute = static struct kobj_attribute caps_stop_attribute =
__ATTR(caps_stop, S_IWUGO|S_IRUGO, spk_var_show, spk_var_store); __ATTR(caps_stop, S_IWUSR|S_IRUGO, spk_var_show, spk_var_store);
static struct kobj_attribute pitch_attribute = static struct kobj_attribute pitch_attribute =
__ATTR(pitch, S_IWUGO|S_IRUGO, spk_var_show, spk_var_store); __ATTR(pitch, S_IWUSR|S_IRUGO, spk_var_show, spk_var_store);
static struct kobj_attribute punct_attribute = static struct kobj_attribute punct_attribute =
__ATTR(punct, S_IWUGO|S_IRUGO, spk_var_show, spk_var_store); __ATTR(punct, S_IWUSR|S_IRUGO, spk_var_show, spk_var_store);
static struct kobj_attribute rate_attribute = static struct kobj_attribute rate_attribute =
__ATTR(rate, S_IWUGO|S_IRUGO, spk_var_show, spk_var_store); __ATTR(rate, S_IWUSR|S_IRUGO, spk_var_show, spk_var_store);
static struct kobj_attribute tone_attribute = static struct kobj_attribute tone_attribute =
__ATTR(tone, S_IWUGO|S_IRUGO, spk_var_show, spk_var_store); __ATTR(tone, S_IWUSR|S_IRUGO, spk_var_show, spk_var_store);
static struct kobj_attribute vol_attribute = static struct kobj_attribute vol_attribute =
__ATTR(vol, S_IWUGO|S_IRUGO, spk_var_show, spk_var_store); __ATTR(vol, S_IWUSR|S_IRUGO, spk_var_show, spk_var_store);
static struct kobj_attribute delay_time_attribute = static struct kobj_attribute delay_time_attribute =
__ATTR(delay_time, S_IWUSR|S_IRUGO, 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 = static struct kobj_attribute direct_attribute =
__ATTR(direct, S_IWUGO|S_IRUGO, spk_var_show, spk_var_store); __ATTR(direct, S_IWUSR|S_IRUGO, spk_var_show, spk_var_store);
static struct kobj_attribute full_time_attribute = static struct kobj_attribute full_time_attribute =
__ATTR(full_time, S_IWUSR|S_IRUGO, 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 = static struct kobj_attribute jiffy_delta_attribute =
......
...@@ -44,22 +44,22 @@ static struct var_t vars[] = { ...@@ -44,22 +44,22 @@ static struct var_t vars[] = {
* These attributes will appear in /sys/accessibility/speakup/bns. * These attributes will appear in /sys/accessibility/speakup/bns.
*/ */
static struct kobj_attribute caps_start_attribute = static struct kobj_attribute caps_start_attribute =
__ATTR(caps_start, S_IWUGO|S_IRUGO, spk_var_show, spk_var_store); __ATTR(caps_start, S_IWUSR|S_IRUGO, spk_var_show, spk_var_store);
static struct kobj_attribute caps_stop_attribute = static struct kobj_attribute caps_stop_attribute =
__ATTR(caps_stop, S_IWUGO|S_IRUGO, spk_var_show, spk_var_store); __ATTR(caps_stop, S_IWUSR|S_IRUGO, spk_var_show, spk_var_store);
static struct kobj_attribute pitch_attribute = static struct kobj_attribute pitch_attribute =
__ATTR(pitch, S_IWUGO|S_IRUGO, spk_var_show, spk_var_store); __ATTR(pitch, S_IWUSR|S_IRUGO, spk_var_show, spk_var_store);
static struct kobj_attribute rate_attribute = static struct kobj_attribute rate_attribute =
__ATTR(rate, S_IWUGO|S_IRUGO, spk_var_show, spk_var_store); __ATTR(rate, S_IWUSR|S_IRUGO, spk_var_show, spk_var_store);
static struct kobj_attribute tone_attribute = static struct kobj_attribute tone_attribute =
__ATTR(tone, S_IWUGO|S_IRUGO, spk_var_show, spk_var_store); __ATTR(tone, S_IWUSR|S_IRUGO, spk_var_show, spk_var_store);
static struct kobj_attribute vol_attribute = static struct kobj_attribute vol_attribute =
__ATTR(vol, S_IWUGO|S_IRUGO, spk_var_show, spk_var_store); __ATTR(vol, S_IWUSR|S_IRUGO, spk_var_show, spk_var_store);
static struct kobj_attribute delay_time_attribute = static struct kobj_attribute delay_time_attribute =
__ATTR(delay_time, S_IWUSR|S_IRUGO, 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 = static struct kobj_attribute direct_attribute =
__ATTR(direct, S_IWUGO|S_IRUGO, spk_var_show, spk_var_store); __ATTR(direct, S_IWUSR|S_IRUGO, spk_var_show, spk_var_store);
static struct kobj_attribute full_time_attribute = static struct kobj_attribute full_time_attribute =
__ATTR(full_time, S_IWUSR|S_IRUGO, 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 = static struct kobj_attribute jiffy_delta_attribute =
......
...@@ -70,24 +70,24 @@ static struct var_t vars[] = { ...@@ -70,24 +70,24 @@ static struct var_t vars[] = {
* These attributes will appear in /sys/accessibility/speakup/decext. * These attributes will appear in /sys/accessibility/speakup/decext.
*/ */
static struct kobj_attribute caps_start_attribute = static struct kobj_attribute caps_start_attribute =
__ATTR(caps_start, S_IWUGO|S_IRUGO, spk_var_show, spk_var_store); __ATTR(caps_start, S_IWUSR|S_IRUGO, spk_var_show, spk_var_store);
static struct kobj_attribute caps_stop_attribute = static struct kobj_attribute caps_stop_attribute =
__ATTR(caps_stop, S_IWUGO|S_IRUGO, spk_var_show, spk_var_store); __ATTR(caps_stop, S_IWUSR|S_IRUGO, spk_var_show, spk_var_store);
static struct kobj_attribute pitch_attribute = static struct kobj_attribute pitch_attribute =
__ATTR(pitch, S_IWUGO|S_IRUGO, spk_var_show, spk_var_store); __ATTR(pitch, S_IWUSR|S_IRUGO, spk_var_show, spk_var_store);
static struct kobj_attribute punct_attribute = static struct kobj_attribute punct_attribute =
__ATTR(punct, S_IWUGO|S_IRUGO, spk_var_show, spk_var_store); __ATTR(punct, S_IWUSR|S_IRUGO, spk_var_show, spk_var_store);
static struct kobj_attribute rate_attribute = static struct kobj_attribute rate_attribute =
__ATTR(rate, S_IWUGO|S_IRUGO, spk_var_show, spk_var_store); __ATTR(rate, S_IWUSR|S_IRUGO, spk_var_show, spk_var_store);
static struct kobj_attribute voice_attribute = static struct kobj_attribute voice_attribute =
__ATTR(voice, S_IWUGO|S_IRUGO, spk_var_show, spk_var_store); __ATTR(voice, S_IWUSR|S_IRUGO, spk_var_show, spk_var_store);
static struct kobj_attribute vol_attribute = static struct kobj_attribute vol_attribute =
__ATTR(vol, S_IWUGO|S_IRUGO, spk_var_show, spk_var_store); __ATTR(vol, S_IWUSR|S_IRUGO, spk_var_show, spk_var_store);
static struct kobj_attribute delay_time_attribute = static struct kobj_attribute delay_time_attribute =
__ATTR(delay_time, S_IWUSR|S_IRUGO, 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 = static struct kobj_attribute direct_attribute =
__ATTR(direct, S_IWUGO|S_IRUGO, spk_var_show, spk_var_store); __ATTR(direct, S_IWUSR|S_IRUGO, spk_var_show, spk_var_store);
static struct kobj_attribute full_time_attribute = static struct kobj_attribute full_time_attribute =
__ATTR(full_time, S_IWUSR|S_IRUGO, 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 = static struct kobj_attribute jiffy_delta_attribute =
......
...@@ -164,24 +164,24 @@ static struct var_t vars[] = { ...@@ -164,24 +164,24 @@ static struct var_t vars[] = {
* These attributes will appear in /sys/accessibility/speakup/decpc. * These attributes will appear in /sys/accessibility/speakup/decpc.
*/ */
static struct kobj_attribute caps_start_attribute = static struct kobj_attribute caps_start_attribute =
__ATTR(caps_start, S_IWUGO|S_IRUGO, spk_var_show, spk_var_store); __ATTR(caps_start, S_IWUSR|S_IRUGO, spk_var_show, spk_var_store);
static struct kobj_attribute caps_stop_attribute = static struct kobj_attribute caps_stop_attribute =
__ATTR(caps_stop, S_IWUGO|S_IRUGO, spk_var_show, spk_var_store); __ATTR(caps_stop, S_IWUSR|S_IRUGO, spk_var_show, spk_var_store);
static struct kobj_attribute pitch_attribute = static struct kobj_attribute pitch_attribute =
__ATTR(pitch, S_IWUGO|S_IRUGO, spk_var_show, spk_var_store); __ATTR(pitch, S_IWUSR|S_IRUGO, spk_var_show, spk_var_store);
static struct kobj_attribute punct_attribute = static struct kobj_attribute punct_attribute =
__ATTR(punct, S_IWUGO|S_IRUGO, spk_var_show, spk_var_store); __ATTR(punct, S_IWUSR|S_IRUGO, spk_var_show, spk_var_store);
static struct kobj_attribute rate_attribute = static struct kobj_attribute rate_attribute =
__ATTR(rate, S_IWUGO|S_IRUGO, spk_var_show, spk_var_store); __ATTR(rate, S_IWUSR|S_IRUGO, spk_var_show, spk_var_store);
static struct kobj_attribute voice_attribute = static struct kobj_attribute voice_attribute =
__ATTR(voice, S_IWUGO|S_IRUGO, spk_var_show, spk_var_store); __ATTR(voice, S_IWUSR|S_IRUGO, spk_var_show, spk_var_store);
static struct kobj_attribute vol_attribute = static struct kobj_attribute vol_attribute =
__ATTR(vol, S_IWUGO|S_IRUGO, spk_var_show, spk_var_store); __ATTR(vol, S_IWUSR|S_IRUGO, spk_var_show, spk_var_store);
static struct kobj_attribute delay_time_attribute = static struct kobj_attribute delay_time_attribute =
__ATTR(delay_time, S_IWUSR|S_IRUGO, 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 = static struct kobj_attribute direct_attribute =
__ATTR(direct, S_IWUGO|S_IRUGO, spk_var_show, spk_var_store); __ATTR(direct, S_IWUSR|S_IRUGO, spk_var_show, spk_var_store);
static struct kobj_attribute full_time_attribute = static struct kobj_attribute full_time_attribute =
__ATTR(full_time, S_IWUSR|S_IRUGO, 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 = static struct kobj_attribute jiffy_delta_attribute =
......
...@@ -70,24 +70,24 @@ static struct var_t vars[] = { ...@@ -70,24 +70,24 @@ static struct var_t vars[] = {
* These attributes will appear in /sys/accessibility/speakup/dectlk. * These attributes will appear in /sys/accessibility/speakup/dectlk.
*/ */
static struct kobj_attribute caps_start_attribute = static struct kobj_attribute caps_start_attribute =
__ATTR(caps_start, S_IWUGO|S_IRUGO, spk_var_show, spk_var_store); __ATTR(caps_start, S_IWUSR|S_IRUGO, spk_var_show, spk_var_store);
static struct kobj_attribute caps_stop_attribute = static struct kobj_attribute caps_stop_attribute =
__ATTR(caps_stop, S_IWUGO|S_IRUGO, spk_var_show, spk_var_store); __ATTR(caps_stop, S_IWUSR|S_IRUGO, spk_var_show, spk_var_store);
static struct kobj_attribute pitch_attribute = static struct kobj_attribute pitch_attribute =
__ATTR(pitch, S_IWUGO|S_IRUGO, spk_var_show, spk_var_store); __ATTR(pitch, S_IWUSR|S_IRUGO, spk_var_show, spk_var_store);
static struct kobj_attribute punct_attribute = static struct kobj_attribute punct_attribute =
__ATTR(punct, S_IWUGO|S_IRUGO, spk_var_show, spk_var_store); __ATTR(punct, S_IWUSR|S_IRUGO, spk_var_show, spk_var_store);
static struct kobj_attribute rate_attribute = static struct kobj_attribute rate_attribute =
__ATTR(rate, S_IWUGO|S_IRUGO, spk_var_show, spk_var_store); __ATTR(rate, S_IWUSR|S_IRUGO, spk_var_show, spk_var_store);
static struct kobj_attribute voice_attribute = static struct kobj_attribute voice_attribute =
__ATTR(voice, S_IWUGO|S_IRUGO, spk_var_show, spk_var_store); __ATTR(voice, S_IWUSR|S_IRUGO, spk_var_show, spk_var_store);
static struct kobj_attribute vol_attribute = static struct kobj_attribute vol_attribute =
__ATTR(vol, S_IWUGO|S_IRUGO, spk_var_show, spk_var_store); __ATTR(vol, S_IWUSR|S_IRUGO, spk_var_show, spk_var_store);
static struct kobj_attribute delay_time_attribute = static struct kobj_attribute delay_time_attribute =
__ATTR(delay_time, S_IWUSR|S_IRUGO, 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 = static struct kobj_attribute direct_attribute =
__ATTR(direct, S_IWUGO|S_IRUGO, spk_var_show, spk_var_store); __ATTR(direct, S_IWUSR|S_IRUGO, spk_var_show, spk_var_store);
static struct kobj_attribute full_time_attribute = static struct kobj_attribute full_time_attribute =
__ATTR(full_time, S_IWUSR|S_IRUGO, 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 = static struct kobj_attribute jiffy_delta_attribute =
......
...@@ -67,28 +67,28 @@ static struct var_t vars[] = { ...@@ -67,28 +67,28 @@ static struct var_t vars[] = {
* These attributes will appear in /sys/accessibility/speakup/dtlk. * These attributes will appear in /sys/accessibility/speakup/dtlk.
*/ */
static struct kobj_attribute caps_start_attribute = static struct kobj_attribute caps_start_attribute =
__ATTR(caps_start, S_IWUGO|S_IRUGO, spk_var_show, spk_var_store); __ATTR(caps_start, S_IWUSR|S_IRUGO, spk_var_show, spk_var_store);
static struct kobj_attribute caps_stop_attribute = static struct kobj_attribute caps_stop_attribute =
__ATTR(caps_stop, S_IWUGO|S_IRUGO, spk_var_show, spk_var_store); __ATTR(caps_stop, S_IWUSR|S_IRUGO, spk_var_show, spk_var_store);
static struct kobj_attribute freq_attribute = static struct kobj_attribute freq_attribute =
__ATTR(freq, S_IWUGO|S_IRUGO, spk_var_show, spk_var_store); __ATTR(freq, S_IWUSR|S_IRUGO, spk_var_show, spk_var_store);
static struct kobj_attribute pitch_attribute = static struct kobj_attribute pitch_attribute =
__ATTR(pitch, S_IWUGO|S_IRUGO, spk_var_show, spk_var_store); __ATTR(pitch, S_IWUSR|S_IRUGO, spk_var_show, spk_var_store);
static struct kobj_attribute punct_attribute = static struct kobj_attribute punct_attribute =
__ATTR(punct, S_IWUGO|S_IRUGO, spk_var_show, spk_var_store); __ATTR(punct, S_IWUSR|S_IRUGO, spk_var_show, spk_var_store);
static struct kobj_attribute rate_attribute = static struct kobj_attribute rate_attribute =
__ATTR(rate, S_IWUGO|S_IRUGO, spk_var_show, spk_var_store); __ATTR(rate, S_IWUSR|S_IRUGO, spk_var_show, spk_var_store);
static struct kobj_attribute tone_attribute = static struct kobj_attribute tone_attribute =
__ATTR(tone, S_IWUGO|S_IRUGO, spk_var_show, spk_var_store); __ATTR(tone, S_IWUSR|S_IRUGO, spk_var_show, spk_var_store);
static struct kobj_attribute voice_attribute = static struct kobj_attribute voice_attribute =
__ATTR(voice, S_IWUGO|S_IRUGO, spk_var_show, spk_var_store); __ATTR(voice, S_IWUSR|S_IRUGO, spk_var_show, spk_var_store);
static struct kobj_attribute vol_attribute = static struct kobj_attribute vol_attribute =
__ATTR(vol, S_IWUGO|S_IRUGO, spk_var_show, spk_var_store); __ATTR(vol, S_IWUSR|S_IRUGO, spk_var_show, spk_var_store);
static struct kobj_attribute delay_time_attribute = static struct kobj_attribute delay_time_attribute =
__ATTR(delay_time, S_IWUSR|S_IRUGO, 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 = static struct kobj_attribute direct_attribute =
__ATTR(direct, S_IWUGO|S_IRUGO, spk_var_show, spk_var_store); __ATTR(direct, S_IWUSR|S_IRUGO, spk_var_show, spk_var_store);
static struct kobj_attribute full_time_attribute = static struct kobj_attribute full_time_attribute =
__ATTR(full_time, S_IWUSR|S_IRUGO, 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 = static struct kobj_attribute jiffy_delta_attribute =
......
...@@ -46,22 +46,22 @@ static struct var_t vars[] = { ...@@ -46,22 +46,22 @@ static struct var_t vars[] = {
* These attributes will appear in /sys/accessibility/speakup/dummy. * These attributes will appear in /sys/accessibility/speakup/dummy.
*/ */
static struct kobj_attribute caps_start_attribute = static struct kobj_attribute caps_start_attribute =
__ATTR(caps_start, S_IWUGO|S_IRUGO, spk_var_show, spk_var_store); __ATTR(caps_start, S_IWUSR|S_IRUGO, spk_var_show, spk_var_store);
static struct kobj_attribute caps_stop_attribute = static struct kobj_attribute caps_stop_attribute =
__ATTR(caps_stop, S_IWUGO|S_IRUGO, spk_var_show, spk_var_store); __ATTR(caps_stop, S_IWUSR|S_IRUGO, spk_var_show, spk_var_store);
static struct kobj_attribute pitch_attribute = static struct kobj_attribute pitch_attribute =
__ATTR(pitch, S_IWUGO|S_IRUGO, spk_var_show, spk_var_store); __ATTR(pitch, S_IWUSR|S_IRUGO, spk_var_show, spk_var_store);
static struct kobj_attribute rate_attribute = static struct kobj_attribute rate_attribute =
__ATTR(rate, S_IWUGO|S_IRUGO, spk_var_show, spk_var_store); __ATTR(rate, S_IWUSR|S_IRUGO, spk_var_show, spk_var_store);
static struct kobj_attribute tone_attribute = static struct kobj_attribute tone_attribute =
__ATTR(tone, S_IWUGO|S_IRUGO, spk_var_show, spk_var_store); __ATTR(tone, S_IWUSR|S_IRUGO, spk_var_show, spk_var_store);
static struct kobj_attribute vol_attribute = static struct kobj_attribute vol_attribute =
__ATTR(vol, S_IWUGO|S_IRUGO, spk_var_show, spk_var_store); __ATTR(vol, S_IWUSR|S_IRUGO, spk_var_show, spk_var_store);
static struct kobj_attribute delay_time_attribute = static struct kobj_attribute delay_time_attribute =
__ATTR(delay_time, S_IWUSR|S_IRUGO, 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 = static struct kobj_attribute direct_attribute =
__ATTR(direct, S_IWUGO|S_IRUGO, spk_var_show, spk_var_store); __ATTR(direct, S_IWUSR|S_IRUGO, spk_var_show, spk_var_store);
static struct kobj_attribute full_time_attribute = static struct kobj_attribute full_time_attribute =
__ATTR(full_time, S_IWUSR|S_IRUGO, 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 = static struct kobj_attribute jiffy_delta_attribute =
......
...@@ -59,18 +59,18 @@ static struct var_t vars[] = { ...@@ -59,18 +59,18 @@ static struct var_t vars[] = {
* These attributes will appear in /sys/accessibility/speakup/keypc. * These attributes will appear in /sys/accessibility/speakup/keypc.
*/ */
static struct kobj_attribute caps_start_attribute = static struct kobj_attribute caps_start_attribute =
__ATTR(caps_start, S_IWUGO|S_IRUGO, spk_var_show, spk_var_store); __ATTR(caps_start, S_IWUSR|S_IRUGO, spk_var_show, spk_var_store);
static struct kobj_attribute caps_stop_attribute = static struct kobj_attribute caps_stop_attribute =
__ATTR(caps_stop, S_IWUGO|S_IRUGO, spk_var_show, spk_var_store); __ATTR(caps_stop, S_IWUSR|S_IRUGO, spk_var_show, spk_var_store);
static struct kobj_attribute pitch_attribute = static struct kobj_attribute pitch_attribute =
__ATTR(pitch, S_IWUGO|S_IRUGO, spk_var_show, spk_var_store); __ATTR(pitch, S_IWUSR|S_IRUGO, spk_var_show, spk_var_store);
static struct kobj_attribute rate_attribute = static struct kobj_attribute rate_attribute =
__ATTR(rate, S_IWUGO|S_IRUGO, spk_var_show, spk_var_store); __ATTR(rate, S_IWUSR|S_IRUGO, spk_var_show, spk_var_store);
static struct kobj_attribute delay_time_attribute = static struct kobj_attribute delay_time_attribute =
__ATTR(delay_time, S_IWUSR|S_IRUGO, 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 = static struct kobj_attribute direct_attribute =
__ATTR(direct, S_IWUGO|S_IRUGO, spk_var_show, spk_var_store); __ATTR(direct, S_IWUSR|S_IRUGO, spk_var_show, spk_var_store);
static struct kobj_attribute full_time_attribute = static struct kobj_attribute full_time_attribute =
__ATTR(full_time, S_IWUSR|S_IRUGO, 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 = static struct kobj_attribute jiffy_delta_attribute =
......
...@@ -50,28 +50,28 @@ static struct var_t vars[] = { ...@@ -50,28 +50,28 @@ static struct var_t vars[] = {
* These attributes will appear in /sys/accessibility/speakup/ltlk. * These attributes will appear in /sys/accessibility/speakup/ltlk.
*/ */
static struct kobj_attribute caps_start_attribute = static struct kobj_attribute caps_start_attribute =
__ATTR(caps_start, S_IWUGO|S_IRUGO, spk_var_show, spk_var_store); __ATTR(caps_start, S_IWUSR|S_IRUGO, spk_var_show, spk_var_store);
static struct kobj_attribute caps_stop_attribute = static struct kobj_attribute caps_stop_attribute =
__ATTR(caps_stop, S_IWUGO|S_IRUGO, spk_var_show, spk_var_store); __ATTR(caps_stop, S_IWUSR|S_IRUGO, spk_var_show, spk_var_store);
static struct kobj_attribute freq_attribute = static struct kobj_attribute freq_attribute =
__ATTR(freq, S_IWUGO|S_IRUGO, spk_var_show, spk_var_store); __ATTR(freq, S_IWUSR|S_IRUGO, spk_var_show, spk_var_store);
static struct kobj_attribute pitch_attribute = static struct kobj_attribute pitch_attribute =
__ATTR(pitch, S_IWUGO|S_IRUGO, spk_var_show, spk_var_store); __ATTR(pitch, S_IWUSR|S_IRUGO, spk_var_show, spk_var_store);
static struct kobj_attribute punct_attribute = static struct kobj_attribute punct_attribute =
__ATTR(punct, S_IWUGO|S_IRUGO, spk_var_show, spk_var_store); __ATTR(punct, S_IWUSR|S_IRUGO, spk_var_show, spk_var_store);
static struct kobj_attribute rate_attribute = static struct kobj_attribute rate_attribute =
__ATTR(rate, S_IWUGO|S_IRUGO, spk_var_show, spk_var_store); __ATTR(rate, S_IWUSR|S_IRUGO, spk_var_show, spk_var_store);
static struct kobj_attribute tone_attribute = static struct kobj_attribute tone_attribute =
__ATTR(tone, S_IWUGO|S_IRUGO, spk_var_show, spk_var_store); __ATTR(tone, S_IWUSR|S_IRUGO, spk_var_show, spk_var_store);
static struct kobj_attribute voice_attribute = static struct kobj_attribute voice_attribute =
__ATTR(voice, S_IWUGO|S_IRUGO, spk_var_show, spk_var_store); __ATTR(voice, S_IWUSR|S_IRUGO, spk_var_show, spk_var_store);
static struct kobj_attribute vol_attribute = static struct kobj_attribute vol_attribute =
__ATTR(vol, S_IWUGO|S_IRUGO, spk_var_show, spk_var_store); __ATTR(vol, S_IWUSR|S_IRUGO, spk_var_show, spk_var_store);
static struct kobj_attribute delay_time_attribute = static struct kobj_attribute delay_time_attribute =
__ATTR(delay_time, S_IWUSR|S_IRUGO, 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 = static struct kobj_attribute direct_attribute =
__ATTR(direct, S_IWUGO|S_IRUGO, spk_var_show, spk_var_store); __ATTR(direct, S_IWUSR|S_IRUGO, spk_var_show, spk_var_store);
static struct kobj_attribute full_time_attribute = static struct kobj_attribute full_time_attribute =
__ATTR(full_time, S_IWUSR|S_IRUGO, 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 = static struct kobj_attribute jiffy_delta_attribute =
......
...@@ -61,35 +61,35 @@ static struct var_t vars[] = { ...@@ -61,35 +61,35 @@ static struct var_t vars[] = {
* These attributes will appear in /sys/accessibility/speakup/soft. * These attributes will appear in /sys/accessibility/speakup/soft.
*/ */
static struct kobj_attribute caps_start_attribute = static struct kobj_attribute caps_start_attribute =
__ATTR(caps_start, S_IWUGO|S_IRUGO, spk_var_show, spk_var_store); __ATTR(caps_start, S_IWUSR|S_IRUGO, spk_var_show, spk_var_store);
static struct kobj_attribute caps_stop_attribute = static struct kobj_attribute caps_stop_attribute =
__ATTR(caps_stop, S_IWUGO|S_IRUGO, spk_var_show, spk_var_store); __ATTR(caps_stop, S_IWUSR|S_IRUGO, spk_var_show, spk_var_store);
static struct kobj_attribute freq_attribute = static struct kobj_attribute freq_attribute =
__ATTR(freq, S_IWUGO|S_IRUGO, spk_var_show, spk_var_store); __ATTR(freq, S_IWUSR|S_IRUGO, spk_var_show, spk_var_store);
static struct kobj_attribute pitch_attribute = static struct kobj_attribute pitch_attribute =
__ATTR(pitch, S_IWUGO|S_IRUGO, spk_var_show, spk_var_store); __ATTR(pitch, S_IWUSR|S_IRUGO, spk_var_show, spk_var_store);
static struct kobj_attribute punct_attribute = static struct kobj_attribute punct_attribute =
__ATTR(punct, S_IWUGO|S_IRUGO, spk_var_show, spk_var_store); __ATTR(punct, S_IWUSR|S_IRUGO, spk_var_show, spk_var_store);
static struct kobj_attribute rate_attribute = static struct kobj_attribute rate_attribute =
__ATTR(rate, S_IWUGO|S_IRUGO, spk_var_show, spk_var_store); __ATTR(rate, S_IWUSR|S_IRUGO, spk_var_show, spk_var_store);
static struct kobj_attribute tone_attribute = static struct kobj_attribute tone_attribute =
__ATTR(tone, S_IWUGO|S_IRUGO, spk_var_show, spk_var_store); __ATTR(tone, S_IWUSR|S_IRUGO, spk_var_show, spk_var_store);
static struct kobj_attribute voice_attribute = static struct kobj_attribute voice_attribute =
__ATTR(voice, S_IWUGO|S_IRUGO, spk_var_show, spk_var_store); __ATTR(voice, S_IWUSR|S_IRUGO, spk_var_show, spk_var_store);
static struct kobj_attribute vol_attribute = static struct kobj_attribute vol_attribute =
__ATTR(vol, S_IWUGO|S_IRUGO, spk_var_show, spk_var_store); __ATTR(vol, S_IWUSR|S_IRUGO, spk_var_show, spk_var_store);
/* /*
* We should uncomment the following definition, when we agree on a * We should uncomment the following definition, when we agree on a
* method of passing a language designation to the software synthesizer. * method of passing a language designation to the software synthesizer.
* static struct kobj_attribute lang_attribute = * static struct kobj_attribute lang_attribute =
* __ATTR(lang, S_IWUGO|S_IRUGO, spk_var_show, spk_var_store); * __ATTR(lang, S_IWUSR|S_IRUGO, spk_var_show, spk_var_store);
*/ */
static struct kobj_attribute delay_time_attribute = static struct kobj_attribute delay_time_attribute =
__ATTR(delay_time, S_IWUSR|S_IRUGO, 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 = static struct kobj_attribute direct_attribute =
__ATTR(direct, S_IWUGO|S_IRUGO, spk_var_show, spk_var_store); __ATTR(direct, S_IWUSR|S_IRUGO, spk_var_show, spk_var_store);
static struct kobj_attribute full_time_attribute = static struct kobj_attribute full_time_attribute =
__ATTR(full_time, S_IWUSR|S_IRUGO, 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 = static struct kobj_attribute jiffy_delta_attribute =
......
...@@ -48,24 +48,24 @@ static struct var_t vars[] = { ...@@ -48,24 +48,24 @@ static struct var_t vars[] = {
* These attributes will appear in /sys/accessibility/speakup/spkout. * These attributes will appear in /sys/accessibility/speakup/spkout.
*/ */
static struct kobj_attribute caps_start_attribute = static struct kobj_attribute caps_start_attribute =
__ATTR(caps_start, S_IWUGO|S_IRUGO, spk_var_show, spk_var_store); __ATTR(caps_start, S_IWUSR|S_IRUGO, spk_var_show, spk_var_store);
static struct kobj_attribute caps_stop_attribute = static struct kobj_attribute caps_stop_attribute =
__ATTR(caps_stop, S_IWUGO|S_IRUGO, spk_var_show, spk_var_store); __ATTR(caps_stop, S_IWUSR|S_IRUGO, spk_var_show, spk_var_store);
static struct kobj_attribute pitch_attribute = static struct kobj_attribute pitch_attribute =
__ATTR(pitch, S_IWUGO|S_IRUGO, spk_var_show, spk_var_store); __ATTR(pitch, S_IWUSR|S_IRUGO, spk_var_show, spk_var_store);
static struct kobj_attribute punct_attribute = static struct kobj_attribute punct_attribute =
__ATTR(punct, S_IWUGO|S_IRUGO, spk_var_show, spk_var_store); __ATTR(punct, S_IWUSR|S_IRUGO, spk_var_show, spk_var_store);
static struct kobj_attribute rate_attribute = static struct kobj_attribute rate_attribute =
__ATTR(rate, S_IWUGO|S_IRUGO, spk_var_show, spk_var_store); __ATTR(rate, S_IWUSR|S_IRUGO, spk_var_show, spk_var_store);
static struct kobj_attribute tone_attribute = static struct kobj_attribute tone_attribute =
__ATTR(tone, S_IWUGO|S_IRUGO, spk_var_show, spk_var_store); __ATTR(tone, S_IWUSR|S_IRUGO, spk_var_show, spk_var_store);
static struct kobj_attribute vol_attribute = static struct kobj_attribute vol_attribute =
__ATTR(vol, S_IWUGO|S_IRUGO, spk_var_show, spk_var_store); __ATTR(vol, S_IWUSR|S_IRUGO, spk_var_show, spk_var_store);
static struct kobj_attribute delay_time_attribute = static struct kobj_attribute delay_time_attribute =
__ATTR(delay_time, S_IWUSR|S_IRUGO, 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 = static struct kobj_attribute direct_attribute =
__ATTR(direct, S_IWUGO|S_IRUGO, spk_var_show, spk_var_store); __ATTR(direct, S_IWUSR|S_IRUGO, spk_var_show, spk_var_store);
static struct kobj_attribute full_time_attribute = static struct kobj_attribute full_time_attribute =
__ATTR(full_time, S_IWUSR|S_IRUGO, 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 = static struct kobj_attribute jiffy_delta_attribute =
......
...@@ -44,22 +44,22 @@ static struct var_t vars[] = { ...@@ -44,22 +44,22 @@ static struct var_t vars[] = {
* These attributes will appear in /sys/accessibility/speakup/txprt. * These attributes will appear in /sys/accessibility/speakup/txprt.
*/ */
static struct kobj_attribute caps_start_attribute = static struct kobj_attribute caps_start_attribute =
__ATTR(caps_start, S_IWUGO|S_IRUGO, spk_var_show, spk_var_store); __ATTR(caps_start, S_IWUSR|S_IRUGO, spk_var_show, spk_var_store);
static struct kobj_attribute caps_stop_attribute = static struct kobj_attribute caps_stop_attribute =
__ATTR(caps_stop, S_IWUGO|S_IRUGO, spk_var_show, spk_var_store); __ATTR(caps_stop, S_IWUSR|S_IRUGO, spk_var_show, spk_var_store);
static struct kobj_attribute pitch_attribute = static struct kobj_attribute pitch_attribute =
__ATTR(pitch, S_IWUGO|S_IRUGO, spk_var_show, spk_var_store); __ATTR(pitch, S_IWUSR|S_IRUGO, spk_var_show, spk_var_store);
static struct kobj_attribute rate_attribute = static struct kobj_attribute rate_attribute =
__ATTR(rate, S_IWUGO|S_IRUGO, spk_var_show, spk_var_store); __ATTR(rate, S_IWUSR|S_IRUGO, spk_var_show, spk_var_store);
static struct kobj_attribute tone_attribute = static struct kobj_attribute tone_attribute =
__ATTR(tone, S_IWUGO|S_IRUGO, spk_var_show, spk_var_store); __ATTR(tone, S_IWUSR|S_IRUGO, spk_var_show, spk_var_store);
static struct kobj_attribute vol_attribute = static struct kobj_attribute vol_attribute =
__ATTR(vol, S_IWUGO|S_IRUGO, spk_var_show, spk_var_store); __ATTR(vol, S_IWUSR|S_IRUGO, spk_var_show, spk_var_store);
static struct kobj_attribute delay_time_attribute = static struct kobj_attribute delay_time_attribute =
__ATTR(delay_time, S_IWUSR|S_IRUGO, 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 = static struct kobj_attribute direct_attribute =
__ATTR(direct, S_IWUGO|S_IRUGO, spk_var_show, spk_var_store); __ATTR(direct, S_IWUSR|S_IRUGO, spk_var_show, spk_var_store);
static struct kobj_attribute full_time_attribute = static struct kobj_attribute full_time_attribute =
__ATTR(full_time, S_IWUSR|S_IRUGO, 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 = static struct kobj_attribute jiffy_delta_attribute =
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册