Alsa-Devel Archive on lore.kernel.org
 help / color / Atom feed
From: Takashi Iwai <tiwai@suse.de>
To: alsa-devel@alsa-project.org
Subject: [alsa-devel] [PATCH 29/58] ALSA: seq: Constify struct snd_midi_op
Date: Fri,  3 Jan 2020 09:16:45 +0100
Message-ID: <20200103081714.9560-30-tiwai@suse.de> (raw)
In-Reply-To: <20200103081714.9560-1-tiwai@suse.de>

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.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
---
 include/sound/seq_midi_emul.h   |  3 ++-
 sound/core/seq/seq_midi_emul.c  | 37 ++++++++++++++++++++++---------------
 sound/drivers/opl3/opl3_seq.c   |  2 +-
 sound/drivers/opl3/opl3_voice.h |  2 +-
 sound/drivers/opl4/opl4_seq.c   |  2 +-
 sound/synth/emux/emux_seq.c     |  2 +-
 6 files changed, 28 insertions(+), 20 deletions(-)

diff --git a/include/sound/seq_midi_emul.h b/include/sound/seq_midi_emul.h
index d6b74059b4b1..88799d1e1f53 100644
--- a/include/sound/seq_midi_emul.h
+++ b/include/sound/seq_midi_emul.h
@@ -174,7 +174,8 @@ enum {
 };
 
 /* 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);
 void snd_midi_channel_set_clear(struct snd_midi_channel_set *chset);
 struct snd_midi_channel_set *snd_midi_channel_alloc_set(int n);
diff --git a/sound/core/seq/seq_midi_emul.c b/sound/core/seq/seq_midi_emul.c
index 770d3f4eee7c..536ccf48ee72 100644
--- a/sound/core/seq/seq_midi_emul.c
+++ b/sound/core/seq/seq_midi_emul.c
@@ -30,22 +30,25 @@ MODULE_DESCRIPTION("Advanced Linux Sound Architecture sequencer MIDI emulation."
 MODULE_LICENSE("GPL");
 
 /* 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,
 		     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 *chan,
 		       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);
-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);
-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);
-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);
-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);
 static void snd_midi_reset_controllers(struct snd_midi_channel *chan);
 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.
  */
 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_midi_channel_set *chanset)
 {
@@ -229,7 +232,8 @@ EXPORT_SYMBOL(snd_midi_process_event);
  * release note
  */
 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)
 {
 	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.
  */
 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)
 {
 	int  i;
@@ -402,7 +407,7 @@ EXPORT_SYMBOL(snd_midi_channel_set_clear);
  * Process a rpn message.
  */
 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)
 {
 	int type;
@@ -442,7 +447,7 @@ rpn(struct snd_midi_op *ops, void *drv, struct snd_midi_channel *chan,
  * Process an nrpn message.
  */
 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)
 {
 	/* parse XG NRPNs here if possible */
@@ -470,7 +475,7 @@ get_channel(unsigned char cmd)
  * Process a sysex message.
  */
 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)
 {
 	/* GM on */
@@ -584,7 +589,8 @@ sysex(struct snd_midi_op *ops, void *private, unsigned char *buf, int len,
  * all sound off
  */
 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;
 
@@ -602,7 +608,8 @@ all_sounds_off(struct snd_midi_op *ops, void *drv, struct snd_midi_channel *chan
  * all notes off
  */
 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;
 
diff --git a/sound/drivers/opl3/opl3_seq.c b/sound/drivers/opl3/opl3_seq.c
index 20f2f5125394..cd2a01b5e2e1 100644
--- a/sound/drivers/opl3/opl3_seq.c
+++ b/sound/drivers/opl3/opl3_seq.c
@@ -128,7 +128,7 @@ static int snd_opl3_synth_unuse(void *private_data, struct snd_seq_port_subscrib
 /*
  * MIDI emulation operators
  */
-struct snd_midi_op opl3_ops = {
+const struct snd_midi_op opl3_ops = {
 	.note_on =		snd_opl3_note_on,
 	.note_off =		snd_opl3_note_off,
 	.key_press =		snd_opl3_key_press,
diff --git a/sound/drivers/opl3/opl3_voice.h b/sound/drivers/opl3/opl3_voice.h
index dc0626a2dd61..be9ccca2d952 100644
--- a/sound/drivers/opl3/opl3_voice.h
+++ b/sound/drivers/opl3/opl3_voice.h
@@ -41,6 +41,6 @@ void snd_opl3_free_seq_oss(struct snd_opl3 *opl3);
 
 extern char snd_opl3_regmap[MAX_OPL2_VOICES][4];
 extern bool use_internal_drums;
-extern struct snd_midi_op opl3_ops;
+extern const struct snd_midi_op opl3_ops;
 
 #endif
diff --git a/sound/drivers/opl4/opl4_seq.c b/sound/drivers/opl4/opl4_seq.c
index 03d6202f4829..f59ca660c616 100644
--- a/sound/drivers/opl4/opl4_seq.c
+++ b/sound/drivers/opl4/opl4_seq.c
@@ -100,7 +100,7 @@ static int snd_opl4_seq_unuse(void *private_data, struct snd_seq_port_subscribe
 	return 0;
 }
 
-static struct snd_midi_op opl4_ops = {
+static const struct snd_midi_op opl4_ops = {
 	.note_on =		snd_opl4_note_on,
 	.note_off =		snd_opl4_note_off,
 	.note_terminate =	snd_opl4_terminate_note,
diff --git a/sound/synth/emux/emux_seq.c b/sound/synth/emux/emux_seq.c
index 9d8a69f1a644..b227c7e0bc2a 100644
--- a/sound/synth/emux/emux_seq.c
+++ b/sound/synth/emux/emux_seq.c
@@ -19,7 +19,7 @@ static int snd_emux_unuse(void *private_data, struct snd_seq_port_subscribe *inf
 /*
  * 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_off = snd_emux_note_off,
 	.key_press = snd_emux_key_press,
-- 
2.16.4

_______________________________________________
Alsa-devel mailing list
Alsa-devel@alsa-project.org
https://mailman.alsa-project.org/mailman/listinfo/alsa-devel

  parent reply index

Thread overview: 59+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-01-03  8:16 [alsa-devel] [PATCH 00/58] ALSA: Constifications Takashi Iwai
2020-01-03  8:16 ` [alsa-devel] [PATCH 01/58] ALSA: pci: Constify snd_pcm_hardware definitions Takashi Iwai
2020-01-03  8:16 ` [alsa-devel] [PATCH 02/58] ALSA: usb: " Takashi Iwai
2020-01-03  8:16 ` [alsa-devel] [PATCH 03/58] ALSA: core: Treat snd_device_ops as const Takashi Iwai
2020-01-03  8:16 ` [alsa-devel] [PATCH 04/58] ALSA: core: Constify snd_device_ops definitions Takashi Iwai
2020-01-03  8:16 ` [alsa-devel] [PATCH 05/58] ALSA: drivers: " Takashi Iwai
2020-01-03  8:16 ` [alsa-devel] [PATCH 06/58] ALSA: i2c: " Takashi Iwai
2020-01-03  8:16 ` [alsa-devel] [PATCH 07/58] ALSA: isa: " Takashi Iwai
2020-01-03  8:16 ` [alsa-devel] [PATCH 08/58] ALSA: hda: " Takashi Iwai
2020-01-03  8:16 ` [alsa-devel] [PATCH 09/58] ALSA: pci: " Takashi Iwai
2020-01-03  8:16 ` [alsa-devel] [PATCH 10/58] ALSA: usb: " Takashi Iwai
2020-01-03  8:16 ` [alsa-devel] [PATCH 11/58] ALSA: aoa: " Takashi Iwai
2020-01-03  8:16 ` [alsa-devel] [PATCH 12/58] ALSA: mips: " Takashi Iwai
2020-01-03  8:16 ` [alsa-devel] [PATCH 13/58] ALSA: parisc: " Takashi Iwai
2020-01-03  8:16 ` [alsa-devel] [PATCH 14/58] ALSA: pcmcia: " Takashi Iwai
2020-01-03  8:16 ` [alsa-devel] [PATCH 15/58] ALSA: ppc: " Takashi Iwai
2020-01-03  8:16 ` [alsa-devel] [PATCH 16/58] ALSA: sparc: " Takashi Iwai
2020-01-03  8:16 ` [alsa-devel] [PATCH 17/58] ALSA: sh: " Takashi Iwai
2020-01-03  8:16 ` [alsa-devel] [PATCH 18/58] ALSA: spi: " Takashi Iwai
2020-01-03  8:16 ` [alsa-devel] [PATCH 19/58] ALSA: docs: " Takashi Iwai
2020-01-03  8:16 ` [alsa-devel] [PATCH 20/58] ALSA: timer: Constify snd_timer_hardware definitions Takashi Iwai
2020-01-03  8:16 ` [alsa-devel] [PATCH 21/58] ALSA: " Takashi Iwai
2020-01-03  8:16 ` [alsa-devel] [PATCH 22/58] ALSA: ac97: Treat snd_ac97_bus_ops as const Takashi Iwai
2020-01-03  8:16 ` [alsa-devel] [PATCH 23/58] ALSA: ac97: Constify snd_ac97_bus_ops definitions Takashi Iwai
2020-01-03  8:16 ` [alsa-devel] [PATCH 24/58] ALSA: arm: " Takashi Iwai
2020-01-03  8:16 ` [alsa-devel] [PATCH 25/58] ALSA: atmel: " Takashi Iwai
2020-01-03  8:16 ` [alsa-devel] [PATCH 26/58] ALSA: drivers: " Takashi Iwai
2020-01-03  8:16 ` [alsa-devel] [PATCH 27/58] ALSA: pci: " Takashi Iwai
2020-01-03  8:16 ` [alsa-devel] [PATCH 28/58] ALSA: info: Make snd_info_entry_ops as const Takashi Iwai
2020-01-03  8:16 ` Takashi Iwai [this message]
2020-01-03  8:16 ` [alsa-devel] [PATCH 30/58] ALSA: vx: Constify snd_vx_hardware and snd_vx_ops definitions Takashi Iwai
2020-01-03  8:16 ` [alsa-devel] [PATCH 31/58] ALSA: mixer: oss: Constify snd_mixer_oss_assign_table definition Takashi Iwai
2020-01-03  8:16 ` [alsa-devel] [PATCH 32/58] ALSA: aoa: Constify snd_kcontrol_new items Takashi Iwai
2020-01-03  8:16 ` [alsa-devel] [PATCH 33/58] ALSA: drivers: " Takashi Iwai
2020-01-03  8:16 ` [alsa-devel] [PATCH 34/58] ALSA: i2c: " Takashi Iwai
2020-01-03  8:16 ` [alsa-devel] [PATCH 35/58] ALSA: isa: " Takashi Iwai
2020-01-03  8:16 ` [alsa-devel] [PATCH 36/58] ALSA: hda: " Takashi Iwai
2020-01-03  8:16 ` [alsa-devel] [PATCH 37/58] ALSA: pci: " Takashi Iwai
2020-01-03  8:16 ` [alsa-devel] [PATCH 38/58] ALSA: ppc: " Takashi Iwai
2020-01-03  8:16 ` [alsa-devel] [PATCH 39/58] ALSA: sparc: " Takashi Iwai
2020-01-03  8:16 ` [alsa-devel] [PATCH 40/58] ALSA: spi: " Takashi Iwai
2020-01-03  8:16 ` [alsa-devel] [PATCH 41/58] ALSA: usb: " Takashi Iwai
2020-01-03  8:16 ` [alsa-devel] [PATCH 42/58] ALSA: parisc: " Takashi Iwai
2020-01-03  8:16 ` [alsa-devel] [PATCH 43/58] ALSA: dummy: Constify snd_pcm_ops definitions Takashi Iwai
2020-01-03  8:17 ` [alsa-devel] [PATCH 44/58] ALSA: opl3: Constify snd_opl3_drum_voice definitions Takashi Iwai
2020-01-03  8:17 ` [alsa-devel] [PATCH 45/58] ALSA: ac97: Constify snd_ac97_res_table definition Takashi Iwai
2020-01-03  8:17 ` [alsa-devel] [PATCH 46/58] ALSA: ca0106: Constify snd_ca0106_category_str items Takashi Iwai
2020-01-03  8:17 ` [alsa-devel] [PATCH 47/58] ALSA: ca0106: Constify snd_ca0106_details Takashi Iwai
2020-01-03  8:17 ` [alsa-devel] [PATCH 48/58] ALSA: ice17xx: Constify snd_ice1712_card_info Takashi Iwai
2020-01-03  8:17 ` [alsa-devel] [PATCH 49/58] ALSA: ice1712: Constify wm-specific tables Takashi Iwai
2020-01-03  8:17 ` [alsa-devel] [PATCH 50/58] ALSA: line6: Constify snd_ratden definitions Takashi Iwai
2020-01-03  8:17 ` [alsa-devel] [PATCH 51/58] ALSA: usx2y: Constify struct snd_usb_audio_quirk entries Takashi Iwai
2020-01-03  8:17 ` [alsa-devel] [PATCH 52/58] ALSA: seq: oss: Constify snd_seq_oss_callback definitions Takashi Iwai
2020-01-03  8:17 ` [alsa-devel] [PATCH 53/58] ALSA: bt87x: Constify snd_bt87x_boards Takashi Iwai
2020-01-03  8:17 ` [alsa-devel] [PATCH 54/58] ALSA: emu10k1: Constify snd_emu_chip_details Takashi Iwai
2020-01-03  8:17 ` [alsa-devel] [PATCH 55/58] ALSA: es1968: Constify snd_es1968_tea575x_gpios Takashi Iwai
2020-01-03  8:17 ` [alsa-devel] [PATCH 56/58] ALSA: fm801: Constify snd_fm801_tea575x_gpios Takashi Iwai
2020-01-03  8:17 ` [alsa-devel] [PATCH 57/58] ALSA: hda: Constify snd_pci_quirk tables Takashi Iwai
2020-01-03  8:17 ` [alsa-devel] [PATCH 58/58] ALSA: pci: " Takashi Iwai

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20200103081714.9560-30-tiwai@suse.de \
    --to=tiwai@suse.de \
    --cc=alsa-devel@alsa-project.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link

Alsa-Devel Archive on lore.kernel.org

Archives are clonable:
	git clone --mirror https://lore.kernel.org/alsa-devel/0 alsa-devel/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 alsa-devel alsa-devel/ https://lore.kernel.org/alsa-devel \
		alsa-devel@alsa-project.org
	public-inbox-index alsa-devel

Example config snippet for mirrors

Newsgroup available over NNTP:
	nntp://nntp.lore.kernel.org/org.alsa-project.alsa-devel


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git