[BACK]Return to filesys.h CVS log [TXT][DIR] Up to [local] / src / usr.bin / rdist

Annotation of src/usr.bin/rdist/filesys.h, Revision 1.2

1.2     ! millert     1: /*     $OpenBSD: filesys.h,v 1.1 2003/05/14 01:34:35 millert Exp $     */
1.1       millert     2:
                      3: /*
                      4:  * Copyright (c) 1983 Regents of the University of California.
                      5:  * All rights reserved.
                      6:  *
                      7:  * Redistribution and use in source and binary forms, with or without
                      8:  * modification, are permitted provided that the following conditions
                      9:  * are met:
                     10:  * 1. Redistributions of source code must retain the above copyright
                     11:  *    notice, this list of conditions and the following disclaimer.
                     12:  * 2. Redistributions in binary form must reproduce the above copyright
                     13:  *    notice, this list of conditions and the following disclaimer in the
                     14:  *    documentation and/or other materials provided with the distribution.
1.2     ! millert    15:  * 3. Neither the name of the University nor the names of its contributors
1.1       millert    16:  *    may be used to endorse or promote products derived from this software
                     17:  *    without specific prior written permission.
                     18:  *
                     19:  * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
                     20:  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
                     21:  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
                     22:  * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
                     23:  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
                     24:  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
                     25:  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
                     26:  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
                     27:  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
                     28:  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
                     29:  * SUCH DAMAGE.
                     30:  */
                     31:
                     32: /*
                     33:  * $From: filesys.h,v 1.2 1999/08/04 15:57:31 christos Exp $
                     34:  * @(#)filesys.h
                     35:  */
                     36:
                     37: #ifndef __filesys_h__
                     38: #define __filesys_h__
                     39:
                     40: /*
                     41:  * File System information
                     42:  */
                     43:
                     44: /*
                     45:  * Mount information
                     46:  */
                     47: #if FSI_TYPE == FSI_GETMNT
                     48: #      include <sys/types.h>
                     49: #      include <sys/param.h>
                     50: #      include <sys/mount.h>
                     51: #      define MOUNTED_FILE             "<none>"
                     52: #endif
                     53:
                     54: #if FSI_TYPE == FSI_GETFSSTAT
                     55: #      include <sys/types.h>
                     56: #      include <sys/mount.h>
                     57: #      define MOUNTED_FILE             "<none>"
                     58: #endif
                     59:
                     60: #if FSI_TYPE == FSI_MNTCTL
                     61: #      include <sys/mntctl.h>
                     62: #      define MOUNTED_FILE             "<none>"
                     63: #endif
                     64:
                     65: #if FSI_TYPE == FSI_GETMNTENT
                     66: #      include <mntent.h>
                     67: #      define  MOUNTED_FILE            MOUNTED
                     68: #endif
                     69:
                     70: #if FSI_TYPE == FSI_GETMNTENT2
                     71: #if     defined(MNTTAB_H)
                     72: #       include MNTTAB_H
                     73: #endif /* MNTTAB_H */
                     74: #if     defined(MNTENT_H)
                     75: #       include MNTENT_H
                     76: #endif /* MNTENT_H */
                     77: #      define  MOUNTED_FILE            MNTTAB
                     78: #endif /* FSI_GETMNTENT2 */
                     79:
                     80: #if    !defined(MOUNTED_FILE) && defined(MNT_MNTTAB)   /* HPUX */
                     81: #      define MOUNTED_FILE             MNT_MNTTAB
                     82: #endif /* MNT_MNTTAB */
                     83:
                     84: /*
                     85:  * NCR OS defines bcopy and bzero
                     86:  */
                     87: #if defined(NCR)
                     88: #undef bcopy
                     89: #undef bzero
                     90: #endif /* NCR */
                     91:
                     92: /*
                     93:  * Stat Filesystem
                     94:  */
                     95: #if    defined(STATFS_TYPE)
                     96: #  if defined(ultrix)
                     97:        typedef struct fs_data          statfs_t;
                     98: #      define f_bavail                 fd_req.bfreen
                     99: #      define f_bsize                  fd_req.bsize
                    100: #      define f_ffree                  fd_req.gfree
                    101: #  elif defined(_AIX) || STATFS_TYPE == STATFS_SYSV
                    102: #      include <sys/statfs.h>
                    103:        typedef struct statfs           statfs_t;
                    104: #      define f_bavail                 f_bfree
                    105: #  elif defined(SVR4)
                    106: #      include <sys/statvfs.h>
                    107:        typedef struct statvfs          statfs_t;
                    108: #      define statfs(mp,sb)            statvfs(mp,sb)
                    109: #  elif STATFS_TYPE == STATFS_44BSD || STATFS_TYPE == STATFS_OSF1
                    110:        typedef struct statfs           statfs_t;
                    111: #  else
                    112: #      include <sys/vfs.h>
                    113:        typedef struct statfs           statfs_t;
                    114: #  endif
                    115: #endif /* STATFS_TYPE */
                    116:
                    117: /*
                    118:  * Mount Entry definetions
                    119:  */
                    120: #ifndef METYPE_OTHER
                    121: #define METYPE_OTHER                   "other"
                    122: #endif
                    123: #ifndef METYPE_NFS
                    124: #define METYPE_NFS                     "nfs"
                    125: #endif
                    126: #ifndef MEFLAG_READONLY
                    127: #define MEFLAG_READONLY                        0x01
                    128: #endif
                    129: #ifndef MEFLAG_IGNORE
                    130: #define MEFLAG_IGNORE                  0x02
                    131: #endif
                    132:
                    133: /*
                    134:  * Our internal mount entry type
                    135:  */
                    136: struct _mntent {
                    137:        char                           *me_path;        /* Mounted path */
                    138:        char                           *me_type;        /* Type of mount */
                    139:        int                             me_flags;       /* Mount flags */
                    140: };
                    141: typedef struct _mntent mntent_t;
                    142:
                    143: /*
                    144:  * Internal mount information type
                    145:  */
                    146: struct mntinfo {
                    147:        mntent_t                        *mi_mnt;
                    148:        struct stat                     *mi_statb;
                    149:        struct mntinfo                  *mi_nxt;
                    150: };
                    151:
                    152: /*
                    153:  * Declarations
                    154:  */
                    155: FILE          *setmountent(const char *, const char *);
                    156: mntent_t       *getmountent(FILE *);
                    157: mntent_t       *newmountent(const mntent_t *);
                    158: void           endmountent(FILE *);
                    159:
                    160: #endif /* __filesys_h__ */