* @return non-zero on success message sending, -1 if message sending is failed.
*/
int deviced_request_unmount_mmc(struct mmc_contents *mmc_data, int option);
+
/**
- * @fn int deviced_request_format_mmc(struct deviced_mmc_contents *mmc_data)
+ * @fn int deviced_request_format_mmc(struct deviced_mmc_contents *mmc_data, int option)
* @brief This API is used to format mmc.\n
* Internally, this API call predefined action API. That is send a notify message. \n
* and when format opeation is finished, cb of deviced_mmc_content struct is called with cb's param1(result). \n
- * means of param1 - 0(format success) , -1(format fail)
+ * means of param1 - 0(format success) , non-zero(format fail) \n
+ * [format fail value] \n
+ * 22 : Invalid argument(EINVAL) \n
* @param[in] mmc_data for receive result of format operation
+ * @param[in] FMT_NORMAL is 0, FMT_FORCE is 1
* @return non-zero on success message sending, -1 if message sending is failed.
*/
-int deviced_request_format_mmc(struct mmc_contents *mmc_data);
+int deviced_request_format_mmc(struct mmc_contents *mmc_data, int option);
#ifdef __cplusplus
}
FS_MOUNT_SUCCESS = 1,
} mmc_mount_type;
+enum unmount_operation {
+ UNMOUNT_NORMAL,
+ UNMOUNT_FORCE,
+};
+
static int smack = 0;
static int mmc_popup_pid = 0;
static enum mmc_fs_type inserted_type;
if (ret == 0 && sfs.f_type == SMACKFS_MAGIC)
smack = 1;
- _E("smackfs check %d", smack);
+ _I("smackfs check %d", smack);
}
static int exec_process(const char **argv)
}
if (inserted_type == FS_TYPE_NONE) {
- _E("set default file system");
+ _D("set default file system");
inserted_type = FS_TYPE_FAT;
mmc_filesystem = &vfat_ops;
if (!mmc_filesystem) {
snprintf(mount_path, sizeof(mount_path), "%s", MMC_MOUNT_POINT);
if (stat(mount_path, &mount_stat) != 0 || stat(parent_path, &parent_stat) != 0) {
- _E("get stat error");
+ _I("state : UNMOUNT (get stat error)");
return 0;
}
if (mount_stat.st_dev == parent_stat.st_dev) {
- _E("state : UNMOUNT");
+ _I("state : UNMOUNT");
return 0;
}
- _E("state : MOUNT");
+ _I("state : MOUNT");
return 1;
}
}
snprintf(buf, sizeof(buf), "%s%d", "/proc/", mkfs_pid);
- _E("child process : %s", buf);
+ _D("child process : %s", buf);
while (1) {
sleep(1);
- _E("formatting....");
+ _D("formatting....");
if (access(buf, R_OK) != 0)
break;
}
char dev_mmcblkp[NAME_MAX];
int fs, r;
- if (check_mount_state() == 1) {
- _E("Mounted, will be unmounted");
- r = mmc_umount(MNT_DETACH);
- if (r != 0) {
- _E("unmount_mmc fail");
- vconf_set_int(VCONFKEY_SYSMAN_MMC_FORMAT,
- VCONFKEY_SYSMAN_MMC_FORMAT_FAILED);
- return r;
- }
- }
-
snprintf(dev_mmcblk, sizeof(dev_mmcblk), "%s%d", MMC_DEV, blknum);
snprintf(dev_mmcblkp, sizeof(dev_mmcblkp), "%sp1", dev_mmcblk);
if (access(dev_mmcblkp, R_OK) < 0) {
- _E("%s is not valid, create the primary partition", dev_mmcblkp);
+ _I("%s is not valid, create the primary partition", dev_mmcblkp);
r = create_partition(dev_mmcblk);
if (r != 0) {
_E("create_partition failed");
- vconf_set_int(VCONFKEY_SYSMAN_MMC_FORMAT, VCONFKEY_SYSMAN_MMC_FORMAT_FAILED);
- heynoti_publish("mmcblk_remove");
return r;
}
}
r = mmc_format_exec(dev_mmcblkp);
if (r != 0) {
_E("format_mmc fail");
- vconf_set_int(VCONFKEY_SYSMAN_MMC_FORMAT, VCONFKEY_SYSMAN_MMC_FORMAT_FAILED);
- heynoti_publish("mmcblk_remove");
return r;
}
- _E("Format Successful");
- vconf_set_int(VCONFKEY_SYSMAN_MMC_FORMAT, VCONFKEY_SYSMAN_MMC_FORMAT_COMPLETED);
return 0;
}
do {
if ((ret = mount(path, MMC_MOUNT_POINT, fs_name, 0, mount_data)) == 0) {
- _E("Mounted mmc card %s", fs_name);
+ _I("Mounted mmc card %s", fs_name);
return 0;
}
usleep(100000);
}
snprintf(buf, sizeof(buf), "%s%d", "/proc/", pid);
- _E("child process : %s", buf);
+ _D("child process : %s", buf);
while (1) {
- _E("mmc checking ....");
+ _D("mmc checking ....");
if (access(buf, R_OK) != 0)
break;
sleep(1);
int mmc_err = 0;
vconf_set_int(VCONFKEY_SYSMAN_MMC_STATUS, VCONFKEY_SYSMAN_MMC_REMOVED);
- mmc_err = mmc_umount(MNT_DETACH);
+ mmc_err = mmc_umount(UNMOUNT_NORMAL);
vconf_set_int(VCONFKEY_SYSMAN_MMC_ERR_STATUS, mmc_err);
mmc_filesystem = NULL;
return 0;
int ret;
if (mmc_disabled) {
- _D("mmc is blocked!");
+ _I("mmc is blocked!");
vconf_set_int(VCONFKEY_SYSMAN_MMC_STATUS, VCONFKEY_SYSMAN_MMC_INSERTED_NOT_MOUNTED);
return -ENODEV;
}
vconf_get_int(VCONFKEY_SYSMAN_MMC_STATUS, &mmc_status);
if (mmc_status == VCONFKEY_SYSMAN_MMC_MOUNTED) {
- _D("Mmc is already mounted");
+ _I("Mmc is already mounted");
vconf_set_int(VCONFKEY_SYSMAN_MMC_MOUNT, VCONFKEY_SYSMAN_MMC_MOUNT_ALREADY);
return 0;
}
return -1;
}
- if (mmc_umount(MNT_DETACH) != 0) {
+ if (mmc_umount(UNMOUNT_NORMAL) != 0) {
_E("Failed to unmount mmc card");
vconf_set_int(VCONFKEY_SYSMAN_MMC_UNMOUNT,
VCONFKEY_SYSMAN_MMC_UNMOUNT_FAILED);
static int ss_mmc_format(int argc, char **argv)
{
- int ret;
+ int r;
+ int option;
+
+ if (argc < 1) {
+ _E("Option is wong");
+ r = -EINVAL;
+ goto error;
+ }
- _E("mmc format called");
- mmc_umount(MNT_DETACH);
+ option = atoi(argv[0]);
+ if (option < 0) {
+ _E("Option is wong : %d", option);
+ r = -EINVAL;
+ goto error;
+ }
+
+ _I("Format Start (option:%d)", option);
+ r = mmc_umount(option);
+ if (r != 0)
+ goto error;
vconf_set_int(VCONFKEY_SYSMAN_MMC_FORMAT_PROGRESS, VCONFKEY_SYSMAN_MMC_FORMAT_PROGRESS_NOW);
- ret = mmc_format(get_mmcblk_num());
+ r = mmc_format(get_mmcblk_num());
vconf_set_int(VCONFKEY_SYSMAN_MMC_FORMAT_PROGRESS, VCONFKEY_SYSMAN_MMC_FORMAT_PROGRESS_NONE);
- if (ret != 0)
- return ret;
+ if (r != 0)
+ goto error;
- ret = mmc_mount();
- return ret;
+ r = mmc_mount();
+ if (r != 0)
+ goto error;
+
+ _I("Format Successful");
+ vconf_set_int(VCONFKEY_SYSMAN_MMC_FORMAT, VCONFKEY_SYSMAN_MMC_FORMAT_COMPLETED);
+ return 0;
+
+error:
+ _E("Format Failed");
+ vconf_set_int(VCONFKEY_SYSMAN_MMC_FORMAT, VCONFKEY_SYSMAN_MMC_FORMAT_FAILED);
+ return r;
}
static void mmc_init(void *data)