---
name: "snd_pcm_new_internal"
section: "9"
platform: "linux"
package: "linux-manual-4.9"
version: "4.9.228-1"
release: "Debian 9 (Stretch)"
platforms: ["linux"]
url: "https://new.carta.tech/snd_pcm_new_internal"
---

# snd\_pcm\_new\_internal(9)

create a new internal PCM instance

## NAME

snd\_pcm\_new\_internal - create a new internal PCM instance

## SYNOPSIS

**int snd\_pcm\_new\_internal(struct snd\_card \*** *card***, const char \*** *id***, int** *device***, int** *playback\_count***, int** *capture\_count***, struct snd\_pcm \*\*** *rpcm***);**

## ARGUMENTS

*card*

the card instance

*id*

the id string

*device*

the device index (zero based - shared with normal PCMs)

*playback\_count*

the number of substreams for playback

*capture\_count*

the number of substreams for capture

*rpcm*

the pointer to store the new pcm instance

## DESCRIPTION

Creates a new internal PCM instance with no userspace device or procfs entries. This is used by ASoC Back End PCMs in order to create a PCM that will only be used internally by kernel drivers. i.e. it cannot be opened by userspace. It provides existing ASoC components drivers with a substream and access to any private data.

The pcm operators have to be set afterwards to the new instance via **snd\_pcm\_set\_ops**.

## RETURN

Zero if successful, or a negative error code on failure.

## COPYRIGHT
