On Thu, 7 Oct 2010 07:53:11 +0900 Carsten Haitzler (The Rasterman)
<ras...@rasterman.com> said:

i fixed it for you...  spank!

> On Mon,  4 Oct 2010 23:33:23 -0700 "Enlightenment SVN"
> <no-re...@enlightenment.org> said:
> 
> along the way with all your efm commits here you broke removable device
> storage. devices appear in e17 - but they mount "/" when you open them up (ie
> u see /usr, /bin, /lib, /tmp etc. from /).
> 
> > Log:
> >   complete rewrite of all includes and file splitting to completely abstract
> > dbus out of efm Author:       discomfitor
> > Date:         2010-10-04 23:33:23 -0700 (Mon, 04 Oct 2010)
> > New Revision: 53051
> > 
> > Added:
> >   trunk/e/src/bin/e_fm/Makefile.am trunk/e/src/bin/e_fm/e_fm_main.h
> > trunk/e/src/bin/e_fm/e_fm_main_dbus.c trunk/e/src/bin/e_fm/e_fm_main_dbus.h
> > trunk/e/src/bin/e_fm_shared_codec.c trunk/e/src/bin/e_fm_shared_codec.h
> > trunk/e/src/bin/e_fm_shared_dbus.c trunk/e/src/bin/e_fm_shared_dbus.h
> > trunk/e/src/bin/e_fm_shared_types.h Removed: trunk/e/src/bin/e_fm_shared.h
> > Modified: trunk/e/src/bin/Makefile.am trunk/e/src/bin/e_fm.c
> > trunk/e/src/bin/e_fm.h trunk/e/src/bin/e_fm/e_fm_ipc.c
> > trunk/e/src/bin/e_fm/e_fm_ipc.h trunk/e/src/bin/e_fm/e_fm_main.c
> > trunk/e/src/bin/e_fm_dbus.c 
> > 
> > Modified: trunk/e/src/bin/Makefile.am
> > ===================================================================
> > --- trunk/e/src/bin/Makefile.am     2010-10-05 06:33:19 UTC (rev 53050)
> > +++ trunk/e/src/bin/Makefile.am     2010-10-05 06:33:23 UTC (rev 53051)
> > @@ -159,7 +159,9 @@
> >  e_exec.h \
> >  e_widget_font_preview.h \
> >  e_fm_custom.h \
> > -e_fm_shared.h \
> > +e_fm_shared_types.h \
> > +e_fm_shared_codec.h \
> > +e_fm_shared_dbus.h \
> >  e_config_data.h \
> >  e_intl_data.h \
> >  e_toolbar.h \
> > @@ -277,6 +279,8 @@
> >  e_int_border_prop.c \
> >  e_entry_dialog.c \
> >  e_fm.c \
> > +e_fm_shared_codec.c \
> > +e_fm_shared_dbus.c \
> >  e_fm_dbus.c \
> >  e_fm_op_registry.c \
> >  e_widget_scrollframe.c \
> > 
> > Modified: trunk/e/src/bin/e_fm/e_fm_ipc.c
> > ===================================================================
> > --- trunk/e/src/bin/e_fm/e_fm_ipc.c 2010-10-05 06:33:19 UTC (rev
> > 53050) +++ trunk/e/src/bin/e_fm/e_fm_ipc.c  2010-10-05 06:33:23 UTC
> > (rev 53051) @@ -33,17 +33,12 @@
> >  #include <Evas.h>
> >  #include <Efreet.h>
> >  #include <Eet.h>
> > -#include <E_DBus.h>
> > -#ifdef HAVE_EUKIT
> > -#include <E_Ukit.h>
> > -#else
> > -#include <E_Hal.h>
> > -#endif
> > +
> >  #include <eina_stringshare.h>
> >  
> >  #include "e.h"
> >  #include "e_fm_ipc.h"
> > -
> > +//#include "e_fm_shared_c.h"
> >  #include "e_fm_op.h"
> >  
> >  
> > @@ -118,7 +113,7 @@
> >     int x,y;
> >  };
> >  
> > -#include "e_fm_shared.h"
> > +
> >  /* local subsystem globals */
> >  Ecore_Ipc_Server *_e_fm_ipc_server = NULL;
> >  
> > 
> > Modified: trunk/e/src/bin/e_fm/e_fm_ipc.h
> > ===================================================================
> > --- trunk/e/src/bin/e_fm/e_fm_ipc.h 2010-10-05 06:33:19 UTC (rev
> > 53050) +++ trunk/e/src/bin/e_fm/e_fm_ipc.h  2010-10-05 06:33:23 UTC
> > (rev 53051) @@ -1,6 +1,8 @@
> >  #ifndef E_FM_IPC_H
> >  #define E_FM_IPC_H
> >  
> > +#include "e_fm_shared_types.h"
> > +
> >  int _e_fm_ipc_init(void);
> >  Eina_Bool _e_fm_ipc_slave_data_cb(void *data, int type, void *event);
> >  Eina_Bool _e_fm_ipc_slave_error_cb(void *data, int type, void *event);
> > 
> > Modified: trunk/e/src/bin/e_fm/e_fm_main.c
> > ===================================================================
> > --- trunk/e/src/bin/e_fm/e_fm_main.c        2010-10-05 06:33:19 UTC (rev
> > 53050) +++ trunk/e/src/bin/e_fm/e_fm_main.c 2010-10-05 06:33:23 UTC
> > (rev 53051) @@ -42,16 +42,8 @@
> >  #include <Ecore.h>
> >  #include <Ecore_Ipc.h>
> >  #include <Ecore_File.h>
> > -#include <Evas.h>
> > -#include <Efreet.h>
> >  #include <Eet.h>
> > -#include <E_DBus.h>
> > -#ifdef HAVE_EUKIT
> > -#include <E_Ukit.h>
> > -#else
> > -#include <E_Hal.h>
> > -#endif
> > -#include <eina_stringshare.h>
> > +#include <Evas.h>
> >  
> >  #define E_TYPEDEFS
> >  #include "e_config_data.h"
> > @@ -60,57 +52,41 @@
> >  #include "e_config_data.h"
> >  #include "e_fm_op.h"
> >  
> > +/* if using ehal, functions will point to _e_fm_main_dbus_X
> > + * if using eeze, functions will point to _e_fm_main_eeze_X
> > + */
> > +#ifndef HAVE_EEZE_MOUNT
> > +#include "e_fm_main_dbus.h"
> > +#include "e_fm_shared_dbus.h"
> > +#define _E_FM(FUNC) _e_fm_main_dbus_##FUNC
> > +#define _E_FM_SHARED(FUNC) _e_fm_shared_dbus_##FUNC
> > +#else
> > +#include "e_fm_main_eeze.h"
> > +#define _E_FM(FUNC) _e_fm_main_eeze_##FUNC
> > +#define _E_FM_SHARED(FUNC) _e_fm_shared_eeze_##FUNC
> > +#endif
> > +
> >  /* FIXME: things to add to the slave enlightenment_fm process and ipc to e:
> >   * 
> >   * * reporting results of fop's (current status - what has been don, what
> > failed etc.)
> > - * * dbus removable device monitoring (in e17 itself now via ecore_dbus -
> > move to enlightenment_fm and ipc removable device add/del and anything else)
> > + * * dbus removable device monitoring (in e17 itself now via e_dbus - move
> > to enlightenment_fm and ipc removable device add/del and anything else)
> >   * * mount/umount of removable devices (to go along with removable device
> > support - put it in here and message back mount success/failure and where it
> > is now mounted - remove from e17 itself)
> >   * 
> >   */
> > -static E_DBus_Signal_Handler *_hal_poll = NULL;
> >  
> >  #ifndef EAPI
> >  #define EAPI
> >  #endif
> >  
> > -#define E_FM_SHARED_DATATYPES
> > -#include "e_fm_shared.h"
> > -#undef E_FM_SHARED_DATATYPES
> > +#include "e_fm_main.h"
> > +#include "e_fm_shared_types.h"
> > +#include "e_fm_shared_codec.h"
> > +#include "e_fm_ipc.h"
> >  
> > +
> >  static void _e_fm_init(void);
> >  static void _e_fm_shutdown(void);
> > -static void _e_dbus_cb_dev_all(void *user_data, void *reply_data, DBusError
> > *error); -static void _e_dbus_cb_dev_store(void *user_data, void
> > *reply_data, DBusError *error); -static void _e_dbus_cb_dev_vol(void
> > *user_data, void *reply_data, DBusError *error); -static void
> > _e_dbus_cb_store_is(void *user_data, void *reply_data, DBusError *error);
> > -static void _e_dbus_cb_vol_is(void *user_data, void *reply_data, DBusError
> > *error); -static void _e_dbus_cb_dev_add(void *data, DBusMessage *msg);
> > -static void _e_dbus_cb_dev_del(void *data, DBusMessage *msg); -static void
> > _e_dbus_cb_cap_add(void *data, DBusMessage *msg); -static void
> > _e_dbus_cb_prop_modified(void *data, DBusMessage *msg); -static void
> > _e_dbus_cb_store_prop(void *data, void *reply_data, DBusError *error);
> > -static void _e_dbus_cb_vol_prop(void *data, void *reply_data, DBusError
> > *error); -static void _e_dbus_cb_vol_prop_mount_modified(void *data, void
> > *reply_data, DBusError *error); -static void _e_dbus_cb_vol_mounted(void
> > *user_data, void *method_return, DBusError *error); -static void
> > _e_dbus_cb_vol_unmounted(void *user_data, void *method_return, DBusError
> > *error); -static void _e_dbus_cb_vol_unmounted_before_eject(void *user_data,
> > void *method_return, DBusError *error); -static Eina_Bool
> > _e_dbus_vb_vol_ejecting_after_unmount(void *data); -static void
> > _e_dbus_cb_vol_ejected(void *user_data, void *method_return, DBusError
> > *error); -static int  _e_dbus_format_error_msg(char **buf, E_Volume *v,
> > DBusError *error); -static void _hal_test(void *data, DBusMessage *msg,
> > DBusError *error); -static void _e_hal_poll(void *data, DBusMessage *msg);
> > -static Eina_Bool _e_dbus_vol_mount_timeout(void *data); -static Eina_Bool
> > _e_dbus_vol_unmount_timeout(void *data); -static Eina_Bool
> > _e_dbus_vol_eject_timeout(void *data); - -#define E_FM_MOUNT_TIMEOUT 30.0
> > -#define E_FM_UNMOUNT_TIMEOUT 60.0
> > -#define E_FM_EJECT_TIMEOUT 15.0
> > -
> > -static E_DBus_Connection *_e_dbus_conn = NULL;
> > -extern Ecore_Ipc_Server *_e_fm_ipc_server;
> > -
> >  /* contains:
> >   * _e_volume_edd
> >   * _e_storage_edd
> > @@ -121,10 +97,7 @@
> >   * _e_storage_volume_edd_init()
> >   * _e_storage_volume_edd_shutdown()
> >   */
> > -#define E_FM_SHARED_CODEC
> > -#include "e_fm_shared.h"
> > -#undef E_FM_SHARED_CODEC
> > -#include "e_fm_ipc.h"
> > +
> >  /* externally accessible functions */
> >  int
> >  main(int argc, char **argv)
> > @@ -169,6 +142,7 @@
> >       }
> >  
> >     _e_fm_shutdown();
> > +   _e_storage_volume_edd_shutdown();
> >     ecore_ipc_shutdown();
> >     ecore_file_shutdown();
> >     ecore_shutdown();
> > @@ -178,917 +152,60 @@
> >  static void
> >  _e_fm_init(void)
> >  {
> > -   e_dbus_init();
> > -   e_hal_init();
> > -   _e_dbus_conn = e_dbus_bus_get(DBUS_BUS_SYSTEM);
> > -   /* previously, this assumed that if dbus was running, hal was running.
> > */
> > -   if (_e_dbus_conn)
> > -     e_dbus_get_name_owner(_e_dbus_conn, E_HAL_SENDER, _hal_test, NULL);
> > +   _E_FM(init)();
> >  }
> >  
> >  static void
> >  _e_fm_shutdown(void)
> >  {
> > -   if (_e_dbus_conn)
> > -     e_dbus_connection_close(_e_dbus_conn);
> > -   _e_storage_volume_edd_shutdown();
> > -   e_hal_shutdown();
> > -   e_dbus_shutdown();
> > +   _E_FM(shutdown)();
> >  }
> >  
> > -static void
> > -_e_hal_poll(void *data __UNUSED__, DBusMessage *msg)
> > +EAPI void
> > +e_volume_mount(E_Volume *v)
> >  {
> > -   DBusError err;
> > -   const char *name, *from, *to;
> > -
> > -   dbus_error_init(&err);
> > -   if (!dbus_message_get_args(msg, &err,
> > -       DBUS_TYPE_STRING, &name,
> > -       DBUS_TYPE_STRING, &from,
> > -       DBUS_TYPE_STRING, &to,
> > -       DBUS_TYPE_INVALID))
> > -     dbus_error_free(&err);
> > -   
> > -   printf("name: %s\nfrom: %s\nto: %s\n", name, from, to);
> > -   if ((name) && !strcmp(name, E_HAL_SENDER))
> > -     _hal_test(NULL, NULL, NULL);
> > +   _E_FM(volume_mount)(v);
> >  }
> >  
> > -static void
> > -_hal_test(void *data __UNUSED__, DBusMessage *msg __UNUSED__, DBusError
> > *error) -{
> > -   if ((error) && (dbus_error_is_set(error)))
> > -     {
> > -       dbus_error_free(error);
> > -       if (!_hal_poll)
> > -         _hal_poll = 
> > -          e_dbus_signal_handler_add(_e_dbus_conn, 
> > -                                    E_DBUS_FDO_BUS, E_DBUS_FDO_PATH, 
> > -                                    E_DBUS_FDO_INTERFACE,
> > -                                    "NameOwnerChanged", _e_hal_poll, NULL);
> > -       return;
> > -     }
> > -   if (_hal_poll)
> > -     e_dbus_signal_handler_del(_e_dbus_conn, _hal_poll);
> >  
> > -   e_hal_manager_get_all_devices(_e_dbus_conn, _e_dbus_cb_dev_all, NULL);
> > -   e_hal_manager_find_device_by_capability(_e_dbus_conn, "storage",
> > -                                           _e_dbus_cb_dev_store, NULL);
> > -   e_hal_manager_find_device_by_capability(_e_dbus_conn, "volume",
> > -                                           _e_dbus_cb_dev_vol, NULL);
> > -   
> > -   e_dbus_signal_handler_add(_e_dbus_conn, E_HAL_SENDER,
> > -                             E_HAL_MANAGER_PATH,
> > -                             E_HAL_MANAGER_INTERFACE,
> > -                             "DeviceAdded", _e_dbus_cb_dev_add, NULL);
> > -   e_dbus_signal_handler_add(_e_dbus_conn, E_HAL_SENDER,
> > -                             E_HAL_MANAGER_PATH,
> > -                             E_HAL_MANAGER_INTERFACE,
> > -                             "DeviceRemoved", _e_dbus_cb_dev_del, NULL);
> > -   e_dbus_signal_handler_add(_e_dbus_conn, E_HAL_SENDER,
> > -                             E_HAL_MANAGER_PATH,
> > -                             E_HAL_MANAGER_INTERFACE,
> > -                             "NewCapability", _e_dbus_cb_cap_add, NULL);
> > -}
> > -
> > -static void
> > -_e_dbus_cb_dev_all(void *user_data __UNUSED__, void *reply_data, DBusError
> > *error) -{
> > -   E_Hal_Manager_Get_All_Devices_Return *ret = reply_data;
> > -   Eina_List *l;
> > -   char *udi;
> > -   
> > -   if (!ret || !ret->strings) return;
> > -   
> > -   if (dbus_error_is_set(error))
> > -     {
> > -   dbus_error_free(error);
> > -   return;
> > -     }
> > -
> > -   EINA_LIST_FOREACH(ret->strings, l, udi)
> > -     {
> > -// printf("DB INIT DEV+: %s\n", udi);
> > -   e_hal_device_query_capability(_e_dbus_conn, udi, "storage",
> > -         _e_dbus_cb_store_is, (void*)eina_stringshare_add(udi));
> > -   e_hal_device_query_capability(_e_dbus_conn, udi, "volume", 
> > -         _e_dbus_cb_vol_is, (void*)eina_stringshare_add(udi));
> > -     }
> > -}
> > -
> > -static void
> > -_e_dbus_cb_dev_store(void *user_data __UNUSED__, void *reply_data,
> > DBusError *error) -{
> > -   E_Hal_Manager_Find_Device_By_Capability_Return *ret = reply_data;
> > -   Eina_List *l;
> > -   char *device;
> > -   
> > -   if (!ret || !ret->strings) return;
> > -   
> > -   if (dbus_error_is_set(error))
> > -     {
> > -   dbus_error_free(error);
> > -   return;
> > -     }
> > -   
> > -   EINA_LIST_FOREACH(ret->strings, l, device)
> > -     {
> > -// printf("DB STORE+: %s\n", device);
> > -   e_storage_add(device);
> > -     }
> > -}
> > -
> > -static void
> > -_e_dbus_cb_dev_vol(void *user_data __UNUSED__, void *reply_data, DBusError
> > *error) -{
> > -   E_Hal_Manager_Find_Device_By_Capability_Return *ret = reply_data;
> > -   Eina_List *l;
> > -   char *device;
> > -   
> > -   if (!ret || !ret->strings) return;
> > -   
> > -   if (dbus_error_is_set(error))
> > -     {
> > -   dbus_error_free(error);
> > -   return;
> > -     }
> > -   
> > -   EINA_LIST_FOREACH(ret->strings, l, device)
> > -     {
> > -// printf("DB VOL+: %s\n", device);
> > -   e_volume_add(device, 1);
> > -     }
> > -}
> > -
> > -static void
> > -_e_dbus_cb_store_is(void *user_data, void *reply_data, DBusError *error)
> > -{
> > -   char *udi = user_data;
> > -   E_Hal_Device_Query_Capability_Return *ret = reply_data;
> > -
> > -   if (dbus_error_is_set(error))
> > -     {
> > -   dbus_error_free(error);
> > -   goto error;
> > -     }
> > -   
> > -   if (ret && ret->boolean)
> > -     {
> > -// printf("DB STORE IS+: %s\n", udi);
> > -   e_storage_add(udi);
> > -     }
> > -   
> > -   error:
> > -   eina_stringshare_del(udi);
> > -}
> > -
> > -static void
> > -_e_dbus_cb_vol_is(void *user_data, void *reply_data, DBusError *error)
> > -{
> > -   char *udi = user_data;
> > -   E_Hal_Device_Query_Capability_Return *ret = reply_data;
> > -
> > -   if (dbus_error_is_set(error))
> > -     {
> > -   dbus_error_free(error);
> > -   goto error;
> > -     }
> > -   
> > -   if (ret && ret->boolean)
> > -     {
> > -// printf("DB VOL IS+: %s\n", udi);
> > -   e_volume_add(udi, 0);
> > -     }
> > -   
> > -   error:
> > -   eina_stringshare_del(udi);
> > -}
> > -
> > -static void
> > -_e_dbus_cb_dev_add(void *data __UNUSED__, DBusMessage *msg)
> > -{
> > -   DBusError err;
> > -   char *udi = NULL;
> > -
> > -   dbus_error_init(&err);
> > -   dbus_message_get_args(msg, &err, DBUS_TYPE_STRING, &udi,
> > DBUS_TYPE_INVALID);
> > -   if (!udi) return;
> > -   e_hal_device_query_capability(_e_dbus_conn, udi, "storage", 
> > -                                  _e_dbus_cb_store_is, (void*)
> > eina_stringshare_add(udi));
> > -   e_hal_device_query_capability(_e_dbus_conn, udi, "volume",
> > -                            _e_dbus_cb_vol_is, (void*)
> > eina_stringshare_add(udi)); -}
> > -
> > -static void
> > -_e_dbus_cb_dev_del(void *data __UNUSED__, DBusMessage *msg)
> > -{
> > -   DBusError err;
> > -   char *udi;
> > -   
> > -   dbus_error_init(&err);
> > -   
> > -   dbus_message_get_args(msg, 
> > -                    &err, DBUS_TYPE_STRING, 
> > -                    &udi, DBUS_TYPE_INVALID);
> > -//   printf("DB DEV-: %s\n", udi);
> > -   e_storage_del(udi);
> > -   e_volume_del(udi);
> > -}
> > -
> > -static void
> > -_e_dbus_cb_cap_add(void *data __UNUSED__, DBusMessage *msg)
> > -{
> > -   DBusError err;
> > -   char *udi, *capability;
> > -   
> > -   dbus_error_init(&err);
> > -   
> > -   dbus_message_get_args(msg, 
> > -                    &err, DBUS_TYPE_STRING,
> > -                    &udi, DBUS_TYPE_STRING, 
> > -                    &capability, DBUS_TYPE_INVALID);
> > -   if (!strcmp(capability, "storage"))
> > -     {
> > -//        printf("DB STORE CAP+: %s\n", udi);
> > -   e_storage_add(udi);
> > -     }
> > -}
> > -
> > -static void
> > -_e_dbus_cb_prop_modified(void *data, DBusMessage *msg)
> > -{
> > -   E_Volume *v;
> > -   DBusMessageIter iter, sub, subsub;
> > -   struct {
> > -   const char *name;
> > -   int added;
> > -   int removed;
> > -   } prop;
> > -   int num_changes = 0, i;
> > -   
> > -   if (!(v = data)) return;
> > -   
> > -   if (dbus_message_get_error_name(msg)) 
> > -     {
> > -   printf("DBUS ERROR: %s\n", dbus_message_get_error_name(msg)); 
> > -   return; 
> > -     }
> > -   if (!dbus_message_iter_init(msg, &iter)) return;
> > -
> > -   if (dbus_message_iter_get_arg_type(&iter) != DBUS_TYPE_INT32) return;
> > -   dbus_message_iter_get_basic(&iter, &num_changes);
> > -   if (num_changes == 0) return;
> > -
> > -   dbus_message_iter_next(&iter);
> > -   if (dbus_message_iter_get_arg_type(&iter) != DBUS_TYPE_ARRAY) return;
> > -   dbus_message_iter_recurse(&iter, &sub);
> > -
> > -   for (i = 0; i < num_changes; i++, dbus_message_iter_next(&sub))
> > -     {
> > -   dbus_message_iter_recurse(&sub, &subsub);
> > -
> > -   if (dbus_message_iter_get_arg_type(&subsub) != DBUS_TYPE_STRING)
> > break;
> > -   dbus_message_iter_get_basic(&subsub, &(prop.name));
> > -   if (!strcmp(prop.name, "volume.mount_point"))
> > -     {
> > -        e_hal_device_get_all_properties(_e_dbus_conn, v->udi,
> > -
> > _e_dbus_cb_vol_prop_mount_modified,
> > -                                        v);
> > -        return;
> > -     }
> > -
> > -   dbus_message_iter_next(&subsub);
> > -   dbus_message_iter_next(&subsub);
> > -     }
> > -}
> > -
> > -static void
> > -_e_dbus_cb_store_prop(void *data, void *reply_data, DBusError *error)
> > -{
> > -   E_Storage *s = data;
> > -   E_Hal_Properties *ret = reply_data;
> > -   int err = 0;
> > -
> > -   if (!ret) goto error;
> > -
> > -   if (dbus_error_is_set(error))
> > -     {
> > -   dbus_error_free(error);
> > -   goto error;
> > -     }
> > -
> > -   s->bus = e_hal_property_string_get(ret, "storage.bus", &err);
> > -   if (err) goto error;
> > -   s->bus = eina_stringshare_add(s->bus);
> > -   s->drive_type = e_hal_property_string_get(ret, "storage.drive_type",
> > &err);
> > -   if (err) goto error;
> > -   s->drive_type = eina_stringshare_add(s->drive_type);
> > -   s->model = e_hal_property_string_get(ret, "storage.model", &err);
> > -   if (err) goto error;
> > -   s->model = eina_stringshare_add(s->model);
> > -   s->vendor = e_hal_property_string_get(ret, "storage.vendor", &err);
> > -   if (err) goto error;
> > -   s->vendor = eina_stringshare_add(s->vendor);
> > -   s->serial = e_hal_property_string_get(ret, "storage.serial", &err);
> > -//   if (err) goto error;
> > -   if (err) printf("Error getting serial for %s\n", s->udi);
> > -   s->serial = eina_stringshare_add(s->serial);
> > -
> > -   s->removable = e_hal_property_bool_get(ret, "storage.removable", &err);
> > -   
> > -   if (s->removable)
> > -     {
> > -   s->media_available = e_hal_property_bool_get(ret,
> > "storage.removable.media_available", &err);
> > -   s->media_size = e_hal_property_uint64_get(ret,
> > "storage.removable.media_size", &err);
> > -     }
> > -   
> > -   s->requires_eject = e_hal_property_bool_get(ret,
> > "storage.requires_eject", &err);
> > -   s->hotpluggable = e_hal_property_bool_get(ret, "storage.hotpluggable",
> > &err);
> > -   s->media_check_enabled = e_hal_property_bool_get(ret,
> > "storage.media_check_enabled", &err);
> > -   
> > -   s->icon.drive = e_hal_property_string_get(ret, "storage.icon.drive",
> > &err);
> > -   s->icon.drive = eina_stringshare_add(s->icon.drive);
> > -   s->icon.volume = e_hal_property_string_get(ret, "storage.icon.volume",
> > &err);
> > -   s->icon.volume = eina_stringshare_add(s->icon.volume);
> > -   
> > -//   printf("++STO:\n  udi: %s\n  bus: %s\n  drive_type: %s\n  model: %s\n
> > vendor: %s\n  serial: %s\n  icon.drive: %s\n  icon.volume: %s\n\n", s->udi,
> > s->bus, s->drive_type, s->model, s->vendor, s->serial, s->icon.drive,
> > s->icon.volume);
> > -   s->validated = EINA_TRUE;
> > -     {
> > -   void *msg_data;
> > -   int msg_size;
> > -   
> > -   msg_data = eet_data_descriptor_encode(_e_storage_edd, s,
> > &msg_size);
> > -   if (msg_data)
> > -     {
> > -        ecore_ipc_server_send(_e_fm_ipc_server,
> > -                              6/*E_IPC_DOMAIN_FM*/,
> > -                              E_FM_OP_STORAGE_ADD,
> > -                              0, 0, 0, msg_data, msg_size);
> > -        free(msg_data);
> > -     }
> > -     }
> > -   return;
> > -   
> > -   error: 
> > -//   printf("ERR %s\n", s->udi);
> > -   e_storage_del(s->udi);
> > -}
> > -
> > -static Eina_List *_e_stores = NULL;
> > -
> > -EAPI E_Storage *
> > -e_storage_add(const char *udi)
> > -{
> > -   E_Storage *s;
> > -
> > -   if (!udi) return NULL;
> > -   if (e_storage_find(udi)) return NULL;
> > -   s = calloc(1, sizeof(E_Storage));
> > -   if (!s) return NULL;
> > -   s->udi = eina_stringshare_add(udi);
> > -   _e_stores = eina_list_append(_e_stores, s);
> > -   e_hal_device_get_all_properties(_e_dbus_conn, s->udi,
> > -                              _e_dbus_cb_store_prop, s);
> > -   return s;
> > -}
> > -
> >  EAPI void
> > -e_storage_del(const char *udi)
> > +e_volume_unmount(E_Volume *v)
> >  {
> > -   E_Storage *s;
> > -
> > -   s = e_storage_find(udi);
> > -   if (!s) return;
> > -   if (s->validated)
> > -     {
> > -// printf("--STO %s\n", s->udi);
> > -   ecore_ipc_server_send(_e_fm_ipc_server,
> > -                         6/*E_IPC_DOMAIN_FM*/,
> > -                         E_FM_OP_STORAGE_DEL,
> > -                         0, 0, 0, s->udi, strlen(s->udi) + 1);
> > -     }
> > -   _e_stores = eina_list_remove(_e_stores, s);
> > -   _e_storage_free(s);
> > +   _E_FM(volume_unmount)(v);
> >  }
> >  
> > -E_Storage *
> > -e_storage_find(const char *udi)
> > -{
> > -   Eina_List *l;
> > -   E_Storage  *s;
> > -   
> > -   EINA_LIST_FOREACH(_e_stores, l, s)
> > -     {
> > -   if (!strcmp(udi, s->udi)) return s;
> > -     }
> > -   return NULL;
> > -}
> > -
> > -static void
> > -_e_dbus_cb_vol_prop(void *data, void *reply_data, DBusError *error)
> > -{
> > -   E_Volume *v = data;
> > -   E_Storage *s = NULL;
> > -   E_Hal_Device_Get_All_Properties_Return *ret = reply_data;
> > -   int err = 0;
> > -   const char *str = NULL;
> > -
> > -   if (!ret) goto error;
> > -   if (dbus_error_is_set(error))
> > -     {
> > -   dbus_error_free(error);
> > -   goto error;
> > -     }
> > -   
> > -   /* skip volumes with volume.ignore set */
> > -   if (e_hal_property_bool_get(ret, "volume.ignore", &err) || err)
> > -     goto error;
> > -   
> > -   /* skip volumes that aren't filesystems */
> > -   str = e_hal_property_string_get(ret, "volume.fsusage", &err);
> > -   if (err || !str) goto error;
> > -   if (strcmp(str, "filesystem")) goto error;
> > -   str = NULL;
> > -   
> > -   v->uuid = e_hal_property_string_get(ret, "volume.uuid", &err);
> > -   if (err) goto error;
> > -   v->uuid = eina_stringshare_add(v->uuid);
> > -   
> > -   v->label = e_hal_property_string_get(ret, "volume.label", &err);
> > -//   if (err) goto error;
> > -   v->label = eina_stringshare_add(v->label);
> > -   
> > -   v->fstype = e_hal_property_string_get(ret, "volume.fstype", &err);
> > -//   if (err) goto error;
> > -   v->fstype = eina_stringshare_add(v->fstype);
> > -
> > -   v->size = e_hal_property_uint64_get(ret, "volume.size", &err);
> > -   
> > -   v->mounted = e_hal_property_bool_get(ret, "volume.is_mounted", &err);
> > -   if (err) goto error;
> > -   
> > -   v->partition = e_hal_property_bool_get(ret, "volume.is_partition",
> > &err);
> > -   if (err) goto error;
> > -
> > -   v->mount_point = e_hal_property_string_get(ret, "volume.mount_point",
> > &err);
> > -   if (err) goto error;
> > -   v->mount_point = eina_stringshare_add(v->mount_point);
> > -   
> > -   if (v->partition)
> > -     {
> > -   v->partition_number = e_hal_property_int_get(ret,
> > "volume.partition.number", NULL);
> > -   v->partition_label = e_hal_property_string_get(ret,
> > "volume.partition.label", NULL);
> > -   v->partition_label = eina_stringshare_add(v->partition_label);
> > -     }
> > -   
> > -   v->parent = e_hal_property_string_get(ret, "info.parent", &err);
> > -   if ((!err) && (v->parent))
> > -     {
> > -   s = e_storage_find(v->parent);
> > -   if (s)
> > -     {
> > -        v->storage = s;
> > -        s->volumes = eina_list_append(s->volumes, v);
> > -     }
> > -     }
> > -   v->parent = eina_stringshare_add(v->parent);
> > -   
> > -//   printf("++VOL:\n  udi: %s\n  uuid: %s\n  fstype: %s\n  size: %llu\n
> > label: %s\n  partition: %d\n  partition_number: %d\n partition_label: %s\n
> > mounted: %d\n  mount_point: %s\n", v->udi, v->uuid, v->fstype, v->size,
> > v->label, v->partition, v->partition_number, v->partition ?
> > v->partition_label : "(not a partition)", v->mounted, v->mount_point); -//
> > if (s) printf("  for storage: %s\n", s->udi); -//   else printf("  storage
> > unknown\n");
> > -   v->validated = EINA_TRUE;
> > -     {
> > -   void *msg_data;
> > -   int msg_size;
> > -   
> > -   msg_data = eet_data_descriptor_encode(_e_volume_edd, v, &msg_size);
> > -   if (msg_data)
> > -     {
> > -        ecore_ipc_server_send(_e_fm_ipc_server,
> > -                              6/*E_IPC_DOMAIN_FM*/,
> > -                              E_FM_OP_VOLUME_ADD,
> > -                              0, 0, 0, msg_data, msg_size);
> > -        free(msg_data);
> > -     }
> > -     }
> > -   return;
> > -   
> > -   error:
> > -   e_volume_del(v->udi);
> > -   return;
> > -}
> > -
> > -static int
> > -_e_dbus_format_error_msg(char **buf, E_Volume *v, DBusError *error)
> > -{
> > -   int size, vu, vm, en;
> > -   char *tmp;
> > -   
> > -   vu = strlen(v->udi) + 1;
> > -   vm = strlen(v->mount_point) + 1;
> > -   en = strlen(error->name) + 1;
> > -   size = vu + vm + en + strlen(error->message) + 1;
> > -   tmp = *buf = malloc(size);
> > -   
> > -   strcpy(tmp, v->udi);
> > -   tmp += vu;
> > -   strcpy(tmp, v->mount_point);
> > -   tmp += vm;
> > -   strcpy(tmp, error->name);
> > -   tmp += en;
> > -   strcpy(tmp, error->message);
> > -   
> > -   return size;
> > -}
> > -
> > -static void
> > -_e_dbus_cb_vol_prop_mount_modified(void *data, void *reply_data, DBusError
> > *error) -{
> > -   E_Volume *v = data;
> > -   E_Hal_Device_Get_All_Properties_Return *ret = reply_data;
> > -   int err = 0;
> > -
> > -   if (!ret) return;
> > -   if (dbus_error_is_set(error))
> > -     {
> > -        char *buf;
> > -        int size;
> > -   
> > -        size = _e_dbus_format_error_msg(&buf, v, error);
> > -        if (v->mounted)
> > -           ecore_ipc_server_send(_e_fm_ipc_server, 6/*E_IPC_DOMAIN_FM*/,
> > E_FM_OP_UNMOUNT_ERROR,
> > -                                 0, 0, 0, buf, size);
> > -        else
> > -           ecore_ipc_server_send(_e_fm_ipc_server, 6/*E_IPC_DOMAIN_FM*/,
> > E_FM_OP_MOUNT_ERROR,
> > -                                 0, 0, 0, buf, size);
> > -   dbus_error_free(error);
> > -   free(buf);
> > -   return;
> > -     }
> > -   
> > -   v->mounted = e_hal_property_bool_get(ret, "volume.is_mounted", &err);
> > -   if (err) printf("HAL Error : can't get volume.is_mounted property");
> > -   
> > -   if (v->mount_point) eina_stringshare_del(v->mount_point);
> > -   v->mount_point = e_hal_property_string_get(ret, "volume.mount_point",
> > &err);
> > -   if (err) printf("HAL Error : can't get volume.is_mount_point property");
> > -   v->mount_point = eina_stringshare_add(v->mount_point);
> > -   
> > -//   printf("**VOL udi: %s mount_point: %s mounted: %d\n", v->udi,
> > v->mount_point, v->mounted);
> > -     {
> > -   char *buf;
> > -   int size;
> > -   
> > -   size = strlen(v->udi) + 1 + strlen(v->mount_point) + 1;
> > -   buf = alloca(size);
> > -   strcpy(buf, v->udi);
> > -   strcpy(buf + strlen(buf) + 1, v->mount_point);
> > -   if (v->mounted)
> > -   ecore_ipc_server_send(_e_fm_ipc_server,
> > -                         6/*E_IPC_DOMAIN_FM*/,
> > -                         E_FM_OP_MOUNT_DONE,
> > -                         0, 0, 0, buf, size);
> > -   else
> > -   ecore_ipc_server_send(_e_fm_ipc_server,
> > -                         6/*E_IPC_DOMAIN_FM*/,
> > -                         E_FM_OP_UNMOUNT_DONE,
> > -                         0, 0, 0, buf, size);
> > -     }
> > -   return;
> > -}
> > -
> > -static Eina_List *_e_vols = NULL;
> > -
> > -EAPI E_Volume *
> > -e_volume_add(const char *udi, char first_time)
> > -{
> > -   E_Volume *v;
> > -   
> > -   if (!udi) return NULL;
> > -   if (e_volume_find(udi)) return NULL;
> > -   v = calloc(1, sizeof(E_Volume));
> > -   if (!v) return NULL;
> > -//   printf("VOL+ %s\n", udi);
> > -   v->udi = eina_stringshare_add(udi);
> > -   v->icon = NULL;
> > -   v->first_time = first_time;
> > -   _e_vols = eina_list_append(_e_vols, v);
> > -   e_hal_device_get_all_properties(_e_dbus_conn, v->udi,
> > -                              _e_dbus_cb_vol_prop, v);
> > -   v->prop_handler = e_dbus_signal_handler_add(_e_dbus_conn, E_HAL_SENDER,
> > -                                          udi,
> > -                                          E_HAL_DEVICE_INTERFACE,
> > -                                          "PropertyModified",
> > _e_dbus_cb_prop_modified, v);
> > -   v->guard = NULL;
> > -   
> > -   return v;
> > -}
> > -
> >  EAPI void
> > -e_volume_del(const char *udi)
> > +e_volume_eject(E_Volume *v)
> >  {
> > -   E_Volume *v;
> > -   
> > -   v = e_volume_find(udi);
> > -   if (!v) return;
> > -   if (v->guard)
> > -     {
> > -        ecore_timer_del(v->guard);
> > -        v->guard = NULL;      
> > -     }
> > -   if (v->prop_handler) e_dbus_signal_handler_del(_e_dbus_conn,
> > v->prop_handler);
> > -   if (v->validated)
> > -     {
> > -// printf("--VOL %s\n", v->udi);
> > -   /* FIXME: send event of storage volume (disk) removed */
> > -   ecore_ipc_server_send(_e_fm_ipc_server,
> > -                         6/*E_IPC_DOMAIN_FM*/,
> > -                         E_FM_OP_VOLUME_DEL,
> > -                         0, 0, 0, v->udi, strlen(v->udi) + 1);
> > -     }
> > -   _e_vols = eina_list_remove(_e_vols, v);
> > -   _e_volume_free(v);
> > +   _E_FM(volume_eject)(v);
> >  }
> >  
> >  EAPI E_Volume *
> >  e_volume_find(const char *udi)
> >  {
> > -   Eina_List *l;
> > -   E_Volume *v;
> > -   
> > -   EINA_LIST_FOREACH(_e_vols, l, v)
> > -     {
> > -   if (!strcmp(udi, v->udi)) return v;
> > -     }
> > -   return NULL;
> > +     return _E_FM(volume_find)(udi);
> >  }
> >  
> > -static Eina_Bool
> > -_e_dbus_vol_mount_timeout(void *data)
> > -{
> > -   E_Volume *v = data;
> > -   DBusError error;
> > -   char *buf;
> > -   int size;
> > -
> > -   v->guard = NULL;
> > -   dbus_pending_call_cancel(v->op);
> > -   error.name = "org.enlightenment.fm2.MountTimeout";
> > -   error.message = "Unable to mount the volume with specified time-out.";
> > -   size = _e_dbus_format_error_msg(&buf, v, &error);
> > -   ecore_ipc_server_send(_e_fm_ipc_server, 6/*E_IPC_DOMAIN_FM*/,
> > E_FM_OP_MOUNT_ERROR,
> > -                         0, 0, 0, buf, size);
> > -   free(buf);
> > -   
> > -   return ECORE_CALLBACK_CANCEL;
> > -}
> > -
> > -static void
> > -_e_dbus_cb_vol_mounted(void *user_data, void *method_return __UNUSED__,
> > DBusError *error) -{
> > -   E_Volume *v = user_data;
> > -   char *buf;
> > -   int size;
> > -   
> > -   if (v->guard)
> > -     {
> > -        ecore_timer_del(v->guard);
> > -        v->guard = NULL;
> > -     }
> > -   
> > -   if (dbus_error_is_set(error))
> > -     {
> > -        size = _e_dbus_format_error_msg(&buf, v, error);
> > -        ecore_ipc_server_send(_e_fm_ipc_server, 6/*E_IPC_DOMAIN_FM*/,
> > E_FM_OP_MOUNT_ERROR,
> > -                              0, 0, 0, buf, size);
> > -        dbus_error_free(error);
> > -        free(buf);
> > -        return;
> > -     }
> > -
> > -#if 0
> > -   v->mounted = EINA_TRUE;
> > -//   printf("MOUNT: %s from %s\n", v->udi, v->mount_point);
> > -   size = strlen(v->udi) + 1 + strlen(v->mount_point) + 1;
> > -   buf = alloca(size);
> > -   strcpy(buf, v->udi);
> > -   strcpy(buf + strlen(buf) + 1, v->mount_point);
> > -   ecore_ipc_server_send(_e_fm_ipc_server,
> > -                    6/*E_IPC_DOMAIN_FM*/,
> > -                    E_FM_OP_MOUNT_DONE,
> > -                    0, 0, 0, buf, size);
> > -#endif
> > -}
> > -
> >  EAPI void
> > -e_volume_mount(E_Volume *v)
> > +e_storage_del(const char *udi)
> >  {
> > -   char buf[256];
> > -   char buf2[256];
> > -   const char *mount_point;
> > -   Eina_List *opt = NULL;
> > -
> > -   if (!v || v->guard || !v->mount_point || strncmp(v->mount_point,
> > "/media/", 7))
> > -     return;
> > -
> > -   mount_point = v->mount_point + 7;
> > -//   printf("mount %s %s [fs type = %s]\n", v->udi, v->mount_point,
> > v->fstype); -
> > -   if ((!strcmp(v->fstype, "vfat")) ||
> > -       (!strcmp(v->fstype, "ntfs"))
> > -       )
> > -     {
> > -#if !defined(__FreeBSD__)
> > -   snprintf(buf, sizeof(buf), "uid=%i", (int)getuid());
> > -   opt = eina_list_append(opt, buf);
> > -#endif
> > -     }
> > -
> > -   if ((!strcmp(v->fstype, "vfat")) || 
> > -       (!strcmp(v->fstype, "ntfs")) ||
> > -       (!strcmp(v->fstype, "iso9660"))
> > -       )
> > -     {
> > -        snprintf(buf2, sizeof(buf2), "utf8");
> > -        opt = eina_list_append(opt, buf2);
> > -     }
> > -   else if ((!strcmp(v->fstype, "fat")) || 
> > -            (!strcmp(v->fstype, "jfs")) 
> > -//            (!strcmp(v->fstype, "udf"))
> > -            )
> > -     {
> > -        snprintf(buf2, sizeof(buf2), "iocharset=utf8");
> > -        opt = eina_list_append(opt, buf2);
> > -     }
> > -
> > -   v->guard = ecore_timer_add(E_FM_MOUNT_TIMEOUT,
> > _e_dbus_vol_mount_timeout, v);
> > -   v->op = e_hal_device_volume_mount(_e_dbus_conn, v->udi, mount_point,
> > -                                     v->fstype, opt,
> > _e_dbus_cb_vol_mounted, v);
> > -   eina_list_free(opt);
> > +     _E_FM(storage_del)(udi);
> >  }
> >  
> > -static Eina_Bool
> > -_e_dbus_vol_unmount_timeout(void *data)
> > +EAPI E_Storage *
> > +e_storage_find(const char *udi)
> >  {
> > -   E_Volume *v = data;
> > -   DBusError error;
> > -   char *buf;
> > -   int size;
> > -
> > -   v->guard = NULL;
> > -   dbus_pending_call_cancel(v->op);
> > -   error.name = "org.enlightenment.fm2.UnmountTimeout";
> > -   error.message = "Unable to unmount the volume with specified time-out.";
> > -   size = _e_dbus_format_error_msg(&buf, v, &error);
> > -   ecore_ipc_server_send(_e_fm_ipc_server, 6/*E_IPC_DOMAIN_FM*/,
> > E_FM_OP_UNMOUNT_ERROR,
> > -                         0, 0, 0, buf, size);
> > -   free(buf);
> > -   
> > -   return ECORE_CALLBACK_CANCEL;
> > +     return _E_FM(storage_find)(udi);
> >  }
> >  
> > -static void
> > -_e_dbus_cb_vol_unmounted(void *user_data, void *method_return __UNUSED__,
> > DBusError *error) +void
> > +_e_storage_free(E_Storage *s)
> >  {
> > -   E_Volume *v = user_data;
> > -   char *buf;
> > -   int size;
> > -
> > -   if (v->guard)
> > -     {
> > -        ecore_timer_del(v->guard);
> > -        v->guard = NULL;
> > -     }
> > -   
> > -   if (dbus_error_is_set(error))
> > -     {
> > -        size = _e_dbus_format_error_msg(&buf, v, error);
> > -        ecore_ipc_server_send(_e_fm_ipc_server, 6/*E_IPC_DOMAIN_FM*/,
> > E_FM_OP_UNMOUNT_ERROR,
> > -                              0, 0, 0, buf, size);
> > -        dbus_error_free(error);
> > -        free(buf);
> > -        return;
> > -     }
> > -
> > -#if 0
> > -   v->mounted = EINA_FALSE;
> > -//   printf("UNMOUNT: %s from %s\n", v->udi, v->mount_point);
> > -   size = strlen(v->udi) + 1 + strlen(v->mount_point) + 1;
> > -   buf = alloca(size);
> > -   strcpy(buf, v->udi);
> > -   strcpy(buf + strlen(buf) + 1, v->mount_point);
> > -   ecore_ipc_server_send(_e_fm_ipc_server,
> > -                    6/*E_IPC_DOMAIN_FM*/,
> > -                    E_FM_OP_UNMOUNT_DONE,
> > -                    0, 0, 0, buf, size);
> > -#endif
> > +     _E_FM_SHARED(storage_free)(s);
> >  }
> >  
> > -EAPI void
> > -e_volume_unmount(E_Volume *v)
> > +void
> > +_e_volume_free(E_Volume *v)
> >  {
> > -//   printf("unmount %s %s\n", v->udi, v->mount_point);
> > -   if (!v || v->guard) return;
> > -   
> > -   v->guard = ecore_timer_add(E_FM_UNMOUNT_TIMEOUT,
> > _e_dbus_vol_unmount_timeout, v);
> > -   v->op = e_hal_device_volume_unmount(_e_dbus_conn, v->udi, NULL,
> > -                                       _e_dbus_cb_vol_unmounted, v);
> > +     _E_FM_SHARED(volume_free)(v);
> >  }
> > -
> > -static Eina_Bool
> > -_e_dbus_vol_eject_timeout(void *data)
> > -{
> > -   E_Volume *v = data;
> > -   DBusError error;
> > -   char *buf;
> > -   int size;
> > -
> > -   v->guard = NULL;
> > -   dbus_pending_call_cancel(v->op);
> > -   error.name = "org.enlightenment.fm2.EjectTimeout";
> > -   error.message = "Unable to eject the media with specified time-out.";
> > -   size = _e_dbus_format_error_msg(&buf, v, &error);
> > -   ecore_ipc_server_send(_e_fm_ipc_server, 6/*E_IPC_DOMAIN_FM*/,
> > E_FM_OP_EJECT_ERROR,
> > -                         0, 0, 0, buf, size);
> > -   free(buf);
> > -   
> > -   return ECORE_CALLBACK_CANCEL;
> > -}
> > -
> > -static Eina_Bool
> > -_e_dbus_vb_vol_ejecting_after_unmount(void *data)
> > -{
> > -   E_Volume *v = data;
> > -   
> > -   v->guard = ecore_timer_add(E_FM_EJECT_TIMEOUT,
> > _e_dbus_vol_eject_timeout, v);
> > -   v->op = e_hal_device_volume_eject(_e_dbus_conn, v->udi, NULL,
> > -                                     _e_dbus_cb_vol_ejected, v);
> > -   
> > -   return ECORE_CALLBACK_CANCEL;
> > -}
> > -
> > -static void
> > -_e_dbus_cb_vol_unmounted_before_eject(void *user_data, void *method_return,
> > DBusError *error) -{
> > -   E_Volume *v = user_data;
> > -   char err;
> > -
> > -   err = dbus_error_is_set(error) ? 1 : 0;
> > -   _e_dbus_cb_vol_unmounted(user_data, method_return, error);
> > -   
> > -   // delay is required for all message handlers were executed after
> > unmount
> > -   if (!err)
> > -      ecore_timer_add(1.0, _e_dbus_vb_vol_ejecting_after_unmount, v);
> > -}
> > -
> > -static void
> > -_e_dbus_cb_vol_ejected(void *user_data, void *method_return __UNUSED__,
> > DBusError *error) -{
> > -   E_Volume *v = user_data;
> > -   char *buf;
> > -   int size;
> > -
> > -   if (v->guard)
> > -     {
> > -        ecore_timer_del(v->guard);
> > -        v->guard = NULL;
> > -     }
> > -   
> > -   if (dbus_error_is_set(error))
> > -     {
> > -        size = _e_dbus_format_error_msg(&buf, v, error);
> > -        ecore_ipc_server_send(_e_fm_ipc_server, 6/*E_IPC_DOMAIN_FM*/,
> > E_FM_OP_EJECT_ERROR,
> > -                              0, 0, 0, buf, size);
> > -        dbus_error_free(error);
> > -        free(buf);
> > -        return;
> > -     }
> > -   
> > -   size = strlen(v->udi) + 1;
> > -   buf = alloca(size);
> > -   strcpy(buf, v->udi);
> > -   ecore_ipc_server_send(_e_fm_ipc_server,
> > -                         6/*E_IPC_DOMAIN_FM*/,
> > -                         E_FM_OP_EJECT_DONE,
> > -                         0, 0, 0, buf, size);
> > -}
> > -
> > -EAPI void
> > -e_volume_eject(E_Volume *v)
> > -{
> > -   if (!v || v->guard) return;
> > -
> > -   if (v->mounted)
> > -     {
> > -        v->guard = ecore_timer_add(E_FM_UNMOUNT_TIMEOUT,
> > _e_dbus_vol_unmount_timeout, v);
> > -        v->op = e_hal_device_volume_unmount(_e_dbus_conn, v->udi, NULL,
> > -
> > _e_dbus_cb_vol_unmounted_before_eject, v);
> > -     }
> > -   else
> > -     {
> > -        v->guard = ecore_timer_add(E_FM_EJECT_TIMEOUT,
> > _e_dbus_vol_eject_timeout, v);
> > -        v->op = e_hal_device_volume_eject(_e_dbus_conn, v->udi, NULL,
> > -                                          _e_dbus_cb_vol_ejected, v);
> > -     }
> > -}
> > 
> > Modified: trunk/e/src/bin/e_fm.c
> > ===================================================================
> > --- trunk/e/src/bin/e_fm.c  2010-10-05 06:33:19 UTC (rev 53050)
> > +++ trunk/e/src/bin/e_fm.c  2010-10-05 06:33:23 UTC (rev 53051)
> > @@ -449,10 +449,9 @@
> >   * _e_storage_volume_edd_init()
> >   * _e_storage_volume_edd_shutdown()
> >   */
> > -#define E_FM_SHARED_CODEC
> > -#include "e_fm_shared.h"
> > -#undef E_FM_SHARED_CODEC
> >  
> > +#include "e_fm_shared_codec.h"
> > +
> >  static inline Eina_Bool
> >  _e_fm2_icon_realpath(const E_Fm2_Icon *ic, char *buf, int buflen)
> >  {
> > @@ -2914,7 +2913,7 @@
> >       {
> >          E_Storage *s;
> >  
> > -        s = eet_data_descriptor_decode(_e_storage_edd, e->data,
> > e->size);
> > +        s = _e_fm_shared_codec_storage_decode(e->data, e->size);
> >          if (s) e_fm2_dbus_storage_add(s);
> >       }
> >     break;
> > @@ -2936,7 +2935,7 @@
> >       {
> >          E_Volume *v;
> >  
> > -        v = eet_data_descriptor_decode(_e_volume_edd, e->data,
> > e->size);
> > +        v = _e_fm_shared_codec_volume_decode(e->data, e->size);
> >          if (v) 
> >            {
> >               e_fm2_dbus_volume_add(v);
> > 
> > Modified: trunk/e/src/bin/e_fm.h
> > ===================================================================
> > --- trunk/e/src/bin/e_fm.h  2010-10-05 06:33:19 UTC (rev 53050)
> > +++ trunk/e/src/bin/e_fm.h  2010-10-05 06:33:23 UTC (rev 53051)
> > @@ -47,9 +47,7 @@
> >  typedef struct _E_Fm2_Icon        E_Fm2_Icon;
> >  typedef struct _E_Fm2_Icon_Info   E_Fm2_Icon_Info;
> >  
> > -#define E_FM_SHARED_DATATYPES
> > -#include "e_fm_shared.h"
> > -#undef E_FM_SHARED_DATATYPES
> > +#include "e_fm_shared_types.h"
> >  
> >  #else
> >  #ifndef E_FM_H
> > 
> > Modified: trunk/e/src/bin/e_fm_dbus.c
> > ===================================================================
> > --- trunk/e/src/bin/e_fm_dbus.c     2010-10-05 06:33:19 UTC (rev 53050)
> > +++ trunk/e/src/bin/e_fm_dbus.c     2010-10-05 06:33:23 UTC (rev 53051)
> > @@ -1,9 +1,7 @@
> >  #include "e_fm_dbus.h"
> > +#include "e_fm_shared_codec.h"
> > +#include "e_fm_shared_dbus.h"
> >  
> > -#define E_FM_SHARED_CODEC
> > -#include "e_fm_shared.h"
> > -#undef E_FM_SHARED_CODEC
> > -
> >  static void _e_fm2_volume_write(E_Volume *v) EINA_ARG_NONNULL(1);
> >  static void _e_fm2_volume_erase(E_Volume *v) EINA_ARG_NONNULL(1);
> >  static void _e_fm2_dbus_mount_free(E_Fm2_Mount *m); EINA_ARG_NONNULL(1);
> > @@ -74,7 +72,7 @@
> >  {
> >  //   printf("STO- %s\n", s->udi);
> >     _e_stores = eina_list_remove(_e_stores, s);
> > -   _e_storage_free(s);
> > +   _e_fm_shared_dbus_storage_free(s);
> >  }
> >  
> >  EAPI E_Storage *
> > @@ -279,7 +277,7 @@
> >          _e_fm2_dbus_unmount_ok(m);
> >          _e_fm2_dbus_mount_free(m);
> >       }
> > -   _e_volume_free(v);
> > +   _e_fm_shared_dbus_volume_free(v);
> >  }
> >  
> >  static void
> > 
> > 
> > ------------------------------------------------------------------------------
> > Beautiful is writing same markup. Internet Explorer 9 supports
> > standards for HTML5, CSS3, SVG 1.1,  ECMAScript5, and DOM L2 & L3.
> > Spend less time writing and  rewriting code and more time creating great
> > experiences on the web. Be a part of the beta today.
> > http://p.sf.net/sfu/beautyoftheweb
> > _______________________________________________
> > enlightenment-svn mailing list
> > enlightenment-...@lists.sourceforge.net
> > https://lists.sourceforge.net/lists/listinfo/enlightenment-svn
> > 
> 
> 
> -- 
> ------------- Codito, ergo sum - "I code, therefore I am" --------------
> The Rasterman (Carsten Haitzler)    ras...@rasterman.com
> 
> 
> ------------------------------------------------------------------------------
> Beautiful is writing same markup. Internet Explorer 9 supports
> standards for HTML5, CSS3, SVG 1.1,  ECMAScript5, and DOM L2 & L3.
> Spend less time writing and  rewriting code and more time creating great
> experiences on the web. Be a part of the beta today.
> http://p.sf.net/sfu/beautyoftheweb
> _______________________________________________
> enlightenment-devel mailing list
> enlightenment-devel@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
> 


-- 
------------- Codito, ergo sum - "I code, therefore I am" --------------
The Rasterman (Carsten Haitzler)    ras...@rasterman.com


------------------------------------------------------------------------------
Beautiful is writing same markup. Internet Explorer 9 supports
standards for HTML5, CSS3, SVG 1.1,  ECMAScript5, and DOM L2 & L3.
Spend less time writing and  rewriting code and more time creating great
experiences on the web. Be a part of the beta today.
http://p.sf.net/sfu/beautyoftheweb
_______________________________________________
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel

Reply via email to