Commit d0c8308f authored by Takashi Iwai's avatar Takashi Iwai
Browse files

ALSA: seq: Treat snd_seq_client object directly in client drivers



Introduce the new helpers, snd_seq_kernel_client_get() and _put() for
kernel client drivers to treat the snd_seq_client more directly.
This allows us to reduce the exported symbols and APIs at each time we
need to access some field in future.

Reviewed-by: default avatarJaroslav Kysela <perex@perex.cz>
Link: https://lore.kernel.org/r/20230523075358.9672-20-tiwai@suse.de


Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
parent ea46f797
Loading
Loading
Loading
Loading
+15 −0
Original line number Diff line number Diff line
@@ -2390,6 +2390,21 @@ int snd_seq_kernel_client_write_poll(int clientid, struct file *file, poll_table
}
EXPORT_SYMBOL(snd_seq_kernel_client_write_poll);

/* get a sequencer client object; for internal use from a kernel client */
struct snd_seq_client *snd_seq_kernel_client_get(int id)
{
	return snd_seq_client_use_ptr(id);
}
EXPORT_SYMBOL_GPL(snd_seq_kernel_client_get);

/* put a sequencer client object; for internal use from a kernel client */
void snd_seq_kernel_client_put(struct snd_seq_client *cptr)
{
	if (cptr)
		snd_seq_client_unlock(cptr);
}
EXPORT_SYMBOL_GPL(snd_seq_kernel_client_put);

/*---------------------------------------------------------------------------*/

#ifdef CONFIG_SND_PROC_FS
+4 −0
Original line number Diff line number Diff line
@@ -88,4 +88,8 @@ void snd_seq_client_ioctl_unlock(int clientid);

extern int seq_client_load[15];

/* for internal use between kernel sequencer clients */
struct snd_seq_client *snd_seq_kernel_client_get(int client);
void snd_seq_kernel_client_put(struct snd_seq_client *cptr);

#endif