48#define NDR_TABLE_MASK 127
52 return pStubDesc->
Version >= 0x20000;
61 if (
param->attr.IsBasetype)
63 pFormat = &
param->u.type_format_char;
68 pFormat = &pStubMsg->
StubDesc->pFormatTypes[
param->u.type_offset];
76 FIXME(
"format type 0x%x not implemented\n", pFormat[0]);
87 if (
param->attr.IsBasetype)
89 pFormat = &
param->u.type_format_char;
94 pFormat = &pStubMsg->
StubDesc->pFormatTypes[
param->u.type_offset];
99 if (
m)
return m(pStubMsg,
pMemory, pFormat);
102 FIXME(
"format type 0x%x not implemented\n", pFormat[0]);
114 if (
param->attr.IsBasetype)
116 pFormat = &
param->u.type_format_char;
117 if (
param->attr.IsSimpleRef) ppMemory = (
unsigned char **)*ppMemory;
121 pFormat = &pStubMsg->
StubDesc->pFormatTypes[
param->u.type_offset];
122 if (!
param->attr.IsByValue) ppMemory = (
unsigned char **)*ppMemory;
126 if (
m)
return m(pStubMsg, ppMemory, pFormat, fMustAlloc);
129 FIXME(
"format type 0x%x not implemented\n", pFormat[0]);
141 if (
param->attr.IsBasetype)
return;
142 pFormat = &pStubMsg->
StubDesc->pFormatTypes[
param->u.type_offset];
168 if(*(
const WORD*)(pFormat + 4))
169 FIXME(
"Unhandled conformant description\n");
220 FIXME(
"Unhandled type %02x\n", *pFormat);
226 size =
sizeof(
void *);
277#define ARG_FROM_OFFSET(args, offset) ((args) + (offset))
307 TRACE(
"Explicit primitive handle @ %d\n", pDesc->
offset);
335 TRACE(
"Explicit bind context\n");
338 TRACE(
"\tHANDLE_PARAM_IS_VIA_PTR\n");
347 ERR(
"null context handle isn't allowed\n");
354 ERR(
"bad explicit binding handle type (0x%02x)\n", pProcHeader->
handle_type);
359 FIXME(
"FC_BIND_GENERIC\n");
363 TRACE(
"Implicit primitive handle\n");
364 return *pStubMsg->
StubDesc->IMPLICIT_HANDLE_INFO.pPrimitiveHandle;
366 TRACE(
"FC_CALLBACK_HANDLE\n");
376 TRACE(
"Implicit auto handle\n");
377 return *pStubMsg->
StubDesc->IMPLICIT_HANDLE_INFO.pAutoHandle;
379 ERR(
"bad implicit binding handle type (0x%02x)\n", pProcHeader->
handle_type);
422 ERR(
"bad explicit binding handle type (0x%02x)\n", pProcHeader->
handle_type);
427 FIXME(
"FC_BIND_GENERIC\n");
435 ERR(
"bad implicit binding handle type (0x%02x)\n", pProcHeader->
handle_type);
462 return sizeof(
short);
470 return sizeof(
float);
479 FIXME(
"Unhandled basetype %#x.\n",
fc);
485 BOOLEAN fpu_args,
unsigned short number_of_params,
unsigned char *pRetVal )
490 for (
i = 0;
i < number_of_params;
i++)
504 pArg = (
unsigned char *)&
f;
508 TRACE(
"param[%d]: %p type %02x %s\n",
i, pArg,
515 if (*(
unsigned char **)pArg)
524 if (
params[
i].
attr.IsSimpleRef && !*(
unsigned char **)pArg)
534 if (
params[
i].
attr.IsReturn && pRetVal) pArg = pRetVal;
568 return sizeof(
void *);
574 ERR(
"invalid base type 0x%x\n",
fc);
597 unsigned int stack_size,
BOOL object_proc,
601 unsigned int i,
stack_offset = object_proc ?
sizeof(
void *) : 0;
610 FIXME(
"%u args not supported\n",
i );
617 switch (
param->param_direction)
620 args[
i].attr.IsIn = 1;
621 args[
i].attr.IsBasetype = 1;
624 args[
i].attr.IsOut = 1;
625 args[
i].attr.IsReturn = 1;
626 args[
i].attr.IsBasetype = 1;
629 args[
i].attr.IsIn = 1;
630 args[
i].attr.MustFree = 1;
633 args[
i].attr.IsIn = 1;
634 args[
i].attr.IsDontCallFreeInst = 1;
637 args[
i].attr.IsIn = 1;
638 args[
i].attr.IsOut = 1;
639 args[
i].attr.MustFree = 1;
642 args[
i].attr.IsOut = 1;
645 args[
i].attr.IsOut = 1;
646 args[
i].attr.IsReturn = 1;
651 args[
i].u.type_format_char =
param->type_format_char;
682 if (
ctx->ext_flags.HasNewCorrDesc)
688 if (
ctx->Oif_flags.HasPipes)
711 unsigned short procedure_number,
unsigned short stack_size,
unsigned int number_of_params,
766 FIXME(
"pipes not supported yet\n");
792 TRACE(
"INITOUT\n" );
794 number_of_params, (
unsigned char *)&
retval);
798 TRACE(
"CALCSIZE\n" );
800 number_of_params, (
unsigned char *)&
retval);
803 TRACE(
"GETBUFFER\n" );
807 FIXME(
"pipes not supported yet\n");
812 FIXME(
"using auto handle - call NdrNsGetBuffer when it gets implemented\n");
818 TRACE(
"MARSHAL\n" );
820 number_of_params, (
unsigned char *)&
retval);
823 TRACE(
"SENDRECEIVE\n" );
828 FIXME(
"pipes not supported yet\n");
833 FIXME(
"using auto handle - call NdrNsSendReceive when it gets implemented\n");
844 TRACE(
"UNMARSHAL\n" );
846 number_of_params, (
unsigned char *)&
retval);
859 unsigned short procedure_number;
861 unsigned short stack_size;
863 unsigned int number_of_params;
875 TRACE(
"pStubDesc %p, pFormat %p, ...\n", pStubDesc, pFormat);
883 procedure_number = header_rpc->
proc_num;
889 procedure_number = pProcHeader->
proc_num;
892 TRACE(
"stack size: 0x%x\n", stack_size);
893 TRACE(
"proc num: %d\n", procedure_number);
897 pHandleFormat = pFormat;
919 pFormat += pExtensions->
Size;
926 old_args,
sizeof(old_args), &number_of_params );
934 stack_top, fpu_args, &stubMsg, procedure_number, stack_size,
943 number_of_params, (
unsigned char *)&RetVal);
953 stack_top, fpu_args, &stubMsg, procedure_number, stack_size,
965 comm_status = (
ULONG *)&RetVal;
972 fault_status = (
ULONG *)&RetVal;
986 stack_top, fpu_args, &stubMsg, procedure_number, stack_size,
990 TRACE(
"RetVal = 0x%Ix\n", RetVal);
996 "stp x29, x30, [sp, #-0x40]!\n\t"
997 ".seh_save_fplr_x 0x40\n\t"
998 ".seh_endprologue\n\t"
999 "stp x2, x3, [sp, #0x10]\n\t"
1000 "stp x4, x5, [sp, #0x20]\n\t"
1001 "stp x6, x7, [sp, #0x30]\n\t"
1002 "add x2, sp, #0x10\n\t"
1004 "bl NdrpClientCall2\n\t"
1005 "ldp x29, x30, [sp], #0x40\n\t"
1007#elif defined(__arm64ec__)
1010 asm(
".seh_proc \"#NdrClientCall2\"\n\t"
1011 "stp x29, x30, [sp, #-0x20]!\n\t"
1012 ".seh_save_fplr_x 0x20\n\t"
1013 ".seh_endprologue\n\t"
1014 "stp x2, x3, [x4, #-0x10]!\n\t"
1017 "bl \"#NdrpClientCall2\"\n\t"
1018 "ldp x29, x30, [sp], #0x20\n\t"
1022#elif defined(__arm__)
1025 ".seh_save_regs {r2,r3}\n\t"
1027 ".seh_save_regs_w {fp,lr}\n\t"
1028 ".seh_endprologue\n\t"
1029 "add r2, sp, #8\n\t"
1031 "bl NdrpClientCall2\n\t"
1035#elif defined(__x86_64__)
1037 "subq $0x28,%rsp\n\t"
1040 __ASM_CFI(
".cfi_adjust_cfa_offset 0x28\n\t")
1041 "movq %r8,0x40(%rsp)\n\t"
1042 "movq %r9,0x48(%rsp)\n\t"
1043 "leaq 0x40(%rsp),%r8\n\t"
1046 "addq $0x28,%rsp\n\t"
1047 __ASM_CFI(
".cfi_adjust_cfa_offset -0x28\n\t")
1049#elif defined(__i386__)
1052 __ASM_CFI(
".cfi_adjust_cfa_offset 4\n\t")
1054 "movl %esp,%ebp\n\t"
1055 __ASM_CFI(
".cfi_def_cfa_register %ebp\n\t")
1067#if defined(__aarch64__) || defined(__arm__)
1070 static const unsigned int nb_gpregs =
sizeof(
void *);
1073 unsigned char *
data;
1074 void **
stack, **
args = regs + nb_gpregs;
1076 if (
ext->Size <
sizeof(*
ext) + 3)
return NULL;
1077 data = (
unsigned char *)(
ext + 1);
1084 if (
data[
i] < 0x80)
continue;
1087 else if (
data[
i] == 0x9d)
1089 if (
i + 3 >=
size)
break;
1095 else if (
data[
i] < 0xa0)
continue;
1108 void **
this =
args[0];
1109 const void **vtbl = *
this;
1121 if (
hdr->Oi2Flags.HasExtensions)
1124 if (
ext->Size >
sizeof(*
ext))
1127 unsigned short fpu_mask = *(
unsigned short *)(
ext + 1);
1128 for (
int i = 0; i < 4; i++, fpu_mask >>= 2)
if (fpu_mask & 3)
args[
i] = fpu_regs[
i];
1144 unsigned short number_of_params)
1150 for (
i = 0;
i < number_of_params;
i++)
1153 const unsigned char *pTypeFormat = &pStubMsg->
StubDesc->pFormatTypes[
params[
i].u.type_offset];
1155 TRACE(
"param[%d]: %p -> %p type %02x %s\n",
i,
1156 pArg, *(
unsigned char **)pArg,
1175 free(*(
void **)pArg);
1180 if (*pTypeFormat !=
FC_BIND_CONTEXT) pStubMsg->pfnFree(*(
void **)pArg);
1218 TRACE(
"\tmemory addr (after): %p -> %p\n", pArg, *(
unsigned char **)pArg);
1236 DWORD * pdwStubPhase)
1243 unsigned char *
args;
1245 unsigned short stack_size;
1247 unsigned int number_of_params;
1261 unsigned short BindingHandleOffset = (
USHORT)-1;
1263 TRACE(
"pThis %p, pChannel %p, pRpcMsg %p, pdwStubPhase %p\n", pThis, pChannel, pRpcMsg, pdwStubPhase);
1301 FIXME(
"Set RPCSS memory allocation routines\n");
1304 TRACE(
"version 0x%lx, Oi_flags %02x, stack size %x, format %p\n",
1337 ERR(
"bad explicit binding handle type (0x%02x)\n", pProcHeader->
handle_type);
1347 ERR(
"bad implicit binding handle type (0x%02x)\n", pProcHeader->
handle_type);
1357 if (BindingHandleOffset != (
USHORT)-1)
1374 pFormat += extensions->
Size;
1379 FIXME(
"pipes not supported yet\n");
1397 NdrCorrCache,
sizeof(NdrCorrCache), &number_of_params );
1407 TRACE(
"phase = %d\n", phase);
1431 TRACE(
"stub implementation returned 0x%Ix\n",
retval);
1435 TRACE(
"void stub implementation\n");
1463 retval_ptr =
stub_do_args(&stubMsg, pFormat, phase, number_of_params);
1466 ERR(
"shouldn't reach here. phase %d\n", phase);
1539 unsigned short procedure_number;
1549 if (pStubDesc->
Version > 0x60001)
1551 FIXME(
"Incompatible stub description version: 0x%lx\n", pStubDesc->
Version);
1566 procedure_number = header_rpc->
proc_num;
1576 TRACE(
"proc num: %d\n", procedure_number);
1584 ERR(
"objects not supported\n");
1624 ext_flags = pExtensions->
Flags2;
1625 pFormat += pExtensions->
Size;
1650 FIXME(
"pipes not supported yet\n");
1659 if (ext_flags.
Unused & 0x2)
1674 TRACE(
"CALCSIZE\n" );
1678 TRACE(
"GETBUFFER\n" );
1681 FIXME(
"pipes not supported yet\n");
1688 FIXME(
"using auto handle - call NdrNsGetBuffer when it gets implemented\n");
1699 TRACE(
"MARSHAL\n" );
1708 FIXME(
"pipes not supported yet\n");
1715 FIXME(
"using auto handle - call NdrNsSend when it gets implemented\n");
1733 TRACE(
"pStubDesc %p, pFormat %p, ...\n", pStubDesc, pFormat);
1782 TRACE(
"RECEIVE\n" );
1787 NdrNsReceive(&stubMsg, stubMsg.Buffer, pStubDesc->IMPLICIT_HANDLE_INFO.pAutoHandle);
1789 FIXME(
"using auto handle - call NdrNsReceive when it gets implemented\n");
1810 TRACE(
"UNMARSHAL\n" );
1838 "stp x29, x30, [sp, #-0x40]!\n\t"
1839 ".seh_save_fplr_x 0x40\n\t"
1840 ".seh_endprologue\n\t"
1841 "stp x2, x3, [sp, #0x10]\n\t"
1842 "stp x4, x5, [sp, #0x20]\n\t"
1843 "stp x6, x7, [sp, #0x30]\n\t"
1844 "add x2, sp, #0x10\n\t"
1846 "bl ndr_async_client_call\n\t"
1847 "ldp x29, x30, [sp], #0x40\n\t"
1849#elif defined(__arm64ec__)
1852 asm(
".seh_proc \"#NdrAsyncClientCall\"\n\t"
1853 "stp x29, x30, [sp, #-0x20]!\n\t"
1854 ".seh_save_fplr_x 0x20\n\t"
1855 ".seh_endprologue\n\t"
1856 "stp x2, x3, [x4, #-0x10]!\n\t"
1859 "bl \"#ndr_async_client_call\"\n\t"
1860 "ldp x29, x30, [sp], #0x20\n\t"
1864#elif defined(__arm__)
1867 ".seh_save_regs {r2,r3}\n\t"
1869 ".seh_save_regs_w {fp,lr}\n\t"
1870 ".seh_endprologue\n\t"
1871 "add r2, sp, #8\n\t"
1873 "bl ndr_async_client_call\n\t"
1877#elif defined(__x86_64__)
1879 "subq $0x28,%rsp\n\t"
1882 __ASM_CFI(
".cfi_adjust_cfa_offset 0x28\n\t")
1883 "movq %r8,0x40(%rsp)\n\t"
1884 "movq %r9,0x48(%rsp)\n\t"
1885 "leaq 0x40(%rsp),%r8\n\t"
1887 "call " __ASM_NAME(
"ndr_async_client_call")
"\n\t"
1888 "addq $0x28,%rsp\n\t"
1889 __ASM_CFI(
".cfi_adjust_cfa_offset -0x28\n\t")
1891#elif defined(__i386__)
1894 __ASM_CFI(
".cfi_adjust_cfa_offset 4\n\t")
1896 "movl %esp,%ebp\n\t"
1897 __ASM_CFI(
".cfi_def_cfa_register %ebp\n\t")
1902 "call " __ASM_NAME(
"ndr_async_client_call")
"\n\t"
1911 DWORD * pdwStubPhase)
1913 FIXME(
"unimplemented, expect crash!\n");
1923 unsigned char *
args;
1931 TRACE(
"%p\n", pRpcMsg);
1995 ERR(
"objects not supported\n");
2011 FIXME(
"Set RPCSS memory allocation routines\n");
2030 *(
void **)
args = pAsync;
2046 ext_flags = extensions->
Flags2;
2047 pFormat += extensions->
Size;
2052 FIXME(
"pipes not supported yet\n");
2061 if (ext_flags.
Unused & 0x2)
2081 TRACE(
"UNMARSHAL\n");
2089 TRACE(
"CALLSERVER\n");
2116 TRACE(
"stub implementation returned 0x%Ix\n", *(
LONG_PTR *)Reply);
2120 TRACE(
"void stub implementation\n");
2124 TRACE(
"phase = %d\n", phase);
2130 ERR(
"objects not supported\n");
2154 ERR(
"shouldn't reach here. phase %d\n", phase);
2160 if (ext_flags.HasNewCorrDesc)
2166 if (Oif_flags.HasPipes)
2185 {{0x8a885d04, 0x1ceb, 0x11c9, {0x9f, 0xe8, 0x08, 0x00, 0x2b, 0x10, 0x48, 0x60}}, {2, 0}};
2194 for (
i = 0;
i <
info->nCount; ++
i)
2200 id->SyntaxVersion.MajorVersion,
id->SyntaxVersion.MinorVersion);
2204 FIXME(
"Complex return types are not supported.\n");
2211 FIXME(
"NDR64 syntax is not supported.\n");
2217 "stp x29, x30, [sp, #-0x40]!\n\t"
2218 ".seh_save_fplr_x 0x40\n\t"
2219 ".seh_endprologue\n\t"
2220 "str x3, [sp, #0x18]\n\t"
2221 "stp x4, x5, [sp, #0x20]\n\t"
2222 "stp x6, x7, [sp, #0x30]\n\t"
2223 "add x3, sp, #0x18\n\t"
2224 "bl ndr64_client_call\n\t"
2225 "ldp x29, x30, [sp], #0x40\n\t"
2227#elif defined(__arm64ec__)
2230 asm(
".seh_proc \"#NdrClientCall3\"\n\t"
2231 "stp x29, x30, [sp, #-0x20]!\n\t"
2232 ".seh_save_fplr_x 0x20\n\t"
2233 ".seh_endprologue\n\t"
2234 "str x3, [x4, #-0x8]!\n\t"
2236 "bl \"#ndr64_client_call\"\n\t"
2237 "ldp x29, x30, [sp], #0x20\n\t"
2241#elif defined(__x86_64__)
2243 "subq $0x28,%rsp\n\t"
2246 __ASM_CFI(
".cfi_adjust_cfa_offset 0x28\n\t")
2247 "movq %r9,0x48(%rsp)\n\t"
2248 "leaq 0x48(%rsp),%r9\n\t"
2249 "call " __ASM_NAME(
"ndr64_client_call")
"\n\t"
2250 "addq $0x28,%rsp\n\t"
2251 __ASM_CFI(
".cfi_adjust_cfa_offset -0x28\n\t")
2260 TRACE(
"info %p, proc %lu, retval %p, stack_top %p, fpu_stack %p\n",
2263 for (
i = 0;
i <
info->nCount; ++
i)
2269 id->SyntaxVersion.MajorVersion,
id->SyntaxVersion.MinorVersion);
2273 FIXME(
"Complex return types are not supported.\n");
2280 FIXME(
"NDR64 syntax is not supported.\n");
2286 "stp x29, x30, [sp, #-0x40]!\n\t"
2287 ".seh_save_fplr_x 0x40\n\t"
2288 ".seh_endprologue\n\t"
2289 "str x3, [sp, #0x18]\n\t"
2290 "stp x4, x5, [sp, #0x20]\n\t"
2291 "stp x6, x7, [sp, #0x30]\n\t"
2292 "add x3, sp, #0x18\n\t"
2294 "bl ndr64_async_client_call\n\t"
2295 "ldp x29, x30, [sp], #0x40\n\t"
2297#elif defined(__arm64ec__)
2300 asm(
".seh_proc \"#Ndr64AsyncClientCall\"\n\t"
2301 "stp x29, x30, [sp, #-0x20]!\n\t"
2302 ".seh_save_fplr_x 0x20\n\t"
2303 ".seh_endprologue\n\t"
2304 "str x3, [x4, #-0x8]!\n\t"
2307 "bl \"#ndr64_async_client_call\"\n\t"
2308 "ldp x29, x30, [sp], #0x20\n\t"
2312#elif defined(__x86_64__)
2314 "subq $0x28,%rsp\n\t"
2317 __ASM_CFI(
".cfi_adjust_cfa_offset 0x28\n\t")
2318 "movq %r9,0x48(%rsp)\n\t"
2319 "leaq 0x48(%rsp),%r9\n\t"
2320 "movq $0,0x20(%rsp)\n\t"
2321 "call " __ASM_NAME(
"ndr64_async_client_call")
"\n\t"
2322 "addq $0x28,%rsp\n\t"
2323 __ASM_CFI(
".cfi_adjust_cfa_offset -0x28\n\t")
int memcmp(void *Buffer1, void *Buffer2, ACPI_SIZE Count)
ACPI_SIZE strlen(const char *String)
#define WINE_DEFAULT_DEBUG_CHANNEL(t)
void WINAPI NdrProxyGetBuffer(void *This, PMIDL_STUB_MESSAGE pStubMsg)
void WINAPI NdrProxyInitialize(void *This, PRPC_MESSAGE pRpcMsg, PMIDL_STUB_MESSAGE pStubMsg, PMIDL_STUB_DESC pStubDescriptor, unsigned int ProcNum)
void WINAPI NdrProxyFreeBuffer(void *This, PMIDL_STUB_MESSAGE pStubMsg)
void WINAPI NdrProxySendReceive(void *This, PMIDL_STUB_MESSAGE pStubMsg)
HRESULT WINAPI NdrProxyErrorHandler(DWORD dwExceptionCode)
const MIDL_SERVER_INFO * CStdStubBuffer_GetServerInfo(IRpcStubBuffer *iface)
const char * wine_dbg_sprintf(const char *format,...)
static const WCHAR *const ext[]
static void cleanup(void)
void WINAPI NdrStubGetBuffer(LPRPCSTUBBUFFER iface, LPRPCCHANNELBUFFER pRpcChannelBuffer, PMIDL_STUB_MESSAGE pStubMsg)
void WINAPI NdrStubInitialize(PRPC_MESSAGE pRpcMsg, PMIDL_STUB_MESSAGE pStubMsg, PMIDL_STUB_DESC pStubDescriptor, LPRPCCHANNELBUFFER pRpcChannelBuffer)
void WINAPI NdrCorrelationFree(PMIDL_STUB_MESSAGE pStubMsg)
NDR_SCONTEXT WINAPI NdrContextHandleInitialize(PMIDL_STUB_MESSAGE pStubMsg, PFORMAT_STRING pFormat)
void WINAPI NdrClearOutParameters(PMIDL_STUB_MESSAGE pStubMsg, PFORMAT_STRING pFormat, void *ArgAddr)
ULONG ComplexStructSize(PMIDL_STUB_MESSAGE pStubMsg, PFORMAT_STRING pFormat)
const NDR_BUFFERSIZE NdrBufferSizer[NDR_TABLE_SIZE]
const NDR_MARSHALL NdrMarshaller[NDR_TABLE_SIZE]
void *WINAPI NdrAllocate(MIDL_STUB_MESSAGE *pStubMsg, SIZE_T len)
void WINAPI NdrCorrelationInitialize(PMIDL_STUB_MESSAGE pStubMsg, void *pMemory, ULONG CacheSize, ULONG Flags)
const NDR_UNMARSHALL NdrUnmarshaller[NDR_TABLE_SIZE]
void WINAPI NdrConvert(PMIDL_STUB_MESSAGE pStubMsg, PFORMAT_STRING pFormat)
const NDR_FREE NdrFreer[NDR_TABLE_SIZE]
RPC_STATUS WINAPI RpcAsyncInitializeHandle(PRPC_ASYNC_STATE pAsync, unsigned int Size)
unsigned int(__cdecl typeof(jpeg_read_scanlines))(struct jpeg_decompress_struct *
unsigned short(__cdecl typeof(TIFFCurrentDirectory))(struct tiff *)
static jsval_t stack_top(script_ctx_t *ctx)
GLuint GLuint GLsizei count
GLint GLenum GLsizei GLsizei GLsizei GLint GLsizei const GLvoid * data
GLenum const GLfloat * params
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble * u
#define memcpy(s1, s2, n)
D3D11_SHADER_VARIABLE_DESC desc
static const char mbstate_t *static wchar_t const char mbstate_t *static const wchar_t int *static double
static float(__cdecl *square_half_float)(float x
#define __ASM_GLOBAL_FUNC(name, code)
void WINAPI NdrClientInitializeNew(PRPC_MESSAGE pRpcMessage, PMIDL_STUB_MESSAGE pStubMsg, PMIDL_STUB_DESC pStubDesc, unsigned int ProcNum)
unsigned char *WINAPI NdrServerInitializeNew(PRPC_MESSAGE pRpcMsg, PMIDL_STUB_MESSAGE pStubMsg, PMIDL_STUB_DESC pStubDesc)
RPC_STATUS RPC_ENTRY NdrMapCommAndFaultStatus(PMIDL_STUB_MESSAGE pStubMsg, ULONG *pCommStatus, ULONG *pFaultStatus, RPC_STATUS Status)
void WINAPI NdrFreeBuffer(PMIDL_STUB_MESSAGE pStubMsg)
unsigned char *WINAPI NdrGetBuffer(PMIDL_STUB_MESSAGE stubmsg, ULONG buflen, RPC_BINDING_HANDLE handle)
unsigned char *WINAPI NdrSendReceive(PMIDL_STUB_MESSAGE stubmsg, unsigned char *buffer)
RPC_BINDING_HANDLE WINAPI NDRCContextBinding(NDR_CCONTEXT CContext)
void WINAPI NdrFullPointerXlatFree(PFULL_PTR_XLAT_TABLES pXlatTables)
PFULL_PTR_XLAT_TABLES WINAPI NdrFullPointerXlatInit(ULONG NumberOfPointers, XLAT_SIDE XlatSide)
void(WINAPI * NDR_BUFFERSIZE)(PMIDL_STUB_MESSAGE, unsigned char *, PFORMAT_STRING)
static PFORMAT_STRING ComputeConformance(PMIDL_STUB_MESSAGE pStubMsg, unsigned char *pMemory, PFORMAT_STRING pFormat, ULONG def)
unsigned char *(WINAPI * NDR_UNMARSHALL)(PMIDL_STUB_MESSAGE, unsigned char **, PFORMAT_STRING, unsigned char)
static PFORMAT_STRING ComputeVariance(PMIDL_STUB_MESSAGE pStubMsg, unsigned char *pMemory, PFORMAT_STRING pFormat, ULONG def)
unsigned char *(WINAPI * NDR_MARSHALL)(PMIDL_STUB_MESSAGE, unsigned char *, PFORMAT_STRING)
void(WINAPI * NDR_FREE)(PMIDL_STUB_MESSAGE, unsigned char *, PFORMAT_STRING)
static unsigned char * call_unmarshaller(PMIDL_STUB_MESSAGE pStubMsg, unsigned char **ppMemory, const NDR_PARAM_OIF *param, unsigned char fMustAlloc)
static BOOL param_needs_alloc(PARAM_ATTRIBUTES attr)
#define ARG_FROM_OFFSET(args, offset)
LONG_PTR CDECL ndr64_async_client_call(MIDL_STUBLESS_PROXY_INFO *info, ULONG proc, void *retval, void **stack_top, void **fpu_stack)
static void call_freer(PMIDL_STUB_MESSAGE pStubMsg, unsigned char *pMemory, const NDR_PARAM_OIF *param)
static BOOL is_oicf_stubdesc(const PMIDL_STUB_DESC pStubDesc)
static DWORD calc_arg_size(MIDL_STUB_MESSAGE *pStubMsg, PFORMAT_STRING pFormat)
static BOOL is_by_value(PFORMAT_STRING format)
void WINAPI NdrServerCall(PRPC_MESSAGE msg)
LONG WINAPI NdrStubCall(struct IRpcStubBuffer *This, struct IRpcChannelBuffer *channel, PRPC_MESSAGE msg, DWORD *phase)
LONG_PTR __cdecl call_server_func(SERVER_ROUTINE func, unsigned char *args, unsigned int stack_size, const NDR_PROC_PARTIAL_OIF_HEADER *header)
static handle_t client_get_handle(const MIDL_STUB_MESSAGE *pStubMsg, const NDR_PROC_HEADER *pProcHeader, const PFORMAT_STRING pFormat)
static LONG_PTR ndr_client_call(const MIDL_STUB_DESC *stub_desc, const PFORMAT_STRING format, const PFORMAT_STRING handle_format, void **stack_top, BOOLEAN fpu_args, MIDL_STUB_MESSAGE *stub_msg, unsigned short procedure_number, unsigned short stack_size, unsigned int number_of_params, INTERPRETER_OPT_FLAGS Oif_flags, INTERPRETER_OPT_FLAGS2 ext_flags, const NDR_PROC_HEADER *proc_header)
LONG_PTR WINAPI ndr_stubless_client_call(unsigned int index, void **args, void **fpu_regs)
RPC_STATUS NdrpCompleteAsyncClientCall(RPC_ASYNC_STATE *pAsync, void *Reply)
static const char * debugstr_INTERPRETER_OPT_FLAGS(INTERPRETER_OPT_FLAGS Oi2Flags)
void client_do_args(PMIDL_STUB_MESSAGE pStubMsg, PFORMAT_STRING pFormat, enum stubless_phase phase, BOOLEAN fpu_args, unsigned short number_of_params, unsigned char *pRetVal)
LONG WINAPI NdrStubCall2(struct IRpcStubBuffer *pThis, struct IRpcChannelBuffer *pChannel, PRPC_MESSAGE pRpcMsg, DWORD *pdwStubPhase)
static void client_free_handle(PMIDL_STUB_MESSAGE pStubMsg, const NDR_PROC_HEADER *pProcHeader, PFORMAT_STRING pFormat, handle_t hBinding)
void WINAPI NdrServerCallAll(PRPC_MESSAGE msg)
LONG_PTR CDECL ndr64_client_call(MIDL_STUBLESS_PROXY_INFO *info, ULONG proc, void *retval, void **stack_top)
RPCRTAPI LONG RPC_ENTRY NdrAsyncStubCall(struct IRpcStubBuffer *pThis, struct IRpcChannelBuffer *pChannel, PRPC_MESSAGE pRpcMsg, DWORD *pdwStubPhase)
static unsigned char * call_marshaller(PMIDL_STUB_MESSAGE pStubMsg, unsigned char *pMemory, const NDR_PARAM_OIF *param)
void WINAPI NdrRpcSmSetClientToOsf(PMIDL_STUB_MESSAGE pMessage)
LONG_PTR WINAPI NdrpClientCall2(PMIDL_STUB_DESC pStubDesc, PFORMAT_STRING pFormat, void **stack_top, BOOLEAN fpu_args)
static const RPC_SYNTAX_IDENTIFIER ndr_syntax_id
static LONG_PTR * stub_do_args(MIDL_STUB_MESSAGE *pStubMsg, PFORMAT_STRING pFormat, enum stubless_phase phase, unsigned short number_of_params)
static unsigned int type_stack_size(unsigned char fc)
static const char * debugstr_PROC_PF(PARAM_ATTRIBUTES param_attributes)
static BOOL param_is_out_basetype(PARAM_ATTRIBUTES attr)
LONG_PTR CDECL ndr_async_client_call(PMIDL_STUB_DESC pStubDesc, PFORMAT_STRING pFormat, void **stack_top)
static void CALLBACK ndr_client_call_finally(BOOL normal, void *arg)
static void do_ndr_async_client_call(const MIDL_STUB_DESC *pStubDesc, PFORMAT_STRING pFormat, void **stack_top)
void WINAPI NdrServerCall2(PRPC_MESSAGE pRpcMsg)
static size_t get_handle_desc_size(const NDR_PROC_HEADER *proc_header, PFORMAT_STRING format)
PFORMAT_STRING convert_old_args(PMIDL_STUB_MESSAGE pStubMsg, PFORMAT_STRING pFormat, unsigned int stack_size, BOOL object_proc, void *buffer, unsigned int size, unsigned int *count)
RPC_STATUS NdrpCompleteAsyncServerCall(RPC_ASYNC_STATE *pAsync, void *Reply)
static void call_buffer_sizer(PMIDL_STUB_MESSAGE pStubMsg, unsigned char *pMemory, const NDR_PARAM_OIF *param)
static size_t basetype_arg_size(unsigned char fc)
void RPC_ENTRY NdrAsyncServerCall(PRPC_MESSAGE pRpcMsg)
struct _NDR_PROC_HEADER_RPC NDR_PROC_HEADER_RPC
struct _NDR_EHD_CONTEXT NDR_EHD_CONTEXT
struct _NDR_PARAM_OI_OTHER NDR_PARAM_OI_OTHER
struct _NDR_PARAM_OI_BASETYPE NDR_PARAM_OI_BASETYPE
struct _NDR_EHD_PRIMITIVE NDR_EHD_PRIMITIVE
struct _NDR_PROC_HEADER NDR_PROC_HEADER
struct _NDR_EHD_GENERIC NDR_EHD_GENERIC
struct _NDR_PROC_PARTIAL_OIF_HEADER NDR_PROC_PARTIAL_OIF_HEADER
#define Oi_HAS_COMM_OR_FAULT
#define Oi_RPCSS_ALLOC_USED
#define NDR_CONTEXT_HANDLE_CANNOT_BE_NULL
@ FC_RETURN_PARAM_BASETYPE
@ FC_IN_PARAM_NO_FREE_INST
@ FC_NON_ENCAPSULATED_UNION
#define FC_SIMPLE_POINTER
#define HANDLE_PARAM_IS_VIA_PTR
RPC_STATUS WINAPI I_RpcGetBuffer(PRPC_MESSAGE pMsg)
RPC_STATUS WINAPI I_RpcSend(PRPC_MESSAGE pMsg)
RPC_STATUS WINAPI I_RpcAsyncSetHandle(PRPC_MESSAGE pMsg, PRPC_ASYNC_STATE pAsync)
RPC_STATUS WINAPI I_RpcReceive(PRPC_MESSAGE pMsg)
RPC_BINDING_HANDLE WINAPI I_RpcGetCurrentCallHandle(void)
struct _RPC_MESSAGE * PRPC_MESSAGE
CLIENT_CALL_RETURN RPC_VAR_ENTRY Ndr64AsyncClientCall(MIDL_STUBLESS_PROXY_INFO *info, ULONG proc, void *retval,...)
RPCRTAPI unsigned char *RPC_ENTRY NdrNsGetBuffer(PMIDL_STUB_MESSAGE pStubMsg, ULONG BufferLength, RPC_BINDING_HANDLE Handle)
#define NDR_LOCAL_DATA_REPRESENTATION
struct _MIDL_STUB_MESSAGE * PMIDL_STUB_MESSAGE
RPCRTAPI void RPC_ENTRY NdrRpcSmClientFree(void *NodeToFree)
CLIENT_CALL_RETURN RPC_VAR_ENTRY NdrClientCall2(PMIDL_STUB_DESC pStubDescriptor, PFORMAT_STRING pFormat,...)
CLIENT_CALL_RETURN RPC_VAR_ENTRY NdrAsyncClientCall(PMIDL_STUB_DESC pStubDescriptor, PFORMAT_STRING pFormat,...)
RPCRTAPI unsigned char *RPC_ENTRY NdrNsSendReceive(PMIDL_STUB_MESSAGE pStubMsg, unsigned char *pBufferEnd, RPC_BINDING_HANDLE *pAutoHandle)
RPCRTAPI void *RPC_ENTRY NdrRpcSmClientAllocate(SIZE_T Size) __WINE_ALLOC_SIZE(1) __WINE_DEALLOC(NdrRpcSmClientFree) __WINE_MALLOC
RPCRTAPI void RPC_ENTRY NdrRpcSsEnableAllocate(PMIDL_STUB_MESSAGE pMessage)
const unsigned char * PFORMAT_STRING
#define NDRSContextValue(hContext)
CLIENT_CALL_RETURN RPC_VAR_ENTRY NdrClientCall3(MIDL_STUBLESS_PROXY_INFO *info, ULONG proc, void *retval,...)
LONG(__RPC_API * SERVER_ROUTINE)(void)
void WINAPI I_RpcFree(void *Object)
void *WINAPI I_RpcAllocate(unsigned int Size)
void DECLSPEC_NORETURN WINAPI RpcRaiseException(RPC_STATUS exception)
unsigned char HasNewCorrDesc
unsigned char ServerMustSize
unsigned char HasAsyncHandle
unsigned char ClientMustSize
unsigned char HasExtensions
unsigned char HasAsyncUuid
unsigned short IsSimpleRef
unsigned short ServerAllocSize
unsigned short SaveForAsyncFinish
unsigned short IsBasetype
unsigned short IsDontCallFreeInst
GENERIC_BINDING_ROUTINE pfnBind
GENERIC_UNBIND_ROUTINE pfnUnbind
const unsigned short * FmtStringOffset
const STUB_THUNK * ThunkTable
const SERVER_ROUTINE * DispatchTable
PMIDL_STUB_DESC pStubDesc
PFORMAT_STRING ProcString
PFORMAT_STRING ProcFormatString
const unsigned short * FormatStringOffset
PMIDL_STUB_DESC pStubDesc
union _MIDL_STUB_DESC::@3416 IMPLICIT_HANDLE_INFO
const COMM_FAULT_OFFSETS * CommFaultOffsets
unsigned char CorrDespIncrement
struct _FULL_PTR_XLAT_TABLES * FullPtrXlatTables
unsigned char * BufferEnd
const struct _MIDL_STUB_DESC * StubDesc
unsigned char * BufferStart
unsigned int fHasNewCorrDesc
PFORMAT_STRING ProcString
RPC_SYNTAX_IDENTIFIER TransferSyntax
const unsigned short * FmtStringOffset
unsigned char flag_and_size
unsigned char binding_routine_pair_index
RPC_NOTIFICATION_TYPES NotificationType
unsigned int BufferLength
void * RpcInterfaceInformation
RPC_BINDING_HANDLE Handle
RPC_BINDING_HANDLE hBinding
MIDL_STUB_MESSAGE * pStubMsg
unsigned short stack_size
PFORMAT_STRING pHandleFormat
PFORMAT_STRING pParamFormat
ULONG_PTR NdrCorrCache[256]
unsigned int number_of_params
const NDR_PROC_HEADER * pProcHeader
MIDL_STUB_MESSAGE * stub_msg
INTERPRETER_OPT_FLAGS2 ext_flags
PFORMAT_STRING handle_format
const NDR_PROC_HEADER * proc_header
INTERPRETER_OPT_FLAGS Oif_flags
static unsigned stack_offset(compile_ctx_t *ctx)
#define __ASM_STDCALL(name, args)
#define __FINALLY_CTX(func, ctx)
#define RPC_X_SS_IN_NULL_CONTEXT
#define RPC_X_BAD_STUB_DATA
#define RPC_S_INVALID_ASYNC_HANDLE
#define RPC_X_WRONG_STUB_VERSION
#define RPC_X_NULL_REF_POINTER
#define RPC_S_INTERNAL_ERROR