diff options
| author | Mauro Carvalho Chehab <mchehab@redhat.com> | 2013-03-21 08:06:03 -0400 |
|---|---|---|
| committer | Mauro Carvalho Chehab <mchehab@redhat.com> | 2013-03-21 09:03:27 -0400 |
| commit | cf0e9cfcc70d8aaeabf19356f42041f8a5495301 (patch) | |
| tree | 52e12c6e0d1027a0c280ed78f67a31166a64796e | |
| parent | dfef84fc135832ad5c270758b6834fcb4bf448fc (diff) | |
[media] siano: convert structure names to lowercase
There are several structures defined in uppercase. Convert them
to lowercase, and simplify their names, when possible.
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
| -rw-r--r-- | drivers/media/common/siano/smscoreapi.h | 52 | ||||
| -rw-r--r-- | drivers/media/common/siano/smsdvb-debugfs.c | 6 | ||||
| -rw-r--r-- | drivers/media/common/siano/smsdvb-main.c | 12 | ||||
| -rw-r--r-- | drivers/media/common/siano/smsdvb.h | 9 |
4 files changed, 40 insertions, 39 deletions
diff --git a/drivers/media/common/siano/smscoreapi.h b/drivers/media/common/siano/smscoreapi.h index 4b0cd7da22b7..b65232aabf5e 100644 --- a/drivers/media/common/siano/smscoreapi.h +++ b/drivers/media/common/siano/smscoreapi.h | |||
| @@ -676,7 +676,7 @@ struct sms_firmware { | |||
| 676 | 676 | ||
| 677 | /* statistics information returned as response for | 677 | /* statistics information returned as response for |
| 678 | * SmsHostApiGetstatistics_Req */ | 678 | * SmsHostApiGetstatistics_Req */ |
| 679 | struct SMSHOSTLIB_STATISTICS_ST { | 679 | struct sms_stats { |
| 680 | u32 reserved; /* reserved */ | 680 | u32 reserved; /* reserved */ |
| 681 | 681 | ||
| 682 | /* Common parameters */ | 682 | /* Common parameters */ |
| @@ -764,7 +764,7 @@ struct SMSHOSTLIB_STATISTICS_ST { | |||
| 764 | struct sms_msg_statistics_info { | 764 | struct sms_msg_statistics_info { |
| 765 | u32 request_result; | 765 | u32 request_result; |
| 766 | 766 | ||
| 767 | struct SMSHOSTLIB_STATISTICS_ST stat; | 767 | struct sms_stats stat; |
| 768 | 768 | ||
| 769 | /* Split the calc of the SNR in DAB */ | 769 | /* Split the calc of the SNR in DAB */ |
| 770 | u32 signal; /* dB */ | 770 | u32 signal; /* dB */ |
| @@ -772,7 +772,7 @@ struct sms_msg_statistics_info { | |||
| 772 | 772 | ||
| 773 | }; | 773 | }; |
| 774 | 774 | ||
| 775 | struct SMSHOSTLIB_ISDBT_LAYER_STAT_ST { | 775 | struct sms_isdbt_layer_stats { |
| 776 | /* Per-layer information */ | 776 | /* Per-layer information */ |
| 777 | u32 code_rate; /* Code Rate from SMSHOSTLIB_CODE_RATE_ET, | 777 | u32 code_rate; /* Code Rate from SMSHOSTLIB_CODE_RATE_ET, |
| 778 | * 255 means layer does not exist */ | 778 | * 255 means layer does not exist */ |
| @@ -792,7 +792,7 @@ struct SMSHOSTLIB_ISDBT_LAYER_STAT_ST { | |||
| 792 | u32 tmcc_errors; /* TMCC errors */ | 792 | u32 tmcc_errors; /* TMCC errors */ |
| 793 | }; | 793 | }; |
| 794 | 794 | ||
| 795 | struct SMSHOSTLIB_STATISTICS_ISDBT_ST { | 795 | struct sms_isdbt_stats { |
| 796 | u32 statistics_type; /* Enumerator identifying the type of the | 796 | u32 statistics_type; /* Enumerator identifying the type of the |
| 797 | * structure. Values are the same as | 797 | * structure. Values are the same as |
| 798 | * SMSHOSTLIB_DEVICE_MODES_E | 798 | * SMSHOSTLIB_DEVICE_MODES_E |
| @@ -827,14 +827,14 @@ struct SMSHOSTLIB_STATISTICS_ISDBT_ST { | |||
| 827 | 827 | ||
| 828 | /* Per-layer information */ | 828 | /* Per-layer information */ |
| 829 | /* Layers A, B and C */ | 829 | /* Layers A, B and C */ |
| 830 | struct SMSHOSTLIB_ISDBT_LAYER_STAT_ST LayerInfo[3]; | 830 | struct sms_isdbt_layer_stats LayerInfo[3]; |
| 831 | /* Per-layer statistics, see SMSHOSTLIB_ISDBT_LAYER_STAT_ST */ | 831 | /* Per-layer statistics, see sms_isdbt_layer_stats */ |
| 832 | 832 | ||
| 833 | /* Interface information */ | 833 | /* Interface information */ |
| 834 | u32 sms_to_host_tx_errors; /* Total number of transmission errors. */ | 834 | u32 sms_to_host_tx_errors; /* Total number of transmission errors. */ |
| 835 | }; | 835 | }; |
| 836 | 836 | ||
| 837 | struct SMSHOSTLIB_STATISTICS_ISDBT_EX_ST { | 837 | struct sms_isdbt_stats_ex { |
| 838 | u32 statistics_type; /* Enumerator identifying the type of the | 838 | u32 statistics_type; /* Enumerator identifying the type of the |
| 839 | * structure. Values are the same as | 839 | * structure. Values are the same as |
| 840 | * SMSHOSTLIB_DEVICE_MODES_E | 840 | * SMSHOSTLIB_DEVICE_MODES_E |
| @@ -872,8 +872,8 @@ struct SMSHOSTLIB_STATISTICS_ISDBT_EX_ST { | |||
| 872 | 872 | ||
| 873 | /* Per-layer information */ | 873 | /* Per-layer information */ |
| 874 | /* Layers A, B and C */ | 874 | /* Layers A, B and C */ |
| 875 | struct SMSHOSTLIB_ISDBT_LAYER_STAT_ST LayerInfo[3]; | 875 | struct sms_isdbt_layer_stats LayerInfo[3]; |
| 876 | /* Per-layer statistics, see SMSHOSTLIB_ISDBT_LAYER_STAT_ST */ | 876 | /* Per-layer statistics, see sms_isdbt_layer_stats */ |
| 877 | 877 | ||
| 878 | /* Interface information */ | 878 | /* Interface information */ |
| 879 | u32 reserved1; /* Was sms_to_host_tx_errors - obsolete . */ | 879 | u32 reserved1; /* Was sms_to_host_tx_errors - obsolete . */ |
| @@ -894,7 +894,7 @@ struct SMSHOSTLIB_STATISTICS_ISDBT_EX_ST { | |||
| 894 | }; | 894 | }; |
| 895 | 895 | ||
| 896 | 896 | ||
| 897 | struct PID_STATISTICS_DATA_S { | 897 | struct sms_pid_stats_data { |
| 898 | struct PID_BURST_S { | 898 | struct PID_BURST_S { |
| 899 | u32 size; | 899 | u32 size; |
| 900 | u32 padding_cols; | 900 | u32 padding_cols; |
| @@ -909,10 +909,10 @@ struct PID_STATISTICS_DATA_S { | |||
| 909 | u32 tot_cor_tbl; | 909 | u32 tot_cor_tbl; |
| 910 | }; | 910 | }; |
| 911 | 911 | ||
| 912 | struct PID_DATA_S { | 912 | struct sms_pid_data { |
| 913 | u32 pid; | 913 | u32 pid; |
| 914 | u32 num_rows; | 914 | u32 num_rows; |
| 915 | struct PID_STATISTICS_DATA_S pid_statistics; | 915 | struct sms_pid_stats_data pid_statistics; |
| 916 | }; | 916 | }; |
| 917 | 917 | ||
| 918 | #define CORRECT_STAT_RSSI(_stat) ((_stat).RSSI *= -1) | 918 | #define CORRECT_STAT_RSSI(_stat) ((_stat).RSSI *= -1) |
| @@ -925,7 +925,7 @@ struct PID_DATA_S { | |||
| 925 | else \ | 925 | else \ |
| 926 | _stat.transmission_mode = 4; | 926 | _stat.transmission_mode = 4; |
| 927 | 927 | ||
| 928 | struct TRANSMISSION_STATISTICS_S { | 928 | struct sms_tx_stats { |
| 929 | u32 frequency; /* frequency in Hz */ | 929 | u32 frequency; /* frequency in Hz */ |
| 930 | u32 bandwidth; /* bandwidth in MHz */ | 930 | u32 bandwidth; /* bandwidth in MHz */ |
| 931 | u32 transmission_mode; /* FFT mode carriers in Kilos */ | 931 | u32 transmission_mode; /* FFT mode carriers in Kilos */ |
| @@ -948,7 +948,7 @@ struct TRANSMISSION_STATISTICS_S { | |||
| 948 | u32 is_demod_locked; /* 0 - not locked, 1 - locked */ | 948 | u32 is_demod_locked; /* 0 - not locked, 1 - locked */ |
| 949 | }; | 949 | }; |
| 950 | 950 | ||
| 951 | struct RECEPTION_STATISTICS_S { | 951 | struct sms_rx_stats { |
| 952 | u32 is_rf_locked; /* 0 - not locked, 1 - locked */ | 952 | u32 is_rf_locked; /* 0 - not locked, 1 - locked */ |
| 953 | u32 is_demod_locked; /* 0 - not locked, 1 - locked */ | 953 | u32 is_demod_locked; /* 0 - not locked, 1 - locked */ |
| 954 | u32 is_external_lna_on; /* 0 - external LNA off, 1 - external LNA on */ | 954 | u32 is_external_lna_on; /* 0 - external LNA off, 1 - external LNA on */ |
| @@ -974,7 +974,7 @@ struct RECEPTION_STATISTICS_S { | |||
| 974 | s32 mrc_in_band_pwr; /* In band power in dBM */ | 974 | s32 mrc_in_band_pwr; /* In band power in dBM */ |
| 975 | }; | 975 | }; |
| 976 | 976 | ||
| 977 | struct RECEPTION_STATISTICS_EX_S { | 977 | struct sms_rx_stats_ex { |
| 978 | u32 is_rf_locked; /* 0 - not locked, 1 - locked */ | 978 | u32 is_rf_locked; /* 0 - not locked, 1 - locked */ |
| 979 | u32 is_demod_locked; /* 0 - not locked, 1 - locked */ | 979 | u32 is_demod_locked; /* 0 - not locked, 1 - locked */ |
| 980 | u32 is_external_lna_on; /* 0 - external LNA off, 1 - external LNA on */ | 980 | u32 is_external_lna_on; /* 0 - external LNA off, 1 - external LNA on */ |
| @@ -1006,33 +1006,33 @@ struct RECEPTION_STATISTICS_EX_S { | |||
| 1006 | 1006 | ||
| 1007 | /* statistics information returned as response for | 1007 | /* statistics information returned as response for |
| 1008 | * SmsHostApiGetstatisticsEx_Req for DVB applications, SMS1100 and up */ | 1008 | * SmsHostApiGetstatisticsEx_Req for DVB applications, SMS1100 and up */ |
| 1009 | struct SMSHOSTLIB_STATISTICS_DVB_S { | 1009 | struct sms_stats_dvb { |
| 1010 | /* Reception */ | 1010 | /* Reception */ |
| 1011 | struct RECEPTION_STATISTICS_S reception_data; | 1011 | struct sms_rx_stats reception_data; |
| 1012 | 1012 | ||
| 1013 | /* Transmission parameters */ | 1013 | /* Transmission parameters */ |
| 1014 | struct TRANSMISSION_STATISTICS_S transmission_data; | 1014 | struct sms_tx_stats transmission_data; |
| 1015 | 1015 | ||
| 1016 | /* Burst parameters, valid only for DVB-H */ | 1016 | /* Burst parameters, valid only for DVB-H */ |
| 1017 | #define SRVM_MAX_PID_FILTERS 8 | 1017 | #define SRVM_MAX_PID_FILTERS 8 |
| 1018 | struct PID_DATA_S pid_data[SRVM_MAX_PID_FILTERS]; | 1018 | struct sms_pid_data pid_data[SRVM_MAX_PID_FILTERS]; |
| 1019 | }; | 1019 | }; |
| 1020 | 1020 | ||
| 1021 | /* statistics information returned as response for | 1021 | /* statistics information returned as response for |
| 1022 | * SmsHostApiGetstatisticsEx_Req for DVB applications, SMS1100 and up */ | 1022 | * SmsHostApiGetstatisticsEx_Req for DVB applications, SMS1100 and up */ |
| 1023 | struct SMSHOSTLIB_STATISTICS_DVB_EX_S { | 1023 | struct sms_stats_dvb_ex { |
| 1024 | /* Reception */ | 1024 | /* Reception */ |
| 1025 | struct RECEPTION_STATISTICS_EX_S reception_data; | 1025 | struct sms_rx_stats_ex reception_data; |
| 1026 | 1026 | ||
| 1027 | /* Transmission parameters */ | 1027 | /* Transmission parameters */ |
| 1028 | struct TRANSMISSION_STATISTICS_S transmission_data; | 1028 | struct sms_tx_stats transmission_data; |
| 1029 | 1029 | ||
| 1030 | /* Burst parameters, valid only for DVB-H */ | 1030 | /* Burst parameters, valid only for DVB-H */ |
| 1031 | #define SRVM_MAX_PID_FILTERS 8 | 1031 | #define SRVM_MAX_PID_FILTERS 8 |
| 1032 | struct PID_DATA_S pid_data[SRVM_MAX_PID_FILTERS]; | 1032 | struct sms_pid_data pid_data[SRVM_MAX_PID_FILTERS]; |
| 1033 | }; | 1033 | }; |
| 1034 | 1034 | ||
| 1035 | struct SRVM_SIGNAL_STATUS_S { | 1035 | struct sms_srvm_signal_status { |
| 1036 | u32 result; | 1036 | u32 result; |
| 1037 | u32 snr; | 1037 | u32 snr; |
| 1038 | u32 ts_packets; | 1038 | u32 ts_packets; |
| @@ -1048,14 +1048,14 @@ struct SRVM_SIGNAL_STATUS_S { | |||
| 1048 | u32 request_id; | 1048 | u32 request_id; |
| 1049 | }; | 1049 | }; |
| 1050 | 1050 | ||
| 1051 | struct SMSHOSTLIB_I2C_REQ_ST { | 1051 | struct sms_i2c_req { |
| 1052 | u32 device_address; /* I2c device address */ | 1052 | u32 device_address; /* I2c device address */ |
| 1053 | u32 write_count; /* number of bytes to write */ | 1053 | u32 write_count; /* number of bytes to write */ |
| 1054 | u32 read_count; /* number of bytes to read */ | 1054 | u32 read_count; /* number of bytes to read */ |
| 1055 | u8 Data[1]; | 1055 | u8 Data[1]; |
| 1056 | }; | 1056 | }; |
| 1057 | 1057 | ||
| 1058 | struct SMSHOSTLIB_I2C_RES_ST { | 1058 | struct sms_i2c_res { |
| 1059 | u32 status; /* non-zero value in case of failure */ | 1059 | u32 status; /* non-zero value in case of failure */ |
| 1060 | u32 read_count; /* number of bytes read */ | 1060 | u32 read_count; /* number of bytes read */ |
| 1061 | u8 Data[1]; | 1061 | u8 Data[1]; |
diff --git a/drivers/media/common/siano/smsdvb-debugfs.c b/drivers/media/common/siano/smsdvb-debugfs.c index 5a28506d7bba..f63121ccbd10 100644 --- a/drivers/media/common/siano/smsdvb-debugfs.c +++ b/drivers/media/common/siano/smsdvb-debugfs.c | |||
| @@ -49,7 +49,7 @@ struct smsdvb_debugfs { | |||
| 49 | }; | 49 | }; |
| 50 | 50 | ||
| 51 | void smsdvb_print_dvb_stats(struct smsdvb_debugfs *debug_data, | 51 | void smsdvb_print_dvb_stats(struct smsdvb_debugfs *debug_data, |
| 52 | struct SMSHOSTLIB_STATISTICS_ST *p) | 52 | struct sms_stats *p) |
| 53 | { | 53 | { |
| 54 | int n = 0; | 54 | int n = 0; |
| 55 | char *buf; | 55 | char *buf; |
| @@ -152,7 +152,7 @@ void smsdvb_print_dvb_stats(struct smsdvb_debugfs *debug_data, | |||
| 152 | } | 152 | } |
| 153 | 153 | ||
| 154 | void smsdvb_print_isdb_stats(struct smsdvb_debugfs *debug_data, | 154 | void smsdvb_print_isdb_stats(struct smsdvb_debugfs *debug_data, |
| 155 | struct SMSHOSTLIB_STATISTICS_ISDBT_ST *p) | 155 | struct sms_isdbt_stats *p) |
| 156 | { | 156 | { |
| 157 | int i, n = 0; | 157 | int i, n = 0; |
| 158 | char *buf; | 158 | char *buf; |
| @@ -242,7 +242,7 @@ void smsdvb_print_isdb_stats(struct smsdvb_debugfs *debug_data, | |||
| 242 | } | 242 | } |
| 243 | 243 | ||
| 244 | void smsdvb_print_isdb_stats_ex(struct smsdvb_debugfs *debug_data, | 244 | void smsdvb_print_isdb_stats_ex(struct smsdvb_debugfs *debug_data, |
| 245 | struct SMSHOSTLIB_STATISTICS_ISDBT_EX_ST *p) | 245 | struct sms_isdbt_stats_ex *p) |
| 246 | { | 246 | { |
| 247 | int i, n = 0; | 247 | int i, n = 0; |
| 248 | char *buf; | 248 | char *buf; |
diff --git a/drivers/media/common/siano/smsdvb-main.c b/drivers/media/common/siano/smsdvb-main.c index cec85fef2a1b..29d1c41bbd66 100644 --- a/drivers/media/common/siano/smsdvb-main.c +++ b/drivers/media/common/siano/smsdvb-main.c | |||
| @@ -223,7 +223,7 @@ static inline u32 sms_to_bw(u32 value) | |||
| 223 | FEC_NONE); | 223 | FEC_NONE); |
| 224 | 224 | ||
| 225 | static void smsdvb_update_tx_params(struct smsdvb_client_t *client, | 225 | static void smsdvb_update_tx_params(struct smsdvb_client_t *client, |
| 226 | struct TRANSMISSION_STATISTICS_S *p) | 226 | struct sms_tx_stats *p) |
| 227 | { | 227 | { |
| 228 | struct dvb_frontend *fe = &client->frontend; | 228 | struct dvb_frontend *fe = &client->frontend; |
| 229 | struct dtv_frontend_properties *c = &fe->dtv_property_cache; | 229 | struct dtv_frontend_properties *c = &fe->dtv_property_cache; |
| @@ -277,7 +277,7 @@ static void smsdvb_update_per_slices(struct smsdvb_client_t *client, | |||
| 277 | } | 277 | } |
| 278 | 278 | ||
| 279 | static void smsdvb_update_dvb_stats(struct smsdvb_client_t *client, | 279 | static void smsdvb_update_dvb_stats(struct smsdvb_client_t *client, |
| 280 | struct SMSHOSTLIB_STATISTICS_ST *p) | 280 | struct sms_stats *p) |
| 281 | { | 281 | { |
| 282 | struct dvb_frontend *fe = &client->frontend; | 282 | struct dvb_frontend *fe = &client->frontend; |
| 283 | struct dtv_frontend_properties *c = &fe->dtv_property_cache; | 283 | struct dtv_frontend_properties *c = &fe->dtv_property_cache; |
| @@ -329,11 +329,11 @@ static void smsdvb_update_dvb_stats(struct smsdvb_client_t *client, | |||
| 329 | }; | 329 | }; |
| 330 | 330 | ||
| 331 | static void smsdvb_update_isdbt_stats(struct smsdvb_client_t *client, | 331 | static void smsdvb_update_isdbt_stats(struct smsdvb_client_t *client, |
| 332 | struct SMSHOSTLIB_STATISTICS_ISDBT_ST *p) | 332 | struct sms_isdbt_stats *p) |
| 333 | { | 333 | { |
| 334 | struct dvb_frontend *fe = &client->frontend; | 334 | struct dvb_frontend *fe = &client->frontend; |
| 335 | struct dtv_frontend_properties *c = &fe->dtv_property_cache; | 335 | struct dtv_frontend_properties *c = &fe->dtv_property_cache; |
| 336 | struct SMSHOSTLIB_ISDBT_LAYER_STAT_ST *lr; | 336 | struct sms_isdbt_layer_stats *lr; |
| 337 | int i, n_layers; | 337 | int i, n_layers; |
| 338 | 338 | ||
| 339 | if (client->prt_isdb_stats) | 339 | if (client->prt_isdb_stats) |
| @@ -425,11 +425,11 @@ static void smsdvb_update_isdbt_stats(struct smsdvb_client_t *client, | |||
| 425 | } | 425 | } |
| 426 | 426 | ||
| 427 | static void smsdvb_update_isdbt_stats_ex(struct smsdvb_client_t *client, | 427 | static void smsdvb_update_isdbt_stats_ex(struct smsdvb_client_t *client, |
| 428 | struct SMSHOSTLIB_STATISTICS_ISDBT_EX_ST *p) | 428 | struct sms_isdbt_stats_ex *p) |
| 429 | { | 429 | { |
| 430 | struct dvb_frontend *fe = &client->frontend; | 430 | struct dvb_frontend *fe = &client->frontend; |
| 431 | struct dtv_frontend_properties *c = &fe->dtv_property_cache; | 431 | struct dtv_frontend_properties *c = &fe->dtv_property_cache; |
| 432 | struct SMSHOSTLIB_ISDBT_LAYER_STAT_ST *lr; | 432 | struct sms_isdbt_layer_stats *lr; |
| 433 | int i, n_layers; | 433 | int i, n_layers; |
| 434 | 434 | ||
| 435 | if (client->prt_isdb_stats_ex) | 435 | if (client->prt_isdb_stats_ex) |
diff --git a/drivers/media/common/siano/smsdvb.h b/drivers/media/common/siano/smsdvb.h index e1ff07c2e6c8..513f85366209 100644 --- a/drivers/media/common/siano/smsdvb.h +++ b/drivers/media/common/siano/smsdvb.h | |||
| @@ -19,14 +19,14 @@ struct smsdvb_debugfs; | |||
| 19 | struct smsdvb_client_t; | 19 | struct smsdvb_client_t; |
| 20 | 20 | ||
| 21 | typedef void (*sms_prt_dvb_stats_t)(struct smsdvb_debugfs *debug_data, | 21 | typedef void (*sms_prt_dvb_stats_t)(struct smsdvb_debugfs *debug_data, |
| 22 | struct SMSHOSTLIB_STATISTICS_ST *p); | 22 | struct sms_stats *p); |
| 23 | 23 | ||
| 24 | typedef void (*sms_prt_isdb_stats_t)(struct smsdvb_debugfs *debug_data, | 24 | typedef void (*sms_prt_isdb_stats_t)(struct smsdvb_debugfs *debug_data, |
| 25 | struct SMSHOSTLIB_STATISTICS_ISDBT_ST *p); | 25 | struct sms_isdbt_stats *p); |
| 26 | 26 | ||
| 27 | typedef void (*sms_prt_isdb_stats_ex_t) | 27 | typedef void (*sms_prt_isdb_stats_ex_t) |
| 28 | (struct smsdvb_debugfs *debug_data, | 28 | (struct smsdvb_debugfs *debug_data, |
| 29 | struct SMSHOSTLIB_STATISTICS_ISDBT_EX_ST *p); | 29 | struct sms_isdbt_stats_ex *p); |
| 30 | 30 | ||
| 31 | 31 | ||
| 32 | struct smsdvb_client_t { | 32 | struct smsdvb_client_t { |
| @@ -68,7 +68,8 @@ struct smsdvb_client_t { | |||
| 68 | }; | 68 | }; |
| 69 | 69 | ||
| 70 | /* | 70 | /* |
| 71 | * This struct is a mix of RECEPTION_STATISTICS_EX_S and SRVM_SIGNAL_STATUS_S. | 71 | * This struct is a mix of struct sms_rx_stats_ex and |
| 72 | * struct sms_srvm_signal_status. | ||
| 72 | * It was obtained by comparing the way it was filled by the original code | 73 | * It was obtained by comparing the way it was filled by the original code |
| 73 | */ | 74 | */ |
| 74 | struct RECEPTION_STATISTICS_PER_SLICES_S { | 75 | struct RECEPTION_STATISTICS_PER_SLICES_S { |
