Back to home page

LXR

 
 

    


File indexing completed on 2025-05-11 08:23:52

0001 /* SPDX-License-Identifier: BSD-2-Clause */
0002 
0003 /*
0004  * RTEMS generic MPC5200 BSP
0005  *
0006  * This file declares glue functions to the Freescale BestComm API.
0007  */
0008 
0009 /*
0010  * Copyright (C) 2004, 2005 embedded brains GmbH & Co. KG
0011  *
0012  * Redistribution and use in source and binary forms, with or without
0013  * modification, are permitted provided that the following conditions
0014  * are met:
0015  * 1. Redistributions of source code must retain the above copyright
0016  *    notice, this list of conditions and the following disclaimer.
0017  * 2. Redistributions in binary form must reproduce the above copyright
0018  *    notice, this list of conditions and the following disclaimer in the
0019  *    documentation and/or other materials provided with the distribution.
0020  *
0021  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
0022  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
0023  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
0024  * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
0025  * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
0026  * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
0027  * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
0028  * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
0029  * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
0030  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
0031  * POSSIBILITY OF SUCH DAMAGE.
0032  */
0033 
0034 #ifndef _BESTCOMM_GLUE_H
0035 #define _BESTCOMM_GLUE_H
0036 
0037 #include <rtems/irq-extension.h>
0038 
0039 #ifdef __cplusplus
0040 extern "C" {
0041 #endif /* __cplusplus */
0042 
0043 /*=========================================================================*\
0044 | Function:                                                                 |
0045 \*-------------------------------------------------------------------------*/
0046 void bestcomm_glue_irq_enable
0047 (
0048 /*-------------------------------------------------------------------------*\
0049 | Purpose:                                                                  |
0050 |   enable interrupt for given task number                                  |
0051 +---------------------------------------------------------------------------+
0052 | Input Parameters:                                                         |
0053 \*-------------------------------------------------------------------------*/
0054  int bestcomm_taskno                           /* task number to enable    */
0055  );
0056 /*-------------------------------------------------------------------------*\
0057 | Return Value:                                                             |
0058 |    none                                                                   |
0059 \*=========================================================================*/
0060 
0061 /*=========================================================================*\
0062 | Function:                                                                 |
0063 \*-------------------------------------------------------------------------*/
0064 void bestcomm_glue_irq_disable
0065 (
0066 /*-------------------------------------------------------------------------*\
0067 | Purpose:                                                                  |
0068 |   disable interrupt for given task number                                 |
0069 +---------------------------------------------------------------------------+
0070 | Input Parameters:                                                         |
0071 \*-------------------------------------------------------------------------*/
0072  int bestcomm_taskno                           /* task number to disable   */
0073  );
0074 /*-------------------------------------------------------------------------*\
0075 | Return Value:                                                             |
0076 |    none                                                                   |
0077 \*=========================================================================*/
0078 
0079 /*=========================================================================*\
0080 | Function:                                                                 |
0081 \*-------------------------------------------------------------------------*/
0082 void bestcomm_glue_irq_install
0083 (
0084 /*-------------------------------------------------------------------------*\
0085 | Purpose:                                                                  |
0086 |   install given function as bestcomm interrupt handler                    |
0087 +---------------------------------------------------------------------------+
0088 | Input Parameters:                                                         |
0089 \*-------------------------------------------------------------------------*/
0090  int bestcomm_taskno,                          /* task number for handler  */
0091  rtems_interrupt_handler handler,              /* function to call         */
0092  void *arg
0093  );
0094 /*-------------------------------------------------------------------------*\
0095 | Return Value:                                                             |
0096 |    none                                                                   |
0097 \*=========================================================================*/
0098 
0099 /*=========================================================================*\
0100 | Function:                                                                 |
0101 \*-------------------------------------------------------------------------*/
0102 void bestcomm_glue_init
0103 (
0104 /*-------------------------------------------------------------------------*\
0105 | Purpose:                                                                  |
0106 |   initialize the bestcomm module (if not yet done):                       |
0107 |   - load code                                                             |
0108 |   - initialize registers                                                  |
0109 |   - initialize bus arbiter                                                |
0110 |   - initialize interrupt control                                          |
0111 +---------------------------------------------------------------------------+
0112 | Input Parameters:                                                         |
0113 \*-------------------------------------------------------------------------*/
0114  void /* none */
0115  );
0116 /*-------------------------------------------------------------------------*\
0117 | Return Value:                                                             |
0118 |    none                                                                   |
0119 \*=========================================================================*/
0120 
0121 void *bestcomm_malloc(size_t size);
0122 
0123 void bestcomm_free(void *ptr);
0124 
0125 #ifdef __cplusplus
0126 }
0127 #endif /* __cplusplus */
0128 
0129 #endif /* _BESTCOMM_GLUE_H */