File frame.cpp

File List > modules > portable > frame.cpp

Go to the source code of this file.

  • #include "coroutine/frame.h"

Classes

Type Name
struct clang_frame_prefix
Clang coroutine frame's prefix.
struct msvc_frame_prefix
MSVC coroutine frame's prefix.

Public Types

Type Name
typedef clang_frame_prefix gcc_frame_prefix
GCC coroutine frame's prefix.
typedef void(__cdecl *)(void *) procedure_t

Public Attributes

Type Name
constexpr auto align_req_v = = sizeof(void*) * 2
constexpr auto aligned_size_v = = (sizeof(P) + align_req_v - 1u) &
~(align_req_v - 1u)

Public Functions

Type Name
void _coro_destroy (void *)
size_t _coro_done (void *)
bool _coro_finished (portable_coro_prefix * _Handle)
size_t _coro_resume (void *)
void destroy_wrapper (void * p)
bool done_wrapper (void * p)
constexpr ptrdiff_t portable_aligned_size (size_t _TypeSize)
Simply calculate aligned size of the type. It is multiplier of 16.
void portable_coro_destroy (portable_coro_prefix * _Handle)
bool portable_coro_done (portable_coro_prefix * _Handle)
portable_coro_prefix * portable_coro_from_promise (void * _PromAddr, ptrdiff_t _PromSize)
Get the frame prefix 'from_promise'.
void * portable_coro_get_promise (portable_coro_prefix * _Handle, ptrdiff_t _PromSize)
'get_promise' from the frame prefix
void portable_coro_resume (portable_coro_prefix * _Handle)
void resume_wrapper (void * p)

Public Types Documentation

typedef gcc_frame_prefix

using gcc_frame_prefix =  clang_frame_prefix;

The layout is unknown

typedef procedure_t

using procedure_t =  void(__cdecl*)(void*);

Public Attributes Documentation

variable align_req_v

constexpr auto align_req_v;

variable aligned_size_v

constexpr auto aligned_size_v;

Public Functions Documentation

function _coro_destroy

void _coro_destroy (
    void *
) 

function _coro_done

size_t _coro_done (
    void *
) 

function _coro_finished

bool _coro_finished (
    portable_coro_prefix * _Handle
) 

function _coro_resume

size_t _coro_resume (
    void *
) 

function destroy_wrapper

template<bool B>
void destroy_wrapper (
    void * p
) 

function done_wrapper

template<bool B>
bool done_wrapper (
    void * p
) 

function portable_aligned_size

constexpr ptrdiff_t portable_aligned_size (
    size_t _TypeSize
) 

function portable_coro_destroy

void portable_coro_destroy (
    portable_coro_prefix * _Handle
) 

function portable_coro_done

bool portable_coro_done (
    portable_coro_prefix * _Handle
) 

function portable_coro_from_promise

portable_coro_prefix * portable_coro_from_promise (
    void * _PromAddr,
    ptrdiff_t _PromSize
) 

function portable_coro_get_promise

void * portable_coro_get_promise (
    portable_coro_prefix * _Handle,
    ptrdiff_t _PromSize
) 

function portable_coro_resume

void portable_coro_resume (
    portable_coro_prefix * _Handle
) 

function resume_wrapper

template<bool B>
void resume_wrapper (
    void * p
) 

The documentation for this class was generated from the following file modules/portable/frame.cpp