Enviar pesquisa
Carregar
Audio Drivers
•
5 gostaram
•
21,110 visualizações
Anil Kumar Pugalia
Seguir
Tecnologia
Denunciar
Compartilhar
Denunciar
Compartilhar
1 de 11
Recomendados
Linux Audio Drivers. ALSA
Linux Audio Drivers. ALSA
GlobalLogic Ukraine
Embedded Android : System Development - Part I
Embedded Android : System Development - Part I
Emertxe Information Technologies Pvt Ltd
Embedded Android : System Development - Part III (Audio / Video HAL)
Embedded Android : System Development - Part III (Audio / Video HAL)
Emertxe Information Technologies Pvt Ltd
Android Audio System
Android Audio System
Yi-Hsiang Huang
Embedded Android : System Development - Part IV
Embedded Android : System Development - Part IV
Emertxe Information Technologies Pvt Ltd
Using and Customizing the Android Framework / part 4 of Embedded Android Work...
Using and Customizing the Android Framework / part 4 of Embedded Android Work...
Opersys inc.
U boot porting guide for SoC
U boot porting guide for SoC
Macpaul Lin
Embedded Android : System Development - Part II (Linux device drivers)
Embedded Android : System Development - Part II (Linux device drivers)
Emertxe Information Technologies Pvt Ltd
Recomendados
Linux Audio Drivers. ALSA
Linux Audio Drivers. ALSA
GlobalLogic Ukraine
Embedded Android : System Development - Part I
Embedded Android : System Development - Part I
Emertxe Information Technologies Pvt Ltd
Embedded Android : System Development - Part III (Audio / Video HAL)
Embedded Android : System Development - Part III (Audio / Video HAL)
Emertxe Information Technologies Pvt Ltd
Android Audio System
Android Audio System
Yi-Hsiang Huang
Embedded Android : System Development - Part IV
Embedded Android : System Development - Part IV
Emertxe Information Technologies Pvt Ltd
Using and Customizing the Android Framework / part 4 of Embedded Android Work...
Using and Customizing the Android Framework / part 4 of Embedded Android Work...
Opersys inc.
U boot porting guide for SoC
U boot porting guide for SoC
Macpaul Lin
Embedded Android : System Development - Part II (Linux device drivers)
Embedded Android : System Development - Part II (Linux device drivers)
Emertxe Information Technologies Pvt Ltd
Android audio system(audio_hardwareinterace)
Android audio system(audio_hardwareinterace)
fefe7270
Embedded Android : System Development - Part III
Embedded Android : System Development - Part III
Emertxe Information Technologies Pvt Ltd
Embedded Android : System Development - Part IV (Android System Services)
Embedded Android : System Development - Part IV (Android System Services)
Emertxe Information Technologies Pvt Ltd
Embedded Android : System Development - Part II (HAL)
Embedded Android : System Development - Part II (HAL)
Emertxe Information Technologies Pvt Ltd
Q4.11: Porting Android to new Platforms
Q4.11: Porting Android to new Platforms
Linaro
Linux device drivers
Linux device drivers
Emertxe Information Technologies Pvt Ltd
Jagan Teki - U-boot from scratch
Jagan Teki - U-boot from scratch
linuxlab_conf
Learning AOSP - Android Booting Process
Learning AOSP - Android Booting Process
Nanik Tolaram
U-Boot - An universal bootloader
U-Boot - An universal bootloader
Emertxe Information Technologies Pvt Ltd
Android Internals
Android Internals
Opersys inc.
Learning AOSP - Android Linux Device Driver
Learning AOSP - Android Linux Device Driver
Nanik Tolaram
Android Internals
Android Internals
Opersys inc.
Embedded linux network device driver development
Embedded linux network device driver development
Amr Ali (ISTQB CTAL Full, CSM, ITIL Foundation)
"Learning AOSP" - Android Hardware Abstraction Layer (HAL)
"Learning AOSP" - Android Hardware Abstraction Layer (HAL)
Nanik Tolaram
Android IPC Mechanism
Android IPC Mechanism
National Cheng Kung University
Linux Kernel Overview
Linux Kernel Overview
Anil Kumar Pugalia
Audio in linux embedded
Audio in linux embedded
trx2001
Android Treble: Blessing or Trouble?
Android Treble: Blessing or Trouble?
Opersys inc.
Deep Dive into the AOSP
Deep Dive into the AOSP
Dr. Ketan Parmar
Android's HIDL: Treble in the HAL
Android's HIDL: Treble in the HAL
Opersys inc.
Kernel Programming
Kernel Programming
Anil Kumar Pugalia
Low-level Accesses
Low-level Accesses
Anil Kumar Pugalia
Mais conteúdo relacionado
Mais procurados
Android audio system(audio_hardwareinterace)
Android audio system(audio_hardwareinterace)
fefe7270
Embedded Android : System Development - Part III
Embedded Android : System Development - Part III
Emertxe Information Technologies Pvt Ltd
Embedded Android : System Development - Part IV (Android System Services)
Embedded Android : System Development - Part IV (Android System Services)
Emertxe Information Technologies Pvt Ltd
Embedded Android : System Development - Part II (HAL)
Embedded Android : System Development - Part II (HAL)
Emertxe Information Technologies Pvt Ltd
Q4.11: Porting Android to new Platforms
Q4.11: Porting Android to new Platforms
Linaro
Linux device drivers
Linux device drivers
Emertxe Information Technologies Pvt Ltd
Jagan Teki - U-boot from scratch
Jagan Teki - U-boot from scratch
linuxlab_conf
Learning AOSP - Android Booting Process
Learning AOSP - Android Booting Process
Nanik Tolaram
U-Boot - An universal bootloader
U-Boot - An universal bootloader
Emertxe Information Technologies Pvt Ltd
Android Internals
Android Internals
Opersys inc.
Learning AOSP - Android Linux Device Driver
Learning AOSP - Android Linux Device Driver
Nanik Tolaram
Android Internals
Android Internals
Opersys inc.
Embedded linux network device driver development
Embedded linux network device driver development
Amr Ali (ISTQB CTAL Full, CSM, ITIL Foundation)
"Learning AOSP" - Android Hardware Abstraction Layer (HAL)
"Learning AOSP" - Android Hardware Abstraction Layer (HAL)
Nanik Tolaram
Android IPC Mechanism
Android IPC Mechanism
National Cheng Kung University
Linux Kernel Overview
Linux Kernel Overview
Anil Kumar Pugalia
Audio in linux embedded
Audio in linux embedded
trx2001
Android Treble: Blessing or Trouble?
Android Treble: Blessing or Trouble?
Opersys inc.
Deep Dive into the AOSP
Deep Dive into the AOSP
Dr. Ketan Parmar
Android's HIDL: Treble in the HAL
Android's HIDL: Treble in the HAL
Opersys inc.
Mais procurados
(20)
Android audio system(audio_hardwareinterace)
Android audio system(audio_hardwareinterace)
Embedded Android : System Development - Part III
Embedded Android : System Development - Part III
Embedded Android : System Development - Part IV (Android System Services)
Embedded Android : System Development - Part IV (Android System Services)
Embedded Android : System Development - Part II (HAL)
Embedded Android : System Development - Part II (HAL)
Q4.11: Porting Android to new Platforms
Q4.11: Porting Android to new Platforms
Linux device drivers
Linux device drivers
Jagan Teki - U-boot from scratch
Jagan Teki - U-boot from scratch
Learning AOSP - Android Booting Process
Learning AOSP - Android Booting Process
U-Boot - An universal bootloader
U-Boot - An universal bootloader
Android Internals
Android Internals
Learning AOSP - Android Linux Device Driver
Learning AOSP - Android Linux Device Driver
Android Internals
Android Internals
Embedded linux network device driver development
Embedded linux network device driver development
"Learning AOSP" - Android Hardware Abstraction Layer (HAL)
"Learning AOSP" - Android Hardware Abstraction Layer (HAL)
Android IPC Mechanism
Android IPC Mechanism
Linux Kernel Overview
Linux Kernel Overview
Audio in linux embedded
Audio in linux embedded
Android Treble: Blessing or Trouble?
Android Treble: Blessing or Trouble?
Deep Dive into the AOSP
Deep Dive into the AOSP
Android's HIDL: Treble in the HAL
Android's HIDL: Treble in the HAL
Destaque
Kernel Programming
Kernel Programming
Anil Kumar Pugalia
Low-level Accesses
Low-level Accesses
Anil Kumar Pugalia
Video Drivers
Video Drivers
Anil Kumar Pugalia
USB Drivers
USB Drivers
Anil Kumar Pugalia
Block Drivers
Block Drivers
Anil Kumar Pugalia
Serial Drivers
Serial Drivers
SysPlay eLearning Academy for You
Platform Drivers
Platform Drivers
SysPlay eLearning Academy for You
Network Drivers
Network Drivers
Anil Kumar Pugalia
PCI Drivers
PCI Drivers
Anil Kumar Pugalia
File System Modules
File System Modules
Anil Kumar Pugalia
Interrupts
Interrupts
Anil Kumar Pugalia
SPI Drivers
SPI Drivers
SysPlay eLearning Academy for You
Introduction to Linux Drivers
Introduction to Linux Drivers
Anil Kumar Pugalia
Character Drivers
Character Drivers
Anil Kumar Pugalia
I2C Drivers
I2C Drivers
SysPlay eLearning Academy for You
Destaque
(15)
Kernel Programming
Kernel Programming
Low-level Accesses
Low-level Accesses
Video Drivers
Video Drivers
USB Drivers
USB Drivers
Block Drivers
Block Drivers
Serial Drivers
Serial Drivers
Platform Drivers
Platform Drivers
Network Drivers
Network Drivers
PCI Drivers
PCI Drivers
File System Modules
File System Modules
Interrupts
Interrupts
SPI Drivers
SPI Drivers
Introduction to Linux Drivers
Introduction to Linux Drivers
Character Drivers
Character Drivers
I2C Drivers
I2C Drivers
Semelhante a Audio Drivers
Embedded I/O Management
Embedded I/O Management
Anil Kumar Pugalia
Mobile Hacking using Linux Drivers
Mobile Hacking using Linux Drivers
Anil Kumar Pugalia
Choosing the right processor
Choosing the right processor
Pantech ProLabs India Pvt Ltd
my Windows 7 info
my Windows 7 info
isky guard
SBC6020 SAM9G20 based Single Board Computer
SBC6020 SAM9G20 based Single Board Computer
yclinda666
International Journal of Computational Engineering Research(IJCER)
International Journal of Computational Engineering Research(IJCER)
ijceronline
Electronics Engineer Portfolio
Electronics Engineer Portfolio
Anupama Sujith
Industry’s performance leading ultra low-power dsp solution
Industry’s performance leading ultra low-power dsp solution
Analog Devices, Inc.
Embedded Android
Embedded Android
晓东 杜
AXONIM Devices presentation
AXONIM Devices presentation
Vitaliy Bozhkov ✔
Nios2 and ip core
Nios2 and ip core
anishgoel
Motherboard and its components
Motherboard and its components
kshirsagarmrk
Arduino
Arduino
Jerin John
Track F- Designing the kiler soc - sonics
Track F- Designing the kiler soc - sonics
chiportal
Asterisk - el futuro es REST
Asterisk - el futuro es REST
OpenDireito
Начало работы с Intel IoT Dev Kit
Начало работы с Intel IoT Dev Kit
Intel® Developer Zone Россия
Resume
Resume
pramod yadav
Craneboard
Craneboard
Mistral Solutions
Embedded Storage Management
Embedded Storage Management
Anil Kumar Pugalia
System_on_Chip_SOC.ppt
System_on_Chip_SOC.ppt
zahixdd
Semelhante a Audio Drivers
(20)
Embedded I/O Management
Embedded I/O Management
Mobile Hacking using Linux Drivers
Mobile Hacking using Linux Drivers
Choosing the right processor
Choosing the right processor
my Windows 7 info
my Windows 7 info
SBC6020 SAM9G20 based Single Board Computer
SBC6020 SAM9G20 based Single Board Computer
International Journal of Computational Engineering Research(IJCER)
International Journal of Computational Engineering Research(IJCER)
Electronics Engineer Portfolio
Electronics Engineer Portfolio
Industry’s performance leading ultra low-power dsp solution
Industry’s performance leading ultra low-power dsp solution
Embedded Android
Embedded Android
AXONIM Devices presentation
AXONIM Devices presentation
Nios2 and ip core
Nios2 and ip core
Motherboard and its components
Motherboard and its components
Arduino
Arduino
Track F- Designing the kiler soc - sonics
Track F- Designing the kiler soc - sonics
Asterisk - el futuro es REST
Asterisk - el futuro es REST
Начало работы с Intel IoT Dev Kit
Начало работы с Intel IoT Dev Kit
Resume
Resume
Craneboard
Craneboard
Embedded Storage Management
Embedded Storage Management
System_on_Chip_SOC.ppt
System_on_Chip_SOC.ppt
Mais de Anil Kumar Pugalia
File System Modules
File System Modules
Anil Kumar Pugalia
Kernel Debugging & Profiling
Kernel Debugging & Profiling
Anil Kumar Pugalia
Processes
Processes
Anil Kumar Pugalia
System Calls
System Calls
Anil Kumar Pugalia
Introduction to Linux
Introduction to Linux
Anil Kumar Pugalia
Embedded C
Embedded C
Anil Kumar Pugalia
Embedded Software Design
Embedded Software Design
Anil Kumar Pugalia
Playing with R L C Circuits
Playing with R L C Circuits
Anil Kumar Pugalia
Shell Scripting
Shell Scripting
Anil Kumar Pugalia
References
References
Anil Kumar Pugalia
Functional Programming with LISP
Functional Programming with LISP
Anil Kumar Pugalia
Power of vi
Power of vi
Anil Kumar Pugalia
gcc and friends
gcc and friends
Anil Kumar Pugalia
"make" system
"make" system
Anil Kumar Pugalia
Hardware Design for Software Hackers
Hardware Design for Software Hackers
Anil Kumar Pugalia
RPM Building
RPM Building
Anil Kumar Pugalia
Linux User Space Debugging & Profiling
Linux User Space Debugging & Profiling
Anil Kumar Pugalia
Linux Network Management
Linux Network Management
Anil Kumar Pugalia
System Calls
System Calls
Anil Kumar Pugalia
Timers
Timers
Anil Kumar Pugalia
Mais de Anil Kumar Pugalia
(20)
File System Modules
File System Modules
Kernel Debugging & Profiling
Kernel Debugging & Profiling
Processes
Processes
System Calls
System Calls
Introduction to Linux
Introduction to Linux
Embedded C
Embedded C
Embedded Software Design
Embedded Software Design
Playing with R L C Circuits
Playing with R L C Circuits
Shell Scripting
Shell Scripting
References
References
Functional Programming with LISP
Functional Programming with LISP
Power of vi
Power of vi
gcc and friends
gcc and friends
"make" system
"make" system
Hardware Design for Software Hackers
Hardware Design for Software Hackers
RPM Building
RPM Building
Linux User Space Debugging & Profiling
Linux User Space Debugging & Profiling
Linux Network Management
Linux Network Management
System Calls
System Calls
Timers
Timers
Último
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
naman860154
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Miguel Araújo
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
soniya singh
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)
Allon Mureinik
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
Results
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
Radu Cotescu
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101
Paola De la Torre
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Alan Dix
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
HampshireHUG
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
Delhi Call girls
🐬 The future of MySQL is Postgres 🐘
🐬 The future of MySQL is Postgres 🐘
RTylerCroy
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
giselly40
How to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
naman860154
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
Delhi Call girls
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
Enterprise Knowledge
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
Anna Loughnan Colquhoun
Google AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAG
Sujit Pal
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
Michael W. Hawkins
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
HostedbyConfluent
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
Delhi Call girls
Último
(20)
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
🐬 The future of MySQL is Postgres 🐘
🐬 The future of MySQL is Postgres 🐘
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
How to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
Google AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAG
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
Audio Drivers
1.
Audio Drivers © 2010
Anil Kumar Pugalia <email@sarika-pugs.com> All Rights Reserved.
2.
What to Expect? Introduction
to Linux' Audio Subsystem Audio Vertical: Sound Core Audio Horizontal Putting them all together: Porting © 2010 Anil Kumar Pugalia <email@sarika-pugs.com> 2 All Rights Reserved.
3.
Audio Subsystem
ALSA conforming Apps User Space OSS conforming Apps (aplay, arecord, mplayer, ...) (rawplay, rawrec, ...) /dev/snd/pcmCXDYz, /proc/asound /dev/dsp, /dev/adsp, /dev/snd/controlCX, /sys/class/sound /dev/mixer, /dev/audio /dev/snd/timer OSS Emulation Layer (snd_pcm_oss, snd_mixer_oss) ALSA (Sound) Core Control Data Audio Codec Driver I2C Audio Controller Driver Kernel Space I2S Hardware Space MIC Audio Controller Audio Codec Speaker © 2010 Anil Kumar Pugalia <email@sarika-pugs.com> 3 All Rights Reserved.
4.
ALSA Sound Card
Interface Header: <linux/sound/core.h> Data Structure: struct snd_card APIs int snd_card_create(int idx, const char *id, struct module *module, int extra_size, struct snd_card **card_ret); int snd_card_register(struct snd_card *card); int snd_card_free(struct snd_card *card); Inverse of both the above © 2010 Anil Kumar Pugalia <email@sarika-pugs.com> 4 All Rights Reserved.
5.
ALSA PCM Interface Header:
<linux/sound/pcm.h> Data Structure struct snd_pcm struct snd_pcm_ops APIs int snd_pcm_new(struct snd_card *card, const char *id, int device, int playback_count, int capture_count, struct snd_pcm **rpcm); void snd_pcm_set_ops(struct snd_pcm * pcm, int direction, struct snd_pcm_ops *ops); int snd_pcm_lib_malloc_pages(struct snd_pcm_substream *substream, size_t size); // Typically used in hw_params int snd_pcm_lib_free_pages(struct snd_pcm_substream *substream); // Typically used in hw_free © 2010 Anil Kumar Pugalia <email@sarika-pugs.com> 5 All Rights Reserved.
6.
struct pcm_ops int (*open)(struct
snd_pcm_substream *substream); int (*close)(struct snd_pcm_substream *substream); int (*ioctl) /* Miscellaneous controls */ (struct snd_pcm_substream * substream, unsigned int cmd, void *arg); int (*hw_params) /* Set h/w params & allocate the buffer */ (struct snd_pcm_substream *substream, struct snd_pcm_hw_params *params); int (*hw_free) /* Free the buffer */ (struct snd_pcm_substream *substream); int (*prepare) /* Set audio parameters for transfer */ (struct snd_pcm_substream *substream); int (*trigger) /* Trigger the transfer */ (struct snd_pcm_substream *substream, int cmd); © 2010 Anil Kumar Pugalia <email@sarika-pugs.com> 6 All Rights Reserved.
7.
ALSA Sound Card
Interface Header: <linux/sound/control.h> Data Structure: struct snd_kcontrol_new APIs int snd_ctl_add(struct snd_card * card, struct snd_kcontrol * kcontrol); int snd_ctl_remove(struct snd_card * card, struct snd_kcontrol * kcontrol); © 2010 Anil Kumar Pugalia <email@sarika-pugs.com> 7 All Rights Reserved.
8.
Porting a Audio
Driver Standard Audio Codec Mostly involves changing pin assignments as per the Board Design New Audio Codec Complete Driver as per the preceeding discussions, need to be implemented © 2010 Anil Kumar Pugalia <email@sarika-pugs.com> 8 All Rights Reserved.
9.
Browse some Audio
Drivers ALSA driver examples: sound/ arm/aaci.c soc/soc-*.c {core, pcm, utils} Codec driver examples: sound/ arm/aaci.c soc/codecs/twl4030.c Browse & Discuss any © 2010 Anil Kumar Pugalia <email@sarika-pugs.com> 9 All Rights Reserved.
10.
What all have
we learnt? Introduction to Linux' Audio Subsystem Audio Vertical ALSA Sound Core & its Programming I/f Audio Horizontal Audio Codec Driver Audio Controller Driver Putting them all together: Porting © 2010 Anil Kumar Pugalia <email@sarika-pugs.com> 10 All Rights Reserved.
11.
Any Queries? © 2010
Anil Kumar Pugalia <email@sarika-pugs.com> 11 All Rights Reserved.