Port of TI's CC3100 Websock camera demo. Using FreeRTOS, mbedTLS, also parts of Arducam for cams ov5642 and 0v2640. Can also use MT9D111. Work in progress. Be warned some parts maybe a bit flacky. This is for Seeed Arch max only, for an M3, see the demo for CM3 using the 0v5642 aducam mini.

Dependencies:   mbed

SHA1/library/platform.c

Committer:
dflet
Date:
2015-09-15
Revision:
22:f9b5e0b80bf2
Parent:
0:50cedd586816

File content as of revision 22:f9b5e0b80bf2:

/*
 *  Platform abstraction layer
 *
 *  Copyright (C) 2006-2014, ARM Limited, All Rights Reserved
 *
 *  This file is part of mbed TLS (https://tls.mbed.org)
 *
 *  This program 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 2 of the License, or
 *  (at your option) any later version.
 *
 *  This program 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, write to the Free Software Foundation, Inc.,
 *  51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
 */

#if !defined(POLARSSL_CONFIG_FILE)
#include "polarssl/config.h"
#else
#include POLARSSL_CONFIG_FILE
#endif

#if defined(POLARSSL_PLATFORM_C)

#include "polarssl/platform.h"

#if defined(POLARSSL_PLATFORM_MEMORY)
#if !defined(POLARSSL_PLATFORM_STD_MALLOC)
static void *platform_malloc_uninit( size_t len )
{
    ((void) len);
    return( NULL );
}

#define POLARSSL_PLATFORM_STD_MALLOC   platform_malloc_uninit
#endif /* !POLARSSL_PLATFORM_STD_MALLOC */

#if !defined(POLARSSL_PLATFORM_STD_FREE)
static void platform_free_uninit( void *ptr )
{
    ((void) ptr);
}

#define POLARSSL_PLATFORM_STD_FREE     platform_free_uninit
#endif /* !POLARSSL_PLATFORM_STD_FREE */

void * (*polarssl_malloc)( size_t ) = POLARSSL_PLATFORM_STD_MALLOC;
void (*polarssl_free)( void * )     = POLARSSL_PLATFORM_STD_FREE;

int platform_set_malloc_free( void * (*malloc_func)( size_t ),
                              void (*free_func)( void * ) )
{
    polarssl_malloc = malloc_func;
    polarssl_free = free_func;
    return( 0 );
}
#endif /* POLARSSL_PLATFORM_MEMORY */

#if defined(POLARSSL_PLATFORM_SNPRINTF_ALT)
#if !defined(POLARSSL_PLATFORM_STD_SNPRINTF)
/*
 * Make dummy function to prevent NULL pointer dereferences
 */
static int platform_snprintf_uninit( char * s, size_t n,
                                     const char * format, ... )
{
    ((void) s);
    ((void) n);
    ((void) format);
    return( 0 );
}

#define POLARSSL_PLATFORM_STD_SNPRINTF    platform_snprintf_uninit
#endif /* !POLARSSL_PLATFORM_STD_SNPRINTF */

int (*polarssl_snprintf)( char * s, size_t n,
                          const char * format,
                          ... ) = POLARSSL_PLATFORM_STD_SNPRINTF;

int platform_set_snprintf( int (*snprintf_func)( char * s, size_t n,
                                                 const char * format,
                                                 ... ) )
{
    polarssl_snprintf = snprintf_func;
    return( 0 );
}
#endif /* POLARSSL_PLATFORM_SNPRINTF_ALT */

#if defined(POLARSSL_PLATFORM_PRINTF_ALT)
#if !defined(POLARSSL_PLATFORM_STD_PRINTF)
/*
 * Make dummy function to prevent NULL pointer dereferences
 */
static int platform_printf_uninit( const char *format, ... )
{
    ((void) format);
    return( 0 );
}

#define POLARSSL_PLATFORM_STD_PRINTF    platform_printf_uninit
#endif /* !POLARSSL_PLATFORM_STD_PRINTF */

int (*polarssl_printf)( const char *, ... ) = POLARSSL_PLATFORM_STD_PRINTF;

int platform_set_printf( int (*printf_func)( const char *, ... ) )
{
    polarssl_printf = printf_func;
    return( 0 );
}
#endif /* POLARSSL_PLATFORM_PRINTF_ALT */

#if defined(POLARSSL_PLATFORM_FPRINTF_ALT)
#if !defined(POLARSSL_PLATFORM_STD_FPRINTF)
/*
 * Make dummy function to prevent NULL pointer dereferences
 */
static int platform_fprintf_uninit( FILE *stream, const char *format, ... )
{
    ((void) stream);
    ((void) format);
    return( 0 );
}

#define POLARSSL_PLATFORM_STD_FPRINTF   platform_fprintf_uninit
#endif /* !POLARSSL_PLATFORM_STD_FPRINTF */

int (*polarssl_fprintf)( FILE *, const char *, ... ) =
                                        POLARSSL_PLATFORM_STD_FPRINTF;

int platform_set_fprintf( int (*fprintf_func)( FILE *, const char *, ... ) )
{
    polarssl_fprintf = fprintf_func;
    return( 0 );
}
#endif /* POLARSSL_PLATFORM_FPRINTF_ALT */

#if defined(POLARSSL_PLATFORM_EXIT_ALT)
#if !defined(POLARSSL_PLATFORM_STD_EXIT)
/*
 * Make dummy function to prevent NULL pointer dereferences
 */
static void platform_exit_uninit( int status )
{
    ((void) status);
}

#define POLARSSL_PLATFORM_STD_EXIT   platform_exit_uninit
#endif /* !POLARSSL_PLATFORM_STD_EXIT */

void (*polarssl_exit)( int status ) = POLARSSL_PLATFORM_STD_EXIT;

int platform_set_exit( void (*exit_func)( int status ) )
{
    polarssl_exit = exit_func;
    return( 0 );
}
#endif /* POLARSSL_PLATFORM_EXIT_ALT */

#endif /* POLARSSL_PLATFORM_C */