summaryrefslogtreecommitdiff
path: root/src/vm/clrvarargs.h
blob: 37df3ed6438d4a6f22074e43929f078d2b2b1621 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
// Licensed to the .NET Foundation under one or more agreements.
// The .NET Foundation licenses this file to you under the MIT license.
// See the LICENSE file in the project root for more information.
////////////////////////////////////////////////////////////////////////////////
// This module contains the implementation of the native methods for the
//  varargs class(es)..
//

////////////////////////////////////////////////////////////////////////////////

#ifndef _CLRVARARGS_H_
#define _CLRVARARGS_H_


struct VARARGS
{
    VASigCookie *ArgCookie;
    SigPointer  SigPtr;
    BYTE        *ArgPtr;
    int         RemainingArgs;

    static DWORD CalcVaListSize(VARARGS *data);
    static void MarshalToManagedVaList(va_list va, VARARGS *dataout);
    static void MarshalToUnmanagedVaList(va_list va, DWORD cbVaListSize, const VARARGS *data);
};

#endif // _CLRVARARGS_H_