;vector_handler_40146
;--------------------
;Ensures our Channel Handler knows the requested sound period

; R11 - pointer to VARS

.vector_handler_40146
 TEQ     R0, #3				;sample rate change?
 BNE     vector_handler_forward		;NO, pass to OS

 BL      pre_SWI_veneer			;call SWI that follows
 SWI     XSound_SampleRate		;PRM5a-609
 BL      post_SWI_veneer

 STMFD   R13!, {R0-R5}
 ADD     R5, R11, #hypervised_sound_configure - VARS
 MOV     R0, #0				;no. channels
 MOV     R1, #0				;samples per channel
 MOV     R2, #0				;sample period
 MOV     R3, #0				;channel handler
 MOV     R4, #0				;scheduler
 STRB    R3, [R11, #dont_trap_sound_configure - VARS]	;pass Sound_Configure to OS
 SWI     XSound_Configure		;PRM4-18
 STRB    R0, [R11, #dont_trap_sound_configure - VARS]	;handle Sound_Configure
 STR     R2, [R5, #sound_config_struct.period]
 LDMFD   R13!, {R0-R5}

B       exit_SWI_veneer
