1/** 2 * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. 3 * SPDX-License-Identifier: Apache-2.0. 4 */ 5 6#ifndef AWS_COMMON_POSIX_COMMON_INL 7#define AWS_COMMON_POSIX_COMMON_INL 8 9#include <aws/common/common.h> 10 11#include <errno.h> 12 13AWS_EXTERN_C_BEGIN 14 15static inline int aws_private_convert_and_raise_error_code(int error_code) { 16 switch (error_code) { 17 case 0: 18 return AWS_OP_SUCCESS; 19 case EINVAL: 20 return aws_raise_error(AWS_ERROR_MUTEX_NOT_INIT); 21 case EBUSY: 22 return aws_raise_error(AWS_ERROR_MUTEX_TIMEOUT); 23 case EPERM: 24 return aws_raise_error(AWS_ERROR_MUTEX_CALLER_NOT_OWNER); 25 case ENOMEM: 26 return aws_raise_error(AWS_ERROR_OOM); 27 case EDEADLK: 28 return aws_raise_error(AWS_ERROR_THREAD_DEADLOCK_DETECTED); 29 default: 30 return aws_raise_error(AWS_ERROR_MUTEX_FAILED); 31 } 32} 33 34AWS_EXTERN_C_END 35 36#endif /* AWS_COMMON_POSIX_COMMON_INL */ 37