netatalk: volume.h File Reference

netatalk 4.5.1
Free and Open Source Apple Filing Protocol (AFP) Server
Loading...
Searching...
No Matches
volume.h File Reference
`#include <stdint.h>`
`#include <sys/types.h>`
`#include <atalk/cnid.h>`
`#include <atalk/globals.h>`
`#include <atalk/hash.h>`
`#include <atalk/unicode.h>`
`#include <atalk/vfs.h>`

Go to the source code of this file.

## Data Structures
struct | extmap
struct | vol

## Macros
#define | AFPVOL_U8MNAMELEN 255
#define | AFPVOL_MACNAMELEN 27
#define | AFPVOL_OPEN (1<<0)
#define | AFPVOL_GVSMASK (7<<2)
#define | AFPVOL_NONE (0<<2)
#define | AFPVOL_USTATFS (1<<3)
#define | AFPVOL_UQUOTA (1<<4)
#define | AFPVOL_NOV2TOEACONV (1 << 5)
#define | AFPVOL_SPOTLIGHT (1 << 6)
#define | AFPVOL_EA_SAMBA (1 << 7)
#define | AFPVOL_RO (1 << 8)
#define | AFPVOL_CHMOD_PRESERVE_ACL (1 << 9)
#define | AFPVOL_CHMOD_IGNORE (1 << 10)
#define | AFPVOL_FORCE_STICKY_XATTR (1 << 11)
#define | AFPVOL_LIMITSIZE (1 << 12)
#define | AFPVOL_A2VOL (1 << 13)
#define | AFPVOL_NOSTAT (1 << 16)
#define | AFPVOL_UNIX_PRIV (1 << 17)
#define | AFPVOL_NODEV (1 << 18)
#define | AFPVOL_EILSEQ (1 << 20)
#define | AFPVOL_INV_DOTS (1 << 22)
#define | AFPVOL_TM (1 << 23)
#define | AFPVOL_ACLS (1 << 24)
#define | AFPVOL_SEARCHDB (1 << 25)
#define | AFPVOL_NONETIDS (1 << 26)
#define | AFPVOL_FOLLOWSYM (1 << 27)
#define | AFPVOL_DELVETO (1 << 28)
#define | AFPVOL_EA_NONE 0
#define | AFPVOL_EA_AUTO 1
#define | AFPVOL_EA_SYS 2
#define | AFPVOL_EA_AD 3
#define | AFPSRVR_CONFIGINFO (1 << 0)
#define | AFPSRVR_PASSWD (1 << 7)
#define | AFPVOL_MTOUUPPER (1 << 0)
#define | AFPVOL_MTOULOWER (1 << 1)
#define | AFPVOL_UTOMUPPER (1 << 2)
#define | AFPVOL_UTOMLOWER (1 << 3)
#define | AFPVOL_UMLOWER (AFPVOL_MTOULOWER | AFPVOL_UTOMLOWER)
#define | AFPVOL_UMUPPER (AFPVOL_MTOUUPPER | AFPVOL_UTOMUPPER)
#define | AFPVOL_UUPPERMLOWER (AFPVOL_MTOUUPPER | AFPVOL_UTOMLOWER)
#define | AFPVOL_ULOWERMUPPER (AFPVOL_MTOULOWER | AFPVOL_UTOMUPPER)
#define | AFPVOL_CASESENS (1 << 4)
#define | AFPVOLSIG_FLAT 0x0001
#define | AFPVOLSIG_FIX 0x0002
#define | AFPVOLSIG_VAR 0x0003
#define | AFPVOLSIG_DEFAULT AFPVOLSIG_FIX
#define | VOLPBIT_ATTR_RO (1 << 0)
#define | VOLPBIT_ATTR_PASSWD (1 << 1)
#define | VOLPBIT_ATTR_FILEID (1 << 2)
#define | VOLPBIT_ATTR_CATSEARCH (1 << 3)
#define | VOLPBIT_ATTR_BLANKACCESS (1 << 4)
#define | VOLPBIT_ATTR_UNIXPRIV (1 << 5)
#define | VOLPBIT_ATTR_UTF8 (1 << 6)
#define | VOLPBIT_ATTR_NONETIDS (1 << 7)
#define | VOLPBIT_ATTR_PRIVPARENT (1 << 8)
#define | VOLPBIT_ATTR_NOTFILEXCHG (1 << 9)
#define | VOLPBIT_ATTR_EXT_ATTRS (1 << 10)
#define | VOLPBIT_ATTR_ACLS (1 << 11)
#define | VOLPBIT_ATTR_CASESENS (1 << 12)
#define | VOLPBIT_ATTR_TM (1 << 13)
#define | VOLPBIT_ATTR 0
#define | VOLPBIT_SIG 1
#define | VOLPBIT_CDATE 2
#define | VOLPBIT_MDATE 3
#define | VOLPBIT_BDATE 4
#define | VOLPBIT_VID 5
#define | VOLPBIT_BFREE 6
#define | VOLPBIT_BTOTAL 7
#define | VOLPBIT_NAME 8
#define | VOLPBIT_XBFREE 9
#define | VOLPBIT_XBTOTAL 10
#define | VOLPBIT_BSIZE 11
#define | utf8_encoding(obj)
#define | vol_nodev(vol)
#define | vol_unix_priv(vol)
#define | vol_inv_dots(vol)
#define | vol_syml_opt(vol)
#define | vol_chmod_opt(vol)

