From bd02ccd121484b8c3658340d9db8b1a8357fa7a1 Mon Sep 17 00:00:00 2001 From: gdisirio Date: Sun, 9 Sep 2012 06:57:50 +0000 Subject: [PATCH] git-svn-id: svn://svn.code.sf.net/p/chibios/svn/trunk@4639 35acf78f-673a-0410-8e92-d51de3d6d3f4 --- os/various/mail.c | 96 ----------------------------------------------- os/various/mail.h | 59 ----------------------------- readme.txt | 2 - 3 files changed, 157 deletions(-) delete mode 100644 os/various/mail.c delete mode 100644 os/various/mail.h diff --git a/os/various/mail.c b/os/various/mail.c deleted file mode 100644 index 5702b0be8..000000000 --- a/os/various/mail.c +++ /dev/null @@ -1,96 +0,0 @@ -/* - ChibiOS/RT - Copyright (C) 2006,2007,2008,2009,2010, - 2011,2012 Giovanni Di Sirio. - - This file is part of ChibiOS/RT. - - ChibiOS/RT 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 3 of the License, or - (at your option) any later version. - - ChibiOS/RT is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see . -*/ - -/** - * @file mail.c - * @brief Threads mail code. - * - * @addtogroup mail - * @{ - */ - -#include "ch.h" -#include "mail.h" - -/** - * @brief Initializes a Mail Pool. - * @note The number of the mail objects in the mail pool should be at - * least 2+size(mailbox), this considering one writer and - * one reader, add one element for each extra reader or writer in - * order to avoid waiting on the mail pool. A smaller number of - * elements can be specified if waiting on the pool is acceptable. - * - * @param[out] mlp pointer to a @p MailPool structure - * @param[in] size the size of the mail objects to be placed in the pool - * @param[in] p pointer to the mail objects array first element - * @param[in] n number of elements in the mail objects array - * - * @init - */ -void mailInit(MailPool *mlp, size_t size, void *p, size_t n) { - - chPoolInit(&mlp->pool, size, NULL); - chPoolLoadArray(&mlp->pool, p, n); - chSemInit(&mlp->sem, (cnt_t)n); -} - -/** - * @brief Allocates a mail object from a mail pool. - * @pre The mail pool must be already been initialized. - * - * @param[in] mlp pointer to a @p MailPool structure - * @param[in] time the number of ticks before the operation timeouts, - * the following special values are allowed: - * - @a TIME_IMMEDIATE immediate timeout. - * - @a TIME_INFINITE no timeout. - * . - * @return The mail object. - * @retval NULL timeout expired. - * - * @api - */ -void *mailCreate(MailPool *mlp, systime_t time) { - msg_t msg; - void *mailp; - - msg = chSemWaitTimeout(&mlp->sem, time); - if (msg != RDY_OK) - return NULL; - mailp = chPoolAlloc(&mlp->pool); - chDbgAssert(mailp != NULL, "mailCreate(), #1", "empty pool"); - return mailp; -} - -/** - * @brief Releases a mail object into a mail pool. - * @pre The mail pool must be already been initialized. - * - * @param[in] mlp pointer to a @p MailPool structure - * @param[in] mailp the pointer to the mail object to be released - * - * @api - */ -void mailDelete(MailPool *mlp, void *mailp) { - - chPoolFree(&mlp->pool, mailp); - chSemSignal(&mlp->sem); -} - -/** @} */ diff --git a/os/various/mail.h b/os/various/mail.h deleted file mode 100644 index 1786494e6..000000000 --- a/os/various/mail.h +++ /dev/null @@ -1,59 +0,0 @@ -/* - ChibiOS/RT - Copyright (C) 2006,2007,2008,2009,2010, - 2011,2012 Giovanni Di Sirio. - - This file is part of ChibiOS/RT. - - ChibiOS/RT 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 3 of the License, or - (at your option) any later version. - - ChibiOS/RT is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see . -*/ - -/** - * @file mail.h - * @brief Threads mail macros and structures. - * - * @addtogroup mail - * @{ - */ - -#ifndef _MAIL_H_ -#define _MAIL_H_ - -/* - * Module dependencies check. - */ -#if !CH_USE_SEMAPHORES || !CH_USE_MEMPOOLS -#error "Mail Pools require CH_USE_SEMAPHORES and CH_USE_MEMPOOLS" -#endif - -/** - * @brief Mail Pool descriptor. - */ -typedef struct { - MemoryPool pool; /**< @brief Available mail objects. */ - Semaphore sem; /**< @brief Semaphore guard. */ -} MailPool; - -#ifdef __cplusplus -extern "C" { -#endif - void mailInit(MailPool *mlp, size_t size, void *p, size_t n); - void *mailCreate(MailPool *mlp, systime_t time); - void mailDelete(MailPool *mlp, void *mailp); -#ifdef __cplusplus -} -#endif - -#endif /* _MAIL_H_ */ - -/** @} */ diff --git a/readme.txt b/readme.txt index 5f21cb314..b1f52494d 100644 --- a/readme.txt +++ b/readme.txt @@ -242,8 +242,6 @@ order to make priority organization configurable, the default is to assign all the available priority bits to preemption priority with no sub-priorities. -- NEW: Added support for pools of generic "mail" objects under ./os/various, - mail objects are meant to be used together with mailboxes. - NEW: Added a new function chPoolLoadArray() to the Memory Pools subsystem, it allows to load an entire array element's into a pool with a single operation.