ALSA: seq: Constify struct snd_midi_op

Change the argument of snd_midi_process_event() to receive a const
snd_midi_op pointer and its callers respectively.  This allows further
optimizations.

There should be no functional changes by this patch.

Link: https://lore.kernel.org/r/20200103081714.9560-30-tiwai@suse.de
Signed-off-by: Takashi Iwai <tiwai@suse.de>
This commit is contained in:
Takashi Iwai 2020-01-03 09:16:45 +01:00
parent d25ff26840
commit aad7ebb544
6 changed files with 28 additions and 20 deletions

View File

@ -174,7 +174,8 @@ enum {
}; };
/* Prototypes for midi_process.c */ /* Prototypes for midi_process.c */
void snd_midi_process_event(struct snd_midi_op *ops, struct snd_seq_event *ev, void snd_midi_process_event(const struct snd_midi_op *ops,
struct snd_seq_event *ev,
struct snd_midi_channel_set *chanset); struct snd_midi_channel_set *chanset);
void snd_midi_channel_set_clear(struct snd_midi_channel_set *chset); void snd_midi_channel_set_clear(struct snd_midi_channel_set *chset);
struct snd_midi_channel_set *snd_midi_channel_alloc_set(int n); struct snd_midi_channel_set *snd_midi_channel_alloc_set(int n);

View File