## Typedefs
typedef uint64_t | VolSpace

## Enumerations
enum | lv_flags_t { LV_DEFAULT = 0 , LV_ALL = 1 , LV_FORCE = 2 }

## Macro Definition Documentation

## ◆ AFPSRVR_CONFIGINFO

#define AFPSRVR_CONFIGINFO (1 << 0)

## ◆ AFPSRVR_PASSWD

#define AFPSRVR_PASSWD (1 << 7)

## ◆ AFPVOL_A2VOL

#define AFPVOL_A2VOL (1 << 13)

prodos volume

## ◆ AFPVOL_ACLS

#define AFPVOL_ACLS (1 << 24)

Volume supports ACLS

## ◆ AFPVOL_CASESENS

#define AFPVOL_CASESENS (1 << 4)

## ◆ AFPVOL_CHMOD_IGNORE

#define AFPVOL_CHMOD_IGNORE (1 << 10)

try to preserve ACLs

## ◆ AFPVOL_CHMOD_PRESERVE_ACL

#define AFPVOL_CHMOD_PRESERVE_ACL (1 << 9)

try to preserve ACLs

## ◆ AFPVOL_DELVETO

#define AFPVOL_DELVETO (1 << 28)

delete veto files and dirs

## ◆ AFPVOL_EA_AD

#define AFPVOL_EA_AD 3

Store them in adouble files

## ◆ AFPVOL_EA_AUTO

#define AFPVOL_EA_AUTO 1

try sys, fallback to ad (default)

## ◆ AFPVOL_EA_NONE

#define AFPVOL_EA_NONE 0

No EAs

## ◆ AFPVOL_EA_SAMBA

#define AFPVOL_EA_SAMBA (1 << 7)

Store Samba compatible xattrs (append 0 byte)

## ◆ AFPVOL_EA_SYS

#define AFPVOL_EA_SYS 2

Store them in native EAs

## ◆ AFPVOL_EILSEQ

#define AFPVOL_EILSEQ (1 << 20)

encode illegal sequence 'asis' UCS2, ex "\217-", which is not a valid SHIFT-JIS char, is encoded as U\217 -

## ◆ AFPVOL_FOLLOWSYM

#define AFPVOL_FOLLOWSYM (1 << 27)

follow symlinks on the server, default is not to

## ◆ AFPVOL_FORCE_STICKY_XATTR

#define AFPVOL_FORCE_STICKY_XATTR (1 << 11)

write metadata xattr as root on sticky dirs

## ◆ AFPVOL_GVSMASK

#define AFPVOL_GVSMASK (7<<2)

## ◆ AFPVOL_INV_DOTS

#define AFPVOL_INV_DOTS (1 << 22)

dots files are invisible

## ◆ AFPVOL_LIMITSIZE

#define AFPVOL_LIMITSIZE (1 << 12)

limit size for older macs

## ◆ AFPVOL_MACNAMELEN

#define AFPVOL_MACNAMELEN 27

AFP2 spec

## ◆ AFPVOL_MTOULOWER

#define AFPVOL_MTOULOWER (1 << 1)

## ◆ AFPVOL_MTOUUPPER

#define AFPVOL_MTOUUPPER (1 << 0)

## ◆ AFPVOL_NODEV

#define AFPVOL_NODEV (1 << 18)

always use 0 for device number in cnid calls help if device number is notconsistent across reboot

