X-Git-Url: https://git.gag.com/?a=blobdiff_plain;f=device-src%2Fvfs-device.h;h=62442c470d9129b0ccd0a6da76d7be88c6216de0;hb=b116e9366c7b2ea2c2eb53b0a13df4090e176235;hp=6b5796f7e44297b7f7be89562148f3ed65e0ba35;hpb=94a044f90357edefa6f4ae9f0b1d5885b0e34aee;p=debian%2Famanda diff --git a/device-src/vfs-device.h b/device-src/vfs-device.h index 6b5796f..62442c4 100644 --- a/device-src/vfs-device.h +++ b/device-src/vfs-device.h @@ -1,42 +1,27 @@ /* - * Copyright (c) 2005 Zmanda, Inc. All Rights Reserved. - * + * Copyright (c) 2005-2008, 2010 Zmanda Inc. All Rights Reserved. + * * This library is free software; you can redistribute it and/or modify it - * under the terms of the GNU Lesser General Public License version 2.1 as + * under the terms of the GNU Lesser General Public License version 2.1 as * published by the Free Software Foundation. - * + * * This library is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public * License for more details. - * + * * You should have received a copy of the GNU Lesser General Public License * along with this library; if not, write to the Free Software Foundation, * Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. - * - * Contact information: Zmanda Inc., 505 N Mathlida Ave, Suite 120 - * Sunnyvale, CA 94085, USA, or: http://www.zmanda.com + * + * Contact information: Zmanda Inc., 465 S Mathlida Ave, Suite 300 + * Sunnyvale, CA 94086, USA, or: http://www.zmanda.com */ -/* The VFS device is the driver formerly known as the vtape driver or - * the file driver. It uses a directory on the UNIX filesystem as a - * data store. */ +#ifndef __VFS_DEVICE_H__ +#define __VFS_DEVICE_H__ -#include -#include #include "device.h" -#include - -#ifndef VFS_DEVICE_H -#define VFS_DEVICE_H - -#define VFS_DEVICE_MIN_BLOCK_SIZE (1) -#define VFS_DEVICE_MAX_BLOCK_SIZE (INT_MAX) -#define VFS_DEVICE_DEFAULT_BLOCK_SIZE (MAX_TAPE_BLOCK_BYTES) -#define VFS_DEVICE_LABEL_SIZE (32768) - -/* This looks dangerous, but is actually modified by the umask. */ -#define VFS_DEVICE_CREAT_MODE 0666 /* * Type checking and casting macros @@ -49,6 +34,8 @@ #define VFS_DEVICE_GET_CLASS(obj) G_TYPE_INSTANCE_GET_CLASS((obj), vfs_device_get_type(), VfsDeviceClass) +GType vfs_device_get_type (void); + /* * Main object structure */ @@ -56,19 +43,26 @@ typedef struct { Device __parent__; /*< private >*/ - DIR * dir_handle; char * dir_name; char * file_name; - int file_lock_fd; - char * file_lock_name; - int volume_lock_fd; - char * volume_lock_name; int open_file_fd; - + gboolean leom; + /* Properties */ - int block_size; guint64 volume_bytes; guint64 volume_limit; + + /* should we monitor free space? (controlled by MONITOR_FREE_SPACE property) */ + gboolean monitor_free_space; + + /* how many bytes were free at last check */ + guint64 checked_fs_free_bytes; + + /* when was that check performed? */ + time_t checked_fs_free_time; + + /* and how many bytes have been written since the last check? */ + guint64 checked_bytes_used; } VfsDevice; /* @@ -78,12 +72,7 @@ typedef struct { DeviceClass __parent__; } VfsDeviceClass; - -/* - * Public methods - */ -GType vfs_device_get_type (void); -void vfs_device_register (void); +/* Implementation functions */ +void delete_vfs_files(VfsDevice * self); #endif -