Annotation of src/lib/libukfs/ukfs.h, Revision 1.2
1.2 ! pooka 1: /* $NetBSD: ukfs.h,v 1.1 2008/07/29 13:17:41 pooka Exp $ */
1.1 pooka 2:
3: /*
4: * Copyright (c) 2007 Antti Kantee. All Rights Reserved.
5: *
6: * Development of this software was supported by the
7: * Finnish Cultural Foundation.
8: *
9: * Redistribution and use in source and binary forms, with or without
10: * modification, are permitted provided that the following conditions
11: * are met:
12: * 1. Redistributions of source code must retain the above copyright
13: * notice, this list of conditions and the following disclaimer.
14: * 2. Redistributions in binary form must reproduce the above copyright
15: * notice, this list of conditions and the following disclaimer in the
16: * documentation and/or other materials provided with the distribution.
17: *
18: * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS
19: * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
20: * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
21: * DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
22: * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
23: * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
24: * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
25: * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
26: * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
27: * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
28: * SUCH DAMAGE.
29: */
30:
31: #ifndef _RUMP_UKFS_H_
32: #define _RUMP_UKFS_H_
33:
1.2 ! pooka 34: #include <sys/types.h>
! 35:
1.1 pooka 36: #include <stdint.h>
37:
1.2 ! pooka 38: /* don't include NetBSD <sys/header.h> for portability */
1.1 pooka 39: struct vnode;
40: struct componentname;
41: struct stat;
42:
43: struct ukfs;
44:
45: #define UKFS_DEFAULTMP "/"
46:
47: #define UKFS_RELFLAG_NOUNMOUNT 0x01
48:
49: int ukfs_init(void);
50: struct ukfs *ukfs_mount(const char *, const char *, const char *,
51: int, void *, size_t);
52: void ukfs_release(struct ukfs *, int);
53:
54: int ukfs_getdents(struct ukfs *, const char *, off_t *,
55: uint8_t *, size_t);
56: ssize_t ukfs_read(struct ukfs *, const char *, off_t,
57: uint8_t *, size_t);
58: ssize_t ukfs_write(struct ukfs *, const char *, off_t,
59: uint8_t *, size_t);
60: ssize_t ukfs_readlink(struct ukfs *, const char *, char *, size_t);
61:
62: int ukfs_create(struct ukfs *, const char *, mode_t);
63: int ukfs_mkdir(struct ukfs *, const char *, mode_t);
64: int ukfs_mknod(struct ukfs *, const char *, mode_t, dev_t);
65: int ukfs_mkfifo(struct ukfs *, const char *, mode_t);
66: int ukfs_symlink(struct ukfs *, const char *, const char *);
67:
68: int ukfs_remove(struct ukfs *, const char *);
69: int ukfs_rmdir(struct ukfs *, const char *);
70:
71: int ukfs_link(struct ukfs *, const char *, const char *);
72: int ukfs_rename(struct ukfs *, const char *, const char *);
73:
74: int ukfs_chdir(struct ukfs *, const char *);
75:
76: int ukfs_stat(struct ukfs *, const char *, struct stat *);
77: int ukfs_lstat(struct ukfs *, const char *, struct stat *);
78:
79: int ukfs_chmod(struct ukfs *, const char *, mode_t);
80: int ukfs_lchmod(struct ukfs *, const char *, mode_t);
81: int ukfs_chown(struct ukfs *, const char *, uid_t, gid_t);
82: int ukfs_lchown(struct ukfs *, const char *, uid_t, gid_t);
83: int ukfs_chflags(struct ukfs *, const char *, u_long);
84: int ukfs_lchflags(struct ukfs *, const char *, u_long);
85:
86: int ukfs_utimes(struct ukfs *, const char *,
87: const struct timeval *);
88: int ukfs_lutimes(struct ukfs *, const char *,
89: const struct timeval *);
90:
91: struct mount *ukfs_getmp(struct ukfs *);
92: struct vnode *ukfs_getrvp(struct ukfs *);
93:
94: /* Utilities */
95: int ukfs_util_builddirs(struct ukfs *, const char *, mode_t);
96:
97: #endif /* _RUMP_UKFS_H_ */
CVSweb <webmaster@jp.NetBSD.org>