<TODO>
<TODO>
<TODO>
xsystem_xs1_locks.h XS1 U-series multi-channel ADC interface xsystem_xs1_locks.xc XS1 U-series multi-channel ADC implementation
#ifndef XSYSTEM_XS1_LOCKS__INCLUDED #define XSYSTEM_XS1_LOCKS__INCLUDED #include "xsystem_types.h" typedef unsigned int xlock_t; xlock_t xsystem_lock_alloc ( void ); void xsystem_lock_acquire( xlock_t lock ); void xsystem_lock_release( xlock_t lock ); void xsystem_lock_free ( xlock_t lock ); #endif
#include "xsystem_xs1_locks.h" xlock_t xsystem_lock_alloc ( void ) { unsigned int x; asm("getr %0, 5" : "=r"(x) ); return x;} void xsystem_lock_acquire( xlock_t lock ) { asm("in %0, res[%0]" :: "r"(lock),"r"(lock)); } void xsystem_lock_release( xlock_t lock ) { asm("out res[%0], %0" :: "r"(lock),"r"(lock));} void xsystem_lock_free ( xlock_t lock ) { asm("freer res[%0]" :: "r"(lock),"r"(lock)); }