SAM3S8/SD8 Software Package: libraries/libchip_sam3s/include/async.h Source File

SAM3S8/SD8 Software Package 1.2

# async.h

Go to the documentation of this file.

    00001 /* ----------------------------------------------------------------------------
    00002  *         ATMEL Microcontroller Software Support
    00003  * ----------------------------------------------------------------------------
    00004  * Copyright (c) 2009, Atmel Corporation
    00005  *
    00006  * All rights reserved.
    00007  *
    00008  * Redistribution and use in source and binary forms, with or without
    00009  * modification, are permitted provided that the following conditions are met:
    00010  *
    00011  * - Redistributions of source code must retain the above copyright notice,
    00012  * this list of conditions and the disclaimer below.
    00013  *
    00014  * Atmel's name may not be used to endorse or promote products derived from
    00015  * this software without specific prior written permission.
    00016  *
    00017  * DISCLAIMER: THIS SOFTWARE IS PROVIDED BY ATMEL "AS IS" AND ANY EXPRESS OR
    00018  * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
    00019  * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT ARE
    00020  * DISCLAIMED. IN NO EVENT SHALL ATMEL BE LIABLE FOR ANY DIRECT, INDIRECT,
    00021  * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
    00022  * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
    00023  * OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
    00024  * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
    00025  * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
    00026  * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
    00027  * ----------------------------------------------------------------------------
    00028  */
    00029
    00030 /**
    00031  * \file
    00032  *
    00033  * Provide a routine for asynchronous transfer.
    00034  *
    00035  */
    00036
    00037 #ifndef _ASYNC_
    00038 #define _ASYNC_
    00039
    00040
    00041 /*----------------------------------------------------------------------------
    00042  *        Headers
    00043  *----------------------------------------------------------------------------*/
    00044 #include <stdint.h>
    00045
    00046 /*----------------------------------------------------------------------------
    00047  *        Definition
    00048  *----------------------------------------------------------------------------*/
    00049 /** Transfer is still pending.*/
    00050 #define ASYNC_STATUS_PENDING        0xFF
    00051
    00052 #ifdef __cplusplus
    00053  extern "C" {
    00054 #endif
    00055
    00056 /*----------------------------------------------------------------------------
    00057  *        Type
    00058  *----------------------------------------------------------------------------*/
    00059 /** \brief Asynchronous transfer descriptor. */
    00060 typedef struct _Async
    00061 {
    00062     /** Asynchronous transfer status.*/
    00063     volatile uint8_t status ;
    00064     /** Callback function to invoke when transfer completes or fails.*/
    00065     void *callback ;
    00066     /** Driver storage area; do not use.*/
    00067     uint32_t pStorage[4] ;
    00068 } Async ;
    00069
    00070 /*----------------------------------------------------------------------------
    00071  *        Global functions
    00072  *----------------------------------------------------------------------------*/
    00073 extern uint32_t ASYNC_IsFinished( Async* pAsync ) ;
    00074
    00075 #ifdef __cplusplus
    00076 }
    00077 #endif
    00078
    00079 #endif /* #ifndef _ASYNC_ */
    00080

All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Defines