orignal
7 years ago
30 changed files with 45988 additions and 0 deletions
@ -0,0 +1,17 @@
@@ -0,0 +1,17 @@
|
||||
CC = gcc |
||||
|
||||
LIBS = -Lcompat/lib -lcurl -lOpenCL -L/mingw32/lib -lwldap32 -lws2_32 -ljansson -lpthread |
||||
LDFLAGS = -s -Wl,-rpath,/usr/local/lib -Wl,-Bstatic -static-libgcc |
||||
CFLAGS = -Os -DCURL_STATICLIB -DWIN32 -DWIN32_LEAN_AND_MEAN -Wno-deprecated-declarations -Wformat -Icompat/include |
||||
OBJS = miner.o ocl.o util.o streebog.o |
||||
|
||||
all: gostoclminer |
||||
|
||||
%.o: %.c $(HEADERS) |
||||
$(CC) -c $(CFLAGS) -o $@ $< |
||||
|
||||
gostoclminer: $(OBJS) |
||||
$(CC) $(LDFLAGS) -o $@ $^ $(LIBS) |
||||
|
||||
clean: |
||||
$(RM) *.o gostoclminer |
@ -0,0 +1,126 @@
@@ -0,0 +1,126 @@
|
||||
/**********************************************************************************
|
||||
* Copyright (c) 2008-2012 The Khronos Group Inc. |
||||
* |
||||
* Permission is hereby granted, free of charge, to any person obtaining a |
||||
* copy of this software and/or associated documentation files (the |
||||
* "Materials"), to deal in the Materials without restriction, including |
||||
* without limitation the rights to use, copy, modify, merge, publish, |
||||
* distribute, sublicense, and/or sell copies of the Materials, and to |
||||
* permit persons to whom the Materials are furnished to do so, subject to |
||||
* the following conditions: |
||||
* |
||||
* The above copyright notice and this permission notice shall be included |
||||
* in all copies or substantial portions of the Materials. |
||||
* |
||||
* THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, |
||||
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF |
||||
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. |
||||
* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY |
||||
* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, |
||||
* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE |
||||
* MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. |
||||
**********************************************************************************/ |
||||
|
||||
/* $Revision: 11708 $ on $Date: 2010-06-13 23:36:24 -0700 (Sun, 13 Jun 2010) $ */ |
||||
|
||||
#ifndef __OPENCL_CL_D3D10_H |
||||
#define __OPENCL_CL_D3D10_H |
||||
|
||||
#include <d3d10.h> |
||||
#include <CL/cl.h> |
||||
#include <CL/cl_platform.h> |
||||
|
||||
#ifdef __cplusplus |
||||
extern "C" { |
||||
#endif |
||||
|
||||
/******************************************************************************
|
||||
* cl_khr_d3d10_sharing */ |
||||
#define cl_khr_d3d10_sharing 1 |
||||
|
||||
typedef cl_uint cl_d3d10_device_source_khr; |
||||
typedef cl_uint cl_d3d10_device_set_khr; |
||||
|
||||
/******************************************************************************/ |
||||
|
||||
// Error Codes
|
||||
#define CL_INVALID_D3D10_DEVICE_KHR -1002 |
||||
#define CL_INVALID_D3D10_RESOURCE_KHR -1003 |
||||
#define CL_D3D10_RESOURCE_ALREADY_ACQUIRED_KHR -1004 |
||||
#define CL_D3D10_RESOURCE_NOT_ACQUIRED_KHR -1005 |
||||
|
||||
// cl_d3d10_device_source_nv
|
||||
#define CL_D3D10_DEVICE_KHR 0x4010 |
||||
#define CL_D3D10_DXGI_ADAPTER_KHR 0x4011 |
||||
|
||||
// cl_d3d10_device_set_nv
|
||||
#define CL_PREFERRED_DEVICES_FOR_D3D10_KHR 0x4012 |
||||
#define CL_ALL_DEVICES_FOR_D3D10_KHR 0x4013 |
||||
|
||||
// cl_context_info
|
||||
#define CL_CONTEXT_D3D10_DEVICE_KHR 0x4014 |
||||
#define CL_CONTEXT_D3D10_PREFER_SHARED_RESOURCES_KHR 0x402C |
||||
|
||||
// cl_mem_info
|
||||
#define CL_MEM_D3D10_RESOURCE_KHR 0x4015 |
||||
|
||||
// cl_image_info
|
||||
#define CL_IMAGE_D3D10_SUBRESOURCE_KHR 0x4016 |
||||
|
||||
// cl_command_type
|
||||
#define CL_COMMAND_ACQUIRE_D3D10_OBJECTS_KHR 0x4017 |
||||
#define CL_COMMAND_RELEASE_D3D10_OBJECTS_KHR 0x4018 |
||||
|
||||
/******************************************************************************/ |
||||
|
||||
typedef CL_API_ENTRY cl_int (CL_API_CALL *clGetDeviceIDsFromD3D10KHR_fn)( |
||||
cl_platform_id platform, |
||||
cl_d3d10_device_source_khr d3d_device_source, |
||||
void * d3d_object, |
||||
cl_d3d10_device_set_khr d3d_device_set, |
||||
cl_uint num_entries, |
||||
cl_device_id * devices, |
||||
cl_uint * num_devices) CL_API_SUFFIX__VERSION_1_0; |
||||
|
||||
typedef CL_API_ENTRY cl_mem (CL_API_CALL *clCreateFromD3D10BufferKHR_fn)( |
||||
cl_context context, |
||||
cl_mem_flags flags, |
||||
ID3D10Buffer * resource, |
||||
cl_int * errcode_ret) CL_API_SUFFIX__VERSION_1_0; |
||||
|
||||
typedef CL_API_ENTRY cl_mem (CL_API_CALL *clCreateFromD3D10Texture2DKHR_fn)( |
||||
cl_context context, |
||||
cl_mem_flags flags, |
||||
ID3D10Texture2D * resource, |
||||
UINT subresource, |
||||
cl_int * errcode_ret) CL_API_SUFFIX__VERSION_1_0; |
||||
|
||||
typedef CL_API_ENTRY cl_mem (CL_API_CALL *clCreateFromD3D10Texture3DKHR_fn)( |
||||
cl_context context, |
||||
cl_mem_flags flags, |
||||
ID3D10Texture3D * resource, |
||||
UINT subresource, |
||||
cl_int * errcode_ret) CL_API_SUFFIX__VERSION_1_0; |
||||
|
||||
typedef CL_API_ENTRY cl_int (CL_API_CALL *clEnqueueAcquireD3D10ObjectsKHR_fn)( |
||||
cl_command_queue command_queue, |
||||
cl_uint num_objects, |
||||
const cl_mem * mem_objects, |
||||
cl_uint num_events_in_wait_list, |
||||
const cl_event * event_wait_list, |
||||
cl_event * event) CL_API_SUFFIX__VERSION_1_0; |
||||
|
||||
typedef CL_API_ENTRY cl_int (CL_API_CALL *clEnqueueReleaseD3D10ObjectsKHR_fn)( |
||||
cl_command_queue command_queue, |
||||
cl_uint num_objects, |
||||
const cl_mem * mem_objects, |
||||
cl_uint num_events_in_wait_list, |
||||
const cl_event * event_wait_list, |
||||
cl_event * event) CL_API_SUFFIX__VERSION_1_0; |
||||
|
||||
#ifdef __cplusplus |
||||
} |
||||
#endif |
||||
|
||||
#endif // __OPENCL_CL_D3D10_H
|
||||
|
@ -0,0 +1,126 @@
@@ -0,0 +1,126 @@
|
||||
/**********************************************************************************
|
||||
* Copyright (c) 2008-2012 The Khronos Group Inc. |
||||
* |
||||
* Permission is hereby granted, free of charge, to any person obtaining a |
||||
* copy of this software and/or associated documentation files (the |
||||
* "Materials"), to deal in the Materials without restriction, including |
||||
* without limitation the rights to use, copy, modify, merge, publish, |
||||
* distribute, sublicense, and/or sell copies of the Materials, and to |
||||
* permit persons to whom the Materials are furnished to do so, subject to |
||||
* the following conditions: |
||||
* |
||||
* The above copyright notice and this permission notice shall be included |
||||
* in all copies or substantial portions of the Materials. |
||||
* |
||||
* THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, |
||||
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF |
||||
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. |
||||
* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY |
||||
* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, |
||||
* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE |
||||
* MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. |
||||
**********************************************************************************/ |
||||
|
||||
/* $Revision: 11708 $ on $Date: 2010-06-13 23:36:24 -0700 (Sun, 13 Jun 2010) $ */ |
||||
|
||||
#ifndef __OPENCL_CL_D3D11_H |
||||
#define __OPENCL_CL_D3D11_H |
||||
|
||||
#include <d3d11.h> |
||||
#include <CL/cl.h> |
||||
#include <CL/cl_platform.h> |
||||
|
||||
#ifdef __cplusplus |
||||
extern "C" { |
||||
#endif |
||||
|
||||
/******************************************************************************
|
||||
* cl_khr_d3d11_sharing */ |
||||
#define cl_khr_d3d11_sharing 1 |
||||
|
||||
typedef cl_uint cl_d3d11_device_source_khr; |
||||
typedef cl_uint cl_d3d11_device_set_khr; |
||||
|
||||
/******************************************************************************/ |
||||
|
||||
// Error Codes
|
||||
#define CL_INVALID_D3D11_DEVICE_KHR -1006 |
||||
#define CL_INVALID_D3D11_RESOURCE_KHR -1007 |
||||
#define CL_D3D11_RESOURCE_ALREADY_ACQUIRED_KHR -1008 |
||||
#define CL_D3D11_RESOURCE_NOT_ACQUIRED_KHR -1009 |
||||
|
||||
// cl_d3d11_device_source
|
||||
#define CL_D3D11_DEVICE_KHR 0x4019 |
||||
#define CL_D3D11_DXGI_ADAPTER_KHR 0x401A |
||||
|
||||
// cl_d3d11_device_set
|
||||
#define CL_PREFERRED_DEVICES_FOR_D3D11_KHR 0x401B |
||||
#define CL_ALL_DEVICES_FOR_D3D11_KHR 0x401C |
||||
|
||||
// cl_context_info
|
||||
#define CL_CONTEXT_D3D11_DEVICE_KHR 0x401D |
||||
#define CL_CONTEXT_D3D11_PREFER_SHARED_RESOURCES_KHR 0x402D |
||||
|
||||
// cl_mem_info
|
||||
#define CL_MEM_D3D11_RESOURCE_KHR 0x401E |
||||
|
||||
// cl_image_info
|
||||
#define CL_IMAGE_D3D11_SUBRESOURCE_KHR 0x401F |
||||
|
||||
// cl_command_type
|
||||
#define CL_COMMAND_ACQUIRE_D3D11_OBJECTS_KHR 0x4020 |
||||
#define CL_COMMAND_RELEASE_D3D11_OBJECTS_KHR 0x4021 |
||||
|
||||
/******************************************************************************/ |
||||
|
||||
typedef CL_API_ENTRY cl_int (CL_API_CALL *clGetDeviceIDsFromD3D11KHR_fn)( |
||||
cl_platform_id platform, |
||||
cl_d3d11_device_source_khr d3d_device_source, |
||||
void * d3d_object, |
||||
cl_d3d11_device_set_khr d3d_device_set, |
||||
cl_uint num_entries, |
||||
cl_device_id * devices, |
||||
cl_uint * num_devices) CL_API_SUFFIX__VERSION_1_2; |
||||
|
||||
typedef CL_API_ENTRY cl_mem (CL_API_CALL *clCreateFromD3D11BufferKHR_fn)( |
||||
cl_context context, |
||||
cl_mem_flags flags, |
||||
ID3D11Buffer * resource, |
||||
cl_int * errcode_ret) CL_API_SUFFIX__VERSION_1_2; |
||||
|
||||
typedef CL_API_ENTRY cl_mem (CL_API_CALL *clCreateFromD3D11Texture2DKHR_fn)( |
||||
cl_context context, |
||||
cl_mem_flags flags, |
||||
ID3D11Texture2D * resource, |
||||
UINT subresource, |
||||
cl_int * errcode_ret) CL_API_SUFFIX__VERSION_1_2; |
||||
|
||||
typedef CL_API_ENTRY cl_mem (CL_API_CALL *clCreateFromD3D11Texture3DKHR_fn)( |
||||
cl_context context, |
||||
cl_mem_flags flags, |
||||
ID3D11Texture3D * resource, |
||||
UINT subresource, |
||||
cl_int * errcode_ret) CL_API_SUFFIX__VERSION_1_2; |
||||
|
||||
typedef CL_API_ENTRY cl_int (CL_API_CALL *clEnqueueAcquireD3D11ObjectsKHR_fn)( |
||||
cl_command_queue command_queue, |
||||
cl_uint num_objects, |
||||
const cl_mem * mem_objects, |
||||
cl_uint num_events_in_wait_list, |
||||
const cl_event * event_wait_list, |
||||
cl_event * event) CL_API_SUFFIX__VERSION_1_2; |
||||
|
||||
typedef CL_API_ENTRY cl_int (CL_API_CALL *clEnqueueReleaseD3D11ObjectsKHR_fn)( |
||||
cl_command_queue command_queue, |
||||
cl_uint num_objects, |
||||
const cl_mem * mem_objects, |
||||
cl_uint num_events_in_wait_list, |
||||
const cl_event * event_wait_list, |
||||
cl_event * event) CL_API_SUFFIX__VERSION_1_2; |
||||
|
||||
#ifdef __cplusplus |
||||
} |
||||
#endif |
||||
|
||||
#endif // __OPENCL_CL_D3D11_H
|
||||
|
@ -0,0 +1,127 @@
@@ -0,0 +1,127 @@
|
||||
/**********************************************************************************
|
||||
* Copyright (c) 2008-2012 The Khronos Group Inc. |
||||
* |
||||
* Permission is hereby granted, free of charge, to any person obtaining a |
||||
* copy of this software and/or associated documentation files (the |
||||
* "Materials"), to deal in the Materials without restriction, including |
||||
* without limitation the rights to use, copy, modify, merge, publish, |
||||
* distribute, sublicense, and/or sell copies of the Materials, and to |
||||
* permit persons to whom the Materials are furnished to do so, subject to |
||||
* the following conditions: |
||||
* |
||||
* The above copyright notice and this permission notice shall be included |
||||
* in all copies or substantial portions of the Materials. |
||||
* |
||||
* THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, |
||||
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF |
||||
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. |
||||
* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY |
||||
* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, |
||||
* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE |
||||
* MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. |
||||
**********************************************************************************/ |
||||
|
||||
/* $Revision: 11708 $ on $Date: 2010-06-13 23:36:24 -0700 (Sun, 13 Jun 2010) $ */ |
||||
|
||||
#ifndef __OPENCL_CL_DX9_MEDIA_SHARING_H |
||||
#define __OPENCL_CL_DX9_MEDIA_SHARING_H |
||||
|
||||
#include <CL/cl.h> |
||||
#include <CL/cl_platform.h> |
||||
|
||||
#ifdef __cplusplus |
||||
extern "C" { |
||||
#endif |
||||
|
||||
/******************************************************************************
|
||||
/* cl_khr_dx9_media_sharing */ |
||||
#define cl_khr_dx9_media_sharing 1 |
||||
|
||||
typedef cl_uint cl_dx9_media_adapter_type_khr; |
||||
typedef cl_uint cl_dx9_media_adapter_set_khr; |
||||
|
||||
#if defined(_WIN32) |
||||
#include <d3d9.h> |
||||
typedef struct _cl_dx9_surface_info_khr |
||||
{ |
||||
IDirect3DSurface9 *resource; |
||||
HANDLE shared_handle; |
||||
} cl_dx9_surface_info_khr; |
||||
#endif |
||||
|
||||
|
||||
/******************************************************************************/ |
||||
|
||||
// Error Codes
|
||||
#define CL_INVALID_DX9_MEDIA_ADAPTER_KHR -1010 |
||||
#define CL_INVALID_DX9_MEDIA_SURFACE_KHR -1011 |
||||
#define CL_DX9_MEDIA_SURFACE_ALREADY_ACQUIRED_KHR -1012 |
||||
#define CL_DX9_MEDIA_SURFACE_NOT_ACQUIRED_KHR -1013 |
||||
|
||||
// cl_media_adapter_type_khr
|
||||
#define CL_ADAPTER_D3D9_KHR 0x2020 |
||||
#define CL_ADAPTER_D3D9EX_KHR 0x2021 |
||||
#define CL_ADAPTER_DXVA_KHR 0x2022 |
||||
|
||||
// cl_media_adapter_set_khr
|
||||
#define CL_PREFERRED_DEVICES_FOR_DX9_MEDIA_ADAPTER_KHR 0x2023 |
||||
#define CL_ALL_DEVICES_FOR_DX9_MEDIA_ADAPTER_KHR 0x2024 |
||||
|
||||
// cl_context_info
|
||||
#define CL_CONTEXT_ADAPTER_D3D9_KHR 0x2025 |
||||
#define CL_CONTEXT_ADAPTER_D3D9EX_KHR 0x2026 |
||||
#define CL_CONTEXT_ADAPTER_DXVA_KHR 0x2027 |
||||
|
||||
// cl_mem_info
|
||||
#define CL_MEM_DX9_MEDIA_ADAPTER_TYPE_KHR 0x2028 |
||||
#define CL_MEM_DX9_MEDIA_SURFACE_INFO_KHR 0x2029 |
||||
|
||||
// cl_image_info
|
||||
#define CL_IMAGE_DX9_MEDIA_PLANE_KHR 0x202A |
||||
|
||||
// cl_command_type
|
||||
#define CL_COMMAND_ACQUIRE_DX9_MEDIA_SURFACES_KHR 0x202B |
||||
#define CL_COMMAND_RELEASE_DX9_MEDIA_SURFACES_KHR 0x202C |
||||
|
||||
/******************************************************************************/ |
||||
|
||||
typedef CL_API_ENTRY cl_int (CL_API_CALL *clGetDeviceIDsFromDX9MediaAdapterKHR_fn)( |
||||
cl_platform_id platform, |
||||
cl_uint num_media_adapters, |
||||
cl_dx9_media_adapter_type_khr * media_adapter_type, |
||||
void * media_adapters, |
||||
cl_dx9_media_adapter_set_khr media_adapter_set, |
||||
cl_uint num_entries, |
||||
cl_device_id * devices, |
||||
cl_uint * num_devices) CL_API_SUFFIX__VERSION_1_2; |
||||
|
||||
typedef CL_API_ENTRY cl_mem (CL_API_CALL *clCreateFromDX9MediaSurfaceKHR_fn)( |
||||
cl_context context, |
||||
cl_mem_flags flags, |
||||
cl_dx9_media_adapter_type_khr adapter_type, |
||||
void * surface_info, |
||||
cl_uint plane, |
||||
cl_int * errcode_ret) CL_API_SUFFIX__VERSION_1_2; |
||||
|
||||
typedef CL_API_ENTRY cl_int (CL_API_CALL *clEnqueueAcquireDX9MediaSurfacesKHR_fn)( |
||||
cl_command_queue command_queue, |
||||
cl_uint num_objects, |
||||
const cl_mem * mem_objects, |
||||
cl_uint num_events_in_wait_list, |
||||
const cl_event * event_wait_list, |
||||
cl_event * event) CL_API_SUFFIX__VERSION_1_2; |
||||
|
||||
typedef CL_API_ENTRY cl_int (CL_API_CALL *clEnqueueReleaseDX9MediaSurfacesKHR_fn)( |
||||
cl_command_queue command_queue, |
||||
cl_uint num_objects, |
||||
const cl_mem * mem_objects, |
||||
cl_uint num_events_in_wait_list, |
||||
const cl_event * event_wait_list, |
||||
cl_event * event) CL_API_SUFFIX__VERSION_1_2; |
||||
|
||||
#ifdef __cplusplus |
||||
} |
||||
#endif |
||||
|
||||
#endif // __OPENCL_CL_DX9_MEDIA_SHARING_H
|
||||
|
@ -0,0 +1,533 @@
@@ -0,0 +1,533 @@
|
||||
/*******************************************************************************
|
||||
* Copyright (c) 2008-2013 The Khronos Group Inc. |
||||
* |
||||
* Permission is hereby granted, free of charge, to any person obtaining a |
||||
* copy of this software and/or associated documentation files (the |
||||
* "Materials"), to deal in the Materials without restriction, including |
||||
* without limitation the rights to use, copy, modify, merge, publish, |
||||
* distribute, sublicense, and/or sell copies of the Materials, and to |
||||
* permit persons to whom the Materials are furnished to do so, subject to |
||||
* the following conditions: |
||||
* |
||||
* The above copyright notice and this permission notice shall be included |
||||
* in all copies or substantial portions of the Materials. |
||||
* |
||||
* THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, |
||||
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF |
||||
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. |
||||
* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY |
||||
* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, |
||||
* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE |
||||
* MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. |
||||
******************************************************************************/ |
||||
|
||||
/* $Revision: 14835 $ on $Date: 2011-05-26 11:32:00 -0700 (Thu, 26 May 2011) $ */ |
||||
|
||||
/* cl_ext.h contains OpenCL extensions which don't have external */ |
||||
/* (OpenGL, D3D) dependencies. */ |
||||
|
||||
#ifndef __CL_EXT_H |
||||
#define __CL_EXT_H |
||||
|
||||
#ifdef __cplusplus |
||||
extern "C" { |
||||
#endif |
||||
|
||||
#ifdef __APPLE__ |
||||
#include <OpenCL/cl.h> |
||||
#include <AvailabilityMacros.h> |
||||
#else |
||||
#include <CL/cl.h> |
||||
#endif |
||||
|
||||
/* cl_khr_fp16 extension - no extension #define since it has no functions */ |
||||
#define CL_DEVICE_HALF_FP_CONFIG 0x1033 |
||||
|
||||
/* Memory object destruction
|
||||
* |
||||
* Apple extension for use to manage externally allocated buffers used with cl_mem objects with CL_MEM_USE_HOST_PTR |
||||
* |
||||
* Registers a user callback function that will be called when the memory object is deleted and its resources |
||||
* freed. Each call to clSetMemObjectCallbackFn registers the specified user callback function on a callback |
||||
* stack associated with memobj. The registered user callback functions are called in the reverse order in |
||||
* which they were registered. The user callback functions are called and then the memory object is deleted |
||||
* and its resources freed. This provides a mechanism for the application (and libraries) using memobj to be |
||||
* notified when the memory referenced by host_ptr, specified when the memory object is created and used as |
||||
* the storage bits for the memory object, can be reused or freed. |
||||
* |
||||
* The application may not call CL api's with the cl_mem object passed to the pfn_notify. |
||||
* |
||||
* Please check for the "cl_APPLE_SetMemObjectDestructor" extension using clGetDeviceInfo(CL_DEVICE_EXTENSIONS) |
||||
* before using. |
||||
*/ |
||||
#define cl_APPLE_SetMemObjectDestructor 1 |
||||
cl_int CL_API_ENTRY clSetMemObjectDestructorAPPLE( cl_mem /* memobj */, |
||||
void (* /*pfn_notify*/)( cl_mem /* memobj */, void* /*user_data*/), |
||||
void * /*user_data */ ) CL_EXT_SUFFIX__VERSION_1_0; |
||||
|
||||
|
||||
/* Context Logging Functions
|
||||
* |
||||
* The next three convenience functions are intended to be used as the pfn_notify parameter to clCreateContext(). |
||||
* Please check for the "cl_APPLE_ContextLoggingFunctions" extension using clGetDeviceInfo(CL_DEVICE_EXTENSIONS) |
||||
* before using. |
||||
* |
||||
* clLogMessagesToSystemLog fowards on all log messages to the Apple System Logger |
||||
*/ |
||||
#define cl_APPLE_ContextLoggingFunctions 1 |
||||
extern void CL_API_ENTRY clLogMessagesToSystemLogAPPLE( const char * /* errstr */, |
||||
const void * /* private_info */, |
||||
size_t /* cb */, |
||||
void * /* user_data */ ) CL_EXT_SUFFIX__VERSION_1_0; |
||||
|
||||
/* clLogMessagesToStdout sends all log messages to the file descriptor stdout */ |
||||
extern void CL_API_ENTRY clLogMessagesToStdoutAPPLE( const char * /* errstr */, |
||||
const void * /* private_info */, |
||||
size_t /* cb */, |
||||
void * /* user_data */ ) CL_EXT_SUFFIX__VERSION_1_0; |
||||
|
||||
/* clLogMessagesToStderr sends all log messages to the file descriptor stderr */ |
||||
extern void CL_API_ENTRY clLogMessagesToStderrAPPLE( const char * /* errstr */, |
||||
const void * /* private_info */, |
||||
size_t /* cb */, |
||||
void * /* user_data */ ) CL_EXT_SUFFIX__VERSION_1_0; |
||||
|
||||
|
||||
/************************
|
||||
* cl_khr_icd extension * |
||||
************************/ |
||||
#define cl_khr_icd 1 |
||||
|
||||
/* cl_platform_info */ |
||||
#define CL_PLATFORM_ICD_SUFFIX_KHR 0x0920 |
||||
|
||||
/* Additional Error Codes */ |
||||
#define CL_PLATFORM_NOT_FOUND_KHR -1001 |
||||
|
||||
extern CL_API_ENTRY cl_int CL_API_CALL |
||||
clIcdGetPlatformIDsKHR(cl_uint /* num_entries */, |
||||
cl_platform_id * /* platforms */, |
||||
cl_uint * /* num_platforms */); |
||||
|
||||
typedef CL_API_ENTRY cl_int (CL_API_CALL *clIcdGetPlatformIDsKHR_fn)( |
||||
cl_uint /* num_entries */, |
||||
cl_platform_id * /* platforms */, |
||||
cl_uint * /* num_platforms */); |
||||
|
||||
|
||||
/* Extension: cl_khr_image2D_buffer
|
||||
* |
||||
* This extension allows a 2D image to be created from a cl_mem buffer without a copy. |
||||
* The type associated with a 2D image created from a buffer in an OpenCL program is image2d_t. |
||||
* Both the sampler and sampler-less read_image built-in functions are supported for 2D images |
||||
* and 2D images created from a buffer. Similarly, the write_image built-ins are also supported |
||||
* for 2D images created from a buffer. |
||||
* |
||||
* When the 2D image from buffer is created, the client must specify the width, |
||||
* height, image format (i.e. channel order and channel data type) and optionally the row pitch |
||||
* |
||||
* The pitch specified must be a multiple of CL_DEVICE_IMAGE_PITCH_ALIGNMENT pixels. |
||||
* The base address of the buffer must be aligned to CL_DEVICE_IMAGE_BASE_ADDRESS_ALIGNMENT pixels. |
||||
*/ |
||||
|
||||
/*************************************
|
||||
* cl_khr_initalize_memory extension * |
||||
*************************************/ |
||||
|
||||
#define CL_CONTEXT_MEMORY_INITIALIZE_KHR 0x200E |
||||
|
||||
|
||||
/**************************************
|
||||
* cl_khr_terminate_context extension * |
||||
**************************************/ |
||||
|
||||
#define CL_DEVICE_TERMINATE_CAPABILITY_KHR 0x200F |
||||
#define CL_CONTEXT_TERMINATE_KHR 0x2010 |
||||
|
||||
#define cl_khr_terminate_context 1 |
||||
extern CL_API_ENTRY cl_int CL_API_CALL clTerminateContextKHR(cl_context /* context */) CL_EXT_SUFFIX__VERSION_1_2; |
||||
|
||||
typedef CL_API_ENTRY cl_int (CL_API_CALL *clTerminateContextKHR_fn)(cl_context /* context */) CL_EXT_SUFFIX__VERSION_1_2; |
||||
|
||||
|
||||
/*
|
||||
* Extension: cl_khr_spir |
||||
* |
||||
* This extension adds support to create an OpenCL program object from a |
||||
* Standard Portable Intermediate Representation (SPIR) instance |
||||
*/ |
||||
|
||||
// KHR SPIR extension (Section 9.15.2 in the extension SPEC)
|
||||
// TODO: The values have been approved by khronos and waiting to be updated in official header file.
|
||||
#define CL_DEVICE_SPIR_VERSIONS 0x40E0 |
||||
#define CL_PROGRAM_BINARY_TYPE_INTERMEDIATE 0x40E1 |
||||
|
||||
/******************************************
|
||||
* cl_nv_device_attribute_query extension * |
||||
******************************************/ |
||||
/* cl_nv_device_attribute_query extension - no extension #define since it has no functions */ |
||||
#define CL_DEVICE_COMPUTE_CAPABILITY_MAJOR_NV 0x4000 |
||||
#define CL_DEVICE_COMPUTE_CAPABILITY_MINOR_NV 0x4001 |
||||
#define CL_DEVICE_REGISTERS_PER_BLOCK_NV 0x4002 |
||||
#define CL_DEVICE_WARP_SIZE_NV 0x4003 |
||||
#define CL_DEVICE_GPU_OVERLAP_NV 0x4004 |
||||
#define CL_DEVICE_KERNEL_EXEC_TIMEOUT_NV 0x4005 |
||||
#define CL_DEVICE_INTEGRATED_MEMORY_NV 0x4006 |
||||
|
||||
/*********************************
|
||||
* cl_amd_device_memory_flags * |
||||
*********************************/ |
||||
#define cl_amd_device_memory_flags 1 |
||||
#define CL_MEM_USE_PERSISTENT_MEM_AMD (1 << 6) // Alloc from GPU's CPU visible heap
|
||||
|
||||
/* cl_device_info */ |
||||
#define CL_DEVICE_MAX_ATOMIC_COUNTERS_EXT 0x4032 |
||||
|
||||
/*********************************
|
||||
* cl_amd_device_attribute_query * |
||||
*********************************/ |
||||
#define CL_DEVICE_PROFILING_TIMER_OFFSET_AMD 0x4036 |
||||
#define CL_DEVICE_TOPOLOGY_AMD 0x4037 |
||||
#define CL_DEVICE_BOARD_NAME_AMD 0x4038 |
||||
#define CL_DEVICE_GLOBAL_FREE_MEMORY_AMD 0x4039 |
||||
#define CL_DEVICE_SIMD_PER_COMPUTE_UNIT_AMD 0x4040 |
||||
#define CL_DEVICE_SIMD_WIDTH_AMD 0x4041 |
||||
#define CL_DEVICE_SIMD_INSTRUCTION_WIDTH_AMD 0x4042 |
||||
#define CL_DEVICE_WAVEFRONT_WIDTH_AMD 0x4043 |
||||
#define CL_DEVICE_GLOBAL_MEM_CHANNELS_AMD 0x4044 |
||||
#define CL_DEVICE_GLOBAL_MEM_CHANNEL_BANKS_AMD 0x4045 |
||||
#define CL_DEVICE_GLOBAL_MEM_CHANNEL_BANK_WIDTH_AMD 0x4046 |
||||
#define CL_DEVICE_LOCAL_MEM_SIZE_PER_COMPUTE_UNIT_AMD 0x4047 |
||||
#define CL_DEVICE_LOCAL_MEM_BANKS_AMD 0x4048 |
||||
#define CL_DEVICE_THREAD_TRACE_SUPPORTED_AMD 0x4049 |
||||
#define CL_DEVICE_GFXIP_MAJOR_AMD 0x404A |
||||
#define CL_DEVICE_GFXIP_MINOR_AMD 0x404B |
||||
|
||||
typedef union |
||||
{ |
||||
struct { cl_uint type; cl_uint data[5]; } raw; |
||||
struct { cl_uint type; cl_char unused[17]; cl_char bus; cl_char device; cl_char function; } pcie; |
||||
} cl_device_topology_amd; |
||||
|
||||
#define CL_DEVICE_TOPOLOGY_TYPE_PCIE_AMD 1 |
||||
|
||||
/*************
|
||||
* cl_amd_hsa * |
||||
**************/ |
||||
#define CL_HSA_ENABLED_AMD (1ull << 62) |
||||
#define CL_HSA_DISABLED_AMD (1ull << 63) |
||||
|
||||
|
||||
/**************************
|
||||
* cl_amd_offline_devices * |
||||
**************************/ |
||||
#define CL_CONTEXT_OFFLINE_DEVICES_AMD 0x403F |
||||
|
||||
#ifdef CL_VERSION_1_1 |
||||
/***********************************
|
||||
* cl_ext_device_fission extension * |
||||
***********************************/ |
||||
#define cl_ext_device_fission 1 |
||||
|
||||
extern CL_API_ENTRY cl_int CL_API_CALL |
||||
clReleaseDeviceEXT( cl_device_id /*device*/ ) CL_EXT_SUFFIX__VERSION_1_1; |
||||
|
||||
typedef CL_API_ENTRY cl_int |
||||
(CL_API_CALL *clReleaseDeviceEXT_fn)( cl_device_id /*device*/ ) CL_EXT_SUFFIX__VERSION_1_1; |
||||
|
||||
extern CL_API_ENTRY cl_int CL_API_CALL |
||||
clRetainDeviceEXT( cl_device_id /*device*/ ) CL_EXT_SUFFIX__VERSION_1_1; |
||||
|
||||
typedef CL_API_ENTRY cl_int |
||||
(CL_API_CALL *clRetainDeviceEXT_fn)( cl_device_id /*device*/ ) CL_EXT_SUFFIX__VERSION_1_1; |
||||
|
||||
typedef cl_ulong cl_device_partition_property_ext; |
||||
extern CL_API_ENTRY cl_int CL_API_CALL |
||||
clCreateSubDevicesEXT( cl_device_id /*in_device*/, |
||||
const cl_device_partition_property_ext * /* properties */, |
||||
cl_uint /*num_entries*/, |
||||
cl_device_id * /*out_devices*/, |
||||
cl_uint * /*num_devices*/ ) CL_EXT_SUFFIX__VERSION_1_1; |
||||
|
||||
typedef CL_API_ENTRY cl_int |
||||
( CL_API_CALL * clCreateSubDevicesEXT_fn)( cl_device_id /*in_device*/, |
||||
const cl_device_partition_property_ext * /* properties */, |
||||
cl_uint /*num_entries*/, |
||||
cl_device_id * /*out_devices*/, |
||||
cl_uint * /*num_devices*/ ) CL_EXT_SUFFIX__VERSION_1_1; |
||||
|
||||
/* cl_device_partition_property_ext */ |
||||
#define CL_DEVICE_PARTITION_EQUALLY_EXT 0x4050 |
||||
#define CL_DEVICE_PARTITION_BY_COUNTS_EXT 0x4051 |
||||
#define CL_DEVICE_PARTITION_BY_NAMES_EXT 0x4052 |
||||
#define CL_DEVICE_PARTITION_BY_AFFINITY_DOMAIN_EXT 0x4053 |
||||
|
||||
/* clDeviceGetInfo selectors */ |
||||
#define CL_DEVICE_PARENT_DEVICE_EXT 0x4054 |
||||
#define CL_DEVICE_PARTITION_TYPES_EXT 0x4055 |
||||
#define CL_DEVICE_AFFINITY_DOMAINS_EXT 0x4056 |
||||
#define CL_DEVICE_REFERENCE_COUNT_EXT 0x4057 |
||||
#define CL_DEVICE_PARTITION_STYLE_EXT 0x4058 |
||||
|
||||
/* clGetImageInfo enum */ |
||||
#define CL_IMAGE_BYTE_PITCH_AMD 0x4059 |
||||
|
||||
/* error codes */ |
||||
#define CL_DEVICE_PARTITION_FAILED_EXT -1057 |
||||
#define CL_INVALID_PARTITION_COUNT_EXT -1058 |
||||
#define CL_INVALID_PARTITION_NAME_EXT -1059 |
||||
|
||||
/* CL_AFFINITY_DOMAINs */ |
||||
#define CL_AFFINITY_DOMAIN_L1_CACHE_EXT 0x1 |
||||
#define CL_AFFINITY_DOMAIN_L2_CACHE_EXT 0x2 |
||||
#define CL_AFFINITY_DOMAIN_L3_CACHE_EXT 0x3 |
||||
#define CL_AFFINITY_DOMAIN_L4_CACHE_EXT 0x4 |
||||
#define CL_AFFINITY_DOMAIN_NUMA_EXT 0x10 |
||||
#define CL_AFFINITY_DOMAIN_NEXT_FISSIONABLE_EXT 0x100 |
||||
/* cl_device_partition_property_ext list terminators */ |
||||
#define CL_PROPERTIES_LIST_END_EXT ((cl_device_partition_property_ext) 0) |
||||
#define CL_PARTITION_BY_COUNTS_LIST_END_EXT ((cl_device_partition_property_ext) 0) |
||||
#define CL_PARTITION_BY_NAMES_LIST_END_EXT ((cl_device_partition_property_ext) 0 - 1) |
||||
|
||||
/*********************************
|
||||
* cl_qcom_ext_host_ptr extension |
||||
*********************************/ |
||||
|
||||
#define CL_MEM_EXT_HOST_PTR_QCOM (1 << 29) |
||||
|
||||
#define CL_DEVICE_EXT_MEM_PADDING_IN_BYTES_QCOM 0x40A0 |
||||
#define CL_DEVICE_PAGE_SIZE_QCOM 0x40A1 |
||||
#define CL_IMAGE_ROW_ALIGNMENT_QCOM 0x40A2 |
||||
#define CL_IMAGE_SLICE_ALIGNMENT_QCOM 0x40A3 |
||||
#define CL_MEM_HOST_UNCACHED_QCOM 0x40A4 |
||||
#define CL_MEM_HOST_WRITEBACK_QCOM 0x40A5 |
||||
#define CL_MEM_HOST_WRITETHROUGH_QCOM 0x40A6 |
||||
#define CL_MEM_HOST_WRITE_COMBINING_QCOM 0x40A7 |
||||
|
||||
typedef cl_uint cl_image_pitch_info_qcom; |
||||
|
||||
extern CL_API_ENTRY cl_int CL_API_CALL |
||||
clGetDeviceImageInfoQCOM(cl_device_id device, |
||||
size_t image_width, |
||||
size_t image_height, |
||||
const cl_image_format *image_format, |
||||
cl_image_pitch_info_qcom param_name, |
||||
size_t param_value_size, |
||||
void *param_value, |
||||
size_t *param_value_size_ret); |
||||
|
||||
typedef struct _cl_mem_ext_host_ptr |
||||
{ |
||||
// Type of external memory allocation.
|
||||
// Legal values will be defined in layered extensions.
|
||||
cl_uint allocation_type; |
||||
|
||||
// Host cache policy for this external memory allocation.
|
||||
cl_uint host_cache_policy; |
||||
|
||||
} cl_mem_ext_host_ptr; |
||||
|
||||
/*********************************
|
||||
* cl_qcom_ion_host_ptr extension |
||||
*********************************/ |
||||
|
||||
#define CL_MEM_ION_HOST_PTR_QCOM 0x40A8 |
||||
|
||||
typedef struct _cl_mem_ion_host_ptr |
||||
{ |
||||
// Type of external memory allocation.
|
||||
// Must be CL_MEM_ION_HOST_PTR_QCOM for ION allocations.
|
||||
cl_mem_ext_host_ptr ext_host_ptr; |
||||
|
||||
// ION file descriptor
|
||||
int ion_filedesc; |
||||
|
||||
// Host pointer to the ION allocated memory
|
||||
void* ion_hostptr; |
||||
|
||||
} cl_mem_ion_host_ptr; |
||||
|
||||
#endif /* CL_VERSION_1_1 */ |
||||
|
||||
#ifdef CL_VERSION_1_2 |
||||
/********************************
|
||||
* cl_amd_bus_addressable_memory * |
||||
********************************/ |
||||
|
||||
/* cl_mem flag - bitfield */ |
||||
#define CL_MEM_BUS_ADDRESSABLE_AMD (1<<30) |
||||
#define CL_MEM_EXTERNAL_PHYSICAL_AMD (1<<31) |
||||
|
||||
#define CL_COMMAND_WAIT_SIGNAL_AMD 0x4080 |
||||
#define CL_COMMAND_WRITE_SIGNAL_AMD 0x4081 |
||||
#define CL_COMMAND_MAKE_BUFFERS_RESIDENT_AMD 0x4082 |
||||
|
||||
typedef struct _cl_bus_address_amd |
||||
{ |
||||
cl_ulong surface_bus_address; |
||||
cl_ulong marker_bus_address; |
||||
} cl_bus_address_amd; |
||||
|
||||
typedef CL_API_ENTRY cl_int |
||||
(CL_API_CALL * clEnqueueWaitSignalAMD_fn)( cl_command_queue /*command_queue*/, |
||||
cl_mem /*mem_object*/, |
||||
cl_uint /*value*/, |
||||
cl_uint /*num_events*/, |
||||
const cl_event * /*event_wait_list*/, |
||||
cl_event * /*event*/) CL_EXT_SUFFIX__VERSION_1_2; |
||||
|
||||
typedef CL_API_ENTRY cl_int |
||||
(CL_API_CALL * clEnqueueWriteSignalAMD_fn)( cl_command_queue /*command_queue*/, |
||||
cl_mem /*mem_object*/, |
||||
cl_uint /*value*/, |
||||
cl_ulong /*offset*/, |
||||
cl_uint /*num_events*/, |
||||
const cl_event * /*event_list*/, |
||||
cl_event * /*event*/) CL_EXT_SUFFIX__VERSION_1_2; |
||||
|
||||
typedef CL_API_ENTRY cl_int |
||||
(CL_API_CALL * clEnqueueMakeBuffersResidentAMD_fn)( cl_command_queue /*command_queue*/, |
||||
cl_uint /*num_mem_objs*/, |
||||
cl_mem * /*mem_objects*/, |
||||
cl_bool /*blocking_make_resident*/, |
||||
cl_bus_address_amd * /*bus_addresses*/, |
||||
cl_uint /*num_events*/, |
||||
const cl_event * /*event_list*/, |
||||
cl_event * /*event*/) CL_EXT_SUFFIX__VERSION_1_2; |
||||
|
||||
/*******************************************
|
||||
* Shared Virtual Memory (SVM) extension |
||||
* The declarations match the order, naming and values of the original 2.0 |
||||
* standard, except for the fact that we added the _AMD suffix to each |
||||
* symbol |
||||
*******************************************/ |
||||
typedef cl_bitfield cl_device_svm_capabilities_amd; |
||||
typedef cl_bitfield cl_svm_mem_flags_amd; |
||||
typedef cl_uint cl_kernel_exec_info_amd; |
||||
|
||||
/* cl_device_info */ |
||||
#define CL_DEVICE_SVM_CAPABILITIES_AMD 0x1053 |
||||
#define CL_DEVICE_PREFERRED_PLATFORM_ATOMIC_ALIGNMENT_AMD 0x1054 |
||||
|
||||
/* cl_device_svm_capabilities_amd */ |
||||
#define CL_DEVICE_SVM_COARSE_GRAIN_BUFFER_AMD (1 << 0) |
||||
#define CL_DEVICE_SVM_FINE_GRAIN_BUFFER_AMD (1 << 1) |
||||
#define CL_DEVICE_SVM_FINE_GRAIN_SYSTEM_AMD (1 << 2) |
||||
#define CL_DEVICE_SVM_ATOMICS_AMD (1 << 3) |
||||
|
||||
/* cl_svm_mem_flags_amd */ |
||||
#define CL_MEM_SVM_FINE_GRAIN_BUFFER_AMD (1 << 10) |
||||
#define CL_MEM_SVM_ATOMICS_AMD (1 << 11) |
||||
|
||||
/* cl_mem_info */ |
||||
#define CL_MEM_USES_SVM_POINTER_AMD 0x1109 |
||||
|
||||
/* cl_kernel_exec_info_amd */ |
||||
#define CL_KERNEL_EXEC_INFO_SVM_PTRS_AMD 0x11B6 |
||||
#define CL_KERNEL_EXEC_INFO_SVM_FINE_GRAIN_SYSTEM_AMD 0x11B7 |
||||
|
||||
/* cl_command_type */ |
||||
#define CL_COMMAND_SVM_FREE_AMD 0x1209 |
||||
#define CL_COMMAND_SVM_MEMCPY_AMD 0x120A |
||||
#define CL_COMMAND_SVM_MEMFILL_AMD 0x120B |
||||
#define CL_COMMAND_SVM_MAP_AMD 0x120C |
||||
#define CL_COMMAND_SVM_UNMAP_AMD 0x120D |
||||
|
||||
typedef CL_API_ENTRY void* |
||||
(CL_API_CALL * clSVMAllocAMD_fn)( |
||||
cl_context /* context */, |
||||
cl_svm_mem_flags_amd /* flags */, |
||||
size_t /* size */, |
||||
unsigned int /* alignment */ |
||||
) CL_EXT_SUFFIX__VERSION_1_2; |
||||
|
||||
typedef CL_API_ENTRY void |
||||
(CL_API_CALL * clSVMFreeAMD_fn)( |
||||
cl_context /* context */, |
||||
void* /* svm_pointer */ |
||||
) CL_EXT_SUFFIX__VERSION_1_2; |
||||
|
||||
typedef CL_API_ENTRY cl_int |
||||
(CL_API_CALL * clEnqueueSVMFreeAMD_fn)( |
||||
cl_command_queue /* command_queue */, |
||||
cl_uint /* num_svm_pointers */, |
||||
void** /* svm_pointers */, |
||||
void (CL_CALLBACK *)( /*pfn_free_func*/ |
||||
cl_command_queue /* queue */, |
||||
cl_uint /* num_svm_pointers */, |
||||
void** /* svm_pointers */, |
||||
void* /* user_data */), |
||||
void* /* user_data */, |
||||
cl_uint /* num_events_in_wait_list */, |
||||
const cl_event* /* event_wait_list */, |
||||
cl_event* /* event */ |
||||
) CL_EXT_SUFFIX__VERSION_1_2; |
||||
|
||||
typedef CL_API_ENTRY cl_int |
||||
(CL_API_CALL * clEnqueueSVMMemcpyAMD_fn)( |
||||
cl_command_queue /* command_queue */, |
||||
cl_bool /* blocking_copy */, |
||||
void* /* dst_ptr */, |
||||
const void* /* src_ptr */, |
||||
size_t /* size */, |
||||
cl_uint /* num_events_in_wait_list */, |
||||
const cl_event* /* event_wait_list */, |
||||
cl_event* /* event */ |
||||
) CL_EXT_SUFFIX__VERSION_1_2; |
||||
|
||||
typedef CL_API_ENTRY cl_int |
||||
(CL_API_CALL * clEnqueueSVMMemFillAMD_fn)( |
||||
cl_command_queue /* command_queue */, |
||||
void* /* svm_ptr */, |
||||
const void* /* pattern */, |
||||
size_t /* pattern_size */, |
||||
size_t /* size */, |
||||
cl_uint /* num_events_in_wait_list */, |
||||
const cl_event* /* event_wait_list */, |
||||
cl_event* /* event */ |
||||
) CL_EXT_SUFFIX__VERSION_1_2; |
||||
|
||||
typedef CL_API_ENTRY cl_int |
||||
(CL_API_CALL * clEnqueueSVMMapAMD_fn)( |
||||
cl_command_queue /* command_queue */, |
||||
cl_bool /* blocking_map */, |
||||
cl_map_flags /* map_flags */, |
||||
void* /* svm_ptr */, |
||||
size_t /* size */, |
||||
cl_uint /* num_events_in_wait_list */, |
||||
const cl_event* /* event_wait_list */, |
||||
cl_event* /* event */ |
||||
) CL_EXT_SUFFIX__VERSION_1_2; |
||||
|
||||
typedef CL_API_ENTRY cl_int |
||||
(CL_API_CALL * clEnqueueSVMUnmapAMD_fn)( |
||||
cl_command_queue /* command_queue */, |
||||
void* /* svm_ptr */, |
||||
cl_uint /* num_events_in_wait_list */, |
||||
const cl_event* /* event_wait_list */, |
||||
cl_event* /* event */ |
||||
) CL_EXT_SUFFIX__VERSION_1_2; |
||||
|
||||
typedef CL_API_ENTRY cl_int |
||||
(CL_API_CALL * clSetKernelArgSVMPointerAMD_fn)( |
||||
cl_kernel /* kernel */, |
||||
cl_uint /* arg_index */, |
||||
const void * /* arg_value */ |
||||
) CL_EXT_SUFFIX__VERSION_1_2; |
||||
|
||||
typedef CL_API_ENTRY cl_int |
||||
(CL_API_CALL * clSetKernelExecInfoAMD_fn)( |
||||
cl_kernel /* kernel */, |
||||
cl_kernel_exec_info_amd /* param_name */, |
||||
size_t /* param_value_size */, |
||||
const void * /* param_value */ |
||||
) CL_EXT_SUFFIX__VERSION_1_2; |
||||
|
||||
#endif /* CL_VERSION_1_2 */ |
||||
|
||||
#ifdef __cplusplus |
||||
} |
||||
#endif |
||||
|
||||
|
||||
#endif /* __CL_EXT_H */ |
@ -0,0 +1,162 @@
@@ -0,0 +1,162 @@
|
||||
/**********************************************************************************
|
||||
* Copyright (c) 2008 - 2012 The Khronos Group Inc. |
||||
* |
||||
* Permission is hereby granted, free of charge, to any person obtaining a |
||||
* copy of this software and/or associated documentation files (the |
||||
* "Materials"), to deal in the Materials without restriction, including |
||||
* without limitation the rights to use, copy, modify, merge, publish, |
||||
* distribute, sublicense, and/or sell copies of the Materials, and to |
||||
* permit persons to whom the Materials are furnished to do so, subject to |
||||
* the following conditions: |
||||
* |
||||
* The above copyright notice and this permission notice shall be included |
||||
* in all copies or substantial portions of the Materials. |
||||
* |
||||
* THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, |
||||
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF |
||||
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. |
||||
* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY |
||||
* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, |
||||
* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE |
||||
* MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. |
||||
**********************************************************************************/ |
||||
|
||||
#ifndef __OPENCL_CL_GL_H |
||||
#define __OPENCL_CL_GL_H |
||||
|
||||
#ifdef __APPLE__ |
||||
#include <OpenCL/cl.h> |
||||
#else |
||||
#include <CL/cl.h> |
||||
#endif |
||||
|
||||
#ifdef __cplusplus |
||||
extern "C" { |
||||
#endif |
||||
|
||||
typedef cl_uint cl_gl_object_type; |
||||
typedef cl_uint cl_gl_texture_info; |
||||
typedef cl_uint cl_gl_platform_info; |
||||
typedef struct __GLsync *cl_GLsync; |
||||
|
||||
/* cl_gl_object_type = 0x2000 - 0x200F enum values are currently taken */ |
||||
#define CL_GL_OBJECT_BUFFER 0x2000 |
||||
#define CL_GL_OBJECT_TEXTURE2D 0x2001 |
||||
#define CL_GL_OBJECT_TEXTURE3D 0x2002 |
||||
#define CL_GL_OBJECT_RENDERBUFFER 0x2003 |
||||
#define CL_GL_OBJECT_TEXTURE2D_ARRAY 0x200E |
||||
#define CL_GL_OBJECT_TEXTURE1D 0x200F |
||||
#define CL_GL_OBJECT_TEXTURE1D_ARRAY 0x2010 |
||||
#define CL_GL_OBJECT_TEXTURE_BUFFER 0x2011 |
||||
|
||||
/* cl_gl_texture_info */ |
||||
#define CL_GL_TEXTURE_TARGET 0x2004 |
||||
#define CL_GL_MIPMAP_LEVEL 0x2005 |
||||
#define CL_GL_NUM_SAMPLES 0x2012 |
||||
|
||||
|
||||
extern CL_API_ENTRY cl_mem CL_API_CALL |
||||
clCreateFromGLBuffer(cl_context /* context */, |
||||
cl_mem_flags /* flags */, |
||||
cl_GLuint /* bufobj */, |
||||
int * /* errcode_ret */) CL_API_SUFFIX__VERSION_1_0; |
||||
|
||||
extern CL_API_ENTRY cl_mem CL_API_CALL |
||||
clCreateFromGLTexture(cl_context /* context */, |
||||
cl_mem_flags /* flags */, |
||||
cl_GLenum /* target */, |
||||
cl_GLint /* miplevel */, |
||||
cl_GLuint /* texture */, |
||||
cl_int * /* errcode_ret */) CL_API_SUFFIX__VERSION_1_2; |
||||
|
||||
extern CL_API_ENTRY cl_mem CL_API_CALL |
||||
clCreateFromGLRenderbuffer(cl_context /* context */, |
||||
cl_mem_flags /* flags */, |
||||
cl_GLuint /* renderbuffer */, |
||||
cl_int * /* errcode_ret */) CL_API_SUFFIX__VERSION_1_0; |
||||
|
||||
extern CL_API_ENTRY cl_int CL_API_CALL |
||||
clGetGLObjectInfo(cl_mem /* memobj */, |
||||
cl_gl_object_type * /* gl_object_type */, |
||||
cl_GLuint * /* gl_object_name */) CL_API_SUFFIX__VERSION_1_0; |
||||
|
||||
extern CL_API_ENTRY cl_int CL_API_CALL |
||||
clGetGLTextureInfo(cl_mem /* memobj */, |
||||
cl_gl_texture_info /* param_name */, |
||||
size_t /* param_value_size */, |
||||
void * /* param_value */, |
||||
size_t * /* param_value_size_ret */) CL_API_SUFFIX__VERSION_1_0; |
||||
|
||||
extern CL_API_ENTRY cl_int CL_API_CALL |
||||
clEnqueueAcquireGLObjects(cl_command_queue /* command_queue */, |
||||
cl_uint /* num_objects */, |
||||
const cl_mem * /* mem_objects */, |
||||
cl_uint /* num_events_in_wait_list */, |
||||
const cl_event * /* event_wait_list */, |
||||
cl_event * /* event */) CL_API_SUFFIX__VERSION_1_0; |
||||
|
||||
extern CL_API_ENTRY cl_int CL_API_CALL |
||||
clEnqueueReleaseGLObjects(cl_command_queue /* command_queue */, |
||||
cl_uint /* num_objects */, |
||||
const cl_mem * /* mem_objects */, |
||||
cl_uint /* num_events_in_wait_list */, |
||||
const cl_event * /* event_wait_list */, |
||||
cl_event * /* event */) CL_API_SUFFIX__VERSION_1_0; |
||||
|
||||
|
||||
// Deprecated OpenCL 1.1 APIs
|
||||
extern CL_API_ENTRY CL_EXT_PREFIX__VERSION_1_1_DEPRECATED cl_mem CL_API_CALL |
||||
clCreateFromGLTexture2D(cl_context /* context */, |
||||
cl_mem_flags /* flags */, |
||||
cl_GLenum /* target */, |
||||
cl_GLint /* miplevel */, |
||||
cl_GLuint /* texture */, |
||||
cl_int * /* errcode_ret */) CL_EXT_SUFFIX__VERSION_1_1_DEPRECATED; |
||||
|
||||
extern CL_API_ENTRY CL_EXT_PREFIX__VERSION_1_1_DEPRECATED cl_mem CL_API_CALL |
||||
clCreateFromGLTexture3D(cl_context /* context */, |
||||
cl_mem_flags /* flags */, |
||||
cl_GLenum /* target */, |
||||
cl_GLint /* miplevel */, |
||||
cl_GLuint /* texture */, |
||||
cl_int * /* errcode_ret */) CL_EXT_SUFFIX__VERSION_1_1_DEPRECATED; |
||||
|
||||
/* cl_khr_gl_sharing extension */ |
||||
|
||||
#define cl_khr_gl_sharing 1 |
||||
|
||||
typedef cl_uint cl_gl_context_info; |
||||
|
||||
/* Additional Error Codes */ |
||||
#define CL_INVALID_GL_SHAREGROUP_REFERENCE_KHR -1000 |
||||
|
||||
/* cl_gl_context_info */ |
||||
#define CL_CURRENT_DEVICE_FOR_GL_CONTEXT_KHR 0x2006 |
||||
#define CL_DEVICES_FOR_GL_CONTEXT_KHR 0x2007 |
||||
|
||||
/* Additional cl_context_properties */ |
||||
#define CL_GL_CONTEXT_KHR 0x2008 |
||||
#define CL_EGL_DISPLAY_KHR 0x2009 |
||||
#define CL_GLX_DISPLAY_KHR 0x200A |
||||
#define CL_WGL_HDC_KHR 0x200B |
||||
#define CL_CGL_SHAREGROUP_KHR 0x200C |
||||
|
||||
extern CL_API_ENTRY cl_int CL_API_CALL |
||||
clGetGLContextInfoKHR(const cl_context_properties * /* properties */, |
||||
cl_gl_context_info /* param_name */, |
||||
size_t /* param_value_size */, |
||||
void * /* param_value */, |
||||
size_t * /* param_value_size_ret */) CL_API_SUFFIX__VERSION_1_0; |
||||
|
||||
typedef CL_API_ENTRY cl_int (CL_API_CALL *clGetGLContextInfoKHR_fn)( |
||||
const cl_context_properties * properties, |
||||
cl_gl_context_info param_name, |
||||
size_t param_value_size, |
||||
void * param_value, |
||||
size_t * param_value_size_ret); |
||||
|
||||
#ifdef __cplusplus |
||||
} |
||||
#endif |
||||
|
||||
#endif /* __OPENCL_CL_GL_H */ |
@ -0,0 +1,69 @@
@@ -0,0 +1,69 @@
|
||||
/**********************************************************************************
|
||||
* Copyright (c) 2008-2012 The Khronos Group Inc. |
||||
* |
||||
* Permission is hereby granted, free of charge, to any person obtaining a |
||||
* copy of this software and/or associated documentation files (the |
||||
* "Materials"), to deal in the Materials without restriction, including |
||||
* without limitation the rights to use, copy, modify, merge, publish, |
||||
* distribute, sublicense, and/or sell copies of the Materials, and to |
||||
* permit persons to whom the Materials are furnished to do so, subject to |
||||
* the following conditions: |
||||
* |
||||
* The above copyright notice and this permission notice shall be included |
||||
* in all copies or substantial portions of the Materials. |
||||
* |
||||
* THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, |
||||
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF |
||||
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. |
||||
* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY |
||||
* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, |
||||
* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE |
||||
* MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. |
||||
**********************************************************************************/ |
||||
|
||||
/* $Revision: 14826 $ on $Date: 2011-05-26 07:40:43 -0700 (Thu, 26 May 2011) $ */ |
||||
|
||||
/* cl_gl_ext.h contains vendor (non-KHR) OpenCL extensions which have */ |
||||
/* OpenGL dependencies. */ |
||||
|
||||
#ifndef __OPENCL_CL_GL_EXT_H |
||||
#define __OPENCL_CL_GL_EXT_H |
||||
|
||||
#ifdef __cplusplus |
||||
extern "C" { |
||||
#endif |
||||
|
||||
#ifdef __APPLE__ |
||||
#include <OpenCL/cl_gl.h> |
||||
#else |
||||
#include <CL/cl_gl.h> |
||||
#endif |
||||
|
||||
/*
|
||||
* For each extension, follow this template |
||||
* cl_VEN_extname extension */ |
||||
/* #define cl_VEN_extname 1
|
||||
* ... define new types, if any |
||||
* ... define new tokens, if any |
||||
* ... define new APIs, if any |
||||
* |
||||
* If you need GLtypes here, mirror them with a cl_GLtype, rather than including a GL header |
||||
* This allows us to avoid having to decide whether to include GL headers or GLES here. |
||||
*/ |
||||
|
||||
/*
|
||||
* cl_khr_gl_event extension |
||||
* See section 9.9 in the OpenCL 1.1 spec for more information |
||||
*/ |
||||
#define CL_COMMAND_GL_FENCE_SYNC_OBJECT_KHR 0x200D |
||||
|
||||
extern CL_API_ENTRY cl_event CL_API_CALL |
||||
clCreateEventFromGLsyncKHR(cl_context /* context */, |
||||
cl_GLsync /* cl_GLsync */, |
||||
cl_int * /* errcode_ret */) CL_EXT_SUFFIX__VERSION_1_1; |
||||
|
||||
#ifdef __cplusplus |
||||
} |
||||
#endif |
||||
|
||||
#endif /* __OPENCL_CL_GL_EXT_H */ |
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,54 @@
@@ -0,0 +1,54 @@
|
||||
/*******************************************************************************
|
||||
* Copyright (c) 2008-2012 The Khronos Group Inc. |
||||
* |
||||
* Permission is hereby granted, free of charge, to any person obtaining a |
||||
* copy of this software and/or associated documentation files (the |
||||
* "Materials"), to deal in the Materials without restriction, including |
||||
* without limitation the rights to use, copy, modify, merge, publish, |
||||
* distribute, sublicense, and/or sell copies of the Materials, and to |
||||
* permit persons to whom the Materials are furnished to do so, subject to |
||||
* the following conditions: |
||||
* |
||||
* The above copyright notice and this permission notice shall be included |
||||
* in all copies or substantial portions of the Materials. |
||||
* |
||||
* THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, |
||||
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF |
||||
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. |
||||
* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY |
||||
* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, |
||||
* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE |
||||
* MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. |
||||
******************************************************************************/ |
||||
|
||||
/* $Revision: 11708 $ on $Date: 2010-06-13 23:36:24 -0700 (Sun, 13 Jun 2010) $ */ |
||||
|
||||
#ifndef __OPENCL_H |
||||
#define __OPENCL_H |
||||
|
||||
#ifdef __cplusplus |
||||
extern "C" { |
||||
#endif |
||||
|
||||
#ifdef __APPLE__ |
||||
|
||||
#include <OpenCL/cl.h> |
||||
#include <OpenCL/cl_gl.h> |
||||
#include <OpenCL/cl_gl_ext.h> |
||||
#include <OpenCL/cl_ext.h> |
||||
|
||||
#else |
||||
|
||||
#include <CL/cl.h> |
||||
#include <CL/cl_gl.h> |
||||
#include <CL/cl_gl_ext.h> |
||||
#include <CL/cl_ext.h> |
||||
|
||||
#endif |
||||
|
||||
#ifdef __cplusplus |
||||
} |
||||
#endif |
||||
|
||||
#endif /* __OPENCL_H */ |
||||
|
@ -0,0 +1,600 @@
@@ -0,0 +1,600 @@
|
||||
#ifndef __glut_h__ |
||||
#define __glut_h__ |
||||
|
||||
/* Copyright (c) Mark J. Kilgard, 1994, 1995, 1996, 1998. */ |
||||
|
||||
/* This program is freely distributable without licensing fees and is
|
||||
provided without guarantee or warrantee expressed or implied. This |
||||
program is -not- in the public domain. */ |
||||
|
||||
#if defined(_WIN32) |
||||
|
||||
/* GLUT 3.7 now tries to avoid including <windows.h>
|
||||
to avoid name space pollution, but Win32's <GL/gl.h> |
||||
needs APIENTRY and WINGDIAPI defined properly. */ |
||||
# if 0 |
||||
# define WIN32_LEAN_AND_MEAN |
||||
# include <windows.h> |
||||
# else |
||||
/* XXX This is from Win32's <windef.h> */ |
||||
# ifndef APIENTRY |
||||
# define GLUT_APIENTRY_DEFINED |
||||
# if (_MSC_VER >= 800) || defined(_STDCALL_SUPPORTED) |
||||
# define APIENTRY __stdcall |
||||
# else |
||||
# define APIENTRY |
||||
# endif |
||||
# endif |
||||
/* XXX This is from Win32's <winnt.h> */ |
||||
# ifndef CALLBACK |
||||
# if (defined(_M_MRX000) || defined(_M_IX86) || defined(_M_ALPHA) || defined(_M_PPC)) && !defined(MIDL_PASS) |
||||
# define CALLBACK __stdcall |
||||
# else |
||||
# define CALLBACK |
||||
# endif |
||||
# endif |
||||
/* XXX This is from Win32's <wingdi.h> and <winnt.h> */ |
||||
# ifndef WINGDIAPI |
||||
# define GLUT_WINGDIAPI_DEFINED |
||||
# define WINGDIAPI __declspec(dllimport) |
||||
# endif |
||||
/* XXX This is from Win32's <ctype.h> */ |
||||
# ifndef _WCHAR_T_DEFINED |
||||
typedef unsigned short wchar_t; |
||||
# define _WCHAR_T_DEFINED |
||||
# endif |
||||
# endif |
||||
|
||||
#pragma comment (lib, "winmm.lib") /* link with Windows MultiMedia lib */ |
||||
#pragma comment (lib, "opengl32.lib") /* link with Microsoft OpenGL lib */ |
||||
#pragma comment (lib, "glu32.lib") /* link with OpenGL Utility lib */ |
||||
#ifndef _WIN64 |
||||
#pragma comment (lib, "glut32.lib") /* link with Win32 GLUT lib */ |
||||
#else |
||||
#pragma comment (lib, "glut64.lib") /* link with Win32 GLUT lib */ |
||||
#endif |
||||
|
||||
#pragma warning (disable:4244) /* Disable bogus conversion warnings. */ |
||||
#pragma warning (disable:4305) /* VC++ 5.0 version of above warning. */ |
||||
|
||||
#endif |
||||
|
||||
#include <GL/gl.h> |
||||
#include <GL/glu.h> |
||||
|
||||
/* define APIENTRY and CALLBACK to null string if we aren't on Win32 */ |
||||
#if !defined(_WIN32) |
||||
#define APIENTRY |
||||
#define GLUT_APIENTRY_DEFINED |
||||
#define CALLBACK |
||||
#endif |
||||
|
||||
#ifdef __cplusplus |
||||
extern "C" { |
||||
#endif |
||||
|
||||
/**
|
||||
GLUT API revision history: |
||||
|
||||
GLUT_API_VERSION is updated to reflect incompatible GLUT |
||||
API changes (interface changes, semantic changes, deletions, |
||||
or additions). |
||||
|
||||
GLUT_API_VERSION=1 First public release of GLUT. 11/29/94 |
||||
|
||||
GLUT_API_VERSION=2 Added support for OpenGL/GLX multisampling, |
||||
extension. Supports new input devices like tablet, dial and button |
||||
box, and Spaceball. Easy to query OpenGL extensions. |
||||
|
||||
GLUT_API_VERSION=3 glutMenuStatus added. |
||||
|
||||
GLUT_API_VERSION=4 glutInitDisplayString, glutWarpPointer, |
||||
glutBitmapLength, glutStrokeLength, glutWindowStatusFunc, dynamic |
||||
video resize subAPI, glutPostWindowRedisplay, glutKeyboardUpFunc, |
||||
glutSpecialUpFunc, glutIgnoreKeyRepeat, glutSetKeyRepeat, |
||||
glutJoystickFunc, glutForceJoystickFunc (NOT FINALIZED!). |
||||
**/ |
||||
#ifndef GLUT_API_VERSION /* allow this to be overriden */ |
||||
#define GLUT_API_VERSION 3 |
||||
#endif |
||||
|
||||
/**
|
||||
GLUT implementation revision history: |
||||
|
||||
GLUT_XLIB_IMPLEMENTATION is updated to reflect both GLUT |
||||
API revisions and implementation revisions (ie, bug fixes). |
||||
|
||||
GLUT_XLIB_IMPLEMENTATION=1 mjk's first public release of |
||||
GLUT Xlib-based implementation. 11/29/94 |
||||
|
||||
GLUT_XLIB_IMPLEMENTATION=2 mjk's second public release of |
||||
GLUT Xlib-based implementation providing GLUT version 2 |
||||
interfaces. |
||||
|
||||
GLUT_XLIB_IMPLEMENTATION=3 mjk's GLUT 2.2 images. 4/17/95 |
||||
|
||||
GLUT_XLIB_IMPLEMENTATION=4 mjk's GLUT 2.3 images. 6/?/95 |
||||
|
||||
GLUT_XLIB_IMPLEMENTATION=5 mjk's GLUT 3.0 images. 10/?/95 |
||||
|
||||
GLUT_XLIB_IMPLEMENTATION=7 mjk's GLUT 3.1+ with glutWarpPoitner. 7/24/96 |
||||
|
||||
GLUT_XLIB_IMPLEMENTATION=8 mjk's GLUT 3.1+ with glutWarpPoitner |
||||
and video resize. 1/3/97 |
||||
|
||||
GLUT_XLIB_IMPLEMENTATION=9 mjk's GLUT 3.4 release with early GLUT 4 routines. |
||||
|
||||
GLUT_XLIB_IMPLEMENTATION=11 Mesa 2.5's GLUT 3.6 release. |
||||
|
||||
GLUT_XLIB_IMPLEMENTATION=12 mjk's GLUT 3.6 release with early GLUT 4 routines + signal handling. |
||||
|
||||
GLUT_XLIB_IMPLEMENTATION=13 mjk's GLUT 3.7 release with GameGLUT support. |
||||
**/ |
||||
#ifndef GLUT_XLIB_IMPLEMENTATION /* Allow this to be overriden. */ |
||||
#define GLUT_XLIB_IMPLEMENTATION 13 |
||||
#endif |
||||
|
||||
/* Display mode bit masks. */ |
||||
#define GLUT_RGB 0 |
||||
#define GLUT_RGBA GLUT_RGB |
||||
#define GLUT_INDEX 1 |
||||
#define GLUT_SINGLE 0 |
||||
#define GLUT_DOUBLE 2 |
||||
#define GLUT_ACCUM 4 |
||||
#define GLUT_ALPHA 8 |
||||
#define GLUT_DEPTH 16 |
||||
#define GLUT_STENCIL 32 |
||||
#if (GLUT_API_VERSION >= 2) |
||||
#define GLUT_MULTISAMPLE 128 |
||||
#define GLUT_STEREO 256 |
||||
#endif |
||||
#if (GLUT_API_VERSION >= 3) |
||||
#define GLUT_LUMINANCE 512 |
||||
#endif |
||||
|
||||
/* Mouse buttons. */ |
||||
#define GLUT_LEFT_BUTTON 0 |
||||
#define GLUT_MIDDLE_BUTTON 1 |
||||
#define GLUT_RIGHT_BUTTON 2 |
||||
|
||||
/* Mouse button state. */ |
||||
#define GLUT_DOWN 0 |
||||
#define GLUT_UP 1 |
||||
|
||||
#if (GLUT_API_VERSION >= 2) |
||||
/* function keys */ |
||||
#define GLUT_KEY_F1 1 |
||||
#define GLUT_KEY_F2 2 |
||||
#define GLUT_KEY_F3 3 |
||||
#define GLUT_KEY_F4 4 |
||||
#define GLUT_KEY_F5 5 |
||||
#define GLUT_KEY_F6 6 |
||||
#define GLUT_KEY_F7 7 |
||||
#define GLUT_KEY_F8 8 |
||||
#define GLUT_KEY_F9 9 |
||||
#define GLUT_KEY_F10 10 |
||||
#define GLUT_KEY_F11 11 |
||||
#define GLUT_KEY_F12 12 |
||||
/* directional keys */ |
||||
#define GLUT_KEY_LEFT 100 |
||||
#define GLUT_KEY_UP 101 |
||||
#define GLUT_KEY_RIGHT 102 |
||||
#define GLUT_KEY_DOWN 103 |
||||
#define GLUT_KEY_PAGE_UP 104 |
||||
#define GLUT_KEY_PAGE_DOWN 105 |
||||
#define GLUT_KEY_HOME 106 |
||||
#define GLUT_KEY_END 107 |
||||
#define GLUT_KEY_INSERT 108 |
||||
#endif |
||||
|
||||
/* Entry/exit state. */ |
||||
#define GLUT_LEFT 0 |
||||
#define GLUT_ENTERED 1 |
||||
|
||||
/* Menu usage state. */ |
||||
#define GLUT_MENU_NOT_IN_USE 0 |
||||
#define GLUT_MENU_IN_USE 1 |
||||
|
||||
/* Visibility state. */ |
||||
#define GLUT_NOT_VISIBLE 0 |
||||
#define GLUT_VISIBLE 1 |
||||
|
||||
/* Window status state. */ |
||||
#define GLUT_HIDDEN 0 |
||||
#define GLUT_FULLY_RETAINED 1 |
||||
#define GLUT_PARTIALLY_RETAINED 2 |
||||
#define GLUT_FULLY_COVERED 3 |
||||
|
||||
/* Color index component selection values. */ |
||||
#define GLUT_RED 0 |
||||
#define GLUT_GREEN 1 |
||||
#define GLUT_BLUE 2 |
||||
|
||||
/* Layers for use. */ |
||||
#define GLUT_NORMAL 0 |
||||
#define GLUT_OVERLAY 1 |
||||
|
||||
#if defined(_WIN32) |
||||
/* Stroke font constants (use these in GLUT program). */ |
||||
#define GLUT_STROKE_ROMAN ((void*)0) |
||||
#define GLUT_STROKE_MONO_ROMAN ((void*)1) |
||||
|
||||
/* Bitmap font constants (use these in GLUT program). */ |
||||
#define GLUT_BITMAP_9_BY_15 ((void*)2) |
||||
#define GLUT_BITMAP_8_BY_13 ((void*)3) |
||||
#define GLUT_BITMAP_TIMES_ROMAN_10 ((void*)4) |
||||
#define GLUT_BITMAP_TIMES_ROMAN_24 ((void*)5) |
||||
#if (GLUT_API_VERSION >= 3) |
||||
#define GLUT_BITMAP_HELVETICA_10 ((void*)6) |
||||
#define GLUT_BITMAP_HELVETICA_12 ((void*)7) |
||||
#define GLUT_BITMAP_HELVETICA_18 ((void*)8) |
||||
#endif |
||||
#else |
||||
/* Stroke font opaque addresses (use constants instead in source code). */ |
||||
extern void *glutStrokeRoman; |
||||
extern void *glutStrokeMonoRoman; |
||||
|
||||
/* Stroke font constants (use these in GLUT program). */ |
||||
#define GLUT_STROKE_ROMAN (&glutStrokeRoman) |
||||
#define GLUT_STROKE_MONO_ROMAN (&glutStrokeMonoRoman) |
||||
|
||||
/* Bitmap font opaque addresses (use constants instead in source code). */ |
||||
extern void *glutBitmap9By15; |
||||
extern void *glutBitmap8By13; |
||||
extern void *glutBitmapTimesRoman10; |
||||
extern void *glutBitmapTimesRoman24; |
||||
extern void *glutBitmapHelvetica10; |
||||
extern void *glutBitmapHelvetica12; |
||||
extern void *glutBitmapHelvetica18; |
||||
|
||||
/* Bitmap font constants (use these in GLUT program). */ |
||||
#define GLUT_BITMAP_9_BY_15 (&glutBitmap9By15) |
||||
#define GLUT_BITMAP_8_BY_13 (&glutBitmap8By13) |
||||
#define GLUT_BITMAP_TIMES_ROMAN_10 (&glutBitmapTimesRoman10) |
||||
#define GLUT_BITMAP_TIMES_ROMAN_24 (&glutBitmapTimesRoman24) |
||||
#if (GLUT_API_VERSION >= 3) |
||||
#define GLUT_BITMAP_HELVETICA_10 (&glutBitmapHelvetica10) |
||||
#define GLUT_BITMAP_HELVETICA_12 (&glutBitmapHelvetica12) |
||||
#define GLUT_BITMAP_HELVETICA_18 (&glutBitmapHelvetica18) |
||||
#endif |
||||
#endif |
||||
|
||||
/* glutGet parameters. */ |
||||
#define GLUT_WINDOW_X 100 |
||||
#define GLUT_WINDOW_Y 101 |
||||
#define GLUT_WINDOW_WIDTH 102 |
||||
#define GLUT_WINDOW_HEIGHT 103 |
||||
#define GLUT_WINDOW_BUFFER_SIZE 104 |
||||
#define GLUT_WINDOW_STENCIL_SIZE 105 |
||||
#define GLUT_WINDOW_DEPTH_SIZE 106 |
||||
#define GLUT_WINDOW_RED_SIZE 107 |
||||
#define GLUT_WINDOW_GREEN_SIZE 108 |
||||
#define GLUT_WINDOW_BLUE_SIZE 109 |
||||
#define GLUT_WINDOW_ALPHA_SIZE 110 |
||||
#define GLUT_WINDOW_ACCUM_RED_SIZE 111 |
||||
#define GLUT_WINDOW_ACCUM_GREEN_SIZE 112 |
||||
#define GLUT_WINDOW_ACCUM_BLUE_SIZE 113 |
||||
#define GLUT_WINDOW_ACCUM_ALPHA_SIZE 114 |
||||
#define GLUT_WINDOW_DOUBLEBUFFER 115 |
||||
#define GLUT_WINDOW_RGBA 116 |
||||
#define GLUT_WINDOW_PARENT 117 |
||||
#define GLUT_WINDOW_NUM_CHILDREN 118 |
||||
#define GLUT_WINDOW_COLORMAP_SIZE 119 |
||||
#if (GLUT_API_VERSION >= 2) |
||||
#define GLUT_WINDOW_NUM_SAMPLES 120 |
||||
#define GLUT_WINDOW_STEREO 121 |
||||
#endif |
||||
#if (GLUT_API_VERSION >= 3) |
||||
#define GLUT_WINDOW_CURSOR 122 |
||||
#endif |
||||
#define GLUT_SCREEN_WIDTH 200 |
||||
#define GLUT_SCREEN_HEIGHT 201 |
||||
#define GLUT_SCREEN_WIDTH_MM 202 |
||||
#define GLUT_SCREEN_HEIGHT_MM 203 |
||||
#define GLUT_MENU_NUM_ITEMS 300 |
||||
#define GLUT_DISPLAY_MODE_POSSIBLE 400 |
||||
#define GLUT_INIT_WINDOW_X 500 |
||||
#define GLUT_INIT_WINDOW_Y 501 |
||||
#define GLUT_INIT_WINDOW_WIDTH 502 |
||||
#define GLUT_INIT_WINDOW_HEIGHT 503 |
||||
#define GLUT_INIT_DISPLAY_MODE 504 |
||||
#if (GLUT_API_VERSION >= 2) |
||||
#define GLUT_ELAPSED_TIME 700 |
||||
#endif |
||||
#if (GLUT_API_VERSION >= 4 || GLUT_XLIB_IMPLEMENTATION >= 13) |
||||
#define GLUT_WINDOW_FORMAT_ID 123 |
||||
#endif |
||||
|
||||
#if (GLUT_API_VERSION >= 2) |
||||
/* glutDeviceGet parameters. */ |
||||
#define GLUT_HAS_KEYBOARD 600 |
||||
#define GLUT_HAS_MOUSE 601 |
||||
#define GLUT_HAS_SPACEBALL 602 |
||||
#define GLUT_HAS_DIAL_AND_BUTTON_BOX 603 |
||||
#define GLUT_HAS_TABLET 604 |
||||
#define GLUT_NUM_MOUSE_BUTTONS 605 |
||||
#define GLUT_NUM_SPACEBALL_BUTTONS 606 |
||||
#define GLUT_NUM_BUTTON_BOX_BUTTONS 607 |
||||
#define GLUT_NUM_DIALS 608 |
||||
#define GLUT_NUM_TABLET_BUTTONS 609 |
||||
#endif |
||||
#if (GLUT_API_VERSION >= 4 || GLUT_XLIB_IMPLEMENTATION >= 13) |
||||
#define GLUT_DEVICE_IGNORE_KEY_REPEAT 610 |
||||
#define GLUT_DEVICE_KEY_REPEAT 611 |
||||
#define GLUT_HAS_JOYSTICK 612 |
||||
#define GLUT_OWNS_JOYSTICK 613 |
||||
#define GLUT_JOYSTICK_BUTTONS 614 |
||||
#define GLUT_JOYSTICK_AXES 615 |
||||
#define GLUT_JOYSTICK_POLL_RATE 616 |
||||
#endif |
||||
|
||||
#if (GLUT_API_VERSION >= 3) |
||||
/* glutLayerGet parameters. */ |
||||
#define GLUT_OVERLAY_POSSIBLE 800 |
||||
#define GLUT_LAYER_IN_USE 801 |
||||
#define GLUT_HAS_OVERLAY 802 |
||||
#define GLUT_TRANSPARENT_INDEX 803 |
||||
#define GLUT_NORMAL_DAMAGED 804 |
||||
#define GLUT_OVERLAY_DAMAGED 805 |
||||
|
||||
#if (GLUT_API_VERSION >= 4 || GLUT_XLIB_IMPLEMENTATION >= 9) |
||||
/* glutVideoResizeGet parameters. */ |
||||
#define GLUT_VIDEO_RESIZE_POSSIBLE 900 |
||||
#define GLUT_VIDEO_RESIZE_IN_USE 901 |
||||
#define GLUT_VIDEO_RESIZE_X_DELTA 902 |
||||
#define GLUT_VIDEO_RESIZE_Y_DELTA 903 |
||||
#define GLUT_VIDEO_RESIZE_WIDTH_DELTA 904 |
||||
#define GLUT_VIDEO_RESIZE_HEIGHT_DELTA 905 |
||||
#define GLUT_VIDEO_RESIZE_X 906 |
||||
#define GLUT_VIDEO_RESIZE_Y 907 |
||||
#define GLUT_VIDEO_RESIZE_WIDTH 908 |
||||
#define GLUT_VIDEO_RESIZE_HEIGHT 909 |
||||
#endif |
||||
|
||||
/* glutUseLayer parameters. */ |
||||
#define GLUT_NORMAL 0 |
||||
#define GLUT_OVERLAY 1 |
||||
|
||||
/* glutGetModifiers return mask. */ |
||||
#define GLUT_ACTIVE_SHIFT 1 |
||||
#define GLUT_ACTIVE_CTRL 2 |
||||
#define GLUT_ACTIVE_ALT 4 |
||||
|
||||
/* glutSetCursor parameters. */ |
||||
/* Basic arrows. */ |
||||
#define GLUT_CURSOR_RIGHT_ARROW 0 |
||||
#define GLUT_CURSOR_LEFT_ARROW 1 |
||||
/* Symbolic cursor shapes. */ |
||||
#define GLUT_CURSOR_INFO 2 |
||||
#define GLUT_CURSOR_DESTROY 3 |
||||
#define GLUT_CURSOR_HELP 4 |
||||
#define GLUT_CURSOR_CYCLE 5 |
||||
#define GLUT_CURSOR_SPRAY 6 |
||||
#define GLUT_CURSOR_WAIT 7 |
||||
#define GLUT_CURSOR_TEXT 8 |
||||
#define GLUT_CURSOR_CROSSHAIR 9 |
||||
/* Directional cursors. */ |
||||
#define GLUT_CURSOR_UP_DOWN 10 |
||||
#define GLUT_CURSOR_LEFT_RIGHT 11 |
||||
/* Sizing cursors. */ |
||||
#define GLUT_CURSOR_TOP_SIDE 12 |
||||
#define GLUT_CURSOR_BOTTOM_SIDE 13 |
||||
#define GLUT_CURSOR_LEFT_SIDE 14 |
||||
#define GLUT_CURSOR_RIGHT_SIDE 15 |
||||
#define GLUT_CURSOR_TOP_LEFT_CORNER 16 |
||||
#define GLUT_CURSOR_TOP_RIGHT_CORNER 17 |
||||
#define GLUT_CURSOR_BOTTOM_RIGHT_CORNER 18 |
||||
#define GLUT_CURSOR_BOTTOM_LEFT_CORNER 19 |
||||
/* Inherit from parent window. */ |
||||
#define GLUT_CURSOR_INHERIT 100 |
||||
/* Blank cursor. */ |
||||
#define GLUT_CURSOR_NONE 101 |
||||
/* Fullscreen crosshair (if available). */ |
||||
#define GLUT_CURSOR_FULL_CROSSHAIR 102 |
||||
#endif |
||||
|
||||
/* GLUT initialization sub-API. */ |
||||
extern void APIENTRY glutInit(int *argcp, char **argv); |
||||
extern void APIENTRY glutInitDisplayMode(unsigned int mode); |
||||
#if (GLUT_API_VERSION >= 4 || GLUT_XLIB_IMPLEMENTATION >= 9) |
||||
extern void APIENTRY glutInitDisplayString(const char *string); |
||||
#endif |
||||
extern void APIENTRY glutInitWindowPosition(int x, int y); |
||||
extern void APIENTRY glutInitWindowSize(int width, int height); |
||||
extern void APIENTRY glutMainLoop(void); |
||||
|
||||
/* GLUT window sub-API. */ |
||||
extern int APIENTRY glutCreateWindow(const char *title); |
||||
extern int APIENTRY glutCreateSubWindow(int win, int x, int y, int width, int height); |
||||
extern void APIENTRY glutDestroyWindow(int win); |
||||
extern void APIENTRY glutPostRedisplay(void); |
||||
#if (GLUT_API_VERSION >= 4 || GLUT_XLIB_IMPLEMENTATION >= 11) |
||||
extern void APIENTRY glutPostWindowRedisplay(int win); |
||||
#endif |
||||
extern void APIENTRY glutSwapBuffers(void); |
||||
extern int APIENTRY glutGetWindow(void); |
||||
extern void APIENTRY glutSetWindow(int win); |
||||
extern void APIENTRY glutSetWindowTitle(const char *title); |
||||
extern void APIENTRY glutSetIconTitle(const char *title); |
||||
extern void APIENTRY glutPositionWindow(int x, int y); |
||||
extern void APIENTRY glutReshapeWindow(int width, int height); |
||||
extern void APIENTRY glutPopWindow(void); |
||||
extern void APIENTRY glutPushWindow(void); |
||||
extern void APIENTRY glutIconifyWindow(void); |
||||
extern void APIENTRY glutShowWindow(void); |
||||
extern void APIENTRY glutHideWindow(void); |
||||
#if (GLUT_API_VERSION >= 3) |
||||
extern void APIENTRY glutFullScreen(void); |
||||
extern void APIENTRY glutSetCursor(int cursor); |
||||
#if (GLUT_API_VERSION >= 4 || GLUT_XLIB_IMPLEMENTATION >= 9) |
||||
extern void APIENTRY glutWarpPointer(int x, int y); |
||||
#endif |
||||
|
||||
/* GLUT overlay sub-API. */ |
||||
extern void APIENTRY glutEstablishOverlay(void); |
||||
extern void APIENTRY glutRemoveOverlay(void); |
||||
extern void APIENTRY glutUseLayer(GLenum layer); |
||||
extern void APIENTRY glutPostOverlayRedisplay(void); |
||||
#if (GLUT_API_VERSION >= 4 || GLUT_XLIB_IMPLEMENTATION >= 11) |
||||
extern void APIENTRY glutPostWindowOverlayRedisplay(int win); |
||||
#endif |
||||
extern void APIENTRY glutShowOverlay(void); |
||||
extern void APIENTRY glutHideOverlay(void); |
||||
#endif |
||||
|
||||
/* GLUT menu sub-API. */ |
||||
extern int APIENTRY glutCreateMenu(void (*)(int)); |
||||
extern void APIENTRY glutDestroyMenu(int menu); |
||||
extern int APIENTRY glutGetMenu(void); |
||||
extern void APIENTRY glutSetMenu(int menu); |
||||
extern void APIENTRY glutAddMenuEntry(const char *label, int value); |
||||
extern void APIENTRY glutAddSubMenu(const char *label, int submenu); |
||||
extern void APIENTRY glutChangeToMenuEntry(int item, const char *label, int value); |
||||
extern void APIENTRY glutChangeToSubMenu(int item, const char *label, int submenu); |
||||
extern void APIENTRY glutRemoveMenuItem(int item); |
||||
extern void APIENTRY glutAttachMenu(int button); |
||||
extern void APIENTRY glutDetachMenu(int button); |
||||
|
||||
/* GLUT window callback sub-API. */ |
||||
extern void APIENTRY glutDisplayFunc(void (*func)(void)); |
||||
extern void APIENTRY glutReshapeFunc(void (*func)(int width, int height)); |
||||
extern void APIENTRY glutKeyboardFunc(void (*func)(unsigned char key, int x, int y)); |
||||
extern void APIENTRY glutMouseFunc(void (*func)(int button, int state, int x, int y)); |
||||
extern void APIENTRY glutMotionFunc(void (*func)(int x, int y)); |
||||
extern void APIENTRY glutPassiveMotionFunc(void (*func)(int x, int y)); |
||||
extern void APIENTRY glutEntryFunc(void (*func)(int state)); |
||||
extern void APIENTRY glutVisibilityFunc(void (*func)(int state)); |
||||
extern void APIENTRY glutIdleFunc(void (*func)(void)); |
||||
extern void APIENTRY glutTimerFunc(unsigned int millis, void (*func)(int value), int value); |
||||
extern void APIENTRY glutMenuStateFunc(void (*func)(int state)); |
||||
#if (GLUT_API_VERSION >= 2) |
||||
extern void APIENTRY glutSpecialFunc(void (*func)(int key, int x, int y)); |
||||
extern void APIENTRY glutSpaceballMotionFunc(void (*func)(int x, int y, int z)); |
||||
extern void APIENTRY glutSpaceballRotateFunc(void (*func)(int x, int y, int z)); |
||||
extern void APIENTRY glutSpaceballButtonFunc(void (*func)(int button, int state)); |
||||
extern void APIENTRY glutButtonBoxFunc(void (*func)(int button, int state)); |
||||
extern void APIENTRY glutDialsFunc(void (*func)(int dial, int value)); |
||||
extern void APIENTRY glutTabletMotionFunc(void (*func)(int x, int y)); |
||||
extern void APIENTRY glutTabletButtonFunc(void (*func)(int button, int state, int x, int y)); |
||||
#if (GLUT_API_VERSION >= 3) |
||||
extern void APIENTRY glutMenuStatusFunc(void (*func)(int status, int x, int y)); |
||||
extern void APIENTRY glutOverlayDisplayFunc(void (*func)(void)); |
||||
#if (GLUT_API_VERSION >= 4 || GLUT_XLIB_IMPLEMENTATION >= 9) |
||||
extern void APIENTRY glutWindowStatusFunc(void (*func)(int state)); |
||||
#endif |
||||
#if (GLUT_API_VERSION >= 4 || GLUT_XLIB_IMPLEMENTATION >= 13) |
||||
extern void APIENTRY glutKeyboardUpFunc(void (*func)(unsigned char key, int x, int y)); |
||||
extern void APIENTRY glutSpecialUpFunc(void (*func)(int key, int x, int y)); |
||||
extern void APIENTRY glutJoystickFunc(void (*func)(unsigned int buttonMask, int x, int y, int z), int pollInterval); |
||||
#endif |
||||
#endif |
||||
#endif |
||||
|
||||
/* GLUT color index sub-API. */ |
||||
extern void APIENTRY glutSetColor(int, GLfloat red, GLfloat green, GLfloat blue); |
||||
extern GLfloat APIENTRY glutGetColor(int ndx, int component); |
||||
extern void APIENTRY glutCopyColormap(int win); |
||||
|
||||
/* GLUT state retrieval sub-API. */ |
||||
extern int APIENTRY glutGet(GLenum type); |
||||
extern int APIENTRY glutDeviceGet(GLenum type); |
||||
#if (GLUT_API_VERSION >= 2) |
||||
/* GLUT extension support sub-API */ |
||||
extern int APIENTRY glutExtensionSupported(const char *name); |
||||
#endif |
||||
#if (GLUT_API_VERSION >= 3) |
||||
extern int APIENTRY glutGetModifiers(void); |
||||
extern int APIENTRY glutLayerGet(GLenum type); |
||||
#endif |
||||
|
||||
/* GLUT font sub-API */ |
||||
extern void APIENTRY glutBitmapCharacter(void *font, int character); |
||||
extern int APIENTRY glutBitmapWidth(void *font, int character); |
||||
extern void APIENTRY glutStrokeCharacter(void *font, int character); |
||||
extern int APIENTRY glutStrokeWidth(void *font, int character); |
||||
#if (GLUT_API_VERSION >= 4 || GLUT_XLIB_IMPLEMENTATION >= 9) |
||||
extern int APIENTRY glutBitmapLength(void *font, const unsigned char *string); |
||||
extern int APIENTRY glutStrokeLength(void *font, const unsigned char *string); |
||||
#endif |
||||
|
||||
/* GLUT pre-built models sub-API */ |
||||
extern void APIENTRY glutWireSphere(GLdouble radius, GLint slices, GLint stacks); |
||||
extern void APIENTRY glutSolidSphere(GLdouble radius, GLint slices, GLint stacks); |
||||
extern void APIENTRY glutWireCone(GLdouble base, GLdouble height, GLint slices, GLint stacks); |
||||
extern void APIENTRY glutSolidCone(GLdouble base, GLdouble height, GLint slices, GLint stacks); |
||||
extern void APIENTRY glutWireCube(GLdouble size); |
||||
extern void APIENTRY glutSolidCube(GLdouble size); |
||||
extern void APIENTRY glutWireTorus(GLdouble innerRadius, GLdouble outerRadius, GLint sides, GLint rings); |
||||
extern void APIENTRY glutSolidTorus(GLdouble innerRadius, GLdouble outerRadius, GLint sides, GLint rings); |
||||
extern void APIENTRY glutWireDodecahedron(void); |
||||
extern void APIENTRY glutSolidDodecahedron(void); |
||||
extern void APIENTRY glutWireTeapot(GLdouble size); |
||||
extern void APIENTRY glutSolidTeapot(GLdouble size); |
||||
extern void APIENTRY glutWireOctahedron(void); |
||||
extern void APIENTRY glutSolidOctahedron(void); |
||||
extern void APIENTRY glutWireTetrahedron(void); |
||||
extern void APIENTRY glutSolidTetrahedron(void); |
||||
extern void APIENTRY glutWireIcosahedron(void); |
||||
extern void APIENTRY glutSolidIcosahedron(void); |
||||
|
||||
#if (GLUT_API_VERSION >= 4 || GLUT_XLIB_IMPLEMENTATION >= 9) |
||||
/* GLUT video resize sub-API. */ |
||||
extern int APIENTRY glutVideoResizeGet(GLenum param); |
||||
extern void APIENTRY glutSetupVideoResizing(void); |
||||
extern void APIENTRY glutStopVideoResizing(void); |
||||
extern void APIENTRY glutVideoResize(int x, int y, int width, int height); |
||||
extern void APIENTRY glutVideoPan(int x, int y, int width, int height); |
||||
|
||||
/* GLUT debugging sub-API. */ |
||||
extern void APIENTRY glutReportErrors(void); |
||||
#endif |
||||
|
||||
#if (GLUT_API_VERSION >= 4 || GLUT_XLIB_IMPLEMENTATION >= 13) |
||||
/* GLUT device control sub-API. */ |
||||
/* glutSetKeyRepeat modes. */ |
||||
#define GLUT_KEY_REPEAT_OFF 0 |
||||
#define GLUT_KEY_REPEAT_ON 1 |
||||
#define GLUT_KEY_REPEAT_DEFAULT 2 |
||||
|
||||
/* Joystick button masks. */ |
||||
#define GLUT_JOYSTICK_BUTTON_A 1 |
||||
#define GLUT_JOYSTICK_BUTTON_B 2 |
||||
#define GLUT_JOYSTICK_BUTTON_C 4 |
||||
#define GLUT_JOYSTICK_BUTTON_D 8 |
||||
|
||||
extern void APIENTRY glutIgnoreKeyRepeat(int ignore); |
||||
extern void APIENTRY glutSetKeyRepeat(int repeatMode); |
||||
extern void APIENTRY glutForceJoystickFunc(void); |
||||
|
||||
/* GLUT game mode sub-API. */ |
||||
/* glutGameModeGet. */ |
||||
#define GLUT_GAME_MODE_ACTIVE 0 |
||||
#define GLUT_GAME_MODE_POSSIBLE 1 |
||||
#define GLUT_GAME_MODE_WIDTH 2 |
||||
#define GLUT_GAME_MODE_HEIGHT 3 |
||||
#define GLUT_GAME_MODE_PIXEL_DEPTH 4 |
||||
#define GLUT_GAME_MODE_REFRESH_RATE 5 |
||||
#define GLUT_GAME_MODE_DISPLAY_CHANGED 6 |
||||
|
||||
extern void APIENTRY glutGameModeString(const char *string); |
||||
extern int APIENTRY glutEnterGameMode(void); |
||||
extern void APIENTRY glutLeaveGameMode(void); |
||||
extern int APIENTRY glutGameModeGet(GLenum mode); |
||||
#endif |
||||
|
||||
#ifdef __cplusplus |
||||
} |
||||
|
||||
#endif |
||||
|
||||
#ifdef GLUT_APIENTRY_DEFINED |
||||
# undef GLUT_APIENTRY_DEFINED |
||||
# undef APIENTRY |
||||
#endif |
||||
|
||||
#ifdef GLUT_WINGDIAPI_DEFINED |
||||
# undef GLUT_WINGDIAPI_DEFINED |
||||
# undef WINGDIAPI |
||||
#endif |
||||
|
||||
#endif /* __glut_h__ */ |
@ -0,0 +1,693 @@
@@ -0,0 +1,693 @@
|
||||
# Makefile.in generated by automake 1.15.1 from Makefile.am.
|
||||
# include/curl/Makefile. Generated from Makefile.in by configure.
|
||||
|
||||
# Copyright (C) 1994-2017 Free Software Foundation, Inc.
|
||||
|
||||
# This Makefile.in is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
# with or without modifications, as long as this notice is preserved.
|
||||
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
|
||||
# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
|
||||
# PARTICULAR PURPOSE.
|
||||
|
||||
|
||||
|
||||
|
||||
am__is_gnu_make = { \
|
||||
if test -z '$(MAKELEVEL)'; then \
|
||||
false; \
|
||||
elif test -n '$(MAKE_HOST)'; then \
|
||||
true; \
|
||||
elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
|
||||
true; \
|
||||
else \
|
||||
false; \
|
||||
fi; \
|
||||
} |
||||
am__make_running_with_option = \
|
||||
case $${target_option-} in \
|
||||
?) ;; \
|
||||
*) echo "am__make_running_with_option: internal error: invalid" \
|
||||
"target option '$${target_option-}' specified" >&2; \
|
||||
exit 1;; \
|
||||
esac; \
|
||||
has_opt=no; \
|
||||
sane_makeflags=$$MAKEFLAGS; \
|
||||
if $(am__is_gnu_make); then \
|
||||
sane_makeflags=$$MFLAGS; \
|
||||
else \
|
||||
case $$MAKEFLAGS in \
|
||||
*\\[\ \ ]*) \
|
||||
bs=\\; \
|
||||
sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
|
||||
| sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \
|
||||
esac; \
|
||||
fi; \
|
||||
skip_next=no; \
|
||||
strip_trailopt () \
|
||||
{ \
|
||||
flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
|
||||
}; \
|
||||
for flg in $$sane_makeflags; do \
|
||||
test $$skip_next = yes && { skip_next=no; continue; }; \
|
||||
case $$flg in \
|
||||
*=*|--*) continue;; \
|
||||
-*I) strip_trailopt 'I'; skip_next=yes;; \
|
||||
-*I?*) strip_trailopt 'I';; \
|
||||
-*O) strip_trailopt 'O'; skip_next=yes;; \
|
||||
-*O?*) strip_trailopt 'O';; \
|
||||
-*l) strip_trailopt 'l'; skip_next=yes;; \
|
||||
-*l?*) strip_trailopt 'l';; \
|
||||
-[dEDm]) skip_next=yes;; \
|
||||
-[JT]) skip_next=yes;; \
|
||||
esac; \
|
||||
case $$flg in \
|
||||
*$$target_option*) has_opt=yes; break;; \
|
||||
esac; \
|
||||
done; \
|
||||
test $$has_opt = yes |
||||
am__make_dryrun = (target_option=n; $(am__make_running_with_option)) |
||||
am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) |
||||
pkgdatadir = $(datadir)/curl |
||||
pkglibdir = $(libdir)/curl |
||||
pkglibexecdir = $(libexecdir)/curl |
||||
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd |
||||
install_sh_DATA = $(install_sh) -c -m 644 |
||||
install_sh_PROGRAM = $(install_sh) -c |
||||
install_sh_SCRIPT = $(install_sh) -c |
||||
INSTALL_HEADER = $(INSTALL_DATA) |
||||
transform = $(program_transform_name) |
||||
NORMAL_INSTALL = : |
||||
PRE_INSTALL = : |
||||
POST_INSTALL = : |
||||
NORMAL_UNINSTALL = : |
||||
PRE_UNINSTALL = : |
||||
POST_UNINSTALL = : |
||||
build_triplet = i686-w64-mingw32 |
||||
host_triplet = i686-w64-mingw32 |
||||
subdir = include/curl |
||||
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 |
||||
am__aclocal_m4_deps = $(top_srcdir)/m4/ax_code_coverage.m4 \
|
||||
$(top_srcdir)/m4/curl-compilers.m4 \
|
||||
$(top_srcdir)/m4/curl-confopts.m4 \
|
||||
$(top_srcdir)/m4/curl-functions.m4 \
|
||||
$(top_srcdir)/m4/curl-openssl.m4 \
|
||||
$(top_srcdir)/m4/curl-override.m4 \
|
||||
$(top_srcdir)/m4/curl-reentrant.m4 $(top_srcdir)/m4/libtool.m4 \
|
||||
$(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
|
||||
$(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
|
||||
$(top_srcdir)/m4/xc-am-iface.m4 \
|
||||
$(top_srcdir)/m4/xc-cc-check.m4 \
|
||||
$(top_srcdir)/m4/xc-lt-iface.m4 \
|
||||
$(top_srcdir)/m4/xc-translit.m4 \
|
||||
$(top_srcdir)/m4/xc-val-flgs.m4 \
|
||||
$(top_srcdir)/m4/zz40-xc-ovr.m4 \
|
||||
$(top_srcdir)/m4/zz50-xc-ovr.m4 \
|
||||
$(top_srcdir)/m4/zz60-xc-ovr.m4 $(top_srcdir)/acinclude.m4 \
|
||||
$(top_srcdir)/configure.ac |
||||
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
|
||||
$(ACLOCAL_M4) |
||||
DIST_COMMON = $(srcdir)/Makefile.am $(pkginclude_HEADERS) \
|
||||
$(am__DIST_COMMON) |
||||
mkinstalldirs = $(install_sh) -d |
||||
CONFIG_HEADER = $(top_builddir)/lib/curl_config.h |
||||
CONFIG_CLEAN_FILES = |
||||
CONFIG_CLEAN_VPATH_FILES = |
||||
AM_V_P = $(am__v_P_$(V)) |
||||
am__v_P_ = $(am__v_P_$(AM_DEFAULT_VERBOSITY)) |
||||
am__v_P_0 = false |
||||
am__v_P_1 = : |
||||
AM_V_GEN = $(am__v_GEN_$(V)) |
||||
am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY)) |
||||
am__v_GEN_0 = @echo " GEN " $@; |
||||
am__v_GEN_1 = |
||||
AM_V_at = $(am__v_at_$(V)) |
||||
am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY)) |
||||
am__v_at_0 = @ |
||||
am__v_at_1 = |
||||
SOURCES = |
||||
DIST_SOURCES = |
||||
am__can_run_installinfo = \
|
||||
case $$AM_UPDATE_INFO_DIR in \
|
||||
n|no|NO) false;; \
|
||||
*) (install-info --version) >/dev/null 2>&1;; \
|
||||
esac |
||||
am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; |
||||
am__vpath_adj = case $$p in \
|
||||
$(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
|
||||
*) f=$$p;; \
|
||||
esac; |
||||
am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; |
||||
am__install_max = 40 |
||||
am__nobase_strip_setup = \
|
||||
srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` |
||||
am__nobase_strip = \
|
||||
for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" |
||||
am__nobase_list = $(am__nobase_strip_setup); \
|
||||
for p in $$list; do echo "$$p $$p"; done | \
|
||||
sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
|
||||
$(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
|
||||
if (++n[$$2] == $(am__install_max)) \
|
||||
{ print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
|
||||
END { for (dir in files) print dir, files[dir] }' |
||||
am__base_list = \
|
||||
sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
|
||||
sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' |
||||
am__uninstall_files_from_dir = { \
|
||||
test -z "$$files" \
|
||||
|| { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
|
||||
|| { echo " ( cd '$$dir' && rm -f" $$files ")"; \
|
||||
$(am__cd) "$$dir" && rm -f $$files; }; \
|
||||
} |
||||
am__installdirs = "$(DESTDIR)$(pkgincludedir)" |
||||
HEADERS = $(pkginclude_HEADERS) |
||||
am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) |
||||
# Read a list of newline-separated strings from the standard input,
|
||||
# and print each of them once, without duplicates. Input order is
|
||||
# *not* preserved.
|
||||
am__uniquify_input = $(AWK) '\
|
||||
BEGIN { nonempty = 0; } \
|
||||
{ items[$$0] = 1; nonempty = 1; } \
|
||||
END { if (nonempty) { for (i in items) print i; }; } \
|
||||
' |
||||
# Make sure the list of sources is unique. This is necessary because,
|
||||
# e.g., the same source file might be shared among _SOURCES variables
|
||||
# for different programs/libraries.
|
||||
am__define_uniq_tagged_files = \
|
||||
list='$(am__tagged_files)'; \
|
||||
unique=`for i in $$list; do \
|
||||
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
|
||||
done | $(am__uniquify_input)` |
||||
ETAGS = etags |
||||
CTAGS = ctags |
||||
am__DIST_COMMON = $(srcdir)/Makefile.in |
||||
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) |
||||
pkgincludedir = $(includedir)/curl |
||||
ACLOCAL = ${SHELL} /home/Кирилл/curl-7.56.0/missing aclocal-1.15 |
||||
AMTAR = $${TAR-tar} |
||||
AM_DEFAULT_VERBOSITY = 0 |
||||
AR = /mingw32/bin/ar |
||||
AS = as |
||||
AUTOCONF = ${SHELL} /home/Кирилл/curl-7.56.0/missing autoconf |
||||
AUTOHEADER = ${SHELL} /home/Кирилл/curl-7.56.0/missing autoheader |
||||
AUTOMAKE = ${SHELL} /home/Кирилл/curl-7.56.0/missing automake-1.15 |
||||
AWK = gawk |
||||
BLANK_AT_MAKETIME = |
||||
CC = gcc |
||||
CCDEPMODE = depmode=gcc3 |
||||
CFLAGS = -Werror-implicit-function-declaration -O2 -Wno-system-headers |
||||
CFLAG_CURL_SYMBOL_HIDING = |
||||
CODE_COVERAGE_CFLAGS = |
||||
CODE_COVERAGE_CPPFLAGS = |
||||
CODE_COVERAGE_CXXFLAGS = |
||||
CODE_COVERAGE_ENABLED = no |
||||
CODE_COVERAGE_LDFLAGS = |
||||
CODE_COVERAGE_LIBS = |
||||
CONFIGURE_OPTIONS = " '--prefix=/mingw32'" |
||||
CPP = gcc -E |
||||
CPPFLAGS = -I/mingw32/include -I/mingw32/include -I/mingw32/include |
||||
CPPFLAG_CURL_STATICLIB = |
||||
CURLVERSION = 7.56.0 |
||||
CURL_CA_BUNDLE = |
||||
CURL_CFLAG_EXTRAS = |
||||
CURL_DISABLE_DICT = |
||||
CURL_DISABLE_FILE = |
||||
CURL_DISABLE_FTP = |
||||
CURL_DISABLE_GOPHER = |
||||
CURL_DISABLE_HTTP = |
||||
CURL_DISABLE_IMAP = |
||||
CURL_DISABLE_LDAP = |
||||
CURL_DISABLE_LDAPS = |
||||
CURL_DISABLE_POP3 = |
||||
CURL_DISABLE_PROXY = |
||||
CURL_DISABLE_RTSP = |
||||
CURL_DISABLE_SMB = |
||||
CURL_DISABLE_SMTP = |
||||
CURL_DISABLE_TELNET = |
||||
CURL_DISABLE_TFTP = |
||||
CURL_LT_SHLIB_VERSIONED_FLAVOUR = |
||||
CURL_NETWORK_AND_TIME_LIBS = -lws2_32 |
||||
CURL_NETWORK_LIBS = -lws2_32 |
||||
CURL_WITH_MULTI_SSL = |
||||
CXX = g++ |
||||
CXXCPP = g++ -E |
||||
CXXDEPMODE = depmode=gcc3 |
||||
CXXFLAGS = -g -O2 |
||||
CYGPATH_W = cygpath -w |
||||
DEFAULT_SSL_BACKEND = no |
||||
DEFS = -DHAVE_CONFIG_H |
||||
DEPDIR = .deps |
||||
DLLTOOL = dlltool |
||||
DSYMUTIL = |
||||
DUMPBIN = |
||||
ECHO_C = |
||||
ECHO_N = -n |
||||
ECHO_T = |
||||
EGREP = /usr/bin/grep -E |
||||
ENABLE_SHARED = yes |
||||
ENABLE_STATIC = yes |
||||
EXEEXT = .exe |
||||
FGREP = /usr/bin/grep -F |
||||
GCOV = |
||||
GENHTML = |
||||
GREP = /usr/bin/grep |
||||
HAVE_GNUTLS_SRP = |
||||
HAVE_LDAP_SSL = 1 |
||||
HAVE_LIBZ = 1 |
||||
HAVE_OPENSSL_SRP = 1 |
||||
IDN_ENABLED = |
||||
INSTALL = /usr/bin/install -c |
||||
INSTALL_DATA = ${INSTALL} -m 644 |
||||
INSTALL_PROGRAM = ${INSTALL} |
||||
INSTALL_SCRIPT = ${INSTALL} |
||||
INSTALL_STRIP_PROGRAM = $(install_sh) -c -s |
||||
IPV6_ENABLED = 1 |
||||
LCOV = |
||||
LD = C:/msys64/mingw32/i686-w64-mingw32/bin/ld.exe |
||||
LDFLAGS = -L/mingw32/lib -L/mingw32/lib -L/mingw32/lib |
||||
LIBCURL_LIBS = -lnghttp2 -lrtmp -lssh2 -lssl -lcrypto -lssl -lws2_32 -lgdi32 -lcrypt32 -lcrypto -lws2_32 -lgdi32 -lcrypt32 -lgdi32 -lwldap32 -lz -lws2_32 |
||||
LIBMETALINK_CPPFLAGS = |
||||
LIBMETALINK_LDFLAGS = |
||||
LIBMETALINK_LIBS = |
||||
LIBOBJS = |
||||
LIBS = -lnghttp2 -lrtmp -lssh2 -lssl -lcrypto -lssl -lws2_32 -lgdi32 -lcrypt32 -lcrypto -lws2_32 -lgdi32 -lcrypt32 -lgdi32 -lwldap32 -lz -lws2_32 |
||||
LIBTOOL = $(SHELL) $(top_builddir)/libtool |
||||
LIPO = |
||||
LN_S = ln |
||||
LTLIBOBJS = |
||||
LT_SYS_LIBRARY_PATH = |
||||
MAINT = # |
||||
MAKEINFO = ${SHELL} /home/Кирилл/curl-7.56.0/missing makeinfo |
||||
MANIFEST_TOOL = : |
||||
MANOPT = -man |
||||
MKDIR_P = /usr/bin/mkdir -p |
||||
NM = /mingw32/bin/nm -B |
||||
NMEDIT = |
||||
NROFF = /usr/bin/nroff |
||||
NSS_LIBS = |
||||
OBJDUMP = objdump |
||||
OBJEXT = o |
||||
OTOOL = |
||||
OTOOL64 = |
||||
PACKAGE = curl |
||||
PACKAGE_BUGREPORT = a suitable curl mailing list: https://curl.haxx.se/mail/ |
||||
PACKAGE_NAME = curl |
||||
PACKAGE_STRING = curl - |
||||
PACKAGE_TARNAME = curl |
||||
PACKAGE_URL = |
||||
PACKAGE_VERSION = - |
||||
PATH_SEPARATOR = : |
||||
PERL = /usr/bin/perl |
||||
PKGADD_NAME = curl - a client that groks URLs |
||||
PKGADD_PKG = HAXXcurl |
||||
PKGADD_VENDOR = curl.haxx.se |
||||
PKGCONFIG = /usr/bin/pkg-config |
||||
RANDOM_FILE = /dev/urandom |
||||
RANLIB = ranlib |
||||
REQUIRE_LIB_DEPS = yes |
||||
SED = /usr/bin/sed |
||||
SET_MAKE = |
||||
SHELL = /bin/sh |
||||
SSL_ENABLED = 1 |
||||
SSL_LIBS = -lssl -lws2_32 -lgdi32 -lcrypt32 -lcrypto -lws2_32 -lgdi32 -lcrypt32 |
||||
STRIP = strip |
||||
SUPPORT_FEATURES = SSL IPv6 libz AsynchDNS NTLM TLS-SRP HTTP2 HTTPS-proxy |
||||
SUPPORT_PROTOCOLS = DICT FILE FTP FTPS GOPHER HTTP HTTPS IMAP IMAPS LDAP LDAPS POP3 POP3S RTMP RTSP SCP SFTP SMB SMBS SMTP SMTPS TELNET TFTP |
||||
USE_ARES = |
||||
USE_AXTLS = |
||||
USE_CYASSL = |
||||
USE_DARWINSSL = |
||||
USE_GNUTLS = |
||||
USE_GNUTLS_NETTLE = |
||||
USE_LIBRTMP = 1 |
||||
USE_LIBSSH2 = 1 |
||||
USE_MBEDTLS = |
||||
USE_NGHTTP2 = 1 |
||||
USE_NSS = |
||||
USE_OPENLDAP = |
||||
USE_POLARSSL = |
||||
USE_SCHANNEL = |
||||
USE_UNIX_SOCKETS = |
||||
USE_WINDOWS_SSPI = |
||||
VERSION = - |
||||
VERSIONNUM = 073800 |
||||
ZLIB_LIBS = -lz |
||||
ZSH_FUNCTIONS_DIR = ${prefix}/share/zsh/site-functions |
||||
abs_builddir = /home/Кирилл/curl-7.56.0/include/curl |
||||
abs_srcdir = /home/Кирилл/curl-7.56.0/include/curl |
||||
abs_top_builddir = /home/Кирилл/curl-7.56.0 |
||||
abs_top_srcdir = /home/Кирилл/curl-7.56.0 |
||||
ac_ct_AR = |
||||
ac_ct_CC = gcc |
||||
ac_ct_CXX = g++ |
||||
ac_ct_DUMPBIN = |
||||
am__include = include |
||||
am__leading_dot = . |
||||
am__quote = |
||||
am__tar = $${TAR-tar} chof - "$$tardir" |
||||
am__untar = $${TAR-tar} xf - |
||||
bindir = ${exec_prefix}/bin |
||||
build = i686-w64-mingw32 |
||||
build_alias = i686-w64-mingw32 |
||||
build_cpu = i686 |
||||
build_os = mingw32 |
||||
build_vendor = w64 |
||||
builddir = . |
||||
datadir = ${datarootdir} |
||||
datarootdir = ${prefix}/share |
||||
docdir = ${datarootdir}/doc/${PACKAGE_TARNAME} |
||||
dvidir = ${docdir} |
||||
exec_prefix = ${prefix} |
||||
host = i686-w64-mingw32 |
||||
host_alias = |
||||
host_cpu = i686 |
||||
host_os = mingw32 |
||||
host_vendor = w64 |
||||
htmldir = ${docdir} |
||||
includedir = ${prefix}/include |
||||
infodir = ${datarootdir}/info |
||||
install_sh = ${SHELL} /home/Кирилл/curl-7.56.0/install-sh |
||||
libdir = ${exec_prefix}/lib |
||||
libexecdir = ${exec_prefix}/libexec |
||||
libext = a |
||||
localedir = ${datarootdir}/locale |
||||
localstatedir = ${prefix}/var |
||||
mandir = ${datarootdir}/man |
||||
mkdir_p = $(MKDIR_P) |
||||
oldincludedir = /usr/include |
||||
pdfdir = ${docdir} |
||||
prefix = /mingw32 |
||||
program_transform_name = s,x,x, |
||||
psdir = ${docdir} |
||||
runstatedir = ${localstatedir}/run |
||||
sbindir = ${exec_prefix}/sbin |
||||
sharedstatedir = ${prefix}/com |
||||
srcdir = . |
||||
subdirs = |
||||
sysconfdir = ${prefix}/etc |
||||
target_alias = |
||||
top_build_prefix = ../../ |
||||
top_builddir = ../.. |
||||
top_srcdir = ../.. |
||||
|
||||
#***************************************************************************
|
||||
# _ _ ____ _
|
||||
# Project ___| | | | _ \| |
|
||||
# / __| | | | |_) | |
|
||||
# | (__| |_| | _ <| |___
|
||||
# \___|\___/|_| \_\_____|
|
||||
#
|
||||
# Copyright (C) 1998 - 2017, Daniel Stenberg, <daniel@haxx.se>, et al.
|
||||
#
|
||||
# This software is licensed as described in the file COPYING, which
|
||||
# you should have received as part of this distribution. The terms
|
||||
# are also available at https://curl.haxx.se/docs/copyright.html.
|
||||
#
|
||||
# You may opt to use, copy, modify, merge, publish, distribute and/or sell
|
||||
# copies of the Software, and permit persons to whom the Software is
|
||||
# furnished to do so, under the terms of the COPYING file.
|
||||
#
|
||||
# This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
|
||||
# KIND, either express or implied.
|
||||
#
|
||||
###########################################################################
|
||||
pkginclude_HEADERS = \
|
||||
curl.h curlver.h easy.h mprintf.h stdcheaders.h multi.h \
|
||||
typecheck-gcc.h system.h |
||||
|
||||
all: all-am |
||||
|
||||
.SUFFIXES: |
||||
$(srcdir)/Makefile.in: # $(srcdir)/Makefile.am $(am__configure_deps)
|
||||
@for dep in $?; do \
|
||||
case '$(am__configure_deps)' in \
|
||||
*$$dep*) \
|
||||
( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
|
||||
&& { if test -f $@; then exit 0; else break; fi; }; \
|
||||
exit 1;; \
|
||||
esac; \
|
||||
done; \
|
||||
echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign include/curl/Makefile'; \
|
||||
$(am__cd) $(top_srcdir) && \
|
||||
$(AUTOMAKE) --foreign include/curl/Makefile |
||||
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status |
||||
@case '$?' in \
|
||||
*config.status*) \
|
||||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
|
||||
*) \
|
||||
echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
|
||||
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
|
||||
esac; |
||||
|
||||
$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) |
||||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh |
||||
|
||||
$(top_srcdir)/configure: # $(am__configure_deps)
|
||||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh |
||||
$(ACLOCAL_M4): # $(am__aclocal_m4_deps)
|
||||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh |
||||
$(am__aclocal_m4_deps): |
||||
|
||||
mostlyclean-libtool: |
||||
-rm -f *.lo |
||||
|
||||
clean-libtool: |
||||
-rm -rf .libs _libs |
||||
install-pkgincludeHEADERS: $(pkginclude_HEADERS) |
||||
@$(NORMAL_INSTALL) |
||||
@list='$(pkginclude_HEADERS)'; test -n "$(pkgincludedir)" || list=; \
|
||||
if test -n "$$list"; then \
|
||||
echo " $(MKDIR_P) '$(DESTDIR)$(pkgincludedir)'"; \
|
||||
$(MKDIR_P) "$(DESTDIR)$(pkgincludedir)" || exit 1; \
|
||||
fi; \
|
||||
for p in $$list; do \
|
||||
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
|
||||
echo "$$d$$p"; \
|
||||
done | $(am__base_list) | \
|
||||
while read files; do \
|
||||
echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(pkgincludedir)'"; \
|
||||
$(INSTALL_HEADER) $$files "$(DESTDIR)$(pkgincludedir)" || exit $$?; \
|
||||
done |
||||
|
||||
uninstall-pkgincludeHEADERS: |
||||
@$(NORMAL_UNINSTALL) |
||||
@list='$(pkginclude_HEADERS)'; test -n "$(pkgincludedir)" || list=; \
|
||||
files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
|
||||
dir='$(DESTDIR)$(pkgincludedir)'; $(am__uninstall_files_from_dir) |
||||
|
||||
ID: $(am__tagged_files) |
||||
$(am__define_uniq_tagged_files); mkid -fID $$unique |
||||
tags: tags-am |
||||
TAGS: tags |
||||
|
||||
tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) |
||||
set x; \
|
||||
here=`pwd`; \
|
||||
$(am__define_uniq_tagged_files); \
|
||||
shift; \
|
||||
if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
|
||||
test -n "$$unique" || unique=$$empty_fix; \
|
||||
if test $$# -gt 0; then \ |
||||
$(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
|
||||
"$$@" $$unique; \
|
||||
else \
|
||||
$(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
|
||||
$$unique; \
|
||||
fi; \
|
||||
fi |
||||
ctags: ctags-am |
||||
|
||||
CTAGS: ctags |
||||
ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) |
||||
$(am__define_uniq_tagged_files); \
|
||||
test -z "$(CTAGS_ARGS)$$unique" \
|
||||
|| $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
|
||||
$$unique |
||||
|
||||
GTAGS: |
||||
here=`$(am__cd) $(top_builddir) && pwd` \
|
||||
&& $(am__cd) $(top_srcdir) \
|
||||
&& gtags -i $(GTAGS_ARGS) "$$here" |
||||
cscopelist: cscopelist-am |
||||
|
||||
cscopelist-am: $(am__tagged_files) |
||||
list='$(am__tagged_files)'; \
|
||||
case "$(srcdir)" in \
|
||||
[\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
|
||||
*) sdir=$(subdir)/$(srcdir) ;; \
|
||||
esac; \
|
||||
for i in $$list; do \
|
||||
if test -f "$$i"; then \
|
||||
echo "$(subdir)/$$i"; \
|
||||
else \
|
||||
echo "$$sdir/$$i"; \
|
||||
fi; \
|
||||
done >> $(top_builddir)/cscope.files |
||||
|
||||
distclean-tags: |
||||
-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags |
||||
|
||||
distdir: $(DISTFILES) |
||||
@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
|
||||
topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
|
||||
list='$(DISTFILES)'; \
|
||||
dist_files=`for file in $$list; do echo $$file; done | \
|
||||
sed -e "s|^$$srcdirstrip/||;t" \
|
||||
-e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
|
||||
case $$dist_files in \
|
||||
*/*) $(MKDIR_P) `echo "$$dist_files" | \
|
||||
sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
|
||||
sort -u` ;; \
|
||||
esac; \
|
||||
for file in $$dist_files; do \
|
||||
if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
|
||||
if test -d $$d/$$file; then \
|
||||
dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
|
||||
if test -d "$(distdir)/$$file"; then \
|
||||
find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
|
||||
fi; \
|
||||
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
|
||||
cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
|
||||
find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
|
||||
fi; \
|
||||
cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
|
||||
else \
|
||||
test -f "$(distdir)/$$file" \
|
||||
|| cp -p $$d/$$file "$(distdir)/$$file" \
|
||||
|| exit 1; \
|
||||
fi; \
|
||||
done |
||||
check-am: all-am |
||||
check: check-am |
||||
all-local: |
||||
all-am: Makefile $(HEADERS) all-local |
||||
installdirs: |
||||
for dir in "$(DESTDIR)$(pkgincludedir)"; do \
|
||||
test -z "$$dir" || $(MKDIR_P) "$$dir"; \
|
||||
done |
||||
install: install-am |
||||
install-exec: install-exec-am |
||||
install-data: install-data-am |
||||
uninstall: uninstall-am |
||||
|
||||
install-am: all-am |
||||
@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am |
||||
|
||||
installcheck: installcheck-am |
||||
install-strip: |
||||
if test -z '$(STRIP)'; then \
|
||||
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
|
||||
install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
|
||||
install; \
|
||||
else \
|
||||
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
|
||||
install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
|
||||
"INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
|
||||
fi |
||||
mostlyclean-generic: |
||||
|
||||
clean-generic: |
||||
|
||||
distclean-generic: |
||||
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) |
||||
-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) |
||||
|
||||
maintainer-clean-generic: |
||||
@echo "This command is intended for maintainers to use" |
||||
@echo "it deletes files that may require special tools to rebuild." |
||||
clean: clean-am |
||||
|
||||
clean-am: clean-generic clean-libtool mostlyclean-am |
||||
|
||||
distclean: distclean-am |
||||
-rm -f Makefile |
||||
distclean-am: clean-am distclean-generic distclean-tags |
||||
|
||||
dvi: dvi-am |
||||
|
||||
dvi-am: |
||||
|
||||
html: html-am |
||||
|
||||
html-am: |
||||
|
||||
info: info-am |
||||
|
||||
info-am: |
||||
|
||||
install-data-am: install-pkgincludeHEADERS |
||||
|
||||
install-dvi: install-dvi-am |
||||
|
||||
install-dvi-am: |
||||
|
||||
install-exec-am: |
||||
|
||||
install-html: install-html-am |
||||
|
||||
install-html-am: |
||||
|
||||
install-info: install-info-am |
||||
|
||||
install-info-am: |
||||
|
||||
install-man: |
||||
|
||||
install-pdf: install-pdf-am |
||||
|
||||
install-pdf-am: |
||||
|
||||
install-ps: install-ps-am |
||||
|
||||
install-ps-am: |
||||
|
||||
installcheck-am: |
||||
|
||||
maintainer-clean: maintainer-clean-am |
||||
-rm -f Makefile |
||||
maintainer-clean-am: distclean-am maintainer-clean-generic |
||||
|
||||
mostlyclean: mostlyclean-am |
||||
|
||||
mostlyclean-am: mostlyclean-generic mostlyclean-libtool |
||||
|
||||
pdf: pdf-am |
||||
|
||||
pdf-am: |
||||
|
||||
ps: ps-am |
||||
|
||||
ps-am: |
||||
|
||||
uninstall-am: uninstall-pkgincludeHEADERS |
||||
|
||||
.MAKE: install-am install-strip |
||||
|
||||
.PHONY: CTAGS GTAGS TAGS all all-am all-local check check-am clean \ |
||||
clean-generic clean-libtool cscopelist-am ctags ctags-am \
|
||||
distclean distclean-generic distclean-libtool distclean-tags \
|
||||
distdir dvi dvi-am html html-am info info-am install \
|
||||
install-am install-data install-data-am install-dvi \
|
||||
install-dvi-am install-exec install-exec-am install-html \
|
||||
install-html-am install-info install-info-am install-man \
|
||||
install-pdf install-pdf-am install-pkgincludeHEADERS \
|
||||
install-ps install-ps-am install-strip installcheck \
|
||||
installcheck-am installdirs maintainer-clean \
|
||||
maintainer-clean-generic mostlyclean mostlyclean-generic \
|
||||
mostlyclean-libtool pdf pdf-am ps ps-am tags tags-am uninstall \
|
||||
uninstall-am uninstall-pkgincludeHEADERS |
||||
|
||||
.PRECIOUS: Makefile |
||||
|
||||
|
||||
checksrc: |
||||
@/usr/bin/perl $(top_srcdir)/lib/checksrc.pl -D$(top_srcdir)/include/curl $(pkginclude_HEADERS) |
||||
|
||||
# for debug builds, we scan the sources on all regular make invokes
|
||||
#all-local: checksrc
|
||||
|
||||
# Tell versions [3.59,3.63) of GNU make to not export all variables.
|
||||
# Otherwise a system limit (for SysV at least) may be exceeded.
|
||||
.NOEXPORT: |
@ -0,0 +1,34 @@
@@ -0,0 +1,34 @@
|
||||
#***************************************************************************
|
||||
# _ _ ____ _
|
||||
# Project ___| | | | _ \| |
|
||||
# / __| | | | |_) | |
|
||||
# | (__| |_| | _ <| |___
|
||||
# \___|\___/|_| \_\_____|
|
||||
#
|
||||
# Copyright (C) 1998 - 2017, Daniel Stenberg, <daniel@haxx.se>, et al.
|
||||
#
|
||||
# This software is licensed as described in the file COPYING, which
|
||||
# you should have received as part of this distribution. The terms
|
||||
# are also available at https://curl.haxx.se/docs/copyright.html.
|
||||
#
|
||||
# You may opt to use, copy, modify, merge, publish, distribute and/or sell
|
||||
# copies of the Software, and permit persons to whom the Software is
|
||||
# furnished to do so, under the terms of the COPYING file.
|
||||
#
|
||||
# This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
|
||||
# KIND, either express or implied.
|
||||
#
|
||||
###########################################################################
|
||||
pkginclude_HEADERS = \
|
||||
curl.h curlver.h easy.h mprintf.h stdcheaders.h multi.h \
|
||||
typecheck-gcc.h system.h |
||||
|
||||
pkgincludedir= $(includedir)/curl |
||||
|
||||
checksrc: |
||||
@@PERL@ $(top_srcdir)/lib/checksrc.pl -D$(top_srcdir)/include/curl $(pkginclude_HEADERS) |
||||
|
||||
if CURLDEBUG |
||||
# for debug builds, we scan the sources on all regular make invokes
|
||||
all-local: checksrc |
||||
endif |
@ -0,0 +1,693 @@
@@ -0,0 +1,693 @@
|
||||
# Makefile.in generated by automake 1.15.1 from Makefile.am.
|
||||
# @configure_input@
|
||||
|
||||
# Copyright (C) 1994-2017 Free Software Foundation, Inc.
|
||||
|
||||
# This Makefile.in is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
# with or without modifications, as long as this notice is preserved.
|
||||
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
|
||||
# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
|
||||
# PARTICULAR PURPOSE.
|
||||
|
||||
@SET_MAKE@ |
||||
|
||||
VPATH = @srcdir@ |
||||
am__is_gnu_make = { \
|
||||
if test -z '$(MAKELEVEL)'; then \
|
||||
false; \
|
||||
elif test -n '$(MAKE_HOST)'; then \
|
||||
true; \
|
||||
elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
|
||||
true; \
|
||||
else \
|
||||
false; \
|
||||
fi; \
|
||||
} |
||||
am__make_running_with_option = \
|
||||
case $${target_option-} in \
|
||||
?) ;; \
|
||||
*) echo "am__make_running_with_option: internal error: invalid" \
|
||||
"target option '$${target_option-}' specified" >&2; \
|
||||
exit 1;; \
|
||||
esac; \
|
||||
has_opt=no; \
|
||||
sane_makeflags=$$MAKEFLAGS; \
|
||||
if $(am__is_gnu_make); then \
|
||||
sane_makeflags=$$MFLAGS; \
|
||||
else \
|
||||
case $$MAKEFLAGS in \
|
||||
*\\[\ \ ]*) \
|
||||
bs=\\; \
|
||||
sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
|
||||
| sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \
|
||||
esac; \
|
||||
fi; \
|
||||
skip_next=no; \
|
||||
strip_trailopt () \
|
||||
{ \
|
||||
flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
|
||||
}; \
|
||||
for flg in $$sane_makeflags; do \
|
||||
test $$skip_next = yes && { skip_next=no; continue; }; \
|
||||
case $$flg in \
|
||||
*=*|--*) continue;; \
|
||||
-*I) strip_trailopt 'I'; skip_next=yes;; \
|
||||
-*I?*) strip_trailopt 'I';; \
|
||||
-*O) strip_trailopt 'O'; skip_next=yes;; \
|
||||
-*O?*) strip_trailopt 'O';; \
|
||||
-*l) strip_trailopt 'l'; skip_next=yes;; \
|
||||
-*l?*) strip_trailopt 'l';; \
|
||||
-[dEDm]) skip_next=yes;; \
|
||||
-[JT]) skip_next=yes;; \
|
||||
esac; \
|
||||
case $$flg in \
|
||||
*$$target_option*) has_opt=yes; break;; \
|
||||
esac; \
|
||||
done; \
|
||||
test $$has_opt = yes |
||||
am__make_dryrun = (target_option=n; $(am__make_running_with_option)) |
||||
am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) |
||||
pkgdatadir = $(datadir)/@PACKAGE@ |
||||
pkglibdir = $(libdir)/@PACKAGE@ |
||||
pkglibexecdir = $(libexecdir)/@PACKAGE@ |
||||
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd |
||||
install_sh_DATA = $(install_sh) -c -m 644 |
||||
install_sh_PROGRAM = $(install_sh) -c |
||||
install_sh_SCRIPT = $(install_sh) -c |
||||
INSTALL_HEADER = $(INSTALL_DATA) |
||||
transform = $(program_transform_name) |
||||
NORMAL_INSTALL = : |
||||
PRE_INSTALL = : |
||||
POST_INSTALL = : |
||||
NORMAL_UNINSTALL = : |
||||
PRE_UNINSTALL = : |
||||
POST_UNINSTALL = : |
||||
build_triplet = @build@ |
||||
host_triplet = @host@ |
||||
subdir = include/curl |
||||
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 |
||||
am__aclocal_m4_deps = $(top_srcdir)/m4/ax_code_coverage.m4 \
|
||||
$(top_srcdir)/m4/curl-compilers.m4 \
|
||||
$(top_srcdir)/m4/curl-confopts.m4 \
|
||||
$(top_srcdir)/m4/curl-functions.m4 \
|
||||
$(top_srcdir)/m4/curl-openssl.m4 \
|
||||
$(top_srcdir)/m4/curl-override.m4 \
|
||||
$(top_srcdir)/m4/curl-reentrant.m4 $(top_srcdir)/m4/libtool.m4 \
|
||||
$(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
|
||||
$(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
|
||||
$(top_srcdir)/m4/xc-am-iface.m4 \
|
||||
$(top_srcdir)/m4/xc-cc-check.m4 \
|
||||
$(top_srcdir)/m4/xc-lt-iface.m4 \
|
||||
$(top_srcdir)/m4/xc-translit.m4 \
|
||||
$(top_srcdir)/m4/xc-val-flgs.m4 \
|
||||
$(top_srcdir)/m4/zz40-xc-ovr.m4 \
|
||||
$(top_srcdir)/m4/zz50-xc-ovr.m4 \
|
||||
$(top_srcdir)/m4/zz60-xc-ovr.m4 $(top_srcdir)/acinclude.m4 \
|
||||
$(top_srcdir)/configure.ac |
||||
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
|
||||
$(ACLOCAL_M4) |
||||
DIST_COMMON = $(srcdir)/Makefile.am $(pkginclude_HEADERS) \
|
||||
$(am__DIST_COMMON) |
||||
mkinstalldirs = $(install_sh) -d |
||||
CONFIG_HEADER = $(top_builddir)/lib/curl_config.h |
||||
CONFIG_CLEAN_FILES = |
||||
CONFIG_CLEAN_VPATH_FILES = |
||||
AM_V_P = $(am__v_P_@AM_V@) |
||||
am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) |
||||
am__v_P_0 = false |
||||
am__v_P_1 = : |
||||
AM_V_GEN = $(am__v_GEN_@AM_V@) |
||||
am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) |
||||
am__v_GEN_0 = @echo " GEN " $@; |
||||
am__v_GEN_1 = |
||||
AM_V_at = $(am__v_at_@AM_V@) |
||||
am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) |
||||
am__v_at_0 = @ |
||||
am__v_at_1 = |
||||
SOURCES = |
||||
DIST_SOURCES = |
||||
am__can_run_installinfo = \
|
||||
case $$AM_UPDATE_INFO_DIR in \
|
||||
n|no|NO) false;; \
|
||||
*) (install-info --version) >/dev/null 2>&1;; \
|
||||
esac |
||||
am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; |
||||
am__vpath_adj = case $$p in \
|
||||
$(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
|
||||
*) f=$$p;; \
|
||||
esac; |
||||
am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; |
||||
am__install_max = 40 |
||||
am__nobase_strip_setup = \
|
||||
srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` |
||||
am__nobase_strip = \
|
||||
for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" |
||||
am__nobase_list = $(am__nobase_strip_setup); \
|
||||
for p in $$list; do echo "$$p $$p"; done | \
|
||||
sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
|
||||
$(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
|
||||
if (++n[$$2] == $(am__install_max)) \
|
||||
{ print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
|
||||
END { for (dir in files) print dir, files[dir] }' |
||||
am__base_list = \
|
||||
sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
|
||||
sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' |
||||
am__uninstall_files_from_dir = { \
|
||||
test -z "$$files" \
|
||||
|| { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
|
||||
|| { echo " ( cd '$$dir' && rm -f" $$files ")"; \
|
||||
$(am__cd) "$$dir" && rm -f $$files; }; \
|
||||
} |
||||
am__installdirs = "$(DESTDIR)$(pkgincludedir)" |
||||
HEADERS = $(pkginclude_HEADERS) |
||||
am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) |
||||
# Read a list of newline-separated strings from the standard input,
|
||||
# and print each of them once, without duplicates. Input order is
|
||||
# *not* preserved.
|
||||
am__uniquify_input = $(AWK) '\
|
||||
BEGIN { nonempty = 0; } \
|
||||
{ items[$$0] = 1; nonempty = 1; } \
|
||||
END { if (nonempty) { for (i in items) print i; }; } \
|
||||
' |
||||
# Make sure the list of sources is unique. This is necessary because,
|
||||
# e.g., the same source file might be shared among _SOURCES variables
|
||||
# for different programs/libraries.
|
||||
am__define_uniq_tagged_files = \
|
||||
list='$(am__tagged_files)'; \
|
||||
unique=`for i in $$list; do \
|
||||
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
|
||||
done | $(am__uniquify_input)` |
||||
ETAGS = etags |
||||
CTAGS = ctags |
||||
am__DIST_COMMON = $(srcdir)/Makefile.in |
||||
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) |
||||
pkgincludedir = $(includedir)/curl |
||||
ACLOCAL = @ACLOCAL@ |
||||
AMTAR = @AMTAR@ |
||||
AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ |
||||
AR = @AR@ |
||||
AS = @AS@ |
||||
AUTOCONF = @AUTOCONF@ |
||||
AUTOHEADER = @AUTOHEADER@ |
||||
AUTOMAKE = @AUTOMAKE@ |
||||
AWK = @AWK@ |
||||
BLANK_AT_MAKETIME = @BLANK_AT_MAKETIME@ |
||||
CC = @CC@ |
||||
CCDEPMODE = @CCDEPMODE@ |
||||
CFLAGS = @CFLAGS@ |
||||
CFLAG_CURL_SYMBOL_HIDING = @CFLAG_CURL_SYMBOL_HIDING@ |
||||
CODE_COVERAGE_CFLAGS = @CODE_COVERAGE_CFLAGS@ |
||||
CODE_COVERAGE_CPPFLAGS = @CODE_COVERAGE_CPPFLAGS@ |
||||
CODE_COVERAGE_CXXFLAGS = @CODE_COVERAGE_CXXFLAGS@ |
||||
CODE_COVERAGE_ENABLED = @CODE_COVERAGE_ENABLED@ |
||||
CODE_COVERAGE_LDFLAGS = @CODE_COVERAGE_LDFLAGS@ |
||||
CODE_COVERAGE_LIBS = @CODE_COVERAGE_LIBS@ |
||||
CONFIGURE_OPTIONS = @CONFIGURE_OPTIONS@ |
||||
CPP = @CPP@ |
||||
CPPFLAGS = @CPPFLAGS@ |
||||
CPPFLAG_CURL_STATICLIB = @CPPFLAG_CURL_STATICLIB@ |
||||
CURLVERSION = @CURLVERSION@ |
||||
CURL_CA_BUNDLE = @CURL_CA_BUNDLE@ |
||||
CURL_CFLAG_EXTRAS = @CURL_CFLAG_EXTRAS@ |
||||
CURL_DISABLE_DICT = @CURL_DISABLE_DICT@ |
||||
CURL_DISABLE_FILE = @CURL_DISABLE_FILE@ |
||||
CURL_DISABLE_FTP = @CURL_DISABLE_FTP@ |
||||
CURL_DISABLE_GOPHER = @CURL_DISABLE_GOPHER@ |
||||
CURL_DISABLE_HTTP = @CURL_DISABLE_HTTP@ |
||||
CURL_DISABLE_IMAP = @CURL_DISABLE_IMAP@ |
||||
CURL_DISABLE_LDAP = @CURL_DISABLE_LDAP@ |
||||
CURL_DISABLE_LDAPS = @CURL_DISABLE_LDAPS@ |
||||
CURL_DISABLE_POP3 = @CURL_DISABLE_POP3@ |
||||
CURL_DISABLE_PROXY = @CURL_DISABLE_PROXY@ |
||||
CURL_DISABLE_RTSP = @CURL_DISABLE_RTSP@ |
||||
CURL_DISABLE_SMB = @CURL_DISABLE_SMB@ |
||||
CURL_DISABLE_SMTP = @CURL_DISABLE_SMTP@ |
||||
CURL_DISABLE_TELNET = @CURL_DISABLE_TELNET@ |
||||
CURL_DISABLE_TFTP = @CURL_DISABLE_TFTP@ |
||||
CURL_LT_SHLIB_VERSIONED_FLAVOUR = @CURL_LT_SHLIB_VERSIONED_FLAVOUR@ |
||||
CURL_NETWORK_AND_TIME_LIBS = @CURL_NETWORK_AND_TIME_LIBS@ |
||||
CURL_NETWORK_LIBS = @CURL_NETWORK_LIBS@ |
||||
CURL_WITH_MULTI_SSL = @CURL_WITH_MULTI_SSL@ |
||||
CXX = @CXX@ |
||||
CXXCPP = @CXXCPP@ |
||||
CXXDEPMODE = @CXXDEPMODE@ |
||||
CXXFLAGS = @CXXFLAGS@ |
||||
CYGPATH_W = @CYGPATH_W@ |
||||
DEFAULT_SSL_BACKEND = @DEFAULT_SSL_BACKEND@ |
||||
DEFS = @DEFS@ |
||||
DEPDIR = @DEPDIR@ |
||||
DLLTOOL = @DLLTOOL@ |
||||
DSYMUTIL = @DSYMUTIL@ |
||||
DUMPBIN = @DUMPBIN@ |
||||
ECHO_C = @ECHO_C@ |
||||
ECHO_N = @ECHO_N@ |
||||
ECHO_T = @ECHO_T@ |
||||
EGREP = @EGREP@ |
||||
ENABLE_SHARED = @ENABLE_SHARED@ |
||||
ENABLE_STATIC = @ENABLE_STATIC@ |
||||
EXEEXT = @EXEEXT@ |
||||
FGREP = @FGREP@ |
||||
GCOV = @GCOV@ |
||||
GENHTML = @GENHTML@ |
||||
GREP = @GREP@ |
||||
HAVE_GNUTLS_SRP = @HAVE_GNUTLS_SRP@ |
||||
HAVE_LDAP_SSL = @HAVE_LDAP_SSL@ |
||||
HAVE_LIBZ = @HAVE_LIBZ@ |
||||
HAVE_OPENSSL_SRP = @HAVE_OPENSSL_SRP@ |
||||
IDN_ENABLED = @IDN_ENABLED@ |
||||
INSTALL = @INSTALL@ |
||||
INSTALL_DATA = @INSTALL_DATA@ |
||||
INSTALL_PROGRAM = @INSTALL_PROGRAM@ |
||||
INSTALL_SCRIPT = @INSTALL_SCRIPT@ |
||||
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ |
||||
IPV6_ENABLED = @IPV6_ENABLED@ |
||||
LCOV = @LCOV@ |
||||
LD = @LD@ |
||||
LDFLAGS = @LDFLAGS@ |
||||
LIBCURL_LIBS = @LIBCURL_LIBS@ |
||||
LIBMETALINK_CPPFLAGS = @LIBMETALINK_CPPFLAGS@ |
||||
LIBMETALINK_LDFLAGS = @LIBMETALINK_LDFLAGS@ |
||||
LIBMETALINK_LIBS = @LIBMETALINK_LIBS@ |
||||
LIBOBJS = @LIBOBJS@ |
||||
LIBS = @LIBS@ |
||||
LIBTOOL = @LIBTOOL@ |
||||
LIPO = @LIPO@ |
||||
LN_S = @LN_S@ |
||||
LTLIBOBJS = @LTLIBOBJS@ |
||||
LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ |
||||
MAINT = @MAINT@ |
||||
MAKEINFO = @MAKEINFO@ |
||||
MANIFEST_TOOL = @MANIFEST_TOOL@ |
||||
MANOPT = @MANOPT@ |
||||
MKDIR_P = @MKDIR_P@ |
||||
NM = @NM@ |
||||
NMEDIT = @NMEDIT@ |
||||
NROFF = @NROFF@ |
||||
NSS_LIBS = @NSS_LIBS@ |
||||
OBJDUMP = @OBJDUMP@ |
||||
OBJEXT = @OBJEXT@ |
||||
OTOOL = @OTOOL@ |
||||
OTOOL64 = @OTOOL64@ |
||||
PACKAGE = @PACKAGE@ |
||||
PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ |
||||
PACKAGE_NAME = @PACKAGE_NAME@ |
||||
PACKAGE_STRING = @PACKAGE_STRING@ |
||||
PACKAGE_TARNAME = @PACKAGE_TARNAME@ |
||||
PACKAGE_URL = @PACKAGE_URL@ |
||||
PACKAGE_VERSION = @PACKAGE_VERSION@ |
||||
PATH_SEPARATOR = @PATH_SEPARATOR@ |
||||
PERL = @PERL@ |
||||
PKGADD_NAME = @PKGADD_NAME@ |
||||
PKGADD_PKG = @PKGADD_PKG@ |
||||
PKGADD_VENDOR = @PKGADD_VENDOR@ |
||||
PKGCONFIG = @PKGCONFIG@ |
||||
RANDOM_FILE = @RANDOM_FILE@ |
||||
RANLIB = @RANLIB@ |
||||
REQUIRE_LIB_DEPS = @REQUIRE_LIB_DEPS@ |
||||
SED = @SED@ |
||||
SET_MAKE = @SET_MAKE@ |
||||
SHELL = @SHELL@ |
||||
SSL_ENABLED = @SSL_ENABLED@ |
||||
SSL_LIBS = @SSL_LIBS@ |
||||
STRIP = @STRIP@ |
||||
SUPPORT_FEATURES = @SUPPORT_FEATURES@ |
||||
SUPPORT_PROTOCOLS = @SUPPORT_PROTOCOLS@ |
||||
USE_ARES = @USE_ARES@ |
||||
USE_AXTLS = @USE_AXTLS@ |
||||
USE_CYASSL = @USE_CYASSL@ |
||||
USE_DARWINSSL = @USE_DARWINSSL@ |
||||
USE_GNUTLS = @USE_GNUTLS@ |
||||
USE_GNUTLS_NETTLE = @USE_GNUTLS_NETTLE@ |
||||
USE_LIBRTMP = @USE_LIBRTMP@ |
||||
USE_LIBSSH2 = @USE_LIBSSH2@ |
||||
USE_MBEDTLS = @USE_MBEDTLS@ |
||||
USE_NGHTTP2 = @USE_NGHTTP2@ |
||||
USE_NSS = @USE_NSS@ |
||||
USE_OPENLDAP = @USE_OPENLDAP@ |
||||
USE_POLARSSL = @USE_POLARSSL@ |
||||
USE_SCHANNEL = @USE_SCHANNEL@ |
||||
USE_UNIX_SOCKETS = @USE_UNIX_SOCKETS@ |
||||
USE_WINDOWS_SSPI = @USE_WINDOWS_SSPI@ |
||||
VERSION = @VERSION@ |
||||
VERSIONNUM = @VERSIONNUM@ |
||||
ZLIB_LIBS = @ZLIB_LIBS@ |
||||
ZSH_FUNCTIONS_DIR = @ZSH_FUNCTIONS_DIR@ |
||||
abs_builddir = @abs_builddir@ |
||||
abs_srcdir = @abs_srcdir@ |
||||
abs_top_builddir = @abs_top_builddir@ |
||||
abs_top_srcdir = @abs_top_srcdir@ |
||||
ac_ct_AR = @ac_ct_AR@ |
||||
ac_ct_CC = @ac_ct_CC@ |
||||
ac_ct_CXX = @ac_ct_CXX@ |
||||
ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ |
||||
am__include = @am__include@ |
||||
am__leading_dot = @am__leading_dot@ |
||||
am__quote = @am__quote@ |
||||
am__tar = @am__tar@ |
||||
am__untar = @am__untar@ |
||||
bindir = @bindir@ |
||||
build = @build@ |
||||
build_alias = @build_alias@ |
||||
build_cpu = @build_cpu@ |
||||
build_os = @build_os@ |
||||
build_vendor = @build_vendor@ |
||||
builddir = @builddir@ |
||||
datadir = @datadir@ |
||||
datarootdir = @datarootdir@ |
||||
docdir = @docdir@ |
||||
dvidir = @dvidir@ |
||||
exec_prefix = @exec_prefix@ |
||||
host = @host@ |
||||
host_alias = @host_alias@ |
||||
host_cpu = @host_cpu@ |
||||
host_os = @host_os@ |
||||
host_vendor = @host_vendor@ |
||||
htmldir = @htmldir@ |
||||
includedir = @includedir@ |
||||
infodir = @infodir@ |
||||
install_sh = @install_sh@ |
||||
libdir = @libdir@ |
||||
libexecdir = @libexecdir@ |
||||
libext = @libext@ |
||||
localedir = @localedir@ |
||||
localstatedir = @localstatedir@ |
||||
mandir = @mandir@ |
||||
mkdir_p = @mkdir_p@ |
||||
oldincludedir = @oldincludedir@ |
||||
pdfdir = @pdfdir@ |
||||
prefix = @prefix@ |
||||
program_transform_name = @program_transform_name@ |
||||
psdir = @psdir@ |
||||
runstatedir = @runstatedir@ |
||||
sbindir = @sbindir@ |
||||
sharedstatedir = @sharedstatedir@ |
||||
srcdir = @srcdir@ |
||||
subdirs = @subdirs@ |
||||
sysconfdir = @sysconfdir@ |
||||
target_alias = @target_alias@ |
||||
top_build_prefix = @top_build_prefix@ |
||||
top_builddir = @top_builddir@ |
||||
top_srcdir = @top_srcdir@ |
||||
|
||||
#***************************************************************************
|
||||
# _ _ ____ _
|
||||
# Project ___| | | | _ \| |
|
||||
# / __| | | | |_) | |
|
||||
# | (__| |_| | _ <| |___
|
||||
# \___|\___/|_| \_\_____|
|
||||
#
|
||||
# Copyright (C) 1998 - 2017, Daniel Stenberg, <daniel@haxx.se>, et al.
|
||||
#
|
||||
# This software is licensed as described in the file COPYING, which
|
||||
# you should have received as part of this distribution. The terms
|
||||
# are also available at https://curl.haxx.se/docs/copyright.html.
|
||||
#
|
||||
# You may opt to use, copy, modify, merge, publish, distribute and/or sell
|
||||
# copies of the Software, and permit persons to whom the Software is
|
||||
# furnished to do so, under the terms of the COPYING file.
|
||||
#
|
||||
# This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
|
||||
# KIND, either express or implied.
|
||||
#
|
||||
###########################################################################
|
||||
pkginclude_HEADERS = \
|
||||
curl.h curlver.h easy.h mprintf.h stdcheaders.h multi.h \
|
||||
typecheck-gcc.h system.h |
||||
|
||||
all: all-am |
||||
|
||||
.SUFFIXES: |
||||
$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) |
||||
@for dep in $?; do \
|
||||
case '$(am__configure_deps)' in \
|
||||
*$$dep*) \
|
||||
( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
|
||||
&& { if test -f $@; then exit 0; else break; fi; }; \
|
||||
exit 1;; \
|
||||
esac; \
|
||||
done; \
|
||||
echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign include/curl/Makefile'; \
|
||||
$(am__cd) $(top_srcdir) && \
|
||||
$(AUTOMAKE) --foreign include/curl/Makefile |
||||
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status |
||||
@case '$?' in \
|
||||
*config.status*) \
|
||||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
|
||||
*) \
|
||||
echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
|
||||
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
|
||||
esac; |
||||
|
||||
$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) |
||||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh |
||||
|
||||
$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) |
||||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh |
||||
$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) |
||||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh |
||||
$(am__aclocal_m4_deps): |
||||
|
||||
mostlyclean-libtool: |
||||
-rm -f *.lo |
||||
|
||||
clean-libtool: |
||||
-rm -rf .libs _libs |
||||
install-pkgincludeHEADERS: $(pkginclude_HEADERS) |
||||
@$(NORMAL_INSTALL) |
||||
@list='$(pkginclude_HEADERS)'; test -n "$(pkgincludedir)" || list=; \
|
||||
if test -n "$$list"; then \
|
||||
echo " $(MKDIR_P) '$(DESTDIR)$(pkgincludedir)'"; \
|
||||
$(MKDIR_P) "$(DESTDIR)$(pkgincludedir)" || exit 1; \
|
||||
fi; \
|
||||
for p in $$list; do \
|
||||
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
|
||||
echo "$$d$$p"; \
|
||||
done | $(am__base_list) | \
|
||||
while read files; do \
|
||||
echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(pkgincludedir)'"; \
|
||||
$(INSTALL_HEADER) $$files "$(DESTDIR)$(pkgincludedir)" || exit $$?; \
|
||||
done |
||||
|
||||
uninstall-pkgincludeHEADERS: |
||||
@$(NORMAL_UNINSTALL) |
||||
@list='$(pkginclude_HEADERS)'; test -n "$(pkgincludedir)" || list=; \
|
||||
files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
|
||||
dir='$(DESTDIR)$(pkgincludedir)'; $(am__uninstall_files_from_dir) |
||||
|
||||
ID: $(am__tagged_files) |
||||
$(am__define_uniq_tagged_files); mkid -fID $$unique |
||||
tags: tags-am |
||||
TAGS: tags |
||||
|
||||
tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) |
||||
set x; \
|
||||
here=`pwd`; \
|
||||
$(am__define_uniq_tagged_files); \
|
||||
shift; \
|
||||
if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
|
||||
test -n "$$unique" || unique=$$empty_fix; \
|
||||
if test $$# -gt 0; then \ |
||||
$(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
|
||||
"$$@" $$unique; \
|
||||
else \
|
||||
$(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
|
||||
$$unique; \
|
||||
fi; \
|
||||
fi |
||||
ctags: ctags-am |
||||
|
||||
CTAGS: ctags |
||||
ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) |
||||
$(am__define_uniq_tagged_files); \
|
||||
test -z "$(CTAGS_ARGS)$$unique" \
|
||||
|| $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
|
||||
$$unique |
||||
|
||||
GTAGS: |
||||
here=`$(am__cd) $(top_builddir) && pwd` \
|
||||
&& $(am__cd) $(top_srcdir) \
|
||||
&& gtags -i $(GTAGS_ARGS) "$$here" |
||||
cscopelist: cscopelist-am |
||||
|
||||
cscopelist-am: $(am__tagged_files) |
||||
list='$(am__tagged_files)'; \
|
||||
case "$(srcdir)" in \
|
||||
[\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
|
||||
*) sdir=$(subdir)/$(srcdir) ;; \
|
||||
esac; \
|
||||
for i in $$list; do \
|
||||
if test -f "$$i"; then \
|
||||
echo "$(subdir)/$$i"; \
|
||||
else \
|
||||
echo "$$sdir/$$i"; \
|
||||
fi; \
|
||||
done >> $(top_builddir)/cscope.files |
||||
|
||||
distclean-tags: |
||||
-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags |
||||
|
||||
distdir: $(DISTFILES) |
||||
@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
|
||||
topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
|
||||
list='$(DISTFILES)'; \
|
||||
dist_files=`for file in $$list; do echo $$file; done | \
|
||||
sed -e "s|^$$srcdirstrip/||;t" \
|
||||
-e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
|
||||
case $$dist_files in \
|
||||
*/*) $(MKDIR_P) `echo "$$dist_files" | \
|
||||
sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
|
||||
sort -u` ;; \
|
||||
esac; \
|
||||
for file in $$dist_files; do \
|
||||
if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
|
||||
if test -d $$d/$$file; then \
|
||||
dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
|
||||
if test -d "$(distdir)/$$file"; then \
|
||||
find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
|
||||
fi; \
|
||||
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
|
||||
cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
|
||||
find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
|
||||
fi; \
|
||||
cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
|
||||
else \
|
||||
test -f "$(distdir)/$$file" \
|
||||
|| cp -p $$d/$$file "$(distdir)/$$file" \
|
||||
|| exit 1; \
|
||||
fi; \
|
||||
done |
||||
check-am: all-am |
||||
check: check-am |
||||
@CURLDEBUG_FALSE@all-local: |
||||
all-am: Makefile $(HEADERS) all-local |
||||
installdirs: |
||||
for dir in "$(DESTDIR)$(pkgincludedir)"; do \
|
||||
test -z "$$dir" || $(MKDIR_P) "$$dir"; \
|
||||
done |
||||
install: install-am |
||||
install-exec: install-exec-am |
||||
install-data: install-data-am |
||||
uninstall: uninstall-am |
||||
|
||||
install-am: all-am |
||||
@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am |
||||
|
||||
installcheck: installcheck-am |
||||
install-strip: |
||||
if test -z '$(STRIP)'; then \
|
||||
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
|
||||
install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
|
||||
install; \
|
||||
else \
|
||||
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
|
||||
install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
|
||||
"INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
|
||||
fi |
||||
mostlyclean-generic: |
||||
|
||||
clean-generic: |
||||
|
||||
distclean-generic: |
||||
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) |
||||
-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) |
||||
|
||||
maintainer-clean-generic: |
||||
@echo "This command is intended for maintainers to use" |
||||
@echo "it deletes files that may require special tools to rebuild." |
||||
clean: clean-am |
||||
|
||||
clean-am: clean-generic clean-libtool mostlyclean-am |
||||
|
||||
distclean: distclean-am |
||||
-rm -f Makefile |
||||
distclean-am: clean-am distclean-generic distclean-tags |
||||
|
||||
dvi: dvi-am |
||||
|
||||
dvi-am: |
||||
|
||||
html: html-am |
||||
|
||||
html-am: |
||||
|
||||
info: info-am |
||||
|
||||
info-am: |
||||
|
||||
install-data-am: install-pkgincludeHEADERS |
||||
|
||||
install-dvi: install-dvi-am |
||||
|
||||
install-dvi-am: |
||||
|
||||
install-exec-am: |
||||
|
||||
install-html: install-html-am |
||||
|
||||
install-html-am: |
||||
|
||||
install-info: install-info-am |
||||
|
||||
install-info-am: |
||||
|
||||
install-man: |
||||
|
||||
install-pdf: install-pdf-am |
||||
|
||||
install-pdf-am: |
||||
|
||||
install-ps: install-ps-am |
||||
|
||||
install-ps-am: |
||||
|
||||
installcheck-am: |
||||
|
||||
maintainer-clean: maintainer-clean-am |
||||
-rm -f Makefile |
||||
maintainer-clean-am: distclean-am maintainer-clean-generic |
||||
|
||||
mostlyclean: mostlyclean-am |
||||
|
||||
mostlyclean-am: mostlyclean-generic mostlyclean-libtool |
||||
|
||||
pdf: pdf-am |
||||
|
||||
pdf-am: |
||||
|
||||
ps: ps-am |
||||
|
||||
ps-am: |
||||
|
||||
uninstall-am: uninstall-pkgincludeHEADERS |
||||
|
||||
.MAKE: install-am install-strip |
||||
|
||||
.PHONY: CTAGS GTAGS TAGS all all-am all-local check check-am clean \ |
||||
clean-generic clean-libtool cscopelist-am ctags ctags-am \
|
||||
distclean distclean-generic distclean-libtool distclean-tags \
|
||||
distdir dvi dvi-am html html-am info info-am install \
|
||||
install-am install-data install-data-am install-dvi \
|
||||
install-dvi-am install-exec install-exec-am install-html \
|
||||
install-html-am install-info install-info-am install-man \
|
||||
install-pdf install-pdf-am install-pkgincludeHEADERS \
|
||||
install-ps install-ps-am install-strip installcheck \
|
||||
installcheck-am installdirs maintainer-clean \
|
||||
maintainer-clean-generic mostlyclean mostlyclean-generic \
|
||||
mostlyclean-libtool pdf pdf-am ps ps-am tags tags-am uninstall \
|
||||
uninstall-am uninstall-pkgincludeHEADERS |
||||
|
||||
.PRECIOUS: Makefile |
||||
|
||||
|
||||
checksrc: |
||||
@@PERL@ $(top_srcdir)/lib/checksrc.pl -D$(top_srcdir)/include/curl $(pkginclude_HEADERS) |
||||
|
||||
# for debug builds, we scan the sources on all regular make invokes
|
||||
@CURLDEBUG_TRUE@all-local: checksrc |
||||
|
||||
# Tell versions [3.59,3.63) of GNU make to not export all variables.
|
||||
# Otherwise a system limit (for SysV at least) may be exceeded.
|
||||
.NOEXPORT: |
@ -0,0 +1,77 @@
@@ -0,0 +1,77 @@
|
||||
#ifndef __CURL_CURLVER_H |
||||
#define __CURL_CURLVER_H |
||||
/***************************************************************************
|
||||
* _ _ ____ _ |
||||
* Project ___| | | | _ \| | |
||||
* / __| | | | |_) | | |
||||
* | (__| |_| | _ <| |___ |
||||
* \___|\___/|_| \_\_____| |
||||
* |
||||
* Copyright (C) 1998 - 2017, Daniel Stenberg, <daniel@haxx.se>, et al. |
||||
* |
||||
* This software is licensed as described in the file COPYING, which |
||||
* you should have received as part of this distribution. The terms |
||||
* are also available at https://curl.haxx.se/docs/copyright.html.
|
||||
* |
||||
* You may opt to use, copy, modify, merge, publish, distribute and/or sell |
||||
* copies of the Software, and permit persons to whom the Software is |
||||
* furnished to do so, under the terms of the COPYING file. |
||||
* |
||||
* This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY |
||||
* KIND, either express or implied. |
||||
* |
||||
***************************************************************************/ |
||||
|
||||
/* This header file contains nothing but libcurl version info, generated by
|
||||
a script at release-time. This was made its own header file in 7.11.2 */ |
||||
|
||||
/* This is the global package copyright */ |
||||
#define LIBCURL_COPYRIGHT "1996 - 2017 Daniel Stenberg, <daniel@haxx.se>." |
||||
|
||||
/* This is the version number of the libcurl package from which this header
|
||||
file origins: */ |
||||
#define LIBCURL_VERSION "7.56.0" |
||||
|
||||
/* The numeric version number is also available "in parts" by using these
|
||||
defines: */ |
||||
#define LIBCURL_VERSION_MAJOR 7 |
||||
#define LIBCURL_VERSION_MINOR 56 |
||||
#define LIBCURL_VERSION_PATCH 0 |
||||
|
||||
/* This is the numeric version of the libcurl version number, meant for easier
|
||||
parsing and comparions by programs. The LIBCURL_VERSION_NUM define will |
||||
always follow this syntax: |
||||
|
||||
0xXXYYZZ |
||||
|
||||
Where XX, YY and ZZ are the main version, release and patch numbers in |
||||
hexadecimal (using 8 bits each). All three numbers are always represented |
||||
using two digits. 1.2 would appear as "0x010200" while version 9.11.7 |
||||
appears as "0x090b07". |
||||
|
||||
This 6-digit (24 bits) hexadecimal number does not show pre-release number, |
||||
and it is always a greater number in a more recent release. It makes |
||||
comparisons with greater than and less than work. |
||||
|
||||
Note: This define is the full hex number and _does not_ use the |
||||
CURL_VERSION_BITS() macro since curl's own configure script greps for it |
||||
and needs it to contain the full number. |
||||
*/ |
||||
#define LIBCURL_VERSION_NUM 0x073800 |
||||
|
||||
/*
|
||||
* This is the date and time when the full source package was created. The |
||||
* timestamp is not stored in git, as the timestamp is properly set in the |
||||
* tarballs by the maketgz script. |
||||
* |
||||
* The format of the date follows this template: |
||||
* |
||||
* "2007-11-23" |
||||
*/ |
||||
#define LIBCURL_TIMESTAMP "2017-10-04" |
||||
|
||||
#define CURL_VERSION_BITS(x,y,z) ((x)<<16|(y)<<8|z) |
||||
#define CURL_AT_LEAST_VERSION(x,y,z) \ |
||||
(LIBCURL_VERSION_NUM >= CURL_VERSION_BITS(x, y, z)) |
||||
|
||||
#endif /* __CURL_CURLVER_H */ |
@ -0,0 +1,102 @@
@@ -0,0 +1,102 @@
|
||||
#ifndef __CURL_EASY_H |
||||
#define __CURL_EASY_H |
||||
/***************************************************************************
|
||||
* _ _ ____ _ |
||||
* Project ___| | | | _ \| | |
||||
* / __| | | | |_) | | |
||||
* | (__| |_| | _ <| |___ |
||||
* \___|\___/|_| \_\_____| |
||||
* |
||||
* Copyright (C) 1998 - 2016, Daniel Stenberg, <daniel@haxx.se>, et al. |
||||
* |
||||
* This software is licensed as described in the file COPYING, which |
||||
* you should have received as part of this distribution. The terms |
||||
* are also available at https://curl.haxx.se/docs/copyright.html.
|
||||
* |
||||
* You may opt to use, copy, modify, merge, publish, distribute and/or sell |
||||
* copies of the Software, and permit persons to whom the Software is |
||||
* furnished to do so, under the terms of the COPYING file. |
||||
* |
||||
* This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY |
||||
* KIND, either express or implied. |
||||
* |
||||
***************************************************************************/ |
||||
#ifdef __cplusplus |
||||
extern "C" { |
||||
#endif |
||||
|
||||
CURL_EXTERN CURL *curl_easy_init(void); |
||||
CURL_EXTERN CURLcode curl_easy_setopt(CURL *curl, CURLoption option, ...); |
||||
CURL_EXTERN CURLcode curl_easy_perform(CURL *curl); |
||||
CURL_EXTERN void curl_easy_cleanup(CURL *curl); |
||||
|
||||
/*
|
||||
* NAME curl_easy_getinfo() |
||||
* |
||||
* DESCRIPTION |
||||
* |
||||
* Request internal information from the curl session with this function. The |
||||
* third argument MUST be a pointer to a long, a pointer to a char * or a |
||||
* pointer to a double (as the documentation describes elsewhere). The data |
||||
* pointed to will be filled in accordingly and can be relied upon only if the |
||||
* function returns CURLE_OK. This function is intended to get used *AFTER* a |
||||
* performed transfer, all results from this function are undefined until the |
||||
* transfer is completed. |
||||
*/ |
||||
CURL_EXTERN CURLcode curl_easy_getinfo(CURL *curl, CURLINFO info, ...); |
||||
|
||||
|
||||
/*
|
||||
* NAME curl_easy_duphandle() |
||||
* |
||||
* DESCRIPTION |
||||
* |
||||
* Creates a new curl session handle with the same options set for the handle |
||||
* passed in. Duplicating a handle could only be a matter of cloning data and |
||||
* options, internal state info and things like persistent connections cannot |
||||
* be transferred. It is useful in multithreaded applications when you can run |
||||
* curl_easy_duphandle() for each new thread to avoid a series of identical |
||||
* curl_easy_setopt() invokes in every thread. |
||||
*/ |
||||
CURL_EXTERN CURL *curl_easy_duphandle(CURL *curl); |
||||
|
||||
/*
|
||||
* NAME curl_easy_reset() |
||||
* |
||||
* DESCRIPTION |
||||
* |
||||
* Re-initializes a CURL handle to the default values. This puts back the |
||||
* handle to the same state as it was in when it was just created. |
||||
* |
||||
* It does keep: live connections, the Session ID cache, the DNS cache and the |
||||
* cookies. |
||||
*/ |
||||
CURL_EXTERN void curl_easy_reset(CURL *curl); |
||||
|
||||
/*
|
||||
* NAME curl_easy_recv() |
||||
* |
||||
* DESCRIPTION |
||||
* |
||||
* Receives data from the connected socket. Use after successful |
||||
* curl_easy_perform() with CURLOPT_CONNECT_ONLY option. |
||||
*/ |
||||
CURL_EXTERN CURLcode curl_easy_recv(CURL *curl, void *buffer, size_t buflen, |
||||
size_t *n); |
||||
|
||||
/*
|
||||
* NAME curl_easy_send() |
||||
* |
||||
* DESCRIPTION |
||||
* |
||||
* Sends data over the connected socket. Use after successful |
||||
* curl_easy_perform() with CURLOPT_CONNECT_ONLY option. |
||||
*/ |
||||
CURL_EXTERN CURLcode curl_easy_send(CURL *curl, const void *buffer, |
||||
size_t buflen, size_t *n); |
||||
|
||||
#ifdef __cplusplus |
||||
} |
||||
#endif |
||||
|
||||
#endif |
@ -0,0 +1,50 @@
@@ -0,0 +1,50 @@
|
||||
#ifndef __CURL_MPRINTF_H |
||||
#define __CURL_MPRINTF_H |
||||
/***************************************************************************
|
||||
* _ _ ____ _ |
||||
* Project ___| | | | _ \| | |
||||
* / __| | | | |_) | | |
||||
* | (__| |_| | _ <| |___ |
||||
* \___|\___/|_| \_\_____| |
||||
* |
||||
* Copyright (C) 1998 - 2016, Daniel Stenberg, <daniel@haxx.se>, et al. |
||||
* |
||||
* This software is licensed as described in the file COPYING, which |
||||
* you should have received as part of this distribution. The terms |
||||
* are also available at https://curl.haxx.se/docs/copyright.html.
|
||||
* |
||||
* You may opt to use, copy, modify, merge, publish, distribute and/or sell |
||||
* copies of the Software, and permit persons to whom the Software is |
||||
* furnished to do so, under the terms of the COPYING file. |
||||
* |
||||
* This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY |
||||
* KIND, either express or implied. |
||||
* |
||||
***************************************************************************/ |
||||
|
||||
#include <stdarg.h> |
||||
#include <stdio.h> /* needed for FILE */ |
||||
#include "curl.h" /* for CURL_EXTERN */ |
||||
|
||||
#ifdef __cplusplus |
||||
extern "C" { |
||||
#endif |
||||
|
||||
CURL_EXTERN int curl_mprintf(const char *format, ...); |
||||
CURL_EXTERN int curl_mfprintf(FILE *fd, const char *format, ...); |
||||
CURL_EXTERN int curl_msprintf(char *buffer, const char *format, ...); |
||||
CURL_EXTERN int curl_msnprintf(char *buffer, size_t maxlength, |
||||
const char *format, ...); |
||||
CURL_EXTERN int curl_mvprintf(const char *format, va_list args); |
||||
CURL_EXTERN int curl_mvfprintf(FILE *fd, const char *format, va_list args); |
||||
CURL_EXTERN int curl_mvsprintf(char *buffer, const char *format, va_list args); |
||||
CURL_EXTERN int curl_mvsnprintf(char *buffer, size_t maxlength, |
||||
const char *format, va_list args); |
||||
CURL_EXTERN char *curl_maprintf(const char *format, ...); |
||||
CURL_EXTERN char *curl_mvaprintf(const char *format, va_list args); |
||||
|
||||
#ifdef __cplusplus |
||||
} |
||||
#endif |
||||
|
||||
#endif /* __CURL_MPRINTF_H */ |
@ -0,0 +1,439 @@
@@ -0,0 +1,439 @@
|
||||
#ifndef __CURL_MULTI_H |
||||
#define __CURL_MULTI_H |
||||
/***************************************************************************
|
||||
* _ _ ____ _ |
||||
* Project ___| | | | _ \| | |
||||
* / __| | | | |_) | | |
||||
* | (__| |_| | _ <| |___ |
||||
* \___|\___/|_| \_\_____| |
||||
* |
||||
* Copyright (C) 1998 - 2017, Daniel Stenberg, <daniel@haxx.se>, et al. |
||||
* |
||||
* This software is licensed as described in the file COPYING, which |
||||
* you should have received as part of this distribution. The terms |
||||
* are also available at https://curl.haxx.se/docs/copyright.html.
|
||||
* |
||||
* You may opt to use, copy, modify, merge, publish, distribute and/or sell |
||||
* copies of the Software, and permit persons to whom the Software is |
||||
* furnished to do so, under the terms of the COPYING file. |
||||
* |
||||
* This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY |
||||
* KIND, either express or implied. |
||||
* |
||||
***************************************************************************/ |
||||
/*
|
||||
This is an "external" header file. Don't give away any internals here! |
||||
|
||||
GOALS |
||||
|
||||
o Enable a "pull" interface. The application that uses libcurl decides where |
||||
and when to ask libcurl to get/send data. |
||||
|
||||
o Enable multiple simultaneous transfers in the same thread without making it |
||||
complicated for the application. |
||||
|
||||
o Enable the application to select() on its own file descriptors and curl's |
||||
file descriptors simultaneous easily. |
||||
|
||||
*/ |
||||
|
||||
/*
|
||||
* This header file should not really need to include "curl.h" since curl.h |
||||
* itself includes this file and we expect user applications to do #include |
||||
* <curl/curl.h> without the need for especially including multi.h. |
||||
* |
||||
* For some reason we added this include here at one point, and rather than to |
||||
* break existing (wrongly written) libcurl applications, we leave it as-is |
||||
* but with this warning attached. |
||||
*/ |
||||
#include "curl.h" |
||||
|
||||
#ifdef __cplusplus |
||||
extern "C" { |
||||
#endif |
||||
|
||||
#if defined(BUILDING_LIBCURL) || defined(CURL_STRICTER) |
||||
typedef struct Curl_multi CURLM; |
||||
#else |
||||
typedef void CURLM; |
||||
#endif |
||||
|
||||
typedef enum { |
||||
CURLM_CALL_MULTI_PERFORM = -1, /* please call curl_multi_perform() or
|
||||
curl_multi_socket*() soon */ |
||||
CURLM_OK, |
||||
CURLM_BAD_HANDLE, /* the passed-in handle is not a valid CURLM handle */ |
||||
CURLM_BAD_EASY_HANDLE, /* an easy handle was not good/valid */ |
||||
CURLM_OUT_OF_MEMORY, /* if you ever get this, you're in deep sh*t */ |
||||
CURLM_INTERNAL_ERROR, /* this is a libcurl bug */ |
||||
CURLM_BAD_SOCKET, /* the passed in socket argument did not match */ |
||||
CURLM_UNKNOWN_OPTION, /* curl_multi_setopt() with unsupported option */ |
||||
CURLM_ADDED_ALREADY, /* an easy handle already added to a multi handle was
|
||||
attempted to get added - again */ |
||||
CURLM_LAST |
||||
} CURLMcode; |
||||
|
||||
/* just to make code nicer when using curl_multi_socket() you can now check
|
||||
for CURLM_CALL_MULTI_SOCKET too in the same style it works for |
||||
curl_multi_perform() and CURLM_CALL_MULTI_PERFORM */ |
||||
#define CURLM_CALL_MULTI_SOCKET CURLM_CALL_MULTI_PERFORM |
||||
|
||||
/* bitmask bits for CURLMOPT_PIPELINING */ |
||||
#define CURLPIPE_NOTHING 0L |
||||
#define CURLPIPE_HTTP1 1L |
||||
#define CURLPIPE_MULTIPLEX 2L |
||||
|
||||
typedef enum { |
||||
CURLMSG_NONE, /* first, not used */ |
||||
CURLMSG_DONE, /* This easy handle has completed. 'result' contains
|
||||
the CURLcode of the transfer */ |
||||
CURLMSG_LAST /* last, not used */ |
||||
} CURLMSG; |
||||
|
||||
struct CURLMsg { |
||||
CURLMSG msg; /* what this message means */ |
||||
CURL *easy_handle; /* the handle it concerns */ |
||||
union { |
||||
void *whatever; /* message-specific data */ |
||||
CURLcode result; /* return code for transfer */ |
||||
} data; |
||||
}; |
||||
typedef struct CURLMsg CURLMsg; |
||||
|
||||
/* Based on poll(2) structure and values.
|
||||
* We don't use pollfd and POLL* constants explicitly |
||||
* to cover platforms without poll(). */ |
||||
#define CURL_WAIT_POLLIN 0x0001 |
||||
#define CURL_WAIT_POLLPRI 0x0002 |
||||
#define CURL_WAIT_POLLOUT 0x0004 |
||||
|
||||
struct curl_waitfd { |
||||
curl_socket_t fd; |
||||
short events; |
||||
short revents; /* not supported yet */ |
||||
}; |
||||
|
||||
/*
|
||||
* Name: curl_multi_init() |
||||
* |
||||
* Desc: inititalize multi-style curl usage |
||||
* |
||||
* Returns: a new CURLM handle to use in all 'curl_multi' functions. |
||||
*/ |
||||
CURL_EXTERN CURLM *curl_multi_init(void); |
||||
|
||||
/*
|
||||
* Name: curl_multi_add_handle() |
||||
* |
||||
* Desc: add a standard curl handle to the multi stack |
||||
* |
||||
* Returns: CURLMcode type, general multi error code. |
||||
*/ |
||||
CURL_EXTERN CURLMcode curl_multi_add_handle(CURLM *multi_handle, |
||||
CURL *curl_handle); |
||||
|
||||
/*
|
||||
* Name: curl_multi_remove_handle() |
||||
* |
||||
* Desc: removes a curl handle from the multi stack again |
||||
* |
||||
* Returns: CURLMcode type, general multi error code. |
||||
*/ |
||||
CURL_EXTERN CURLMcode curl_multi_remove_handle(CURLM *multi_handle, |
||||
CURL *curl_handle); |
||||
|
||||
/*
|
||||
* Name: curl_multi_fdset() |
||||
* |
||||
* Desc: Ask curl for its fd_set sets. The app can use these to select() or |
||||
* poll() on. We want curl_multi_perform() called as soon as one of |
||||
* them are ready. |
||||
* |
||||
* Returns: CURLMcode type, general multi error code. |
||||
*/ |
||||
CURL_EXTERN CURLMcode curl_multi_fdset(CURLM *multi_handle, |
||||
fd_set *read_fd_set, |
||||
fd_set *write_fd_set, |
||||
fd_set *exc_fd_set, |
||||
int *max_fd); |
||||
|
||||
/*
|
||||
* Name: curl_multi_wait() |
||||
* |
||||
* Desc: Poll on all fds within a CURLM set as well as any |
||||
* additional fds passed to the function. |
||||
* |
||||
* Returns: CURLMcode type, general multi error code. |
||||
*/ |
||||
CURL_EXTERN CURLMcode curl_multi_wait(CURLM *multi_handle, |
||||
struct curl_waitfd extra_fds[], |
||||
unsigned int extra_nfds, |
||||
int timeout_ms, |
||||
int *ret); |
||||
|
||||
/*
|
||||
* Name: curl_multi_perform() |
||||
* |
||||
* Desc: When the app thinks there's data available for curl it calls this |
||||
* function to read/write whatever there is right now. This returns |
||||
* as soon as the reads and writes are done. This function does not |
||||
* require that there actually is data available for reading or that |
||||
* data can be written, it can be called just in case. It returns |
||||
* the number of handles that still transfer data in the second |
||||
* argument's integer-pointer. |
||||
* |
||||
* Returns: CURLMcode type, general multi error code. *NOTE* that this only |
||||
* returns errors etc regarding the whole multi stack. There might |
||||
* still have occurred problems on invidual transfers even when this |
||||
* returns OK. |
||||
*/ |
||||
CURL_EXTERN CURLMcode curl_multi_perform(CURLM *multi_handle, |
||||
int *running_handles); |
||||
|
||||
/*
|
||||
* Name: curl_multi_cleanup() |
||||
* |
||||
* Desc: Cleans up and removes a whole multi stack. It does not free or |
||||
* touch any individual easy handles in any way. We need to define |
||||
* in what state those handles will be if this function is called |
||||
* in the middle of a transfer. |
||||
* |
||||
* Returns: CURLMcode type, general multi error code. |
||||
*/ |
||||
CURL_EXTERN CURLMcode curl_multi_cleanup(CURLM *multi_handle); |
||||
|
||||
/*
|
||||
* Name: curl_multi_info_read() |
||||
* |
||||
* Desc: Ask the multi handle if there's any messages/informationals from |
||||
* the individual transfers. Messages include informationals such as |
||||
* error code from the transfer or just the fact that a transfer is |
||||
* completed. More details on these should be written down as well. |
||||
* |
||||
* Repeated calls to this function will return a new struct each |
||||
* time, until a special "end of msgs" struct is returned as a signal |
||||
* that there is no more to get at this point. |
||||
* |
||||
* The data the returned pointer points to will not survive calling |
||||
* curl_multi_cleanup(). |
||||
* |
||||
* The 'CURLMsg' struct is meant to be very simple and only contain |
||||
* very basic information. If more involved information is wanted, |
||||
* we will provide the particular "transfer handle" in that struct |
||||
* and that should/could/would be used in subsequent |
||||
* curl_easy_getinfo() calls (or similar). The point being that we |
||||
* must never expose complex structs to applications, as then we'll |
||||
* undoubtably get backwards compatibility problems in the future. |
||||
* |
||||
* Returns: A pointer to a filled-in struct, or NULL if it failed or ran out |
||||
* of structs. It also writes the number of messages left in the |
||||
* queue (after this read) in the integer the second argument points |
||||
* to. |
||||
*/ |
||||
CURL_EXTERN CURLMsg *curl_multi_info_read(CURLM *multi_handle, |
||||
int *msgs_in_queue); |
||||
|
||||
/*
|
||||
* Name: curl_multi_strerror() |
||||
* |
||||
* Desc: The curl_multi_strerror function may be used to turn a CURLMcode |
||||
* value into the equivalent human readable error string. This is |
||||
* useful for printing meaningful error messages. |
||||
* |
||||
* Returns: A pointer to a zero-terminated error message. |
||||
*/ |
||||
CURL_EXTERN const char *curl_multi_strerror(CURLMcode); |
||||
|
||||
/*
|
||||
* Name: curl_multi_socket() and |
||||
* curl_multi_socket_all() |
||||
* |
||||
* Desc: An alternative version of curl_multi_perform() that allows the |
||||
* application to pass in one of the file descriptors that have been |
||||
* detected to have "action" on them and let libcurl perform. |
||||
* See man page for details. |
||||
*/ |
||||
#define CURL_POLL_NONE 0 |
||||
#define CURL_POLL_IN 1 |
||||
#define CURL_POLL_OUT 2 |
||||
#define CURL_POLL_INOUT 3 |
||||
#define CURL_POLL_REMOVE 4 |
||||
|
||||
#define CURL_SOCKET_TIMEOUT CURL_SOCKET_BAD |
||||
|
||||
#define CURL_CSELECT_IN 0x01 |
||||
#define CURL_CSELECT_OUT 0x02 |
||||
#define CURL_CSELECT_ERR 0x04 |
||||
|
||||
typedef int (*curl_socket_callback)(CURL *easy, /* easy handle */ |
||||
curl_socket_t s, /* socket */ |
||||
int what, /* see above */ |
||||
void *userp, /* private callback
|
||||
pointer */ |
||||
void *socketp); /* private socket
|
||||
pointer */ |
||||
/*
|
||||
* Name: curl_multi_timer_callback |
||||
* |
||||
* Desc: Called by libcurl whenever the library detects a change in the |
||||
* maximum number of milliseconds the app is allowed to wait before |
||||
* curl_multi_socket() or curl_multi_perform() must be called |
||||
* (to allow libcurl's timed events to take place). |
||||
* |
||||
* Returns: The callback should return zero. |
||||
*/ |
||||
typedef int (*curl_multi_timer_callback)(CURLM *multi, /* multi handle */ |
||||
long timeout_ms, /* see above */ |
||||
void *userp); /* private callback
|
||||
pointer */ |
||||
|
||||
CURL_EXTERN CURLMcode curl_multi_socket(CURLM *multi_handle, curl_socket_t s, |
||||
int *running_handles); |
||||
|
||||
CURL_EXTERN CURLMcode curl_multi_socket_action(CURLM *multi_handle, |
||||
curl_socket_t s, |
||||
int ev_bitmask, |
||||
int *running_handles); |
||||
|
||||
CURL_EXTERN CURLMcode curl_multi_socket_all(CURLM *multi_handle, |
||||
int *running_handles); |
||||
|
||||
#ifndef CURL_ALLOW_OLD_MULTI_SOCKET |
||||
/* This macro below was added in 7.16.3 to push users who recompile to use
|
||||
the new curl_multi_socket_action() instead of the old curl_multi_socket() |
||||
*/ |
||||
#define curl_multi_socket(x,y,z) curl_multi_socket_action(x,y,0,z) |
||||
#endif |
||||
|
||||
/*
|
||||
* Name: curl_multi_timeout() |
||||
* |
||||
* Desc: Returns the maximum number of milliseconds the app is allowed to |
||||
* wait before curl_multi_socket() or curl_multi_perform() must be |
||||
* called (to allow libcurl's timed events to take place). |
||||
* |
||||
* Returns: CURLM error code. |
||||
*/ |
||||
CURL_EXTERN CURLMcode curl_multi_timeout(CURLM *multi_handle, |
||||
long *milliseconds); |
||||
|
||||
#undef CINIT /* re-using the same name as in curl.h */ |
||||
|
||||
#ifdef CURL_ISOCPP |
||||
#define CINIT(name,type,num) CURLMOPT_ ## name = CURLOPTTYPE_ ## type + num |
||||
#else |
||||
/* The macro "##" is ISO C, we assume pre-ISO C doesn't support it. */ |
||||
#define LONG CURLOPTTYPE_LONG |
||||
#define OBJECTPOINT CURLOPTTYPE_OBJECTPOINT |
||||
#define FUNCTIONPOINT CURLOPTTYPE_FUNCTIONPOINT |
||||
#define OFF_T CURLOPTTYPE_OFF_T |
||||
#define CINIT(name,type,number) CURLMOPT_/**/name = type + number |
||||
#endif |
||||
|
||||
typedef enum { |
||||
/* This is the socket callback function pointer */ |
||||
CINIT(SOCKETFUNCTION, FUNCTIONPOINT, 1), |
||||
|
||||
/* This is the argument passed to the socket callback */ |
||||
CINIT(SOCKETDATA, OBJECTPOINT, 2), |
||||
|
||||
/* set to 1 to enable pipelining for this multi handle */ |
||||
CINIT(PIPELINING, LONG, 3), |
||||
|
||||
/* This is the timer callback function pointer */ |
||||
CINIT(TIMERFUNCTION, FUNCTIONPOINT, 4), |
||||
|
||||
/* This is the argument passed to the timer callback */ |
||||
CINIT(TIMERDATA, OBJECTPOINT, 5), |
||||
|
||||
/* maximum number of entries in the connection cache */ |
||||
CINIT(MAXCONNECTS, LONG, 6), |
||||
|
||||
/* maximum number of (pipelining) connections to one host */ |
||||
CINIT(MAX_HOST_CONNECTIONS, LONG, 7), |
||||
|
||||
/* maximum number of requests in a pipeline */ |
||||
CINIT(MAX_PIPELINE_LENGTH, LONG, 8), |
||||
|
||||
/* a connection with a content-length longer than this
|
||||
will not be considered for pipelining */ |
||||
CINIT(CONTENT_LENGTH_PENALTY_SIZE, OFF_T, 9), |
||||
|
||||
/* a connection with a chunk length longer than this
|
||||
will not be considered for pipelining */ |
||||
CINIT(CHUNK_LENGTH_PENALTY_SIZE, OFF_T, 10), |
||||
|
||||
/* a list of site names(+port) that are blacklisted from
|
||||
pipelining */ |
||||
CINIT(PIPELINING_SITE_BL, OBJECTPOINT, 11), |
||||
|
||||
/* a list of server types that are blacklisted from
|
||||
pipelining */ |
||||
CINIT(PIPELINING_SERVER_BL, OBJECTPOINT, 12), |
||||
|
||||
/* maximum number of open connections in total */ |
||||
CINIT(MAX_TOTAL_CONNECTIONS, LONG, 13), |
||||
|
||||
/* This is the server push callback function pointer */ |
||||
CINIT(PUSHFUNCTION, FUNCTIONPOINT, 14), |
||||
|
||||
/* This is the argument passed to the server push callback */ |
||||
CINIT(PUSHDATA, OBJECTPOINT, 15), |
||||
|
||||
CURLMOPT_LASTENTRY /* the last unused */ |
||||
} CURLMoption; |
||||
|
||||
|
||||
/*
|
||||
* Name: curl_multi_setopt() |
||||
* |
||||
* Desc: Sets options for the multi handle. |
||||
* |
||||
* Returns: CURLM error code. |
||||
*/ |
||||
CURL_EXTERN CURLMcode curl_multi_setopt(CURLM *multi_handle, |
||||
CURLMoption option, ...); |
||||
|
||||
|
||||
/*
|
||||
* Name: curl_multi_assign() |
||||
* |
||||
* Desc: This function sets an association in the multi handle between the |
||||
* given socket and a private pointer of the application. This is |
||||
* (only) useful for curl_multi_socket uses. |
||||
* |
||||
* Returns: CURLM error code. |
||||
*/ |
||||
CURL_EXTERN CURLMcode curl_multi_assign(CURLM *multi_handle, |
||||
curl_socket_t sockfd, void *sockp); |
||||
|
||||
|
||||
/*
|
||||
* Name: curl_push_callback |
||||
* |
||||
* Desc: This callback gets called when a new stream is being pushed by the |
||||
* server. It approves or denies the new stream. |
||||
* |
||||
* Returns: CURL_PUSH_OK or CURL_PUSH_DENY. |
||||
*/ |
||||
#define CURL_PUSH_OK 0 |
||||
#define CURL_PUSH_DENY 1 |
||||
|
||||
struct curl_pushheaders; /* forward declaration only */ |
||||
|
||||
CURL_EXTERN char *curl_pushheader_bynum(struct curl_pushheaders *h, |
||||
size_t num); |
||||
CURL_EXTERN char *curl_pushheader_byname(struct curl_pushheaders *h, |
||||
const char *name); |
||||
|
||||
typedef int (*curl_push_callback)(CURL *parent, |
||||
CURL *easy, |
||||
size_t num_headers, |
||||
struct curl_pushheaders *headers, |
||||
void *userp); |
||||
|
||||
#ifdef __cplusplus |
||||
} /* end of extern "C" */ |
||||
#endif |
||||
|
||||
#endif |
@ -0,0 +1,33 @@
@@ -0,0 +1,33 @@
|
||||
#ifndef __STDC_HEADERS_H |
||||
#define __STDC_HEADERS_H |
||||
/***************************************************************************
|
||||
* _ _ ____ _ |
||||
* Project ___| | | | _ \| | |
||||
* / __| | | | |_) | | |
||||
* | (__| |_| | _ <| |___ |
||||
* \___|\___/|_| \_\_____| |
||||
* |
||||
* Copyright (C) 1998 - 2016, Daniel Stenberg, <daniel@haxx.se>, et al. |
||||
* |
||||
* This software is licensed as described in the file COPYING, which |
||||
* you should have received as part of this distribution. The terms |
||||
* are also available at https://curl.haxx.se/docs/copyright.html.
|
||||
* |
||||
* You may opt to use, copy, modify, merge, publish, distribute and/or sell |
||||
* copies of the Software, and permit persons to whom the Software is |
||||
* furnished to do so, under the terms of the COPYING file. |
||||
* |
||||
* This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY |
||||
* KIND, either express or implied. |
||||
* |
||||
***************************************************************************/ |
||||
|
||||
#include <sys/types.h> |
||||
|
||||
size_t fread(void *, size_t, size_t, FILE *); |
||||
size_t fwrite(const void *, size_t, size_t, FILE *); |
||||
|
||||
int strcasecmp(const char *, const char *); |
||||
int strncasecmp(const char *, const char *, size_t); |
||||
|
||||
#endif /* __STDC_HEADERS_H */ |
@ -0,0 +1,471 @@
@@ -0,0 +1,471 @@
|
||||
#ifndef __CURL_SYSTEM_H |
||||
#define __CURL_SYSTEM_H |
||||
/***************************************************************************
|
||||
* _ _ ____ _ |
||||
* Project ___| | | | _ \| | |
||||
* / __| | | | |_) | | |
||||
* | (__| |_| | _ <| |___ |
||||
* \___|\___/|_| \_\_____| |
||||
* |
||||
* Copyright (C) 1998 - 2017, Daniel Stenberg, <daniel@haxx.se>, et al. |
||||
* |
||||
* This software is licensed as described in the file COPYING, which |
||||
* you should have received as part of this distribution. The terms |
||||
* are also available at https://curl.haxx.se/docs/copyright.html.
|
||||
* |
||||
* You may opt to use, copy, modify, merge, publish, distribute and/or sell |
||||
* copies of the Software, and permit persons to whom the Software is |
||||
* furnished to do so, under the terms of the COPYING file. |
||||
* |
||||
* This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY |
||||
* KIND, either express or implied. |
||||
* |
||||
***************************************************************************/ |
||||
|
||||
/*
|
||||
* Try to keep one section per platform, compiler and architecture, otherwise, |
||||
* if an existing section is reused for a different one and later on the |
||||
* original is adjusted, probably the piggybacking one can be adversely |
||||
* changed. |
||||
* |
||||
* In order to differentiate between platforms/compilers/architectures use |
||||
* only compiler built in predefined preprocessor symbols. |
||||
* |
||||
* curl_off_t |
||||
* ---------- |
||||
* |
||||
* For any given platform/compiler curl_off_t must be typedef'ed to a 64-bit |
||||
* wide signed integral data type. The width of this data type must remain |
||||
* constant and independent of any possible large file support settings. |
||||
* |
||||
* As an exception to the above, curl_off_t shall be typedef'ed to a 32-bit |
||||
* wide signed integral data type if there is no 64-bit type. |
||||
* |
||||
* As a general rule, curl_off_t shall not be mapped to off_t. This rule shall |
||||
* only be violated if off_t is the only 64-bit data type available and the |
||||
* size of off_t is independent of large file support settings. Keep your |
||||
* build on the safe side avoiding an off_t gating. If you have a 64-bit |
||||
* off_t then take for sure that another 64-bit data type exists, dig deeper |
||||
* and you will find it. |
||||
* |
||||
*/ |
||||
|
||||
#if defined(__DJGPP__) || defined(__GO32__) |
||||
# if defined(__DJGPP__) && (__DJGPP__ > 1) |
||||
# define CURL_TYPEOF_CURL_OFF_T long long |
||||
# define CURL_FORMAT_CURL_OFF_T "lld" |
||||
# define CURL_FORMAT_CURL_OFF_TU "llu" |
||||
# define CURL_SUFFIX_CURL_OFF_T LL |
||||
# define CURL_SUFFIX_CURL_OFF_TU ULL |
||||
# else |
||||
# define CURL_TYPEOF_CURL_OFF_T long |
||||
# define CURL_FORMAT_CURL_OFF_T "ld" |
||||
# define CURL_FORMAT_CURL_OFF_TU "lu" |
||||
# define CURL_SUFFIX_CURL_OFF_T L |
||||
# define CURL_SUFFIX_CURL_OFF_TU UL |
||||
# endif |
||||
# define CURL_TYPEOF_CURL_SOCKLEN_T int |
||||
|
||||
#elif defined(__SALFORDC__) |
||||
# define CURL_TYPEOF_CURL_OFF_T long |
||||
# define CURL_FORMAT_CURL_OFF_T "ld" |
||||
# define CURL_FORMAT_CURL_OFF_TU "lu" |
||||
# define CURL_SUFFIX_CURL_OFF_T L |
||||
# define CURL_SUFFIX_CURL_OFF_TU UL |
||||
# define CURL_TYPEOF_CURL_SOCKLEN_T int |
||||
|
||||
#elif defined(__BORLANDC__) |
||||
# if (__BORLANDC__ < 0x520) |
||||
# define CURL_TYPEOF_CURL_OFF_T long |
||||
# define CURL_FORMAT_CURL_OFF_T "ld" |
||||
# define CURL_FORMAT_CURL_OFF_TU "lu" |
||||
# define CURL_SUFFIX_CURL_OFF_T L |
||||
# define CURL_SUFFIX_CURL_OFF_TU UL |
||||
# else |
||||
# define CURL_TYPEOF_CURL_OFF_T __int64 |
||||
# define CURL_FORMAT_CURL_OFF_T "I64d" |
||||
# define CURL_FORMAT_CURL_OFF_TU "I64u" |
||||
# define CURL_SUFFIX_CURL_OFF_T i64 |
||||
# define CURL_SUFFIX_CURL_OFF_TU ui64 |
||||
# endif |
||||
# define CURL_TYPEOF_CURL_SOCKLEN_T int |
||||
|
||||
#elif defined(__TURBOC__) |
||||
# define CURL_TYPEOF_CURL_OFF_T long |
||||
# define CURL_FORMAT_CURL_OFF_T "ld" |
||||
# define CURL_FORMAT_CURL_OFF_TU "lu" |
||||
# define CURL_SUFFIX_CURL_OFF_T L |
||||
# define CURL_SUFFIX_CURL_OFF_TU UL |
||||
# define CURL_TYPEOF_CURL_SOCKLEN_T int |
||||
|
||||
#elif defined(__WATCOMC__) |
||||
# if defined(__386__) |
||||
# define CURL_TYPEOF_CURL_OFF_T __int64 |
||||
# define CURL_FORMAT_CURL_OFF_T "I64d" |
||||
# define CURL_FORMAT_CURL_OFF_TU "I64u" |
||||
# define CURL_SUFFIX_CURL_OFF_T i64 |
||||
# define CURL_SUFFIX_CURL_OFF_TU ui64 |
||||
# else |
||||
# define CURL_TYPEOF_CURL_OFF_T long |
||||
# define CURL_FORMAT_CURL_OFF_T "ld" |
||||
# define CURL_FORMAT_CURL_OFF_TU "lu" |
||||
# define CURL_SUFFIX_CURL_OFF_T L |
||||
# define CURL_SUFFIX_CURL_OFF_TU UL |
||||
# endif |
||||
# define CURL_TYPEOF_CURL_SOCKLEN_T int |
||||
|
||||
#elif defined(__POCC__) |
||||
# if (__POCC__ < 280) |
||||
# define CURL_TYPEOF_CURL_OFF_T long |
||||
# define CURL_FORMAT_CURL_OFF_T "ld" |
||||
# define CURL_FORMAT_CURL_OFF_TU "lu" |
||||
# define CURL_SUFFIX_CURL_OFF_T L |
||||
# define CURL_SUFFIX_CURL_OFF_TU UL |
||||
# elif defined(_MSC_VER) |
||||
# define CURL_TYPEOF_CURL_OFF_T __int64 |
||||
# define CURL_FORMAT_CURL_OFF_T "I64d" |
||||
# define CURL_FORMAT_CURL_OFF_TU "I64u" |
||||
# define CURL_SUFFIX_CURL_OFF_T i64 |
||||
# define CURL_SUFFIX_CURL_OFF_TU ui64 |
||||
# else |
||||
# define CURL_TYPEOF_CURL_OFF_T long long |
||||
# define CURL_FORMAT_CURL_OFF_T "lld" |
||||
# define CURL_FORMAT_CURL_OFF_TU "llu" |
||||
# define CURL_SUFFIX_CURL_OFF_T LL |
||||
# define CURL_SUFFIX_CURL_OFF_TU ULL |
||||
# endif |
||||
# define CURL_TYPEOF_CURL_SOCKLEN_T int |
||||
|
||||
#elif defined(__LCC__) |
||||
# define CURL_TYPEOF_CURL_OFF_T long |
||||
# define CURL_FORMAT_CURL_OFF_T "ld" |
||||
# define CURL_FORMAT_CURL_OFF_TU "lu" |
||||
# define CURL_SUFFIX_CURL_OFF_T L |
||||
# define CURL_SUFFIX_CURL_OFF_TU UL |
||||
# define CURL_TYPEOF_CURL_SOCKLEN_T int |
||||
|
||||
#elif defined(__SYMBIAN32__) |
||||
# if defined(__EABI__) /* Treat all ARM compilers equally */ |
||||
# define CURL_TYPEOF_CURL_OFF_T long long |
||||
# define CURL_FORMAT_CURL_OFF_T "lld" |
||||
# define CURL_FORMAT_CURL_OFF_TU "llu" |
||||
# define CURL_SUFFIX_CURL_OFF_T LL |
||||
# define CURL_SUFFIX_CURL_OFF_TU ULL |
||||
# elif defined(__CW32__) |
||||
# pragma longlong on |
||||
# define CURL_TYPEOF_CURL_OFF_T long long |
||||
# define CURL_FORMAT_CURL_OFF_T "lld" |
||||
# define CURL_FORMAT_CURL_OFF_TU "llu" |
||||
# define CURL_SUFFIX_CURL_OFF_T LL |
||||
# define CURL_SUFFIX_CURL_OFF_TU ULL |
||||
# elif defined(__VC32__) |
||||
# define CURL_TYPEOF_CURL_OFF_T __int64 |
||||
# define CURL_FORMAT_CURL_OFF_T "lld" |
||||
# define CURL_FORMAT_CURL_OFF_TU "llu" |
||||
# define CURL_SUFFIX_CURL_OFF_T LL |
||||
# define CURL_SUFFIX_CURL_OFF_TU ULL |
||||
# endif |
||||
# define CURL_TYPEOF_CURL_SOCKLEN_T unsigned int |
||||
|
||||
#elif defined(__MWERKS__) |
||||
# define CURL_TYPEOF_CURL_OFF_T long long |
||||
# define CURL_FORMAT_CURL_OFF_T "lld" |
||||
# define CURL_FORMAT_CURL_OFF_TU "llu" |
||||
# define CURL_SUFFIX_CURL_OFF_T LL |
||||
# define CURL_SUFFIX_CURL_OFF_TU ULL |
||||
# define CURL_TYPEOF_CURL_SOCKLEN_T int |
||||
|
||||
#elif defined(_WIN32_WCE) |
||||
# define CURL_TYPEOF_CURL_OFF_T __int64 |
||||
# define CURL_FORMAT_CURL_OFF_T "I64d" |
||||
# define CURL_FORMAT_CURL_OFF_TU "I64u" |
||||
# define CURL_SUFFIX_CURL_OFF_T i64 |
||||
# define CURL_SUFFIX_CURL_OFF_TU ui64 |
||||
# define CURL_TYPEOF_CURL_SOCKLEN_T int |
||||
|
||||
#elif defined(__MINGW32__) |
||||
# define CURL_TYPEOF_CURL_OFF_T long long |
||||
# define CURL_FORMAT_CURL_OFF_T "I64d" |
||||
# define CURL_FORMAT_CURL_OFF_TU "I64u" |
||||
# define CURL_SUFFIX_CURL_OFF_T LL |
||||
# define CURL_SUFFIX_CURL_OFF_TU ULL |
||||
# define CURL_TYPEOF_CURL_SOCKLEN_T socklen_t |
||||
# define CURL_PULL_SYS_TYPES_H 1 |
||||
# define CURL_PULL_WS2TCPIP_H 1 |
||||
|
||||
#elif defined(__VMS) |
||||
# if defined(__VAX) |
||||
# define CURL_TYPEOF_CURL_OFF_T long |
||||
# define CURL_FORMAT_CURL_OFF_T "ld" |
||||
# define CURL_FORMAT_CURL_OFF_TU "lu" |
||||
# define CURL_SUFFIX_CURL_OFF_T L |
||||
# define CURL_SUFFIX_CURL_OFF_TU UL |
||||
# else |
||||
# define CURL_TYPEOF_CURL_OFF_T long long |
||||
# define CURL_FORMAT_CURL_OFF_T "lld" |
||||
# define CURL_FORMAT_CURL_OFF_TU "llu" |
||||
# define CURL_SUFFIX_CURL_OFF_T LL |
||||
# define CURL_SUFFIX_CURL_OFF_TU ULL |
||||
# endif |
||||
# define CURL_TYPEOF_CURL_SOCKLEN_T unsigned int |
||||
|
||||
#elif defined(__OS400__) |
||||
# if defined(__ILEC400__) |
||||
# define CURL_TYPEOF_CURL_OFF_T long long |
||||
# define CURL_FORMAT_CURL_OFF_T "lld" |
||||
# define CURL_FORMAT_CURL_OFF_TU "llu" |
||||
# define CURL_SUFFIX_CURL_OFF_T LL |
||||
# define CURL_SUFFIX_CURL_OFF_TU ULL |
||||
# define CURL_TYPEOF_CURL_SOCKLEN_T socklen_t |
||||
# define CURL_PULL_SYS_TYPES_H 1 |
||||
# define CURL_PULL_SYS_SOCKET_H 1 |
||||
# endif |
||||
|
||||
#elif defined(__MVS__) |
||||
# if defined(__IBMC__) || defined(__IBMCPP__) |
||||
# if defined(_ILP32) |
||||
# elif defined(_LP64) |
||||
# endif |
||||
# if defined(_LONG_LONG) |
||||
# define CURL_TYPEOF_CURL_OFF_T long long |
||||
# define CURL_FORMAT_CURL_OFF_T "lld" |
||||
# define CURL_FORMAT_CURL_OFF_TU "llu" |
||||
# define CURL_SUFFIX_CURL_OFF_T LL |
||||
# define CURL_SUFFIX_CURL_OFF_TU ULL |
||||
# elif defined(_LP64) |
||||
# define CURL_TYPEOF_CURL_OFF_T long |
||||
# define CURL_FORMAT_CURL_OFF_T "ld" |
||||
# define CURL_FORMAT_CURL_OFF_TU "lu" |
||||
# define CURL_SUFFIX_CURL_OFF_T L |
||||
# define CURL_SUFFIX_CURL_OFF_TU UL |
||||
# else |
||||
# define CURL_TYPEOF_CURL_OFF_T long |
||||
# define CURL_FORMAT_CURL_OFF_T "ld" |
||||
# define CURL_FORMAT_CURL_OFF_TU "lu" |
||||
# define CURL_SUFFIX_CURL_OFF_T L |
||||
# define CURL_SUFFIX_CURL_OFF_TU UL |
||||
# endif |
||||
# define CURL_TYPEOF_CURL_SOCKLEN_T socklen_t |
||||
# define CURL_PULL_SYS_TYPES_H 1 |
||||
# define CURL_PULL_SYS_SOCKET_H 1 |
||||
# endif |
||||
|
||||
#elif defined(__370__) |
||||
# if defined(__IBMC__) || defined(__IBMCPP__) |
||||
# if defined(_ILP32) |
||||
# elif defined(_LP64) |
||||
# endif |
||||
# if defined(_LONG_LONG) |
||||
# define CURL_TYPEOF_CURL_OFF_T long long |
||||
# define CURL_FORMAT_CURL_OFF_T "lld" |
||||
# define CURL_FORMAT_CURL_OFF_TU "llu" |
||||
# define CURL_SUFFIX_CURL_OFF_T LL |
||||
# define CURL_SUFFIX_CURL_OFF_TU ULL |
||||
# elif defined(_LP64) |
||||
# define CURL_TYPEOF_CURL_OFF_T long |
||||
# define CURL_FORMAT_CURL_OFF_T "ld" |
||||
# define CURL_FORMAT_CURL_OFF_TU "lu" |
||||
# define CURL_SUFFIX_CURL_OFF_T L |
||||
# define CURL_SUFFIX_CURL_OFF_TU UL |
||||
# else |
||||
# define CURL_TYPEOF_CURL_OFF_T long |
||||
# define CURL_FORMAT_CURL_OFF_T "ld" |
||||
# define CURL_FORMAT_CURL_OFF_TU "lu" |
||||
# define CURL_SUFFIX_CURL_OFF_T L |
||||
# define CURL_SUFFIX_CURL_OFF_TU UL |
||||
# endif |
||||
# define CURL_TYPEOF_CURL_SOCKLEN_T socklen_t |
||||
# define CURL_PULL_SYS_TYPES_H 1 |
||||
# define CURL_PULL_SYS_SOCKET_H 1 |
||||
# endif |
||||
|
||||
#elif defined(TPF) |
||||
# define CURL_TYPEOF_CURL_OFF_T long |
||||
# define CURL_FORMAT_CURL_OFF_T "ld" |
||||
# define CURL_FORMAT_CURL_OFF_TU "lu" |
||||
# define CURL_SUFFIX_CURL_OFF_T L |
||||
# define CURL_SUFFIX_CURL_OFF_TU UL |
||||
# define CURL_TYPEOF_CURL_SOCKLEN_T int |
||||
|
||||
#elif defined(__TINYC__) /* also known as tcc */ |
||||
|
||||
# define CURL_TYPEOF_CURL_OFF_T long long |
||||
# define CURL_FORMAT_CURL_OFF_T "lld" |
||||
# define CURL_FORMAT_CURL_OFF_TU "llu" |
||||
# define CURL_SUFFIX_CURL_OFF_T LL |
||||
# define CURL_SUFFIX_CURL_OFF_TU ULL |
||||
# define CURL_TYPEOF_CURL_SOCKLEN_T socklen_t |
||||
# define CURL_PULL_SYS_TYPES_H 1 |
||||
# define CURL_PULL_SYS_SOCKET_H 1 |
||||
|
||||
#elif defined(__SUNPRO_C) /* Oracle Solaris Studio */ |
||||
# if !defined(__LP64) && (defined(__ILP32) || \ |
||||
defined(__i386) || defined(__sparcv8)) |
||||
# define CURL_TYPEOF_CURL_OFF_T long long |
||||
# define CURL_FORMAT_CURL_OFF_T "lld" |
||||
# define CURL_FORMAT_CURL_OFF_TU "llu" |
||||
# define CURL_SUFFIX_CURL_OFF_T LL |
||||
# define CURL_SUFFIX_CURL_OFF_TU ULL |
||||
# elif defined(__LP64) || \ |
||||
defined(__amd64) || defined(__sparcv9) |
||||
# define CURL_TYPEOF_CURL_OFF_T long |
||||
# define CURL_FORMAT_CURL_OFF_T "ld" |
||||
# define CURL_FORMAT_CURL_OFF_TU "lu" |
||||
# define CURL_SUFFIX_CURL_OFF_T L |
||||
# define CURL_SUFFIX_CURL_OFF_TU UL |
||||
# endif |
||||
# define CURL_TYPEOF_CURL_SOCKLEN_T socklen_t |
||||
# define CURL_PULL_SYS_TYPES_H 1 |
||||
# define CURL_PULL_SYS_SOCKET_H 1 |
||||
|
||||
/* ===================================== */ |
||||
/* KEEP MSVC THE PENULTIMATE ENTRY */ |
||||
/* ===================================== */ |
||||
|
||||
#elif defined(_MSC_VER) |
||||
# if (_MSC_VER >= 900) && (_INTEGRAL_MAX_BITS >= 64) |
||||
# define CURL_TYPEOF_CURL_OFF_T __int64 |
||||
# define CURL_FORMAT_CURL_OFF_T "I64d" |
||||
# define CURL_FORMAT_CURL_OFF_TU "I64u" |
||||
# define CURL_SUFFIX_CURL_OFF_T i64 |
||||
# define CURL_SUFFIX_CURL_OFF_TU ui64 |
||||
# else |
||||
# define CURL_TYPEOF_CURL_OFF_T long |
||||
# define CURL_FORMAT_CURL_OFF_T "ld" |
||||
# define CURL_FORMAT_CURL_OFF_TU "lu" |
||||
# define CURL_SUFFIX_CURL_OFF_T L |
||||
# define CURL_SUFFIX_CURL_OFF_TU UL |
||||
# endif |
||||
# define CURL_TYPEOF_CURL_SOCKLEN_T int |
||||
|
||||
/* ===================================== */ |
||||
/* KEEP GENERIC GCC THE LAST ENTRY */ |
||||
/* ===================================== */ |
||||
|
||||
#elif defined(__GNUC__) |
||||
# if !defined(__LP64__) && \ |
||||
(defined(__ILP32__) || defined(__i386__) || defined(__hppa__) || \ |
||||
defined(__ppc__) || defined(__powerpc__) || defined(__arm__) || \ |
||||
defined(__sparc__) || defined(__mips__) || defined(__sh__) || \ |
||||
defined(__XTENSA__) || \ |
||||
(defined(__SIZEOF_LONG__) && __SIZEOF_LONG__ == 4)) |
||||
# define CURL_TYPEOF_CURL_OFF_T long long |
||||
# define CURL_FORMAT_CURL_OFF_T "lld" |
||||
# define CURL_FORMAT_CURL_OFF_TU "llu" |
||||
# define CURL_SUFFIX_CURL_OFF_T LL |
||||
# define CURL_SUFFIX_CURL_OFF_TU ULL |
||||
# elif defined(__LP64__) || \ |
||||
defined(__x86_64__) || defined(__ppc64__) || defined(__sparc64__) || \ |
||||
(defined(__SIZEOF_LONG__) && __SIZEOF_LONG__ == 8) |
||||
# define CURL_TYPEOF_CURL_OFF_T long |
||||
# define CURL_FORMAT_CURL_OFF_T "ld" |
||||
# define CURL_FORMAT_CURL_OFF_TU "lu" |
||||
# define CURL_SUFFIX_CURL_OFF_T L |
||||
# define CURL_SUFFIX_CURL_OFF_TU UL |
||||
# endif |
||||
# define CURL_TYPEOF_CURL_SOCKLEN_T socklen_t |
||||
# define CURL_PULL_SYS_TYPES_H 1 |
||||
# define CURL_PULL_SYS_SOCKET_H 1 |
||||
|
||||
#else |
||||
/* generic "safe guess" on old 32 bit style */ |
||||
# define CURL_TYPEOF_CURL_OFF_T long |
||||
# define CURL_FORMAT_CURL_OFF_T "ld" |
||||
# define CURL_FORMAT_CURL_OFF_TU "lu" |
||||
# define CURL_SUFFIX_CURL_OFF_T L |
||||
# define CURL_SUFFIX_CURL_OFF_TU UL |
||||
# define CURL_TYPEOF_CURL_SOCKLEN_T int |
||||
#endif |
||||
|
||||
#ifdef _AIX |
||||
/* AIX needs <sys/poll.h> */ |
||||
#define CURL_PULL_SYS_POLL_H |
||||
#endif |
||||
|
||||
|
||||
/* CURL_PULL_WS2TCPIP_H is defined above when inclusion of header file */ |
||||
/* ws2tcpip.h is required here to properly make type definitions below. */ |
||||
#ifdef CURL_PULL_WS2TCPIP_H |
||||
# include <winsock2.h> |
||||
# include <windows.h> |
||||
# include <ws2tcpip.h> |
||||
#endif |
||||
|
||||
/* CURL_PULL_SYS_TYPES_H is defined above when inclusion of header file */ |
||||
/* sys/types.h is required here to properly make type definitions below. */ |
||||
#ifdef CURL_PULL_SYS_TYPES_H |
||||
# include <sys/types.h> |
||||
#endif |
||||
|
||||
/* CURL_PULL_SYS_SOCKET_H is defined above when inclusion of header file */ |
||||
/* sys/socket.h is required here to properly make type definitions below. */ |
||||
#ifdef CURL_PULL_SYS_SOCKET_H |
||||
# include <sys/socket.h> |
||||
#endif |
||||
|
||||
/* CURL_PULL_SYS_POLL_H is defined above when inclusion of header file */ |
||||
/* sys/poll.h is required here to properly make type definitions below. */ |
||||
#ifdef CURL_PULL_SYS_POLL_H |
||||
# include <sys/poll.h> |
||||
#endif |
||||
|
||||
/* Data type definition of curl_socklen_t. */ |
||||
#ifdef CURL_TYPEOF_CURL_SOCKLEN_T |
||||
typedef CURL_TYPEOF_CURL_SOCKLEN_T curl_socklen_t; |
||||
#endif |
||||
|
||||
/* Data type definition of curl_off_t. */ |
||||
|
||||
#ifdef CURL_TYPEOF_CURL_OFF_T |
||||
typedef CURL_TYPEOF_CURL_OFF_T curl_off_t; |
||||
#endif |
||||
|
||||
/*
|
||||
* CURL_ISOCPP and CURL_OFF_T_C definitions are done here in order to allow |
||||
* these to be visible and exported by the external libcurl interface API, |
||||
* while also making them visible to the library internals, simply including |
||||
* curl_setup.h, without actually needing to include curl.h internally. |
||||
* If some day this section would grow big enough, all this should be moved |
||||
* to its own header file. |
||||
*/ |
||||
|
||||
/*
|
||||
* Figure out if we can use the ## preprocessor operator, which is supported |
||||
* by ISO/ANSI C and C++. Some compilers support it without setting __STDC__ |
||||
* or __cplusplus so we need to carefully check for them too. |
||||
*/ |
||||
|
||||
#if defined(__STDC__) || defined(_MSC_VER) || defined(__cplusplus) || \ |
||||
defined(__HP_aCC) || defined(__BORLANDC__) || defined(__LCC__) || \ |
||||
defined(__POCC__) || defined(__SALFORDC__) || defined(__HIGHC__) || \ |
||||
defined(__ILEC400__) |
||||
/* This compiler is believed to have an ISO compatible preprocessor */ |
||||
#define CURL_ISOCPP |
||||
#else |
||||
/* This compiler is believed NOT to have an ISO compatible preprocessor */ |
||||
#undef CURL_ISOCPP |
||||
#endif |
||||
|
||||
/*
|
||||
* Macros for minimum-width signed and unsigned curl_off_t integer constants. |
||||
*/ |
||||
|
||||
#if defined(__BORLANDC__) && (__BORLANDC__ == 0x0551) |
||||
# define __CURL_OFF_T_C_HLPR2(x) x |
||||
# define __CURL_OFF_T_C_HLPR1(x) __CURL_OFF_T_C_HLPR2(x) |
||||
# define CURL_OFF_T_C(Val) __CURL_OFF_T_C_HLPR1(Val) ## \ |
||||
__CURL_OFF_T_C_HLPR1(CURL_SUFFIX_CURL_OFF_T) |
||||
# define CURL_OFF_TU_C(Val) __CURL_OFF_T_C_HLPR1(Val) ## \ |
||||
__CURL_OFF_T_C_HLPR1(CURL_SUFFIX_CURL_OFF_TU) |
||||
#else |
||||
# ifdef CURL_ISOCPP |
||||
# define __CURL_OFF_T_C_HLPR2(Val,Suffix) Val ## Suffix |
||||
# else |
||||
# define __CURL_OFF_T_C_HLPR2(Val,Suffix) Val/**/Suffix |
||||
# endif |
||||
# define __CURL_OFF_T_C_HLPR1(Val,Suffix) __CURL_OFF_T_C_HLPR2(Val,Suffix) |
||||
# define CURL_OFF_T_C(Val) __CURL_OFF_T_C_HLPR1(Val,CURL_SUFFIX_CURL_OFF_T) |
||||
# define CURL_OFF_TU_C(Val) __CURL_OFF_T_C_HLPR1(Val,CURL_SUFFIX_CURL_OFF_TU) |
||||
#endif |
||||
|
||||
#endif /* __CURL_SYSTEM_H */ |
@ -0,0 +1,683 @@
@@ -0,0 +1,683 @@
|
||||
#ifndef __CURL_TYPECHECK_GCC_H |
||||
#define __CURL_TYPECHECK_GCC_H |
||||
/***************************************************************************
|
||||
* _ _ ____ _ |
||||
* Project ___| | | | _ \| | |
||||
* / __| | | | |_) | | |
||||
* | (__| |_| | _ <| |___ |
||||
* \___|\___/|_| \_\_____| |
||||
* |
||||
* Copyright (C) 1998 - 2017, Daniel Stenberg, <daniel@haxx.se>, et al. |
||||
* |
||||
* This software is licensed as described in the file COPYING, which |
||||
* you should have received as part of this distribution. The terms |
||||
* are also available at https://curl.haxx.se/docs/copyright.html.
|
||||
* |
||||
* You may opt to use, copy, modify, merge, publish, distribute and/or sell |
||||
* copies of the Software, and permit persons to whom the Software is |
||||
* furnished to do so, under the terms of the COPYING file. |
||||
* |
||||
* This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY |
||||
* KIND, either express or implied. |
||||
* |
||||
***************************************************************************/ |
||||
|
||||
/* wraps curl_easy_setopt() with typechecking */ |
||||
|
||||
/* To add a new kind of warning, add an
|
||||
* if(_curl_is_sometype_option(_curl_opt)) |
||||
* if(!_curl_is_sometype(value)) |
||||
* _curl_easy_setopt_err_sometype(); |
||||
* block and define _curl_is_sometype_option, _curl_is_sometype and |
||||
* _curl_easy_setopt_err_sometype below |
||||
* |
||||
* NOTE: We use two nested 'if' statements here instead of the && operator, in |
||||
* order to work around gcc bug #32061. It affects only gcc 4.3.x/4.4.x |
||||
* when compiling with -Wlogical-op. |
||||
* |
||||
* To add an option that uses the same type as an existing option, you'll just |
||||
* need to extend the appropriate _curl_*_option macro |
||||
*/ |
||||
#define curl_easy_setopt(handle, option, value) \ |
||||
__extension__ ({ \ |
||||
__typeof__(option) _curl_opt = option; \ |
||||
if(__builtin_constant_p(_curl_opt)) { \ |
||||
if(_curl_is_long_option(_curl_opt)) \ |
||||
if(!_curl_is_long(value)) \ |
||||
_curl_easy_setopt_err_long(); \ |
||||
if(_curl_is_off_t_option(_curl_opt)) \ |
||||
if(!_curl_is_off_t(value)) \ |
||||
_curl_easy_setopt_err_curl_off_t(); \ |
||||
if(_curl_is_string_option(_curl_opt)) \ |
||||
if(!_curl_is_string(value)) \ |
||||
_curl_easy_setopt_err_string(); \ |
||||
if(_curl_is_write_cb_option(_curl_opt)) \ |
||||
if(!_curl_is_write_cb(value)) \ |
||||
_curl_easy_setopt_err_write_callback(); \ |
||||
if((_curl_opt) == CURLOPT_READFUNCTION) \ |
||||
if(!_curl_is_read_cb(value)) \ |
||||
_curl_easy_setopt_err_read_cb(); \ |
||||
if((_curl_opt) == CURLOPT_IOCTLFUNCTION) \ |
||||
if(!_curl_is_ioctl_cb(value)) \ |
||||
_curl_easy_setopt_err_ioctl_cb(); \ |
||||
if((_curl_opt) == CURLOPT_SOCKOPTFUNCTION) \ |
||||
if(!_curl_is_sockopt_cb(value)) \ |
||||
_curl_easy_setopt_err_sockopt_cb(); \ |
||||
if((_curl_opt) == CURLOPT_OPENSOCKETFUNCTION) \ |
||||
if(!_curl_is_opensocket_cb(value)) \ |
||||
_curl_easy_setopt_err_opensocket_cb(); \ |
||||
if((_curl_opt) == CURLOPT_PROGRESSFUNCTION) \ |
||||
if(!_curl_is_progress_cb(value)) \ |
||||
_curl_easy_setopt_err_progress_cb(); \ |
||||
if((_curl_opt) == CURLOPT_DEBUGFUNCTION) \ |
||||
if(!_curl_is_debug_cb(value)) \ |
||||
_curl_easy_setopt_err_debug_cb(); \ |
||||
if((_curl_opt) == CURLOPT_SSL_CTX_FUNCTION) \ |
||||
if(!_curl_is_ssl_ctx_cb(value)) \ |
||||
_curl_easy_setopt_err_ssl_ctx_cb(); \ |
||||
if(_curl_is_conv_cb_option(_curl_opt)) \ |
||||
if(!_curl_is_conv_cb(value)) \ |
||||
_curl_easy_setopt_err_conv_cb(); \ |
||||
if((_curl_opt) == CURLOPT_SEEKFUNCTION) \ |
||||
if(!_curl_is_seek_cb(value)) \ |
||||
_curl_easy_setopt_err_seek_cb(); \ |
||||
if(_curl_is_cb_data_option(_curl_opt)) \ |
||||
if(!_curl_is_cb_data(value)) \ |
||||
_curl_easy_setopt_err_cb_data(); \ |
||||
if((_curl_opt) == CURLOPT_ERRORBUFFER) \ |
||||
if(!_curl_is_error_buffer(value)) \ |
||||
_curl_easy_setopt_err_error_buffer(); \ |
||||
if((_curl_opt) == CURLOPT_STDERR) \ |
||||
if(!_curl_is_FILE(value)) \ |
||||
_curl_easy_setopt_err_FILE(); \ |
||||
if(_curl_is_postfields_option(_curl_opt)) \ |
||||
if(!_curl_is_postfields(value)) \ |
||||
_curl_easy_setopt_err_postfields(); \ |
||||
if((_curl_opt) == CURLOPT_HTTPPOST) \ |
||||
if(!_curl_is_arr((value), struct curl_httppost)) \ |
||||
_curl_easy_setopt_err_curl_httpost(); \ |
||||
if((_curl_opt) == CURLOPT_MIMEPOST) \ |
||||
if(!_curl_is_ptr((value), curl_mime)) \ |
||||
_curl_easy_setopt_err_curl_mimepost(); \ |
||||
if(_curl_is_slist_option(_curl_opt)) \ |
||||
if(!_curl_is_arr((value), struct curl_slist)) \ |
||||
_curl_easy_setopt_err_curl_slist(); \ |
||||
if((_curl_opt) == CURLOPT_SHARE) \ |
||||
if(!_curl_is_ptr((value), CURLSH)) \ |
||||
_curl_easy_setopt_err_CURLSH(); \ |
||||
} \ |
||||
curl_easy_setopt(handle, _curl_opt, value); \ |
||||
}) |
||||
|
||||
/* wraps curl_easy_getinfo() with typechecking */ |
||||
/* FIXME: don't allow const pointers */ |
||||
#define curl_easy_getinfo(handle, info, arg) \ |
||||
__extension__ ({ \ |
||||
__typeof__(info) _curl_info = info; \ |
||||
if(__builtin_constant_p(_curl_info)) { \ |
||||
if(_curl_is_string_info(_curl_info)) \ |
||||
if(!_curl_is_arr((arg), char *)) \ |
||||
_curl_easy_getinfo_err_string(); \ |
||||
if(_curl_is_long_info(_curl_info)) \ |
||||
if(!_curl_is_arr((arg), long)) \ |
||||
_curl_easy_getinfo_err_long(); \ |
||||
if(_curl_is_double_info(_curl_info)) \ |
||||
if(!_curl_is_arr((arg), double)) \ |
||||
_curl_easy_getinfo_err_double(); \ |
||||
if(_curl_is_slist_info(_curl_info)) \ |
||||
if(!_curl_is_arr((arg), struct curl_slist *)) \ |
||||
_curl_easy_getinfo_err_curl_slist(); \ |
||||
if(_curl_is_tlssessioninfo_info(_curl_info)) \ |
||||
if(!_curl_is_arr((arg), struct curl_tlssessioninfo *)) \ |
||||
_curl_easy_getinfo_err_curl_tlssesssioninfo(); \ |
||||
if(_curl_is_certinfo_info(_curl_info)) \ |
||||
if(!_curl_is_arr((arg), struct curl_certinfo *)) \ |
||||
_curl_easy_getinfo_err_curl_certinfo(); \ |
||||
if(_curl_is_socket_info(_curl_info)) \ |
||||
if(!_curl_is_arr((arg), curl_socket_t)) \ |
||||
_curl_easy_getinfo_err_curl_socket(); \ |
||||
if(_curl_is_off_t_info(_curl_info)) \ |
||||
if(!_curl_is_arr((arg), curl_off_t)) \ |
||||
_curl_easy_getinfo_err_curl_off_t(); \ |
||||
} \ |
||||
curl_easy_getinfo(handle, _curl_info, arg); \ |
||||
}) |
||||
|
||||
/* TODO: typechecking for curl_share_setopt() and curl_multi_setopt(),
|
||||
* for now just make sure that the functions are called with three |
||||
* arguments |
||||
*/ |
||||
#define curl_share_setopt(share,opt,param) curl_share_setopt(share,opt,param) |
||||
#define curl_multi_setopt(handle,opt,param) curl_multi_setopt(handle,opt,param) |
||||
|
||||
|
||||
/* the actual warnings, triggered by calling the _curl_easy_setopt_err*
|
||||
* functions */ |
||||
|
||||
/* To define a new warning, use _CURL_WARNING(identifier, "message") */ |
||||
#define _CURL_WARNING(id, message) \ |
||||
static void __attribute__((__warning__(message))) \ |
||||
__attribute__((__unused__)) __attribute__((__noinline__)) \ |
||||
id(void) { __asm__(""); } |
||||
|
||||
_CURL_WARNING(_curl_easy_setopt_err_long, |
||||
"curl_easy_setopt expects a long argument for this option") |
||||
_CURL_WARNING(_curl_easy_setopt_err_curl_off_t, |
||||
"curl_easy_setopt expects a curl_off_t argument for this option") |
||||
_CURL_WARNING(_curl_easy_setopt_err_string, |
||||
"curl_easy_setopt expects a " |
||||
"string ('char *' or char[]) argument for this option" |
||||
) |
||||
_CURL_WARNING(_curl_easy_setopt_err_write_callback, |
||||
"curl_easy_setopt expects a curl_write_callback argument for this option") |
||||
_CURL_WARNING(_curl_easy_setopt_err_read_cb, |
||||
"curl_easy_setopt expects a curl_read_callback argument for this option") |
||||
_CURL_WARNING(_curl_easy_setopt_err_ioctl_cb, |
||||
"curl_easy_setopt expects a curl_ioctl_callback argument for this option") |
||||
_CURL_WARNING(_curl_easy_setopt_err_sockopt_cb, |
||||
"curl_easy_setopt expects a curl_sockopt_callback argument for this option") |
||||
_CURL_WARNING(_curl_easy_setopt_err_opensocket_cb, |
||||
"curl_easy_setopt expects a " |
||||
"curl_opensocket_callback argument for this option" |
||||
) |
||||
_CURL_WARNING(_curl_easy_setopt_err_progress_cb, |
||||
"curl_easy_setopt expects a curl_progress_callback argument for this option") |
||||
_CURL_WARNING(_curl_easy_setopt_err_debug_cb, |
||||
"curl_easy_setopt expects a curl_debug_callback argument for this option") |
||||
_CURL_WARNING(_curl_easy_setopt_err_ssl_ctx_cb, |
||||
"curl_easy_setopt expects a curl_ssl_ctx_callback argument for this option") |
||||
_CURL_WARNING(_curl_easy_setopt_err_conv_cb, |
||||
"curl_easy_setopt expects a curl_conv_callback argument for this option") |
||||
_CURL_WARNING(_curl_easy_setopt_err_seek_cb, |
||||
"curl_easy_setopt expects a curl_seek_callback argument for this option") |
||||
_CURL_WARNING(_curl_easy_setopt_err_cb_data, |
||||
"curl_easy_setopt expects a " |
||||
"private data pointer as argument for this option") |
||||
_CURL_WARNING(_curl_easy_setopt_err_error_buffer, |
||||
"curl_easy_setopt expects a " |
||||
"char buffer of CURL_ERROR_SIZE as argument for this option") |
||||
_CURL_WARNING(_curl_easy_setopt_err_FILE, |
||||
"curl_easy_setopt expects a 'FILE *' argument for this option") |
||||
_CURL_WARNING(_curl_easy_setopt_err_postfields, |
||||
"curl_easy_setopt expects a 'void *' or 'char *' argument for this option") |
||||
_CURL_WARNING(_curl_easy_setopt_err_curl_httpost, |
||||
"curl_easy_setopt expects a 'struct curl_httppost *' " |
||||
"argument for this option") |
||||
_CURL_WARNING(_curl_easy_setopt_err_curl_mimepost, |
||||
"curl_easy_setopt expects a 'curl_mime *' " |
||||
"argument for this option") |
||||
_CURL_WARNING(_curl_easy_setopt_err_curl_slist, |
||||
"curl_easy_setopt expects a 'struct curl_slist *' argument for this option") |
||||
_CURL_WARNING(_curl_easy_setopt_err_CURLSH, |
||||
"curl_easy_setopt expects a CURLSH* argument for this option") |
||||
|
||||
_CURL_WARNING(_curl_easy_getinfo_err_string, |
||||
"curl_easy_getinfo expects a pointer to 'char *' for this info") |
||||
_CURL_WARNING(_curl_easy_getinfo_err_long, |
||||
"curl_easy_getinfo expects a pointer to long for this info") |
||||
_CURL_WARNING(_curl_easy_getinfo_err_double, |
||||
"curl_easy_getinfo expects a pointer to double for this info") |
||||
_CURL_WARNING(_curl_easy_getinfo_err_curl_slist, |
||||
"curl_easy_getinfo expects a pointer to 'struct curl_slist *' for this info") |
||||
_CURL_WARNING(_curl_easy_getinfo_err_curl_tlssesssioninfo, |
||||
"curl_easy_getinfo expects a pointer to " |
||||
"'struct curl_tlssessioninfo *' for this info") |
||||
_CURL_WARNING(_curl_easy_getinfo_err_curl_certinfo, |
||||
"curl_easy_getinfo expects a pointer to " |
||||
"'struct curl_certinfo *' for this info") |
||||
_CURL_WARNING(_curl_easy_getinfo_err_curl_socket, |
||||
"curl_easy_getinfo expects a pointer to curl_socket_t for this info") |
||||
_CURL_WARNING(_curl_easy_getinfo_err_curl_off_t, |
||||
"curl_easy_getinfo expects a pointer to curl_off_t for this info") |
||||
|
||||
/* groups of curl_easy_setops options that take the same type of argument */ |
||||
|
||||
/* To add a new option to one of the groups, just add
|
||||
* (option) == CURLOPT_SOMETHING |
||||
* to the or-expression. If the option takes a long or curl_off_t, you don't |
||||
* have to do anything |
||||
*/ |
||||
|
||||
/* evaluates to true if option takes a long argument */ |
||||
#define _curl_is_long_option(option) \ |
||||
(0 < (option) && (option) < CURLOPTTYPE_OBJECTPOINT) |
||||
|
||||
#define _curl_is_off_t_option(option) \ |
||||
((option) > CURLOPTTYPE_OFF_T) |
||||
|
||||
/* evaluates to true if option takes a char* argument */ |
||||
#define _curl_is_string_option(option) \ |
||||
((option) == CURLOPT_ABSTRACT_UNIX_SOCKET || \ |
||||
(option) == CURLOPT_ACCEPT_ENCODING || \ |
||||
(option) == CURLOPT_CAINFO || \ |
||||
(option) == CURLOPT_CAPATH || \ |
||||
(option) == CURLOPT_COOKIE || \ |
||||
(option) == CURLOPT_COOKIEFILE || \ |
||||
(option) == CURLOPT_COOKIEJAR || \ |
||||
(option) == CURLOPT_COOKIELIST || \ |
||||
(option) == CURLOPT_CRLFILE || \ |
||||
(option) == CURLOPT_CUSTOMREQUEST || \ |
||||
(option) == CURLOPT_DEFAULT_PROTOCOL || \ |
||||
(option) == CURLOPT_DNS_INTERFACE || \ |
||||
(option) == CURLOPT_DNS_LOCAL_IP4 || \ |
||||
(option) == CURLOPT_DNS_LOCAL_IP6 || \ |
||||
(option) == CURLOPT_DNS_SERVERS || \ |
||||
(option) == CURLOPT_EGDSOCKET || \ |
||||
(option) == CURLOPT_FTPPORT || \ |
||||
(option) == CURLOPT_FTP_ACCOUNT || \ |
||||
(option) == CURLOPT_FTP_ALTERNATIVE_TO_USER || \ |
||||
(option) == CURLOPT_INTERFACE || \ |
||||
(option) == CURLOPT_ISSUERCERT || \ |
||||
(option) == CURLOPT_KEYPASSWD || \ |
||||
(option) == CURLOPT_KRBLEVEL || \ |
||||
(option) == CURLOPT_LOGIN_OPTIONS || \ |
||||
(option) == CURLOPT_MAIL_AUTH || \ |
||||
(option) == CURLOPT_MAIL_FROM || \ |
||||
(option) == CURLOPT_NETRC_FILE || \ |
||||
(option) == CURLOPT_NOPROXY || \ |
||||
(option) == CURLOPT_PASSWORD || \ |
||||
(option) == CURLOPT_PINNEDPUBLICKEY || \ |
||||
(option) == CURLOPT_PRE_PROXY || \ |
||||
(option) == CURLOPT_PROXY || \ |
||||
(option) == CURLOPT_PROXYPASSWORD || \ |
||||
(option) == CURLOPT_PROXYUSERNAME || \ |
||||
(option) == CURLOPT_PROXYUSERPWD || \ |
||||
(option) == CURLOPT_PROXY_CAINFO || \ |
||||
(option) == CURLOPT_PROXY_CAPATH || \ |
||||
(option) == CURLOPT_PROXY_CRLFILE || \ |
||||
(option) == CURLOPT_PROXY_KEYPASSWD || \ |
||||
(option) == CURLOPT_PROXY_PINNEDPUBLICKEY || \ |
||||
(option) == CURLOPT_PROXY_SERVICE_NAME || \ |
||||
(option) == CURLOPT_PROXY_SSLCERT || \ |
||||
(option) == CURLOPT_PROXY_SSLCERTTYPE || \ |
||||
(option) == CURLOPT_PROXY_SSLKEY || \ |
||||
(option) == CURLOPT_PROXY_SSLKEYTYPE || \ |
||||
(option) == CURLOPT_PROXY_SSL_CIPHER_LIST || \ |
||||
(option) == CURLOPT_PROXY_TLSAUTH_PASSWORD || \ |
||||
(option) == CURLOPT_PROXY_TLSAUTH_USERNAME || \ |
||||
(option) == CURLOPT_PROXY_TLSAUTH_TYPE || \ |
||||
(option) == CURLOPT_RANDOM_FILE || \ |
||||
(option) == CURLOPT_RANGE || \ |
||||
(option) == CURLOPT_REFERER || \ |
||||
(option) == CURLOPT_RTSP_SESSION_ID || \ |
||||
(option) == CURLOPT_RTSP_STREAM_URI || \ |
||||
(option) == CURLOPT_RTSP_TRANSPORT || \ |
||||
(option) == CURLOPT_SERVICE_NAME || \ |
||||
(option) == CURLOPT_SOCKS5_GSSAPI_SERVICE || \ |
||||
(option) == CURLOPT_SSH_HOST_PUBLIC_KEY_MD5 || \ |
||||
(option) == CURLOPT_SSH_KNOWNHOSTS || \ |
||||
(option) == CURLOPT_SSH_PRIVATE_KEYFILE || \ |
||||
(option) == CURLOPT_SSH_PUBLIC_KEYFILE || \ |
||||
(option) == CURLOPT_SSLCERT || \ |
||||
(option) == CURLOPT_SSLCERTTYPE || \ |
||||
(option) == CURLOPT_SSLENGINE || \ |
||||
(option) == CURLOPT_SSLKEY || \ |
||||
(option) == CURLOPT_SSLKEYTYPE || \ |
||||
(option) == CURLOPT_SSL_CIPHER_LIST || \ |
||||
(option) == CURLOPT_TLSAUTH_PASSWORD || \ |
||||
(option) == CURLOPT_TLSAUTH_TYPE || \ |
||||
(option) == CURLOPT_TLSAUTH_USERNAME || \ |
||||
(option) == CURLOPT_UNIX_SOCKET_PATH || \ |
||||
(option) == CURLOPT_URL || \ |
||||
(option) == CURLOPT_USERAGENT || \ |
||||
(option) == CURLOPT_USERNAME || \ |
||||
(option) == CURLOPT_USERPWD || \ |
||||
(option) == CURLOPT_XOAUTH2_BEARER || \ |
||||
0) |
||||
|
||||
/* evaluates to true if option takes a curl_write_callback argument */ |
||||
#define _curl_is_write_cb_option(option) \ |
||||
((option) == CURLOPT_HEADERFUNCTION || \ |
||||
(option) == CURLOPT_WRITEFUNCTION) |
||||
|
||||
/* evaluates to true if option takes a curl_conv_callback argument */ |
||||
#define _curl_is_conv_cb_option(option) \ |
||||
((option) == CURLOPT_CONV_TO_NETWORK_FUNCTION || \ |
||||
(option) == CURLOPT_CONV_FROM_NETWORK_FUNCTION || \ |
||||
(option) == CURLOPT_CONV_FROM_UTF8_FUNCTION) |
||||
|
||||
/* evaluates to true if option takes a data argument to pass to a callback */ |
||||
#define _curl_is_cb_data_option(option) \ |
||||
((option) == CURLOPT_CHUNK_DATA || \ |
||||
(option) == CURLOPT_CLOSESOCKETDATA || \ |
||||
(option) == CURLOPT_DEBUGDATA || \ |
||||
(option) == CURLOPT_FNMATCH_DATA || \ |
||||
(option) == CURLOPT_HEADERDATA || \ |
||||
(option) == CURLOPT_INTERLEAVEDATA || \ |
||||
(option) == CURLOPT_IOCTLDATA || \ |
||||
(option) == CURLOPT_OPENSOCKETDATA || \ |
||||
(option) == CURLOPT_PRIVATE || \ |
||||
(option) == CURLOPT_PROGRESSDATA || \ |
||||
(option) == CURLOPT_READDATA || \ |
||||
(option) == CURLOPT_SEEKDATA || \ |
||||
(option) == CURLOPT_SOCKOPTDATA || \ |
||||
(option) == CURLOPT_SSH_KEYDATA || \ |
||||
(option) == CURLOPT_SSL_CTX_DATA || \ |
||||
(option) == CURLOPT_WRITEDATA || \ |
||||
0) |
||||
|
||||
/* evaluates to true if option takes a POST data argument (void* or char*) */ |
||||
#define _curl_is_postfields_option(option) \ |
||||
((option) == CURLOPT_POSTFIELDS || \ |
||||
(option) == CURLOPT_COPYPOSTFIELDS || \ |
||||
0) |
||||
|
||||
/* evaluates to true if option takes a struct curl_slist * argument */ |
||||
#define _curl_is_slist_option(option) \ |
||||
((option) == CURLOPT_HTTP200ALIASES || \ |
||||
(option) == CURLOPT_HTTPHEADER || \ |
||||
(option) == CURLOPT_MAIL_RCPT || \ |
||||
(option) == CURLOPT_POSTQUOTE || \ |
||||
(option) == CURLOPT_PREQUOTE || \ |
||||
(option) == CURLOPT_PROXYHEADER || \ |
||||
(option) == CURLOPT_QUOTE || \ |
||||
(option) == CURLOPT_RESOLVE || \ |
||||
(option) == CURLOPT_TELNETOPTIONS || \ |
||||
0) |
||||
|
||||
/* groups of curl_easy_getinfo infos that take the same type of argument */ |
||||
|
||||
/* evaluates to true if info expects a pointer to char * argument */ |
||||
#define _curl_is_string_info(info) \ |
||||
(CURLINFO_STRING < (info) && (info) < CURLINFO_LONG) |
||||
|
||||
/* evaluates to true if info expects a pointer to long argument */ |
||||
#define _curl_is_long_info(info) \ |
||||
(CURLINFO_LONG < (info) && (info) < CURLINFO_DOUBLE) |
||||
|
||||
/* evaluates to true if info expects a pointer to double argument */ |
||||
#define _curl_is_double_info(info) \ |
||||
(CURLINFO_DOUBLE < (info) && (info) < CURLINFO_SLIST) |
||||
|
||||
/* true if info expects a pointer to struct curl_slist * argument */ |
||||
#define _curl_is_slist_info(info) \ |
||||
(((info) == CURLINFO_SSL_ENGINES) || ((info) == CURLINFO_COOKIELIST)) |
||||
|
||||
/* true if info expects a pointer to struct curl_tlssessioninfo * argument */ |
||||
#define _curl_is_tlssessioninfo_info(info) \ |
||||
(((info) == CURLINFO_TLS_SSL_PTR) || ((info) == CURLINFO_TLS_SESSION)) |
||||
|
||||
/* true if info expects a pointer to struct curl_certinfo * argument */ |
||||
#define _curl_is_certinfo_info(info) ((info) == CURLINFO_CERTINFO) |
||||
|
||||
/* true if info expects a pointer to struct curl_socket_t argument */ |
||||
#define _curl_is_socket_info(info) \ |
||||
(CURLINFO_SOCKET < (info) && (info) < CURLINFO_OFF_T) |
||||
|
||||
/* true if info expects a pointer to curl_off_t argument */ |
||||
#define _curl_is_off_t_info(info) \ |
||||
(CURLINFO_OFF_T < (info)) |
||||
|
||||
|
||||
/* typecheck helpers -- check whether given expression has requested type*/ |
||||
|
||||
/* For pointers, you can use the _curl_is_ptr/_curl_is_arr macros,
|
||||
* otherwise define a new macro. Search for __builtin_types_compatible_p |
||||
* in the GCC manual. |
||||
* NOTE: these macros MUST NOT EVALUATE their arguments! The argument is |
||||
* the actual expression passed to the curl_easy_setopt macro. This |
||||
* means that you can only apply the sizeof and __typeof__ operators, no |
||||
* == or whatsoever. |
||||
*/ |
||||
|
||||
/* XXX: should evaluate to true iff expr is a pointer */ |
||||
#define _curl_is_any_ptr(expr) \ |
||||
(sizeof(expr) == sizeof(void *)) |
||||
|
||||
/* evaluates to true if expr is NULL */ |
||||
/* XXX: must not evaluate expr, so this check is not accurate */ |
||||
#define _curl_is_NULL(expr) \ |
||||
(__builtin_types_compatible_p(__typeof__(expr), __typeof__(NULL))) |
||||
|
||||
/* evaluates to true if expr is type*, const type* or NULL */ |
||||
#define _curl_is_ptr(expr, type) \ |
||||
(_curl_is_NULL(expr) || \ |
||||
__builtin_types_compatible_p(__typeof__(expr), type *) || \ |
||||
__builtin_types_compatible_p(__typeof__(expr), const type *)) |
||||
|
||||
/* evaluates to true if expr is one of type[], type*, NULL or const type* */ |
||||
#define _curl_is_arr(expr, type) \ |
||||
(_curl_is_ptr((expr), type) || \ |
||||
__builtin_types_compatible_p(__typeof__(expr), type [])) |
||||
|
||||
/* evaluates to true if expr is a string */ |
||||
#define _curl_is_string(expr) \ |
||||
(_curl_is_arr((expr), char) || \ |
||||
_curl_is_arr((expr), signed char) || \ |
||||
_curl_is_arr((expr), unsigned char)) |
||||
|
||||
/* evaluates to true if expr is a long (no matter the signedness)
|
||||
* XXX: for now, int is also accepted (and therefore short and char, which |
||||
* are promoted to int when passed to a variadic function) */ |
||||
#define _curl_is_long(expr) \ |
||||
(__builtin_types_compatible_p(__typeof__(expr), long) || \ |
||||
__builtin_types_compatible_p(__typeof__(expr), signed long) || \ |
||||
__builtin_types_compatible_p(__typeof__(expr), unsigned long) || \ |
||||
__builtin_types_compatible_p(__typeof__(expr), int) || \ |
||||
__builtin_types_compatible_p(__typeof__(expr), signed int) || \ |
||||
__builtin_types_compatible_p(__typeof__(expr), unsigned int) || \ |
||||
__builtin_types_compatible_p(__typeof__(expr), short) || \ |
||||
__builtin_types_compatible_p(__typeof__(expr), signed short) || \ |
||||
__builtin_types_compatible_p(__typeof__(expr), unsigned short) || \ |
||||
__builtin_types_compatible_p(__typeof__(expr), char) || \ |
||||
__builtin_types_compatible_p(__typeof__(expr), signed char) || \ |
||||
__builtin_types_compatible_p(__typeof__(expr), unsigned char)) |
||||
|
||||
/* evaluates to true if expr is of type curl_off_t */ |
||||
#define _curl_is_off_t(expr) \ |
||||
(__builtin_types_compatible_p(__typeof__(expr), curl_off_t)) |
||||
|
||||
/* evaluates to true if expr is abuffer suitable for CURLOPT_ERRORBUFFER */ |
||||
/* XXX: also check size of an char[] array? */ |
||||
#define _curl_is_error_buffer(expr) \ |
||||
(_curl_is_NULL(expr) || \ |
||||
__builtin_types_compatible_p(__typeof__(expr), char *) || \ |
||||
__builtin_types_compatible_p(__typeof__(expr), char[])) |
||||
|
||||
/* evaluates to true if expr is of type (const) void* or (const) FILE* */ |
||||
#if 0 |
||||
#define _curl_is_cb_data(expr) \ |
||||
(_curl_is_ptr((expr), void) || \ |
||||
_curl_is_ptr((expr), FILE)) |
||||
#else /* be less strict */ |
||||
#define _curl_is_cb_data(expr) \ |
||||
_curl_is_any_ptr(expr) |
||||
#endif |
||||
|
||||
/* evaluates to true if expr is of type FILE* */ |
||||
#define _curl_is_FILE(expr) \ |
||||
(_curl_is_NULL(expr) || \ |
||||
(__builtin_types_compatible_p(__typeof__(expr), FILE *))) |
||||
|
||||
/* evaluates to true if expr can be passed as POST data (void* or char*) */ |
||||
#define _curl_is_postfields(expr) \ |
||||
(_curl_is_ptr((expr), void) || \ |
||||
_curl_is_arr((expr), char)) |
||||
|
||||
/* FIXME: the whole callback checking is messy...
|
||||
* The idea is to tolerate char vs. void and const vs. not const |
||||
* pointers in arguments at least |
||||
*/ |
||||
/* helper: __builtin_types_compatible_p distinguishes between functions and
|
||||
* function pointers, hide it */ |
||||
#define _curl_callback_compatible(func, type) \ |
||||
(__builtin_types_compatible_p(__typeof__(func), type) || \ |
||||
__builtin_types_compatible_p(__typeof__(func) *, type)) |
||||
|
||||
/* evaluates to true if expr is of type curl_read_callback or "similar" */ |
||||
#define _curl_is_read_cb(expr) \ |
||||
(_curl_is_NULL(expr) || \ |
||||
_curl_callback_compatible((expr), __typeof__(fread) *) || \ |
||||
_curl_callback_compatible((expr), curl_read_callback) || \ |
||||
_curl_callback_compatible((expr), _curl_read_callback1) || \ |
||||
_curl_callback_compatible((expr), _curl_read_callback2) || \ |
||||
_curl_callback_compatible((expr), _curl_read_callback3) || \ |
||||
_curl_callback_compatible((expr), _curl_read_callback4) || \ |
||||
_curl_callback_compatible((expr), _curl_read_callback5) || \ |
||||
_curl_callback_compatible((expr), _curl_read_callback6)) |
||||
typedef size_t (*_curl_read_callback1)(char *, size_t, size_t, void *); |
||||
typedef size_t (*_curl_read_callback2)(char *, size_t, size_t, const void *); |
||||
typedef size_t (*_curl_read_callback3)(char *, size_t, size_t, FILE *); |
||||
typedef size_t (*_curl_read_callback4)(void *, size_t, size_t, void *); |
||||
typedef size_t (*_curl_read_callback5)(void *, size_t, size_t, const void *); |
||||
typedef size_t (*_curl_read_callback6)(void *, size_t, size_t, FILE *); |
||||
|
||||
/* evaluates to true if expr is of type curl_write_callback or "similar" */ |
||||
#define _curl_is_write_cb(expr) \ |
||||
(_curl_is_read_cb(expr) || \ |
||||
_curl_callback_compatible((expr), __typeof__(fwrite) *) || \ |
||||
_curl_callback_compatible((expr), curl_write_callback) || \ |
||||
_curl_callback_compatible((expr), _curl_write_callback1) || \ |
||||
_curl_callback_compatible((expr), _curl_write_callback2) || \ |
||||
_curl_callback_compatible((expr), _curl_write_callback3) || \ |
||||
_curl_callback_compatible((expr), _curl_write_callback4) || \ |
||||
_curl_callback_compatible((expr), _curl_write_callback5) || \ |
||||
_curl_callback_compatible((expr), _curl_write_callback6)) |
||||
typedef size_t (*_curl_write_callback1)(const char *, size_t, size_t, void *); |
||||
typedef size_t (*_curl_write_callback2)(const char *, size_t, size_t, |
||||
const void *); |
||||
typedef size_t (*_curl_write_callback3)(const char *, size_t, size_t, FILE *); |
||||
typedef size_t (*_curl_write_callback4)(const void *, size_t, size_t, void *); |
||||
typedef size_t (*_curl_write_callback5)(const void *, size_t, size_t, |
||||
const void *); |
||||
typedef size_t (*_curl_write_callback6)(const void *, size_t, size_t, FILE *); |
||||
|
||||
/* evaluates to true if expr is of type curl_ioctl_callback or "similar" */ |
||||
#define _curl_is_ioctl_cb(expr) \ |
||||
(_curl_is_NULL(expr) || \ |
||||
_curl_callback_compatible((expr), curl_ioctl_callback) || \ |
||||
_curl_callback_compatible((expr), _curl_ioctl_callback1) || \ |
||||
_curl_callback_compatible((expr), _curl_ioctl_callback2) || \ |
||||
_curl_callback_compatible((expr), _curl_ioctl_callback3) || \ |
||||
_curl_callback_compatible((expr), _curl_ioctl_callback4)) |
||||
typedef curlioerr (*_curl_ioctl_callback1)(CURL *, int, void *); |
||||
typedef curlioerr (*_curl_ioctl_callback2)(CURL *, int, const void *); |
||||
typedef curlioerr (*_curl_ioctl_callback3)(CURL *, curliocmd, void *); |
||||
typedef curlioerr (*_curl_ioctl_callback4)(CURL *, curliocmd, const void *); |
||||
|
||||
/* evaluates to true if expr is of type curl_sockopt_callback or "similar" */ |
||||
#define _curl_is_sockopt_cb(expr) \ |
||||
(_curl_is_NULL(expr) || \ |
||||
_curl_callback_compatible((expr), curl_sockopt_callback) || \ |
||||
_curl_callback_compatible((expr), _curl_sockopt_callback1) || \ |
||||
_curl_callback_compatible((expr), _curl_sockopt_callback2)) |
||||
typedef int (*_curl_sockopt_callback1)(void *, curl_socket_t, curlsocktype); |
||||
typedef int (*_curl_sockopt_callback2)(const void *, curl_socket_t, |
||||
curlsocktype); |
||||
|
||||
/* evaluates to true if expr is of type curl_opensocket_callback or
|
||||
"similar" */ |
||||
#define _curl_is_opensocket_cb(expr) \ |
||||
(_curl_is_NULL(expr) || \ |
||||
_curl_callback_compatible((expr), curl_opensocket_callback) || \ |
||||
_curl_callback_compatible((expr), _curl_opensocket_callback1) || \ |
||||
_curl_callback_compatible((expr), _curl_opensocket_callback2) || \ |
||||
_curl_callback_compatible((expr), _curl_opensocket_callback3) || \ |
||||
_curl_callback_compatible((expr), _curl_opensocket_callback4)) |
||||
typedef curl_socket_t (*_curl_opensocket_callback1) |
||||
(void *, curlsocktype, struct curl_sockaddr *); |
||||
typedef curl_socket_t (*_curl_opensocket_callback2) |
||||
(void *, curlsocktype, const struct curl_sockaddr *); |
||||
typedef curl_socket_t (*_curl_opensocket_callback3) |
||||
(const void *, curlsocktype, struct curl_sockaddr *); |
||||
typedef curl_socket_t (*_curl_opensocket_callback4) |
||||
(const void *, curlsocktype, const struct curl_sockaddr *); |
||||
|
||||
/* evaluates to true if expr is of type curl_progress_callback or "similar" */ |
||||
#define _curl_is_progress_cb(expr) \ |
||||
(_curl_is_NULL(expr) || \ |
||||
_curl_callback_compatible((expr), curl_progress_callback) || \ |
||||
_curl_callback_compatible((expr), _curl_progress_callback1) || \ |
||||
_curl_callback_compatible((expr), _curl_progress_callback2)) |
||||
typedef int (*_curl_progress_callback1)(void *, |
||||
double, double, double, double); |
||||
typedef int (*_curl_progress_callback2)(const void *, |
||||
double, double, double, double); |
||||
|
||||
/* evaluates to true if expr is of type curl_debug_callback or "similar" */ |
||||
#define _curl_is_debug_cb(expr) \ |
||||
(_curl_is_NULL(expr) || \ |
||||
_curl_callback_compatible((expr), curl_debug_callback) || \ |
||||
_curl_callback_compatible((expr), _curl_debug_callback1) || \ |
||||
_curl_callback_compatible((expr), _curl_debug_callback2) || \ |
||||
_curl_callback_compatible((expr), _curl_debug_callback3) || \ |
||||
_curl_callback_compatible((expr), _curl_debug_callback4) || \ |
||||
_curl_callback_compatible((expr), _curl_debug_callback5) || \ |
||||
_curl_callback_compatible((expr), _curl_debug_callback6) || \ |
||||
_curl_callback_compatible((expr), _curl_debug_callback7) || \ |
||||
_curl_callback_compatible((expr), _curl_debug_callback8)) |
||||
typedef int (*_curl_debug_callback1) (CURL *, |
||||
curl_infotype, char *, size_t, void *); |
||||
typedef int (*_curl_debug_callback2) (CURL *, |
||||
curl_infotype, char *, size_t, const void *); |
||||
typedef int (*_curl_debug_callback3) (CURL *, |
||||
curl_infotype, const char *, size_t, void *); |
||||
typedef int (*_curl_debug_callback4) (CURL *, |
||||
curl_infotype, const char *, size_t, const void *); |
||||
typedef int (*_curl_debug_callback5) (CURL *, |
||||
curl_infotype, unsigned char *, size_t, void *); |
||||
typedef int (*_curl_debug_callback6) (CURL *, |
||||
curl_infotype, unsigned char *, size_t, const void *); |
||||
typedef int (*_curl_debug_callback7) (CURL *, |
||||
curl_infotype, const unsigned char *, size_t, void *); |
||||
typedef int (*_curl_debug_callback8) (CURL *, |
||||
curl_infotype, const unsigned char *, size_t, const void *); |
||||
|
||||
/* evaluates to true if expr is of type curl_ssl_ctx_callback or "similar" */ |
||||
/* this is getting even messier... */ |
||||
#define _curl_is_ssl_ctx_cb(expr) \ |
||||
(_curl_is_NULL(expr) || \ |
||||
_curl_callback_compatible((expr), curl_ssl_ctx_callback) || \ |
||||
_curl_callback_compatible((expr), _curl_ssl_ctx_callback1) || \ |
||||
_curl_callback_compatible((expr), _curl_ssl_ctx_callback2) || \ |
||||
_curl_callback_compatible((expr), _curl_ssl_ctx_callback3) || \ |
||||
_curl_callback_compatible((expr), _curl_ssl_ctx_callback4) || \ |
||||
_curl_callback_compatible((expr), _curl_ssl_ctx_callback5) || \ |
||||
_curl_callback_compatible((expr), _curl_ssl_ctx_callback6) || \ |
||||
_curl_callback_compatible((expr), _curl_ssl_ctx_callback7) || \ |
||||
_curl_callback_compatible((expr), _curl_ssl_ctx_callback8)) |
||||
typedef CURLcode (*_curl_ssl_ctx_callback1)(CURL *, void *, void *); |
||||
typedef CURLcode (*_curl_ssl_ctx_callback2)(CURL *, void *, const void *); |
||||
typedef CURLcode (*_curl_ssl_ctx_callback3)(CURL *, const void *, void *); |
||||
typedef CURLcode (*_curl_ssl_ctx_callback4)(CURL *, const void *, |
||||
const void *); |
||||
#ifdef HEADER_SSL_H |
||||
/* hack: if we included OpenSSL's ssl.h, we know about SSL_CTX
|
||||
* this will of course break if we're included before OpenSSL headers... |
||||
*/ |
||||
typedef CURLcode (*_curl_ssl_ctx_callback5)(CURL *, SSL_CTX, void *); |
||||
typedef CURLcode (*_curl_ssl_ctx_callback6)(CURL *, SSL_CTX, const void *); |
||||
typedef CURLcode (*_curl_ssl_ctx_callback7)(CURL *, const SSL_CTX, void *); |
||||
typedef CURLcode (*_curl_ssl_ctx_callback8)(CURL *, const SSL_CTX, |
||||
const void *); |
||||
#else |
||||
typedef _curl_ssl_ctx_callback1 _curl_ssl_ctx_callback5; |
||||
typedef _curl_ssl_ctx_callback1 _curl_ssl_ctx_callback6; |
||||
typedef _curl_ssl_ctx_callback1 _curl_ssl_ctx_callback7; |
||||
typedef _curl_ssl_ctx_callback1 _curl_ssl_ctx_callback8; |
||||
#endif |
||||
|
||||
/* evaluates to true if expr is of type curl_conv_callback or "similar" */ |
||||
#define _curl_is_conv_cb(expr) \ |
||||
(_curl_is_NULL(expr) || \ |
||||
_curl_callback_compatible((expr), curl_conv_callback) || \ |
||||
_curl_callback_compatible((expr), _curl_conv_callback1) || \ |
||||
_curl_callback_compatible((expr), _curl_conv_callback2) || \ |
||||
_curl_callback_compatible((expr), _curl_conv_callback3) || \ |
||||
_curl_callback_compatible((expr), _curl_conv_callback4)) |
||||
typedef CURLcode (*_curl_conv_callback1)(char *, size_t length); |
||||
typedef CURLcode (*_curl_conv_callback2)(const char *, size_t length); |
||||
typedef CURLcode (*_curl_conv_callback3)(void *, size_t length); |
||||
typedef CURLcode (*_curl_conv_callback4)(const void *, size_t length); |
||||
|
||||
/* evaluates to true if expr is of type curl_seek_callback or "similar" */ |
||||
#define _curl_is_seek_cb(expr) \ |
||||
(_curl_is_NULL(expr) || \ |
||||
_curl_callback_compatible((expr), curl_seek_callback) || \ |
||||
_curl_callback_compatible((expr), _curl_seek_callback1) || \ |
||||
_curl_callback_compatible((expr), _curl_seek_callback2)) |
||||
typedef CURLcode (*_curl_seek_callback1)(void *, curl_off_t, int); |
||||
typedef CURLcode (*_curl_seek_callback2)(const void *, curl_off_t, int); |
||||
|
||||
|
||||
#endif /* __CURL_TYPECHECK_GCC_H */ |
Binary file not shown.
Binary file not shown.
Binary file not shown.
Loading…
Reference in new issue