ResponseCode.cpp revision 97ac40e4e6f3ed0bd5d6878d7d8d4a54fcaecb76
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