@ -30,22 +30,25 @@ MODULE_DESCRIPTION("Advanced Linux Sound Architecture sequencer MIDI emulation."
MODULE_LICENSE("GPL"); MODULE_LICENSE("GPL");
/* Prototypes for static functions */ /* Prototypes for static functions */
static void note_off(struct snd_midi_op *ops, void *drv, static void note_off(const struct snd_midi_op *ops, void *drv,
struct snd_midi_channel *chan, struct snd_midi_channel *chan,
int note, int vel); int note, int vel);
static void do_control(struct snd_midi_op *ops, void *private, static void do_control(const struct snd_midi_op *ops, void *private,
struct snd_midi_channel_set *chset, struct snd_midi_channel_set *chset,
struct snd_midi_channel *chan, struct snd_midi_channel *chan,
int control, int value); int control, int value);
static void rpn(struct snd_midi_op *ops, void *drv, struct snd_midi_channel *chan, static void rpn(const struct snd_midi_op *ops, void *drv,
struct snd_midi_channel *chan,
struct snd_midi_channel_set *chset); struct snd_midi_channel_set *chset);
static void nrpn(struct snd_midi_op *ops, void *drv, struct snd_midi_channel *chan, static void nrpn(const struct snd_midi_op *ops, void *drv,
struct snd_midi_channel *chan,
struct snd_midi_channel_set *chset); struct snd_midi_channel_set *chset);
static void sysex(struct snd_midi_op *ops, void *private, unsigned char *sysex, static void sysex(const struct snd_midi_op *ops, void *private,
unsigned char *sysex,
int len, struct snd_midi_channel_set *chset); int len, struct snd_midi_channel_set *chset);
static void all_sounds_off(struct snd_midi_op *ops, void *private, static void all_sounds_off(const struct snd_midi_op *ops, void *private,
struct snd_midi_channel *chan); struct snd_midi_channel *chan);
static void all_notes_off(struct snd_midi_op *ops, void *private, static void all_notes_off(const struct snd_midi_op *ops, void *private,
struct snd_midi_channel *chan); struct snd_midi_channel *chan);
static void snd_midi_reset_controllers(struct snd_midi_channel *chan); static void snd_midi_reset_controllers(struct snd_midi_channel *chan);
static void reset_all_channels(struct snd_midi_channel_set *chset); static void reset_all_channels(struct snd_midi_channel_set *chset);
@ -66,7 +69,7 @@ static void reset_all_channels(struct snd_midi_channel_set *chset);
* be interpreted. * be interpreted.
*/ */
void void
snd_midi_process_event(struct snd_midi_op *ops, snd_midi_process_event(const struct snd_midi_op *ops,
struct snd_seq_event *ev, struct snd_seq_event *ev,
struct snd_midi_channel_set *chanset) struct snd_midi_channel_set *chanset)
{ {
@ -229,7 +232,8 @@ EXPORT_SYMBOL(snd_midi_process_event);
* release note * release note
*/ */
static void static void
note_off(struct snd_midi_op *ops, void *drv, struct snd_midi_channel *chan, note_off(const struct snd_midi_op *ops, void *drv,
struct snd_midi_channel *chan,
int note, int vel) int note, int vel)
{ {
if (chan->gm_hold) { if (chan->gm_hold) {
@ -251,7 +255,8 @@ note_off(struct snd_midi_op *ops, void *drv, struct snd_midi_channel *chan,
* events that need to take place immediately to the driver. * events that need to take place immediately to the driver.
*/ */
static void static void
do_control(struct snd_midi_op *ops, void *drv, struct snd_midi_channel_set *chset, do_control(const struct snd_midi_op *ops, void *drv,
struct snd_midi_channel_set *chset,
struct snd_midi_channel *chan, int control, int value) struct snd_midi_channel *chan, int control, int value)
{ {
int i; int i;
@ -402,7 +407,7 @@ EXPORT_SYMBOL(snd_midi_channel_set_clear);
* Process a rpn message. * Process a rpn message.
*/ */
static void static void
rpn(struct snd_midi_op *ops, void *drv, struct snd_midi_channel *chan, rpn(const struct snd_midi_op *ops, void *drv, struct snd_midi_channel *chan,
struct snd_midi_channel_set *chset) struct snd_midi_channel_set *chset)
{ {
int type; int type;
@ -442,7 +447,7 @@ rpn(struct snd_midi_op *ops, void *drv, struct snd_midi_channel *chan,
* Process an nrpn message. * Process an nrpn message.
*/ */
static void static void
nrpn(struct snd_midi_op *ops, void *drv, struct snd_midi_channel *chan, nrpn(const struct snd_midi_op *ops, void *drv, struct snd_midi_channel *chan,
struct snd_midi_channel_set *chset) struct snd_midi_channel_set *chset)
{ {
/* parse XG NRPNs here if possible */ /* parse XG NRPNs here if possible */
@ -470,7 +475,7 @@ get_channel(unsigned char cmd)
* Process a sysex message. * Process a sysex message.
*/ */
static void static void
sysex(struct snd_midi_op *ops, void *private, unsigned char *buf, int len, sysex(const struct snd_midi_op *ops, void *private, unsigned char *buf, int len,
struct snd_midi_channel_set *chset) struct snd_midi_channel_set *chset)
{ {
/* GM on */ /* GM on */
@ -584,7 +589,8 @@ sysex(struct snd_midi_op *ops, void *private, unsigned char *buf, int len,
* all sound off * all sound off
*/ */
static void static void
all_sounds_off(struct snd_midi_op *ops, void *drv, struct snd_midi_channel *chan) all_sounds_off(const struct snd_midi_op *ops, void *drv,
struct snd_midi_channel *chan)
{ {
int n; int n;
@ -602,7 +608,8 @@ all_sounds_off(struct snd_midi_op *ops, void *drv, struct snd_midi_channel *chan
* all notes off * all notes off
*/ */
static void static void
all_notes_off(struct snd_midi_op *ops, void *drv, struct snd_midi_channel *chan) all_notes_off(const struct snd_midi_op *ops, void *drv,
struct snd_midi_channel *chan)
{ {
int n; int n;

View File

@ -128,7 +128,7 @@ static int snd_opl3_synth_unuse(void *private_data, struct snd_seq_port_subscrib
/* /*
* MIDI emulation operators * MIDI emulation operators
*/ */
struct snd_midi_op opl3_ops = { const struct snd_midi_op opl3_ops = {
.note_on = snd_opl3_note_on, .note_on = snd_opl3_note_on,
.note_off = snd_opl3_note_off, .note_off = snd_opl3_note_off,
.key_press = snd_opl3_key_press, .key_press = snd_opl3_key_press,

View File

@ -41,6 +41,6 @@ void snd_opl3_free_seq_oss(struct snd_opl3 *opl3);
extern char snd_opl3_regmap[MAX_OPL2_VOICES][4]; extern char snd_opl3_regmap[MAX_OPL2_VOICES][4];
extern bool use_internal_drums; extern bool use_internal_drums;
extern struct snd_midi_op opl3_ops; extern const struct snd_midi_op opl3_ops;
#endif #endif

View File

@ -100,7 +100,7 @@ static int snd_opl4_seq_unuse(void *private_data, struct snd_seq_port_subscribe
return 0; return 0;
} }
static struct snd_midi_op opl4_ops = { static const struct snd_midi_op opl4_ops = {
.note_on = snd_opl4_note_on, .note_on = snd_opl4_note_on,
.note_off = snd_opl4_note_off, .note_off = snd_opl4_note_off,
.note_terminate = snd_opl4_terminate_note, .note_terminate = snd_opl4_terminate_note,

View File

@ -19,7 +19,7 @@ static int snd_emux_unuse(void *private_data, struct snd_seq_port_subscribe *inf
/* /*
* MIDI emulation operators * MIDI emulation operators
*/ */
static struct snd_midi_op emux_ops = { static const struct snd_midi_op emux_ops = {
.note_on = snd_emux_note_on, .note_on = snd_emux_note_on,
.note_off = snd_emux_note_off, .note_off = snd_emux_note_off,
.key_press = snd_emux_key_press, .key_press = snd_emux_key_press,