diff options
| author | Amaury Pouly <amaury.pouly@gmail.com> | 2012-01-15 18:42:58 +0100 |
|---|---|---|
| committer | Amaury Pouly <amaury.pouly@gmail.com> | 2012-01-15 18:43:32 +0100 |
| commit | 66c3086ae54c71413117f3de3dcfb5f0fe8b541d (patch) | |
| tree | 9f4e213f538244325c36d8154d21be151f54a272 | |
| parent | 1114a2b8ba2da1c489a4faaabfc62c47e03157bb (diff) | |
| download | rockbox-66c3086ae54c71413117f3de3dcfb5f0fe8b541d.zip rockbox-66c3086ae54c71413117f3de3dcfb5f0fe8b541d.tar.gz rockbox-66c3086ae54c71413117f3de3dcfb5f0fe8b541d.tar.bz2 rockbox-66c3086ae54c71413117f3de3dcfb5f0fe8b541d.tar.xz | |
imx233: oops, forgot file
Change-Id: I2c672b51ac24bfcea7ce2b663deef18e02bc4b1f
| -rw-r--r-- | firmware/target/arm/imx233/kernel-imx233.h | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/firmware/target/arm/imx233/kernel-imx233.h b/firmware/target/arm/imx233/kernel-imx233.h new file mode 100644 index 0000000..3c62c15 --- /dev/null +++ b/firmware/target/arm/imx233/kernel-imx233.h @@ -0,0 +1,45 @@ +/*************************************************************************** + * __________ __ ___. + * Open \______ \ ____ ____ | | _\_ |__ _______ ___ + * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ / + * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < < + * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \ + * \/ \/ \/ \/ \/ + * $Id$ + * + * Copyright (C) 2011 by Amaury Pouly + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY + * KIND, either express or implied. + * + ****************************************************************************/ +#ifndef __KERNEL_IMX233__ +#define __KERNEL_IMX233__ + +#include "kernel.h" + +/* The i.MX233 uses in several places virtual channels to multiplex the work. + * To arbiter the use of the different channels, we use a simple channel arbiter + * based on a semaphore to count the number of channels in use, and a bitmask + * protected by a mutex */ +struct channel_arbiter_t +{ + struct semaphore sema; + struct mutex mutex; + unsigned free_bm; + int count; +}; + +void arbiter_init(struct channel_arbiter_t *a, unsigned count); +// doesn't check in use ! +void arbiter_reserve(struct channel_arbiter_t *a, unsigned channel); +/* return channel on success and OBJ_WAIT_TIMEOUT on failure */ +int arbiter_acquire(struct channel_arbiter_t *a, int timeout); +void arbiter_release(struct channel_arbiter_t *a, int channel); + +#endif /* __KERNEL_IMX233__ */
\ No newline at end of file |