netatalk
4.4.3
Free and Open Source Apple Filing Protocol (AFP) Server
Toggle main menu visibility
Loading...
Searching...
No Matches
include/atalk/directory.h
Go to the documentation of this file.
1
/*
2
* Copyright (c) 1990,1991 Regents of The University of Michigan.
3
* All Rights Reserved.
4
*
5
* Permission to use, copy, modify, and distribute this software and
6
* its documentation for any purpose and without fee is hereby granted,
7
* provided that the above copyright notice appears in all copies and
8
* that both that copyright notice and this permission notice appear
9
* in supporting documentation, and that the name of The University
10
* of Michigan not be used in advertising or publicity pertaining to
11
* distribution of the software without specific, written prior
12
* permission. This software is supplied as is without expressed or
13
* implied warranties of any kind.
14
*
15
* Research Systems Unix Group
16
* The University of Michigan
17
* c/o Mike Clark
18
* 535 W. William Street
19
* Ann Arbor, Michigan
20
* +1-313-763-0525
21
* netatalk@itd.umich.edu
22
*/
23
24
#ifndef ATALK_DIRECTORY_H
25
#define ATALK_DIRECTORY_H 1
26
27
#include <arpa/inet.h>
28
#include <dirent.h>
29
#include <stdint.h>
30
#include <sys/types.h>
31
32
#include <
bstrlib.h
>
33
34
#include <
atalk/cnid.h
>
35
#include <
atalk/queue.h
>
36
#include <
atalk/unicode.h
>
37
38
/* setgid directories */
39
#ifndef DIRBITS
40
# define DIRBITS S_ISGID
41
#endif
/* DIRBITS */
42
43
/* reserved directory id's */
44
#define DIRDID_ROOT_PARENT htonl(1)
45
#define DIRDID_ROOT htonl(2)
46
47
/* struct dir.d_flags */
48
#define DIRF_FSMASK (3<<0)
49
#define DIRF_NOFS (0<<0)
50
#define DIRF_UFS (1<<1)
51
#define DIRF_ISFILE (1<<3)
52
#define DIRF_OFFCNT (1<<4)
53
#define DIRF_CNID (1<<5)
54
55
struct
dir
{
56
bstring
d_fullpath
;
57
/* be careful here! if d_m_name == d_u_name, d_u_name
58
* will just point to the same storage as d_m_name !! */
59
bstring
d_m_name
;
60
bstring
d_u_name
;
61
ucs2_t
*
d_m_name_ucs2
;
62
qnode_t
*
qidx_node
;
63
time_t
d_ctime
;
65
int
d_flags
;
66
cnid_t
d_pdid
;
67
cnid_t
d_did
;
68
uint32_t
d_offcnt
;
69
uint16_t
d_vid
;
71
uint32_t
d_rights_cache
;
75
/* Stuff used in the dircache */
76
time_t
dcache_ctime
;
78
ino_t
dcache_ino
;
80
};
81
82
struct
path
{
83
int
m_type
;
84
char
*
m_name
;
85
char
*
u_name
;
86
cnid_t
id
;
87
struct
dir
*
d_dir
;
88
int
st_valid
;
89
int
st_errno
;
90
struct
stat
st
;
91
};
92
93
static
inline
int
path_isadir
(
struct
path
*o_path)
94
{
95
return
o_path->
d_dir
!= NULL;
96
#if 0
97
return
o_path->
m_name
==
'\0'
||
/* we are in a it */
98
!o_path->
st_valid
||
/* in cache but we can't chdir in it */
99
/* not in cache and can't chdir */
100
(!o_path->
st_errno
&& S_ISDIR(o_path->
st
.st_mode));
101
#endif
102
}
103
104
/* directory.c */
105
extern
struct
dir
rootParent
;
106
107
#endif
/* ATALK_DIRECTORY_H */
cnid_t
uint32_t cnid_t
Definition
adouble.h:156
bstrlib.h
C implementaion of bstring functions.
bstring
struct tagbstring * bstring
Definition
bstrlib.h:82
cnid.h
rootParent
struct dir rootParent
Definition
directory.c:62
path_isadir
static int path_isadir(struct path *o_path)
Definition
include/atalk/directory.h:93
queue.h
qnode_t
struct qnode qnode_t
dir
Definition
include/atalk/directory.h:55
dir::d_ctime
time_t d_ctime
Definition
include/atalk/directory.h:63
dir::d_vid
uint16_t d_vid
Definition
include/atalk/directory.h:69
dir::dcache_ctime
time_t dcache_ctime
Definition
include/atalk/directory.h:76
dir::dcache_ino
ino_t dcache_ino
Definition
include/atalk/directory.h:78
dir::d_did
cnid_t d_did
Definition
include/atalk/directory.h:67
dir::qidx_node
qnode_t * qidx_node
Definition
include/atalk/directory.h:62
dir::d_fullpath
bstring d_fullpath
Definition
include/atalk/directory.h:56
dir::d_m_name_ucs2
ucs2_t * d_m_name_ucs2
Definition
include/atalk/directory.h:61
dir::d_rights_cache
uint32_t d_rights_cache
Definition
include/atalk/directory.h:71
dir::d_flags
int d_flags
Definition
include/atalk/directory.h:65
dir::d_offcnt
uint32_t d_offcnt
Definition
include/atalk/directory.h:68
dir::d_m_name
bstring d_m_name
Definition
include/atalk/directory.h:59
dir::d_u_name
bstring d_u_name
Definition
include/atalk/directory.h:60
dir::d_pdid
cnid_t d_pdid
Definition
include/atalk/directory.h:66
path
Definition
include/atalk/directory.h:82
path::u_name
char * u_name
Definition
include/atalk/directory.h:85
path::st_valid
int st_valid
Definition
include/atalk/directory.h:88
path::st
struct stat st
Definition
include/atalk/directory.h:90
path::m_type
int m_type
Definition
include/atalk/directory.h:83
path::st_errno
int st_errno
Definition
include/atalk/directory.h:89
path::id
cnid_t id
Definition
include/atalk/directory.h:86
path::d_dir
struct dir * d_dir
Definition
include/atalk/directory.h:87
path::m_name
char * m_name
Definition
include/atalk/directory.h:84
unicode.h
ucs2_t
#define ucs2_t
Definition
unicode.h:8
include
atalk
directory.h
Generated by
1.17.0