1*fdb1645dShannken /* $NetBSD: v7fs_file.h,v 1.3 2022/02/11 10:55:15 hannken Exp $ */ 2ed990ef3Such 3ed990ef3Such /*- 4ed990ef3Such * Copyright (c) 2011 The NetBSD Foundation, Inc. 5ed990ef3Such * All rights reserved. 6ed990ef3Such * 7ed990ef3Such * This code is derived from software contributed to The NetBSD Foundation 8ed990ef3Such * by UCHIYAMA Yasushi. 9ed990ef3Such * 10ed990ef3Such * Redistribution and use in source and binary forms, with or without 11ed990ef3Such * modification, are permitted provided that the following conditions 12ed990ef3Such * are met: 13ed990ef3Such * 1. Redistributions of source code must retain the above copyright 14ed990ef3Such * notice, this list of conditions and the following disclaimer. 15ed990ef3Such * 2. Redistributions in binary form must reproduce the above copyright 16ed990ef3Such * notice, this list of conditions and the following disclaimer in the 17ed990ef3Such * documentation and/or other materials provided with the distribution. 18ed990ef3Such * 19ed990ef3Such * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS 20ed990ef3Such * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED 21ed990ef3Such * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 22ed990ef3Such * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS 23ed990ef3Such * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 24ed990ef3Such * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 25ed990ef3Such * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 26ed990ef3Such * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 27ed990ef3Such * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 28ed990ef3Such * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 29ed990ef3Such * POSSIBILITY OF SUCH DAMAGE. 30ed990ef3Such */ 31ed990ef3Such 32ed990ef3Such #ifndef _V7FS_FILE_H_ 33ed990ef3Such #define _V7FS_FILE_H_ 34ed990ef3Such 35ed990ef3Such struct v7fs_lookup_arg { 36ed990ef3Such const char *name; 37ed990ef3Such char *buf; 38ed990ef3Such v7fs_ino_t inode_number; 39ed990ef3Such struct v7fs_dirent *replace; 40ed990ef3Such }; 41ed990ef3Such 42ed990ef3Such __BEGIN_DECLS 43ed990ef3Such /* core */ 44ed990ef3Such int v7fs_file_lookup_by_name(struct v7fs_self *, struct v7fs_inode *, 45*fdb1645dShannken const char*, size_t, v7fs_ino_t *); 46ed990ef3Such int v7fs_file_allocate(struct v7fs_self *, struct v7fs_inode *, const char *, 47*fdb1645dShannken size_t, struct v7fs_fileattr *, v7fs_ino_t *); 48*fdb1645dShannken int v7fs_file_deallocate(struct v7fs_self *, struct v7fs_inode *, const char *, 49*fdb1645dShannken size_t); 50ed990ef3Such int v7fs_directory_add_entry(struct v7fs_self *,struct v7fs_inode *, v7fs_ino_t, 51*fdb1645dShannken const char *, size_t); 52ed990ef3Such int v7fs_directory_remove_entry(struct v7fs_self *,struct v7fs_inode *, 53*fdb1645dShannken const char *, size_t); 54ed990ef3Such 55ed990ef3Such /* util */ 56ed990ef3Such int v7fs_file_rename(struct v7fs_self *, struct v7fs_inode *, const char *, 57*fdb1645dShannken size_t, struct v7fs_inode *, const char *, size_t); 58ed990ef3Such int v7fs_directory_replace_entry(struct v7fs_self *, struct v7fs_inode *, 59ed990ef3Such const char *, v7fs_ino_t); 60ed990ef3Such int v7fs_file_link(struct v7fs_self *, struct v7fs_inode *, struct v7fs_inode *, 61*fdb1645dShannken const char *, size_t); 62ed990ef3Such bool v7fs_file_lookup_by_number(struct v7fs_self *, struct v7fs_inode *, 63ed990ef3Such v7fs_ino_t, char *); 6438172e6aSuch int v7fs_file_symlink(struct v7fs_self *, struct v7fs_inode *, const char *); 65ed990ef3Such __END_DECLS 66ed990ef3Such #endif /*!_V7FS_INODE_H_ */ 67