1 1.29 riastrad /* $NetBSD: extern.h,v 1.29 2023/07/04 20:40:53 riastradh Exp $ */ 2 1.3 cgd 3 1.1 cgd /* 4 1.2 cgd * Copyright (c) 1994 James A. Jegers 5 1.1 cgd * All rights reserved. 6 1.1 cgd * 7 1.1 cgd * Redistribution and use in source and binary forms, with or without 8 1.1 cgd * modification, are permitted provided that the following conditions 9 1.1 cgd * are met: 10 1.1 cgd * 1. Redistributions of source code must retain the above copyright 11 1.1 cgd * notice, this list of conditions and the following disclaimer. 12 1.2 cgd * 2. The name of the author may not be used to endorse or promote products 13 1.1 cgd * derived from this software without specific prior written permission 14 1.1 cgd * 15 1.1 cgd * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR 16 1.1 cgd * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES 17 1.1 cgd * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. 18 1.1 cgd * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, 19 1.1 cgd * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 20 1.1 cgd * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 21 1.1 cgd * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 22 1.1 cgd * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 23 1.1 cgd * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF 24 1.1 cgd * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 25 1.1 cgd */ 26 1.1 cgd 27 1.21 xtraeme void adjust(struct inodesc *, int); 28 1.21 xtraeme daddr_t allocblk(long); 29 1.21 xtraeme ino_t allocdir(ino_t, ino_t, int); 30 1.23 simonb ino_t allocino(ino_t, int); 31 1.22 christos void blkerror(ino_t, const char *, daddr_t); 32 1.21 xtraeme int bread(int, char *, daddr_t, long); 33 1.21 xtraeme void bufinit(void); 34 1.21 xtraeme void bwrite(int, char *, daddr_t, long); 35 1.21 xtraeme void cacheino(union dinode *, ino_t); 36 1.22 christos int changeino(ino_t, const char *, ino_t); 37 1.21 xtraeme int chkrange(daddr_t, int); 38 1.27 christos void ckfini(int); 39 1.21 xtraeme int ckinode(union dinode *, struct inodesc *); 40 1.21 xtraeme int clearentry(struct inodesc *); 41 1.22 christos void clri(struct inodesc *, const char *, int); 42 1.21 xtraeme int cmpsblks(const struct fs *, struct fs *); 43 1.21 xtraeme int cmpsblks42(const struct fs *, struct fs *); 44 1.21 xtraeme int cmpsblks44(const struct fs *, struct fs *); 45 1.28 chs void cvt_magic(struct fs *); 46 1.21 xtraeme union dinode * getnextinode(ino_t); 47 1.22 christos void direrror(ino_t, const char *); 48 1.21 xtraeme int dirscan(struct inodesc *); 49 1.22 christos int dofix(struct inodesc *, const char *); 50 1.22 christos void fileerror(ino_t, ino_t, const char *); 51 1.21 xtraeme int findino(struct inodesc *); 52 1.21 xtraeme int findname(struct inodesc *); 53 1.21 xtraeme void flush(int, struct bufarea *); 54 1.21 xtraeme void freeblk(daddr_t, long); 55 1.21 xtraeme void freeino(ino_t); 56 1.21 xtraeme void freeinodebuf(void); 57 1.21 xtraeme int ftypeok(union dinode *); 58 1.21 xtraeme void getblk(struct bufarea *, daddr_t, long); 59 1.21 xtraeme struct bufarea *getdatablk(daddr_t, long); 60 1.21 xtraeme struct inoinfo *getinoinfo(ino_t); 61 1.21 xtraeme union dinode *ginode(ino_t); 62 1.21 xtraeme void getpathname(char *, size_t, ino_t, ino_t); 63 1.21 xtraeme void infohandler(int sig); 64 1.21 xtraeme void inocleanup(void); 65 1.21 xtraeme void inodirty(void); 66 1.21 xtraeme struct inostat *inoinfo(ino_t); 67 1.21 xtraeme int linkup(ino_t, ino_t, char *); 68 1.22 christos int makeentry(ino_t, ino_t, const char *); 69 1.21 xtraeme void pass1(void); 70 1.21 xtraeme void pass1b(void); 71 1.21 xtraeme int pass1check(struct inodesc *); 72 1.21 xtraeme void pass2(void); 73 1.21 xtraeme void pass3(void); 74 1.21 xtraeme void pass4(void); 75 1.21 xtraeme int pass4check(struct inodesc *); 76 1.21 xtraeme void pass5(void); 77 1.26 bouyer void pass6(void); 78 1.21 xtraeme void pinode(ino_t); 79 1.21 xtraeme void propagate(ino_t); 80 1.22 christos int reply(const char *); 81 1.21 xtraeme void setinodebuf(ino_t); 82 1.24 bouyer int setup(const char *, const char *); 83 1.26 bouyer ssize_t readblk(union dinode *, off_t, struct bufarea **); 84 1.26 bouyer struct bufarea *expandfile(union dinode *); 85 1.26 bouyer 86 1.26 bouyer struct uquot * find_uquot(struct uquot_hash *, uint32_t, int); 87 1.26 bouyer void remove_uquot(struct uquot_hash *,struct uquot *); 88 1.26 bouyer void update_uquot(ino_t, uid_t, gid_t, int64_t, int64_t); 89 1.26 bouyer int is_quota_inode(ino_t); 90 1.26 bouyer 91 1.25 bouyer int check_wapbl(void); 92 1.23 simonb void replay_wapbl(void); 93 1.23 simonb void cleanup_wapbl(void); 94 1.23 simonb int read_wapbl(char *, long, daddr_t); 95 1.23 simonb int is_journal_inode(ino_t); 96 1.23 simonb 97 1.26 bouyer void quota2_create_inode(struct fs *, int); 98 1.26 bouyer int quota2_check_inode(int); 99 1.26 bouyer int quota2_check_usage(int); 100 1.26 bouyer int quota2_check_doquota(void); 101 1.26 bouyer int quota2_alloc_quota(union dinode *, struct bufarea *, 102 1.26 bouyer uid_t, uint64_t, uint64_t); 103 1.26 bouyer 104 1.23 simonb void swap_cg(struct cg *, struct cg *); 105 1.23 simonb void copyback_cg(struct bufarea *); 106 1.23 simonb void sb_oldfscompat_write(struct fs *, struct fs *); 107 1.23 simonb void sb_oldfscompat_read(struct fs *, struct fs **); 108