2 * Copyright 2000, International Business Machines Corporation and others.
5 * This software has been released under the terms of the IBM Public
6 * License. For details, see the LICENSE file in the top-level source
7 * directory or online at http://www.openafs.org/dl/license10.html
14 /* We don't include Unix afssyscalls.h, so: */
15 #define VALID_INO(I) ((I != (__int64)-1) && (I != (__int64)0))
17 /* minimum size of string to hand to PrintInode */
18 #define AFS_INO_STR_LENGTH 32
19 typedef char afs_ino_str_t[AFS_INO_STR_LENGTH];
21 char *PrintInode(char *s, Inode ino);
23 /* Basic file operations */
24 extern FD_t nt_open(char *name, int flags, int mode);
25 extern int nt_close(FD_t fd);
26 extern int nt_write(FD_t fd, char *buf, size_t size);
27 extern int nt_read(FD_t fd, char *buf, size_t size);
28 extern int nt_size(FD_t fd);
29 extern int nt_getFileCreationTime(FD_t fd, FILETIME * ftime);
30 extern int nt_setFileCreationTime(FD_t fd, FILETIME * ftime);
31 extern int nt_sync(int cdrive);
32 extern int nt_ftruncate(FD_t fd, int len);
33 extern int nt_fsync(FD_t fd);
34 extern int nt_seek(FD_t fd, int off, int where);
35 extern FILE *nt_fdopen(IHandle_t * h, char *fdperms);
36 extern int nt_unlink(char *name);
38 /* Inode operations */
39 extern Inode nt_MakeSpecIno(int type);
40 extern Inode nt_icreate(IHandle_t * h, char *p, afs_uint32 p1, afs_uint32 p2,
41 afs_uint32 p3, afs_uint32 p4);
42 extern FD_t nt_iopen(IHandle_t * h);
43 extern int nt_irelease(IHandle_t * h);
44 int nt_iread(IHandle_t * h, int offset, char *buf, int size);
45 int nt_iwrite(IHandle_t * h, int offset, char *buf, int size);
46 extern int nt_dec(IHandle_t * h, Inode ino, int p1);
47 extern int nt_inc(IHandle_t * h, Inode ino, int p1);
48 extern int nt_GetLinkCount(FdHandle_t * h, Inode ino, int lockit);
49 int nt_ListAFSFiles(char *dev,
50 int (*write_fun) (FILE * fp, struct ViceInodeInfo *,
51 char *dir, char *file), FILE * fp,
52 int (*judge_fun) (struct ViceInodeInfo *, afs_uint32 vid, void *rock),
53 afs_uint32 singleVolumeNumber, void *rock);
54 int ListViceInodes(char *devname, char *mountedOn, FILE *inodeFile,
55 int (*judgeInode) (struct ViceInodeInfo * info, afs_uint32 vid, void *rock),
56 afs_uint32 singleVolumeNumber, int *forcep, int forceR,
57 char *wpath, void *rock);
60 int nt_HandleToName(char *name, IHandle_t * h);
61 char *nt_HandleToVolDir(char *name, IHandle_t * h);
65 #endif /* _NTOPS_H_ */