Note
  symlink to a different device will return an ACCESS error

## ◆ AFPVOL_NONE

#define AFPVOL_NONE (0<<2)

## ◆ AFPVOL_NONETIDS

#define AFPVOL_NONETIDS (1 << 26)

signal the client it shall do privelege mapping

## ◆ AFPVOL_NOSTAT

#define AFPVOL_NOSTAT (1 << 16)

advertise the volume even if we can't stat() it maybe because it will be mounted later in preexec

## ◆ AFPVOL_NOV2TOEACONV

#define AFPVOL_NOV2TOEACONV (1 << 5)

no adouble:v2 to adouble:ea conversion

## ◆ AFPVOL_OPEN

#define AFPVOL_OPEN (1<<0)

## ◆ AFPVOL_RO

#define AFPVOL_RO (1 << 8)

read-only volume

## ◆ AFPVOL_SEARCHDB

#define AFPVOL_SEARCHDB (1 << 25)

Use fast CNID db search instead of filesystem

## ◆ AFPVOL_SPOTLIGHT

#define AFPVOL_SPOTLIGHT (1 << 6)

Index volume for Spotlight searches

## ◆ AFPVOL_TM

#define AFPVOL_TM (1 << 23)

Supports TimeMachine

## ◆ AFPVOL_U8MNAMELEN

#define AFPVOL_U8MNAMELEN 255

AFP3 sepc

## ◆ AFPVOL_ULOWERMUPPER

#define AFPVOL_ULOWERMUPPER (AFPVOL_MTOULOWER | AFPVOL_UTOMUPPER)

## ◆ AFPVOL_UMLOWER

#define AFPVOL_UMLOWER (AFPVOL_MTOULOWER | AFPVOL_UTOMLOWER)

## ◆ AFPVOL_UMUPPER

#define AFPVOL_UMUPPER (AFPVOL_MTOUUPPER | AFPVOL_UTOMUPPER)

## ◆ AFPVOL_UNIX_PRIV

#define AFPVOL_UNIX_PRIV (1 << 17)

support unix privileges

## ◆ AFPVOL_UQUOTA

#define AFPVOL_UQUOTA (1<<4)

## ◆ AFPVOL_USTATFS

#define AFPVOL_USTATFS (1<<3)

## ◆ AFPVOL_UTOMLOWER

#define AFPVOL_UTOMLOWER (1 << 3)

## ◆ AFPVOL_UTOMUPPER

#define AFPVOL_UTOMUPPER (1 << 2)

## ◆ AFPVOL_UUPPERMLOWER

#define AFPVOL_UUPPERMLOWER (AFPVOL_MTOUUPPER | AFPVOL_UTOMLOWER)

## ◆ AFPVOLSIG_DEFAULT

#define AFPVOLSIG_DEFAULT AFPVOLSIG_FIX

## ◆ AFPVOLSIG_FIX

#define AFPVOLSIG_FIX 0x0002

fixed ids

## ◆ AFPVOLSIG_FLAT

#define AFPVOLSIG_FLAT 0x0001

flat fs

## ◆ AFPVOLSIG_VAR

#define AFPVOLSIG_VAR 0x0003

variable ids

## ◆ utf8_encoding

#define utf8_encoding | ( |  | obj | ) |

Value:
((obj)->afp_version >= 30)
obj
static AFPObj obj
Definition netatalk.c:69

## ◆ vol_chmod_opt

#define vol_chmod_opt | ( |  | vol | ) |

Value:
(((vol)->v_flags & AFPVOL_CHMOD_PRESERVE_ACL) ? O_NETATALK_ACL : \
((vol)->v_flags & AFPVOL_CHMOD_IGNORE) ? O_IGNORE : 0)
O_NETATALK_ACL
#define O_NETATALK_ACL
Definition acl.h:24
O_IGNORE
#define O_IGNORE
Definition acl.h:25
AFPVOL_CHMOD_IGNORE
#define AFPVOL_CHMOD_IGNORE
Definition include/atalk/volume.h:148
AFPVOL_CHMOD_PRESERVE_ACL
#define AFPVOL_CHMOD_PRESERVE_ACL
Definition include/atalk/volume.h:147
vol
Definition include/atalk/volume.h:33

## ◆ vol_inv_dots

#define vol_inv_dots | ( |  | vol | ) |

