diff options
author | Giovanni Di Sirio <gdisirio@gmail.com> | 2017-10-04 07:54:36 +0000 |
---|---|---|
committer | Giovanni Di Sirio <gdisirio@gmail.com> | 2017-10-04 07:54:36 +0000 |
commit | 6d419676cde900b91f8de3cbfd8664ffa81232d7 (patch) | |
tree | ea5b47de44b0a769088dc23a10b4bf77eb0c36f6 /os/common/oslib/include/chfifo.h | |
parent | bf027add794d08a5dd0fb32948a3fe318fd33b93 (diff) | |
download | ChibiOS-6d419676cde900b91f8de3cbfd8664ffa81232d7.tar.gz ChibiOS-6d419676cde900b91f8de3cbfd8664ffa81232d7.tar.bz2 ChibiOS-6d419676cde900b91f8de3cbfd8664ffa81232d7.zip |
Alignment capability for memory pools.
git-svn-id: svn://svn.code.sf.net/p/chibios/svn/trunk@10759 35acf78f-673a-0410-8e92-d51de3d6d3f4
Diffstat (limited to 'os/common/oslib/include/chfifo.h')
-rw-r--r-- | os/common/oslib/include/chfifo.h | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/os/common/oslib/include/chfifo.h b/os/common/oslib/include/chfifo.h index 9f3c0924b..1df57ef41 100644 --- a/os/common/oslib/include/chfifo.h +++ b/os/common/oslib/include/chfifo.h @@ -110,22 +110,26 @@ extern "C" { /**
* @brief Initializes a FIFO object.
+ * @pre The messages size must be a multiple of the alignment
+ * requirement.
*
* @param[out] ofp pointer to a @p objects_fifo_t structure
* @param[in] objsize size of objects
* @param[in] objn number of objects available
+ * @param[in] objalign required objects alignment
* @param[in] objbuf pointer to the buffer of objects, it must be able
- * to hold @p objn objects of @p objsize size
+ * to hold @p objn objects of @p objsize size with
+ * @p objealign alignment
* @param[in] msgbuf pointer to the buffer of messages, it must be able
* to hold @p objn messages
*
* @init
*/
static inline void chFifoObjectInit(objects_fifo_t *ofp, size_t objsize,
- size_t objn, void *objbuf,
- msg_t *msgbuf) {
+ size_t objn, unsigned objalign,
+ void *objbuf, msg_t *msgbuf) {
- chGuardedPoolObjectInit(&ofp->free, objsize);
+ chGuardedPoolObjectInitAligned(&ofp->free, objsize, objalign);
chGuardedPoolLoadArray(&ofp->free, objbuf, objn);
chMBObjectInit(&ofp->mbx, msgbuf, objn);
}
|