[BACK]Return to ukfs.h CVS log [TXT][DIR] Up to [cvs.NetBSD.org] / src / lib / libukfs

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>