version 1.6, 2009/06/07 03:10:09 |
version 1.7, 2009/07/08 16:04:00 |
|
|
/* $OpenBSD$ */ |
/* |
|
* Copyright (c) 2009 Todd C. Miller <Todd.Miller@courtesan.com> |
/*- |
|
* Copyright (c) 1988, 1993 |
|
* The Regents of the University of California. All rights reserved. |
|
* |
* |
* Redistribution and use in source and binary forms, with or without |
* Permission to use, copy, modify, and distribute this software for any |
* modification, are permitted provided that the following conditions |
* purpose with or without fee is hereby granted, provided that the above |
* are met: |
* copyright notice and this permission notice appear in all copies. |
* 1. Redistributions of source code must retain the above copyright |
|
* notice, this list of conditions and the following disclaimer. |
|
* 2. Redistributions in binary form must reproduce the above copyright |
|
* notice, this list of conditions and the following disclaimer in the |
|
* documentation and/or other materials provided with the distribution. |
|
* 3. Neither the name of the University nor the names of its contributors |
|
* may be used to endorse or promote products derived from this software |
|
* without specific prior written permission. |
|
* |
* |
* THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND |
* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES |
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE |
* WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF |
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE |
* MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR |
* ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE |
* ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES |
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL |
* WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN |
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS |
* ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF |
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) |
* OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. |
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT |
|
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY |
|
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF |
|
* SUCH DAMAGE. |
|
*/ |
*/ |
|
|
struct filestat { |
struct fuser { |
long fsid; |
TAILQ_ENTRY(fuser) tq; |
long fileid; |
uid_t uid; |
mode_t mode; |
pid_t pid; |
dev_t rdev; |
int flags; |
u_int64_t size; |
#define F_ROOT 0x01 /* is procs root directory */ |
|
#define F_CWD 0x02 /* is procs cwd */ |
|
#define F_OPEN 0x04 /* just has it open */ |
}; |
}; |
|
|
/* |
struct filearg { |
* a kvm_read that returns true if everything is read |
SLIST_ENTRY(filearg) next; |
*/ |
dev_t dev; |
#define KVM_READ(kaddr, paddr, len) \ |
ino_t ino; |
(kvm_read(kd, (u_long)(kaddr), (void *)(paddr), (len)) == (len)) |
char *name; |
extern kvm_t *kd; |
TAILQ_HEAD(fuserhead, fuser) fusers; |
|
}; |
|
|
extern int vflg; |
SLIST_HEAD(fileargs, filearg); |
#define dprintf if (vflg) warnx |
|
|
|
|
extern int uflg; |
|
extern int cflg; |
|
extern int fsflg; |
|
extern int sflg; |
|
extern int signo; |
|
extern int error; |
|
extern struct fileargs fileargs; |
|
|
|
extern char *__progname; |
|
|
|
void fuser_check(struct kinfo_file2 *); |
|
void fuser_run(void); |
|
void usage(void); |