netatalk  4.6.0
Free and Open Source Apple Filing Protocol (AFP) Server
Loading...
Searching...
No Matches
afpd/file.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 AFPD_FILE_H
25#define AFPD_FILE_H 1
26
27#include <arpa/inet.h>
28#include <sys/param.h>
29/*#include <sys/stat.h>*/ /* including it here causes some confusion */
30
31#include <atalk/adouble.h>
32#include <atalk/globals.h>
33
34#include "directory.h"
35#include "volume.h"
36
37extern const uint8_t ufinderi[];
38
39#define FILPBIT_ATTR 0
40#define FILPBIT_PDID 1
41#define FILPBIT_CDATE 2
42#define FILPBIT_MDATE 3
43#define FILPBIT_BDATE 4
44#define FILPBIT_FINFO 5
45#define FILPBIT_LNAME 6
46#define FILPBIT_SNAME 7
47#define FILPBIT_FNUM 8
48#define FILPBIT_DFLEN 9
49#define FILPBIT_RFLEN 10
50#define FILPBIT_EXTDFLEN 11
51#define FILPBIT_PDINFO 13
52#define FILPBIT_EXTRFLEN 14
53#define FILPBIT_UNIXPR 15
54
55#define kTextEncodingUTF8 UINT32_C(0x08000103)
56
62typedef enum {
165
166extern char *set_name(const struct vol *, char *, cnid_t, char *, cnid_t,
167 bool);
168
169extern struct extmap *getextmap(const char *);
170extern struct extmap *getdefextmap(void);
171
172extern int getfilparams(const AFPObj *obj, struct vol *, uint16_t,
173 struct path *,
174 struct dir *, char *buf, size_t *, int skip_fork_check);
175extern int setfilparams(const AFPObj *obj, struct vol *, struct path *,
176 uint16_t, char *);
177extern int renamefile(struct vol *, struct dir *, int, char *, char *, char *,
178 struct adouble *);
179extern int copyfile(struct vol *, struct vol *, struct dir *, int, char *,
180 char *, char *, struct adouble *, int);
181extern int deletefile(const struct vol *, int, char *, int, cnid_t *);
182
183extern int getmetadata(const AFPObj *obj, struct vol *vol, uint16_t bitmap,
184 struct path *path,
185 struct dir *dir, char *buf, size_t *buflen, struct adouble *adp);
186
187extern void *get_finderinfo(const struct vol *, const char *, struct adouble *,
188 void *, int);
189
190extern size_t mtoUTF8(const struct vol *, const char *, size_t, char *, size_t);
191extern int copy_path_name(const struct vol *, char *, char *i);
192
193extern uint32_t get_id(struct vol *,
194 struct adouble *,
195 const struct stat *,
196 cnid_t,
197 const char *,
198 int);
199
200/* FP functions */
201int afp_exchangefiles(AFPObj *obj, char *ibuf, size_t ibuflen, char *rbuf,
202 size_t *rbuflen);
203int afp_setfilparams(AFPObj *obj, char *ibuf, size_t ibuflen, char *rbuf,
204 size_t *rbuflen);
205int afp_copyfile(AFPObj *obj, char *ibuf, size_t ibuflen, char *rbuf,
206 size_t *rbuflen);
207int afp_createfile(AFPObj *obj, char *ibuf, size_t ibuflen, char *rbuf,
208 size_t *rbuflen);
209int afp_createid(AFPObj *obj, char *ibuf, size_t ibuflen, char *rbuf,
210 size_t *rbuflen);
211int afp_resolveid(AFPObj *obj, char *ibuf, size_t ibuflen, char *rbuf,
212 size_t *rbuflen);
213int afp_deleteid(AFPObj *obj, char *ibuf, size_t ibuflen, char *rbuf,
214 size_t *rbuflen);
215
216#endif
Part of Netatalk's AppleDouble implementatation.
uint32_t cnid_t
Definition adouble.h:157
int setfilparams(const AFPObj *obj, struct vol *vol, struct path *path, uint16_t f_bitmap, char *buf)
Definition afpd/file.c:1330
int renamefile(struct vol *vol, struct dir *ddir, int sdir_fd, char *src, char *dst, char *newname, struct adouble *adp)
Rename a file, including its resource fork and mac name.
Definition afpd/file.c:1801
size_t mtoUTF8(const struct vol *vol, const char *src, size_t srclen, char *dest, size_t destlen)
Definition afpd/file.c:1886
int afp_createid(AFPObj *obj, char *ibuf, size_t ibuflen, char *rbuf, size_t *rbuflen)
Definition afpd/file.c:2513
int copy_path_name(const struct vol *vol, char *newname, char *ibuf)
Definition afpd/file.c:1900
int afp_createfile(AFPObj *obj, char *ibuf, size_t ibuflen, char *rbuf, size_t *rbuflen)
Definition afpd/file.c:1052
void * get_finderinfo(const struct vol *vol, const char *upath, struct adouble *adp, void *data, int islink)
Definition afpd/file.c:200
int copyfile(struct vol *s_vol, struct vol *d_vol, struct dir *d_dir, int sfd, char *src, char *dst, char *newname, struct adouble *adp, int held)
Definition afpd/file.c:2157
int getmetadata(const AFPObj *obj, struct vol *vol, uint16_t bitmap, struct path *path, struct dir *dir, char *buf, size_t *buflen, struct adouble *adp)
Definition afpd/file.c:449
int afp_resolveid(AFPObj *obj, char *ibuf, size_t ibuflen, char *rbuf, size_t *rbuflen)
Definition afpd/file.c:2669
int afp_setfilparams(AFPObj *obj, char *ibuf, size_t ibuflen, char *rbuf, size_t *rbuflen)
Definition afpd/file.c:1247
int afp_copyfile(AFPObj *obj, char *ibuf, size_t ibuflen, char *rbuf, size_t *rbuflen)
Definition afpd/file.c:1965
int getfilparams(const AFPObj *obj, struct vol *vol, uint16_t bitmap, struct path *path, struct dir *dir, char *buf, size_t *buflen, int skip_fork_check)
Definition afpd/file.c:982
int afp_deleteid(AFPObj *obj, char *ibuf, size_t ibuflen, char *rbuf, size_t *rbuflen)
Definition afpd/file.c:2813
int afp_exchangefiles(AFPObj *obj, char *ibuf, size_t ibuflen, char *rbuf, size_t *rbuflen)
Definition afpd/file.c:2987
const uint8_t ufinderi[ADEDLEN_FINDERI]
Definition afpd/file.c:69
char * set_name(const struct vol *vol, char *data, cnid_t pid, char *name, cnid_t id, bool utf8)
Definition afpd/file.c:267
uint32_t get_id(struct vol *vol, struct adouble *adp, const struct stat *st, const cnid_t did, const char *upath, const int len)
Get CNID for did/upath args both from database and adouble file.
Definition afpd/file.c:354
int deletefile(const struct vol *vol, int dirfd, char *file, int checkAttrib, cnid_t *idp)
Definition afpd/file.c:2367
struct extmap * getdefextmap(void)
Definition netatalk_conf.c:2509
kTextEncoding_t
Definition afpd/file.h:62
@ kTextEncodingDOSGreek1
Definition afpd/file.h:132
@ kTextEncodingWindowsHebrew
Definition afpd/file.h:155
@ kTextEncodingWindowsGreek
Definition afpd/file.h:153
@ kTextEncodingMacChineseSimp
Definition afpd/file.h:87
@ kTextEncodingMacFarsi
Definition afpd/file.h:104
@ kTextEncodingMacVietnamese
Definition afpd/file.h:92
@ kTextEncodingDOSHebrew
Definition afpd/file.h:138
@ kTextEncodingDOSIcelandic
Definition afpd/file.h:137
@ kTextEncodingMacDevanagari
Definition afpd/file.h:71
@ kTextEncodingMacMongolian
Definition afpd/file.h:89
@ kTextEncodingDOSKorean
Definition afpd/file.h:147
@ kTextEncodingWindowsLatin2
Definition afpd/file.h:151
@ kTextEncodingMacGurmukhi
Definition afpd/file.h:72
@ kTextEncodingDOSGreek
Definition afpd/file.h:129
@ kTextEncodingMacGeorgian
Definition afpd/file.h:85
@ kTextEncodingMacEthiopic
Definition afpd/file.h:90
@ kTextEncodingISOLatin2
Definition afpd/file.h:116
@ kTextEncodingISOLatin6
Definition afpd/file.h:124
@ kTextEncodingMacInuit
Definition afpd/file.h:106
@ kTextEncodingMacArabic
Definition afpd/file.h:67
@ kTextEncodingMacKhmer
Definition afpd/file.h:82
@ kTextEncodingDOSThai
Definition afpd/file.h:144
@ kTextEncodingISOLatin9
Definition afpd/file.h:127
@ kTextEncodingMacIcelandic
Definition afpd/file.h:98
@ kTextEncodingWindowsVietnamese
Definition afpd/file.h:158
@ kTextEncodingDOSLatin1
Definition afpd/file.h:131
@ kTextEncodingISOLatin7
Definition afpd/file.h:125
@ kTextEncodingMacBengali
Definition afpd/file.h:75
@ kTextEncodingDOSLatin2
Definition afpd/file.h:133
@ kTextEncodingMacGaelic
Definition afpd/file.h:101
@ kTextEncodingISOLatinHebrew
Definition afpd/file.h:122
@ kTextEncodingMacMalayalam
Definition afpd/file.h:79
@ kTextEncodingDOSCanadianFrench
Definition afpd/file.h:139
@ kTextEncodingISOLatin1
Definition afpd/file.h:115
@ kTextEncodingMacCeltic
Definition afpd/file.h:100
@ kTextEncodingMacBurmese
Definition afpd/file.h:81
@ kTextEncodingWindowsKoreanJohab
Definition afpd/file.h:159
@ kTextEncodingDOSArabic
Definition afpd/file.h:140
@ kTextEncodingUnicodeV3_0
Definition afpd/file.h:114
@ kTextEncodingISOLatin4
Definition afpd/file.h:118
@ kTextEncodingJIS_X0208_90
Definition afpd/file.h:163
@ kTextEncodingWindowsBalticRim
Definition afpd/file.h:157
@ kTextEncodingUS_ASCII
Definition afpd/file.h:160
@ kTextEncodingMacJapanese
Definition afpd/file.h:64
@ kTextEncodingMacHFS
Definition afpd/file.h:108
@ kTextEncodingDOSGreek2
Definition afpd/file.h:143
@ kTextEncodingMacSymbol
Definition afpd/file.h:94
@ kTextEncodingISOLatinGreek
Definition afpd/file.h:121
@ kTextEncodingWindowsANSI
Definition afpd/file.h:150
@ kTextEncodingMacTurkish
Definition afpd/file.h:96
@ kTextEncodingJIS_X0201_76
Definition afpd/file.h:161
@ kTextEncodingMacArmenian
Definition afpd/file.h:86
@ kTextEncodingISOLatinCyrillic
Definition afpd/file.h:119
@ kTextEncodingMacCyrillic
Definition afpd/file.h:70
@ kTextEncodingMacLaotian
Definition afpd/file.h:84
@ kTextEncodingISOLatin8
Definition afpd/file.h:126
@ kTextEncodingMacHebrew
Definition afpd/file.h:68
@ kTextEncodingMacCroatian
Definition afpd/file.h:97
@ kTextEncodingJIS_X0208_83
Definition afpd/file.h:162
@ kTextEncodingDOSLatinUS
Definition afpd/file.h:128
@ kTextEncodingDOSPortuguese
Definition afpd/file.h:136
@ kTextEncodingISOLatinArabic
Definition afpd/file.h:120
@ kTextEncodingMacRoman
Definition afpd/file.h:63
@ kTextEncodingMacVT100
Definition afpd/file.h:107
@ kTextEncodingMacTamil
Definition afpd/file.h:76
@ kTextEncodingWindowsLatin5
Definition afpd/file.h:154
@ kTextEncodingMacKorean
Definition afpd/file.h:66
@ kTextEncodingMacExtArabic
Definition afpd/file.h:93
@ kTextEncodingDOSCyrillic
Definition afpd/file.h:134
@ kTextEncodingWindowsLatin1
Definition afpd/file.h:149
@ kTextEncodingMacSinhalese
Definition afpd/file.h:80
@ kTextEncodingDOSTurkish
Definition afpd/file.h:135
@ kTextEncodingMacGreek
Definition afpd/file.h:69
@ kTextEncodingDOSChineseTrad
Definition afpd/file.h:148
@ kTextEncodingMacUnicode
Definition afpd/file.h:103
@ kTextEncodingMacGujarati
Definition afpd/file.h:73
@ kTextEncodingMacTibetan
Definition afpd/file.h:88
@ kTextEncodingMacUkrainian
Definition afpd/file.h:105
@ kTextEncodingMacRomanian
Definition afpd/file.h:99
@ kTextEncodingMacThai
Definition afpd/file.h:83
@ kTextEncodingDOSChineseSimplif
Definition afpd/file.h:146
@ kTextEncodingDOSJapanese
Definition afpd/file.h:145
@ kTextEncodingWindowsArabic
Definition afpd/file.h:156
@ kTextEncodingMacTelugu
Definition afpd/file.h:77
@ kTextEncodingMacDingbats
Definition afpd/file.h:95
@ kTextEncodingMacOriya
Definition afpd/file.h:74
@ kTextEncodingDOSRussian
Definition afpd/file.h:142
@ kTextEncodingUnicodeV1_1
Definition afpd/file.h:110
@ kTextEncodingUnicodeV2_1
Definition afpd/file.h:113
@ kTextEncodingMacChineseTrad
Definition afpd/file.h:65
@ kTextEncodingMacCentralEurRoman
Definition afpd/file.h:91
@ kTextEncodingDOSBalticRim
Definition afpd/file.h:130
@ kTextEncodingMacKannada
Definition afpd/file.h:78
@ kTextEncodingWindowsCyrillic
Definition afpd/file.h:152
@ kTextEncodingISOLatin5
Definition afpd/file.h:123
@ kTextEncodingUnicodeV2_0
Definition afpd/file.h:112
@ kTextEncodingDOSNordic
Definition afpd/file.h:141
@ kTextEncodingMacKeyboardGlyphs
Definition afpd/file.h:102
@ kTextEncodingISO10646_1993
Definition afpd/file.h:111
@ kTextEncodingISOLatin3
Definition afpd/file.h:117
@ kTextEncodingUnicodeDefault
Definition afpd/file.h:109
struct extmap * getextmap(const char *)
Definition netatalk_conf.c:2485
static char buf[MAXPATHLEN+1]
Definition afppasswd.c:85
Definition globals.h:190
Definition adouble.h:198
Definition include/atalk/directory.h:72
Definition include/atalk/volume.h:27
Definition include/atalk/directory.h:140
Definition include/atalk/volume.h:33