X-Git-Url: https://git.gag.com/?a=blobdiff_plain;f=device-src%2Fvfs-device.h;h=109f6cc649b725ace4cb4669416f28c117eea6b4;hb=HEAD;hp=6b5796f7e44297b7f7be89562148f3ed65e0ba35;hpb=6ba576375c19b829b2a13dbe6562eedd2716b9ea;p=debian%2Famanda diff --git a/device-src/vfs-device.h b/device-src/vfs-device.h index 6b5796f..109f6cc 100644 --- a/device-src/vfs-device.h +++ b/device-src/vfs-device.h @@ -1,42 +1,28 @@ /* - * Copyright (c) 2005 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 - * published by the Free Software Foundation. - * + * Copyright (c) 2005-2012 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 as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * * 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 +35,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 +44,27 @@ 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; + gboolean enforce_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 +74,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 -