if (ops->block_type != data->block_type)
continue;
// TODO What happend on extended internal storage case?
- if (op == BLOCK_DEV_MOUNT)
- ops->mounted(data, result);
- else if (op == BLOCK_DEV_UNMOUNT)
- ops->unmounted(data, result);
- else if (op == BLOCK_DEV_FORMAT)
- ops->formatted(data, result);
- else if (op == BLOCK_DEV_INSERT)
+ if (op == BLOCK_DEV_MOUNT) {
+ if (data->block_type == BLOCK_MMC_EXTENDED_INTERNAL_DEV)
+ ops->mounted(data, result, true);
+ else
+ ops->mounted(data, result, false);
+ } else if (op == BLOCK_DEV_UNMOUNT) {
+ if (data->block_type == BLOCK_MMC_EXTENDED_INTERNAL_DEV)
+ ops->unmounted(data, result, true);
+ else
+ ops->unmounted(data, result, false);
+ } else if (op == BLOCK_DEV_FORMAT) {
+ if (data->block_type == BLOCK_MMC_EXTENDED_INTERNAL_DEV)
+ ops->formatted(data, result, true);
+ else
+ ops->formatted(data, result, false);
+ } else if (op == BLOCK_DEV_INSERT)
ops->inserted(data);
else if (op == BLOCK_DEV_REMOVE)
ops->removed(data);
struct block_dev_ops {
const char *name;
enum block_device_type block_type;
- void (*mounted) (struct block_data *data, int result);
- void (*unmounted) (struct block_data *data, int result);
- void (*formatted) (struct block_data *data, int result);
+ void (*mounted) (struct block_data *data, int result, bool extended);
+ void (*unmounted) (struct block_data *data, int result, bool extended);
+ void (*formatted) (struct block_data *data, int result, bool extended);
void (*inserted) (struct block_data *data);
void (*removed) (struct block_data *data);
};
old = state;
}
-static void mmc_mount(struct block_data *data, int result)
+static void mmc_mount(struct block_data *data, int result, bool extended)
{
int r;
if (r < 0)
_E("setxattr error : %d", errno);
- mmc_update_state(VCONFKEY_SYSMAN_MMC_MOUNTED);
+ if (extended)
+ mmc_update_state(VCONFKEY_SYSMAN_MMC_EXTENDEDINTERNAL_MOUNTED);
+ else
+ mmc_update_state(VCONFKEY_SYSMAN_MMC_MOUNTED);
mmc_update_mount_state(VCONFKEY_SYSMAN_MMC_MOUNT_COMPLETED);
}
-static void mmc_unmount(struct block_data *data, int result)
+static void mmc_unmount(struct block_data *data, int result, bool extended)
{
/* Only the primary partition is valid. */
if (!data || !data->primary)
if (result == 0)
mmc_update_state(VCONFKEY_SYSMAN_MMC_INSERTED_NOT_MOUNTED);
- else
- mmc_update_state(VCONFKEY_SYSMAN_MMC_MOUNTED);
+ else {
+ if (extended)
+ mmc_update_state(VCONFKEY_SYSMAN_MMC_EXTENDEDINTERNAL_MOUNTED);
+ else
+ mmc_update_state(VCONFKEY_SYSMAN_MMC_MOUNTED);
+ }
}
-static void mmc_format(struct block_data *data, int result)
+static void mmc_format(struct block_data *data, int result, bool extended)
{
/* Only the primary partition is valid. */
if (!data || !data->primary)
return;
if (data->state == BLOCK_MOUNT) {
- mmc_update_state(VCONFKEY_SYSMAN_MMC_MOUNTED);
+ if (extended)
+ mmc_update_state(VCONFKEY_SYSMAN_MMC_EXTENDEDINTERNAL_MOUNTED);
+ else
+ mmc_update_state(VCONFKEY_SYSMAN_MMC_MOUNTED);
+
mmc_update_mount_state(VCONFKEY_SYSMAN_MMC_MOUNT_COMPLETED);
}
}