// SPDX-License-Identifier: GPL-2.0-or-later
/*
* Soundfont generic routines.
* It is intended that these should be used by any driver that is willing
* to accept soundfont patches.
*
* Copyright (C) 1999 Steve Ratcliffe
* Copyright (c) 1999-2000 Takashi Iwai <tiwai@suse.de>
*/
/*
* Deal with reading in of a soundfont. Code follows the OSS way
* of doing things so that the old sfxload utility can be used.
* Everything may change when there is an alsa way of doing things.
*/
#include <linux/uaccess.h>
#include <linux/slab.h>
#include <linux/export.h>
#include <sound/core.h>
#include <sound/soundfont.h>
#include <sound/seq_oss_legacy.h>
/* Prototypes for static functions */
static int open_patch(struct snd_sf_list *sflist, const char __user *data,
int count, int client);
static struct snd_soundfont *newsf(struct snd_sf_list *sflist, int type, char *name);
static int is_identical_font(struct snd_soundfont *sf, int type, unsigned char *name);
static int close_patch(struct snd_sf_list *sflist);
static int probe_data(struct snd_sf_list *sflist, int sample_id);
static void set_zone_counter(struct snd_sf_list