118c2aff7Sartem /***************************************************************************
218c2aff7Sartem  * CVSID: $Id: hal-storage-mount.c,v 1.7 2006/06/21 00:44:03 david Exp $
318c2aff7Sartem  *
418c2aff7Sartem  * hal-storage-mount.c : Mount wrapper
518c2aff7Sartem  *
618c2aff7Sartem  * Copyright (C) 2006 David Zeuthen, <david@fubar.dk>
718c2aff7Sartem  *
818c2aff7Sartem  * This program is free software; you can redistribute it and/or modify
918c2aff7Sartem  * it under the terms of the GNU General Public License as published by
1018c2aff7Sartem  * the Free Software Foundation; either version 2 of the License, or
1118c2aff7Sartem  * (at your option) any later version.
1218c2aff7Sartem  *
1318c2aff7Sartem  * This program is distributed in the hope that it will be useful,
1418c2aff7Sartem  * but WITHOUT ANY WARRANTY; without even the implied warranty of
1518c2aff7Sartem  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
1618c2aff7Sartem  * GNU General Public License for more details.
1718c2aff7Sartem  *
1818c2aff7Sartem  * You should have received a copy of the GNU General Public License
1918c2aff7Sartem  * along with this program; if not, write to the Free Software
2018c2aff7Sartem  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
2118c2aff7Sartem  *
2218c2aff7Sartem  **************************************************************************/
2318c2aff7Sartem 
2418c2aff7Sartem #ifndef HAL_STORAGE_SHARED_H
2518c2aff7Sartem #define HAL_STORAGE_SHARED_H
2618c2aff7Sartem 
2718c2aff7Sartem #include <libhal.h>
2818c2aff7Sartem #include <libhal-storage.h>
2918c2aff7Sartem #ifdef HAVE_POLKIT
3018c2aff7Sartem #include <libpolkit.h>
3118c2aff7Sartem #endif
3218c2aff7Sartem #ifdef sun
3318c2aff7Sartem #include <bsm/adt.h>
3418c2aff7Sartem #include <bsm/adt_event.h>
35a9da3307Snp #include "../utils/adt_data.h"
3618c2aff7Sartem #endif
3718c2aff7Sartem 
3818c2aff7Sartem /*#define DEBUG*/
3918c2aff7Sartem #define DEBUG
4018c2aff7Sartem 
4118c2aff7Sartem gboolean mtab_open (gpointer *handle);
4218c2aff7Sartem char *mtab_next (gpointer handle, char **mount_point);
4318c2aff7Sartem void mtab_close (gpointer handle);
4418c2aff7Sartem 
4518c2aff7Sartem gboolean fstab_open (gpointer *handle);
4618c2aff7Sartem char *fstab_next (gpointer handle, char **mount_point);
4718c2aff7Sartem void fstab_close (gpointer handle);
4818c2aff7Sartem 
4918c2aff7Sartem gboolean lock_hal_mtab (void);
5018c2aff7Sartem void unlock_hal_mtab (void);
5118c2aff7Sartem 
5218c2aff7Sartem void unknown_error (const char *detail);
5318c2aff7Sartem 
54*55fea89dSDan Cross void handle_unmount (LibHalContext *hal_ctx,
5518c2aff7Sartem #ifdef HAVE_POLKIT
56*55fea89dSDan Cross 		     LibPolKitContext *pol_ctx,
5718c2aff7Sartem #endif
5818c2aff7Sartem 		     const char *udi,
59*55fea89dSDan Cross 		     LibHalVolume *volume, LibHalDrive *drive, const char *device,
6018c2aff7Sartem 		     const char *invoked_by_uid, const char *invoked_by_syscon_name,
6118c2aff7Sartem 		     gboolean option_lazy, gboolean option_force,
6218c2aff7Sartem 		     DBusConnection *system_bus);
6318c2aff7Sartem 
64*55fea89dSDan Cross void handle_eject (LibHalContext *hal_ctx,
6518c2aff7Sartem #ifdef HAVE_POLKIT
66*55fea89dSDan Cross 		   LibPolKitContext *pol_ctx,
6718c2aff7Sartem #endif
6818c2aff7Sartem 		   const char *udi,
69*55fea89dSDan Cross 		   LibHalDrive *drive, const char *device,
7018c2aff7Sartem 		   const char *invoked_by_uid, const char *invoked_by_syscon_name,
7118c2aff7Sartem 		   gboolean closetray, DBusConnection *system_bus);
7218c2aff7Sartem 
7318c2aff7Sartem #ifdef sun
7418c2aff7Sartem char *auth_from_privilege(const char *privilege);
7518c2aff7Sartem void audit_volume(const adt_export_data_t *imported_state, au_event_t event_id, int result,
7618c2aff7Sartem     const char *auth_used, const char *mount_point, const char *device, const char *options);
7718c2aff7Sartem #endif /* sun */
78*55fea89dSDan Cross 
7918c2aff7Sartem #endif /* HAL_STORAGE_SHARED_H */
8018c2aff7Sartem 
81