diff options
author | The Android Open Source Project <initial-contribution@android.com> | 2009-03-03 18:28:45 -0800 |
---|---|---|
committer | The Android Open Source Project <initial-contribution@android.com> | 2009-03-03 18:28:45 -0800 |
commit | d83a98f4ce9cfa908f5c54bbd70f03eec07e7553 (patch) | |
tree | 4b825dc642cb6eb9a060e54bf8d69288fbee4904 /media/sdutils | |
parent | 076357b8567458d4b6dfdcf839ef751634cd2bfb (diff) | |
download | frameworks_base-d83a98f4ce9cfa908f5c54bbd70f03eec07e7553.zip frameworks_base-d83a98f4ce9cfa908f5c54bbd70f03eec07e7553.tar.gz frameworks_base-d83a98f4ce9cfa908f5c54bbd70f03eec07e7553.tar.bz2 |
auto import from //depot/cupcake/@135843
Diffstat (limited to 'media/sdutils')
-rw-r--r-- | media/sdutils/Android.mk | 15 | ||||
-rw-r--r-- | media/sdutils/sdutil.cpp | 166 |
2 files changed, 0 insertions, 181 deletions
diff --git a/media/sdutils/Android.mk b/media/sdutils/Android.mk deleted file mode 100644 index 2009b3c..0000000 --- a/media/sdutils/Android.mk +++ /dev/null @@ -1,15 +0,0 @@ -ifeq ($(TARGET_ARCH),arm) - -LOCAL_PATH:= $(call my-dir) -include $(CLEAR_VARS) - -LOCAL_SRC_FILES:= \ - sdutil.cpp \ - -LOCAL_SHARED_LIBRARIES := libhardware_legacy libcutils libutils libc - -LOCAL_MODULE:= sdutil - -include $(BUILD_EXECUTABLE) - -endif diff --git a/media/sdutils/sdutil.cpp b/media/sdutils/sdutil.cpp deleted file mode 100644 index a9aabf0..0000000 --- a/media/sdutils/sdutil.cpp +++ /dev/null @@ -1,166 +0,0 @@ -/* - * Copyright (C) 2007 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include <hardware_legacy/IMountService.h> -#include <utils/BpBinder.h> -#include <utils/IServiceManager.h> - -#include <stdio.h> -#include <stdlib.h> -#include <stdio.h> -#include <string.h> -#include <time.h> - -namespace android { - -static sp<IMountService> gMountService; - -static void init() { - sp<IServiceManager> sm = defaultServiceManager(); - sp<IBinder> binder = sm->getService(String16("mount")); - gMountService = interface_cast<IMountService>(binder); - if (gMountService == 0) { - fprintf(stderr, "could not get MountService\n"); - exit(1); - } -} - -static bool isMounted(const char* mountPoint) { - char s[2000]; - FILE *f = fopen("/proc/mounts", "r"); - bool mounted = false; - - while (fgets(s, sizeof(s), f)) - { - char *c, *path = NULL; - - for (c = s; *c; c++) - { - if (*c == ' ') - { - *c = 0; - path = c + 1; - break; - } - } - - for (c = path; *c; c++) - { - if (*c == ' ') - { - *c = '\0'; - break; - } - } - - if (strcmp(mountPoint, path) == 0) { - mounted = true; - break; - } - } - - fclose(f); - return mounted; -} - -static void millisecondSleep(int milliseconds) { - struct timespec reqt, remt; - reqt.tv_sec = milliseconds / 1000; - reqt.tv_nsec = 1000000 * (milliseconds % 1000); - nanosleep(&reqt, &remt) ; - -} - -static int mount(const char* path) { - String16 string(path); - gMountService->mountMedia(string); - - for (int i = 0; i < 10; i++) { - if (isMounted(path)) { - return 0; - } - millisecondSleep(500); - } - - fprintf(stderr, "failed to mount %s\n", path); - return -1; -} - -static int unmount(const char* path) { - String16 string(path); - gMountService->unmountMedia(string); - - for (int i = 0; i < 10; i++) { - if (!isMounted(path)) { - return 0; - } - millisecondSleep(500); - } - - fprintf(stderr, "failed to unmount %s\n", path); - return -1; -} - -static int format(const char* path) { - String16 string(path); - - if (isMounted(path)) - return -EBUSY; - gMountService->formatMedia(string); - - return 0; -} - -static int umsEnable(bool enable) { - gMountService->setMassStorageEnabled(enable); - return 0; -} - -}; - -int main(int argc, char **argv) -{ - const char* command = (argc > 1 ? argv[1] : ""); - const char* argument = (argc > 2 ? argv[2] : ""); - - if (strcmp(command, "mount") == 0) { - android::init(); - return android::mount(argument); - } else if (strcmp(command, "format") == 0) { - android::init(); - return android::format(argument); - } else if (strcmp(command, "unmount") == 0) { - android::init(); - return android::unmount(argument); - } else if (strcmp(command, "ums") == 0) { - if (strcmp(argument, "enable") == 0) { - android::init(); - return android::umsEnable(true); - } else if (strcmp(argument, "disable") == 0) { - android::init(); - return android::umsEnable(false); - } - } - - fprintf(stderr, "usage:\n" - " sdutil mount <mount path> - mounts the SD card at the given mount point\n" - " sdutil unmount <mount path> - unmounts the SD card at the given mount point\n" - " sdutil format <mount path> - formats the SD card at the given mount point\n" - " sdutil ums enable - enables USB mass storage\n" - " sdutil ums disable - disnables USB mass storage\n" - ); - return -1; -} |