Exemple #1
0
	// Error helper functions
	s32 get_last_error()
	{
		// Convert the error code for socket functions to a one for sys_net
		s32 result;
		const char* name{};

#ifdef _WIN32
		switch (s32 code = WSAGetLastError())
#define ERROR_CASE(error) case WSA ## error: result = SYS_NET_ ## error; name = #error; break;
#else
		switch (s32 code = errno)
#define ERROR_CASE(error) case error: result = SYS_NET_ ## error; name = #error; break;
#endif
		{
			ERROR_CASE(EWOULDBLOCK);
		default: throw fmt::exception("Unknown/illegal socket error: %d" HERE, code);
		}

		if (name && result != SYS_NET_EWOULDBLOCK)
		{
			ppu_error_code::report(result, name);
		}

		return result;
#undef ERROR_CASE
	}
Exemple #2
0
	const char* errString() throw()
	{
#define ERROR_CASE(e) case e: return #e
		switch (_errNum)
		{
			ERROR_CASE(CL_SUCCESS);
			ERROR_CASE(CL_DEVICE_NOT_FOUND);
			ERROR_CASE(CL_DEVICE_NOT_AVAILABLE);
			ERROR_CASE(CL_COMPILER_NOT_AVAILABLE);
			ERROR_CASE(CL_MEM_OBJECT_ALLOCATION_FAILURE);
			ERROR_CASE(CL_OUT_OF_RESOURCES);
			ERROR_CASE(CL_OUT_OF_HOST_MEMORY);
			ERROR_CASE(CL_PROFILING_INFO_NOT_AVAILABLE);
			ERROR_CASE(CL_MEM_COPY_OVERLAP);
			ERROR_CASE(CL_IMAGE_FORMAT_MISMATCH);
			ERROR_CASE(CL_IMAGE_FORMAT_NOT_SUPPORTED);
			ERROR_CASE(CL_BUILD_PROGRAM_FAILURE);
			ERROR_CASE(CL_MAP_FAILURE);
			ERROR_CASE(CL_MISALIGNED_SUB_BUFFER_OFFSET);
			ERROR_CASE(CL_EXEC_STATUS_ERROR_FOR_EVENTS_IN_WAIT_LIST);
			ERROR_CASE(CL_INVALID_VALUE);
			ERROR_CASE(CL_INVALID_DEVICE_TYPE);
			ERROR_CASE(CL_INVALID_PLATFORM);
			ERROR_CASE(CL_INVALID_DEVICE);
			ERROR_CASE(CL_INVALID_CONTEXT);
			ERROR_CASE(CL_INVALID_QUEUE_PROPERTIES);
			ERROR_CASE(CL_INVALID_COMMAND_QUEUE);
			ERROR_CASE(CL_INVALID_HOST_PTR);
			ERROR_CASE(CL_INVALID_MEM_OBJECT);
			ERROR_CASE(CL_INVALID_IMAGE_FORMAT_DESCRIPTOR);
			ERROR_CASE(CL_INVALID_IMAGE_SIZE);
			ERROR_CASE(CL_INVALID_SAMPLER);
			ERROR_CASE(CL_INVALID_BINARY);
			ERROR_CASE(CL_INVALID_BUILD_OPTIONS);
			ERROR_CASE(CL_INVALID_PROGRAM);
			ERROR_CASE(CL_INVALID_PROGRAM_EXECUTABLE);
			ERROR_CASE(CL_INVALID_KERNEL_NAME);
			ERROR_CASE(CL_INVALID_KERNEL_DEFINITION);
			ERROR_CASE(CL_INVALID_KERNEL);
			ERROR_CASE(CL_INVALID_ARG_INDEX);
			ERROR_CASE(CL_INVALID_ARG_VALUE);
			ERROR_CASE(CL_INVALID_ARG_SIZE);
			ERROR_CASE(CL_INVALID_KERNEL_ARGS);
			ERROR_CASE(CL_INVALID_WORK_DIMENSION);
			ERROR_CASE(CL_INVALID_WORK_GROUP_SIZE);
			ERROR_CASE(CL_INVALID_WORK_ITEM_SIZE);
			ERROR_CASE(CL_INVALID_GLOBAL_OFFSET);
			ERROR_CASE(CL_INVALID_EVENT_WAIT_LIST);
			ERROR_CASE(CL_INVALID_EVENT);
			ERROR_CASE(CL_INVALID_OPERATION);
			ERROR_CASE(CL_INVALID_GL_OBJECT);
			ERROR_CASE(CL_INVALID_BUFFER_SIZE);
			ERROR_CASE(CL_INVALID_MIP_LEVEL);
			ERROR_CASE(CL_INVALID_GLOBAL_WORK_SIZE);
		};
#undef ERROR_CASE

		return "Invalid error code";
	}