test

Dependencies:   mbed Watchdog

Dependents:   STM32-MC_node

Revision:
12:406f75196a12
Parent:
11:32eeb052cda5
Child:
13:0c732e06d675
--- a/mbed/platform/CThunk.h	Wed Aug 26 14:26:27 2020 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,174 +0,0 @@
-
-/** \addtogroup platform */
-/** @{*/
-/**
- * \defgroup platform_CThunk CThunk class
- * @{
- */
-/* General C++ Object Thunking class
- *
- * - allows direct callbacks to non-static C++ class functions
- * - keeps track for the corresponding class instance
- * - supports an optional context parameter for the called function
- * - ideally suited for class object receiving interrupts (NVIC_SetVector)
- *
- * Copyright (c) 2014-2015 ARM Limited
- * SPDX-License-Identifier: Apache-2.0
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-/* General C++ Object Thunking class
- *
- * - allows direct callbacks to non-static C++ class functions
- * - keeps track for the corresponding class instance
- * - supports an optional context parameter for the called function
- * - ideally suited for class object receiving interrupts (NVIC_SetVector)
- */
-
-#ifndef __CTHUNK_H__
-#define __CTHUNK_H__
-
-#include "CThunkBase.h"
-
-/**
- * Class for created a pointer with data bound to it
- *
- * @note Synchronization level: Not protected
- */
-template<class T>
-class CThunk: public CThunkBase {
-public:
-    typedef void (T::*CCallbackSimple)(void);
-    typedef void (T::*CCallback)(void *context);
-
-    inline CThunk(T *instance)
-    {
-        init(instance, NULL, NULL);
-    }
-
-    inline CThunk(T *instance, CCallback callback)
-    {
-        init(instance, callback, NULL);
-    }
-
-    ~CThunk()
-    {
-        cthunk_free(_entry);
-        _entry = NULL;
-    }
-
-    inline CThunk(T *instance, CCallbackSimple callback)
-    {
-        init(instance, (CCallback)callback, NULL);
-    }
-
-    inline CThunk(T &instance, CCallback callback)
-    {
-        init(instance, callback, NULL);
-    }
-
-    inline CThunk(T &instance, CCallbackSimple callback)
-    {
-        init(instance, (CCallback)callback, NULL);
-    }
-
-    inline CThunk(T &instance, CCallback callback, void *context)
-    {
-        init(instance, callback, context);
-    }
-
-    inline void callback(CCallback callback)
-    {
-        _callback = callback;
-    }
-
-    inline void callback(CCallbackSimple callback)
-    {
-        _callback_simple = callback;
-    }
-
-    inline void context(void *context)
-    {
-        _context = context;
-    }
-
-    inline void context(uint32_t context)
-    {
-        _context = (void *)context;
-    }
-
-    inline uint32_t entry(void)
-    {
-        if (_entry == NULL) {
-            _entry = cthunk_alloc(this);
-        }
-        return (uint32_t)_entry;
-    }
-
-    /* get thunk entry point for connecting rhunk to an IRQ table */
-    inline operator CThunkEntry(void)
-    {
-        return (CThunkEntry)entry();
-    }
-
-    /* get thunk entry point for connecting rhunk to an IRQ table */
-    inline operator uint32_t(void)
-    {
-        return entry();
-    }
-
-    /* simple test function */
-    inline void call(void)
-    {
-        (((CThunkEntry)(entry()))());
-    }
-
-private:
-    T *_instance;
-    void *_context;
-    union {
-        CCallbackSimple _callback_simple;
-        CCallback _callback;
-    };
-
-    CThunkEntry _entry;
-
-    static void trampoline(CThunkBase *base)
-    {
-        CThunk<T> *self = static_cast<CThunk<T>*>(base);
-        T *instance = self->_instance;
-        void *context = self->_context;
-        CCallback callback = self->_callback;
-
-        if (instance && callback) {
-            (instance->*callback)(context);
-        }
-    }
-
-    inline void init(T *instance, CCallback callback, void *context)
-    {
-        _instance = instance;
-        _context = context;
-        _callback = callback;
-        _trampoline = &trampoline;
-        _entry = 0;
-    }
-};
-
-/**@}*/
-
-/**@}*/
-
-#endif/*__CTHUNK_H__*/
-