]> begriffs open source - cmsis-freertos/blob - Demo/CORTEX_A5_SAMA5D2x_Xplained_IAR/AtmelFiles/utils/async.h
Update README.md - branch main is now the base branch
[cmsis-freertos] / Demo / CORTEX_A5_SAMA5D2x_Xplained_IAR / AtmelFiles / utils / async.h
1 /* ----------------------------------------------------------------------------
2  *         SAM Software Package License
3  * ----------------------------------------------------------------------------
4  * Copyright (c) 2015, Atmel Corporation
5  *
6  * All rights reserved.
7  *
8  * Redistribution and use in source and binary forms, with or without
9  * modification, are permitted provided that the following conditions are met:
10  *
11  * - Redistributions of source code must retain the above copyright notice,
12  * this list of conditions and the disclaimer below.
13  *
14  * Atmel's name may not be used to endorse or promote products derived from
15  * this software without specific prior written permission.
16  *
17  * DISCLAIMER: THIS SOFTWARE IS PROVIDED BY ATMEL "AS IS" AND ANY EXPRESS OR
18  * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
19  * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT ARE
20  * DISCLAIMED. IN NO EVENT SHALL ATMEL BE LIABLE FOR ANY DIRECT, INDIRECT,
21  * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
22  * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
23  * OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
24  * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
25  * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
26  * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
27  * ----------------------------------------------------------------------------
28  */
29
30 /**
31  * \file
32  *
33  * Provide a routine for asynchronous transfer.
34  *
35  */
36
37 #ifndef _ASYNC_
38 #define _ASYNC_
39
40 /*----------------------------------------------------------------------------
41  *        Headers
42  *----------------------------------------------------------------------------*/
43 #include <stdint.h>
44
45 /*----------------------------------------------------------------------------
46  *        Definition
47  *----------------------------------------------------------------------------*/
48 /** Transfer is still pending.*/
49 #define ASYNC_STATUS_PENDING        0xFF
50
51 #ifdef __cplusplus
52 extern "C" {
53 #endif
54
55 /*----------------------------------------------------------------------------
56  *        Type
57  *----------------------------------------------------------------------------*/
58 /** \brief Asynchronous transfer descriptor. */
59 struct _async {
60         /** Asynchronous transfer status.*/
61         volatile uint32_t status;
62         /** Callback function to invoke when transfer completes or fails.*/
63         void *callback;
64         /** Driver storage area; do not use.*/
65         uint8_t pStorage[12];
66 } ;
67
68 /*----------------------------------------------------------------------------
69  *        Global functions
70  *----------------------------------------------------------------------------*/
71 extern uint32_t async_is_finished(struct _async * pAsync);
72
73 #ifdef __cplusplus
74 }
75 #endif
76 #endif                          /* #ifndef _ASYNC_ */