Value:
(((vol)->v_flags & AFPVOL_INV_DOTS) ? 1 : 0)
AFPVOL_INV_DOTS
#define AFPVOL_INV_DOTS
Definition include/atalk/volume.h:161

## ◆ vol_nodev

#define vol_nodev | ( |  | vol | ) |

Value:
(((vol)->v_flags & AFPVOL_NODEV) ? 1 : 0)
AFPVOL_NODEV
#define AFPVOL_NODEV
Definition include/atalk/volume.h:155

## ◆ vol_syml_opt

#define vol_syml_opt | ( |  | vol | ) |

Value:
(((vol)->v_flags & AFPVOL_FOLLOWSYM) ? 0 : O_NOFOLLOW)
AFPVOL_FOLLOWSYM
#define AFPVOL_FOLLOWSYM
Definition include/atalk/volume.h:166

## ◆ vol_unix_priv

#define vol_unix_priv | ( |  | vol | ) |

Value:
((vol)->v_obj->afp_version >= 30 && ((vol)->v_flags & AFPVOL_UNIX_PRIV))
AFPVOL_UNIX_PRIV
#define AFPVOL_UNIX_PRIV
Definition include/atalk/volume.h:154

## ◆ VOLPBIT_ATTR

#define VOLPBIT_ATTR 0

## ◆ VOLPBIT_ATTR_ACLS

#define VOLPBIT_ATTR_ACLS (1 << 11)

## ◆ VOLPBIT_ATTR_BLANKACCESS

#define VOLPBIT_ATTR_BLANKACCESS (1 << 4)

## ◆ VOLPBIT_ATTR_CASESENS

#define VOLPBIT_ATTR_CASESENS (1 << 12)

## ◆ VOLPBIT_ATTR_CATSEARCH

#define VOLPBIT_ATTR_CATSEARCH (1 << 3)

## ◆ VOLPBIT_ATTR_EXT_ATTRS

#define VOLPBIT_ATTR_EXT_ATTRS (1 << 10)

## ◆ VOLPBIT_ATTR_FILEID

#define VOLPBIT_ATTR_FILEID (1 << 2)

## ◆ VOLPBIT_ATTR_NONETIDS

#define VOLPBIT_ATTR_NONETIDS (1 << 7)

## ◆ VOLPBIT_ATTR_NOTFILEXCHG

#define VOLPBIT_ATTR_NOTFILEXCHG (1 << 9)

## ◆ VOLPBIT_ATTR_PASSWD

#define VOLPBIT_ATTR_PASSWD (1 << 1)

## ◆ VOLPBIT_ATTR_PRIVPARENT

#define VOLPBIT_ATTR_PRIVPARENT (1 << 8)

## ◆ VOLPBIT_ATTR_RO

#define VOLPBIT_ATTR_RO (1 << 0)

## ◆ VOLPBIT_ATTR_TM

#define VOLPBIT_ATTR_TM (1 << 13)

## ◆ VOLPBIT_ATTR_UNIXPRIV

#define VOLPBIT_ATTR_UNIXPRIV (1 << 5)

## ◆ VOLPBIT_ATTR_UTF8

#define VOLPBIT_ATTR_UTF8 (1 << 6)

## ◆ VOLPBIT_BDATE

#define VOLPBIT_BDATE 4

## ◆ VOLPBIT_BFREE

#define VOLPBIT_BFREE 6

## ◆ VOLPBIT_BSIZE

#define VOLPBIT_BSIZE 11

block size

## ◆ VOLPBIT_BTOTAL

#define VOLPBIT_BTOTAL 7

## ◆ VOLPBIT_CDATE

#define VOLPBIT_CDATE 2

## ◆ VOLPBIT_MDATE

#define VOLPBIT_MDATE 3

## ◆ VOLPBIT_NAME

#define VOLPBIT_NAME 8

## ◆ VOLPBIT_SIG

#define VOLPBIT_SIG 1

## ◆ VOLPBIT_VID

#define VOLPBIT_VID 5

## ◆ VOLPBIT_XBFREE

#define VOLPBIT_XBFREE 9

## ◆ VOLPBIT_XBTOTAL

#define VOLPBIT_XBTOTAL 10

## Typedef Documentation

## ◆ VolSpace

typedef uint64_t VolSpace

## Enumeration Type Documentation

## ◆ lv_flags_t

enum lv_flags_t

load_volumes() flags

Enumerator
LV_DEFAULT |
LV_ALL | Skip access checks
LV_FORCE | Reload even if unchanged