139bb6d1eSPeter Wemm /* $NetBSD: fsdb.h,v 1.2 1995/10/08 23:18:11 thorpej Exp $ */ 239bb6d1eSPeter Wemm 31de7b4b8SPedro F. Giffuni /*- 41de7b4b8SPedro F. Giffuni * SPDX-License-Identifier: BSD-3-Clause 51de7b4b8SPedro F. Giffuni * 639bb6d1eSPeter Wemm * Copyright (c) 1995 John T. Kohl 739bb6d1eSPeter Wemm * All rights reserved. 839bb6d1eSPeter Wemm * 939bb6d1eSPeter Wemm * Redistribution and use in source and binary forms, with or without 1039bb6d1eSPeter Wemm * modification, are permitted provided that the following conditions 1139bb6d1eSPeter Wemm * are met: 1239bb6d1eSPeter Wemm * 1. Redistributions of source code must retain the above copyright 1339bb6d1eSPeter Wemm * notice, this list of conditions and the following disclaimer. 1439bb6d1eSPeter Wemm * 2. Redistributions in binary form must reproduce the above copyright 1539bb6d1eSPeter Wemm * notice, this list of conditions and the following disclaimer in the 1639bb6d1eSPeter Wemm * documentation and/or other materials provided with the distribution. 1739bb6d1eSPeter Wemm * 3. The name of the author may not be used to endorse or promote products 1839bb6d1eSPeter Wemm * derived from this software without specific prior written permission. 1939bb6d1eSPeter Wemm * 2039bb6d1eSPeter Wemm * THIS SOFTWARE IS PROVIDED BY THE AUTHOR `AS IS'' AND ANY EXPRESS OR 2139bb6d1eSPeter Wemm * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 2239bb6d1eSPeter Wemm * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 2339bb6d1eSPeter Wemm * DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, 2439bb6d1eSPeter Wemm * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 2539bb6d1eSPeter Wemm * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 2639bb6d1eSPeter Wemm * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 2739bb6d1eSPeter Wemm * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, 2839bb6d1eSPeter Wemm * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN 2939bb6d1eSPeter Wemm * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 3039bb6d1eSPeter Wemm * POSSIBILITY OF SUCH DAMAGE. 3139bb6d1eSPeter Wemm */ 3239bb6d1eSPeter Wemm 33fffbc2a5SPawel Jakub Dawidek extern int blread(int fd, char *buf, ufs2_daddr_t blk, long size); 34599304a4SPoul-Henning Kamp extern void rwerror(const char *mesg, ufs2_daddr_t blk); 35599304a4SPoul-Henning Kamp extern int reply(const char *question); 3639bb6d1eSPeter Wemm 3739bb6d1eSPeter Wemm extern long dev_bsize; 3839bb6d1eSPeter Wemm extern long secsize; 3939bb6d1eSPeter Wemm extern int fsmodified; 4039bb6d1eSPeter Wemm extern int fsfd; 4139bb6d1eSPeter Wemm 4239bb6d1eSPeter Wemm struct cmdtable { 4339bb6d1eSPeter Wemm const char *cmd; 4439bb6d1eSPeter Wemm const char *helptxt; 4539bb6d1eSPeter Wemm unsigned int minargc; 4639bb6d1eSPeter Wemm unsigned int maxargc; 4736b8baa3SJoerg Wunsch unsigned int flags; 4836b8baa3SJoerg Wunsch #define FL_RO 0x0000 /* for symmetry */ 4936b8baa3SJoerg Wunsch #define FL_WR 0x0001 /* wants to write */ 50*d51bdf32SKirk McKusick #define FL_CWR 0x0002 /* wants to write critical data */ 51*d51bdf32SKirk McKusick #define FL_ST 0x0003 /* resplit final string if argc > maxargc */ 520638cc1aSWarner Losh int (*handler)(int argc, char *argv[]); 5339bb6d1eSPeter Wemm }; 545cc52631SKirk McKusick extern struct inode curip; 551c85e6a3SKirk McKusick extern union dinode *curinode; 5639bb6d1eSPeter Wemm extern ino_t curinum; 5739bb6d1eSPeter Wemm 580638cc1aSWarner Losh int argcount(struct cmdtable *cmdp, int argc, char *argv[]); 590638cc1aSWarner Losh char **crack(char *line, int *argc); 600638cc1aSWarner Losh char **recrack(char *line, int *argc, int argc_max); 611c85e6a3SKirk McKusick void printstat(const char *cp, ino_t inum, union dinode *dp); 620638cc1aSWarner Losh int printactive(int doblocks); 630638cc1aSWarner Losh int checkactive(void); 640638cc1aSWarner Losh int checkactivedir(void); 65