18f2875b29780312f4edda3d831cc8a99e1648dd5San Mehat/* 28f2875b29780312f4edda3d831cc8a99e1648dd5San Mehat * Copyright (C) 2008 The Android Open Source Project 38f2875b29780312f4edda3d831cc8a99e1648dd5San Mehat * 48f2875b29780312f4edda3d831cc8a99e1648dd5San Mehat * Licensed under the Apache License, Version 2.0 (the "License"); 58f2875b29780312f4edda3d831cc8a99e1648dd5San Mehat * you may not use this file except in compliance with the License. 68f2875b29780312f4edda3d831cc8a99e1648dd5San Mehat * You may obtain a copy of the License at 78f2875b29780312f4edda3d831cc8a99e1648dd5San Mehat * 88f2875b29780312f4edda3d831cc8a99e1648dd5San Mehat * http://www.apache.org/licenses/LICENSE-2.0 98f2875b29780312f4edda3d831cc8a99e1648dd5San Mehat * 108f2875b29780312f4edda3d831cc8a99e1648dd5San Mehat * Unless required by applicable law or agreed to in writing, software 118f2875b29780312f4edda3d831cc8a99e1648dd5San Mehat * distributed under the License is distributed on an "AS IS" BASIS, 128f2875b29780312f4edda3d831cc8a99e1648dd5San Mehat * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 138f2875b29780312f4edda3d831cc8a99e1648dd5San Mehat * See the License for the specific language governing permissions and 148f2875b29780312f4edda3d831cc8a99e1648dd5San Mehat * limitations under the License. 158f2875b29780312f4edda3d831cc8a99e1648dd5San Mehat */ 168f2875b29780312f4edda3d831cc8a99e1648dd5San Mehat 178f2875b29780312f4edda3d831cc8a99e1648dd5San Mehat#include <stdio.h> 188f2875b29780312f4edda3d831cc8a99e1648dd5San Mehat#include <errno.h> 198f2875b29780312f4edda3d831cc8a99e1648dd5San Mehat#include <string.h> 208f2875b29780312f4edda3d831cc8a99e1648dd5San Mehat 218f2875b29780312f4edda3d831cc8a99e1648dd5San Mehat#define LOG_TAG "Vold" 228f2875b29780312f4edda3d831cc8a99e1648dd5San Mehat 238f2875b29780312f4edda3d831cc8a99e1648dd5San Mehat#include <cutils/log.h> 248f2875b29780312f4edda3d831cc8a99e1648dd5San Mehat 258f2875b29780312f4edda3d831cc8a99e1648dd5San Mehat#include "ResponseCode.h" 268f2875b29780312f4edda3d831cc8a99e1648dd5San Mehat 278f2875b29780312f4edda3d831cc8a99e1648dd5San Mehatint ResponseCode::convertFromErrno() { 288f2875b29780312f4edda3d831cc8a99e1648dd5San Mehat if (errno == ENODEV) { 298f2875b29780312f4edda3d831cc8a99e1648dd5San Mehat return(ResponseCode::OpFailedNoMedia); 308f2875b29780312f4edda3d831cc8a99e1648dd5San Mehat } else if (errno == ENODATA) { 318f2875b29780312f4edda3d831cc8a99e1648dd5San Mehat return(ResponseCode::OpFailedMediaBlank); 328f2875b29780312f4edda3d831cc8a99e1648dd5San Mehat } else if (errno == EIO) { 338f2875b29780312f4edda3d831cc8a99e1648dd5San Mehat return(ResponseCode::OpFailedMediaCorrupt); 348f2875b29780312f4edda3d831cc8a99e1648dd5San Mehat } else if (errno == EBUSY) { 358f2875b29780312f4edda3d831cc8a99e1648dd5San Mehat return(ResponseCode::OpFailedStorageBusy); 3688ac2c06539485942bf414efda2d39647fa1a415San Mehat } else if (errno == ENOENT) { 3788ac2c06539485942bf414efda2d39647fa1a415San Mehat return(ResponseCode::OpFailedStorageNotFound); 388f2875b29780312f4edda3d831cc8a99e1648dd5San Mehat } 398f2875b29780312f4edda3d831cc8a99e1648dd5San Mehat 4097ac40e4e6f3ed0bd5d6878d7d8d4a54fcaecb76San Mehat SLOGW("Returning OperationFailed - no handler for errno %d", errno); 418f2875b29780312f4edda3d831cc8a99e1648dd5San Mehat return(ResponseCode::OperationFailed); 428f2875b29780312f4edda3d831cc8a99e1648dd5San Mehat} 43