From owner-p4-projects@FreeBSD.ORG Sun Jun 7 06:52:00 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 9D6B1106566B; Sun, 7 Jun 2009 06:52:00 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 5CA9D1065674 for ; Sun, 7 Jun 2009 06:52:00 +0000 (UTC) (envelope-from dforsyth@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 13D7B8FC17 for ; Sun, 7 Jun 2009 06:52:00 +0000 (UTC) (envelope-from dforsyth@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n576px4L048479 for ; Sun, 7 Jun 2009 06:51:59 GMT (envelope-from dforsyth@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n576pxJl048477 for perforce@freebsd.org; Sun, 7 Jun 2009 06:51:59 GMT (envelope-from dforsyth@FreeBSD.org) Date: Sun, 7 Jun 2009 06:51:59 GMT Message-Id: <200906070651.n576pxJl048477@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to dforsyth@FreeBSD.org using -f From: David Forsythe To: Perforce Change Reviews Cc: Subject: PERFORCE change 163683 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 07 Jun 2009 06:52:01 -0000 http://perforce.freebsd.org/chv.cgi?CH=163683 Change 163683 by dforsyth@squirrel on 2009/06/07 06:51:04 Took stray tailq init out of plist init. pkg_info will spit out a file list if it gets any argument. Affected files ... .. //depot/projects/soc2009/dforsyth_libpkg/libpkg/pkg.c#9 edit .. //depot/projects/soc2009/dforsyth_libpkg/libpkg/pkg.h#9 edit .. //depot/projects/soc2009/dforsyth_libpkg/libpkg/pkg_plist.c#4 edit .. //depot/projects/soc2009/dforsyth_libpkg/libpkg/pkg_plist.h#4 edit .. //depot/projects/soc2009/dforsyth_libpkg/libpkg/pkg_private.h#5 edit .. //depot/projects/soc2009/dforsyth_libpkg/pkg_info/main.c#4 edit Differences ... ==== //depot/projects/soc2009/dforsyth_libpkg/libpkg/pkg.c#9 (text+ko) ==== @@ -3,6 +3,7 @@ #include #include "pkg_util.h" +#include "pkg_plist.h" #include "pkgdb.h" #include "pkg_private.h" #include "pkg.h" @@ -33,6 +34,9 @@ return (p); } +/* TODO: Can't copy string for some _set_ functions and then just point to + * the passed pkg_plist for _set_pkg_plist. */ + /* Set the short comment for this package */ struct pkg * pkg_set_comment(struct pkg *p, const char *comment) @@ -70,8 +74,13 @@ { if (p == NULL) return (NULL); + + if (is_it_empty(pl)) + printf("its empty in set_pkg_plist, before set\n"); p->plist = pl; + if (is_it_empty(pl)) + printf("its empty in set_pkg_plist, after set\n"); return (p); } @@ -99,33 +108,64 @@ pkg_name(struct pkg *p) { char *name; + name = pkg_plist_name(p->plist); return (name); } +char * +pkg_cwd(struct pkg *p) +{ + char *cwd; + + cwd = pkg_plist_cwd(p->plist); + + return (cwd); +} + +/* Doesn't work correctly yet. */ +char * +pkg_orgin(struct pkg *p) +{ + char *orgin; + + orgin = pkg_plist_orgin(p->plist); + + return (orgin); +} + /* Temporarily void. */ void -pkg_pkg_plist_init(struct pkg *p) +pkg_file_list_init(struct pkg *p) { if (p == NULL) return; - pkg_plist_init(p->plist); - return; + if (is_it_empty(p->plist)) + printf("its empty when pkg requests init\n"); + + pkg_plist_file_list_init(p->plist); + if (is_it_empty(p->plist)) + printf("its empty when pkg requests init, after\n"); } /* Temporarily char. */ char * -pkg_pkg_plist_next(struct pkg *p) +pkg_file_list_next(struct pkg *p) { + struct pl_entry *ent; char *file_name; if (p == NULL) return (NULL); + + if (is_it_empty(p->plist)) + printf("its empty when pkg requests next\n"); + + ent = pkg_plist_file_list_next(p->plist); + file_name = pl_entry_info(ent); - file_name = pkg_plist_next(p->plist); - return (file_name); } ==== //depot/projects/soc2009/dforsyth_libpkg/libpkg/pkg.h#9 (text+ko) ==== @@ -1,6 +1,14 @@ #ifndef __PKG_H__ #define __PKG_H__ +/* pkg_plist */ + +struct pkg_plist; + +struct pkg_plist *pkg_plist_new(void); + +struct pkg_plist *pkg_plist_new_from_text(const char *text); + /* pkg */ struct pkg; @@ -17,11 +25,15 @@ char *pkg_name(struct pkg *p); +char *pkg_cwd(struct pkg *p); + +char *pkg_orgin(struct pkg *p); + char *pkg_comment(struct pkg *p); -void pkg_pkg_plist_init(struct pkg *p); +void pkg_file_list_init(struct pkg *p); -char *pkg_pkg_plist_next(struct pkg *p); +char *pkg_file_list_next(struct pkg *p); void pkg_free(struct pkg *p); @@ -43,12 +55,4 @@ void pkgdb_free_hierdb(struct pkgdb *db); -/* pkg_plist */ - -struct pkg_plist; - -struct pkg_plist *pkg_plist_new(void); - -struct pkg_plist *pkg_plist_new_from_text(const char *text); - #endif ==== //depot/projects/soc2009/dforsyth_libpkg/libpkg/pkg_plist.c#4 (text+ko) ==== @@ -13,20 +13,6 @@ #include "pkgdb.h" #include "pkg.h" -/* For tracking mode, if the last file needs an MD5, owner, and group. */ - -struct file_state { - int last_needs_md5; - char *mode; - char *owner; - char *group; -}; - -struct pl_file { - /* Need a specific type for files because there so much stuff I can - * set... */ -}; - struct pl_entry { enum plist_elem type; char *info; @@ -46,8 +32,6 @@ char *text; /* The entire plist */ - struct file_state f_s; - struct pl_entry *file_curr; /* Use these lists here so that appending to our list doesnt need a @@ -55,13 +39,6 @@ * that want to build plists on the fly, modify plists, etc. */ TAILQ_HEAD(file_head, pl_entry) file_head; /* File list. */ - - /* This list organization needs to be sorted out... */ - - TAILQ_HEAD(exex_head, pl_entry) exec_head; /* Exec list. */ - TAILQ_HEAD(unexex_head, pl_entry) unexec_head; /* Unexec/dirrm list. */ - TAILQ_HEAD(cfl_head, pl_entry) cfl_head; /* Conflict list. */ - TAILQ_HEAD(opt_head, pl_entry) opt_head; /* Options list (for all 2) */ }; struct pkg_plist * @@ -121,6 +98,8 @@ textp = strdup(text); if (textp == NULL) return (NULL); + + pl->text = textp; pkg_plist_plist_init(pl); for (p = textp; *p != '\0'; p++) { @@ -128,13 +107,20 @@ line = textp; line[p - textp] = '\0'; ent = pkg_plist_parse_line(pl, line); - /* For now, just shove everything onto the main list. */ + + /* For now, just plop everything onto the file list. */ + /* TODO: have the append function sort entry types to the + * correct list. */ + if (ent != NULL) pkg_plist_plist_append(pl, ent); textp = p + 1; } } + if (is_it_empty(pl)) + printf("its empty in the parse.\n"); + return (pl); } @@ -149,11 +135,6 @@ if (line == NULL) return (NULL); - /* - ent = calloc(1, sizeof(*ent)); - if (ent == NULL) - return (NULL); - */ if (*line == '@') { sep = strchr(line, ' '); if (sep == NULL) @@ -161,14 +142,15 @@ *sep = '\0'; /* chop. */ command = line + 1; argument = sep + 1; - // ent->option = NULL; - /* Until I have the list organization sorted, just return entries - * and plop them on the main list. */ if (strcmp(command, PLIST_CMD_CWD) == 0 || - strcmp(command, PLIST_CMD_CD) == 0) + strcmp(command, PLIST_CMD_CD) == 0) { pl->cwd = argument; - else if (strcmp(command, PLIST_CMD_SRCDIR) == 0) + return (NULL); + } + else if (strcmp(command, PLIST_CMD_SRCDIR) == 0) { pl->srcdir = argument; + return (NULL); + } else if (strcmp(command, PLIST_CMD_EXEC) == 0) ent = pl_entry_new(PLIST_EXEC, argument, NULL); else if (strcmp(command, PLIST_CMD_UNEXEC) == 0) @@ -181,8 +163,11 @@ ent = pl_entry_new(PLIST_OWNER, argument, NULL); else if (strcmp(command, PLIST_CMD_GROUP) == 0) ent = pl_entry_new(PLIST_GROUP, argument, NULL); - else if (strcmp(command, PLIST_CMD_COMMENT) == 0) + else if (strcmp(command, PLIST_CMD_COMMENT) == 0) { + /* Lots more stuff needs to go in here... what a terrible file + * format... */ ent = pl_entry_new(PLIST_COMMENT, argument, NULL); + } else if (strcmp(command, PLIST_CMD_NOINST) == 0) { if ((sep = strchr(argument, ' ')) != NULL) *sep = '\0'; @@ -191,21 +176,23 @@ ent = pl_entry_new(PLIST_IGNORE, argument, NULL); else if (strcmp(command, PLIST_CMD_IGNORE_INST) == 0) ent = pl_entry_new(PLIST_IGNORE_INST, argument, NULL); - else if (strcmp(command, PLIST_CMD_NAME) == 0) + else if (strcmp(command, PLIST_CMD_NAME) == 0) { pl->name = argument; + return (NULL); + } else if (strcmp(command, PLIST_CMD_DIRRM) == 0) ent = pl_entry_new(PLIST_DIRRM, argument, NULL); - else if (strcmp(command, PLIST_CMD_MTREE) == 0) + else if (strcmp(command, PLIST_CMD_MTREE) == 0) { pl->mtree_file = argument; - else if (strcmp(command, PLIST_CMD_DISPLAY) == 0) + return (NULL); + } + else if (strcmp(command, PLIST_CMD_DISPLAY) == 0) { pl->display = argument; + return (NULL); + } else { /* If we cant identify the command, set it unknown and gather * whatever information we can. */ - /* - ent->type = PLIST_UNKNOWN; - ent->info = command; - */ ent = pl_entry_new(PLIST_UNKNOWN, argument, NULL); } } else { @@ -217,34 +204,31 @@ /* Temporarily void. */ void -pkg_plist_init(struct pkg_plist *pl) +pkg_plist_file_list_init(struct pkg_plist *pl) { /* Available to the client. */ - pkg_plist_plist_init(pl); + + /* If you init again, it clears the list. So don't. */ pl->file_curr = NULL; } -/* Temporarily char. At this point, only return file names of PLIST_FILE - * entries, just for some basic testing. */ -char * -pkg_plist_next(struct pkg_plist *pl) +struct pl_entry * +pkg_plist_file_list_next(struct pkg_plist *pl) { struct pl_entry *ent; if (pl == NULL) return (NULL); - - if (pl->file_curr == NULL) + + if (pl->file_curr == NULL) ent = pkg_plist_plist_first(pl); else ent = TAILQ_NEXT(pl->file_curr, next); - if (ent != NULL) { + if (ent != NULL) pl->file_curr = ent; - return (ent->info); - } - return (NULL); + return (ent); } char * @@ -256,6 +240,33 @@ return (pl->name); } +char * +pkg_plist_cwd(struct pkg_plist *pl) +{ + if (pl == NULL) + return (NULL); + + return (pl->cwd); +} + +char * +pkg_plist_orgin(struct pkg_plist *pl) +{ + if (pl == NULL) + return (NULL); + + return (pl->orgin); +} + +char * +pl_entry_info(struct pl_entry *ent) +{ + if (ent == NULL) + return (NULL); + + return (ent->info); +} + /* Don't know if I'll be sticking with this, so... */ void @@ -281,7 +292,16 @@ { if (pl == NULL || ent == NULL) return; + if (ent->type == PLIST_FILE) + TAILQ_INSERT_TAIL(&pl->file_head, ent, next); +} - TAILQ_INSERT_TAIL(&pl->file_head, ent, next); +int +is_it_empty(struct pkg_plist *pl) +{ + if (TAILQ_EMPTY(&pl->file_head)) + return (1); + + return (0); } ==== //depot/projects/soc2009/dforsyth_libpkg/libpkg/pkg_plist.h#4 (text+ko) ==== @@ -1,12 +1,5 @@ -#ifndef __PKG_INFO_H__ -#define __PKG_INFO_H__ - -#define COMMENT_FILE "+COMMENT" -#define CONTENTS_FILE "+CONTENTS" -#define DESC_FILE "+DESC" -#define DISPLAY_FILE "+DISPLAY" -#define MTREE_DIRS_FILE "+MTREE_DIRS" -#define REQUIRED_BY_FILE "+REQUIRED_BY" +#ifndef __PKG_PLIST_H__ +#define __PKG_PLIST_H__ /* Make these visible to the client. */ enum plist_elem { @@ -54,13 +47,20 @@ struct pl_entry; +struct pl_entry * +pl_entry_new(enum plist_elem elem, char *info, char *option); + struct pkg_plist *pkg_plist_parse_contents_from_text(const char *text); struct pl_entry *pkg_plist_parse_line(struct pkg_plist *pl, char *line); -void pkg_plist_init(struct pkg_plist *pl); -char *pkg_plist_next(struct pkg_plist *pl); +void pkg_plist_file_list_init(struct pkg_plist *pl); +struct pl_entry *pkg_plist_file_list_next(struct pkg_plist *pl); char *pkg_plist_name(struct pkg_plist *pl); +char *pkg_plist_cwd(struct pkg_plist *pl); +char *pkg_plist_orgin(struct pkg_plist *pl); + +char *pl_entry_info(struct pl_entry *ent); void pkg_plist_plist_init(struct pkg_plist *pl); struct pl_entry *pkg_plist_plist_first(struct pkg_plist *pl); ==== //depot/projects/soc2009/dforsyth_libpkg/libpkg/pkg_private.h#5 (text+ko) ==== @@ -1,6 +1,13 @@ #ifndef __PKG_PRIVATE_H__ #define __PKG_PRIVATE_H__ +#define COMMENT_FILE "+COMMENT" +#define CONTENTS_FILE "+CONTENTS" +#define DESC_FILE "+DESC" +#define DISPLAY_FILE "+DISPLAY" +#define MTREE_DIRS_FILE "+MTREE_DIRS" +#define REQUIRED_BY_FILE "+REQUIRED_BY" + struct pkg { TAILQ_ENTRY(pkg) next; ==== //depot/projects/soc2009/dforsyth_libpkg/pkg_info/main.c#4 (text+ko) ==== @@ -64,9 +64,12 @@ { /* pointlessly set this. */ opt_all = 1; - + char **a; + if (argc == 1) return; + + a = argv; /* give argv something to do. */ opt_show_all_info = 1; } @@ -105,10 +108,13 @@ printf("%s %s\n", pkg_name(p), pkg_comment(p)); else { /* Testing plist interaction. */ - printf("Package %s contains:\n", pkg_name(p)); - pkg_pkg_plist_init(p); - while ((file_name = pkg_pkg_plist_next(p)) != NULL) { - printf("\t%s\n", file_name); + printf("%s:\n", pkg_name(p)); + printf("\tcwd: %s\n", pkg_cwd(p)); + printf("\torgin: %s\n", pkg_orgin(p)); + printf("\tplist:\n"); + pkg_file_list_init(p); + while ((file_name = pkg_file_list_next(p)) != NULL) { + printf("\t\t%s\n", file_name); } } } From owner-p4-projects@FreeBSD.ORG Sun Jun 7 08:10:20 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 70DF6106566C; Sun, 7 Jun 2009 08:10:20 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 2E2A7106564A for ; Sun, 7 Jun 2009 08:10:20 +0000 (UTC) (envelope-from zhaoshuai@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 1AC768FC12 for ; Sun, 7 Jun 2009 08:10:20 +0000 (UTC) (envelope-from zhaoshuai@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n578AJSt056888 for ; Sun, 7 Jun 2009 08:10:19 GMT (envelope-from zhaoshuai@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n578AJgJ056886 for perforce@freebsd.org; Sun, 7 Jun 2009 08:10:19 GMT (envelope-from zhaoshuai@FreeBSD.org) Date: Sun, 7 Jun 2009 08:10:19 GMT Message-Id: <200906070810.n578AJgJ056886@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to zhaoshuai@FreeBSD.org using -f From: Zhao Shuai To: Perforce Change Reviews Cc: Subject: PERFORCE change 163685 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 07 Jun 2009 08:10:21 -0000 http://perforce.freebsd.org/chv.cgi?CH=163685 Change 163685 by zhaoshuai@zhaoshuai on 2009/06/07 08:09:20 generic_pipe_*() no longer use file pointer as the first argument, they use a pipe pointer. Affected files ... .. //depot/projects/soc2009/fifo/sys/fs/fifofs/fifo_vnops.c#8 edit .. //depot/projects/soc2009/fifo/sys/kern/subr_pipe.c#5 edit .. //depot/projects/soc2009/fifo/sys/kern/sys_pipe.c#8 edit .. //depot/projects/soc2009/fifo/sys/sys/pipe.h#7 edit Differences ... ==== //depot/projects/soc2009/fifo/sys/fs/fifofs/fifo_vnops.c#8 (text+ko) ==== @@ -284,7 +284,20 @@ } */ *ap; { - return (0); + switch (ap->a_name) { + case _PC_LINK_MAX: + *ap->a_retval = LINK_MAX; + return (0); + case _PC_PIPE_BUF: + *ap->a_retval = PIPE_BUF; + return (0); + case _PC_CHOWN_RESTRICTED: + *ap->a_retval = 1; + return (0); + default: + return (EINVAL); + } + /* NOTREACHED */ } /* @@ -300,33 +313,28 @@ int a_flags; } */ *ap; { + return (ap->a_flags & F_FLOCK ? EOPNOTSUPP : EINVAL); } static int fifo_read_f(struct file *fp, struct uio *uio, struct ucred *cred, int flags, struct thread *td) { - int error; + struct fifoinfo *fip = fp->f_data; + struct pipe *rpipe = fip->fi_rpipe; - fp->f_data = fip->fi_rpipe; - error = generic_pipe_read(fp, uio, cred, flags, td); - fp->f_data = fip; - - return (error); + return (generic_pipe_read(rpipe, uio, cred, flags, td)); } static int fifo_write_f(struct file *fp, struct uio *uio, struct ucred *cred, int flags, struct thread *td) { - int error; + struct fifoinfo *fip = fp->f_data; + struct pipe *wpipe = fip->fi_wpipe; - fp->f_data = fip->fi_wpipe; - error = generic_pipe_write(fp, uio, cred, flags, td); - fp->f_data = fip; - - return (error); + return (generic_pipe_write(wpipe, uio, cred, flags, td)); } static int @@ -346,6 +354,7 @@ static int fifo_close_f(struct file *fp, struct thread *td) { + return (vnops.fo_close(fp, td)); } ==== //depot/projects/soc2009/fifo/sys/kern/subr_pipe.c#5 (text+ko) ==== @@ -446,10 +446,10 @@ } int -generic_pipe_read(struct file *fp, struct uio *uio, struct ucred *active_cred, - int flags, struct thread *td) +generic_pipe_read(struct pipe *pipe, struct uio *uio, struct ucred *active_cred, + int f_flags, struct thread *td) { - struct pipe *rpipe = fp->f_data; + struct pipe *rpipe = pipe; int error; int nread = 0; u_int size; @@ -567,7 +567,7 @@ * Handle non-blocking mode operation or * wait for more data. */ - if (fp->f_flag & FNONBLOCK) { + if (f_flags & FNONBLOCK) { error = EAGAIN; } else { rpipe->pipe_state |= PIPE_WANTR; @@ -844,14 +844,14 @@ #endif int -generic_pipe_write(struct file *fp, struct uio *uio, struct ucred *active_cred, - int flags, struct thread *td) +generic_pipe_write(struct pipe *pipe, struct uio *uio, struct ucred *active_cred, + int f_flags, struct thread *td) { int error = 0; int desiredsize, orig_resid; - struct pipe *wpipe, *rpipe; + struct pipe *rpipe, *wpipe; - rpipe = fp->f_data; + rpipe = pipe; wpipe = rpipe->pipe_peer; PIPE_LOCK(rpipe); @@ -943,7 +943,7 @@ if (uio->uio_segflg == UIO_USERSPACE && uio->uio_iov->iov_len >= PIPE_MINDIRECT && wpipe->pipe_buffer.size >= PIPE_MINDIRECT && - (fp->f_flag & FNONBLOCK) == 0) { + (f_flags & FNONBLOCK) == 0) { pipeunlock(wpipe); error = pipe_direct_write(wpipe, uio); if (error) @@ -1059,7 +1059,7 @@ /* * don't block on non-blocking I/O */ - if (fp->f_flag & FNONBLOCK) { + if (f_flags & FNONBLOCK) { error = EAGAIN; pipeunlock(wpipe); break; @@ -1122,7 +1122,7 @@ } int -generic_pipe_truncate(struct file *fp, off_t length, struct ucred *active_cred, +generic_pipe_truncate(struct pipe *pipe, off_t length, struct ucred *active_cred, struct thread *td) { @@ -1133,10 +1133,10 @@ * we implement a very minimal set of ioctls for compatibility with sockets. */ int -generic_pipe_ioctl(struct file *fp, u_long cmd, void *data, struct ucred *active_cred, +generic_pipe_ioctl(struct pipe *pipe, u_long cmd, void *data, struct ucred *active_cred, struct thread *td) { - struct pipe *mpipe = fp->f_data; + struct pipe *mpipe = pipe; int error; PIPE_LOCK(mpipe); @@ -1200,10 +1200,10 @@ } int -generic_pipe_poll(struct file *fp, int events, struct ucred *active_cred, +generic_pipe_poll(struct pipe *pipe, int events, struct ucred *active_cred, struct thread *td) { - struct pipe *rpipe = fp->f_data; + struct pipe *rpipe = pipe; struct pipe *wpipe; int revents = 0; #ifdef MAC @@ -1261,10 +1261,9 @@ * be a natural race. */ int -generic_pipe_stat(struct file *fp, struct stat *ub, struct ucred *active_cred, +generic_pipe_stat(struct pipe *pipe, struct stat *ub, struct ucred *active_cred, struct thread *td) { - struct pipe *pipe = fp->f_data; #ifdef MAC int error; @@ -1285,8 +1284,6 @@ ub->st_atimespec = pipe->pipe_atime; ub->st_mtimespec = pipe->pipe_mtime; ub->st_ctimespec = pipe->pipe_ctime; - ub->st_uid = fp->f_cred->cr_uid; - ub->st_gid = fp->f_cred->cr_gid; /* * Left as 0: st_dev, st_ino, st_nlink, st_rdev, st_flags, st_gen. * XXX (st_dev, st_ino) should be unique. @@ -1399,11 +1396,9 @@ } int -generic_pipe_kqfilter(struct file *fp, struct knote *kn) +generic_pipe_kqfilter(struct pipe *cpipe, struct knote *kn) { - struct pipe *cpipe; - cpipe = kn->kn_fp->f_data; PIPE_LOCK(cpipe); switch (kn->kn_filter) { case EVFILT_READ: ==== //depot/projects/soc2009/fifo/sys/kern/sys_pipe.c#8 (text+ko) ==== @@ -135,7 +135,9 @@ struct thread *td) { - return generic_pipe_read(fp, uio, active_cred, flags, td); + struct pipe *pipe = fp->f_data; + + return generic_pipe_read(pipe, uio, active_cred, fp->f_flag, td); } int @@ -143,55 +145,65 @@ struct thread *td) { - return generic_pipe_write(fp, uio, active_cred, flags, td); + struct pipe *pipe = fp->f_data; + + return generic_pipe_write(pipe, uio, active_cred, fp->f_flag, td); } static int pipe_truncate(struct file *fp, off_t length, struct ucred *active_cred, struct thread *td) { - return generic_pipe_truncate(fp, length, active_cred, td); + struct pipe *pipe = fp->f_data; + + return generic_pipe_truncate(pipe, length, active_cred, td); } static int pipe_ioctl(struct file *fp, u_long cmd, void *data, struct ucred *active_cred, struct thread *td) { + + struct pipe *pipe = fp->f_data; - return generic_pipe_ioctl(fp, cmd, data, active_cred, td); + return generic_pipe_ioctl(pipe, cmd, data, active_cred, td); } static int pipe_poll(struct file *fp, int events, struct ucred *active_cred, struct thread *td) { - return generic_pipe_poll(fp, events, active_cred, td); + struct pipe *pipe = fp->f_data; + + return generic_pipe_poll(pipe, events, active_cred, td); } static int pipe_stat(struct file *fp, struct stat *ub, struct ucred *active_cred, struct thread *td) { - return generic_pipe_stat(fp, ub, active_cred, td); + struct pipe *pipe = fp->f_data; + + ub->st_uid = fp->f_cred->cr_uid; + ub->st_gid = fp->f_cred->cr_gid; + return generic_pipe_stat(pipe, ub, active_cred, td); } -/* - * TODO: implement generic_pipe_close() in subr_pipe.c - */ static int pipe_close(struct file *fp, struct thread *td) { - struct pipe *cpipe = fp->f_data; + struct pipe *pipe = fp->f_data; fp->f_ops = &badfileops; fp->f_data = NULL; - generic_pipe_close(cpipe); + generic_pipe_close(pipe); return (0); } static int pipe_kqfilter(struct file *fp, struct knote *kn) { + struct pipe *pipe = kn->kn_fp->f_data; - return generic_pipe_kqfilter(fp, kn); + return generic_pipe_kqfilter(pipe, kn); } ==== //depot/projects/soc2009/fifo/sys/sys/pipe.h#7 (text+ko) ==== @@ -139,20 +139,20 @@ #define PIPE_UNLOCK(pipe) mtx_unlock(PIPE_MTX(pipe)) #define PIPE_LOCK_ASSERT(pipe, type) mtx_assert(PIPE_MTX(pipe), (type)) -int generic_pipe_read(struct file *fp, struct uio *uio, struct ucred *active_cred, - int flags, struct thread *td); -int generic_pipe_write(struct file *fp, struct uio *uio, struct ucred *active_cred, - int flags, struct thread *td); -int generic_pipe_truncate(struct file *fp, off_t length, struct ucred *active_cred, +int generic_pipe_read(struct pipe *pipe, struct uio *uio, struct ucred *active_cred, + int f_flags, struct thread *td); +int generic_pipe_write(struct pipe *pipe, struct uio *uio, struct ucred *active_cred, + int f_flags, struct thread *td); +int generic_pipe_truncate(struct pipe *pipe, off_t length, struct ucred *active_cred, struct thread *td); -int generic_pipe_ioctl(struct file *fp, u_long cmd, void *data, struct ucred *active_cred, +int generic_pipe_ioctl(struct pipe *pipe, u_long cmd, void *data, struct ucred *active_cred, struct thread *td); -int generic_pipe_poll(struct file *fp, int events, struct ucred *active_cred, +int generic_pipe_poll(struct pipe *pipe, int events, struct ucred *active_cred, struct thread *td); -int generic_pipe_stat(struct file *fp, struct stat *ub, struct ucred *active_cred, +int generic_pipe_stat(struct pipe *pipe, struct stat *ub, struct ucred *active_cred, struct thread *td); -int generic_pipe_kqfilter(struct file *fp, struct knote *kn); +int generic_pipe_kqfilter(struct pipe *pipe, struct knote *kn); int generic_pipe_create(struct thread *td, struct pipe **p_rpipe, struct pipe **p_wpipe); -void generic_pipe_close(struct pipe *cpipe); +void generic_pipe_close(struct pipe *pipe); #endif /* !_SYS_PIPE_H_ */ From owner-p4-projects@FreeBSD.ORG Sun Jun 7 08:37:49 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id B3FEB1065672; Sun, 7 Jun 2009 08:37:48 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 74DC7106566C for ; Sun, 7 Jun 2009 08:37:48 +0000 (UTC) (envelope-from pgj@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 5948A8FC08 for ; Sun, 7 Jun 2009 08:37:48 +0000 (UTC) (envelope-from pgj@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n578bm5T058999 for ; Sun, 7 Jun 2009 08:37:48 GMT (envelope-from pgj@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n578bmNU058997 for perforce@freebsd.org; Sun, 7 Jun 2009 08:37:48 GMT (envelope-from pgj@FreeBSD.org) Date: Sun, 7 Jun 2009 08:37:48 GMT Message-Id: <200906070837.n578bmNU058997@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to pgj@FreeBSD.org using -f From: Gabor Pali To: Perforce Change Reviews Cc: Subject: PERFORCE change 163687 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 07 Jun 2009 08:37:49 -0000 http://perforce.freebsd.org/chv.cgi?CH=163687 Change 163687 by pgj@beehive on 2009/06/07 08:36:56 IFC Affected files ... .. //depot/projects/docproj_hu/doc/en_US.ISO8859-1/share/sgml/authors.ent#33 integrate .. //depot/projects/docproj_hu/doc/share/sgml/trademarks.ent#3 integrate .. //depot/projects/docproj_hu/www/hu/administration.sgml#19 integrate .. //depot/projects/docproj_hu/www/hu/share/sgml/news.xml#35 integrate .. //depot/projects/docproj_hu/www/hu/share/sgml/press.xml#14 integrate .. //depot/projects/docproj_hu/www/hu/share/sgml/templates.news-rdf.xsl#7 integrate .. //depot/projects/docproj_hu/www/share/sgml/commercial.isp.xml#12 integrate Differences ... ==== //depot/projects/docproj_hu/doc/en_US.ISO8859-1/share/sgml/authors.ent#33 (text+ko) ==== @@ -13,7 +13,7 @@ builds for the other languages, and we will poke fun of you in public. - $FreeBSD: doc/en_US.ISO8859-1/share/sgml/authors.ent,v 1.484 2009/06/03 22:44:14 linimon Exp $ + $FreeBSD: doc/en_US.ISO8859-1/share/sgml/authors.ent,v 1.485 2009/06/05 15:43:38 np Exp $ --> aaron@FreeBSD.org"> @@ -810,6 +810,8 @@ nox@FreeBSD.org"> +np@FreeBSD.org"> + nsayer@FreeBSD.org"> nsouch@FreeBSD.org"> ==== //depot/projects/docproj_hu/doc/share/sgml/trademarks.ent#3 (text+ko) ==== @@ -8,7 +8,7 @@ Please keep this file sorted. - $FreeBSD: doc/share/sgml/trademarks.ent,v 1.44 2009/01/05 21:30:43 brd Exp $ + $FreeBSD: doc/share/sgml/trademarks.ent,v 1.45 2009/06/06 14:05:54 blackend Exp $ --> 3Com and HomeConnect are registered @@ -263,7 +263,7 @@ registered trademarks and IT DialTone and The Open Group are trademarks of The Open Group in the United States and other countries."> -UNIX is a registered trademarks of The +UNIX is a registered trademark of The Open Group in the United States and other countries."> Motif"> UNIX"> ==== //depot/projects/docproj_hu/www/hu/administration.sgml#19 (text+ko) ==== @@ -1,5 +1,5 @@ + ==== //depot/projects/docproj_hu/www/hu/share/sgml/news.xml#35 (text+ko) ==== @@ -11,7 +11,7 @@ - $FreeBSD: www/hu/share/sgml/news.xml,v 1.12 2009/05/30 07:42:16 pgj Exp $ + $FreeBSD: www/hu/share/sgml/news.xml,v 1.13 2009/06/05 12:12:54 pgj Exp $ ==== //depot/projects/docproj_hu/www/hu/share/sgml/press.xml#14 (text+ko) ==== @@ -11,7 +11,7 @@ - $FreeBSD: www/hu/share/sgml/press.xml,v 1.5 2009/05/05 17:08:47 pgj Exp $ + $FreeBSD: www/hu/share/sgml/press.xml,v 1.6 2009/06/05 12:12:54 pgj Exp $ ==== //depot/projects/docproj_hu/www/hu/share/sgml/templates.news-rdf.xsl#7 (text+ko) ==== @@ -5,7 +5,7 @@ ]> - + + - $FreeBSD: www/share/sgml/commercial.isp.xml,v 1.45 2009/04/28 17:00:15 jkois Exp $ + $FreeBSD: www/share/sgml/commercial.isp.xml,v 1.46 2009/06/06 12:07:56 jkois Exp $ @@ -523,6 +523,25 @@ + + bytecamp GmbH + http://www.bytecamp.net/ + + We run a homogenic FreeBSD environment in our own datacenter + located in East Germany near Berlin since 2000. Our developers + contribute code to many open source projects. bytecamp is the home + for desktopbsd.net and + both biggest German BSD communities, bsdforen.de and bsdgroup.de. bytecamp offers + professional hosting on a FreeBSD cluster, enterprise email solutions, + domain name registration, dedicated and virtual servers. We offer + several shared, reseller and shell hosting plans on FreeBSD platform + that will meet and exceed all of your web presence needs from small + personal family web sites to full blown online e-commerce solutions. + + + Liebscher & Partner http://www.freibergnet.de From owner-p4-projects@FreeBSD.ORG Sun Jun 7 08:51:02 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 5CB671065672; Sun, 7 Jun 2009 08:51:02 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 1A7E8106564A for ; Sun, 7 Jun 2009 08:51:02 +0000 (UTC) (envelope-from pgj@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 084C78FC12 for ; Sun, 7 Jun 2009 08:51:02 +0000 (UTC) (envelope-from pgj@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n578p1Tr070002 for ; Sun, 7 Jun 2009 08:51:01 GMT (envelope-from pgj@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n578p1GI070000 for perforce@freebsd.org; Sun, 7 Jun 2009 08:51:01 GMT (envelope-from pgj@FreeBSD.org) Date: Sun, 7 Jun 2009 08:51:01 GMT Message-Id: <200906070851.n578p1GI070000@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to pgj@FreeBSD.org using -f From: Gabor Pali To: Perforce Change Reviews Cc: Subject: PERFORCE change 163689 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 07 Jun 2009 08:51:03 -0000 http://perforce.freebsd.org/chv.cgi?CH=163689 Change 163689 by pgj@beehive on 2009/06/07 08:50:52 MFen (doc): 1.22 -> 1.24 hu_HU.ISO8859-2/articles/explaining-bsd/article.sgml 1.134 -> 1.135 hu_HU.ISO8859-2/books/handbook/introduction/chapter.sgml 1.44 -> 1.45 hu_HU.ISO8859-2/share/sgml/trademarks.ent Affected files ... .. //depot/projects/docproj_hu/doc/hu_HU.ISO8859-2/articles/explaining-bsd/article.sgml#5 edit .. //depot/projects/docproj_hu/doc/hu_HU.ISO8859-2/books/handbook/introduction/chapter.sgml#22 edit .. //depot/projects/docproj_hu/doc/hu_HU.ISO8859-2/share/sgml/trademarks.ent#9 edit Differences ... ==== //depot/projects/docproj_hu/doc/hu_HU.ISO8859-2/articles/explaining-bsd/article.sgml#5 (text+ko) ==== @@ -4,7 +4,7 @@ Translated by: Gabor Kovesdan %SOURCE% en_US.ISO8859-1/articles/explaining-bsd/article.sgml - %SRCID% 1.22 + %SRCID% 1.24 --> @@ -128,9 +131,10 @@ X.Org projekt. A &linux; is ezeket használja. A BSD általában nem jelöl ki egy - grafikus felületet, mint például a - GNOME, vagy KDE, de ennek ellenére ezek is - elérhetõek. + grafikus felületet, mint + például a GNOME, vagy + KDE, de ennek ellenére ezek + is elérhetõek. @@ -155,10 +159,11 @@ és jogi szempontból a BSD határozottan nem &unix;, de az AT&T átvett kódot más projektekbõl is, különösen a - kaliforniai Berkeley egyetemen mûködõ Computer Sciences - Research Group-tól. 1976-tól a CSRG szalagokon kiadta - a szoftverét, amelynek neve Berkeley Software - Distribution, avagy BSD volt. + kaliforniai Berkeley egyetemen mûködõ Computer + Sciences Research Group (CSRG)-tól. 1976-tól a CSRG + szalagokon kiadta a szoftverét, amelynek neve + Berkeley Software Distribution, avagy + BSD volt. A BSD kezdeti kiadásai leginkább felhasználói programokból álltak, de a @@ -561,7 +566,7 @@ A &os; a nagy teljesítményt és a könnyû használhatóságot célozza meg, a webszolgáltatók kedvence. - Számos platformon fut, ide értve az i386 alapú + Számos platformon fut, ide értve az &i386; alapú rendszereket (PC-ket), az AMD 64-bites processzorait, az &ultrasparc; rendszereket, a Compaq Alpha rendszereit, illetve a NEC PC-98 @@ -578,7 +583,7 @@ nagy szervereken egyaránt, és a NASA is használja az ûrkutatásai során. Különösen jó választás - régi, nem Intel alapú hardverhez. + régi, nem &intel; alapú hardverhez. ==== //depot/projects/docproj_hu/doc/hu_HU.ISO8859-2/books/handbook/introduction/chapter.sgml#22 (text+ko) ==== @@ -7,7 +7,7 @@ The FreeBSD Hungarian Documentation Project Translated by: PALI, Gabor %SOURCE% en_US.ISO8859-1/books/handbook/introduction/chapter.sgml - %SRCID% 1.134 + %SRCID% 1.135 --> @@ -635,6 +635,12 @@ + NetEase + + + NetEase + + Weathernews ==== //depot/projects/docproj_hu/doc/hu_HU.ISO8859-2/share/sgml/trademarks.ent#9 (text+ko) ==== @@ -14,7 +14,7 @@ A 3Com és HomeConnect a 3Com Corporation From owner-p4-projects@FreeBSD.ORG Sun Jun 7 09:30:43 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id BB7561065672; Sun, 7 Jun 2009 09:30:42 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 7B7EF106566C for ; Sun, 7 Jun 2009 09:30:42 +0000 (UTC) (envelope-from pgj@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 5E9298FC0A for ; Sun, 7 Jun 2009 09:30:42 +0000 (UTC) (envelope-from pgj@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n579UgkG074281 for ; Sun, 7 Jun 2009 09:30:42 GMT (envelope-from pgj@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n579Ug3U074279 for perforce@freebsd.org; Sun, 7 Jun 2009 09:30:42 GMT (envelope-from pgj@FreeBSD.org) Date: Sun, 7 Jun 2009 09:30:42 GMT Message-Id: <200906070930.n579Ug3U074279@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to pgj@FreeBSD.org using -f From: Gabor Pali To: Perforce Change Reviews Cc: Subject: PERFORCE change 163691 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 07 Jun 2009 09:30:43 -0000 http://perforce.freebsd.org/chv.cgi?CH=163691 Change 163691 by pgj@petymeg-current on 2009/06/07 09:29:41 Rename netstat.h to extern.h to avoid confusions (suggested by gonzo) Affected files ... .. //depot/projects/soc2009/pgj_libstat/src/usr.bin/netstat/atalk.c#2 edit .. //depot/projects/soc2009/pgj_libstat/src/usr.bin/netstat/bpf.c#2 edit .. //depot/projects/soc2009/pgj_libstat/src/usr.bin/netstat/extern.h#1 branch .. //depot/projects/soc2009/pgj_libstat/src/usr.bin/netstat/if.c#2 edit .. //depot/projects/soc2009/pgj_libstat/src/usr.bin/netstat/inet.c#2 edit .. //depot/projects/soc2009/pgj_libstat/src/usr.bin/netstat/inet6.c#2 edit .. //depot/projects/soc2009/pgj_libstat/src/usr.bin/netstat/ipsec.c#2 edit .. //depot/projects/soc2009/pgj_libstat/src/usr.bin/netstat/ipx.c#2 edit .. //depot/projects/soc2009/pgj_libstat/src/usr.bin/netstat/main.c#3 edit .. //depot/projects/soc2009/pgj_libstat/src/usr.bin/netstat/mbuf.c#2 edit .. //depot/projects/soc2009/pgj_libstat/src/usr.bin/netstat/mroute.c#2 edit .. //depot/projects/soc2009/pgj_libstat/src/usr.bin/netstat/mroute6.c#2 edit .. //depot/projects/soc2009/pgj_libstat/src/usr.bin/netstat/netgraph.c#2 edit .. //depot/projects/soc2009/pgj_libstat/src/usr.bin/netstat/netstat.h#3 delete .. //depot/projects/soc2009/pgj_libstat/src/usr.bin/netstat/pfkey.c#2 edit .. //depot/projects/soc2009/pgj_libstat/src/usr.bin/netstat/route.c#2 edit .. //depot/projects/soc2009/pgj_libstat/src/usr.bin/netstat/sctp.c#2 edit .. //depot/projects/soc2009/pgj_libstat/src/usr.bin/netstat/unix.c#3 edit Differences ... ==== //depot/projects/soc2009/pgj_libstat/src/usr.bin/netstat/atalk.c#2 (text+ko) ==== @@ -58,7 +58,7 @@ #include #include #include -#include "netstat.h" +#include "extern.h" struct ddpcb ddpcb; struct socket sockb; ==== //depot/projects/soc2009/pgj_libstat/src/usr.bin/netstat/bpf.c#2 (text+ko) ==== @@ -49,7 +49,7 @@ #include #include -#include "netstat.h" +#include "extern.h" /* print bpf stats */ ==== //depot/projects/soc2009/pgj_libstat/src/usr.bin/netstat/if.c#2 (text+ko) ==== @@ -70,7 +70,7 @@ #include #include -#include "netstat.h" +#include "extern.h" #define YES 1 #define NO 0 ==== //depot/projects/soc2009/pgj_libstat/src/usr.bin/netstat/inet.c#2 (text+ko) ==== @@ -83,7 +83,7 @@ #include #include #include -#include "netstat.h" +#include "extern.h" char *inetname(struct in_addr *); void inetprint(struct in_addr *, int, const char *, int); ==== //depot/projects/soc2009/pgj_libstat/src/usr.bin/netstat/inet6.c#2 (text+ko) ==== @@ -72,7 +72,7 @@ #include #include #include -#include "netstat.h" +#include "extern.h" struct socket sockb; ==== //depot/projects/soc2009/pgj_libstat/src/usr.bin/netstat/ipsec.c#2 (text+ko) ==== @@ -113,7 +113,7 @@ #include #include #include -#include "netstat.h" +#include "extern.h" #ifdef IPSEC struct val2str { ==== //depot/projects/soc2009/pgj_libstat/src/usr.bin/netstat/ipx.c#2 (text+ko) ==== @@ -69,7 +69,7 @@ #include #include #include -#include "netstat.h" +#include "extern.h" static char *ipx_prpr(struct ipx_addr *); ==== //depot/projects/soc2009/pgj_libstat/src/usr.bin/netstat/main.c#3 (text+ko) ==== @@ -71,7 +71,7 @@ #include #include #include -#include "netstat.h" +#include "extern.h" static struct nlist nl[] = { #define N_IFNET 0 ==== //depot/projects/soc2009/pgj_libstat/src/usr.bin/netstat/mbuf.c#2 (text+ko) ==== @@ -56,7 +56,7 @@ #include #include #include -#include "netstat.h" +#include "extern.h" /* * Print mbuf statistics. ==== //depot/projects/soc2009/pgj_libstat/src/usr.bin/netstat/mroute.c#2 (text+ko) ==== @@ -68,7 +68,7 @@ #include #include #include -#include "netstat.h" +#include "extern.h" static void print_bw_meter(struct bw_meter *, int *); ==== //depot/projects/soc2009/pgj_libstat/src/usr.bin/netstat/mroute6.c#2 (text+ko) ==== @@ -93,7 +93,7 @@ #include #undef KERNEL -#include "netstat.h" +#include "extern.h" #define WID_ORG (Wflag ? 39 : (numeric_addr ? 29 : 18)) /* width of origin column */ #define WID_GRP (Wflag ? 18 : (numeric_addr ? 16 : 18)) /* width of group column */ ==== //depot/projects/soc2009/pgj_libstat/src/usr.bin/netstat/netgraph.c#2 (text+ko) ==== @@ -56,7 +56,7 @@ #include #include #include -#include "netstat.h" +#include "extern.h" static int first = 1; static int csock = -1; ==== //depot/projects/soc2009/pgj_libstat/src/usr.bin/netstat/pfkey.c#2 (text+ko) ==== @@ -85,7 +85,7 @@ #include #include #include -#include "netstat.h" +#include "extern.h" #ifdef IPSEC ==== //depot/projects/soc2009/pgj_libstat/src/usr.bin/netstat/route.c#2 (text+ko) ==== @@ -71,7 +71,7 @@ #include #include #include -#include "netstat.h" +#include "extern.h" #define kget(p, d) (kread((u_long)(p), (char *)&(d), sizeof (d))) ==== //depot/projects/soc2009/pgj_libstat/src/usr.bin/netstat/sctp.c#2 (text+ko) ==== @@ -59,7 +59,7 @@ #include #include #include -#include "netstat.h" +#include "extern.h" #ifdef SCTP ==== //depot/projects/soc2009/pgj_libstat/src/usr.bin/netstat/unix.c#3 (text+ko) ==== @@ -63,8 +63,8 @@ #include #include #include -#include /* libnetstat */ -#include "netstat.h" +#include +#include "extern.h" static void unixdomainpr(struct xunpcb *, struct xsocket *); From owner-p4-projects@FreeBSD.ORG Sun Jun 7 09:35:48 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 015B01065675; Sun, 7 Jun 2009 09:35:48 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id B31A71065672 for ; Sun, 7 Jun 2009 09:35:47 +0000 (UTC) (envelope-from pgj@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id A149C8FC15 for ; Sun, 7 Jun 2009 09:35:47 +0000 (UTC) (envelope-from pgj@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n579ZlMv074723 for ; Sun, 7 Jun 2009 09:35:47 GMT (envelope-from pgj@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n579Zlq5074721 for perforce@freebsd.org; Sun, 7 Jun 2009 09:35:47 GMT (envelope-from pgj@FreeBSD.org) Date: Sun, 7 Jun 2009 09:35:47 GMT Message-Id: <200906070935.n579Zlq5074721@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to pgj@FreeBSD.org using -f From: Gabor Pali To: Perforce Change Reviews Cc: Subject: PERFORCE change 163692 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 07 Jun 2009 09:35:48 -0000 http://perforce.freebsd.org/chv.cgi?CH=163692 Change 163692 by pgj@petymeg-current on 2009/06/07 09:35:02 Remove UNP_### from the global nlist, since it comes via libnetstat Affected files ... .. //depot/projects/soc2009/pgj_libstat/src/usr.bin/netstat/main.c#4 edit Differences ... ==== //depot/projects/soc2009/pgj_libstat/src/usr.bin/netstat/main.c#4 (text+ko) ==== @@ -170,19 +170,11 @@ { .n_name = "_divcbinfo" }, #define N_RIPCBINFO 47 { .n_name = "_ripcbinfo" }, -#define N_UNP_COUNT 48 - { .n_name = "_unp_count" }, -#define N_UNP_GENCNT 49 - { .n_name = "_unp_gencnt" }, -#define N_UNP_DHEAD 50 - { .n_name = "_unp_dhead" }, -#define N_UNP_SHEAD 51 - { .n_name = "_unp_shead" }, -#define N_RIP6STAT 52 +#define N_RIP6STAT 48 { .n_name = "_rip6stat" }, -#define N_SCTPSTAT 53 +#define N_SCTPSTAT 49 { .n_name = "_sctpstat" }, -#define N_MFCTABLESIZE 54 +#define N_MFCTABLESIZE 50 { .n_name = "_mfctablesize" }, { .n_name = NULL }, }; From owner-p4-projects@FreeBSD.ORG Sun Jun 7 09:43:57 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id CC575106566C; Sun, 7 Jun 2009 09:43:56 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 8A4611065670 for ; Sun, 7 Jun 2009 09:43:56 +0000 (UTC) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 5C0D18FC12 for ; Sun, 7 Jun 2009 09:43:56 +0000 (UTC) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n579huZC076268 for ; Sun, 7 Jun 2009 09:43:56 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n579hu3O076266 for perforce@freebsd.org; Sun, 7 Jun 2009 09:43:56 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Date: Sun, 7 Jun 2009 09:43:56 GMT Message-Id: <200906070943.n579hu3O076266@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to bb+lists.freebsd.perforce@cyrus.watson.org using -f From: Robert Watson To: Perforce Change Reviews Cc: Subject: PERFORCE change 163694 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 07 Jun 2009 09:43:57 -0000 http://perforce.freebsd.org/chv.cgi?CH=163694 Change 163694 by rwatson@rwatson_freebsd_capabilities on 2009/06/07 09:43:20 Fix reference management for capability vs. underlying file descriptor, required in the new world order of lock-free file descriptor reference acquisition. Fix the non-CAPABILITIES case to return VM_PROT_ALL for the maxprot mask, or mprotect(2) will fail in the runtime linker. Affected files ... .. //depot/projects/trustedbsd/capabilities/src/sys/kern/kern_descrip.c#24 edit .. //depot/projects/trustedbsd/capabilities/src/sys/kern/sys_capability.c#24 edit Differences ... ==== //depot/projects/trustedbsd/capabilities/src/sys/kern/kern_descrip.c#24 (text+ko) ==== @@ -85,6 +85,7 @@ #include #include +#include #include @@ -2200,13 +2201,22 @@ } /* - * Hold the new file descriptor and drop the capability file - * descriptor; after this point fp refers to the new object. + * If cap_fextract() returned a different file descriptor + * than was passed in, drop the original capability and hold + * the new descriptor. fp after this point refers to the + * actual object, not the capability. */ - fhold(fp_fromcap); - fdrop(fp, td); - fp = fp_fromcap; -#endif + if (fp != fp_fromcap) { + fhold(fp_fromcap); + fdrop(fp, td); + fp = fp_fromcap; + } +#else /* !CAPABILITIES */ + KASSERT(fp->f_type != DTYPE_CAPABILITY, + ("_fget: saw capability")); + if (maxprotp != NULL) + *maxprotp = VM_PROT_ALL; +#endif /* CAPABILITIES */ if ((flags == FREAD && (fp->f_flag & FREAD) == 0) || (flags == FWRITE && (fp->f_flag & FWRITE) == 0)) { fdrop(fp, td); ==== //depot/projects/trustedbsd/capabilities/src/sys/kern/sys_capability.c#24 (text+ko) ==== @@ -50,7 +50,7 @@ #include "opt_capabilities.h" #include -__FBSDID("$P4: //depot/projects/trustedbsd/capabilities/src/sys/kern/sys_capability.c#23 $"); +__FBSDID("$P4: //depot/projects/trustedbsd/capabilities/src/sys/kern/sys_capability.c#24 $"); #include #include From owner-p4-projects@FreeBSD.ORG Sun Jun 7 09:51:04 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 2148A1065673; Sun, 7 Jun 2009 09:51:04 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id D76531065670 for ; Sun, 7 Jun 2009 09:51:03 +0000 (UTC) (envelope-from mav@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id AB6118FC08 for ; Sun, 7 Jun 2009 09:51:03 +0000 (UTC) (envelope-from mav@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n579p3u5076872 for ; Sun, 7 Jun 2009 09:51:03 GMT (envelope-from mav@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n579p3rP076870 for perforce@freebsd.org; Sun, 7 Jun 2009 09:51:03 GMT (envelope-from mav@freebsd.org) Date: Sun, 7 Jun 2009 09:51:03 GMT Message-Id: <200906070951.n579p3rP076870@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to mav@freebsd.org using -f From: Alexander Motin To: Perforce Change Reviews Cc: Subject: PERFORCE change 163695 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 07 Jun 2009 09:51:04 -0000 http://perforce.freebsd.org/chv.cgi?CH=163695 Change 163695 by mav@mav_mavbook on 2009/06/07 09:50:58 Minor parts of PM support. Affected files ... .. //depot/projects/scottl-camlock/src/sys/dev/ahci/ahci.c#14 edit Differences ... ==== //depot/projects/scottl-camlock/src/sys/dev/ahci/ahci.c#14 (text+ko) ==== @@ -814,7 +814,7 @@ struct ahci_channel *ch = device_get_softc(slot->dev); struct ahci_cmd_tab *ctp; struct ahci_cmd_list *clp; - int port = 0 & 0x0f; + int port = slot->ccb->ccb_h.target_id & 0x0f; int fis_size; //device_printf(slot->dev, "%s slot %d\n", __func__, slot->slot); @@ -1350,10 +1350,11 @@ case 0x0000: ch->devices = ATA_ATA_MASTER; break; -/* case 0x9669: - ch->devices = ATA_PORTMULTIPLIER; - ata_pm_identify(dev); - break; */ + case 0x9669: + ch->devices = ATA_PORTMULTIPLIER | 0x0003; /* Temporary hack. */ +// ch->devices = ATA_PORTMULTIPLIER; +// ata_pm_identify(dev); + break; case 0xeb14: ch->devices = ATA_ATAPI_MASTER; break; @@ -1551,8 +1552,7 @@ ccb->csio.cdb_io.cdb_ptr : ccb->csio.cdb_io.cdb_bytes, ctp->acmd, ccb->csio.cdb_len); fis[0] = 0x27; /* host to device */ -// fis[1] = 0x80 | (atadev->unit & 0x0f); - fis[1] = 0x80 | (0 & 0x0f); + fis[1] = 0x80 | (ccb->ccb_h.target_id & 0x0f); fis[2] = ATA_PACKET_CMD; if ((ccb->ccb_h.flags & CAM_DIR_MASK) != CAM_DIR_NONE) fis[3] = ATA_F_DMA; @@ -1564,8 +1564,7 @@ fis[15] = ATA_A_4BIT; } else if (ccb->ataio.cmd.flags & CAM_ATAIO_FPDMA) { fis[0] = 0x27; /* host to device */ -// fis[1] = 0x80 | (atadev->unit & 0x0f); - fis[1] = 0x80 | (0 & 0x0f); + fis[1] = 0x80 | (ccb->ccb_h.target_id & 0x0f); fis[2] = ccb->ataio.cmd.command; fis[3] = ccb->ataio.cmd.count; fis[4] = ccb->ataio.cmd.lba; @@ -1581,8 +1580,7 @@ fis[15] = ATA_A_4BIT; } else { fis[0] = 0x27; /* host to device */ -// fis[1] = 0x80 | (atadev->unit & 0x0f); - fis[1] = 0x80 | (0 & 0x0f); + fis[1] = 0x80 | (ccb->ccb_h.target_id & 0x0f); fis[2] = ccb->ataio.cmd.command; fis[3] = ccb->ataio.cmd.feature; fis[4] = ccb->ataio.cmd.lba; @@ -1660,7 +1658,7 @@ DELAY(5000); for (loop = 0; loop < 10; loop++) { ATA_IDX_OUTL(ch, ATA_SCONTROL, - ATA_SC_DET_IDLE | ((ch->pm_level > 0) ? 0 : + ATA_SC_DET_IDLE | ATA_SC_SPD_SPEED_GEN1 | ((ch->pm_level > 0) ? 0 : ATA_SC_IPM_DIS_PARTIAL | ATA_SC_IPM_DIS_SLUMBER)); DELAY(100); val = ATA_IDX_INL(ch, ATA_SCONTROL); @@ -1783,9 +1781,9 @@ cpi->version_num = 1; /* XXX??? */ cpi->hba_inquiry = PI_SDTR_ABLE | PI_TAG_ABLE; cpi->target_sprt = 0; - cpi->hba_misc = 0; + cpi->hba_misc = PIM_SEQSCAN; cpi->hba_eng_cnt = 0; - cpi->max_target = 0; + cpi->max_target = 14; cpi->max_lun = 0; cpi->initiator_id = 0; cpi->bus_id = cam_sim_bus(sim); From owner-p4-projects@FreeBSD.ORG Sun Jun 7 10:38:53 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 242C41065673; Sun, 7 Jun 2009 10:38:53 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id D4337106566B for ; Sun, 7 Jun 2009 10:38:52 +0000 (UTC) (envelope-from pgj@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id A82328FC18 for ; Sun, 7 Jun 2009 10:38:52 +0000 (UTC) (envelope-from pgj@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n57AcqAN081850 for ; Sun, 7 Jun 2009 10:38:52 GMT (envelope-from pgj@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n57AcqVM081848 for perforce@freebsd.org; Sun, 7 Jun 2009 10:38:52 GMT (envelope-from pgj@FreeBSD.org) Date: Sun, 7 Jun 2009 10:38:52 GMT Message-Id: <200906071038.n57AcqVM081848@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to pgj@FreeBSD.org using -f From: Gabor Pali To: Perforce Change Reviews Cc: Subject: PERFORCE change 163698 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 07 Jun 2009 10:38:54 -0000 http://perforce.freebsd.org/chv.cgi?CH=163698 Change 163698 by pgj@petymeg-current on 2009/06/07 10:38:26 Replace arguments of unixdomainpr() for a socket_type Affected files ... .. //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat.c#3 edit .. //depot/projects/soc2009/pgj_libstat/src/usr.bin/netstat/unix.c#4 edit Differences ... ==== //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat.c#3 (text+ko) ==== @@ -65,7 +65,7 @@ /* Keep active PCBs only. */ if (xunp->xu_unp.unp_gencnt <= oxug->xug_gen) { stp = _netstat_st_allocate(list, PF_LOCAL, type, - ""); + socktype[type]); stp->xup = *((struct xunpcb *)xug); } } @@ -144,7 +144,8 @@ list->stl_error = NETSTAT_ERROR_UNDEFINED; return (-1); } - stp = _netstat_st_allocate(list, PF_LOCAL, type, ""); + stp = _netstat_st_allocate(list, PF_LOCAL, type, + socktype[type]); stp->xup = xu; } ==== //depot/projects/soc2009/pgj_libstat/src/usr.bin/netstat/unix.c#4 (text+ko) ==== @@ -66,19 +66,14 @@ #include #include "extern.h" -static void unixdomainpr(struct xunpcb *, struct xsocket *); - -static const char *const socktype[] = - { "#0", "stream", "dgram", "raw", "rdm", "seqpacket" }; +static void unixdomainpr(struct socket_type *); void unixpr(void *kvmd) { int ret, type; - struct xsocket *so; struct socket_type_list *stlp; struct socket_type *stp; - struct xunpcb *xunp; int error; kvm_t *kvm; @@ -112,21 +107,23 @@ for (stp = netstat_stl_first(stlp); stp != NULL; stp = netstat_stl_next(stp)) { - xunp = (struct xunpcb *)netstat_st_get_pcb(stp); - so = &xunp->xu_socket; - unixdomainpr(xunp, so); + unixdomainpr(stp); } } } static void -unixdomainpr(struct xunpcb *xunp, struct xsocket *so) +unixdomainpr(struct socket_type *stp) { struct unpcb *unp; struct sockaddr_un *sa; static int first = 1; char buf1[15]; + struct xunpcb *xunp; + struct xsocket *so; + xunp = netstat_st_get_pcb(stp); + so = &xunp->xu_socket; unp = &xunp->xu_unp; if (unp->unp_addr) sa = &xunp->xu_addr; @@ -151,8 +148,9 @@ printf("unix %-14.14s", buf1); } else { printf("%8lx %-6.6s %6u %6u %8lx %8lx %8lx %8lx", - (long)so->so_pcb, socktype[so->so_type], so->so_rcv.sb_cc, - so->so_snd.sb_cc, (long)unp->unp_vnode, (long)unp->unp_conn, + (long)so->so_pcb, netstat_st_get_name(stp), + so->so_rcv.sb_cc, so->so_snd.sb_cc, (long)unp->unp_vnode, + (long)unp->unp_conn, (long)LIST_FIRST(&unp->unp_refs), (long)LIST_NEXT(unp, unp_reflink)); } From owner-p4-projects@FreeBSD.ORG Sun Jun 7 10:40:55 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 3975E1065676; Sun, 7 Jun 2009 10:40:55 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id E94001065674 for ; Sun, 7 Jun 2009 10:40:54 +0000 (UTC) (envelope-from fabio@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id D77058FC20 for ; Sun, 7 Jun 2009 10:40:54 +0000 (UTC) (envelope-from fabio@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n57AesOV082043 for ; Sun, 7 Jun 2009 10:40:54 GMT (envelope-from fabio@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n57Aese0082041 for perforce@freebsd.org; Sun, 7 Jun 2009 10:40:54 GMT (envelope-from fabio@FreeBSD.org) Date: Sun, 7 Jun 2009 10:40:54 GMT Message-Id: <200906071040.n57Aese0082041@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to fabio@FreeBSD.org using -f From: Fabio Checconi To: Perforce Change Reviews Cc: Subject: PERFORCE change 163699 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 07 Jun 2009 10:40:56 -0000 http://perforce.freebsd.org/chv.cgi?CH=163699 Change 163699 by fabio@fabio_granpasso on 2009/06/07 10:40:29 Initial import of the work done so far. Affected files ... .. //depot/projects/soc2009/fabio_gsched/Makefile#1 add .. //depot/projects/soc2009/fabio_gsched/geom_sched/Makefile#1 add .. //depot/projects/soc2009/fabio_gsched/geom_sched/geom_sched.c#1 add .. //depot/projects/soc2009/fabio_gsched/geom_sched/gsched.8#1 add .. //depot/projects/soc2009/fabio_gsched/geom_sched/sys/geom/sched/g_sched.c#1 add .. //depot/projects/soc2009/fabio_gsched/geom_sched/sys/geom/sched/g_sched.h#1 add .. //depot/projects/soc2009/fabio_gsched/geom_sched/sys/geom/sched/gs_as.c#1 add .. //depot/projects/soc2009/fabio_gsched/geom_sched/sys/geom/sched/gs_rr.c#1 add .. //depot/projects/soc2009/fabio_gsched/geom_sched/sys/geom/sched/gs_scheduler.h#1 add .. //depot/projects/soc2009/fabio_gsched/geom_sched/sys/geom/sched/gs_ssd.c#1 add .. //depot/projects/soc2009/fabio_gsched/geom_sched/sys/geom/sched/subr_disk.c#1 add .. //depot/projects/soc2009/fabio_gsched/geom_sched/sys/modules/geom/geom_sched/Makefile#1 add .. //depot/projects/soc2009/fabio_gsched/geom_sched/sys/modules/geom/geom_sched/Makefile.inc#1 add .. //depot/projects/soc2009/fabio_gsched/geom_sched/sys/modules/geom/geom_sched/gs_sched/Makefile#1 add .. //depot/projects/soc2009/fabio_gsched/geom_sched/sys/modules/geom/geom_sched/gsched_as/Makefile#1 add .. //depot/projects/soc2009/fabio_gsched/geom_sched/sys/modules/geom/geom_sched/gsched_rr/Makefile#1 add .. //depot/projects/soc2009/fabio_gsched/geom_sched/sys/modules/geom/geom_sched/gsched_ssd/Makefile#1 add Differences ... From owner-p4-projects@FreeBSD.ORG Sun Jun 7 11:14:29 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 5F0271065673; Sun, 7 Jun 2009 11:14:29 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 06EC11065679 for ; Sun, 7 Jun 2009 11:14:29 +0000 (UTC) (envelope-from mav@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id E807E8FC1B for ; Sun, 7 Jun 2009 11:14:28 +0000 (UTC) (envelope-from mav@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n57BESY7085552 for ; Sun, 7 Jun 2009 11:14:28 GMT (envelope-from mav@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n57BESW6085550 for perforce@freebsd.org; Sun, 7 Jun 2009 11:14:28 GMT (envelope-from mav@freebsd.org) Date: Sun, 7 Jun 2009 11:14:28 GMT Message-Id: <200906071114.n57BESW6085550@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to mav@freebsd.org using -f From: Alexander Motin To: Perforce Change Reviews Cc: Subject: PERFORCE change 163700 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 07 Jun 2009 11:14:30 -0000 http://perforce.freebsd.org/chv.cgi?CH=163700 Change 163700 by mav@mav_mavbook on 2009/06/07 11:14:02 Change the way in which ATA commands are passed. Instead of 4 formalized fileds, pass full set of ATA registers. It was not so bad idea, but I have found that some ATA commands has different format, and moving formatting code to SIM will lead to code duplication and making code more cryptic. Add field for command result register set. Affected files ... .. //depot/projects/scottl-camlock/src/sys/cam/ata/ata_all.c#6 edit .. //depot/projects/scottl-camlock/src/sys/cam/ata/ata_all.h#6 edit .. //depot/projects/scottl-camlock/src/sys/cam/ata/ata_da.c#7 edit .. //depot/projects/scottl-camlock/src/sys/cam/ata/ata_xpt.c#11 edit .. //depot/projects/scottl-camlock/src/sys/cam/cam_ccb.h#19 edit .. //depot/projects/scottl-camlock/src/sys/dev/ahci/ahci.c#15 edit Differences ... ==== //depot/projects/scottl-camlock/src/sys/cam/ata/ata_all.c#6 (text+ko) ==== @@ -80,4 +80,57 @@ printf(" device\n"); } +void +ata_36bit_cmd(struct ccb_ataio *ataio, uint8_t cmd, uint8_t features, + uint32_t lba, uint8_t sector_count) +{ + bzero(&ataio->cmd, sizeof(ataio->cmd)); + ataio->cmd.flags = 0; + ataio->cmd.command = cmd; + ataio->cmd.features = features; + ataio->cmd.lba_low = lba; + ataio->cmd.lba_mid = lba >> 8; + ataio->cmd.lba_high = lba >> 16; + ataio->cmd.device = 0x40 | ((lba >> 24) & 0x0f); + ataio->cmd.sector_count = sector_count; +} + +void +ata_48bit_cmd(struct ccb_ataio *ataio, uint8_t cmd, uint16_t features, + uint64_t lba, uint16_t sector_count) +{ + bzero(&ataio->cmd, sizeof(ataio->cmd)); + ataio->cmd.flags = CAM_ATAIO_48BIT; + ataio->cmd.command = cmd; + ataio->cmd.features = features; + ataio->cmd.lba_low = lba; + ataio->cmd.lba_mid = lba >> 8; + ataio->cmd.lba_high = lba >> 16; + ataio->cmd.device = 0x40; + ataio->cmd.lba_low_exp = lba >> 24; + ataio->cmd.lba_mid_exp = lba >> 32; + ataio->cmd.lba_high_exp = lba >> 40; + ataio->cmd.features_exp = features >> 8; + ataio->cmd.sector_count = sector_count; + ataio->cmd.sector_count_exp = sector_count >> 8; +} + +void +ata_ncq_cmd(struct ccb_ataio *ataio, uint8_t cmd, + uint64_t lba, uint16_t sector_count) +{ + bzero(&ataio->cmd, sizeof(ataio->cmd)); + ataio->cmd.flags = CAM_ATAIO_48BIT | CAM_ATAIO_FPDMA; + ataio->cmd.command = cmd; + ataio->cmd.features = sector_count; + ataio->cmd.lba_low = lba; + ataio->cmd.lba_mid = lba >> 8; + ataio->cmd.lba_high = lba >> 16; + ataio->cmd.device = 0x40; + ataio->cmd.lba_low_exp = lba >> 24; + ataio->cmd.lba_mid_exp = lba >> 32; + ataio->cmd.lba_high_exp = lba >> 40; + ataio->cmd.features_exp = sector_count >> 8; +} + #endif /* _KERNEL */ ==== //depot/projects/scottl-camlock/src/sys/cam/ata/ata_all.h#6 (text+ko) ==== @@ -34,16 +34,56 @@ union ccb; struct ata_cmd { - u_int8_t command; /* command reg */ u_int8_t flags; /* ATA command flags */ #define CAM_ATAIO_48BIT 0x01 /* Command has 48-bit format */ #define CAM_ATAIO_FPDMA 0x02 /* FPDMA command */ - u_int16_t feature; /* feature reg */ - u_int16_t count; /* count reg */ - u_int64_t lba; /* lba reg */ +#define CAM_ATAIO_CONTROL 0x04 /* Control, not a command */ + + u_int8_t command; + u_int8_t features; + + u_int8_t lba_low; + u_int8_t lba_mid; + u_int8_t lba_high; + u_int8_t device; + + u_int8_t lba_low_exp; + u_int8_t lba_mid_exp; + u_int8_t lba_high_exp; + u_int8_t features_exp; + + u_int8_t sector_count; + u_int8_t sector_count_exp; + u_int8_t control; +}; + +struct ata_res { + u_int8_t flags; /* ATA command flags */ +#define CAM_ATAIO_48BIT 0x01 /* Command has 48-bit format */ + + u_int8_t status; + u_int8_t error; + + u_int8_t lba_low; + u_int8_t lba_mid; + u_int8_t lba_high; + u_int8_t device; + + u_int8_t lba_low_exp; + u_int8_t lba_mid_exp; + u_int8_t lba_high_exp; + + u_int8_t sector_count; + u_int8_t sector_count_exp; }; -void -ata_print_ident(struct ata_params *ident_data); +void ata_print_ident(struct ata_params *ident_data); + +void ata_36bit_cmd(struct ccb_ataio *ataio, uint8_t cmd, uint8_t features, + uint32_t lba, uint8_t sector_count); +void ata_48bit_cmd(struct ccb_ataio *ataio, uint8_t cmd, uint16_t features, + uint64_t lba, uint16_t sector_count); +void ata_ncq_cmd(struct ccb_ataio *ataio, uint8_t cmd, + uint64_t lba, uint16_t sector_count); #endif ==== //depot/projects/scottl-camlock/src/sys/cam/ata/ata_da.c#7 (text+ko) ==== @@ -747,6 +747,10 @@ switch (bp->bio_cmd) { case BIO_READ: case BIO_WRITE: + { + uint64_t lba = bp->bio_pblkno; + uint16_t count = bp->bio_bcount / softc->params.secsize; + cam_fill_ataio(ataio, da_retry_count, dadone, @@ -757,31 +761,34 @@ bp->bio_bcount, da_default_timeout*1000); - ataio->cmd.feature = 0; - ataio->cmd.lba = bp->bio_pblkno; - ataio->cmd.count = bp->bio_bcount / softc->params.secsize; if (softc->flags & DA_FLAG_CAN_NCQ) { - if (bp->bio_cmd == BIO_READ) - ataio->cmd.command = ATA_READ_FPDMA_QUEUED; - else - ataio->cmd.command = ATA_WRITE_FPDMA_QUEUED; - ataio->cmd.flags = CAM_ATAIO_48BIT | CAM_ATAIO_FPDMA; + if (bp->bio_cmd == BIO_READ) { + ata_ncq_cmd(ataio, ATA_READ_FPDMA_QUEUED, + lba, count); + } else { + ata_ncq_cmd(ataio, ATA_WRITE_FPDMA_QUEUED, + lba, count); + } } else if ((softc->flags & DA_FLAG_CAN_48BIT) && - (ataio->cmd.lba + ataio->cmd.count >= ATA_MAX_28BIT_LBA || - ataio->cmd.count >= 256)) { - if (bp->bio_cmd == BIO_READ) - ataio->cmd.command = ATA_READ_DMA48; - else - ataio->cmd.command = ATA_WRITE_DMA48; - ataio->cmd.flags = CAM_ATAIO_48BIT; + (lba + count >= ATA_MAX_28BIT_LBA || + count >= 256)) { + if (bp->bio_cmd == BIO_READ) { + ata_48bit_cmd(ataio, ATA_READ_DMA48, + 0, lba, count); + } else { + ata_48bit_cmd(ataio, ATA_WRITE_DMA48, + 0, lba, count); + } } else { - if (bp->bio_cmd == BIO_READ) - ataio->cmd.command = ATA_READ_DMA; - else - ataio->cmd.command = ATA_WRITE_DMA; - ataio->cmd.flags = 0; + if (bp->bio_cmd == BIO_READ) { + ata_36bit_cmd(ataio, ATA_READ_DMA, + 0, lba, count); + } else { + ata_36bit_cmd(ataio, ATA_WRITE_DMA, + 0, lba, count); + } } - + } break; case BIO_FLUSH: cam_fill_ataio(ataio, @@ -793,16 +800,10 @@ 0, da_default_timeout*1000); - if (softc->flags & DA_FLAG_CAN_48BIT) { - ataio->cmd.command = ATA_FLUSHCACHE48; - ataio->cmd.flags = CAM_ATAIO_48BIT; - } else { - ataio->cmd.command = ATA_FLUSHCACHE; - ataio->cmd.flags = 0; - } - ataio->cmd.feature = 0; - ataio->cmd.lba = 0; - ataio->cmd.count = 0; + if (softc->flags & DA_FLAG_CAN_48BIT) + ata_48bit_cmd(ataio, ATA_FLUSHCACHE48, 0, 0, 0); + else + ata_48bit_cmd(ataio, ATA_FLUSHCACHE, 0, 0, 0); break; } start_ccb->ccb_h.ccb_state = DA_CCB_BUFFER_IO; ==== //depot/projects/scottl-camlock/src/sys/cam/ata/ata_xpt.c#11 (text+ko) ==== @@ -355,9 +355,9 @@ 30 * 1000); if (periph->path->device->protocol == PROTO_ATA) - ataio->cmd.command = ATA_ATA_IDENTIFY; + ata_36bit_cmd(ataio, ATA_ATA_IDENTIFY, 0, 0, 0); else - ataio->cmd.command = ATA_ATAPI_IDENTIFY; + ata_36bit_cmd(ataio, ATA_ATAPI_IDENTIFY, 0, 0, 0); break; } case PROBE_INQUIRY: ==== //depot/projects/scottl-camlock/src/sys/cam/cam_ccb.h#19 (text+ko) ==== @@ -632,7 +632,8 @@ struct ccb_hdr ccb_h; union ccb *next_ccb; /* Ptr for next CCB for action */ u_int8_t *req_map; /* Ptr to mapping info */ - struct ata_cmd cmd; + struct ata_cmd cmd; /* ATA command register set */ + struct ata_res res; /* ATA result register set */ u_int8_t *data_ptr; /* Ptr to the data buf/SG list */ u_int32_t dxfer_len; /* Data transfer length */ /* Autosense storage */ @@ -1027,11 +1028,6 @@ ataio->data_ptr = data_ptr; ataio->dxfer_len = dxfer_len; ataio->tag_action = tag_action; - ataio->cmd.command = 0; - ataio->cmd.flags = 0; - ataio->cmd.feature = 0; - ataio->cmd.count = 0; - ataio->cmd.lba = 0; } void cam_calc_geometry(struct ccb_calc_geometry *ccg, int extended); ==== //depot/projects/scottl-camlock/src/sys/dev/ahci/ahci.c#15 (text+ko) ==== @@ -1562,39 +1562,26 @@ } fis[7] = ATA_D_LBA; fis[15] = ATA_A_4BIT; - } else if (ccb->ataio.cmd.flags & CAM_ATAIO_FPDMA) { - fis[0] = 0x27; /* host to device */ - fis[1] = 0x80 | (ccb->ccb_h.target_id & 0x0f); - fis[2] = ccb->ataio.cmd.command; - fis[3] = ccb->ataio.cmd.count; - fis[4] = ccb->ataio.cmd.lba; - fis[5] = ccb->ataio.cmd.lba >> 8; - fis[6] = ccb->ataio.cmd.lba >> 16; - fis[7] = ATA_D_LBA; - fis[8] = ccb->ataio.cmd.lba >> 24; - fis[9] = ccb->ataio.cmd.lba >> 32; - fis[10] = ccb->ataio.cmd.lba >> 40; - fis[11] = ccb->ataio.cmd.count >> 8; - fis[12] = tag << 3; - fis[13] = 0; - fis[15] = ATA_A_4BIT; } else { fis[0] = 0x27; /* host to device */ fis[1] = 0x80 | (ccb->ccb_h.target_id & 0x0f); fis[2] = ccb->ataio.cmd.command; - fis[3] = ccb->ataio.cmd.feature; - fis[4] = ccb->ataio.cmd.lba; - fis[5] = ccb->ataio.cmd.lba >> 8; - fis[6] = ccb->ataio.cmd.lba >> 16; - fis[7] = ATA_D_LBA; - if (!(ccb->ataio.cmd.flags & CAM_ATAIO_48BIT)) - fis[7] |= (ATA_D_IBM | (ccb->ataio.cmd.lba >> 24 & 0x0f)); - fis[8] = ccb->ataio.cmd.lba >> 24; - fis[9] = ccb->ataio.cmd.lba >> 32; - fis[10] = ccb->ataio.cmd.lba >> 40; - fis[11] = ccb->ataio.cmd.feature >> 8; - fis[12] = ccb->ataio.cmd.count; - fis[13] = ccb->ataio.cmd.count >> 8; + fis[3] = ccb->ataio.cmd.features; + fis[4] = ccb->ataio.cmd.lba_low; + fis[5] = ccb->ataio.cmd.lba_mid; + fis[6] = ccb->ataio.cmd.lba_high; + fis[7] = ccb->ataio.cmd.device; + fis[8] = ccb->ataio.cmd.lba_low_exp; + fis[9] = ccb->ataio.cmd.lba_mid_exp; + fis[10] = ccb->ataio.cmd.lba_high_exp; + fis[11] = ccb->ataio.cmd.features_exp; + if (ccb->ataio.cmd.flags & CAM_ATAIO_FPDMA) { + fis[12] = tag << 3; + fis[13] = 0; + } else { + fis[12] = ccb->ataio.cmd.sector_count; + fis[13] = ccb->ataio.cmd.sector_count_exp; + } fis[15] = ATA_A_4BIT; } return (20); From owner-p4-projects@FreeBSD.ORG Sun Jun 7 11:22:39 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id DDC921065676; Sun, 7 Jun 2009 11:22:37 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 9C574106564A for ; Sun, 7 Jun 2009 11:22:37 +0000 (UTC) (envelope-from zhaoshuai@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 886108FC1F for ; Sun, 7 Jun 2009 11:22:37 +0000 (UTC) (envelope-from zhaoshuai@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n57BMbu5086189 for ; Sun, 7 Jun 2009 11:22:37 GMT (envelope-from zhaoshuai@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n57BMb1A086187 for perforce@freebsd.org; Sun, 7 Jun 2009 11:22:37 GMT (envelope-from zhaoshuai@FreeBSD.org) Date: Sun, 7 Jun 2009 11:22:37 GMT Message-Id: <200906071122.n57BMb1A086187@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to zhaoshuai@FreeBSD.org using -f From: Zhao Shuai To: Perforce Change Reviews Cc: Subject: PERFORCE change 163701 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 07 Jun 2009 11:22:39 -0000 http://perforce.freebsd.org/chv.cgi?CH=163701 Change 163701 by zhaoshuai@zhaoshuai on 2009/06/07 11:21:54 add O_NONBLOCK handling in fifo_open() Affected files ... .. //depot/projects/soc2009/fifo/sys/fs/fifofs/fifo_vnops.c#9 edit Differences ... ==== //depot/projects/soc2009/fifo/sys/fs/fifofs/fifo_vnops.c#9 (text+ko) ==== @@ -40,6 +40,8 @@ #include #include #include +#include +#include #include #include #include @@ -114,6 +116,9 @@ .vop_write = VOP_PANIC, }; +struct mtx fifo_mtx; +MTX_SYSINIT(fifo, &fifo_mtx, "fifo mutex", MTX_DEF); + /* * Open called to set up a new instance of a fifo or * to find an active instance of a fifo. @@ -155,15 +160,77 @@ /* * General access to fi_readers and fi_writers is protected using * the vnode lock. + * + * Protect the increment of fi_readers and fi_writers and the + * associated calls to wakeup() with the fifo mutex in addition + * to the vnode lock. This allows the vnode lock to be dropped + * for the msleep() calls below, and using the fifo mutex with + * msleep() prevents the wakeup from being missed. */ - if (ap->a_mode & FREAD) + mtx_lock(&fifo_mtx); + if (ap->a_mode & FREAD) { fip->fi_readers++; + if (fip->fi_readers == 1 && fip->fi_writers > 0) + wakeup(&fip->fi_writers); + } if (ap->a_mode & FWRITE) { if ((ap->a_mode & O_NONBLOCK) && fip->fi_readers == 0) return (ENXIO); fip->fi_writers++; + if (fip->fi_writers == 1 && fip->fi_readers > 0) + wakeup(&fip->fi_readers); } - + if ((ap->a_mode & O_NONBLOCK) == 0) { + if ((ap->a_mode & FREAD) && fip->fi_writers == 0) { + VOP_UNLOCK(vp, 0); + error = msleep(&fip->fi_readers, &fifo_mtx, + PDROP | PCATCH, "fifoor", 0); + vn_lock(vp, LK_EXCLUSIVE | LK_RETRY); + if (error) { + fip->fi_readers--; + if (fip->fi_readers == 0) { + generic_pipe_close(fip->fi_rpipe); + if (fip->fi_writers == 0) { + generic_pipe_close(fip->fi_wpipe); + vp->v_fifoinfo = NULL; + free(fip, M_VNODE); + } + } + return (error); + } + mtx_lock(&fifo_mtx); + /* + * We must have got woken up because we had a writer. + * That (and not still having one) is the condition + * that we must wait for. + */ + } + if ((ap->a_mode & FWRITE) && fip->fi_readers == 0) { + VOP_UNLOCK(vp, 0); + error = msleep(&fip->fi_writers, &fifo_mtx, + PDROP | PCATCH, "fifoow", 0); + vn_lock(vp, LK_EXCLUSIVE | LK_RETRY); + if (error) { + fip->fi_writers--; + if (fip->fi_writers == 0) { + generic_pipe_close(fip->fi_wpipe); + if (fip->fi_readers == 0) { + generic_pipe_close(fip->fi_rpipe); + vp->v_fifoinfo = NULL; + free(fip, M_VNODE); + } + } + return (error); + } + /* + * We must have got woken up because we had + * a reader. That (and not still having one) + * is the condition that we must wait for. + */ + mtx_lock(&fifo_mtx); + } + } + mtx_unlock(&fifo_mtx); KASSERT(fp != NULL, ("can't fifo/vnode bypass")); KASSERT(fp->f_ops == &badfileops, ("not badfileops in fifo_open")); finit(fp, fp->f_flag, DTYPE_FIFO, fip, &fifo_ops_f); From owner-p4-projects@FreeBSD.ORG Sun Jun 7 11:22:41 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id C206510656DC; Sun, 7 Jun 2009 11:22:38 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id AE2D7106566B for ; Sun, 7 Jun 2009 11:22:37 +0000 (UTC) (envelope-from pgj@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 9BF118FC20 for ; Sun, 7 Jun 2009 11:22:37 +0000 (UTC) (envelope-from pgj@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n57BMbwI086194 for ; Sun, 7 Jun 2009 11:22:37 GMT (envelope-from pgj@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n57BMbI3086192 for perforce@freebsd.org; Sun, 7 Jun 2009 11:22:37 GMT (envelope-from pgj@FreeBSD.org) Date: Sun, 7 Jun 2009 11:22:37 GMT Message-Id: <200906071122.n57BMbI3086192@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to pgj@FreeBSD.org using -f From: Gabor Pali To: Perforce Change Reviews Cc: Subject: PERFORCE change 163702 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 07 Jun 2009 11:22:42 -0000 http://perforce.freebsd.org/chv.cgi?CH=163702 Change 163702 by pgj@petymeg-current on 2009/06/07 11:22:36 Move capability to return all local sockets (of all protocols) from netstat(1) to libnetstat Affected files ... .. //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat.c#4 edit .. //depot/projects/soc2009/pgj_libstat/src/usr.bin/netstat/unix.c#5 edit Differences ... ==== //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat.c#4 (text+ko) ==== @@ -158,37 +158,62 @@ struct socket_type_list *list, int flags, void *kvm_handle) { kvm_t *kvm; - struct xsocket *so; - struct xunpgen *xug, oxug; - struct xunpcb *xunp; + int use_kvm; + + use_kvm = flags & ~NETSTAT_SOCKET_KVM; + if (use_kvm) { + /* Use KVM to retrieve data. */ + kvm = (kvm_t *)kvm_handle; + if (kvm_nlist(kvm, nl) < 0) { + list->stl_error = NETSTAT_ERROR_KVM; + return (-1); + } + } + +#define NLP_KVM(type, list, kvm, nl) do { \ + if (net_local_pcblist_kvm((type), (list), (kvm), (nl)) != 0) { \ + list->stl_error = NETSTAT_ERROR_UNDEFINED; \ + return (-1); \ + } \ +} while (0) + +#define NLP_SCT(type, list) do { \ + if (net_local_pcblist_sysctl((type), (list)) != 0) { \ + list->stl_error = NETSTAT_ERROR_UNDEFINED; \ + return (-1); \ + } \ +} while (0) switch (domain) { case PF_LOCAL: switch (type) { case SOCK_STREAM: case SOCK_DGRAM: - if (flags & ~NETSTAT_SOCKET_KVM) { - /* Use KVM to retrieve data. */ - kvm = (kvm_t *)kvm_handle; - if (kvm_nlist(kvm, nl) < 0) { - list->stl_error = NETSTAT_ERROR_KVM; - return (-1); - } - - return (net_local_pcblist_kvm(type, list, kvm, - nl)); + if (use_kvm) + NLP_KVM(type, list, kvm, nl); + else + /* Use sysctl (or something else). */ + NLP_SCT(type, list); + /* All PF_LOCAL */ + case 0: + if (use_kvm) { + NLP_KVM(SOCK_STREAM, list, kvm, nl); + NLP_KVM(SOCK_DGRAM, list, kvm, nl); } else { - /* Use sysctl (or something else). */ - return (net_local_pcblist_sysctl(type, list)); + NLP_SCT(SOCK_STREAM, list); + NLP_SCT(SOCK_DGRAM, list); } + break; default: list->stl_error = NETSTAT_ERROR_UNSUPPORTED; return (-1); } + break; default: list->stl_error = NETSTAT_ERROR_UNSUPPORTED; return (-1); } - +#undef NLP_KVM +#undef NLP_SCT return (0); } ==== //depot/projects/soc2009/pgj_libstat/src/usr.bin/netstat/unix.c#5 (text+ko) ==== @@ -71,10 +71,9 @@ void unixpr(void *kvmd) { - int ret, type; struct socket_type_list *stlp; struct socket_type *stp; - int error; + int error, st_flags; kvm_t *kvm; kvm = (kvm_t *)kvmd; @@ -84,31 +83,28 @@ return; } - for (type = SOCK_STREAM; type <= SOCK_SEQPACKET; type++) { - ret = netstat_socket(PF_LOCAL, type, 0, stlp, - live ? 0 : NETSTAT_SOCKET_KVM, kvm); - if (ret < 0 && - netstat_stl_geterror(stlp) == NETSTAT_ERROR_UNSUPPORTED) - continue; - if (ret < 0) { - error = netstat_stl_geterror(stlp); - if (error == NETSTAT_ERROR_KVM) - warnx("netstat_socket: %s", kvm_geterr(kvm)); - else - warnx("netstat_socket: %s", - netstat_strerror(error)); - return; - } + st_flags = 0; + if (live) + st_flags |= NETSTAT_SOCKET_KVM; + + /* Get all the local sockets, regardless their types. */ + if (netstat_socket(PF_LOCAL, 0, 0, stlp, st_flags, kvm) < 0) { + error = netstat_stl_geterror(stlp); + if (error == NETSTAT_ERROR_KVM) + warnx("netstat_socket: %s", kvm_geterr(kvm)); + else + warnx("netstat_socket: %s", netstat_strerror(error)); + return; + } - /* - * It should be guaranteed that only active PCBs are - * returned. - */ - for (stp = netstat_stl_first(stlp); - stp != NULL; - stp = netstat_stl_next(stp)) { - unixdomainpr(stp); - } + /* + * It should be guaranteed that only active PCBs are + * returned. + */ + for (stp = netstat_stl_first(stlp); + stp != NULL; + stp = netstat_stl_next(stp)) { + unixdomainpr(stp); } } From owner-p4-projects@FreeBSD.ORG Sun Jun 7 11:31:47 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 5F1B41065672; Sun, 7 Jun 2009 11:31:47 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 1D5BA106564A for ; Sun, 7 Jun 2009 11:31:47 +0000 (UTC) (envelope-from zhaoshuai@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 0B8018FC13 for ; Sun, 7 Jun 2009 11:31:47 +0000 (UTC) (envelope-from zhaoshuai@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n57BVkgi086839 for ; Sun, 7 Jun 2009 11:31:46 GMT (envelope-from zhaoshuai@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n57BVkhP086837 for perforce@freebsd.org; Sun, 7 Jun 2009 11:31:46 GMT (envelope-from zhaoshuai@FreeBSD.org) Date: Sun, 7 Jun 2009 11:31:46 GMT Message-Id: <200906071131.n57BVkhP086837@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to zhaoshuai@FreeBSD.org using -f From: Zhao Shuai To: Perforce Change Reviews Cc: Subject: PERFORCE change 163703 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 07 Jun 2009 11:31:48 -0000 http://perforce.freebsd.org/chv.cgi?CH=163703 Change 163703 by zhaoshuai@zhaoshuai on 2009/06/07 11:31:28 fix a bug in sys_pipe.c Affected files ... .. //depot/projects/soc2009/fifo/sys/kern/sys_pipe.c#9 edit Differences ... ==== //depot/projects/soc2009/fifo/sys/kern/sys_pipe.c#9 (text+ko) ==== @@ -183,10 +183,15 @@ { struct pipe *pipe = fp->f_data; + int error; + error = generic_pipe_stat(pipe, ub, active_cred, td); + if (error != 0) + return (error); ub->st_uid = fp->f_cred->cr_uid; ub->st_gid = fp->f_cred->cr_gid; - return generic_pipe_stat(pipe, ub, active_cred, td); + return (0); + } static int From owner-p4-projects@FreeBSD.ORG Sun Jun 7 11:35:52 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 86147106567A; Sun, 7 Jun 2009 11:35:51 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 3EEDC1065676 for ; Sun, 7 Jun 2009 11:35:51 +0000 (UTC) (envelope-from zhaoshuai@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 127F38FC19 for ; Sun, 7 Jun 2009 11:35:51 +0000 (UTC) (envelope-from zhaoshuai@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n57BZoHY087206 for ; Sun, 7 Jun 2009 11:35:50 GMT (envelope-from zhaoshuai@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n57BZoLU087204 for perforce@freebsd.org; Sun, 7 Jun 2009 11:35:50 GMT (envelope-from zhaoshuai@FreeBSD.org) Date: Sun, 7 Jun 2009 11:35:50 GMT Message-Id: <200906071135.n57BZoLU087204@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to zhaoshuai@FreeBSD.org using -f From: Zhao Shuai To: Perforce Change Reviews Cc: Subject: PERFORCE change 163704 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 07 Jun 2009 11:35:53 -0000 http://perforce.freebsd.org/chv.cgi?CH=163704 Change 163704 by zhaoshuai@zhaoshuai on 2009/06/07 11:34:58 fix the tab space Affected files ... .. //depot/projects/soc2009/fifo/sys/kern/sys_pipe.c#10 edit Differences ... ==== //depot/projects/soc2009/fifo/sys/kern/sys_pipe.c#10 (text+ko) ==== @@ -187,7 +187,7 @@ error = generic_pipe_stat(pipe, ub, active_cred, td); if (error != 0) - return (error); + return (error); ub->st_uid = fp->f_cred->cr_uid; ub->st_gid = fp->f_cred->cr_gid; return (0); From owner-p4-projects@FreeBSD.ORG Sun Jun 7 11:48:04 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 311961065670; Sun, 7 Jun 2009 11:48:04 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id E5792106566B for ; Sun, 7 Jun 2009 11:48:03 +0000 (UTC) (envelope-from pgj@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id B95FC8FC08 for ; Sun, 7 Jun 2009 11:48:03 +0000 (UTC) (envelope-from pgj@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n57Bm3ug088095 for ; Sun, 7 Jun 2009 11:48:03 GMT (envelope-from pgj@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n57Bm3RZ088093 for perforce@freebsd.org; Sun, 7 Jun 2009 11:48:03 GMT (envelope-from pgj@FreeBSD.org) Date: Sun, 7 Jun 2009 11:48:03 GMT Message-Id: <200906071148.n57Bm3RZ088093@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to pgj@FreeBSD.org using -f From: Gabor Pali To: Perforce Change Reviews Cc: Subject: PERFORCE change 163705 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 07 Jun 2009 11:48:04 -0000 http://perforce.freebsd.org/chv.cgi?CH=163705 Change 163705 by pgj@petymeg-current on 2009/06/07 11:47:56 Add and use netstat_stl_iterate() for iterating socket_type_list information instead of using netstat_stl_first() and netstat_stl_next() directly Affected files ... .. //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat.c#5 edit .. //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat.h#7 edit .. //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat_util.c#6 edit .. //depot/projects/soc2009/pgj_libstat/src/usr.bin/netstat/unix.c#6 edit Differences ... ==== //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat.c#5 (text+ko) ==== ==== //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat.h#7 (text+ko) ==== @@ -25,10 +25,10 @@ /* "Socket" */ struct socket_type_list *netstat_stl_alloc(void); -struct socket_type *netstat_stl_first(struct socket_type_list *list); -struct socket_type *netstat_stl_next(struct socket_type *list); struct socket_type *netstat_stl_find(struct socket_type_list *list, unsigned short family, const char *name); +void netstat_stl_iterate(struct socket_type_list *list, + void (*func)(struct socket_type *)); void netstat_stl_free(struct socket_type_list *list); int netstat_stl_geterror(struct socket_type_list *list); ==== //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat_util.c#6 (text+ko) ==== @@ -78,17 +78,16 @@ return (stlp); } -struct socket_type * -netstat_stl_first(struct socket_type_list *list) +void +netstat_stl_iterate(struct socket_type_list *list, + void (*func)(struct socket_type *)) { - return (LIST_FIRST(&list->stl_list)); -} + struct socket_type *stp; -struct socket_type * -netstat_stl_next(struct socket_type *stp) -{ - return (LIST_NEXT(stp, st_list)); -} + /* XXX: Keep eye on disappering connections. */ + LIST_FOREACH(stp, &list->stl_list, st_list) + func(stp); +} void _netstat_stl_empty(struct socket_type_list *list) @@ -120,6 +119,7 @@ { struct socket_type *stp; + /* XXX: Keep eye on disappering connections. */ LIST_FOREACH(stp, &list->stl_list, st_list) { if ((stp->st_family == family || family == PF_UNSPEC) && ==== //depot/projects/soc2009/pgj_libstat/src/usr.bin/netstat/unix.c#6 (text+ko) ==== @@ -72,7 +72,6 @@ unixpr(void *kvmd) { struct socket_type_list *stlp; - struct socket_type *stp; int error, st_flags; kvm_t *kvm; @@ -98,14 +97,12 @@ } /* - * It should be guaranteed that only active PCBs are + * Display received data by iterating the socket_type_list. + * + * It should be guaranteed (by libnetstat) that only active PCBs are * returned. */ - for (stp = netstat_stl_first(stlp); - stp != NULL; - stp = netstat_stl_next(stp)) { - unixdomainpr(stp); - } + netstat_stl_iterate(stlp, unixdomainpr); } static void From owner-p4-projects@FreeBSD.ORG Sun Jun 7 12:43:00 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 773B61065674; Sun, 7 Jun 2009 12:42:59 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 373791065670 for ; Sun, 7 Jun 2009 12:42:59 +0000 (UTC) (envelope-from zhaoshuai@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 24E5D8FC35 for ; Sun, 7 Jun 2009 12:42:59 +0000 (UTC) (envelope-from zhaoshuai@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n57Cgxq9093070 for ; Sun, 7 Jun 2009 12:42:59 GMT (envelope-from zhaoshuai@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n57CgxUM093068 for perforce@freebsd.org; Sun, 7 Jun 2009 12:42:59 GMT (envelope-from zhaoshuai@FreeBSD.org) Date: Sun, 7 Jun 2009 12:42:59 GMT Message-Id: <200906071242.n57CgxUM093068@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to zhaoshuai@FreeBSD.org using -f From: Zhao Shuai To: Perforce Change Reviews Cc: Subject: PERFORCE change 163706 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 07 Jun 2009 12:43:01 -0000 http://perforce.freebsd.org/chv.cgi?CH=163706 Change 163706 by zhaoshuai@zhaoshuai on 2009/06/07 12:42:12 add fifo_stat_f() and fifo_ioctl_f() several coding style fix Affected files ... .. //depot/projects/soc2009/fifo/sys/fs/fifofs/fifo_vnops.c#10 edit .. //depot/projects/soc2009/fifo/sys/kern/sys_pipe.c#11 edit Differences ... ==== //depot/projects/soc2009/fifo/sys/fs/fifofs/fifo_vnops.c#10 (text+ko) ==== @@ -43,8 +43,10 @@ #include #include #include +#include #include #include +#include #include #include @@ -146,7 +148,8 @@ return (EINVAL); if ((fip = vp->v_fifoinfo) == NULL) { fip = malloc(sizeof(*fip), M_VNODE, M_WAITOK); - if (( error = generic_pipe_create(td, &rpipe, &wpipe)) != 0) { + error = generic_pipe_create(td, &rpipe, &wpipe); + if (error) { free(fip, M_VNODE); return (error); } @@ -389,9 +392,8 @@ { struct fifoinfo *fip = fp->f_data; - struct pipe *rpipe = fip->fi_rpipe; - return (generic_pipe_read(rpipe, uio, cred, flags, td)); + return (generic_pipe_read(fip->fi_rpipe, uio, cred, flags, td)); } static int @@ -399,16 +401,22 @@ { struct fifoinfo *fip = fp->f_data; - struct pipe *wpipe = fip->fi_wpipe; - return (generic_pipe_write(wpipe, uio, cred, flags, td)); + return (generic_pipe_write(fip->fi_wpipe, uio, cred, flags, td)); } static int fifo_stat_f(struct file *fp, struct stat *sb, struct ucred *cred, struct thread *td) { + struct fifoinfo *fip = fp->f_data; + int error; - return (vnops.fo_stat(fp, sb, cred, td)); + error = generic_pipe_stat(fip->fi_rpipe, sb, cred, td); + if (error) + return (error); + sb->st_uid = fp->f_cred->cr_uid; + sb->st_gid = fp->f_cred->cr_gid; + return (0); } static int @@ -425,12 +433,52 @@ return (vnops.fo_close(fp, td)); } +/* + * The implementation of ioctl() for named fifos is complicated by the fact + * that we permit O_RDWR fifo file descriptors, meaning that the actions of + * ioctls may have to be applied to both the underlying pipes rather than + * just one. + * + * Unlike sys_pipe.c, fifos do not implement the deprecated TIOCSPGRP and + * TIOCGPGRP ioctls. Earlier implementations of fifos did forward SIOCSPGRP + * and SIOCGPGRP ioctls, so we might need to re-add those here. + */ static int fifo_ioctl_f(struct file *fp, u_long com, void *data, struct ucred *cred, struct thread *td) { + struct fifoinfo *fip = fp->f_data; + int error = ENOTTY; + + switch (com) { + case FIONBIO: + case FIOASYNC: + case FIOSETOWN: + case FIOGETOWN: + if (fp->f_flag & FREAD) { + error = generic_pipe_ioctl(fip->fi_rpipe, com, data, cred, td); + if (error) + return (error); + } + if (fp->f_flag & FWRITE) + error = generic_pipe_ioctl(fip->fi_wpipe, com, data, cred, td); + return (error); - return (0); + case FIONREAD: + /* + * FIONREAD will return 0 for non-readable descriptors, and + * the results of FIONREAD on the read socket for readable + * descriptors. + */ + if (!(fp->f_flag & FREAD)) { + *(int *)data = 0; + return (0); + } + return (generic_pipe_ioctl(fip->fi_rpipe, com, data, cred, td)); + + default: + return (ENOTTY); + } } static int ==== //depot/projects/soc2009/fifo/sys/kern/sys_pipe.c#11 (text+ko) ==== @@ -54,15 +54,15 @@ static fo_close_t pipe_close; static struct fileops pipeops = { - .fo_read = pipe_read, - .fo_write = pipe_write, - .fo_truncate = pipe_truncate, - .fo_ioctl = pipe_ioctl, - .fo_poll = pipe_poll, - .fo_kqfilter = pipe_kqfilter, - .fo_stat = pipe_stat, - .fo_close = pipe_close, - .fo_flags = DFLAG_PASSABLE + .fo_read = pipe_read, + .fo_write = pipe_write, + .fo_truncate = pipe_truncate, + .fo_ioctl = pipe_ioctl, + .fo_poll = pipe_poll, + .fo_kqfilter = pipe_kqfilter, + .fo_stat = pipe_stat, + .fo_close = pipe_close, + .fo_flags = DFLAG_PASSABLE }; /* @@ -77,8 +77,9 @@ struct pipe *rpipe, *wpipe; int fd, error; - if ((error = generic_pipe_create(td, &rpipe, &wpipe)) != 0) - return (error); + error = generic_pipe_create(td, &rpipe, &wpipe); + if (error) + return (error); error = falloc(td, &rf, &fd); if (error) { @@ -186,7 +187,7 @@ int error; error = generic_pipe_stat(pipe, ub, active_cred, td); - if (error != 0) + if (error) return (error); ub->st_uid = fp->f_cred->cr_uid; ub->st_gid = fp->f_cred->cr_gid; From owner-p4-projects@FreeBSD.ORG Sun Jun 7 12:43:02 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 66BDC10656D0; Sun, 7 Jun 2009 12:42:59 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 5809C1065672 for ; Sun, 7 Jun 2009 12:42:59 +0000 (UTC) (envelope-from mav@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 462E98FC36 for ; Sun, 7 Jun 2009 12:42:59 +0000 (UTC) (envelope-from mav@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n57CgxPg093075 for ; Sun, 7 Jun 2009 12:42:59 GMT (envelope-from mav@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n57Cgx3U093073 for perforce@freebsd.org; Sun, 7 Jun 2009 12:42:59 GMT (envelope-from mav@freebsd.org) Date: Sun, 7 Jun 2009 12:42:59 GMT Message-Id: <200906071242.n57Cgx3U093073@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to mav@freebsd.org using -f From: Alexander Motin To: Perforce Change Reviews Cc: Subject: PERFORCE change 163707 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 07 Jun 2009 12:43:04 -0000 http://perforce.freebsd.org/chv.cgi?CH=163707 Change 163707 by mav@mav_mavbook on 2009/06/07 12:42:52 Teach ATA commands to resurn result. Remove PM control functions from driver. Soft reset will be the next. That functions will be implemented on SATA XPT layer. Affected files ... .. //depot/projects/scottl-camlock/src/sys/dev/ahci/ahci.c#16 edit Differences ... ==== //depot/projects/scottl-camlock/src/sys/dev/ahci/ahci.c#16 (text+ko) ==== @@ -68,8 +68,6 @@ static void ahci_execute_command(struct ahci_slot *slot); static void ahci_timeout(struct ahci_slot *slot); static void ahci_end_transaction(struct ahci_slot *slot, enum ahci_err_type et); -//static int ahci_pm_read(device_t dev, int port, int reg, u_int32_t *result); -//static int ahci_pm_write(device_t dev, int port, int reg, u_int32_t result); static int ahci_hardreset(device_t dev, int port, uint32_t *signature); static u_int32_t ahci_softreset(device_t dev, int port); static int ahci_setup_fis(struct ahci_cmd_tab *ctp, union ccb *ccb, int tag); @@ -937,7 +935,7 @@ { device_t dev = slot->dev; struct ahci_channel *ch = device_get_softc(dev); - struct ahci_cmd_list *clp; +// struct ahci_cmd_list *clp; u_int32_t tf_data; //device_printf(dev, "%s slot %d\n", __func__, slot->slot); @@ -954,27 +952,29 @@ request->error = tf_data >> 8; } #endif - /* on control commands read back registers to the request struct */ -/* if (request->flags & ATA_R_CONTROL) { - struct ata_device *atadev = device_get_softc(request->dev); + /* Read registers to the result struct */ + if (slot->ccb->ccb_h.func_code == XPT_ATA_IO) { + struct ata_res *res = &slot->ccb->ataio.res; u_int8_t *fis = ch->dma.work + AHCI_FB_OFFSET + 0x40; - request->u.ata.count = fis[12] | ((u_int16_t)fis[13] << 8); - request->u.ata.lba = fis[4] | ((u_int64_t)fis[5] << 8) | - ((u_int64_t)fis[6] << 16); - if (atadev->flags & ATA_D_48BIT_ACTIVE) - request->u.ata.lba |= ((u_int64_t)fis[8] << 24) | - ((u_int64_t)fis[9] << 32) | - ((u_int64_t)fis[10] << 40); - else - request->u.ata.lba |= ((u_int64_t)(fis[7] & 0x0f) << 24); + res->status = fis[2]; + res->error = fis[3]; + res->lba_low = fis[4]; + res->lba_mid = fis[5]; + res->lba_high = fis[6]; + res->device = fis[7]; + res->lba_low_exp = fis[8]; + res->lba_mid_exp = fis[9]; + res->lba_high_exp = fis[10]; + res->sector_count = fis[12]; + res->sector_count_exp = fis[13]; } -*/ +#if 0 /* record how much data we actually moved */ clp = (struct ahci_cmd_list *) (ch->dma.work + AHCI_CL_OFFSET + (AHCI_CL_SIZE * slot->slot)); -// request->donecount = clp->bytecount; - + request->donecount = clp->bytecount; +#endif if ((slot->ccb->ccb_h.flags & CAM_DIR_MASK) != CAM_DIR_NONE) { bus_dmamap_sync(slot->dma.sg_tag, slot->dma.sg_map, BUS_DMASYNC_POSTWRITE); @@ -1061,60 +1061,6 @@ return (0); } -#if 0 -static int -ahci_pm_read(device_t dev, int port, int reg, u_int32_t *result) -{ - struct ahci_channel *ch = device_get_softc(dev); - struct ahci_cmd_tab *ctp = - (struct ahci_cmd_tab *)(ch->dma.work + AHCI_CT_OFFSET); - u_int8_t *fis = ch->dma.work + AHCI_FB_OFFSET + 0x40; - - bzero(ctp->cfis, 64); - ctp->cfis[0] = 0x27; /* host to device */ - ctp->cfis[1] = 0x8f; /* command FIS to PM port */ - ctp->cfis[2] = ATA_READ_PM; - ctp->cfis[3] = reg; - ctp->cfis[7] = port | ATA_D_LBA; - ctp->cfis[15] = ATA_A_4BIT; - - if (ahci_issue_cmd(dev, 0, 10)) { - device_printf(dev, "error reading PM port\n"); - return EIO; - } - - *result = fis[12] | (fis[4] << 8) | (fis[5] << 16) | (fis[6] << 24); - return 0; -} - -static int -ahci_pm_write(device_t dev, int port, int reg, u_int32_t value) -{ - struct ahci_channel *ch = device_get_softc(dev); - struct ahci_cmd_tab *ctp = - (struct ahci_cmd_tab *)(ch->dma.work + AHCI_CT_OFFSET); - - bzero(ctp->cfis, 64); - ctp->cfis[0] = 0x27; /* host to device */ - ctp->cfis[1] = 0x8f; /* command FIS to PM port */ - ctp->cfis[2] = ATA_WRITE_PM; - ctp->cfis[3] = reg; - ctp->cfis[7] = port | ATA_D_LBA; - ctp->cfis[12] = value & 0xff; - ctp->cfis[4] = (value >> 8) & 0xff;; - ctp->cfis[5] = (value >> 16) & 0xff;; - ctp->cfis[6] = (value >> 24) & 0xff;; - ctp->cfis[15] = ATA_A_4BIT; - - if (ahci_issue_cmd(dev, 0, 100)) { - device_printf(dev, "error writing PM port\n"); - return ATA_E_ABORT; - } - - return (ATA_INL(ch->r_mem, AHCI_P_TFD) >> 8) & 0xff; -} -#endif - static void ahci_start(device_t dev) { @@ -1352,8 +1298,6 @@ break; case 0x9669: ch->devices = ATA_PORTMULTIPLIER | 0x0003; /* Temporary hack. */ -// ch->devices = ATA_PORTMULTIPLIER; -// ata_pm_identify(dev); break; case 0xeb14: ch->devices = ATA_ATAPI_MASTER; From owner-p4-projects@FreeBSD.ORG Sun Jun 7 13:06:23 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 62935106566C; Sun, 7 Jun 2009 13:06:23 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 22B3D1065673 for ; Sun, 7 Jun 2009 13:06:23 +0000 (UTC) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 0F6758FC1B for ; Sun, 7 Jun 2009 13:06:23 +0000 (UTC) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n57D6MtY008571 for ; Sun, 7 Jun 2009 13:06:22 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n57D6MQB008569 for perforce@freebsd.org; Sun, 7 Jun 2009 13:06:22 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Date: Sun, 7 Jun 2009 13:06:22 GMT Message-Id: <200906071306.n57D6MQB008569@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to bb+lists.freebsd.perforce@cyrus.watson.org using -f From: Robert Watson To: Perforce Change Reviews Cc: Subject: PERFORCE change 163708 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 07 Jun 2009 13:06:24 -0000 http://perforce.freebsd.org/chv.cgi?CH=163708 Change 163708 by rwatson@rwatson_freebsd_capabilities on 2009/06/07 13:06:09 Add command-line tools to exercise fexecve, pdfork, cap_enter, as well as generate test programs with various linkages. Affected files ... .. //depot/projects/trustedbsd/capabilities/src/tools/cap/cap_exec/Makefile#1 add .. //depot/projects/trustedbsd/capabilities/src/tools/cap/cap_exec/cap_exec.c#1 add .. //depot/projects/trustedbsd/capabilities/src/tools/cap/cap_exec/main.c#1 add .. //depot/projects/trustedbsd/capabilities/src/tools/cap/cap_exec/make-main.sh#1 add .. //depot/projects/trustedbsd/capabilities/src/tools/cap/fexec/Makefile#1 add .. //depot/projects/trustedbsd/capabilities/src/tools/cap/fexec/fexec.c#1 add .. //depot/projects/trustedbsd/capabilities/src/tools/cap/pd_exec/Makefile#1 add .. //depot/projects/trustedbsd/capabilities/src/tools/cap/pd_exec/pd_exec.c#1 add Differences ... From owner-p4-projects@FreeBSD.ORG Sun Jun 7 13:18:36 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 140F41065676; Sun, 7 Jun 2009 13:18:36 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id C8040106566B for ; Sun, 7 Jun 2009 13:18:35 +0000 (UTC) (envelope-from pgj@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id B62788FC17 for ; Sun, 7 Jun 2009 13:18:35 +0000 (UTC) (envelope-from pgj@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n57DIZvE009501 for ; Sun, 7 Jun 2009 13:18:35 GMT (envelope-from pgj@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n57DIZMq009499 for perforce@freebsd.org; Sun, 7 Jun 2009 13:18:35 GMT (envelope-from pgj@FreeBSD.org) Date: Sun, 7 Jun 2009 13:18:35 GMT Message-Id: <200906071318.n57DIZMq009499@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to pgj@FreeBSD.org using -f From: Gabor Pali To: Perforce Change Reviews Cc: Subject: PERFORCE change 163709 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 07 Jun 2009 13:18:37 -0000 http://perforce.freebsd.org/chv.cgi?CH=163709 Change 163709 by pgj@petymeg-current on 2009/06/07 13:18:13 Add a very simple implementation for socket_type_iterator as another option for processing socket_type_list data -- this solution was also suggested by rwatson, and it should not be dropped without giving it a try :P (and "let's defer design decisions" anyway; it might also provide a more comfortable interface for some tasks). - Add USE_ITERATOR_TYPE define to keep alternate versions using this iterator type (for experimentations and testing) Affected files ... .. //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat.h#8 edit .. //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat_internal.h#5 edit .. //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat_util.c#7 edit .. //depot/projects/soc2009/pgj_libstat/src/usr.bin/netstat/unix.c#7 edit Differences ... ==== //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat.h#8 (text+ko) ==== @@ -19,19 +19,31 @@ struct socket_type; struct socket_type_list; +struct socket_type_iterator; __BEGIN_DECLS const char *netstat_strerror(int); /* "Socket" */ + +/* Socket list: */ struct socket_type_list *netstat_stl_alloc(void); struct socket_type *netstat_stl_find(struct socket_type_list *list, unsigned short family, const char *name); void netstat_stl_iterate(struct socket_type_list *list, void (*func)(struct socket_type *)); - void netstat_stl_free(struct socket_type_list *list); int netstat_stl_geterror(struct socket_type_list *list); +int netstat_stl_refresh(struct socket_type_list *list); + +/* Socket iterator: */ +int netstat_sti_alloc(struct socket_type_list *list, + struct socket_type_iterator **iterator); +struct socket_type *netstat_sti_first(struct socket_type_iterator *iterator); +struct socket_type *netstat_sti_next(struct socket_type_iterator *iterator); +void netstat_sti_free(struct socket_type_iterator *iterator); + +void netstat_st_free(struct socket_type *stp); int netstat_socket(int domain, int type, int protocol, struct socket_type_list *, int flags, void *kvm_handle); ==== //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat_internal.h#5 (text+ko) ==== @@ -47,6 +47,12 @@ int stl_error; }; +struct socket_type_iterator { + struct socket_type_list *sti_list; + struct socket_type *sti_first; + struct socket_type *sti_next; +}; + int kread(kvm_t *kvm, u_long kvm_pointer, void *address, size_t size); int kread_string(kvm_t *kvm, u_long kvm_pointer, char *buffer, int buflen); ==== //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat_util.c#7 (text+ko) ==== @@ -101,7 +101,13 @@ } void -_netstat_stl_free(struct socket_type_list *list) +netstat_st_free(struct socket_type *stp) +{ + free(stp); +} + +void +netstat_stl_free(struct socket_type_list *list) { _netstat_stl_empty(list); free(list); @@ -113,6 +119,13 @@ return (list->stl_error); } +int +netstat_stl_refresh(struct socket_type_list *list) +{ + /* XXX: it is a dummy yet */ + return (0); +} + struct socket_type * netstat_stl_find(struct socket_type_list *list, unsigned short family, const char *name) @@ -155,6 +168,65 @@ /* XXX: empty */ } +/* Socket type iterator. */ +int +netstat_sti_alloc(struct socket_type_list *list, + struct socket_type_iterator **iterator) +{ + struct socket_type_iterator *itp; + + itp = malloc(sizeof(*itp)); + if (itp == NULL) + return (-1); + + bzero(itp, sizeof(*itp)); + + /* XXX: Should it copy the list? */ + itp->sti_list = list; + itp->sti_first = LIST_FIRST(&list->stl_list); + itp->sti_next = itp->sti_first; + *iterator = itp; + return (0); +} + +struct socket_type * +netstat_sti_first(struct socket_type_iterator *iterator) +{ + struct socket_type *stp; + + stp = malloc(sizeof(*stp)); + if (stp == NULL) + return (NULL); + + memcpy(stp, iterator->sti_first, sizeof(*stp)); + return (stp); +} + +struct socket_type * +netstat_sti_next(struct socket_type_iterator *iterator) +{ + struct socket_type *stp; + + stp = malloc(sizeof(*stp)); + if (stp == NULL) + return (NULL); + + iterator->sti_next = LIST_NEXT(iterator->sti_next, st_list); + if (iterator->sti_next == NULL) { + free(stp); + return (NULL); + } + + memcpy(stp, iterator->sti_next, sizeof(*stp)); + return (stp); +} + +void +netstat_sti_free(struct socket_type_iterator *iterator) +{ + free(iterator); +} + /* Accessor functions. */ int netstat_st_get_family(const struct socket_type *stp) ==== //depot/projects/soc2009/pgj_libstat/src/usr.bin/netstat/unix.c#7 (text+ko) ==== @@ -66,6 +66,8 @@ #include #include "extern.h" +#define USE_ITERATOR_TYPE + static void unixdomainpr(struct socket_type *); void @@ -74,6 +76,10 @@ struct socket_type_list *stlp; int error, st_flags; kvm_t *kvm; +#ifdef USE_ITERATOR_TYPE + struct socket_type_iterator *stip; + struct socket_type *stp; +#endif kvm = (kvm_t *)kvmd; stlp = netstat_stl_alloc(); @@ -102,7 +108,19 @@ * It should be guaranteed (by libnetstat) that only active PCBs are * returned. */ +#ifdef USE_ITERATOR_TYPE + if (netstat_sti_alloc(stlp, &stip) < 0) { + warnx("netstat_sti_alloc"); + return; + } + for (stp = netstat_sti_first(stip); stp != NULL; + stp = netstat_sti_next(stip)) { + unixdomainpr(stp); + netstat_st_free(stp); + } +#else netstat_stl_iterate(stlp, unixdomainpr); +#endif } static void From owner-p4-projects@FreeBSD.ORG Sun Jun 7 13:33:52 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id A2AAD106566B; Sun, 7 Jun 2009 13:33:51 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 62A041065673 for ; Sun, 7 Jun 2009 13:33:51 +0000 (UTC) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 4F5A38FC12 for ; Sun, 7 Jun 2009 13:33:51 +0000 (UTC) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n57DXosL010772 for ; Sun, 7 Jun 2009 13:33:50 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n57DXos9010770 for perforce@freebsd.org; Sun, 7 Jun 2009 13:33:50 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Date: Sun, 7 Jun 2009 13:33:50 GMT Message-Id: <200906071333.n57DXos9010770@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to bb+lists.freebsd.perforce@cyrus.watson.org using -f From: Robert Watson To: Perforce Change Reviews Cc: Subject: PERFORCE change 163710 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 07 Jun 2009 13:33:52 -0000 http://perforce.freebsd.org/chv.cgi?CH=163710 Change 163710 by rwatson@rwatson_freebsd_capabilities on 2009/06/07 13:32:54 Make output from ld-elf-cap.so more meaningful by printing its name properly in rtld error messages. Affected files ... .. //depot/projects/trustedbsd/capabilities/src/libexec/rtld-elf/rtld.c#13 edit Differences ... ==== //depot/projects/trustedbsd/capabilities/src/libexec/rtld-elf/rtld.c#13 (text+ko) ==== @@ -60,10 +60,18 @@ #include "rtld_tls.h" #ifndef COMPAT_32BIT +#ifdef IN_RTLD_CAP +#define PATH_RTLD "/libexec/ld-elf-cap.so.1" +#else #define PATH_RTLD "/libexec/ld-elf.so.1" +#endif #else +#ifdef IN_RTLD_CAP +#define PATH_RTLD "/libexex/ld-elf32-cap.so.1" +#else #define PATH_RTLD "/libexec/ld-elf32.so.1" #endif +#endif /* Types. */ typedef void (*func_ptr_type)(); From owner-p4-projects@FreeBSD.ORG Sun Jun 7 14:19:38 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 214CD1065677; Sun, 7 Jun 2009 14:19:38 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id BB86C1065674 for ; Sun, 7 Jun 2009 14:19:37 +0000 (UTC) (envelope-from tsel@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id A93668FC18 for ; Sun, 7 Jun 2009 14:19:37 +0000 (UTC) (envelope-from tsel@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n57EJbiE015416 for ; Sun, 7 Jun 2009 14:19:37 GMT (envelope-from tsel@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n57EJbes015414 for perforce@freebsd.org; Sun, 7 Jun 2009 14:19:37 GMT (envelope-from tsel@FreeBSD.org) Date: Sun, 7 Jun 2009 14:19:37 GMT Message-Id: <200906071419.n57EJbes015414@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to tsel@FreeBSD.org using -f From: Tatsiana Elavaya To: Perforce Change Reviews Cc: Subject: PERFORCE change 163713 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 07 Jun 2009 14:19:39 -0000 http://perforce.freebsd.org/chv.cgi?CH=163713 Change 163713 by tsel@tsel_mz on 2009/06/07 14:19:09 Simplify get_rules_chached() usage Initial implementation of rule optimization Affected files ... .. //depot/projects/soc2009/tsel_ipfw/sbin/ipfw/ipfw2.c#3 edit .. //depot/projects/soc2009/tsel_ipfw/sbin/ipfw/ipfw2.h#3 edit .. //depot/projects/soc2009/tsel_ipfw/sbin/ipfw/main.c#3 edit Differences ... ==== //depot/projects/soc2009/tsel_ipfw/sbin/ipfw/ipfw2.c#3 (text+ko) ==== @@ -469,31 +469,43 @@ return data; } -static struct ip_fw* -get_rule_cache(int *len) +static struct ip_fw** +get_rules_cached() { - static struct ip_fw *rules = NULL; - static int rules_len = 0; + static struct ip_fw *raw_rules = NULL; + static struct ip_fw **rules = NULL; + int i, rules_len; + + if (raw_rules == NULL || rules == NULL) { + char *r, *end; - if (rules == NULL) { - rules = (struct ip_fw*) ipfw_get_all(IP_FW_GET, &rules_len); - rules_len = rules_len / sizeof(struct ip_fw); + raw_rules = (struct ip_fw*) ipfw_get_all(IP_FW_GET, &rules_len); + rules = safe_calloc(rules_len / sizeof(struct ip_fw) + 1, sizeof(void*)); + r = (char*)raw_rules; + end = r + rules_len; + for (i = 0; ; i++) { + if (r + RULESIZE(r) > end) { + rules[i] = NULL; + break; + } + rules[i] = (struct ip_fw *)r; + r += RULESIZE(r); + } } - *len = rules_len; return rules; } static int alias_lookup_rulenum(const char *alias) { - struct ip_fw *rules; - int len, i; + struct ip_fw **rules; + int i; - rules = get_rule_cache(&len); - for (i = 0; i < len; i++) { - if (!strcmp(rules[i].alias, alias)) - return rules[i].rulenum; + rules = get_rules_cached(); + for (i = 0; rules[i]; i++) { + if (!strcmp(rules[i]->alias, alias)) + return rules[i]->rulenum; } return -1; } @@ -501,13 +513,13 @@ static char* alias_lookup(int rulenum) { - struct ip_fw *rules; - int len, i; + struct ip_fw **rules; + int i; - rules = get_rule_cache(&len); - for (i = 0; i < len; i++) { - if (rules[i].rulenum == rulenum) - return rules[i].alias[0] ? rules[i].alias : NULL; + rules = get_rules_cached(); + for (i = 0; rules[i]; i++) { + if (rules[i]->rulenum == rulenum) + return rules[i]->alias[0] ? rules[i]->alias : NULL; } return NULL; } @@ -1990,6 +2002,205 @@ #undef NEXT } +struct insn_match { + ipfw_insn *cmd; + int match_count; + int list_size; + struct insn_match *next; + struct insn_match *next_match; + struct ip_fw *rule; + int rank; +}; + +int +insn_eq(ipfw_insn *a, ipfw_insn *b) +{ + if (a->opcode != b->opcode) + return (0); + switch (a->opcode) { + case O_IP_SRC: + case O_IP_SRC_MASK: + case O_IP_SRC_ME: + case O_IP_SRC_SET: + case O_IP_DST: + case O_IP_DST_MASK: + case O_IP_DST_ME: + case O_IP_DST_SET: + case O_IP_SRCPORT: + case O_IP_DSTPORT: + case O_PROTO: + case O_MACADDR2: + case O_MAC_TYPE: + case O_LAYER2: + case O_IN: + case O_FRAG: + case O_RECV: + case O_XMIT: + case O_VIA: + case O_IPOPT: + case O_IPLEN: + case O_IPID: + case O_IPTOS: + case O_IPPRECEDENCE: + case O_IPTTL: + case O_IPVER: + case O_UID: + case O_GID: + case O_ESTAB: + case O_TCPFLAGS: + case O_TCPWIN: + case O_TCPSEQ: + case O_TCPACK: + case O_ICMPTYPE: + case O_TCPOPTS: + case O_VERREVPATH: + case O_VERSRCREACH: + case O_IPSEC: + case O_IP_SRC_LOOKUP: + case O_IP_DST_LOOKUP: + case O_ANTISPOOF: + case O_JAIL: + case O_TCPDATALEN: + case O_IP6_SRC: + case O_IP6_SRC_ME: + case O_IP6_SRC_MASK: + case O_IP6_DST: + case O_IP6_DST_ME: + case O_IP6_DST_MASK: + case O_FLOW6ID: + case O_ICMP6TYPE: + case O_EXT_HDR: + case O_IP6: + case O_IP4: + break; + default: + return(0); + } + if (F_LEN(a) != F_LEN(b)) + return(0); + if (memcmp(a, b, F_LEN(a)) == 0) + return(1); + return(0); +} + +int +insn_match_insert(struct insn_match **m_head, ipfw_insn *cmd, struct ip_fw *rule) +{ + struct insn_match *m, *new_m; + + new_m = safe_calloc(1, sizeof(struct insn_match)); + new_m->cmd = cmd; + new_m->rule = rule; + + if (!*m_head) { + *m_head = new_m; + return (0); + } + + for (m = *m_head; m; m = m->next) { + if (insn_eq(m->cmd, cmd)) { + /* preserve first element in list */ + new_m->next_match = m->next_match; + m->next_match = new_m; + m->match_count++; + printf("m->cmd %d: count = %d\n", cmd->opcode, m->match_count); + return(1); + } + } + new_m->list_size = (*m_head)->list_size + 1; + (*m_head)->list_size = 0; + new_m->next = *m_head; + *m_head = new_m; + return(0); +} + +int +insn_match_cmp(const void *_a, const void *_b) +{ + struct insn_match *a[2] = { + *((struct insn_match **) _a), + *((struct insn_match **) _b), + }; + int i; + + if (a[0] == NULL) + return (a[1] == NULL ? 0 : 1); + if (a[1] == NULL) + return -1; + for (i = 0; i < 2; i++) { + struct insn_match *m; + int min_r, max_r; + + if (a[i]->rank || a[i]->match_count == 0) + continue; + for (m = a[i], min_r = max_r = m->rule->rulenum; m; m = m->next_match) + if (m->rule->rulenum < min_r) + min_r = m->rule->rulenum; + else if (m->rule->rulenum > max_r) + max_r = m->rule->rulenum; + printf("rank %d: match_count: %d, dist: %d\n", a[i]->cmd->opcode, a[i]->match_count, max_r - min_r); + a[i]->rank = ((a[i]->match_count & 0x7fff) << 16) - (max_r - min_r); + } + return a[1]->rank - a[0]->rank; + +} + +void +ipfw_optimize(int argc, char **argv) +{ + struct ip_fw **rules; + struct insn_match **cmds, **cmds_sort; + int c, i; + + if (co.test_only) { + fprintf(stderr, "Testing only, optimization disabled\n"); + return; + } + + cmds = (struct insn_match**) safe_calloc(O_LAST_OPCODE, sizeof(void*)); + + rules = get_rules_cached(); + for (i = 0; rules[i]; i++) { + for (c = 0; c < rules[i]->cmd_len; c++) { + int match; + + ipfw_insn *cmd = &rules[i]->cmd[c]; + match = insn_match_insert(&cmds[cmd->opcode], cmd, rules[i]); + if (match) + printf("rule %d: op_code %d; match = %d\n", rules[i]->rulenum, cmd->opcode, match); + } + } + + for (c = 0, i = 0; i < O_LAST_OPCODE; i++) { + if (!cmds[i]) + continue; + if (cmds[i]->list_size) { + printf("list size: %d; opcode %d\n", cmds[i]->list_size, cmds[i]->cmd->opcode); + } + c += 1 + cmds[i]->list_size; + } + + cmds_sort = (struct insn_match**) safe_calloc(c, sizeof(void*)); + for (c = 0, i = 0; i < O_LAST_OPCODE; i++) { + struct insn_match *cmd; + + if (!cmds[i]) + continue; + for (cmd = cmds[i]; cmd; cmd = cmd->next) + cmds_sort[c++] = cmd; + } + + qsort(cmds_sort, c, sizeof(void*), insn_match_cmp); + for (i = 0; i < c && cmds_sort[i]->rank; i++) { + printf("sorted: %d; match_count %d; rank %d\n", cmds_sort[i]->cmd->opcode, cmds_sort[i]->match_count, cmds_sort[i]->rank); + } + c = i; + + free(cmds); + free(cmds_sort); +} + + static int lookup_host (char *host, struct in_addr *ipaddr) { ==== //depot/projects/soc2009/tsel_ipfw/sbin/ipfw/ipfw2.h#3 (text+ko) ==== @@ -245,6 +245,7 @@ void ipfw_flush(int force); void ipfw_zero(int ac, char *av[], int optname); void ipfw_list(int ac, char *av[], int show_counters); +void ipfw_optimize(int ac, char *av[]); /* altq.c */ void altq_set_enabled(int enabled); ==== //depot/projects/soc2009/tsel_ipfw/sbin/ipfw/main.c#3 (text+ko) ==== @@ -350,6 +350,8 @@ ipfw_sysctl_handler(ac, av, 1); else if (_substrcmp(*av, "disable") == 0) ipfw_sysctl_handler(ac, av, 0); + else if (_substrcmp(*av, "optimize") == 0) + ipfw_optimize(ac, av); else try_next = 1; } From owner-p4-projects@FreeBSD.ORG Sun Jun 7 14:21:32 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 698161065676; Sun, 7 Jun 2009 14:21:30 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 9427A106564A; Sun, 7 Jun 2009 14:21:29 +0000 (UTC) (envelope-from ed@hoeg.nl) Received: from palm.hoeg.nl (mx0.hoeg.nl [IPv6:2001:7b8:613:100::211]) by mx1.freebsd.org (Postfix) with ESMTP id 336818FC1B; Sun, 7 Jun 2009 14:21:28 +0000 (UTC) (envelope-from ed@hoeg.nl) Received: by palm.hoeg.nl (Postfix, from userid 1000) id C39351CC2E; Sun, 7 Jun 2009 16:21:27 +0200 (CEST) Date: Sun, 7 Jun 2009 16:21:27 +0200 From: Ed Schouten To: Tatsiana Elavaya Message-ID: <20090607142127.GR48776@hoeg.nl> References: <200906071419.n57EJbes015414@repoman.freebsd.org> MIME-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="HxOxd3Hfl5FMJYiY" Content-Disposition: inline In-Reply-To: <200906071419.n57EJbes015414@repoman.freebsd.org> User-Agent: Mutt/1.5.19 (2009-01-05) Cc: Perforce Change Reviews Subject: Re: PERFORCE change 163713 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 07 Jun 2009 14:21:33 -0000 --HxOxd3Hfl5FMJYiY Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable Hey Tatsiana, * Tatsiana Elavaya wrote: > +get_rules_cached() ^ Shouldn't you put `void' between the parentheses here? --=20 Ed Schouten WWW: http://80386.nl/ --HxOxd3Hfl5FMJYiY Content-Type: application/pgp-signature Content-Disposition: inline -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.9 (FreeBSD) iEYEARECAAYFAkorzOcACgkQ52SDGA2eCwXGqgCfQln4KXAZ0ZQAOfcvJT145V2U DC4An2FmUyn2+U1rWH9W5Kuz2fth0m2S =hAZq -----END PGP SIGNATURE----- --HxOxd3Hfl5FMJYiY-- From owner-p4-projects@FreeBSD.ORG Sun Jun 7 14:30:49 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 8A751106566C; Sun, 7 Jun 2009 14:30:49 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 4A711106564A for ; Sun, 7 Jun 2009 14:30:49 +0000 (UTC) (envelope-from tsel@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 1EF498FC08 for ; Sun, 7 Jun 2009 14:30:49 +0000 (UTC) (envelope-from tsel@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n57EUnjV016311 for ; Sun, 7 Jun 2009 14:30:49 GMT (envelope-from tsel@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n57EUm4u016309 for perforce@freebsd.org; Sun, 7 Jun 2009 14:30:48 GMT (envelope-from tsel@FreeBSD.org) Date: Sun, 7 Jun 2009 14:30:48 GMT Message-Id: <200906071430.n57EUm4u016309@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to tsel@FreeBSD.org using -f From: Tatsiana Elavaya To: Perforce Change Reviews Cc: Subject: PERFORCE change 163714 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 07 Jun 2009 14:30:50 -0000 http://perforce.freebsd.org/chv.cgi?CH=163714 Change 163714 by tsel@tsel_mz on 2009/06/07 14:29:58 Fix incorrect function declaration. Thanks to Ed Schouten. Affected files ... .. //depot/projects/soc2009/tsel_ipfw/sbin/ipfw/ipfw2.c#4 edit Differences ... ==== //depot/projects/soc2009/tsel_ipfw/sbin/ipfw/ipfw2.c#4 (text+ko) ==== @@ -470,7 +470,7 @@ } static struct ip_fw** -get_rules_cached() +get_rules_cached(void) { static struct ip_fw *raw_rules = NULL; static struct ip_fw **rules = NULL; From owner-p4-projects@FreeBSD.ORG Sun Jun 7 14:37:58 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 719A91065677; Sun, 7 Jun 2009 14:37:58 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 28D331065675 for ; Sun, 7 Jun 2009 14:37:58 +0000 (UTC) (envelope-from scottl@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 0DA338FC16 for ; Sun, 7 Jun 2009 14:37:58 +0000 (UTC) (envelope-from scottl@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n57EbugX016846 for ; Sun, 7 Jun 2009 14:37:56 GMT (envelope-from scottl@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n57EbuLu016844 for perforce@freebsd.org; Sun, 7 Jun 2009 14:37:56 GMT (envelope-from scottl@freebsd.org) Date: Sun, 7 Jun 2009 14:37:56 GMT Message-Id: <200906071437.n57EbuLu016844@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to scottl@freebsd.org using -f From: Scott Long To: Perforce Change Reviews Cc: Subject: PERFORCE change 163715 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 07 Jun 2009 14:37:59 -0000 http://perforce.freebsd.org/chv.cgi?CH=163715 Change 163715 by scottl@scottl-deimos on 2009/06/07 14:37:21 Initial locking for devclass using the global devclasses_mtx lock. Reference counts are added for device_t and devclass objects so that the global lock can be dropped when engresses out of the subsystem. Refcounting is still incomplete. Affected files ... .. //depot/projects/scottl-camlock/src/sys/kern/subr_bus.c#22 edit Differences ... ==== //depot/projects/scottl-camlock/src/sys/kern/subr_bus.c#22 (text+ko) ==== @@ -66,6 +66,7 @@ struct driverlink { kobj_class_t driver; TAILQ_ENTRY(driverlink) link; /* list of drivers in devclass */ + TAILQ_ENTRY(driverlink) probe_link; }; /* @@ -87,8 +88,14 @@ struct sysctl_ctx_list sysctl_ctx; struct sysctl_oid *sysctl_tree; + + int class_ref; + int class_busy; }; +#define DC_REF(dc) (dc)->class_ref++ +#define DC_UNREF(dc) (dc)->class_ref-- + /** * @brief Implementation of device. */ @@ -134,8 +141,14 @@ struct sysctl_ctx_list sysctl_ctx; /**< state for sysctl variables */ struct sysctl_oid *sysctl_tree; /**< state for sysctl variables */ + + int device_ref; + int device_busy; }; +#define DT_REF(dt) (dt)->device_ref++ +#define DT_UNREF(dt) (dt)->device_ref-- + static MALLOC_DEFINE(M_BUS, "bus", "Bus data structures"); static MALLOC_DEFINE(M_BUS_SC, "bus-sc", "Bus data structures, softc"); @@ -890,15 +903,34 @@ static void devclass_driver_added(devclass_t dc, driver_t *driver) { + device_t *devlist; devclass_t parent; - int i; + int i, maxunit = 0; + + mtx_assert(&devclasses_mtx, MA_OWNED); /* * Call BUS_DRIVER_ADDED for any existing busses in this class. */ - for (i = 0; i < dc->maxunit; i++) - if (dc->devices[i]) - BUS_DRIVER_ADDED(dc->devices[i], driver); + devlist = malloc(sizeof(device_t)*dc->maxunit, M_BUS, M_NOWAIT|M_ZERO); + if (devlist == NULL) + /* XXX error? */ + return; + + for (i = 0; i < dc->maxunit; i++) { + if (dc->devices[i]) { + DT_REF(dc->devices[i]); + devlist[maxunit++] = dc->devices[i]; + } + } + + mtx_unlock(&devclasses_mtx); + for (i = 0; i < maxunit; i++) { + BUS_DRIVER_ADDED(devlist[i], driver); + DT_UNREF(devlist[i]); + } + free(devlist, M_BUS); + mtx_lock(&devclasses_mtx); /* * Walk through the children classes. Since we only keep a @@ -912,8 +944,11 @@ return; parent = dc; TAILQ_FOREACH(dc, &devclasses, link) { - if (dc->parent == parent) + if (dc->parent == parent) { + DC_REF(dc); devclass_driver_added(dc, driver); + DC_UNREF(dc); + } } } @@ -945,19 +980,23 @@ * goes. This means we can safely use static methods and avoids a * double-free in devclass_delete_driver. */ + mtx_lock(&devclasses_mtx); kobj_class_compile((kobj_class_t) driver); /* * Make sure the devclass which the driver is implementing exists. */ - devclass_find_internal(driver->name, NULL, TRUE); + devclass_find_internal_locked(driver->name, NULL, TRUE); dl->driver = driver; TAILQ_INSERT_TAIL(&dc->drivers, dl, link); driver->refs++; /* XXX: kobj_mtx */ + DC_REF(dc); devclass_driver_added(dc, driver); + DC_UNREF(dc); bus_data_generation_update(); + mtx_unlock(&devclasses_mtx); return (0); } @@ -980,8 +1019,8 @@ { devclass_t dc = devclass_find(driver->name); driverlink_t dl; - device_t dev; - int i; + device_t *devlist, dev; + int i, maxunit = 0; int error; PDEBUG(("%s from devclass %s", driver->name, DEVCLANAME(busclass))); @@ -992,6 +1031,7 @@ /* * Find the link structure in the bus' list of drivers. */ + mtx_lock(&devclasses_mtx); TAILQ_FOREACH(dl, &busclass->drivers, link) { if (dl->driver == driver) break; @@ -1000,6 +1040,7 @@ if (!dl) { PDEBUG(("%s not found in %s list", driver->name, busclass->name)); + mtx_unlock(&devclasses_mtx); return (ENOENT); } @@ -1013,18 +1054,39 @@ * should not detach devices which are not children of devices in * the affected devclass. */ + devlist = malloc(sizeof(device_t)*dc->maxunit, M_BUS, M_NOWAIT|M_ZERO); + if (devlist == NULL) { + mtx_unlock(&devclasses_mtx); + return (ENOMEM); + } + for (i = 0; i < dc->maxunit; i++) { if (dc->devices[i]) { dev = dc->devices[i]; if (dev->driver == driver && dev->parent && dev->parent->devclass == busclass) { - if ((error = device_detach(dev)) != 0) - return (error); - device_set_driver(dev, NULL); + DT_REF(dev); + devlist[maxunit++] = dev; } } } + mtx_unlock(&devclasses_mtx); + error = 0; + for (i = 0; i < maxunit; i++) { + dev = devlist[i]; + if ((error = device_detach(dev)) != 0) { + DT_UNREF(dev); + break; + } + device_set_driver(dev, NULL); + DT_UNREF(dev); + } + free(devlist, M_BUS); + if (error) + return (error); + + mtx_lock(&devclasses_mtx); TAILQ_REMOVE(&busclass->drivers, dl, link); free(dl, M_BUS); @@ -1034,6 +1096,7 @@ kobj_class_free((kobj_class_t) driver); bus_data_generation_update(); + mtx_unlock(&devclasses_mtx); return (0); } @@ -1055,8 +1118,8 @@ { devclass_t dc = devclass_find(driver->name); driverlink_t dl; - device_t dev; - int i; + device_t *devlist, dev; + int i, maxunit = 0; int error; PDEBUG(("%s from devclass %s", driver->name, DEVCLANAME(busclass))); @@ -1067,6 +1130,7 @@ /* * Find the link structure in the bus' list of drivers. */ + mtx_lock(&devclasses_mtx); TAILQ_FOREACH(dl, &busclass->drivers, link) { if (dl->driver == driver) break; @@ -1075,6 +1139,7 @@ if (!dl) { PDEBUG(("%s not found in %s list", driver->name, busclass->name)); + mtx_unlock(&devclasses_mtx); return (ENOENT); } @@ -1088,18 +1153,35 @@ * should not quiesce devices which are not children of * devices in the affected devclass. */ + devlist = malloc(sizeof(device_t)*dc->maxunit, M_BUS, M_NOWAIT|M_ZERO); + if (devlist == NULL) { + mtx_unlock(&devclasses_mtx); + return (ENOMEM); + } + for (i = 0; i < dc->maxunit; i++) { if (dc->devices[i]) { dev = dc->devices[i]; if (dev->driver == driver && dev->parent && dev->parent->devclass == busclass) { - if ((error = device_quiesce(dev)) != 0) - return (error); + DT_REF(dev); + devlist[maxunit++] = dev; } } } + mtx_unlock(&devclasses_mtx); + + error = 0; + for (i = 0; i < maxunit; i++) { + dev = devlist[i]; + error = device_quiesce(dev); + DT_UNREF(dev); + if (error) + break; + } - return (0); + free(devlist, M_BUS); + return (error); } /** @@ -1112,6 +1194,8 @@ PDEBUG(("%s in devclass %s", classname, DEVCLANAME(dc))); + mtx_assert(&devclasses_mtx, MA_OWNED); + TAILQ_FOREACH(dl, &dc->drivers, link) { if (!strcmp(dl->driver->name, classname)) return (dl); @@ -1136,7 +1220,9 @@ { driverlink_t dl; + mtx_lock(&devclasses_mtx); dl = devclass_find_driver_internal(dc, classname); + mtx_unlock(&devclasses_mtx); if (dl) return (dl->driver); return (NULL); @@ -1163,9 +1249,17 @@ device_t devclass_get_device(devclass_t dc, int unit) { + device_t dev; + if (dc == NULL || unit < 0 || unit >= dc->maxunit) return (NULL); - return (dc->devices[unit]); + + mtx_lock(&devclasses_mtx); + dev = dc->devices[unit]; + DT_REF(dev); + mtx_unlock(&devclasses_mtx); + + return (dev); } /** @@ -1182,12 +1276,17 @@ devclass_get_softc(devclass_t dc, int unit) { device_t dev; + void *sc; dev = devclass_get_device(dc, unit); if (!dev) return (NULL); - return (device_get_softc(dev)); + sc = device_get_softc(dev); + mtx_lock(&devclasses_mtx); + DT_UNREF(dev); + mtx_unlock(&devclasses_mtx); + return (sc); } /** @@ -1210,20 +1309,27 @@ devclass_get_devices(devclass_t dc, device_t **devlistp, int *devcountp) { int count, i; + device_t dev; device_t *list; count = devclass_get_count(dc); list = malloc(count * sizeof(device_t), M_TEMP, M_NOWAIT|M_ZERO); - if (!list) + if (!list) { + mtx_unlock(&devclasses_mtx); return (ENOMEM); + } count = 0; + mtx_lock(&devclasses_mtx); for (i = 0; i < dc->maxunit; i++) { - if (dc->devices[i]) { - list[count] = dc->devices[i]; + dev = dc->devices[i]; + if (dev) { + DT_REF(dev); + list[count] = dev; count++; } } + mtx_unlock(&devclasses_mtx); *devlistp = list; *devcountp = count; @@ -1255,17 +1361,21 @@ int count; count = 0; + mtx_lock(&devclasses_mtx); TAILQ_FOREACH(dl, &dc->drivers, link) count++; list = malloc(count * sizeof(driver_t *), M_TEMP, M_NOWAIT); - if (list == NULL) + if (list == NULL) { + mtx_unlock(&devclasses_mtx); return (ENOMEM); + } count = 0; TAILQ_FOREACH(dl, &dc->drivers, link) { list[count] = dl->driver; count++; } + mtx_unlock(&devclasses_mtx); *listp = list; *countp = count; @@ -1283,9 +1393,11 @@ int count, i; count = 0; + mtx_lock(&devclasses_mtx); for (i = 0; i < dc->maxunit; i++) if (dc->devices[i]) count++; + mtx_unlock(&devclasses_mtx); return (count); } @@ -1798,6 +1910,7 @@ devclass_t dc; driverlink_t best = NULL; driverlink_t dl; + driver_list_t dllist; int result, pri = 0; int hasclass = (child->devclass != NULL); @@ -1814,10 +1927,20 @@ if (child->state == DS_ALIVE && (child->flags & DF_REBID) == 0) return (0); + mtx_lock(&devclasses_mtx); + TAILQ_INIT(&dllist); for (; dc; dc = dc->parent) { for (dl = first_matching_driver(dc, child); dl; dl = next_matching_driver(dc, child, dl)) { + TAILQ_INSERT_TAIL(&dllist, dl, probe_link); + } + } + mtx_unlock(&devclasses_mtx); + + while ((dl = TAILQ_FIRST(&dllist)) != NULL) { + TAILQ_REMOVE(&dllist, dl, probe_link); + { PDEBUG(("Trying %s", DRIVERNAME(dl->driver))); device_set_driver(child, dl->driver); if (!hasclass) { From owner-p4-projects@FreeBSD.ORG Sun Jun 7 14:56:16 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id B7E1B106566C; Sun, 7 Jun 2009 14:56:15 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 6D0E0106564A for ; Sun, 7 Jun 2009 14:56:15 +0000 (UTC) (envelope-from mav@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 5B8118FC16 for ; Sun, 7 Jun 2009 14:56:15 +0000 (UTC) (envelope-from mav@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n57EuF9o018278 for ; Sun, 7 Jun 2009 14:56:15 GMT (envelope-from mav@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n57EuFWe018276 for perforce@freebsd.org; Sun, 7 Jun 2009 14:56:15 GMT (envelope-from mav@freebsd.org) Date: Sun, 7 Jun 2009 14:56:15 GMT Message-Id: <200906071456.n57EuFWe018276@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to mav@freebsd.org using -f From: Alexander Motin To: Perforce Change Reviews Cc: Subject: PERFORCE change 163716 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 07 Jun 2009 14:56:16 -0000 http://perforce.freebsd.org/chv.cgi?CH=163716 Change 163716 by mav@mav_mavbook on 2009/06/07 14:56:09 Drop PIM_NOINITIATOR check for now. Never heared about ATA target-only controllers. Affected files ... .. //depot/projects/scottl-camlock/src/sys/cam/ata/ata_xpt.c#12 edit Differences ... ==== //depot/projects/scottl-camlock/src/sys/cam/ata/ata_xpt.c#12 (text+ko) ==== @@ -824,17 +824,6 @@ return; } - if ((work_ccb->cpi.hba_misc & PIM_NOINITIATOR) != 0) { - /* - * Can't scan the bus on an adapter that - * cannot perform the initiator role. - */ - request_ccb->ccb_h.status = CAM_REQ_CMP; - xpt_free_ccb(work_ccb); - xpt_done(request_ccb); - return; - } - /* Save some state for use while we probe for devices */ scan_info = (ata_scan_bus_info *) malloc(sizeof(ata_scan_bus_info), M_CAMXPT, M_NOWAIT); @@ -992,18 +981,6 @@ return; } - if ((cpi.hba_misc & PIM_NOINITIATOR) != 0) { - /* - * Can't scan the bus on an adapter that - * cannot perform the initiator role. - */ - if (request_ccb != NULL) { - request_ccb->ccb_h.status = CAM_REQ_CMP; - xpt_done(request_ccb); - } - return; - } - if (request_ccb == NULL) { request_ccb = malloc(sizeof(union ccb), M_CAMXPT, M_NOWAIT); if (request_ccb == NULL) { From owner-p4-projects@FreeBSD.ORG Sun Jun 7 15:02:31 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id ED70B1065677; Sun, 7 Jun 2009 15:02:30 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id AC6E91065674; Sun, 7 Jun 2009 15:02:30 +0000 (UTC) (envelope-from t.elavaya@gmail.com) Received: from mail-bw0-f213.google.com (mail-bw0-f213.google.com [209.85.218.213]) by mx1.freebsd.org (Postfix) with ESMTP id 058B68FC13; Sun, 7 Jun 2009 15:02:29 +0000 (UTC) (envelope-from t.elavaya@gmail.com) Received: by bwz9 with SMTP id 9so114655bwz.43 for ; Sun, 07 Jun 2009 08:02:29 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:received:in-reply-to:references :from:date:message-id:subject:to:cc:content-type :content-transfer-encoding; bh=B81jVBfTu9T3ioC5LLvADt4vWeARezcJXVmafYmJLdw=; b=R8BK0YJg/8pXNhZWWlhaO9xTiaql+ERyZG1AEwgSv3bet7w2ou0TaPc/l6GCHYBRw3 nKy8fiDQWueTgBiMqAu0wu2Rha7zPQiEnnERbzeBg8Fp7rnUs57W6zfYA+eEWbL7j+ZW oqljONUVwLXWB3kvrYngLplbvx+Vi5Y1wyT5o= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc:content-type:content-transfer-encoding; b=DN61rprd89FZqOlCEvASTesUasRzeBvcl4nRUxeMKd++y0lp92owOHxTzTujTLO1Jj yFZSi4SWnmkE2q6JgNyV3f86Ee7iXly+bcW6jkifkE+RElwm4d8+FG4G5ltxAWV9gh2d QO++jz2ONna90IwNhVm39o3NiAf5TE4oWJWxo= MIME-Version: 1.0 Received: by 10.223.107.19 with SMTP id z19mr3115466fao.27.1244385021156; Sun, 07 Jun 2009 07:30:21 -0700 (PDT) In-Reply-To: <20090607142127.GR48776@hoeg.nl> References: <200906071419.n57EJbes015414@repoman.freebsd.org> <20090607142127.GR48776@hoeg.nl> From: Tatsiana Elavaya Date: Sun, 7 Jun 2009 17:30:01 +0300 Message-ID: To: Ed Schouten Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Cc: Perforce Change Reviews , Tatsiana Elavaya Subject: Re: PERFORCE change 163713 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 07 Jun 2009 15:02:31 -0000 On Sun, Jun 7, 2009 at 5:21 PM, Ed Schouten wrote: > Hey Tatsiana, > > * Tatsiana Elavaya wrote: >> +get_rules_cached() > ^ > > Shouldn't you put `void' between the parentheses here? =D0=92efinitely should. Thanks for looking at it. > > -- > Ed Schouten > WWW: http://80386.nl/ > From owner-p4-projects@FreeBSD.ORG Sun Jun 7 17:03:25 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 7F45E1065674; Sun, 7 Jun 2009 17:03:24 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 3BF61106566C for ; Sun, 7 Jun 2009 17:03:24 +0000 (UTC) (envelope-from pgj@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 29CC98FC17 for ; Sun, 7 Jun 2009 17:03:24 +0000 (UTC) (envelope-from pgj@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n57H3OvZ043155 for ; Sun, 7 Jun 2009 17:03:24 GMT (envelope-from pgj@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n57H3Oja043153 for perforce@freebsd.org; Sun, 7 Jun 2009 17:03:24 GMT (envelope-from pgj@FreeBSD.org) Date: Sun, 7 Jun 2009 17:03:24 GMT Message-Id: <200906071703.n57H3Oja043153@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to pgj@FreeBSD.org using -f From: Gabor Pali To: Perforce Change Reviews Cc: Subject: PERFORCE change 163718 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 07 Jun 2009 17:03:25 -0000 http://perforce.freebsd.org/chv.cgi?CH=163718 Change 163718 by pgj@petymeg-current on 2009/06/07 17:02:23 - Add and use new properties: snd_cc, rcv_cc, qlen, incqlen, qlimit - Enable compilation with debugging symbols for both libnetstat and netstat - Add extract_xsocket_data() for extracing common properties from a PF_LOCAL-type socket - sotoxsocket() has no return value, so do not check it :) - Fix an sti_iterator bug Affected files ... .. //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/Makefile#4 edit .. //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat.c#6 edit .. //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat.h#9 edit .. //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat_internal.h#6 edit .. //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat_util.c#8 edit .. //depot/projects/soc2009/pgj_libstat/src/usr.bin/netstat/Makefile#3 edit .. //depot/projects/soc2009/pgj_libstat/src/usr.bin/netstat/unix.c#8 edit Differences ... ==== //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/Makefile#4 (text+ko) ==== @@ -7,6 +7,7 @@ INCS= netstat.h CFLAGS+= -I. -I${.CURDIR} +CFLAGS+= -g SHLIB_MAJOR= 1 ==== //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat.c#6 (text+ko) ==== @@ -26,6 +26,8 @@ { .n_name = NULL }, }; +static void extract_xsocket_data(struct xsocket *, struct socket_type *); + static const char *const socktype[] = { "#0", "stream", "dgram", "raw", "rdm", "seqpacket" }; @@ -62,10 +64,12 @@ for (xug = (struct xunpgen *)((char *)xug + xug->xug_len); xug->xug_len > sizeof(struct xunpgen); xug = (struct xunpgen *)((char *)xug + xug->xug_len)) { + xunp = (struct xunpcb *)xug; /* Keep active PCBs only. */ if (xunp->xu_unp.unp_gencnt <= oxug->xug_gen) { stp = _netstat_st_allocate(list, PF_LOCAL, type, socktype[type]); + extract_xsocket_data(&xunp->xu_socket, stp); stp->xup = *((struct xunpcb *)xug); } } @@ -140,12 +144,10 @@ } } KREAD(unp->unp_socket, &so, sizeof(so)); - if (sotoxsocket(&so, &xu.xu_socket) != 0) { - list->stl_error = NETSTAT_ERROR_UNDEFINED; - return (-1); - } + sotoxsocket(&so, &xu.xu_socket); stp = _netstat_st_allocate(list, PF_LOCAL, type, socktype[type]); + extract_xsocket_data(&xu.xu_socket, stp); stp->xup = xu; } @@ -217,3 +219,13 @@ #undef NLP_SCT return (0); } + +void +extract_xsocket_data(struct xsocket *xso, struct socket_type *stp) +{ + stp->st_qlen = xso->so_qlen; + stp->st_incqlen = xso->so_incqlen; + stp->st_qlimit = xso->so_qlimit; + stp->st_snd_cc = xso->so_snd.sb_cc; + stp->st_rcv_cc = xso->so_rcv.sb_cc; +} ==== //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat.h#9 (text+ko) ==== @@ -2,6 +2,8 @@ #ifndef _NETSTAT_H_ #define _NETSTAT_H_ +#include + #define NETSTAT_MAXCALLER 16 #define SOCKTYPE_MAXNAME 32 @@ -49,10 +51,17 @@ struct socket_type_list *, int flags, void *kvm_handle); /* Accessor functions: */ -int netstat_st_get_family(const struct socket_type *stp); -int netstat_st_get_protocol(const struct socket_type *stp); -const char *netstat_st_get_name(const struct socket_type *stp); -void *netstat_st_get_pcb(const struct socket_type *stp); +int netstat_st_get_family(const struct socket_type *stp); +int netstat_st_get_protocol(const struct socket_type *stp); +const char *netstat_st_get_name(const struct socket_type *stp); +u_int netstat_st_get_snd_cc(const struct socket_type *stp); +u_int netstat_st_get_rcv_cc(const struct socket_type *stp); +u_short netstat_st_get_qlen(const struct socket_type *stp); +u_short netstat_st_get_incqlen(const struct socket_type *stp); +u_short netstat_st_get_qlimit(const struct socket_type *stp); + +/* XXX: Remove this hack :) */ +void *netstat_st_get_pcb(const struct socket_type *stp); __END_DECLS ==== //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat_internal.h#6 (text+ko) ==== @@ -26,16 +26,19 @@ int st_flags; char st_name[SOCKTYPE_MAXNAME]; - /* Mixed properties, needed for different reasons, to be refined - * continuously. - */ struct address_type *st_address; /* address(es) */ int st_addrcnt; /* address count */ - struct sockcred st_credentials; - struct xsockbuf st_rcv; /* receive queue */ - struct xsockbuf st_snd; /* send queue */ + u_int st_snd_cc; /* actual chars in the send buffer */ + u_int st_rcv_cc; /* actual chars in the receive buffer */ + u_short st_qlen; /* number of unaccepted connections */ + u_short st_incqlen; /* number of unaccepted incomplete + connections */ + u_short st_qlimit; /* max number queued connections */ + /* Mixed properties, needed for different reasons, to be refined + * continuously. + */ struct xunpcb xup; /* xun */ /* list of types */ @@ -62,6 +65,5 @@ const char *name); void _netstat_st_reset_stats(struct socket_type *list); -int sotoxsocket(struct socket *, struct xsocket *); - +void sotoxsocket(struct socket *so, struct xsocket *xso); #endif /* !_NETSTAT_INTERNAL_H_ */ ==== //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat_util.c#8 (text+ko) ==== @@ -194,6 +194,9 @@ { struct socket_type *stp; + if (iterator->sti_first == NULL) + return (NULL); + stp = malloc(sizeof(*stp)); if (stp == NULL) return (NULL); @@ -207,6 +210,9 @@ { struct socket_type *stp; + if (iterator->sti_next == NULL) + return (NULL); + stp = malloc(sizeof(*stp)); if (stp == NULL) return (NULL); @@ -246,6 +252,36 @@ return (stp->st_name); } +u_int +netstat_st_get_rcv_cc(const struct socket_type *stp) +{ + return (stp->st_rcv_cc); +} + +u_int +netstat_st_get_snd_cc(const struct socket_type *stp) +{ + return (stp->st_snd_cc); +} + +u_short +netstat_st_get_qlen(const struct socket_type *stp) +{ + return (stp->st_qlen); +} + +u_short +netstat_st_get_incqlen(const struct socket_type *stp) +{ + return (stp->st_incqlen); +} + +u_short +netstat_st_get_qlimit(const struct socket_type *stp) +{ + return (stp->st_qlimit); +} + /* XXX: hack alert :) */ void * netstat_st_get_pcb(const struct socket_type *stp) ==== //depot/projects/soc2009/pgj_libstat/src/usr.bin/netstat/Makefile#3 (text+ko) ==== @@ -24,7 +24,7 @@ LDADD= -lkvm -lmemstat -lutil -lnetstat # XXX: temp. solution -CFLAGS+= -I../../lib/libnetstat +CFLAGS+= -I../../lib/libnetstat -g LDFLAGS+= -L../../lib/libnetstat .if ${MK_NETGRAPH_SUPPORT} != "no" ==== //depot/projects/soc2009/pgj_libstat/src/usr.bin/netstat/unix.c#8 (text+ko) ==== @@ -150,17 +150,20 @@ first = 0; } - if (Lflag && so->so_qlimit == 0) + if (Lflag && netstat_st_get_qlimit(stp) == 0) return; if (Lflag) { - snprintf(buf1, 15, "%d/%d/%d", so->so_qlen, - so->so_incqlen, so->so_qlimit); + snprintf(buf1, 15, "%d/%d/%d", netstat_st_get_qlen(stp), + netstat_st_get_incqlen(stp), netstat_st_get_qlimit(stp)); printf("unix %-14.14s", buf1); } else { printf("%8lx %-6.6s %6u %6u %8lx %8lx %8lx %8lx", - (long)so->so_pcb, netstat_st_get_name(stp), - so->so_rcv.sb_cc, so->so_snd.sb_cc, (long)unp->unp_vnode, + (long)so->so_pcb, + netstat_st_get_name(stp), + netstat_st_get_rcv_cc(stp), + netstat_st_get_snd_cc(stp), + (long)unp->unp_vnode, (long)unp->unp_conn, (long)LIST_FIRST(&unp->unp_refs), (long)LIST_NEXT(unp, unp_reflink)); From owner-p4-projects@FreeBSD.ORG Sun Jun 7 19:30:57 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id E60211065674; Sun, 7 Jun 2009 19:30:56 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id A0B16106564A for ; Sun, 7 Jun 2009 19:30:56 +0000 (UTC) (envelope-from syl@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 8E8EA8FC20 for ; Sun, 7 Jun 2009 19:30:56 +0000 (UTC) (envelope-from syl@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n57JUusI064461 for ; Sun, 7 Jun 2009 19:30:56 GMT (envelope-from syl@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n57JUus4064459 for perforce@freebsd.org; Sun, 7 Jun 2009 19:30:56 GMT (envelope-from syl@FreeBSD.org) Date: Sun, 7 Jun 2009 19:30:56 GMT Message-Id: <200906071930.n57JUus4064459@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to syl@FreeBSD.org using -f From: Sylvestre Gallon To: Perforce Change Reviews Cc: Subject: PERFORCE change 163723 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 07 Jun 2009 19:30:57 -0000 http://perforce.freebsd.org/chv.cgi?CH=163723 Change 163723 by syl@syl_atuin on 2009/06/07 19:29:58 Style change. Affected files ... .. //depot/projects/soc2009/syl_usb/src/lib/libusb/libusb10_desc.c#11 edit Differences ... ==== //depot/projects/soc2009/syl_usb/src/lib/libusb/libusb10_desc.c#11 (text+ko) ==== @@ -129,7 +129,7 @@ (*config)->interface = (libusb_interface *)(*config + sizeof(libusb_config_descriptor)); - for ( i = if_idx = endp_idx = 0 ; i < nif ; if_idx, i++) { + for (i = if_idx = endp_idx = 0 ; i < nif ; if_idx, i++) { (*config)->interface[i].altsetting = (libusb_interface_descriptor *) (*config + sizeof(libusb_config_descriptor) + (nif * sizeof(libusb_interface)) + @@ -144,7 +144,7 @@ if (pconf->interface[i].num_altsetting > 0) { - for ( j = 0 ; j < pconf->interface[i].num_altsetting ; j++, if_idx++) { + for (j = 0 ; j < pconf->interface[i].num_altsetting ; j++, if_idx++) { (*config)->interface[i].altsetting[j + 1].endpoint = (libusb_endpoint_descriptor *) (*config + sizeof(libusb_config_descriptor) + @@ -168,7 +168,7 @@ if ((*config)->extra_length != 0) ifd->extra = pconf->extra.ptr; - for ( i = 0 ; i < nif ; i++) { + for (i = 0 ; i < nif ; i++) { pinf = &pconf->interface[i]; (*config)->interface[i].num_altsetting = pinf->num_altsetting + 1; for (j = 0 ; j <= pinf->num_altsetting ; j++) { From owner-p4-projects@FreeBSD.ORG Sun Jun 7 19:30:59 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 330AC1065739; Sun, 7 Jun 2009 19:30:59 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id E30011065730 for ; Sun, 7 Jun 2009 19:30:57 +0000 (UTC) (envelope-from syl@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 92AA08FC15 for ; Sun, 7 Jun 2009 19:30:57 +0000 (UTC) (envelope-from syl@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n57JUvaN064466 for ; Sun, 7 Jun 2009 19:30:57 GMT (envelope-from syl@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n57JUum7064464 for perforce@freebsd.org; Sun, 7 Jun 2009 19:30:56 GMT (envelope-from syl@FreeBSD.org) Date: Sun, 7 Jun 2009 19:30:56 GMT Message-Id: <200906071930.n57JUum7064464@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to syl@FreeBSD.org using -f From: Sylvestre Gallon To: Perforce Change Reviews Cc: Subject: PERFORCE change 163724 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 07 Jun 2009 19:31:00 -0000 http://perforce.freebsd.org/chv.cgi?CH=163724 Change 163724 by syl@syl_atuin on 2009/06/07 19:30:30 MFC Affected files ... .. //depot/projects/soc2009/syl_usb/src/lib/bind/config.mk#2 integrate .. //depot/projects/soc2009/syl_usb/src/lib/libusb/libusb.3#5 integrate .. //depot/projects/soc2009/syl_usb/src/lib/libusb/libusb20.c#3 integrate .. //depot/projects/soc2009/syl_usb/src/lib/libusb/libusb20.h#3 integrate .. //depot/projects/soc2009/syl_usb/src/lib/libutil/flopen.3#2 integrate .. //depot/projects/soc2009/syl_usb/src/lib/libutil/flopen.c#2 integrate .. //depot/projects/soc2009/syl_usb/src/lib/libutil/pidfile.3#2 integrate .. //depot/projects/soc2009/syl_usb/src/lib/msun/src/e_rem_pio2.c#2 integrate .. //depot/projects/soc2009/syl_usb/src/lib/msun/src/e_rem_pio2f.c#2 integrate .. //depot/projects/soc2009/syl_usb/src/lib/msun/src/k_cosf.c#2 integrate .. //depot/projects/soc2009/syl_usb/src/lib/msun/src/k_sinf.c#2 integrate .. //depot/projects/soc2009/syl_usb/src/lib/msun/src/k_tanf.c#2 integrate .. //depot/projects/soc2009/syl_usb/src/lib/msun/src/math_private.h#2 integrate .. //depot/projects/soc2009/syl_usb/src/sys/amd64/acpica/OsdEnvironment.c#2 integrate .. //depot/projects/soc2009/syl_usb/src/sys/amd64/acpica/acpi_machdep.c#2 integrate .. //depot/projects/soc2009/syl_usb/src/sys/amd64/acpica/acpi_wakeup.c#2 integrate .. //depot/projects/soc2009/syl_usb/src/sys/amd64/acpica/madt.c#2 integrate .. //depot/projects/soc2009/syl_usb/src/sys/amd64/amd64/support.S#2 integrate .. //depot/projects/soc2009/syl_usb/src/sys/amd64/conf/GENERIC#3 integrate .. //depot/projects/soc2009/syl_usb/src/sys/amd64/conf/MAC#2 delete .. //depot/projects/soc2009/syl_usb/src/sys/amd64/linux32/linux.h#3 integrate .. //depot/projects/soc2009/syl_usb/src/sys/boot/i386/libi386/Makefile#2 integrate .. //depot/projects/soc2009/syl_usb/src/sys/boot/i386/libi386/biosacpi.c#2 integrate .. //depot/projects/soc2009/syl_usb/src/sys/boot/ia64/ski/acpi_stub.c#2 integrate .. //depot/projects/soc2009/syl_usb/src/sys/boot/uboot/lib/disk.c#3 integrate .. //depot/projects/soc2009/syl_usb/src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/arc.c#3 integrate .. //depot/projects/soc2009/syl_usb/src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vfsops.c#3 integrate .. //depot/projects/soc2009/syl_usb/src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zio.c#3 integrate .. //depot/projects/soc2009/syl_usb/src/sys/compat/linux/linux_file.c#2 integrate .. //depot/projects/soc2009/syl_usb/src/sys/compat/linux/linux_getcwd.c#2 integrate .. //depot/projects/soc2009/syl_usb/src/sys/compat/linux/linux_misc.c#4 integrate .. //depot/projects/soc2009/syl_usb/src/sys/compat/linux/linux_socket.c#4 integrate .. //depot/projects/soc2009/syl_usb/src/sys/compat/linux/linux_stats.c#3 integrate .. //depot/projects/soc2009/syl_usb/src/sys/compat/svr4/svr4_fcntl.c#3 integrate .. //depot/projects/soc2009/syl_usb/src/sys/compat/svr4/svr4_misc.c#3 integrate .. //depot/projects/soc2009/syl_usb/src/sys/conf/files#4 integrate .. //depot/projects/soc2009/syl_usb/src/sys/conf/files.powerpc#4 integrate .. //depot/projects/soc2009/syl_usb/src/sys/conf/options#4 integrate .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/CHANGES.txt#2 delete .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/acapps.h#2 delete .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/acconfig.h#2 delete .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/acdebug.h#2 delete .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/acdisasm.h#2 delete .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/acdispat.h#2 delete .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/acefi.h#2 delete .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/acenv.h#2 delete .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/acevents.h#2 delete .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/acexcep.h#2 delete .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/acfreebsd.h#2 delete .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/acgcc.h#2 delete .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/acglobal.h#2 delete .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/achware.h#2 delete .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/acinterp.h#2 delete .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/aclocal.h#2 delete .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/acmacros.h#2 delete .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/acnames.h#2 delete .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/acnamesp.h#2 delete .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/acobject.h#2 delete .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/acopcode.h#2 delete .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/acoutput.h#2 delete .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/acparser.h#2 delete .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/acpi.h#2 delete .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/acpica_prep.sh#2 integrate .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/acpiosxf.h#2 delete .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/acpixf.h#2 delete .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/acresrc.h#2 delete .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/acstruct.h#2 delete .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/actables.h#2 delete .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/actbl.h#2 delete .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/actbl1.h#2 delete .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/actbl2.h#2 delete .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/actypes.h#2 delete .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/acutils.h#2 delete .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/aecommon.h#2 delete .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/amlcode.h#2 delete .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/amlresrc.h#2 delete .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/changes.txt#1 branch .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/common/adfile.c#2 integrate .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/common/adisasm.c#2 integrate .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/common/adwalk.c#2 integrate .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/common/dmrestag.c#2 integrate .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/common/dmtable.c#2 integrate .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/common/dmtbdump.c#2 integrate .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/common/dmtbinfo.c#2 integrate .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/common/getopt.c#2 integrate .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/compiler/aslanalyze.c#2 integrate .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/compiler/aslcodegen.c#2 integrate .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/compiler/aslcompile.c#2 integrate .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/compiler/aslcompiler.h#2 integrate .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/compiler/aslcompiler.l#2 integrate .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/compiler/aslcompiler.y#2 integrate .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/compiler/asldefine.h#2 integrate .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/compiler/aslerror.c#2 integrate .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/compiler/aslfiles.c#2 integrate .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/compiler/aslfold.c#2 integrate .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/compiler/aslglobal.h#2 integrate .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/compiler/asllength.c#2 integrate .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/compiler/asllisting.c#2 integrate .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/compiler/aslload.c#2 integrate .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/compiler/asllookup.c#2 integrate .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/compiler/aslmain.c#2 integrate .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/compiler/aslmap.c#2 integrate .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/compiler/aslopcodes.c#2 integrate .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/compiler/asloperands.c#2 integrate .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/compiler/aslopt.c#2 integrate .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/compiler/aslresource.c#2 integrate .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/compiler/aslrestype1.c#2 integrate .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/compiler/aslrestype2.c#2 integrate .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/compiler/aslstartup.c#1 branch .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/compiler/aslstubs.c#2 integrate .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/compiler/asltransform.c#2 integrate .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/compiler/asltree.c#2 integrate .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/compiler/asltypes.h#2 integrate .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/compiler/aslutils.c#2 integrate .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/dbcmds.c#2 delete .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/dbdisply.c#2 delete .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/dbexec.c#2 delete .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/dbfileio.c#2 delete .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/dbhistry.c#2 delete .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/dbinput.c#2 delete .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/dbstats.c#2 delete .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/dbutils.c#2 delete .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/dbxface.c#2 delete .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/debugger/dbcmds.c#1 branch .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/debugger/dbdisply.c#1 branch .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/debugger/dbexec.c#1 branch .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/debugger/dbfileio.c#1 branch .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/debugger/dbhistry.c#1 branch .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/debugger/dbinput.c#1 branch .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/debugger/dbstats.c#1 branch .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/debugger/dbutils.c#1 branch .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/debugger/dbxface.c#1 branch .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/disassembler/dmbuffer.c#1 branch .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/disassembler/dmnames.c#1 branch .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/disassembler/dmobject.c#1 branch .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/disassembler/dmopcode.c#1 branch .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/disassembler/dmresrc.c#1 branch .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/disassembler/dmresrcl.c#1 branch .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/disassembler/dmresrcs.c#1 branch .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/disassembler/dmutils.c#1 branch .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/disassembler/dmwalk.c#1 branch .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/dispatcher/dsfield.c#1 branch .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/dispatcher/dsinit.c#1 branch .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/dispatcher/dsmethod.c#1 branch .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/dispatcher/dsmthdat.c#1 branch .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/dispatcher/dsobject.c#1 branch .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/dispatcher/dsopcode.c#1 branch .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/dispatcher/dsutils.c#1 branch .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/dispatcher/dswexec.c#1 branch .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/dispatcher/dswload.c#1 branch .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/dispatcher/dswscope.c#1 branch .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/dispatcher/dswstate.c#1 branch .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/dmbuffer.c#2 delete .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/dmnames.c#2 delete .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/dmobject.c#2 delete .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/dmopcode.c#2 delete .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/dmresrc.c#2 delete .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/dmresrcl.c#2 delete .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/dmresrcs.c#2 delete .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/dmutils.c#2 delete .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/dmwalk.c#2 delete .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/dsfield.c#2 delete .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/dsinit.c#2 delete .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/dsmethod.c#2 delete .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/dsmthdat.c#2 delete .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/dsobject.c#2 delete .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/dsopcode.c#2 delete .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/dsutils.c#2 delete .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/dswexec.c#2 delete .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/dswload.c#2 delete .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/dswscope.c#2 delete .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/dswstate.c#2 delete .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/events/evevent.c#1 branch .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/events/evgpe.c#1 branch .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/events/evgpeblk.c#1 branch .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/events/evmisc.c#1 branch .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/events/evregion.c#1 branch .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/events/evrgnini.c#1 branch .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/events/evsci.c#1 branch .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/events/evxface.c#1 branch .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/events/evxfevnt.c#1 branch .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/events/evxfregn.c#1 branch .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/evevent.c#2 delete .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/evgpe.c#2 delete .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/evgpeblk.c#2 delete .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/evmisc.c#2 delete .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/evregion.c#2 delete .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/evrgnini.c#2 delete .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/evsci.c#2 delete .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/evxface.c#2 delete .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/evxfevnt.c#2 delete .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/evxfregn.c#2 delete .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/exconfig.c#2 delete .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/exconvrt.c#2 delete .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/excreate.c#2 delete .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/exdump.c#2 delete .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/executer/exconfig.c#1 branch .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/executer/exconvrt.c#1 branch .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/executer/excreate.c#1 branch .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/executer/exdump.c#1 branch .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/executer/exfield.c#1 branch .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/executer/exfldio.c#1 branch .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/executer/exmisc.c#1 branch .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/executer/exmutex.c#1 branch .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/executer/exnames.c#1 branch .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/executer/exoparg1.c#1 branch .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/executer/exoparg2.c#1 branch .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/executer/exoparg3.c#1 branch .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/executer/exoparg6.c#1 branch .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/executer/exprep.c#1 branch .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/executer/exregion.c#1 branch .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/executer/exresnte.c#1 branch .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/executer/exresolv.c#1 branch .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/executer/exresop.c#1 branch .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/executer/exstore.c#1 branch .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/executer/exstoren.c#1 branch .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/executer/exstorob.c#1 branch .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/executer/exsystem.c#1 branch .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/executer/exutils.c#1 branch .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/exfield.c#2 delete .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/exfldio.c#2 delete .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/exmisc.c#2 delete .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/exmutex.c#2 delete .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/exnames.c#2 delete .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/exoparg1.c#2 delete .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/exoparg2.c#2 delete .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/exoparg3.c#2 delete .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/exoparg6.c#2 delete .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/exprep.c#2 delete .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/exregion.c#2 delete .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/exresnte.c#2 delete .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/exresolv.c#2 delete .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/exresop.c#2 delete .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/exstore.c#2 delete .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/exstoren.c#2 delete .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/exstorob.c#2 delete .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/exsystem.c#2 delete .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/exutils.c#2 delete .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/hardware/hwacpi.c#1 branch .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/hardware/hwgpe.c#1 branch .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/hardware/hwregs.c#1 branch .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/hardware/hwsleep.c#1 branch .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/hardware/hwtimer.c#1 branch .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/hardware/hwvalid.c#1 branch .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/hardware/hwxface.c#1 branch .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/hwacpi.c#2 delete .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/hwgpe.c#2 delete .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/hwregs.c#2 delete .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/hwsleep.c#2 delete .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/hwtimer.c#2 delete .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/include/acapps.h#1 branch .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/include/accommon.h#1 branch .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/include/acconfig.h#1 branch .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/include/acdebug.h#1 branch .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/include/acdisasm.h#1 branch .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/include/acdispat.h#1 branch .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/include/acevents.h#1 branch .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/include/acexcep.h#1 branch .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/include/acglobal.h#1 branch .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/include/achware.h#1 branch .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/include/acinterp.h#1 branch .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/include/aclocal.h#1 branch .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/include/acmacros.h#1 branch .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/include/acnames.h#1 branch .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/include/acnamesp.h#1 branch .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/include/acobject.h#1 branch .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/include/acopcode.h#1 branch .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/include/acoutput.h#1 branch .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/include/acparser.h#1 branch .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/include/acpi.h#1 branch .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/include/acpiosxf.h#1 branch .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/include/acpixf.h#1 branch .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/include/acpredef.h#1 branch .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/include/acresrc.h#1 branch .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/include/acrestyp.h#1 branch .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/include/acstruct.h#1 branch .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/include/actables.h#1 branch .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/include/actbl.h#1 branch .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/include/actbl1.h#1 branch .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/include/actypes.h#1 branch .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/include/acutils.h#1 branch .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/include/amlcode.h#1 branch .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/include/amlresrc.h#1 branch .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/include/platform/acenv.h#1 branch .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/include/platform/acfreebsd.h#1 branch .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/include/platform/acgcc.h#1 branch .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/namespace/nsaccess.c#1 branch .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/namespace/nsalloc.c#1 branch .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/namespace/nsdump.c#1 branch .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/namespace/nsdumpdv.c#1 branch .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/namespace/nseval.c#1 branch .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/namespace/nsinit.c#1 branch .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/namespace/nsload.c#1 branch .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/namespace/nsnames.c#1 branch .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/namespace/nsobject.c#1 branch .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/namespace/nsparse.c#1 branch .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/namespace/nspredef.c#1 branch .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/namespace/nssearch.c#1 branch .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/namespace/nsutils.c#1 branch .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/namespace/nswalk.c#1 branch .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/namespace/nsxfeval.c#1 branch .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/namespace/nsxfname.c#1 branch .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/namespace/nsxfobj.c#1 branch .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/nsaccess.c#2 delete .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/nsalloc.c#2 delete .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/nsdump.c#2 delete .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/nsdumpdv.c#2 delete .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/nseval.c#2 delete .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/nsinit.c#2 delete .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/nsload.c#2 delete .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/nsnames.c#2 delete .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/nsobject.c#2 delete .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/nsparse.c#2 delete .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/nssearch.c#2 delete .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/nsutils.c#2 delete .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/nswalk.c#2 delete .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/nsxfeval.c#2 delete .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/nsxfname.c#2 delete .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/nsxfobj.c#2 delete .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/osunixxf.c#2 integrate .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/parser/psargs.c#1 branch .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/parser/psloop.c#1 branch .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/parser/psopcode.c#1 branch .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/parser/psparse.c#1 branch .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/parser/psscope.c#1 branch .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/parser/pstree.c#1 branch .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/parser/psutils.c#1 branch .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/parser/pswalk.c#1 branch .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/parser/psxface.c#1 branch .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/psargs.c#2 delete .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/psloop.c#2 delete .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/psopcode.c#2 delete .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/psparse.c#2 delete .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/psscope.c#2 delete .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/pstree.c#2 delete .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/psutils.c#2 delete .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/pswalk.c#2 delete .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/psxface.c#2 delete .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/resources/rsaddr.c#1 branch .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/resources/rscalc.c#1 branch .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/resources/rscreate.c#1 branch .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/resources/rsdump.c#1 branch .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/resources/rsinfo.c#1 branch .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/resources/rsio.c#1 branch .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/resources/rsirq.c#1 branch .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/resources/rslist.c#1 branch .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/resources/rsmemory.c#1 branch .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/resources/rsmisc.c#1 branch .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/resources/rsutils.c#1 branch .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/resources/rsxface.c#1 branch .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/rsaddr.c#2 delete .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/rscalc.c#2 delete .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/rscreate.c#2 delete .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/rsdump.c#2 delete .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/rsinfo.c#2 delete .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/rsio.c#2 delete .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/rsirq.c#2 delete .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/rslist.c#2 delete .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/rsmemory.c#2 delete .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/rsmisc.c#2 delete .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/rsutils.c#2 delete .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/rsxface.c#2 delete .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/tables/tbfadt.c#1 branch .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/tables/tbfind.c#1 branch .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/tables/tbinstal.c#1 branch .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/tables/tbutils.c#1 branch .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/tables/tbxface.c#1 branch .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/tables/tbxfroot.c#1 branch .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/tbfadt.c#2 delete .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/tbfind.c#2 delete .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/tbinstal.c#2 delete .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/tbutils.c#2 delete .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/tbxface.c#2 delete .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/tbxfroot.c#2 delete .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/tools/acpiexec/aecommon.h#1 branch .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/utalloc.c#2 delete .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/utcache.c#2 delete .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/utclib.c#2 delete .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/utcopy.c#2 delete .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/utdebug.c#2 delete .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/utdelete.c#2 delete .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/uteval.c#2 delete .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/utglobal.c#2 delete .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/utilities/utalloc.c#1 branch .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/utilities/utcache.c#1 branch .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/utilities/utcopy.c#1 branch .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/utilities/utdebug.c#1 branch .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/utilities/utdelete.c#1 branch .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/utilities/uteval.c#1 branch .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/utilities/utglobal.c#1 branch .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/utilities/utinit.c#1 branch .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/utilities/utlock.c#1 branch .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/utilities/utmath.c#1 branch .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/utilities/utmisc.c#1 branch .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/utilities/utmutex.c#1 branch .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/utilities/utobject.c#1 branch .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/utilities/utresrc.c#1 branch .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/utilities/utstate.c#1 branch .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/utilities/uttrack.c#1 branch .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/utilities/utxface.c#1 branch .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/utinit.c#2 delete .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/utmath.c#2 delete .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/utmisc.c#2 delete .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/utmutex.c#2 delete .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/utobject.c#2 delete .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/utresrc.c#2 delete .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/utstate.c#2 delete .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/uttrack.c#2 delete .. //depot/projects/soc2009/syl_usb/src/sys/contrib/dev/acpica/utxface.c#2 delete .. //depot/projects/soc2009/syl_usb/src/sys/contrib/pf/net/pf.c#2 integrate .. //depot/projects/soc2009/syl_usb/src/sys/contrib/pf/net/pf_ioctl.c#2 integrate .. //depot/projects/soc2009/syl_usb/src/sys/dev/acpi_support/acpi_aiboost.c#2 integrate .. //depot/projects/soc2009/syl_usb/src/sys/dev/acpi_support/acpi_asus.c#2 integrate .. //depot/projects/soc2009/syl_usb/src/sys/dev/acpi_support/acpi_fujitsu.c#2 integrate .. //depot/projects/soc2009/syl_usb/src/sys/dev/acpi_support/acpi_ibm.c#3 integrate .. //depot/projects/soc2009/syl_usb/src/sys/dev/acpi_support/acpi_panasonic.c#2 integrate .. //depot/projects/soc2009/syl_usb/src/sys/dev/acpi_support/acpi_sony.c#3 integrate .. //depot/projects/soc2009/syl_usb/src/sys/dev/acpi_support/acpi_toshiba.c#2 integrate .. //depot/projects/soc2009/syl_usb/src/sys/dev/acpica/Osd/OsdDebug.c#2 integrate .. //depot/projects/soc2009/syl_usb/src/sys/dev/acpica/Osd/OsdHardware.c#2 integrate .. //depot/projects/soc2009/syl_usb/src/sys/dev/acpica/Osd/OsdInterrupt.c#2 integrate .. //depot/projects/soc2009/syl_usb/src/sys/dev/acpica/Osd/OsdMemory.c#2 integrate .. //depot/projects/soc2009/syl_usb/src/sys/dev/acpica/Osd/OsdSchedule.c#2 integrate .. //depot/projects/soc2009/syl_usb/src/sys/dev/acpica/Osd/OsdStream.c#2 integrate .. //depot/projects/soc2009/syl_usb/src/sys/dev/acpica/Osd/OsdSynch.c#2 integrate .. //depot/projects/soc2009/syl_usb/src/sys/dev/acpica/Osd/OsdTable.c#2 integrate .. //depot/projects/soc2009/syl_usb/src/sys/dev/acpica/acpi.c#4 integrate .. //depot/projects/soc2009/syl_usb/src/sys/dev/acpica/acpi_acad.c#2 integrate .. //depot/projects/soc2009/syl_usb/src/sys/dev/acpica/acpi_battery.c#2 integrate .. //depot/projects/soc2009/syl_usb/src/sys/dev/acpica/acpi_button.c#2 integrate .. //depot/projects/soc2009/syl_usb/src/sys/dev/acpica/acpi_cmbat.c#2 integrate .. //depot/projects/soc2009/syl_usb/src/sys/dev/acpica/acpi_cpu.c#3 integrate .. //depot/projects/soc2009/syl_usb/src/sys/dev/acpica/acpi_dock.c#2 integrate .. //depot/projects/soc2009/syl_usb/src/sys/dev/acpica/acpi_ec.c#2 integrate .. //depot/projects/soc2009/syl_usb/src/sys/dev/acpica/acpi_hpet.c#2 integrate .. //depot/projects/soc2009/syl_usb/src/sys/dev/acpica/acpi_if.m#2 integrate .. //depot/projects/soc2009/syl_usb/src/sys/dev/acpica/acpi_isab.c#2 integrate .. //depot/projects/soc2009/syl_usb/src/sys/dev/acpica/acpi_lid.c#2 integrate .. //depot/projects/soc2009/syl_usb/src/sys/dev/acpica/acpi_package.c#2 integrate .. //depot/projects/soc2009/syl_usb/src/sys/dev/acpica/acpi_pci.c#2 integrate .. //depot/projects/soc2009/syl_usb/src/sys/dev/acpica/acpi_pci_link.c#2 integrate .. //depot/projects/soc2009/syl_usb/src/sys/dev/acpica/acpi_pcib.c#2 integrate .. //depot/projects/soc2009/syl_usb/src/sys/dev/acpica/acpi_pcib_acpi.c#2 integrate .. //depot/projects/soc2009/syl_usb/src/sys/dev/acpica/acpi_pcib_pci.c#2 integrate .. //depot/projects/soc2009/syl_usb/src/sys/dev/acpica/acpi_perf.c#2 integrate .. //depot/projects/soc2009/syl_usb/src/sys/dev/acpica/acpi_powerres.c#2 integrate .. //depot/projects/soc2009/syl_usb/src/sys/dev/acpica/acpi_quirk.c#2 integrate .. //depot/projects/soc2009/syl_usb/src/sys/dev/acpica/acpi_resource.c#2 integrate .. //depot/projects/soc2009/syl_usb/src/sys/dev/acpica/acpi_smbat.c#2 integrate .. //depot/projects/soc2009/syl_usb/src/sys/dev/acpica/acpi_thermal.c#2 integrate .. //depot/projects/soc2009/syl_usb/src/sys/dev/acpica/acpi_throttle.c#2 integrate .. //depot/projects/soc2009/syl_usb/src/sys/dev/acpica/acpi_timer.c#2 integrate .. //depot/projects/soc2009/syl_usb/src/sys/dev/acpica/acpi_video.c#2 integrate .. //depot/projects/soc2009/syl_usb/src/sys/dev/aic7xxx/aicasm/Makefile#3 integrate .. //depot/projects/soc2009/syl_usb/src/sys/dev/aic7xxx/aicasm/aicasm_scan.l#3 integrate .. //depot/projects/soc2009/syl_usb/src/sys/dev/asmc/asmc.c#2 integrate .. //depot/projects/soc2009/syl_usb/src/sys/dev/ata/ata-all.h#3 integrate .. //depot/projects/soc2009/syl_usb/src/sys/dev/ata/chipsets/ata-ahci.c#3 integrate .. //depot/projects/soc2009/syl_usb/src/sys/dev/ath/if_ath.c#4 integrate .. //depot/projects/soc2009/syl_usb/src/sys/dev/bwi/if_bwi.c#3 integrate .. //depot/projects/soc2009/syl_usb/src/sys/dev/cxgb/ulp/iw_cxgb/iw_cxgb_cm.c#2 integrate .. //depot/projects/soc2009/syl_usb/src/sys/dev/cxgb/ulp/tom/cxgb_cpl_io.c#3 integrate .. //depot/projects/soc2009/syl_usb/src/sys/dev/fdc/fdc_acpi.c#2 integrate .. //depot/projects/soc2009/syl_usb/src/sys/dev/if_ndis/if_ndis.c#4 integrate .. //depot/projects/soc2009/syl_usb/src/sys/dev/iir/iir.c#2 integrate .. //depot/projects/soc2009/syl_usb/src/sys/dev/iir/iir_ctrl.c#3 integrate .. //depot/projects/soc2009/syl_usb/src/sys/dev/ipmi/ipmi_acpi.c#2 integrate .. //depot/projects/soc2009/syl_usb/src/sys/dev/kbd/kbd.c#2 integrate .. //depot/projects/soc2009/syl_usb/src/sys/dev/kbdmux/kbdmux.c#2 integrate .. //depot/projects/soc2009/syl_usb/src/sys/dev/ksyms/ksyms.c#2 integrate .. //depot/projects/soc2009/syl_usb/src/sys/dev/mii/e1000phy.c#3 integrate .. //depot/projects/soc2009/syl_usb/src/sys/dev/mii/e1000phyreg.h#3 integrate .. //depot/projects/soc2009/syl_usb/src/sys/dev/msk/if_msk.c#3 integrate .. //depot/projects/soc2009/syl_usb/src/sys/dev/msk/if_mskreg.h#3 integrate .. //depot/projects/soc2009/syl_usb/src/sys/dev/mxge/if_mxge.c#3 integrate .. //depot/projects/soc2009/syl_usb/src/sys/dev/mxge/if_mxge_var.h#3 integrate .. //depot/projects/soc2009/syl_usb/src/sys/dev/pci/pci.c#3 integrate .. //depot/projects/soc2009/syl_usb/src/sys/dev/pci/pcivar.h#2 integrate .. //depot/projects/soc2009/syl_usb/src/sys/dev/puc/pucdata.c#2 integrate .. //depot/projects/soc2009/syl_usb/src/sys/dev/sec/sec.c#1 branch .. //depot/projects/soc2009/syl_usb/src/sys/dev/sec/sec.h#1 branch .. //depot/projects/soc2009/syl_usb/src/sys/dev/sound/usb/uaudio.c#3 integrate .. //depot/projects/soc2009/syl_usb/src/sys/dev/usb/input/ukbd.c#3 integrate .. //depot/projects/soc2009/syl_usb/src/sys/dev/usb/usb_compat_linux.h#3 integrate .. //depot/projects/soc2009/syl_usb/src/sys/dev/usb/usb_dev.c#4 integrate .. //depot/projects/soc2009/syl_usb/src/sys/dev/usb/usb_dev.h#3 integrate .. //depot/projects/soc2009/syl_usb/src/sys/dev/usb/usb_request.c#3 integrate .. //depot/projects/soc2009/syl_usb/src/sys/dev/usb/wlan/if_zyd.c#4 integrate .. //depot/projects/soc2009/syl_usb/src/sys/dev/usb/wlan/if_zydreg.h#4 integrate .. //depot/projects/soc2009/syl_usb/src/sys/dev/xen/netfront/netfront.c#3 integrate .. //depot/projects/soc2009/syl_usb/src/sys/fs/devfs/devfs_devs.c#2 integrate .. //depot/projects/soc2009/syl_usb/src/sys/fs/devfs/devfs_vfsops.c#3 integrate .. //depot/projects/soc2009/syl_usb/src/sys/fs/devfs/devfs_vnops.c#3 integrate .. //depot/projects/soc2009/syl_usb/src/sys/fs/nfs/nfs_commonacl.c#3 integrate .. //depot/projects/soc2009/syl_usb/src/sys/fs/nfsserver/nfs_nfsdkrpc.c#3 integrate .. //depot/projects/soc2009/syl_usb/src/sys/fs/pseudofs/pseudofs_vncache.c#2 integrate .. //depot/projects/soc2009/syl_usb/src/sys/fs/udf/osta.c#2 integrate .. //depot/projects/soc2009/syl_usb/src/sys/fs/unionfs/union_subr.c#2 integrate .. //depot/projects/soc2009/syl_usb/src/sys/geom/geom_subr.c#3 integrate .. //depot/projects/soc2009/syl_usb/src/sys/gnu/fs/ext2fs/ext2_fs.h#2 integrate .. //depot/projects/soc2009/syl_usb/src/sys/gnu/fs/ext2fs/ext2_fs_sb.h#2 integrate .. //depot/projects/soc2009/syl_usb/src/sys/gnu/fs/ext2fs/ext2_lookup.c#2 integrate .. //depot/projects/soc2009/syl_usb/src/sys/gnu/fs/ext2fs/ext2_vfsops.c#3 integrate .. //depot/projects/soc2009/syl_usb/src/sys/gnu/fs/ext2fs/ext2_vnops.c#2 integrate .. //depot/projects/soc2009/syl_usb/src/sys/gnu/fs/ext2fs/sparc64-bitops.h#2 delete .. //depot/projects/soc2009/syl_usb/src/sys/i386/acpica/OsdEnvironment.c#2 integrate .. //depot/projects/soc2009/syl_usb/src/sys/i386/acpica/acpi_machdep.c#3 integrate .. //depot/projects/soc2009/syl_usb/src/sys/i386/acpica/acpi_wakeup.c#2 integrate .. //depot/projects/soc2009/syl_usb/src/sys/i386/acpica/madt.c#2 integrate .. //depot/projects/soc2009/syl_usb/src/sys/i386/conf/GENERIC#3 integrate .. //depot/projects/soc2009/syl_usb/src/sys/i386/conf/MAC#2 delete .. //depot/projects/soc2009/syl_usb/src/sys/i386/cpufreq/est.c#2 integrate .. //depot/projects/soc2009/syl_usb/src/sys/i386/cpufreq/hwpstate.c#3 integrate .. //depot/projects/soc2009/syl_usb/src/sys/i386/cpufreq/p4tcc.c#2 integrate .. //depot/projects/soc2009/syl_usb/src/sys/i386/i386/sys_machdep.c#2 integrate .. //depot/projects/soc2009/syl_usb/src/sys/i386/ibcs2/ibcs2_misc.c#2 integrate .. //depot/projects/soc2009/syl_usb/src/sys/i386/linux/linux.h#3 integrate .. //depot/projects/soc2009/syl_usb/src/sys/ia64/acpica/OsdEnvironment.c#2 integrate .. //depot/projects/soc2009/syl_usb/src/sys/ia64/acpica/acpi_machdep.c#2 integrate .. //depot/projects/soc2009/syl_usb/src/sys/ia64/acpica/acpi_wakeup.c#2 integrate .. //depot/projects/soc2009/syl_usb/src/sys/ia64/acpica/madt.c#2 integrate .. //depot/projects/soc2009/syl_usb/src/sys/ia64/conf/GENERIC#2 integrate .. //depot/projects/soc2009/syl_usb/src/sys/ia64/conf/MAC#2 delete .. //depot/projects/soc2009/syl_usb/src/sys/ia64/ia64/nexus.c#2 integrate .. //depot/projects/soc2009/syl_usb/src/sys/kern/init_main.c#4 integrate .. //depot/projects/soc2009/syl_usb/src/sys/kern/kern_acct.c#3 integrate .. //depot/projects/soc2009/syl_usb/src/sys/kern/kern_alq.c#2 integrate .. //depot/projects/soc2009/syl_usb/src/sys/kern/kern_conf.c#3 integrate .. //depot/projects/soc2009/syl_usb/src/sys/kern/kern_descrip.c#4 integrate .. //depot/projects/soc2009/syl_usb/src/sys/kern/kern_environment.c#2 integrate .. //depot/projects/soc2009/syl_usb/src/sys/kern/kern_exec.c#2 integrate .. //depot/projects/soc2009/syl_usb/src/sys/kern/kern_exit.c#4 integrate .. //depot/projects/soc2009/syl_usb/src/sys/kern/kern_fork.c#4 integrate .. //depot/projects/soc2009/syl_usb/src/sys/kern/kern_jail.c#4 integrate .. //depot/projects/soc2009/syl_usb/src/sys/kern/kern_ktrace.c#2 integrate .. //depot/projects/soc2009/syl_usb/src/sys/kern/kern_linker.c#4 integrate .. //depot/projects/soc2009/syl_usb/src/sys/kern/kern_lock.c#4 integrate .. //depot/projects/soc2009/syl_usb/src/sys/kern/kern_malloc.c#3 integrate .. //depot/projects/soc2009/syl_usb/src/sys/kern/kern_mbuf.c#2 integrate .. //depot/projects/soc2009/syl_usb/src/sys/kern/kern_priv.c#2 integrate .. //depot/projects/soc2009/syl_usb/src/sys/kern/kern_proc.c#3 integrate .. //depot/projects/soc2009/syl_usb/src/sys/kern/kern_prot.c#4 integrate .. //depot/projects/soc2009/syl_usb/src/sys/kern/kern_rwlock.c#3 integrate .. //depot/projects/soc2009/syl_usb/src/sys/kern/kern_shutdown.c#3 integrate .. //depot/projects/soc2009/syl_usb/src/sys/kern/kern_sx.c#3 integrate .. //depot/projects/soc2009/syl_usb/src/sys/kern/kern_sysctl.c#3 integrate .. //depot/projects/soc2009/syl_usb/src/sys/kern/link_elf.c#3 integrate .. //depot/projects/soc2009/syl_usb/src/sys/kern/link_elf_obj.c#3 integrate .. //depot/projects/soc2009/syl_usb/src/sys/kern/subr_clist.c#2 delete .. //depot/projects/soc2009/syl_usb/src/sys/kern/subr_sglist.c#1 branch .. //depot/projects/soc2009/syl_usb/src/sys/kern/subr_trap.c#2 integrate .. //depot/projects/soc2009/syl_usb/src/sys/kern/sys_pipe.c#2 integrate .. //depot/projects/soc2009/syl_usb/src/sys/kern/sys_socket.c#3 integrate .. //depot/projects/soc2009/syl_usb/src/sys/kern/sysv_msg.c#3 integrate .. //depot/projects/soc2009/syl_usb/src/sys/kern/sysv_sem.c#3 integrate .. //depot/projects/soc2009/syl_usb/src/sys/kern/sysv_shm.c#3 integrate .. //depot/projects/soc2009/syl_usb/src/sys/kern/uipc_mbuf.c#2 integrate .. //depot/projects/soc2009/syl_usb/src/sys/kern/uipc_mbuf2.c#2 integrate .. //depot/projects/soc2009/syl_usb/src/sys/kern/uipc_sem.c#2 integrate .. //depot/projects/soc2009/syl_usb/src/sys/kern/uipc_shm.c#2 integrate .. //depot/projects/soc2009/syl_usb/src/sys/kern/uipc_sockbuf.c#2 integrate .. //depot/projects/soc2009/syl_usb/src/sys/kern/uipc_socket.c#3 integrate .. //depot/projects/soc2009/syl_usb/src/sys/kern/uipc_syscalls.c#4 integrate .. //depot/projects/soc2009/syl_usb/src/sys/kern/uipc_usrreq.c#3 integrate .. //depot/projects/soc2009/syl_usb/src/sys/kern/vfs_acl.c#3 integrate .. //depot/projects/soc2009/syl_usb/src/sys/kern/vfs_aio.c#2 integrate .. //depot/projects/soc2009/syl_usb/src/sys/kern/vfs_bio.c#4 integrate .. //depot/projects/soc2009/syl_usb/src/sys/kern/vfs_cache.c#3 integrate .. //depot/projects/soc2009/syl_usb/src/sys/kern/vfs_default.c#4 integrate .. //depot/projects/soc2009/syl_usb/src/sys/kern/vfs_extattr.c#3 integrate .. //depot/projects/soc2009/syl_usb/src/sys/kern/vfs_lookup.c#4 integrate .. //depot/projects/soc2009/syl_usb/src/sys/kern/vfs_mount.c#4 integrate .. //depot/projects/soc2009/syl_usb/src/sys/kern/vfs_subr.c#4 integrate .. //depot/projects/soc2009/syl_usb/src/sys/kern/vfs_syscalls.c#4 integrate .. //depot/projects/soc2009/syl_usb/src/sys/kern/vfs_vnops.c#3 integrate .. //depot/projects/soc2009/syl_usb/src/sys/modules/acpi/acpi/Makefile#2 integrate .. //depot/projects/soc2009/syl_usb/src/sys/modules/acpi/acpi_aiboost/Makefile#2 integrate .. //depot/projects/soc2009/syl_usb/src/sys/modules/acpi/acpi_asus/Makefile#2 integrate .. //depot/projects/soc2009/syl_usb/src/sys/modules/acpi/acpi_dock/Makefile#2 integrate .. //depot/projects/soc2009/syl_usb/src/sys/modules/acpi/acpi_fujitsu/Makefile#2 integrate .. //depot/projects/soc2009/syl_usb/src/sys/modules/acpi/acpi_ibm/Makefile#2 integrate .. //depot/projects/soc2009/syl_usb/src/sys/modules/acpi/acpi_panasonic/Makefile#2 integrate .. //depot/projects/soc2009/syl_usb/src/sys/modules/acpi/acpi_sony/Makefile#2 integrate .. //depot/projects/soc2009/syl_usb/src/sys/modules/acpi/acpi_toshiba/Makefile#2 integrate .. //depot/projects/soc2009/syl_usb/src/sys/modules/acpi/acpi_video/Makefile#2 integrate .. //depot/projects/soc2009/syl_usb/src/sys/modules/cpufreq/Makefile#3 integrate .. //depot/projects/soc2009/syl_usb/src/sys/modules/cxgb/tom/Makefile#2 integrate .. //depot/projects/soc2009/syl_usb/src/sys/modules/dummynet/Makefile#2 integrate .. //depot/projects/soc2009/syl_usb/src/sys/modules/fdc/Makefile#2 integrate .. //depot/projects/soc2009/syl_usb/src/sys/modules/firewire/fwip/Makefile#2 integrate .. //depot/projects/soc2009/syl_usb/src/sys/modules/ibcs2/Makefile#2 integrate .. //depot/projects/soc2009/syl_usb/src/sys/modules/if_gif/Makefile#2 integrate .. //depot/projects/soc2009/syl_usb/src/sys/modules/if_ppp/Makefile#2 integrate .. //depot/projects/soc2009/syl_usb/src/sys/modules/if_stf/Makefile#2 integrate .. //depot/projects/soc2009/syl_usb/src/sys/modules/if_tun/Makefile#2 integrate .. //depot/projects/soc2009/syl_usb/src/sys/modules/ip6_mroute_mod/Makefile#2 integrate .. //depot/projects/soc2009/syl_usb/src/sys/modules/ip_mroute_mod/Makefile#2 integrate .. //depot/projects/soc2009/syl_usb/src/sys/modules/ipfw/Makefile#2 integrate .. //depot/projects/soc2009/syl_usb/src/sys/modules/ipfw_nat/Makefile#2 integrate .. //depot/projects/soc2009/syl_usb/src/sys/modules/linux/Makefile#4 integrate .. //depot/projects/soc2009/syl_usb/src/sys/modules/mac_lomac/Makefile#2 integrate .. //depot/projects/soc2009/syl_usb/src/sys/modules/nfsserver/Makefile#2 integrate .. //depot/projects/soc2009/syl_usb/src/sys/modules/pf/Makefile#2 integrate .. //depot/projects/soc2009/syl_usb/src/sys/modules/pseudofs/Makefile#2 integrate .. //depot/projects/soc2009/syl_usb/src/sys/modules/sem/Makefile#2 integrate .. //depot/projects/soc2009/syl_usb/src/sys/modules/svr4/Makefile#3 integrate .. //depot/projects/soc2009/syl_usb/src/sys/modules/sysvipc/sysvmsg/Makefile#2 integrate .. //depot/projects/soc2009/syl_usb/src/sys/modules/sysvipc/sysvsem/Makefile#2 integrate .. //depot/projects/soc2009/syl_usb/src/sys/modules/sysvipc/sysvshm/Makefile#2 integrate .. //depot/projects/soc2009/syl_usb/src/sys/modules/ufs/Makefile#2 integrate .. //depot/projects/soc2009/syl_usb/src/sys/modules/usb/zyd/Makefile#2 integrate .. //depot/projects/soc2009/syl_usb/src/sys/net/bpf.c#4 integrate .. //depot/projects/soc2009/syl_usb/src/sys/net/if.c#4 integrate .. //depot/projects/soc2009/syl_usb/src/sys/net/if_atmsubr.c#2 integrate .. //depot/projects/soc2009/syl_usb/src/sys/net/if_bridge.c#3 integrate .. //depot/projects/soc2009/syl_usb/src/sys/net/if_ethersubr.c#3 integrate .. //depot/projects/soc2009/syl_usb/src/sys/net/if_fddisubr.c#2 integrate .. //depot/projects/soc2009/syl_usb/src/sys/net/if_fwsubr.c#2 integrate .. //depot/projects/soc2009/syl_usb/src/sys/net/if_gif.c#3 integrate .. //depot/projects/soc2009/syl_usb/src/sys/net/if_iso88025subr.c#2 integrate .. //depot/projects/soc2009/syl_usb/src/sys/net/if_loop.c#3 integrate .. //depot/projects/soc2009/syl_usb/src/sys/net/if_stf.c#2 integrate .. //depot/projects/soc2009/syl_usb/src/sys/net/if_tun.c#2 integrate .. //depot/projects/soc2009/syl_usb/src/sys/net80211/ieee80211.c#4 integrate .. //depot/projects/soc2009/syl_usb/src/sys/net80211/ieee80211.h#4 integrate .. //depot/projects/soc2009/syl_usb/src/sys/net80211/ieee80211_crypto.h#2 integrate .. //depot/projects/soc2009/syl_usb/src/sys/net80211/ieee80211_crypto_ccmp.c#2 integrate .. //depot/projects/soc2009/syl_usb/src/sys/net80211/ieee80211_crypto_tkip.c#2 integrate .. //depot/projects/soc2009/syl_usb/src/sys/net80211/ieee80211_ddb.c#4 integrate .. //depot/projects/soc2009/syl_usb/src/sys/net80211/ieee80211_freebsd.c#4 integrate .. //depot/projects/soc2009/syl_usb/src/sys/net80211/ieee80211_hostap.c#3 integrate .. //depot/projects/soc2009/syl_usb/src/sys/net80211/ieee80211_input.c#3 integrate .. //depot/projects/soc2009/syl_usb/src/sys/net80211/ieee80211_ioctl.c#3 integrate .. //depot/projects/soc2009/syl_usb/src/sys/net80211/ieee80211_ioctl.h#3 integrate .. //depot/projects/soc2009/syl_usb/src/sys/net80211/ieee80211_monitor.c#3 integrate .. //depot/projects/soc2009/syl_usb/src/sys/net80211/ieee80211_node.h#4 integrate .. //depot/projects/soc2009/syl_usb/src/sys/net80211/ieee80211_output.c#3 integrate .. //depot/projects/soc2009/syl_usb/src/sys/net80211/ieee80211_proto.c#4 integrate .. //depot/projects/soc2009/syl_usb/src/sys/net80211/ieee80211_proto.h#3 integrate .. //depot/projects/soc2009/syl_usb/src/sys/net80211/ieee80211_radiotap.c#2 integrate .. //depot/projects/soc2009/syl_usb/src/sys/net80211/ieee80211_scan.c#4 integrate .. //depot/projects/soc2009/syl_usb/src/sys/net80211/ieee80211_scan.h#4 integrate .. //depot/projects/soc2009/syl_usb/src/sys/net80211/ieee80211_sta.c#3 integrate .. //depot/projects/soc2009/syl_usb/src/sys/net80211/ieee80211_var.h#4 integrate .. //depot/projects/soc2009/syl_usb/src/sys/netatalk/aarp.c#2 integrate .. //depot/projects/soc2009/syl_usb/src/sys/netatalk/ddp_input.c#2 integrate .. //depot/projects/soc2009/syl_usb/src/sys/netatalk/ddp_output.c#2 integrate .. //depot/projects/soc2009/syl_usb/src/sys/netgraph/bluetooth/socket/ng_btsocket_rfcomm.c#2 integrate .. //depot/projects/soc2009/syl_usb/src/sys/netgraph/ng_ksocket.c#2 integrate .. //depot/projects/soc2009/syl_usb/src/sys/netinet/accf_data.c#2 integrate .. //depot/projects/soc2009/syl_usb/src/sys/netinet/accf_dns.c#3 integrate .. //depot/projects/soc2009/syl_usb/src/sys/netinet/accf_http.c#2 integrate .. //depot/projects/soc2009/syl_usb/src/sys/netinet/if_ether.c#4 integrate .. //depot/projects/soc2009/syl_usb/src/sys/netinet/igmp.c#4 integrate .. //depot/projects/soc2009/syl_usb/src/sys/netinet/in_pcb.c#4 integrate .. //depot/projects/soc2009/syl_usb/src/sys/netinet/ip_divert.c#4 integrate .. //depot/projects/soc2009/syl_usb/src/sys/netinet/ip_dummynet.c#2 delete .. //depot/projects/soc2009/syl_usb/src/sys/netinet/ip_dummynet.h#2 integrate .. //depot/projects/soc2009/syl_usb/src/sys/netinet/ip_fw.h#3 integrate .. //depot/projects/soc2009/syl_usb/src/sys/netinet/ip_fw2.c#4 delete .. //depot/projects/soc2009/syl_usb/src/sys/netinet/ip_fw_nat.c#2 delete .. //depot/projects/soc2009/syl_usb/src/sys/netinet/ip_fw_pfil.c#3 delete .. //depot/projects/soc2009/syl_usb/src/sys/netinet/ip_icmp.c#2 integrate .. //depot/projects/soc2009/syl_usb/src/sys/netinet/ip_input.c#4 integrate .. //depot/projects/soc2009/syl_usb/src/sys/netinet/ip_ipsec.c#4 integrate .. //depot/projects/soc2009/syl_usb/src/sys/netinet/ip_ipsec.h#2 integrate .. //depot/projects/soc2009/syl_usb/src/sys/netinet/ip_mroute.c#3 integrate .. //depot/projects/soc2009/syl_usb/src/sys/netinet/ip_options.c#2 integrate .. //depot/projects/soc2009/syl_usb/src/sys/netinet/ip_output.c#4 integrate .. //depot/projects/soc2009/syl_usb/src/sys/netinet/ip_var.h#2 integrate .. //depot/projects/soc2009/syl_usb/src/sys/netinet/ipfw/ip_dummynet.c#1 branch .. //depot/projects/soc2009/syl_usb/src/sys/netinet/ipfw/ip_fw2.c#1 branch .. //depot/projects/soc2009/syl_usb/src/sys/netinet/ipfw/ip_fw_nat.c#1 branch .. //depot/projects/soc2009/syl_usb/src/sys/netinet/ipfw/ip_fw_pfil.c#1 branch .. //depot/projects/soc2009/syl_usb/src/sys/netinet/raw_ip.c#4 integrate .. //depot/projects/soc2009/syl_usb/src/sys/netinet/tcp_input.c#3 integrate .. //depot/projects/soc2009/syl_usb/src/sys/netinet/tcp_output.c#2 integrate .. //depot/projects/soc2009/syl_usb/src/sys/netinet/tcp_subr.c#4 integrate .. //depot/projects/soc2009/syl_usb/src/sys/netinet/tcp_syncache.c#3 integrate .. //depot/projects/soc2009/syl_usb/src/sys/netinet/tcp_syncache.h#3 integrate .. //depot/projects/soc2009/syl_usb/src/sys/netinet/tcp_timewait.c#3 integrate .. //depot/projects/soc2009/syl_usb/src/sys/netinet/udp_usrreq.c#4 integrate .. //depot/projects/soc2009/syl_usb/src/sys/netinet6/frag6.c#2 integrate .. //depot/projects/soc2009/syl_usb/src/sys/netinet6/in6_pcb.c#4 integrate .. //depot/projects/soc2009/syl_usb/src/sys/netinet6/ip6_input.c#4 integrate .. //depot/projects/soc2009/syl_usb/src/sys/netinet6/nd6.c#3 integrate .. //depot/projects/soc2009/syl_usb/src/sys/netinet6/udp6_usrreq.c#4 integrate .. //depot/projects/soc2009/syl_usb/src/sys/netsmb/smb_trantcp.c#2 integrate .. //depot/projects/soc2009/syl_usb/src/sys/nfsclient/nfs_socket.c#3 integrate .. //depot/projects/soc2009/syl_usb/src/sys/nfsserver/nfs.h#2 integrate .. //depot/projects/soc2009/syl_usb/src/sys/nfsserver/nfs_srvkrpc.c#3 integrate .. //depot/projects/soc2009/syl_usb/src/sys/nfsserver/nfs_srvsock.c#3 integrate .. //depot/projects/soc2009/syl_usb/src/sys/nfsserver/nfs_syscalls.c#2 integrate .. //depot/projects/soc2009/syl_usb/src/sys/nlm/nlm_advlock.c#4 integrate .. //depot/projects/soc2009/syl_usb/src/sys/pc98/conf/GENERIC#3 integrate .. //depot/projects/soc2009/syl_usb/src/sys/pc98/conf/MAC#2 delete .. //depot/projects/soc2009/syl_usb/src/sys/powerpc/booke/platform_bare.c#3 integrate .. //depot/projects/soc2009/syl_usb/src/sys/powerpc/booke/pmap.c#4 integrate .. //depot/projects/soc2009/syl_usb/src/sys/powerpc/conf/GENERIC#4 integrate .. //depot/projects/soc2009/syl_usb/src/sys/powerpc/conf/MAC#2 delete .. //depot/projects/soc2009/syl_usb/src/sys/powerpc/conf/MPC85XX#3 integrate .. //depot/projects/soc2009/syl_usb/src/sys/powerpc/include/ocpbus.h#2 integrate .. //depot/projects/soc2009/syl_usb/src/sys/powerpc/include/pio.h#2 integrate .. //depot/projects/soc2009/syl_usb/src/sys/powerpc/mpc85xx/ocpbus.c#3 integrate .. //depot/projects/soc2009/syl_usb/src/sys/powerpc/mpc85xx/ocpbus.h#3 integrate .. //depot/projects/soc2009/syl_usb/src/sys/powerpc/powerpc/bus_machdep.c#2 integrate .. //depot/projects/soc2009/syl_usb/src/sys/rpc/clnt_dg.c#2 integrate .. //depot/projects/soc2009/syl_usb/src/sys/rpc/clnt_vc.c#2 integrate .. //depot/projects/soc2009/syl_usb/src/sys/rpc/svc.c#2 integrate .. //depot/projects/soc2009/syl_usb/src/sys/rpc/svc.h#2 integrate .. //depot/projects/soc2009/syl_usb/src/sys/rpc/svc_dg.c#2 integrate .. //depot/projects/soc2009/syl_usb/src/sys/rpc/svc_vc.c#2 integrate .. //depot/projects/soc2009/syl_usb/src/sys/security/audit/audit_syscalls.c#2 integrate .. //depot/projects/soc2009/syl_usb/src/sys/security/mac/mac_atalk.c#3 integrate .. //depot/projects/soc2009/syl_usb/src/sys/security/mac/mac_framework.c#3 integrate .. //depot/projects/soc2009/syl_usb/src/sys/security/mac/mac_inet.c#3 integrate .. //depot/projects/soc2009/syl_usb/src/sys/security/mac/mac_inet6.c#3 integrate .. //depot/projects/soc2009/syl_usb/src/sys/security/mac/mac_internal.h#4 integrate .. //depot/projects/soc2009/syl_usb/src/sys/security/mac/mac_net.c#3 integrate .. //depot/projects/soc2009/syl_usb/src/sys/security/mac/mac_socket.c#3 integrate .. //depot/projects/soc2009/syl_usb/src/sys/security/mac_biba/mac_biba.c#2 integrate .. //depot/projects/soc2009/syl_usb/src/sys/security/mac_lomac/mac_lomac.c#2 integrate .. //depot/projects/soc2009/syl_usb/src/sys/security/mac_mls/mac_mls.c#2 integrate .. //depot/projects/soc2009/syl_usb/src/sys/security/mac_stub/mac_stub.c#2 integrate .. //depot/projects/soc2009/syl_usb/src/sys/security/mac_test/mac_test.c#2 integrate .. //depot/projects/soc2009/syl_usb/src/sys/sparc64/conf/GENERIC#4 integrate .. //depot/projects/soc2009/syl_usb/src/sys/sparc64/conf/MAC#2 delete .. //depot/projects/soc2009/syl_usb/src/sys/sun4v/conf/GENERIC#2 integrate .. //depot/projects/soc2009/syl_usb/src/sys/sun4v/conf/MAC#2 delete .. //depot/projects/soc2009/syl_usb/src/sys/sun4v/include/pcpu.h#2 integrate .. //depot/projects/soc2009/syl_usb/src/sys/sys/clist.h#2 delete .. //depot/projects/soc2009/syl_usb/src/sys/sys/conf.h#2 integrate .. //depot/projects/soc2009/syl_usb/src/sys/sys/mount.h#4 integrate .. //depot/projects/soc2009/syl_usb/src/sys/sys/param.h#4 integrate .. //depot/projects/soc2009/syl_usb/src/sys/sys/pcpu.h#3 integrate .. //depot/projects/soc2009/syl_usb/src/sys/sys/pmc.h#2 integrate .. //depot/projects/soc2009/syl_usb/src/sys/sys/sglist.h#1 branch .. //depot/projects/soc2009/syl_usb/src/sys/sys/sockbuf.h#2 integrate .. //depot/projects/soc2009/syl_usb/src/sys/sys/socketvar.h#3 integrate .. //depot/projects/soc2009/syl_usb/src/sys/sys/ucred.h#3 integrate .. //depot/projects/soc2009/syl_usb/src/sys/sys/user.h#2 integrate .. //depot/projects/soc2009/syl_usb/src/sys/sys/vnode.h#3 integrate .. //depot/projects/soc2009/syl_usb/src/sys/ufs/ffs/ffs_softdep.c#2 integrate .. //depot/projects/soc2009/syl_usb/src/sys/ufs/ffs/ffs_vfsops.c#3 integrate .. //depot/projects/soc2009/syl_usb/src/sys/ufs/ufs/dirhash.h#2 integrate .. //depot/projects/soc2009/syl_usb/src/sys/ufs/ufs/ufs_dirhash.c#2 integrate .. //depot/projects/soc2009/syl_usb/src/sys/ufs/ufs/ufs_vnops.c#3 integrate .. //depot/projects/soc2009/syl_usb/src/sys/vm/swap_pager.c#3 integrate .. //depot/projects/soc2009/syl_usb/src/sys/vm/vm_contig.c#3 integrate .. //depot/projects/soc2009/syl_usb/src/sys/vm/vm_glue.c#2 integrate .. //depot/projects/soc2009/syl_usb/src/sys/vm/vm_mmap.c#2 integrate .. //depot/projects/soc2009/syl_usb/src/sys/vm/vm_pager.h#2 integrate .. //depot/projects/soc2009/syl_usb/src/sys/vm/vnode_pager.c#3 integrate Differences ... ==== //depot/projects/soc2009/syl_usb/src/lib/bind/config.mk#2 (text+ko) ==== @@ -1,4 +1,4 @@ -# $FreeBSD: src/lib/bind/config.mk,v 1.20 2007/12/02 19:13:57 dougb Exp $ +# $FreeBSD: src/lib/bind/config.mk,v 1.21 2009/06/01 21:58:59 dougb Exp $ .include @@ -70,6 +70,19 @@ ISC_ATOMIC_ARCH= ${MACHINE_ARCH} .endif +# Optional features +.if ${MK_BIND_LARGE_FILE} == "yes" +CFLAGS+= -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 +.endif +.if ${MK_BIND_SIGCHASE} == "yes" +CFLAGS+= -DDIG_SIGCHASE +.endif +.if ${MK_BIND_XML} == "yes" +CFLAGS+= -DHAVE_LIBXML2 +CFLAGS+= -I/usr/local/include -I/usr/local/include/libxml2 +CFLAGS+= -L/usr/local/lib -lxml2 -lz -liconv -lm +.endif + # Link against BIND libraries .if ${MK_BIND_LIBS} == "no" LIBBIND9= ${LIB_BIND_REL}/bind9/libbind9.a ==== //depot/projects/soc2009/syl_usb/src/lib/libusb/libusb.3#5 (text+ko) ==== @@ -24,9 +24,9 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.\" $FreeBSD: src/lib/libusb/libusb.3,v 1.4 2009/05/28 17:36:36 thompsa Exp $ +.\" $FreeBSD: src/lib/libusb/libusb.3,v 1.5 2009/06/02 17:27:51 thompsa Exp $ .\" -.Dd May 21, 2009 +.Dd May 28, 2009 .Dt LIBUSB 3 .Os .Sh NAME @@ -78,6 +78,8 @@ .Fn libusb20_tr_set_callback "struct libusb20_transfer *xfer" "libusb20_tr_callback_t *cb" .Ft void .Fn libusb20_tr_set_flags "struct libusb20_transfer *xfer" "uint8_t flags" +.Ft uint32_t +.Fn libusb20_tr_get_length "struct libusb20_transfer *xfer" "uint16_t fr_index" .Ft void .Fn libusb20_tr_set_length "struct libusb20_transfer *xfer" "uint32_t length" "uint16_t fr_index" .Ft void @@ -183,6 +185,10 @@ .Ft int .Fn libusb20_be_remove_dev_quirk "struct libusb20_backend *pbe" "struct libusb20_quirk *pq" .Ft struct libusb20_backend * +.Fn libusb20_be_alloc_default "void" +.Ft struct libusb20_backend * +.Fn libusb20_be_alloc_freebsd "void" +.Ft struct libusb20_backend * .Fn libusb20_be_alloc_linux "void" .Ft struct libusb20_device * .Fn libusb20_be_device_foreach "struct libusb20_backend *pbe" "struct libusb20_device *pdev" @@ -227,7 +233,7 @@ .Pp . .Fn libusb20_tr_open -will allocate kernel resources like +will allocate kernel buffer resources according to .Fa max_buf_size and .Fa max_frame_count @@ -235,6 +241,18 @@ .Fa pxfer and bind the transfer to the specified .Fa ep_no . +.Fa max_buf_size +is the minimum buffer size which the data transport layer has to support. +If +.Fa max_buf_size +is zero, the +.Nm +library will use wMaxPacketSize to compute the buffer size. +This can be useful for isochronous transfers. +The actual buffer size can be greater than +.Fa max_buf_size +and is returned by +.Fn libusb20_tr_get_max_total_length . . This function returns zero upon success. . @@ -367,8 +385,14 @@ . .Pp . +.Fn libusb20_tr_get_length +returns the length of the given USB frame by index. +After an USB transfer is complete the USB frame length will get updated to the actual transferred length. +. +.Pp +. .Fn libusb20_tr_set_length -sets the length of a given USB transfer and frame index. +sets the length of the given USB frame by index. . .Pp . @@ -750,7 +774,7 @@ the given USB device. . A timeout value can be specified which is passed on to the -.Xr 2 poll +.Xr poll 2 function. . .Sh USB BACKEND OPERATIONS @@ -829,6 +853,10 @@ If the given quirk does not exist LIBUSB20_ERROR_NOT_FOUND is returned. . +.Pp +. +.Fn libusb20_be_alloc_default +.Fn libusb20_be_alloc_freebsd .Fn libusb20_be_alloc_linux These functions are used to allocate a specific USB backend or the operating system default USB backend. Allocating a backend is a way to ==== //depot/projects/soc2009/syl_usb/src/lib/libusb/libusb20.c#3 (text+ko) ==== @@ -1,4 +1,4 @@ -/* $FreeBSD: src/lib/libusb/libusb20.c,v 1.2 2009/05/28 17:36:36 thompsa Exp $ */ +/* $FreeBSD: src/lib/libusb/libusb20.c,v 1.3 2009/06/02 17:27:51 thompsa Exp $ */ /*- * Copyright (c) 2008 Hans Petter Selasky. All rights reserved. * @@ -319,6 +319,12 @@ return; } +uint32_t +libusb20_tr_get_length(struct libusb20_transfer *xfer, uint16_t frIndex) +{ + return (xfer->pLength[frIndex]); +} + void libusb20_tr_set_length(struct libusb20_transfer *xfer, uint32_t length, uint16_t frIndex) { ==== //depot/projects/soc2009/syl_usb/src/lib/libusb/libusb20.h#3 (text+ko) ==== @@ -1,4 +1,4 @@ -/* $FreeBSD: src/lib/libusb/libusb20.h,v 1.3 2009/05/28 17:36:36 thompsa Exp $ */ +/* $FreeBSD: src/lib/libusb/libusb20.h,v 1.4 2009/06/02 17:27:51 thompsa Exp $ */ /*- * Copyright (c) 2008 Hans Petter Selasky. All rights reserved. * Copyright (c) 2007-2008 Daniel Drake. All rights reserved. @@ -216,6 +216,7 @@ void libusb20_tr_set_buffer(struct libusb20_transfer *xfer, void *buffer, uint16_t fr_index); void libusb20_tr_set_callback(struct libusb20_transfer *xfer, libusb20_tr_callback_t *cb); void libusb20_tr_set_flags(struct libusb20_transfer *xfer, uint8_t flags); +uint32_t libusb20_tr_get_length(struct libusb20_transfer *xfer, uint16_t fr_index); void libusb20_tr_set_length(struct libusb20_transfer *xfer, uint32_t length, uint16_t fr_index); void libusb20_tr_set_priv_sc0(struct libusb20_transfer *xfer, void *sc0); void libusb20_tr_set_priv_sc1(struct libusb20_transfer *xfer, void *sc1); ==== //depot/projects/soc2009/syl_usb/src/lib/libutil/flopen.3#2 (text+ko) ==== @@ -23,9 +23,9 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.\" $FreeBSD: src/lib/libutil/flopen.3,v 1.7 2008/10/20 18:02:16 des Exp $ +.\" $FreeBSD: src/lib/libutil/flopen.3,v 1.8 2009/06/06 18:47:03 des Exp $ .\" -.Dd May 10, 2007 +.Dd June 6, 2009 .Dt FLOPEN 3 .Os .Sh NAME @@ -46,13 +46,12 @@ function opens or creates a file and acquires an exclusive lock on it. It is essentially equivalent with calling .Fn open -with the same parameters followed by an -.Fn fcntl -.Dv F_SETLK -or -.Dv F_SETLKW -operation with lock type -.Dv F_WRLCK , +with the same parameters followed by +.Fn flock +with an +.Va operation +argument of +.Dv LOCK_EX , except that .Fn flopen will attempt to detect and handle races that may occur between opening @@ -87,18 +86,13 @@ Otherwise, it returns -1, and sets .Va errno as described in -.Xr fcntl 2 +.Xr flock 2 and .Xr open 2 . .Sh SEE ALSO .Xr errno 2 , -.Xr fcntl 2 , +.Xr flock 2 , .Xr open 2 -.Sh HISTORY -The -.Fn flopen -function first appeared in -.Fx 6.3 . .Sh AUTHORS .An -nosplit The ==== //depot/projects/soc2009/syl_usb/src/lib/libutil/flopen.c#2 (text+ko) ==== @@ -26,14 +26,13 @@ */ #include -__FBSDID("$FreeBSD: src/lib/libutil/flopen.c,v 1.11 2008/10/20 18:11:30 des Exp $"); +__FBSDID("$FreeBSD: src/lib/libutil/flopen.c,v 1.12 2009/06/06 18:47:03 des Exp $"); +#include #include #include -#include #include >>> TRUNCATED FOR MAIL (1000 lines) <<< From owner-p4-projects@FreeBSD.ORG Sun Jun 7 19:47:15 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 2F69E1065677; Sun, 7 Jun 2009 19:47:15 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id E26B21065675 for ; Sun, 7 Jun 2009 19:47:14 +0000 (UTC) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id CE5E58FC14 for ; Sun, 7 Jun 2009 19:47:14 +0000 (UTC) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n57JlEP2076393 for ; Sun, 7 Jun 2009 19:47:14 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n57JlEvc076391 for perforce@freebsd.org; Sun, 7 Jun 2009 19:47:14 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Date: Sun, 7 Jun 2009 19:47:14 GMT Message-Id: <200906071947.n57JlEvc076391@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to bb+lists.freebsd.perforce@cyrus.watson.org using -f From: Robert Watson To: Perforce Change Reviews Cc: Subject: PERFORCE change 163727 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 07 Jun 2009 19:47:15 -0000 http://perforce.freebsd.org/chv.cgi?CH=163727 Change 163727 by rwatson@rwatson_freebsd_capabilities on 2009/06/07 19:46:46 Rework ifdef'ing of rtld-elf/rtld-elf-cap so that less unnecessary code is compiled in in the capability-mode case, avoiding unnecessary security exceptions as rtld tries to analyze and search library paths. Add caplibindex, a facility to pass shared libraries into capability-mode executables as file descriptors, with an environmental variable that maps file descriptors to library names. This allows callers to pre-populate the sandboxed rtld environment with the libraries a binary needs to run (such as libc). Always validate MNT_NOEXEC for libraries passed in this way, as this is the moral equivalent of LD_LIBRARY_PATH. Affected files ... .. //depot/projects/trustedbsd/capabilities/src/libexec/rtld-elf-cap/Makefile#15 edit .. //depot/projects/trustedbsd/capabilities/src/libexec/rtld-elf-cap/rtld_caplibindex.c#1 add .. //depot/projects/trustedbsd/capabilities/src/libexec/rtld-elf-cap/rtld_caplibindex.h#1 add .. //depot/projects/trustedbsd/capabilities/src/libexec/rtld-elf/rtld.c#14 edit Differences ... ==== //depot/projects/trustedbsd/capabilities/src/libexec/rtld-elf-cap/Makefile#15 (text+ko) ==== @@ -1,5 +1,5 @@ # $FreeBSD$ -# $P4: //depot/projects/trustedbsd/capabilities/src/libexec/rtld-elf-cap/Makefile#14 $ +# $P4: //depot/projects/trustedbsd/capabilities/src/libexec/rtld-elf-cap/Makefile#15 $ WITHOUT_SSP= @@ -9,11 +9,11 @@ SRCS= rtld_start.S \ reloc.c rtld.c rtld_lock.c map_object.c \ malloc.c xmalloc.c debug.c \ - crtbrand.c + crtbrand.c rtld_caplibindex.c MAN= rtld-elf-cap.1 CSTD?= gnu99 CFLAGS+= -Wall -DFREEBSD_ELF -DIN_RTLD -DIN_RTLD_CAP -g -CFLAGS+= -I${.CURDIR}/../rtld-elf/${MACHINE_ARCH} -I${.CURDIR}/../rtld-elf +CFLAGS+= -I${.CURDIR} -I${.CURDIR}/../rtld-elf/${MACHINE_ARCH} -I${.CURDIR}/../rtld-elf LDFLAGS+= -nostdlib -Wl,-e,.rtld_start -Wl,-T,${.CURDIR}/rtld-elf-cap.xs INSTALLFLAGS= -C -b PRECIOUSPROG= ==== //depot/projects/trustedbsd/capabilities/src/libexec/rtld-elf/rtld.c#14 (text+ko) ==== @@ -59,6 +59,10 @@ #include "libmap.h" #include "rtld_tls.h" +#ifdef IN_RTLD_CAP +#include "rtld_caplibindex.h" +#endif + #ifndef COMPAT_32BIT #ifdef IN_RTLD_CAP #define PATH_RTLD "/libexec/ld-elf-cap.so.1" @@ -114,7 +118,9 @@ static void linkmap_add(Obj_Entry *); static void linkmap_delete(Obj_Entry *); static int load_needed_objects(Obj_Entry *); +#ifndef IN_RTLD_CAP static int load_preload_objects(void); +#endif static Obj_Entry *load_object(const char *, const Obj_Entry *); static Obj_Entry *obj_from_addr(const void *); static void objlist_call_fini(Objlist *, int *lockstate); @@ -175,12 +181,17 @@ used to affect the libraries loaded */ static char *ld_bind_now; /* Environment variable for immediate binding */ static char *ld_debug; /* Environment variable for debugging */ +#ifndef IN_RTLD_CAP static char *ld_library_path; /* Environment variable for search path */ static char *ld_preload; /* Environment variable for libraries to load first */ static char *ld_elf_hints_path; /* Environment variable for alternative hints path */ +#endif static char *ld_tracing; /* Called from ldd to print libs */ static char *ld_utrace; /* Use utrace() to log events. */ +#ifdef IN_RTLD_CAP +static char *ld_caplibindex; +#endif static Obj_Entry *obj_list; /* Head of linked list of shared objects */ static Obj_Entry **obj_tail; /* Link field of last object in list */ static Obj_Entry *obj_main; /* The main program shared object */ @@ -341,9 +352,11 @@ const char *argv0; Objlist_Entry *entry; Obj_Entry *obj; +#ifndef IN_RTLD_CAP Obj_Entry **preload_tail; Objlist initlist; int lockstate; +#endif /* * On entry, the dynamic linker itself has not been relocated yet. @@ -409,32 +422,45 @@ * future processes to honor the potentially un-safe variables. */ if (!trust) { +#ifndef IN_RTLD_CAP unsetenv(LD_ "PRELOAD"); unsetenv(LD_ "LIBMAP"); unsetenv(LD_ "LIBRARY_PATH"); unsetenv(LD_ "LIBMAP_DISABLE"); +#endif unsetenv(LD_ "DEBUG"); +#ifndef IN_RTLD_CAP unsetenv(LD_ "ELF_HINTS_PATH"); +#endif +#ifdef IN_RTLD_CAP + unsetenv(LD_ "CAPLIBINDEX"); +#endif } ld_debug = getenv(LD_ "DEBUG"); -#ifndef IN_RTLD_CAP +#ifdef IN_RTLD_CAP + ld_caplibindex = getenv(LD_ "CAPLIBINDEX"); +#else libmap_disable = getenv(LD_ "LIBMAP_DISABLE") != NULL; libmap_override = getenv(LD_ "LIBMAP"); -#endif ld_library_path = getenv(LD_ "LIBRARY_PATH"); ld_preload = getenv(LD_ "PRELOAD"); ld_elf_hints_path = getenv(LD_ "ELF_HINTS_PATH"); +#endif dangerous_ld_env = -#ifndef IN_RTLD_CAP +#ifdef IN_RTLD_CAP + 1; +#else libmap_disable || (libmap_override != NULL) || -#endif (ld_library_path != NULL) || (ld_preload != NULL) || (ld_elf_hints_path != NULL); +#endif ld_tracing = getenv(LD_ "TRACE_LOADED_OBJECTS"); ld_utrace = getenv(LD_ "UTRACE"); +#ifndef IN_RTLD_CAP if ((ld_elf_hints_path == NULL) || strlen(ld_elf_hints_path) == 0) ld_elf_hints_path = _PATH_ELF_HINTS; +#endif if (ld_debug != NULL && *ld_debug != '\0') debug = 1; @@ -523,15 +549,20 @@ sym_zero.st_info = ELF_ST_INFO(STB_GLOBAL, STT_NOTYPE); sym_zero.st_shndx = SHN_UNDEF; +#ifdef IN_RTLD_CAP + if (ld_caplibindex != NULL) + ld_caplibindex_init(ld_caplibindex); +#endif + #ifndef IN_RTLD_CAP if (!libmap_disable) libmap_disable = (bool)lm_init(libmap_override); -#endif dbg("loading LD_PRELOAD libraries"); if (load_preload_objects() == -1) die(); preload_tail = obj_tail; +#endif dbg("loading needed objects"); if (load_needed_objects(obj_main) == -1) @@ -588,16 +619,20 @@ dbg("initializing thread locks"); lockdflt_init(); +#ifndef IN_RTLD_CAP /* Make a list of init functions to call. */ objlist_init(&initlist); initlist_add_objects(obj_list, preload_tail, &initlist); +#endif r_debug_state(NULL, &obj_main->linkmap); /* say hello to gdb! */ +#ifndef IN_RTLD_CAP lockstate = wlock_acquire(rtld_bind_lock); objlist_call_init(&initlist, &lockstate); objlist_clear(&initlist); wlock_release(rtld_bind_lock, lockstate); +#endif dbg("transferring control to program entry point = %p", obj_main->entry); @@ -1499,6 +1534,7 @@ return 0; } +#ifndef IN_RTLD_CAP static int load_preload_objects(void) { @@ -1524,6 +1560,7 @@ LD_UTRACE(UTRACE_PRELOAD_FINISHED, NULL, NULL, 0, 0, NULL); return 0; } +#endif /* * Load a shared object into memory, if it is not already loaded. @@ -1549,11 +1586,18 @@ return NULL; } path = xstrdup(name); + if (ld_caplibindex_lookup(path, &fd) < 0) { + _rtld_error("Unable to find \"%s\" in LD_CAPLIBINDEX", path); + return NULL; + } + if (lseek(fd, 0, SEEK_SET) == -1) { + _rtld_error("Unable to seek on \"%s\"", path); + return NULL; + } #else path = find_library(name, refobj); if (path == NULL) return NULL; -#endif /* * If we didn't find a match by pathname, open the file and check @@ -1568,22 +1612,29 @@ free(path); return NULL; } +#endif if (fstat(fd, &sb) == -1) { _rtld_error("Cannot fstat \"%s\"", path); +#ifndef IN_RTLD_CAP close(fd); +#endif free(path); return NULL; } for (obj = obj_list->next; obj != NULL; obj = obj->next) { if (obj->ino == sb.st_ino && obj->dev == sb.st_dev) { +#ifndef IN_RTLD_CAP close(fd); +#endif break; } } if (obj != NULL) { object_add_name(obj, name); free(path); +#ifndef IN_RTLD_CAP close(fd); +#endif return obj; } @@ -1591,7 +1642,9 @@ obj = do_load_object(fd, name, path, &sb); if (obj == NULL) free(path); +#ifndef IN_RTLD_CAP close(fd); +#endif return obj; } From owner-p4-projects@FreeBSD.ORG Sun Jun 7 19:48:16 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 6565C1065673; Sun, 7 Jun 2009 19:48:16 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 23A29106566C for ; Sun, 7 Jun 2009 19:48:16 +0000 (UTC) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 102DA8FC1B for ; Sun, 7 Jun 2009 19:48:16 +0000 (UTC) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n57JmFtS076457 for ; Sun, 7 Jun 2009 19:48:15 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n57JmFa0076455 for perforce@freebsd.org; Sun, 7 Jun 2009 19:48:15 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Date: Sun, 7 Jun 2009 19:48:15 GMT Message-Id: <200906071948.n57JmFa0076455@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to bb+lists.freebsd.perforce@cyrus.watson.org using -f From: Robert Watson To: Perforce Change Reviews Cc: Subject: PERFORCE change 163728 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 07 Jun 2009 19:48:17 -0000 http://perforce.freebsd.org/chv.cgi?CH=163728 Change 163728 by rwatson@rwatson_freebsd_capabilities on 2009/06/07 19:47:44 Only check for CAP_WRITE on mmap() if both PROT_WRITE is set *and* MAP_SHARED is set. For copy-on-write scenarios, it's fine to allow write access even for a read-only descriptor. Affected files ... .. //depot/projects/trustedbsd/capabilities/src/sys/vm/vm_mmap.c#12 edit Differences ... ==== //depot/projects/trustedbsd/capabilities/src/sys/vm/vm_mmap.c#12 (text+ko) ==== @@ -310,8 +310,10 @@ rights = CAP_MMAP; if (prot & PROT_READ) rights |= CAP_READ; - if (prot & PROT_WRITE) - rights |= CAP_WRITE; + if ((flags & MAP_SHARED) != 0) { + if (prot & PROT_WRITE) + rights |= CAP_WRITE; + } if (prot & PROT_EXEC) rights |= CAP_MAPEXEC; if ((error = fget_mmap(td, uap->fd, rights, &cap_maxprot, From owner-p4-projects@FreeBSD.ORG Sun Jun 7 19:51:20 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id EF3901065675; Sun, 7 Jun 2009 19:51:19 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id AAB70106566B for ; Sun, 7 Jun 2009 19:51:19 +0000 (UTC) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 7C9868FC1B for ; Sun, 7 Jun 2009 19:51:19 +0000 (UTC) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n57JpJaQ076695 for ; Sun, 7 Jun 2009 19:51:19 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n57JpJYS076693 for perforce@freebsd.org; Sun, 7 Jun 2009 19:51:19 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Date: Sun, 7 Jun 2009 19:51:19 GMT Message-Id: <200906071951.n57JpJYS076693@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to bb+lists.freebsd.perforce@cyrus.watson.org using -f From: Robert Watson To: Perforce Change Reviews Cc: Subject: PERFORCE change 163729 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 07 Jun 2009 19:51:21 -0000 http://perforce.freebsd.org/chv.cgi?CH=163729 Change 163729 by rwatson@rwatson_freebsd_capabilities on 2009/06/07 19:51:12 Define three new capability rights for file descriptors: CAP_TTYHOOK, CAP_FCHDIR, and CAP_FSCK. Affected files ... .. //depot/projects/trustedbsd/capabilities/src/lib/libc/sys/cap_new.2#8 edit .. //depot/projects/trustedbsd/capabilities/src/sys/sys/capability.h#23 edit Differences ... ==== //depot/projects/trustedbsd/capabilities/src/lib/libc/sys/cap_new.2#8 (text+ko) ==== @@ -32,7 +32,7 @@ .\" .\" $FreeBSD$ .\" -.Dd February 3, 2008 +.Dd June 7, 2009 .Dt CAP_NEW 2 .Os .Sh NAME @@ -157,6 +157,9 @@ .It Dv CAP_EXTATTR_SET Permit .Xr extattr_set_fd 2 . +.It Dv CAP_FCHDIR +Permit +.Xr fchdir 2 . .It Dv CAP_FCHFLAGS Permit .Xr fchflags 2 . @@ -178,6 +181,8 @@ .It Dv CAP_FPATHCONF Permit .Xr fpathconf 2 . +.It Dv CAP_FSCK +Permit UFS background-fsck operations on the descriptor. .It Dv CAP_FSTAT Permit .Xr fstat 2 . @@ -302,6 +307,10 @@ Permit explicit .Xr shutdown 2 ; closing the socket will also generally shut down any connections on it. +.It Dv CAP_TTYHOOK +Allow configuration of TTY hooks, such as +.Xr snp 4 , +on the file descriptor. .It Dv CAP_WRITE Allow .Xr aio_write 2 , @@ -443,7 +452,8 @@ .Xr sem_getvalue 3 , .Xr sem_post 3 , .Xr sem_trywait 3 , -.Xr sem_wait 3 +.Xr sem_wait 3 , +.Xr snp 4 .Sh HISTORY Support for capabilities and capabilities mode was developed as part of the .Tn TrustedBSD ==== //depot/projects/trustedbsd/capabilities/src/sys/sys/capability.h#23 (text+ko) ==== @@ -30,7 +30,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $P4: //depot/projects/trustedbsd/capabilities/src/sys/sys/capability.h#22 $ + * $P4: //depot/projects/trustedbsd/capabilities/src/sys/sys/capability.h#23 $ */ /* @@ -92,7 +92,10 @@ #define CAP_PDWAIT 0x0000200000000000ULL /* pdwait(2) */ #define CAP_PDKILL 0x0000400000000000ULL /* pdkill(2) */ #define CAP_MAPEXEC 0x0000800000000000ULL /* mmap(2) as exec */ -#define CAP_MASK_VALID 0x0000ffffffffffffULL +#define CAP_TTYHOOK 0x0001000000000000ULL /* register tty hook */ +#define CAP_FCHDIR 0x0002000000000000ULL /* fchdir(2) */ +#define CAP_FSCK 0x0004000000000000ULL /* sysctl_ffs_fsck */ +#define CAP_MASK_VALID 0x0001ffffffffffffULL /* * Notes: From owner-p4-projects@FreeBSD.ORG Sun Jun 7 20:11:41 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id B756810656C0; Sun, 7 Jun 2009 20:11:40 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 4F81B1065697 for ; Sun, 7 Jun 2009 20:11:40 +0000 (UTC) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 3BCD08FC13 for ; Sun, 7 Jun 2009 20:11:40 +0000 (UTC) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n57KBeNJ079223 for ; Sun, 7 Jun 2009 20:11:40 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n57KBe55079221 for perforce@freebsd.org; Sun, 7 Jun 2009 20:11:40 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Date: Sun, 7 Jun 2009 20:11:40 GMT Message-Id: <200906072011.n57KBe55079221@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to bb+lists.freebsd.perforce@cyrus.watson.org using -f From: Robert Watson To: Perforce Change Reviews Cc: Subject: PERFORCE change 163732 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 07 Jun 2009 20:11:41 -0000 http://perforce.freebsd.org/chv.cgi?CH=163732 Change 163732 by rwatson@rwatson_freebsd_capabilities on 2009/06/07 20:11:31 Pass libc.so.7 into programs launched by capexec when running with rtld-elf-cap.so. Affected files ... .. //depot/projects/trustedbsd/capabilities/src/tools/cap/cap_exec/cap_exec.c#2 edit Differences ... ==== //depot/projects/trustedbsd/capabilities/src/tools/cap/cap_exec/cap_exec.c#2 (text+ko) ==== @@ -5,6 +5,7 @@ #include #include +#include #include #include @@ -16,17 +17,24 @@ LD_ELF_CAP_SO, NULL, }; + +#define LIBC_SO "libc.so.7" +#define LIBPATH "/lib/" #endif #define BASE_CAPS (CAP_IOCTL | CAP_EVENT | CAP_SEEK | CAP_FSTAT) #define STDIN_CAPS (BASE_CAPS | CAP_READ) #define STDOUT_CAPS (BASE_CAPS | CAP_WRITE) #define STDERR_CAPS (BASE_CAPS | CAP_WRITE) +#define BIN_CAPS (CAP_SEEK | CAP_FSTAT | CAP_FSTATFS | CAP_READ | \ + CAP_FEXECVE | CAP_MMAP | CAP_MAPEXEC) int main(int argc, char *argv[]) { - int fd_exec, fd_stdin, fd_stdout, fd_stderr, fd_procdesc; + int fd_exec, fd_libc, fd_new; + int fd_stdin, fd_stdout, fd_stderr, fd_procdesc; + char *env_caplibindex; struct pollfd pollfd; #ifdef LDSO_MODE int fd_ldso; @@ -53,8 +61,24 @@ fd_ldso = open(LD_ELF_CAP_SO, O_RDONLY); if (fd_ldso < 0) err(-1, "open: %s", LD_ELF_CAP_SO); + fd_new = cap_new(fd_ldso, BIN_CAPS); + if (fd_new < 0) + err(-1, "cap_new"); + if (dup2(fd_new, fd_ldso) < 0) + err(-1, "dup2"); + close(fd_new); if (fcntl(fd_ldso, F_SETFD, FD_CLOEXEC) < 0) err(-1, "fcntl FD_CLOEXEC"); + + fd_libc = open(LIBPATH LIBC_SO, O_RDONLY); + if (fd_libc < 0) + err(-1, "open: %s", LIBPATH LIBC_SO); + fd_new = cap_new(fd_libc, BIN_CAPS); + if (fd_new < 0) + err(-1, "cap_new"); + if (dup2(fd_new, fd_libc) < 0) + err(-1, "dup2"); + close(fd_new); #else if (fcntl(fd_exec, F_SETFD, FD_CLOEXEC) < 0) err(-1, "fcntl FD_CLOEXEC"); @@ -95,9 +119,16 @@ close(fd_stderr); /* - * Similarly constrain file descriptors for execution. + * Set up environmental variable so that the runtime linker + * can access libc in a sandbox. */ - +#ifdef LDSO_MODE + if (asprintf(&env_caplibindex, "%d:%s", fd_libc, LIBC_SO) == + -1) + err(-1, "asprintf"); + printf("caplibindex: %s\n", env_caplibindex); + setenv("LD_CAPLIBINDEX", env_caplibindex, 1); +#endif /* * Perhaps a closeall() or something to clear any remaining From owner-p4-projects@FreeBSD.ORG Sun Jun 7 20:15:45 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id DE7F61065676; Sun, 7 Jun 2009 20:15:44 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 9BFE91065674 for ; Sun, 7 Jun 2009 20:15:44 +0000 (UTC) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 86ECD8FC19 for ; Sun, 7 Jun 2009 20:15:44 +0000 (UTC) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n57KFijd079560 for ; Sun, 7 Jun 2009 20:15:44 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n57KFiZM079558 for perforce@freebsd.org; Sun, 7 Jun 2009 20:15:44 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Date: Sun, 7 Jun 2009 20:15:44 GMT Message-Id: <200906072015.n57KFiZM079558@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to bb+lists.freebsd.perforce@cyrus.watson.org using -f From: Robert Watson To: Perforce Change Reviews Cc: Subject: PERFORCE change 163733 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 07 Jun 2009 20:15:45 -0000 http://perforce.freebsd.org/chv.cgi?CH=163733 Change 163733 by rwatson@rwatson_freebsd_capabilities on 2009/06/07 20:15:15 Continue update for lockless file descriptor reference acquisition by adding use of cap_fextract(), for select/poll, tty hook registration, socket system calls, and vnode system calls. Use getvnode_cap() for close() auditing and UFS bgfsck rather than getvnode, and remove getvnode to prevent more from sneaking in un-capabilitized. Affected files ... .. //depot/projects/trustedbsd/capabilities/src/sys/kern/sys_generic.c#9 edit .. //depot/projects/trustedbsd/capabilities/src/sys/kern/tty.c#9 edit .. //depot/projects/trustedbsd/capabilities/src/sys/kern/uipc_syscalls.c#11 edit .. //depot/projects/trustedbsd/capabilities/src/sys/kern/vfs_syscalls.c#14 edit .. //depot/projects/trustedbsd/capabilities/src/sys/security/audit/audit_arg.c#7 edit .. //depot/projects/trustedbsd/capabilities/src/sys/ufs/ffs/ffs_alloc.c#6 edit Differences ... ==== //depot/projects/trustedbsd/capabilities/src/sys/kern/sys_generic.c#9 (text+ko) ==== @@ -37,6 +37,7 @@ #include __FBSDID("$FreeBSD: src/sys/kern/sys_generic.c,v 1.172 2009/05/14 03:24:22 jeff Exp $"); +#include "opt_capabilities.h" #include "opt_compat.h" #include "opt_ktrace.h" @@ -970,6 +971,37 @@ return (n); } +static __inline int +getselfd_cap(struct filedesc *fdp, int fd, struct file **fpp) +{ + struct file *fp; +#ifdef CAPABILITIES + struct file *fp_fromcap; + int error; +#endif + + if ((fp = fget_unlocked(fdp, fd)) == NULL) + return (EBADF); +#ifdef CAPABILITIES + /* + * If the file descriptor is for a capability, test righst and use + * the file descriptor referenced by the capability. + */ + error = cap_fextract(fp, CAP_EVENT, &fp_fromcap); + if (error) { + fdrop(fp, curthread); + return (error); + } + if (fp != fp_fromcap) { + fhold(fp_fromcap); + fdrop(fp, curthread); + fp = fp_fromcap; + } +#endif /* CAPABILITIES */ + *fpp = fp; + return (0); +} + /* * Traverse the list of fds attached to this thread's seltd and check for * completion. @@ -985,6 +1017,7 @@ struct file *fp; fd_mask bit; int fd, ev, n, idx; + int error; fdp = td->td_proc->p_fd; stp = td->td_sel; @@ -996,8 +1029,9 @@ /* If the selinfo wasn't cleared the event didn't fire. */ if (si != NULL) continue; - if ((fp = fget_unlocked(fdp, fd)) == NULL) - return (EBADF); + error = getselfd_cap(fdp, fd, &fp); + if (error) + return (error); idx = fd / NFDBITS; bit = (fd_mask)1 << (fd % NFDBITS); ev = fo_poll(fp, selflags(ibits, idx, bit), td->td_ucred, td); @@ -1025,6 +1059,7 @@ fd_mask bit; int ev, flags, end, fd; int n, idx; + int error; fdp = td->td_proc->p_fd; n = 0; @@ -1035,8 +1070,9 @@ flags = selflags(ibits, idx, bit); if (flags == 0) continue; - if ((fp = fget_unlocked(fdp, fd)) == NULL) - return (EBADF); + error = getselfd_cap(fdp, fd, &fp); + if (error) + return (error); selfdalloc(td, (void *)(uintptr_t)fd); ev = fo_poll(fp, flags, td->td_ucred, td); fdrop(fp, td); ==== //depot/projects/trustedbsd/capabilities/src/sys/kern/tty.c#9 (text+ko) ==== @@ -30,9 +30,11 @@ #include __FBSDID("$FreeBSD: src/sys/kern/tty.c,v 1.317 2009/05/29 06:41:23 ed Exp $"); +#include "opt_capabilities.h" #include "opt_compat.h" #include +#include #include #include #include @@ -1727,20 +1729,12 @@ struct file *fp; struct cdev *dev; struct cdevsw *cdp; - struct filedesc *fdp; int error; /* Validate the file descriptor. */ - if ((fdp = p->p_fd) == NULL) - return (EBADF); - - fp = fget_unlocked(fdp, fd); - if (fp == NULL) - return (EBADF); - if (fp->f_ops == &badfileops) { - error = EBADF; - goto done1; - } + error = fget(curthread, fd, CAP_TTYHOOK, &fp); + if (error) + return (error); /* Make sure the vnode is bound to a character device. */ error = EINVAL; ==== //depot/projects/trustedbsd/capabilities/src/sys/kern/uipc_syscalls.c#11 (text+ko) ==== @@ -108,38 +108,6 @@ SYSCTL_INT(_kern_ipc, OID_AUTO, nsfbufsused, CTLFLAG_RD, &nsfbufsused, 0, "Number of sendfile(2) sf_bufs in use"); -#if 0 -/* - * Convert a user file descriptor to a kernel file entry. A reference on the - * file entry is held upon returning. This is lighter weight than - * fgetsock(), which bumps the socket reference drops the file reference - * count instead, as this approach avoids several additional mutex operations - * associated with the additional reference count. If requested, return the - * open file flags. - */ -static int -getsock(struct filedesc *fdp, int fd, struct file **fpp, u_int *fflagp) -{ - struct file *fp; - int error; - - fp = NULL; - if (fdp == NULL || (fp = fget_unlocked(fdp, fd)) == NULL) { - error = EBADF; - } else if (fp->f_type != DTYPE_SOCKET) { - fdrop(fp, curthread); - fp = NULL; - error = ENOTSOCK; - } else { - if (fflagp != NULL) - *fflagp = fp->f_flag; - error = 0; - } - *fpp = fp; - return (error); -} -#endif - /* * Convert a user file descriptor to a kernel file entry and check that, if * it is a capability, the right rights are present. A reference on the file @@ -150,45 +118,38 @@ struct file **fpp, u_int *fflagp) { struct file *fp; +#ifdef CAPABILITIES + struct file *fp_fromcap; +#endif int error; fp = NULL; - if (fdp == NULL) { - *fpp = NULL; + if (fdp == NULL || (fp = fget_unlocked(fdp, fd)) == NULL) return (EBADF); - } - FILEDESC_SLOCK(fdp); - fp = fget_locked(fdp, fd); - if (fp == NULL) { - error = EBADF; - goto out; - } - +#ifdef CAPABILITIES /* * If the file descriptor is for a capability, test rights and use * the file descriptor referenced by the capability. */ -#ifdef CAPABILITIES - error = cap_fextract(fp, rights, &fp); + error = cap_fextract(fp, rights, &fp_fromcap); if (error) { - fp = NULL; - goto out; + fdrop(fp, curthread); + return (error); + } + if (fp != fp_fromcap) { + fhold(fp_fromcap); + fdrop(fp, curthread); + fp = fp_fromcap; } #endif /* CAPABILITIES */ if (fp->f_type != DTYPE_SOCKET) { - error = ENOTSOCK; - fp = NULL; - goto out; - } else { - fhold(fp); - if (fflagp != NULL) - *fflagp = fp->f_flag; - error = 0; + fdrop(fp, curthread); + return (ENOTSOCK); } -out: - FILEDESC_SUNLOCK(fdp); + if (fflagp != NULL) + *fflagp = fp->f_flag; *fpp = fp; - return (error); + return (0); } /* ==== //depot/projects/trustedbsd/capabilities/src/sys/kern/vfs_syscalls.c#14 (text+ko) ==== @@ -117,31 +117,6 @@ #endif /* - * Convert a user file descriptor to a kernel file entry. - * A reference on the file entry is held upon returning. - */ -int -getvnode(fdp, fd, fpp) - struct filedesc *fdp; - int fd; - struct file **fpp; -{ - int error; - struct file *fp; - - error = 0; - fp = NULL; - if (fdp == NULL || (fp = fget_unlocked(fdp, fd)) == NULL) - error = EBADF; - else if (fp->f_vnode == NULL) { - error = EINVAL; - fdrop(fp, curthread); - } - *fpp = fp; - return (error); -} - -/* * Convert a user file descriptor to a kernel file entry and check that, if * it is a capability, the right rights are present. A reference on the file * entry is held upon returning. @@ -151,6 +126,9 @@ struct file **fpp) { struct file *fp; +#ifdef CAPABILITIES + struct file *fp_fromcap; +#endif int error; error = 0; @@ -162,18 +140,23 @@ * If the file descriptor is for a capability, test rights and use * the file descriptor referenced by the capability. */ - error = cap_fextract(fp, rights, &fp); + error = cap_fextract(fp, rights, &fp_fromcap); if (error) { fdrop(fp, curthread); return (error); } + if (fp != fp_fromcap) { + fhold(fp_fromcap); + fdrop(fp, curthread); + fp = fp_fromcap; + } #endif /* CAPABILITIES */ if (fp->f_vnode == NULL) { fdrop(fp, curthread); return (EINVAL); } *fpp = fp; - return (error); + return (0); } /* @@ -807,7 +790,7 @@ int error; AUDIT_ARG(fd, uap->fd); - if ((error = getvnode(fdp, uap->fd, &fp)) != 0) + if ((error = getvnode_cap(fdp, uap->fd, CAP_FCHDIR, &fp)) != 0) return (error); vp = fp->f_vnode; VREF(vp); ==== //depot/projects/trustedbsd/capabilities/src/sys/security/audit/audit_arg.c#7 (text) ==== @@ -859,7 +859,7 @@ audit_arg_fd(fd); - if (getvnode(td->td_proc->p_fd, fd, &fp) != 0) + if (getvnode_cap(td->td_proc->p_fd, fd, 0, &fp) != 0) return; vp = fp->f_vnode; ==== //depot/projects/trustedbsd/capabilities/src/sys/ufs/ffs/ffs_alloc.c#6 (text+ko) ==== @@ -62,9 +62,11 @@ #include __FBSDID("$FreeBSD: src/sys/ufs/ffs/ffs_alloc.c,v 1.153 2009/05/17 20:26:00 alc Exp $"); +#include "opt_capabilities.h" #include "opt_quota.h" #include +#include #include #include #include @@ -2411,7 +2413,8 @@ return (error); if (cmd.version != FFS_CMD_VERSION) return (ERPCMISMATCH); - if ((error = getvnode(curproc->p_fd, cmd.handle, &fp)) != 0) + if ((error = getvnode_cap(curproc->p_fd, cmd.handle, CAP_FSCK, &fp)) + != 0) return (error); vn_start_write(fp->f_data, &mp, V_WAIT); if (mp == 0 || strncmp(mp->mnt_stat.f_fstypename, "ufs", MFSNAMELEN)) { From owner-p4-projects@FreeBSD.ORG Sun Jun 7 20:30:04 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 656AF1065672; Sun, 7 Jun 2009 20:30:04 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 2406A106566B for ; Sun, 7 Jun 2009 20:30:04 +0000 (UTC) (envelope-from mav@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 0FC908FC12 for ; Sun, 7 Jun 2009 20:30:04 +0000 (UTC) (envelope-from mav@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n57KU3fV080703 for ; Sun, 7 Jun 2009 20:30:03 GMT (envelope-from mav@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n57KU3II080658 for perforce@freebsd.org; Sun, 7 Jun 2009 20:30:03 GMT (envelope-from mav@freebsd.org) Date: Sun, 7 Jun 2009 20:30:03 GMT Message-Id: <200906072030.n57KU3II080658@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to mav@freebsd.org using -f From: Alexander Motin To: Perforce Change Reviews Cc: Subject: PERFORCE change 163734 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 07 Jun 2009 20:30:05 -0000 http://perforce.freebsd.org/chv.cgi?CH=163734 Change 163734 by mav@mav_mavbook on 2009/06/07 20:29:25 Remove all device probe functionality from AHCI driver and move it ot the SATA XPT. Now AHCI driver only cares of SATA PHY and command queue management. All stuff about Soft-Resetting devices and checking their signatures is now handled by SATA XPT. PM support also going to be implemented on SATA XPT layer. Affected files ... .. //depot/projects/scottl-camlock/src/sys/cam/ata/ata_all.c#7 edit .. //depot/projects/scottl-camlock/src/sys/cam/ata/ata_all.h#7 edit .. //depot/projects/scottl-camlock/src/sys/cam/ata/ata_xpt.c#13 edit .. //depot/projects/scottl-camlock/src/sys/cam/cam_ccb.h#20 edit .. //depot/projects/scottl-camlock/src/sys/cam/cam_xpt.c#90 edit .. //depot/projects/scottl-camlock/src/sys/dev/ahci/ahci.c#17 edit Differences ... ==== //depot/projects/scottl-camlock/src/sys/cam/ata/ata_all.c#7 (text+ko) ==== @@ -133,4 +133,11 @@ ataio->cmd.features_exp = sector_count >> 8; } +void ata_reset_cmd(struct ccb_ataio *ataio, int reset) +{ + bzero(&ataio->cmd, sizeof(ataio->cmd)); + ataio->cmd.flags = CAM_ATAIO_CONTROL; + ataio->cmd.control = reset ? 0x04 : 0; +} + #endif /* _KERNEL */ ==== //depot/projects/scottl-camlock/src/sys/cam/ata/ata_all.h#7 (text+ko) ==== @@ -85,5 +85,6 @@ uint64_t lba, uint16_t sector_count); void ata_ncq_cmd(struct ccb_ataio *ataio, uint8_t cmd, uint64_t lba, uint16_t sector_count); +void ata_reset_cmd(struct ccb_ataio *ataio, int reset); #endif ==== //depot/projects/scottl-camlock/src/sys/cam/ata/ata_xpt.c#13 (text+ko) ==== @@ -91,6 +91,8 @@ PERIPHDRIVER_DECLARE(probe, probe_driver); typedef enum { + PROBE_RESET, + PROBE_UNRESET, PROBE_IDENTIFY, PROBE_INQUIRY, PROBE_FULL_INQUIRY, @@ -98,6 +100,8 @@ } probe_action; static char *probe_action_text[] = { + "PROBE_RESET", + "PROBE_UNRESET", "PROBE_IDENTIFY", "PROBE_INQUIRY", "PROBE_FULL_INQUIRY", @@ -160,7 +164,7 @@ static struct cam_ed * ata_alloc_device(struct cam_eb *bus, struct cam_et *target, lun_id_t lun_id); -static void ata_devise_transport(struct cam_path *path); +static void ata_device_transport(struct cam_path *path); static void scsi_set_transfer_settings(struct ccb_trans_settings *cts, struct cam_ed *device, int async_update); @@ -277,8 +281,8 @@ * delay before attempting to probe the device. * For HBAs that don't do bus resets, this won't make a difference. */ - cam_periph_freeze_after_event(periph, &periph->path->bus->last_reset, - scsi_delay); +// cam_periph_freeze_after_event(periph, &periph->path->bus->last_reset, +// scsi_delay); probeschedule(periph); return(CAM_REQ_CMP); } @@ -297,7 +301,10 @@ cpi.ccb_h.func_code = XPT_PATH_INQ; xpt_action((union ccb *)&cpi); - PROBE_SET_ACTION(softc, PROBE_IDENTIFY); + if (periph->path->device->flags & CAM_DEV_UNCONFIGURED) + PROBE_SET_ACTION(softc, PROBE_RESET); + else + PROBE_SET_ACTION(softc, PROBE_IDENTIFY); if (ccb->crcn.flags & CAM_EXPECT_INQ_CHANGE) softc->flags |= PROBE_NO_ANNOUNCE; @@ -322,6 +329,18 @@ csio = &start_ccb->csio; switch (softc->action) { + case PROBE_RESET: + case PROBE_UNRESET: + cam_fill_ataio(ataio, + 4, + probedone, + /*flags*/CAM_DIR_NONE, + MSG_SIMPLE_Q_TAG, + /*data_ptr*/NULL, + /*dxfer_len*/0, + 30 * 1000); + ata_reset_cmd(ataio, softc->action == PROBE_RESET ? 1 : 0); + break; case PROBE_IDENTIFY: { struct ata_params *ident_buf; @@ -538,6 +557,52 @@ priority = done_ccb->ccb_h.pinfo.priority; switch (softc->action) { + case PROBE_RESET: + if ((done_ccb->ccb_h.status & CAM_STATUS_MASK) == CAM_REQ_CMP) { + PROBE_SET_ACTION(softc, PROBE_UNRESET); + xpt_release_ccb(done_ccb); + xpt_schedule(periph, priority); + return; + } else if (cam_periph_error(done_ccb, 0, + done_ccb->ccb_h.target_lun > 0 + ? SF_RETRY_UA|SF_QUIET_IR + : SF_RETRY_UA, + &softc->saved_ccb) == ERESTART) { + return; + } else if ((done_ccb->ccb_h.status & CAM_DEV_QFRZN) != 0) { + /* Don't wedge the queue */ + xpt_release_devq(done_ccb->ccb_h.path, /*count*/1, + /*run_queue*/TRUE); + } + xpt_release_ccb(done_ccb); + break; + case PROBE_UNRESET: + if ((done_ccb->ccb_h.status & CAM_STATUS_MASK) == CAM_REQ_CMP) { + printf("SIGNATURE: %02x%02x%02x%02x\n", + done_ccb->ataio.res.lba_high, done_ccb->ataio.res.lba_mid, + done_ccb->ataio.res.lba_low, done_ccb->ataio.res.sector_count); + if (done_ccb->ataio.res.lba_high == 0xeb && + done_ccb->ataio.res.lba_mid == 0x14) + path->device->protocol = PROTO_SCSI; + else + path->device->protocol = PROTO_ATA; + PROBE_SET_ACTION(softc, PROBE_IDENTIFY); + xpt_release_ccb(done_ccb); + xpt_schedule(periph, priority); + return; + } else if (cam_periph_error(done_ccb, 0, + done_ccb->ccb_h.target_lun > 0 + ? SF_RETRY_UA|SF_QUIET_IR + : SF_RETRY_UA, + &softc->saved_ccb) == ERESTART) { + return; + } else if ((done_ccb->ccb_h.status & CAM_DEV_QFRZN) != 0) { + /* Don't wedge the queue */ + xpt_release_devq(done_ccb->ccb_h.path, /*count*/1, + /*run_queue*/TRUE); + } + xpt_release_ccb(done_ccb); + break; case PROBE_IDENTIFY: { if ((done_ccb->ccb_h.status & CAM_STATUS_MASK) == CAM_REQ_CMP) { @@ -612,7 +677,7 @@ scsi_find_quirk(path->device); - ata_devise_transport(path); + ata_device_transport(path); // if (INQ_DATA_TQ_ENABLED(inq_buf)) // PROBE_SET_ACTION(softc, PROBE_MODE_SENSE); // else @@ -1090,7 +1155,7 @@ bus->path_id, target->target_id, lun_id); - ata_devise_transport(&path); + ata_device_transport(&path); xpt_release_path(&path); } @@ -1098,7 +1163,7 @@ } static void -ata_devise_transport(struct cam_path *path) +ata_device_transport(struct cam_path *path) { struct ccb_pathinq cpi; // struct ccb_trans_settings cts; @@ -1112,7 +1177,7 @@ inq_buf = NULL; // if ((path->device->flags & CAM_DEV_INQUIRY_DATA_VALID) != 0) // inq_buf = &path->device->inq_data; - path->device->protocol = cpi.protocol; +// path->device->protocol = cpi.protocol; // path->device->protocol_version = // inq_buf != NULL ? SID_ANSI_REV(inq_buf) : cpi.protocol_version; path->device->transport = cpi.transport; ==== //depot/projects/scottl-camlock/src/sys/cam/cam_ccb.h#20 (text+ko) ==== @@ -631,14 +631,10 @@ struct ccb_ataio { struct ccb_hdr ccb_h; union ccb *next_ccb; /* Ptr for next CCB for action */ - u_int8_t *req_map; /* Ptr to mapping info */ struct ata_cmd cmd; /* ATA command register set */ struct ata_res res; /* ATA result register set */ u_int8_t *data_ptr; /* Ptr to the data buf/SG list */ u_int32_t dxfer_len; /* Data transfer length */ - /* Autosense storage */ - u_int16_t sglist_cnt; /* Number of SG list entries */ - u_int8_t status; /* Returned ATA status */ u_int32_t resid; /* Transfer residual length: 2's comp */ u_int8_t tag_action; /* What to do for tag queueing */ /* ==== //depot/projects/scottl-camlock/src/sys/cam/cam_xpt.c#90 (text+ko) ==== @@ -2459,7 +2459,7 @@ /* FALLTHROUGH */ case XPT_ATA_IO: if (start_ccb->ccb_h.func_code == XPT_ATA_IO) { - start_ccb->ataio.status = 0; + start_ccb->ataio.resid = 0; } case XPT_RESET_DEV: case XPT_ENG_EXEC: @@ -3788,8 +3788,6 @@ if (status != CAM_REQ_CMP) printf("xpt_compile_path returned %d\n", status); - xpt_print_path(&path); - xpt_setup_ccb(&cpi.ccb_h, &path, /*priority*/1); cpi.ccb_h.func_code = XPT_PATH_INQ; xpt_action((union ccb *)&cpi); ==== //depot/projects/scottl-camlock/src/sys/dev/ahci/ahci.c#17 (text+ko) ==== @@ -69,7 +69,6 @@ static void ahci_timeout(struct ahci_slot *slot); static void ahci_end_transaction(struct ahci_slot *slot, enum ahci_err_type et); static int ahci_hardreset(device_t dev, int port, uint32_t *signature); -static u_int32_t ahci_softreset(device_t dev, int port); static int ahci_setup_fis(struct ahci_cmd_tab *ctp, union ccb *ccb, int tag); static void ahci_dmainit(device_t dev); static void ahci_dmasetupc_cb(void *xsc, bus_dma_segment_t *segs, int nsegs, int error); @@ -79,7 +78,7 @@ static void ahci_reset(device_t dev); static void ahci_start(device_t dev); static void ahci_stop(device_t dev); -static void ahci_clo(device_t dev); +//static void ahci_clo(device_t dev); static void ahci_start_fr(device_t dev); static void ahci_stop_fr(device_t dev); @@ -539,7 +538,6 @@ return (ENXIO); } - ahci_reset(dev); mtx_unlock(&ch->mtx); return 0; } @@ -579,8 +577,7 @@ ahci_stop(dev); ahci_stop_fr(dev); ATA_OUTL(ch->r_mem, AHCI_P_CMD, 0); - - /* Allow everything including partial and slumber modes. */ + /* Allow everything, including partial and slumber modes. */ ATA_IDX_OUTL(ch, ATA_SCONTROL, 0); /* Request slumber mode transition and give some time to get there. */ ATA_OUTL(ch->r_mem, AHCI_P_CMD, AHCI_P_CMD_SLUMBER); @@ -598,17 +595,14 @@ /* Disable port interrupts */ ATA_OUTL(ch->r_mem, AHCI_P_IE, 0); - - /* setup work areas */ + /* Setup work areas */ work = ch->dma.work_bus + AHCI_CL_OFFSET; ATA_OUTL(ch->r_mem, AHCI_P_CLB, work & 0xffffffff); ATA_OUTL(ch->r_mem, AHCI_P_CLBU, work >> 32); - work = ch->dma.work_bus + AHCI_FB_OFFSET; ATA_OUTL(ch->r_mem, AHCI_P_FB, work & 0xffffffff); ATA_OUTL(ch->r_mem, AHCI_P_FBU, work >> 32); - - /* activate the channel and power/spin up device */ + /* Activate the channel and power/spin up device */ ATA_OUTL(ch->r_mem, AHCI_P_CMD, (AHCI_P_CMD_ACTIVE | AHCI_P_CMD_POD | AHCI_P_CMD_SUD | ((ch->pm_level > 1) ? AHCI_P_CMD_ALPE : 0) | @@ -638,25 +632,26 @@ static void ahci_phy_check_events(device_t dev) { - struct ahci_channel *ch = device_get_softc(dev); - u_int32_t error = ATA_IDX_INL(ch, ATA_SERROR); + struct ahci_channel *ch = device_get_softc(dev); + u_int32_t error = ATA_IDX_INL(ch, ATA_SERROR); - /* clear error bits/interrupt */ - ATA_IDX_OUTL(ch, ATA_SERROR, error); - - /* if we have a connection event deal with it */ - if ((error & ATA_SE_PHY_CHANGED) && (ch->pm_level == 0)) { - if (bootverbose) { - u_int32_t status = ATA_IDX_INL(ch, ATA_SSTATUS); - if (((status & ATA_SS_DET_MASK) == ATA_SS_DET_PHY_ONLINE) && - ((status & ATA_SS_SPD_MASK) != ATA_SS_SPD_NO_SPEED) && - ((status & ATA_SS_IPM_MASK) == ATA_SS_IPM_ACTIVE)) { - device_printf(dev, "CONNECT requested\n"); - } else - device_printf(dev, "DISCONNECT requested\n"); + /* Clear error bits/interrupt */ + ATA_IDX_OUTL(ch, ATA_SERROR, error); + /* If we have a connection event deal with it */ + if ((error & ATA_SE_PHY_CHANGED) && (ch->pm_level == 0)) { + u_int32_t status = ATA_IDX_INL(ch, ATA_SSTATUS); + if (((status & ATA_SS_DET_MASK) == ATA_SS_DET_PHY_ONLINE) && + ((status & ATA_SS_SPD_MASK) != ATA_SS_SPD_NO_SPEED) && + ((status & ATA_SS_IPM_MASK) == ATA_SS_IPM_ACTIVE)) { + if (bootverbose) + device_printf(dev, "CONNECT requested\n"); + ahci_reset(dev); + } else { + if (bootverbose) + device_printf(dev, "DISCONNECT requested\n"); + ch->devices = 0; + } } -// taskqueue_enqueue(taskqueue_thread, &ch->conntask); - } } static void @@ -684,7 +679,6 @@ #define AHCI_STATBITS \ (AHCI_P_IX_IF|AHCI_P_IX_HBD|AHCI_P_IX_HBF|AHCI_P_IX_TFE) - if ((istatus & AHCI_STATBITS) && ((cstatus | sstatus) & ch->rslots)) { device_printf(dev, "%s ERROR is %08x cs %08x ss %08x rs %08x\n", __func__, istatus, cstatus, sstatus, ch->rslots); ccs = (ATA_INL(ch->r_mem, AHCI_P_CMD) & AHCI_P_CMD_CCS_MASK) @@ -817,85 +811,82 @@ //device_printf(slot->dev, "%s slot %d\n", __func__, slot->slot); slot->state = AHCI_SLOT_LOADED; - - /* get a piece of the workspace for this request */ + /* Get a piece of the workspace for this request */ ctp = (struct ahci_cmd_tab *) (ch->dma.work + AHCI_CT_OFFSET + (AHCI_CT_SIZE * slot->slot)); - - /* setup the FIS for this request */ + /* Setup the FIS for this request */ if (!(fis_size = ahci_setup_fis(ctp, slot->ccb, slot->slot))) { device_printf(ch->dev, "setting up SATA FIS failed\n"); slot->ccb->ccb_h.status = CAM_REQ_INVALID; xpt_done(slot->ccb); return; } - - /* setup the command list entry */ + /* Setup the command list entry */ clp = (struct ahci_cmd_list *) (ch->dma.work + AHCI_CL_OFFSET + (AHCI_CL_SIZE * slot->slot)); - clp->prd_length = slot->dma.nsegs; clp->cmd_flags = (slot->ccb->ccb_h.flags & CAM_DIR_OUT ? AHCI_CMD_WRITE : 0) | (slot->ccb->ccb_h.func_code == XPT_SCSI_IO ? (AHCI_CMD_ATAPI | AHCI_CMD_PREFETCH) : 0) | (fis_size / sizeof(u_int32_t)) | (port << 12); + /* Special handling for Soft Reset command. */ + if ((slot->ccb->ccb_h.func_code == XPT_ATA_IO) && + (slot->ccb->ataio.cmd.flags & CAM_ATAIO_CONTROL) && + slot->ccb->ataio.cmd.control & ATA_A_RESET) { + clp->cmd_flags |= AHCI_CMD_RESET | AHCI_CMD_CLR_BUSY; + } clp->bytecount = 0; clp->cmd_table_phys = htole64(ch->dma.work_bus + AHCI_CT_OFFSET + (AHCI_CT_SIZE * slot->slot)); - - /* set command type bit */ - if (slot->ccb->ccb_h.func_code == XPT_SCSI_IO) { - ATA_OUTL(ch->r_mem, AHCI_P_CMD, - ATA_INL(ch->r_mem, AHCI_P_CMD) | AHCI_P_CMD_ATAPI); - } else { - ATA_OUTL(ch->r_mem, AHCI_P_CMD, - ATA_INL(ch->r_mem, AHCI_P_CMD) & ~AHCI_P_CMD_ATAPI); - } - - slot->state = AHCI_SLOT_RUNNING; - ch->rslots |= (1 << slot->slot); + /* Set ACTIVE bit for NCQ commands. */ if ((slot->ccb->ccb_h.func_code == XPT_ATA_IO) && (slot->ccb->ataio.cmd.flags & CAM_ATAIO_FPDMA)) { - /* Set ACTIVE bit */ ch->aslots |= (1 << slot->slot); ATA_IDX_OUTL(ch, ATA_SACTIVE, 1 << slot->slot); } - - /* issue command to controller */ + /* Issue command to the controller. */ + slot->state = AHCI_SLOT_RUNNING; + ch->rslots |= (1 << slot->slot); ATA_OUTL(ch->r_mem, AHCI_P_CI, (1 << slot->slot)); /* -printf("ci %08x is %08x tfd %08x serr %08x\n", +printf("ci %08x is %08x tfd %08x serr %08x sign %08x\n", ATA_INL(ch->r_mem, AHCI_P_CI), ATA_INL(ch->r_mem, AHCI_P_IS), ATA_INL(ch->r_mem, AHCI_P_TFD), - ATA_IDX_INL(ch, ATA_SERROR)); + ATA_IDX_INL(ch, ATA_SERROR), + ATA_INL(ch->r_mem, AHCI_P_SIG)); DELAY(100000); -printf("ci %08x is %08x tfd %08x serr %08x\n", +printf("ci %08x is %08x tfd %08x serr %08x sign %08x\n", ATA_INL(ch->r_mem, AHCI_P_CI), ATA_INL(ch->r_mem, AHCI_P_IS), ATA_INL(ch->r_mem, AHCI_P_TFD), - ATA_IDX_INL(ch, ATA_SERROR)); + ATA_IDX_INL(ch, ATA_SERROR), + ATA_INL(ch->r_mem, AHCI_P_SIG)); */ - + /* Device reset commands doesn't interrupt. Poll them. */ if (slot->ccb->ccb_h.func_code == XPT_ATA_IO && - slot->ccb->ataio.cmd.command == ATA_DEVICE_RESET) { - /* device reset doesn't interrupt */ - u_int32_t tf_data; - int timeout = 1000000; + (slot->ccb->ataio.cmd.command == ATA_DEVICE_RESET || + (slot->ccb->ataio.cmd.flags & CAM_ATAIO_CONTROL))) { + u_int32_t status; + int count, timeout = slot->ccb->ccb_h.timeout; + enum ahci_err_type et = AHCI_ERR_NONE; - do { - DELAY(10); - tf_data = ATA_INL(ch->r_mem, AHCI_P_TFD + (ch->unit<<7)); - } while ((tf_data & ATA_S_BUSY) && timeout--); - if (bootverbose) - device_printf(ch->dev, "device_reset timeout=%dus\n", - (1000000-timeout)*10); - slot->ccb->ataio.status = tf_data; -// if (request->status & ATA_S_ERROR) -// request->error = tf_data >> 8; - slot->ccb->ccb_h.status = CAM_REQ_CMP; - xpt_done(slot->ccb); + for (count = 0; count < timeout; count++) { + DELAY(1000); + if (!((status = ATA_INL(ch->r_mem, AHCI_P_CI)) & + (1 << slot->slot))) { + break; + } + } + if (timeout && (count >= timeout)) { +device_printf(ch->dev, "Poll timeout on slot %d\n", slot->slot); + et = CAM_CMD_TIMEOUT; + /* kick controller into sane state */ + ahci_stop(ch->dev); + ahci_start(ch->dev); + } + ahci_end_transaction(slot, et); return; } @@ -936,22 +927,10 @@ device_t dev = slot->dev; struct ahci_channel *ch = device_get_softc(dev); // struct ahci_cmd_list *clp; - u_int32_t tf_data; //device_printf(dev, "%s slot %d\n", __func__, slot->slot); - /* kill the timeout */ + /* Kill the timeout */ callout_stop(&slot->timeout); - - /* get status */ - tf_data = ATA_INL(ch->r_mem, AHCI_P_TFD); -#if 0 - if (err && slot->ccb->ccb_h.func_code == XPT_ATA_IO) { - slot->ccb->ataio.status = tf_data; - /* if error status get details */ - if (tf_data & ATA_S_ERROR) - request->error = tf_data >> 8; - } -#endif /* Read registers to the result struct */ if (slot->ccb->ccb_h.func_code == XPT_ATA_IO) { struct ata_res *res = &slot->ccb->ataio.res; @@ -981,10 +960,9 @@ bus_dmamap_sync(ch->dma.data_tag, slot->dma.data_map, (slot->ccb->ccb_h.flags & CAM_DIR_IN) ? BUS_DMASYNC_POSTREAD : BUS_DMASYNC_POSTWRITE); - bus_dmamap_unload(ch->dma.data_tag, slot->dma.data_map); } - + /* Set proper result status. */ switch (et) { case AHCI_ERR_NONE: slot->ccb->ccb_h.status = CAM_REQ_CMP; @@ -995,10 +973,8 @@ if (slot->ccb->ccb_h.func_code == XPT_SCSI_IO) { slot->ccb->ccb_h.status = CAM_SCSI_STATUS_ERROR; slot->ccb->csio.scsi_status = SCSI_STATUS_CHECK_COND; - } else { + } else slot->ccb->ccb_h.status = CAM_REQ_CMP_ERR; - slot->ccb->ataio.status = tf_data; - } break; case AHCI_ERR_BTW: slot->ccb->ccb_h.status = CAM_REQUEUE_REQ; @@ -1013,67 +989,23 @@ slot->ccb->ccb_h.status = CAM_REQ_CMP_ERR; } xpt_done(slot->ccb); - ch->rslots &= ~(1 << slot->slot); slot->state = AHCI_SLOT_EMPTY; slot->ccb = NULL; return; } -static int -ahci_issue_cmd(device_t dev, u_int16_t flags, int timeout) -{ - struct ahci_channel *ch = device_get_softc(dev); - struct ahci_cmd_list *clp = - (struct ahci_cmd_list *)(ch->dma.work + AHCI_CL_OFFSET); - struct ahci_cmd_tab *ctp = - (struct ahci_cmd_tab *)(ch->dma.work + AHCI_CT_OFFSET); - u_int32_t status = 0; - int port = (ctp->cfis[1] & 0x0f); - int count; - - clp->prd_length = 0; - clp->cmd_flags = (20 / sizeof(u_int32_t)) | flags | (port << 12); - clp->bytecount = 0; - clp->cmd_table_phys = htole64(ch->dma.work_bus + AHCI_CT_OFFSET); - - /* issue command to controller */ - ATA_OUTL(ch->r_mem, AHCI_P_CI, 1); - - /* poll for command finished */ - for (count = 0; count < timeout; count++) { - DELAY(1000); - if (!((status = ATA_INL(ch->r_mem, AHCI_P_CI)) & 1)) - break; - } - - /* clear interrupts */ - ATA_OUTL(ch->r_mem, AHCI_P_IS, ATA_INL(ch->r_mem, AHCI_P_IS)); - - if (timeout && (count >= timeout)) { - if (bootverbose) { - device_printf(dev, "ahci_issue_cmd timeout: %d of %dms, status=%08x\n", - count, timeout, status); - } - return EIO; - } - - return (0); -} - static void ahci_start(device_t dev) { struct ahci_channel *ch = device_get_softc(dev); u_int32_t cmd; - /* clear SATA error register */ + /* Clear SATA error register */ ATA_IDX_OUTL(ch, ATA_SERROR, ATA_IDX_INL(ch, ATA_SERROR)); - - /* clear any interrupts pending on this channel */ + /* Clear any interrupts pending on this channel */ ATA_OUTL(ch->r_mem, AHCI_P_IS, ATA_INL(ch->r_mem, AHCI_P_IS)); - - /* start operations on this channel */ + /* Start operations on this channel */ cmd = ATA_INL(ch->r_mem, AHCI_P_CMD); ATA_OUTL(ch->r_mem, AHCI_P_CMD, cmd | AHCI_P_CMD_ST | @@ -1087,11 +1019,10 @@ u_int32_t cmd; int timeout; - /* kill off all activity on this channel */ + /* Kill all activity on this channel */ cmd = ATA_INL(ch->r_mem, AHCI_P_CMD); - ATA_OUTL(ch->r_mem, AHCI_P_CMD, - cmd & ~AHCI_P_CMD_ST); - + ATA_OUTL(ch->r_mem, AHCI_P_CMD, cmd & ~AHCI_P_CMD_ST); + /* Wait for activity stop. */ timeout = 0; do { DELAY(1000); @@ -1102,6 +1033,7 @@ } while (ATA_INL(ch->r_mem, AHCI_P_CMD) & AHCI_P_CMD_CR); } +#if 0 static void ahci_clo(device_t dev) { @@ -1110,7 +1042,7 @@ u_int32_t cmd; int timeout; - /* issue Command List Override if supported */ + /* Issue Command List Override if supported */ if (ATA_INL(ctlr->r_mem, AHCI_CAP) & AHCI_CAP_SCLO) { cmd = ATA_INL(ch->r_mem, AHCI_P_CMD); cmd |= AHCI_P_CMD_CLO; @@ -1125,6 +1057,7 @@ } while (ATA_INL(ch->r_mem, AHCI_P_CMD) & AHCI_P_CMD_CLO); } } +#endif static void ahci_stop_fr(device_t dev) @@ -1133,10 +1066,10 @@ u_int32_t cmd; int timeout; - /* kill off all activity on this channel */ + /* Kill all FIS reception on this channel */ cmd = ATA_INL(ch->r_mem, AHCI_P_CMD); ATA_OUTL(ch->r_mem, AHCI_P_CMD, cmd & ~AHCI_P_CMD_FRE); - + /* Wait for FIS reception stop. */ timeout = 0; do { DELAY(1000); @@ -1153,7 +1086,7 @@ struct ahci_channel *ch = device_get_softc(dev); u_int32_t cmd; - /* start FIS reception on this channel */ + /* Start FIS reception on this channel */ cmd = ATA_INL(ch->r_mem, AHCI_P_CMD); ATA_OUTL(ch->r_mem, AHCI_P_CMD, cmd | AHCI_P_CMD_FRE); } @@ -1200,55 +1133,9 @@ return (0); } -static u_int32_t -ahci_softreset(device_t dev, int port) -{ - struct ahci_channel *ch = device_get_softc(dev); - struct ahci_cmd_tab *ctp = - (struct ahci_cmd_tab *)(ch->dma.work + AHCI_CT_OFFSET); - - if (bootverbose) - device_printf(dev, "software reset port %d...\n", port); - - /* kick controller into sane state */ - ahci_stop(dev); - ahci_clo(dev); - ahci_start(dev); - - /* pull reset active */ - bzero(ctp->cfis, 64); - ctp->cfis[0] = 0x27; - ctp->cfis[1] = port & 0x0f; - //ctp->cfis[7] = ATA_D_LBA | ATA_D_IBM; - ctp->cfis[15] = (ATA_A_4BIT | ATA_A_RESET); - - if (ahci_issue_cmd(dev, AHCI_CMD_RESET | AHCI_CMD_CLR_BUSY,100)) { - device_printf(dev, "software reset set timeout\n"); - return (-1); - } - - DELAY(50); - - /* pull reset inactive -> device softreset */ - bzero(ctp->cfis, 64); - ctp->cfis[0] = 0x27; - ctp->cfis[1] = port & 0x0f; - //ctp->cfis[7] = ATA_D_LBA | ATA_D_IBM; - ctp->cfis[15] = ATA_A_4BIT; - ahci_issue_cmd(dev, 0, 3000); - - if (ahci_wait_ready(dev, 0)) { - device_printf(dev, "software reset clear timeout\n"); - return (-1); - } - - return ATA_INL(ch->r_mem, AHCI_P_SIG); -} - static void ahci_reset(device_t dev) { - struct ahci_controller *ctlr = device_get_softc(device_get_parent(dev)); struct ahci_channel *ch = device_get_softc(dev); u_int32_t signature; @@ -1257,56 +1144,25 @@ /* Disable port interrupts */ ATA_OUTL(ch->r_mem, AHCI_P_IE, 0); - + /* Reset and reconnect PHY, */ if (ahci_hardreset(dev, -1, &signature)) { if (bootverbose) device_printf(dev, "AHCI reset done: phy reset found no device\n"); ch->devices = 0; - - /* enable wanted port interrupts */ + /* Enable wanted port interrupts */ ATA_OUTL(ch->r_mem, AHCI_P_IE, (AHCI_P_IX_CPD | AHCI_P_IX_PRC | AHCI_P_IX_PC)); return; } - - /* enable wanted port interrupts */ + ch->devices = ATA_ATA_MASTER; + /* Enable wanted port interrupts */ ATA_OUTL(ch->r_mem, AHCI_P_IE, (AHCI_P_IX_CPD | AHCI_P_IX_TFE | AHCI_P_IX_HBF | AHCI_P_IX_HBD | AHCI_P_IX_IF | AHCI_P_IX_OF | ((ch->pm_level == 0) ? AHCI_P_IX_PRC | AHCI_P_IX_PC : 0) | AHCI_P_IX_DP | AHCI_P_IX_UF | AHCI_P_IX_SDB | AHCI_P_IX_DS | AHCI_P_IX_PS | AHCI_P_IX_DHR)); - - /* only probe for PortMultiplier if HW has support */ - if (ATA_INL(ctlr->r_mem, AHCI_CAP) & AHCI_CAP_SPM) { - signature = ahci_softreset(dev, ATA_PM); - /* Workaround for some ATI chips, failing to soft-reset - * when port multiplicator supported, but absent. - * XXX: We can also check PxIS.IPMS==1 here to be sure. */ - if (signature == 0xffffffff) - signature = ahci_softreset(dev, 0); - } else { - signature = ahci_softreset(dev, 0); - } - if (bootverbose) - device_printf(dev, "SIGNATURE: %08x\n", signature); - - switch (signature >> 16) { - case 0x0000: - ch->devices = ATA_ATA_MASTER; - break; - case 0x9669: - ch->devices = ATA_PORTMULTIPLIER | 0x0003; /* Temporary hack. */ - break; - case 0xeb14: - ch->devices = ATA_ATAPI_MASTER; - break; - default: /* SOS XXX */ - if (bootverbose) - device_printf(dev, "Unknown signature, assuming disk device\n"); - ch->devices = ATA_ATA_MASTER; - } if (bootverbose) device_printf(dev, "AHCI reset done: devices=%08x\n", ch->devices); /* If we've attached to the XPT, tell it about the event */ @@ -1421,7 +1277,7 @@ struct ahci_dc_cb_args dcba; int i; - /* alloc and setup needed dma slots */ + /* Alloc and setup command/dma slots */ bzero(ch->slot, sizeof(ch->slot)); for (i = 0; i < AHCI_MAX_SLOTS; i++) { struct ahci_slot *slot = &ch->slot[i]; @@ -1459,7 +1315,7 @@ struct ahci_channel *ch = device_get_softc(dev); int i; - /* free all dma slots */ + /* Free all dma slots */ for (i = 0; i < AHCI_MAX_SLOTS; i++) { struct ahci_slot *slot = &ch->slot[i]; @@ -1490,13 +1346,10 @@ u_int8_t *fis = &ctp->cfis[0]; bzero(ctp->cfis, 64); + fis[0] = 0x27; /* host to device */ + fis[1] = (ccb->ccb_h.target_id & 0x0f); if (ccb->ccb_h.func_code == XPT_SCSI_IO) { - bzero(ctp->acmd, 32); - bcopy((ccb->ccb_h.flags & CAM_CDB_POINTER) ? - ccb->csio.cdb_io.cdb_ptr : ccb->csio.cdb_io.cdb_bytes, - ctp->acmd, ccb->csio.cdb_len); - fis[0] = 0x27; /* host to device */ - fis[1] = 0x80 | (ccb->ccb_h.target_id & 0x0f); + fis[1] |= 0x80; fis[2] = ATA_PACKET_CMD; if ((ccb->ccb_h.flags & CAM_DIR_MASK) != CAM_DIR_NONE) fis[3] = ATA_F_DMA; @@ -1506,9 +1359,12 @@ } fis[7] = ATA_D_LBA; fis[15] = ATA_A_4BIT; - } else { - fis[0] = 0x27; /* host to device */ - fis[1] = 0x80 | (ccb->ccb_h.target_id & 0x0f); + bzero(ctp->acmd, 32); + bcopy((ccb->ccb_h.flags & CAM_CDB_POINTER) ? + ccb->csio.cdb_io.cdb_ptr : ccb->csio.cdb_io.cdb_bytes, + ctp->acmd, ccb->csio.cdb_len); + } else if ((ccb->ataio.cmd.flags & CAM_ATAIO_CONTROL) == 0) { + fis[1] |= 0x80; fis[2] = ccb->ataio.cmd.command; fis[3] = ccb->ataio.cmd.features; fis[4] = ccb->ataio.cmd.lba_low; @@ -1527,6 +1383,8 @@ fis[13] = ccb->ataio.cmd.sector_count_exp; } fis[15] = ATA_A_4BIT; + } else { + fis[15] = ccb->ataio.cmd.control; } return (20); } @@ -1537,16 +1395,16 @@ u_int32_t status; int timeout; - /* wait up to 1 second for "connect well" */ - for (timeout = 0; timeout < 100 ; timeout++) { + /* Wait up to 1 second for "connect well" */ + for (timeout = 0; timeout < 1000 ; timeout++) { status = ATA_IDX_INL(ch, ATA_SSTATUS); if (((status & ATA_SS_DET_MASK) == ATA_SS_DET_PHY_ONLINE) && ((status & ATA_SS_SPD_MASK) != ATA_SS_SPD_NO_SPEED) && ((status & ATA_SS_IPM_MASK) == ATA_SS_IPM_ACTIVE)) break; - DELAY(10000); + DELAY(1000); } - if (timeout >= 100) { + if (timeout >= 1000) { if (bootverbose) { device_printf(ch->dev, "SATA connect timeout status=%08x\n", status); @@ -1555,10 +1413,9 @@ } if (bootverbose) { device_printf(ch->dev, "SATA connect time=%dms status=%08x\n", - timeout * 10, status); + timeout, status); } - - /* clear SATA error register */ + /* Clear SATA error register */ ATA_IDX_OUTL(ch, ATA_SERROR, 0xffffffff); return (1); } @@ -1567,7 +1424,6 @@ ata_sata_phy_reset(device_t dev, int quick) { struct ahci_channel *ch = device_get_softc(dev); - int loop, retry; uint32_t val; if (quick) { @@ -1578,33 +1434,18 @@ if (bootverbose) device_printf(dev, "hardware reset ...\n"); - for (retry = 0; retry < 10; retry++) { - for (loop = 0; loop < 10; loop++) { - ATA_IDX_OUTL(ch, ATA_SCONTROL, ATA_SC_DET_RESET); - DELAY(100); - val = ATA_IDX_INL(ch, ATA_SCONTROL); - if ((val & ATA_SC_DET_MASK) == ATA_SC_DET_RESET) - break; - } - DELAY(5000); - for (loop = 0; loop < 10; loop++) { - ATA_IDX_OUTL(ch, ATA_SCONTROL, - ATA_SC_DET_IDLE | ATA_SC_SPD_SPEED_GEN1 | ((ch->pm_level > 0) ? 0 : - ATA_SC_IPM_DIS_PARTIAL | ATA_SC_IPM_DIS_SLUMBER)); - DELAY(100); - val = ATA_IDX_INL(ch, ATA_SCONTROL); - if ((val & ATA_SC_DET_MASK) == 0) - return (ata_sata_connect(ch)); - } - } - return (0); + ATA_IDX_OUTL(ch, ATA_SCONTROL, ATA_SC_DET_RESET); + DELAY(50000); + ATA_IDX_OUTL(ch, ATA_SCONTROL, + ATA_SC_DET_IDLE /*| ATA_SC_SPD_SPEED_GEN1*/ | ((ch->pm_level > 0) ? 0 : + ATA_SC_IPM_DIS_PARTIAL | ATA_SC_IPM_DIS_SLUMBER)); + return (ata_sata_connect(ch)); } static void ahciaction(struct cam_sim *sim, union ccb *ccb) { struct ahci_channel *ch; -// int s; CAM_DEBUG(ccb->ccb_h.path, CAM_DEBUG_TRACE, ("ahciaction func_codeL%d\n", ccb->ccb_h.func_code)); @@ -1615,8 +1456,7 @@ /* Common cases first */ case XPT_ATA_IO: /* Execute the requested I/O operation */ case XPT_SCSI_IO: - if ((((ATA_ATA_MASTER | ATA_ATAPI_MASTER) << - ccb->ccb_h.target_id) & ch->devices) == 0) { + if (ch->devices == 0) { ccb->ccb_h.status = CAM_SEL_TIMEOUT; xpt_done(ccb); break; @@ -1714,7 +1554,7 @@ cpi->target_sprt = 0; cpi->hba_misc = PIM_SEQSCAN; cpi->hba_eng_cnt = 0; - cpi->max_target = 14; + cpi->max_target = 0; cpi->max_lun = 0; cpi->initiator_id = 0; cpi->bus_id = cam_sim_bus(sim); @@ -1725,10 +1565,7 @@ cpi->unit_number = cam_sim_unit(sim); cpi->transport = XPORT_SATA; cpi->transport_version = 2; - if ((ATA_ATAPI_MASTER << ccb->ccb_h.target_id) & ch->devices) - cpi->protocol = PROTO_SCSI; - else - cpi->protocol = PROTO_ATA; + cpi->protocol = PROTO_ATA; cpi->protocol_version = SCSI_REV_2; cpi->ccb_h.status = CAM_REQ_CMP; xpt_done(ccb); From owner-p4-projects@FreeBSD.ORG Sun Jun 7 21:17:54 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id C55EA1065675; Sun, 7 Jun 2009 21:17:53 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 83E41106564A for ; Sun, 7 Jun 2009 21:17:53 +0000 (UTC) (envelope-from rene@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 37F848FC0A for ; Sun, 7 Jun 2009 21:17:53 +0000 (UTC) (envelope-from rene@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n57LHrKk095502 for ; Sun, 7 Jun 2009 21:17:53 GMT (envelope-from rene@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n57LHqhA095500 for perforce@freebsd.org; Sun, 7 Jun 2009 21:17:52 GMT (envelope-from rene@FreeBSD.org) Date: Sun, 7 Jun 2009 21:17:52 GMT Message-Id: <200906072117.n57LHqhA095500@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to rene@FreeBSD.org using -f From: Rene Ladan To: Perforce Change Reviews Cc: Subject: PERFORCE change 163739 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 07 Jun 2009 21:17:54 -0000 http://perforce.freebsd.org/chv.cgi?CH=163739 Change 163739 by rene@rene_self on 2009/06/07 21:16:59 IFC Affected files ... .. //depot/projects/docproj_nl/en_US.ISO8859-1/articles/committers-guide/article.sgml#26 integrate .. //depot/projects/docproj_nl/en_US.ISO8859-1/articles/contributors/contrib.additional.sgml#24 integrate .. //depot/projects/docproj_nl/en_US.ISO8859-1/articles/contributors/contrib.committers.sgml#25 integrate .. //depot/projects/docproj_nl/en_US.ISO8859-1/articles/explaining-bsd/article.sgml#3 integrate .. //depot/projects/docproj_nl/en_US.ISO8859-1/books/dev-model/book.sgml#2 integrate .. //depot/projects/docproj_nl/en_US.ISO8859-1/books/handbook/introduction/chapter.sgml#11 integrate .. //depot/projects/docproj_nl/en_US.ISO8859-1/books/porters-handbook/book.sgml#32 integrate .. //depot/projects/docproj_nl/en_US.ISO8859-1/share/sgml/authors.ent#21 integrate .. //depot/projects/docproj_nl/share/sgml/trademarks.ent#3 integrate .. //depot/projects/docproj_nl/www/en/administration.sgml#7 integrate .. //depot/projects/docproj_nl/www/en/developers.sgml#19 integrate .. //depot/projects/docproj_nl/www/en/index.xsl#6 integrate .. //depot/projects/docproj_nl/www/nl/index.xsl#11 integrate .. //depot/projects/docproj_nl/www/nl/share/sgml/header.l10n.ent#8 integrate .. //depot/projects/docproj_nl/www/nl/where.sgml#9 integrate .. //depot/projects/docproj_nl/www/share/sgml/commercial.isp.xml#9 integrate .. //depot/projects/docproj_nl/www/share/sgml/header.ent#3 integrate .. //depot/projects/docproj_nl/www/share/sgml/news.xml#43 integrate .. //depot/projects/docproj_nl/www/share/sgml/press.xml#12 integrate .. //depot/projects/docproj_nl/www/share/sgml/templates.news-rdf.xsl#2 integrate .. //depot/projects/docproj_nl/www/share/sgml/templates.news-rss.xsl#2 integrate .. //depot/projects/docproj_nl/www/share/sgml/templates.press-rss.xsl#2 integrate .. //depot/projects/docproj_nl/www/share/sgml/templates.usergroups.xsl#2 integrate Differences ... ==== //depot/projects/docproj_nl/en_US.ISO8859-1/articles/committers-guide/article.sgml#26 (text+ko) ==== @@ -9,7 +9,7 @@ The &os; Documentation Project - $FreeBSD: doc/en_US.ISO8859-1/articles/committers-guide/article.sgml,v 1.283 2009/04/05 18:51:11 rene Exp $ + $FreeBSD: doc/en_US.ISO8859-1/articles/committers-guide/article.sgml,v 1.284 2009/06/04 09:06:16 linimon Exp $ 1999 @@ -84,7 +84,7 @@ &a.bugmeister; - &a.ceri; &a.linimon;, and &a.remko; + &a.gavin; &a.linimon;, &a.remko;, and &a.vwe . @@ -1350,6 +1350,10 @@ + FreeBSD Problem Report Handling Guidelines + + + ==== //depot/projects/docproj_nl/en_US.ISO8859-1/articles/contributors/contrib.additional.sgml#24 (text+ko) ==== @@ -1,4 +1,4 @@ - + + + @@ -363,7 +366,7 @@ CURRENT, for example FreeBSD 5.0-CURRENT. NetBSD uses a slightly different naming scheme and appends a single-letter suffix which indicates changes in the internal interfaces, for example NetBSD - 1.4.3G. OpenBSD does not assign a number ("OpenBSD-current"). + 1.4.3G. OpenBSD does not assign a number (OpenBSD-current). All new development on the system goes into this branch. @@ -417,7 +420,7 @@ FreeBSD aims for high performance and ease of use by end users, and is a favourite of web content providers. It runs - on a number of platforms, including i386 based systems (PCs), + on a number of platforms, including &i386; based systems (PCs), systems based on the AMD 64-bit processors, &ultrasparc; based systems, systems based on Compaq's Alpha processors and systems based around the NEC PC-98 specification. The FreeBSD project has @@ -428,7 +431,7 @@ NetBSD aims for maximum portability: of course it runs NetBSD. It runs on machines from palmtops to large servers, and has even been used on NASA space missions. It is a - particularly good choice for running on old non-Intel + particularly good choice for running on old non-&intel; hardware. ==== //depot/projects/docproj_nl/en_US.ISO8859-1/books/dev-model/book.sgml#2 (text+ko) ==== @@ -23,7 +23,7 @@ - OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - SUCH DAMAGE. - - - $FreeBSD: doc/en_US.ISO8859-1/books/dev-model/book.sgml,v 1.16 2007/01/21 21:26:33 joel Exp $ + - $FreeBSD: doc/en_US.ISO8859-1/books/dev-model/book.sgml,v 1.17 2009/06/03 22:31:36 linimon Exp $ --> Hat held by: - the Release Engineering team re@FreeBSD.org, - currently headed by - Murray Stokely murray@FreeBSD.org. + the Release Engineering team re@FreeBSD.org. + The current Release Engineer is + Ken Smith kensmith@FreeBSD.org. The Release Engineering Charter. @@ -1128,7 +1128,10 @@ Hat held by: - the Ports Management Team portmgr@FreeBSD.org, + the Ports Management Team portmgr@FreeBSD.org. + The + + Portmgr charter. @@ -1159,7 +1162,7 @@ unresolved. - Hat currently held by: &a.joel;. + Hat currently held by: &a.philip;. @@ -1172,7 +1175,7 @@ Hat currently held by: - &a.ceri; and &a.linimon;. + the Bugmeister Team bugmeister@FreeBSD.org. @@ -1185,7 +1188,7 @@ Hat currently held by: - &a.ceri; and &a.linimon;. + the Bugmeister Team bugmeister@FreeBSD.org, ==== //depot/projects/docproj_nl/en_US.ISO8859-1/books/handbook/introduction/chapter.sgml#11 (text+ko) ==== @@ -1,7 +1,7 @@ @@ -459,6 +459,11 @@ Netcraft + NetEase + + NetEase + + Weathernews Weathernews ==== //depot/projects/docproj_nl/en_US.ISO8859-1/books/porters-handbook/book.sgml#32 (text+ko) ==== @@ -1,7 +1,7 @@ + 702103 + June 06, 2009 + 7.2-STABLE after MFC of PmcTools. + + + 800000 October 11, 2007 8.0-CURRENT. Separating wide and single byte ==== //depot/projects/docproj_nl/en_US.ISO8859-1/share/sgml/authors.ent#21 (text+ko) ==== @@ -13,7 +13,7 @@ builds for the other languages, and we will poke fun of you in public. - $FreeBSD: doc/en_US.ISO8859-1/share/sgml/authors.ent,v 1.483 2009/05/29 16:10:25 bcr Exp $ + $FreeBSD: doc/en_US.ISO8859-1/share/sgml/authors.ent,v 1.486 2009/06/07 19:14:05 tuexen Exp $ --> aaron@FreeBSD.org"> @@ -150,6 +150,8 @@ brooks@FreeBSD.org"> +brucec@FreeBSD.org"> + brueffer@FreeBSD.org"> bruno@FreeBSD.org"> @@ -368,6 +370,8 @@ garys@FreeBSD.org"> +gavin@FreeBSD.org"> + gerald@FreeBSD.org"> ghelmer@FreeBSD.org"> @@ -806,6 +810,8 @@ nox@FreeBSD.org"> +np@FreeBSD.org"> + nsayer@FreeBSD.org"> nsouch@FreeBSD.org"> @@ -1104,6 +1110,8 @@ tshiozak@FreeBSD.org"> +tuexen@FreeBSD.org"> + twinterg@FreeBSD.org"> uch@FreeBSD.org"> @@ -1138,6 +1146,8 @@ vsevolod@FreeBSD.org"> +vwe@FreeBSD.org"> + weongyo@FreeBSD.org"> wes@FreeBSD.org"> ==== //depot/projects/docproj_nl/share/sgml/trademarks.ent#3 (text+ko) ==== @@ -8,7 +8,7 @@ Please keep this file sorted. - $FreeBSD: doc/share/sgml/trademarks.ent,v 1.44 2009/01/05 21:30:43 brd Exp $ + $FreeBSD: doc/share/sgml/trademarks.ent,v 1.45 2009/06/06 14:05:54 blackend Exp $ --> 3Com and HomeConnect are registered @@ -263,7 +263,7 @@ registered trademarks and IT DialTone and The Open Group are trademarks of The Open Group in the United States and other countries."> -UNIX is a registered trademarks of The +UNIX is a registered trademark of The Open Group in the United States and other countries."> Motif"> UNIX"> ==== //depot/projects/docproj_nl/www/en/administration.sgml#7 (text+ko) ==== @@ -1,5 +1,5 @@ + %developers; @@ -139,7 +139,8 @@
  • &a.erwin; <erwin@FreeBSD.org>
  • &a.linimon; <linimon@FreeBSD.org>
  • &a.pav; <pav@FreeBSD.org>
  • -
  • &a.krion; <krion@FreeBSD.org>
  • +
  • &a.miwi; <miwi@FreeBSD.org>
  • +
  • &a.itetcu; <itetcu@FreeBSD.org>
  • &a.flz; <flz@FreeBSD.org>
  • @@ -426,9 +427,10 @@ also responsible for the problem report group.

    Cluster Administrators ==== //depot/projects/docproj_nl/www/en/developers.sgml#19 (text+ko) ==== @@ -6,7 +6,7 @@ us to update author names, or the representation of those names (such as adding email addresses), by just editing a single file. -$FreeBSD: www/en/developers.sgml,v 1.224 2009/05/29 16:12:22 bcr Exp $ +$FreeBSD: www/en/developers.sgml,v 1.226 2009/06/04 16:22:32 linimon Exp $ --> @@ -591,6 +591,11 @@ + + + + + @@ -602,7 +607,7 @@ so that we may keep a list of hat owners and modify only this file. --> - + @@ -611,7 +616,7 @@ - + ==== //depot/projects/docproj_nl/www/en/index.xsl#6 (text+ko) ==== @@ -4,7 +4,7 @@ ]> - + @@ -34,6 +34,13 @@ CVS, CVSup, News, Commercial Vendors, homepage, CTM, Unix"/> + ==== //depot/projects/docproj_nl/www/nl/index.xsl#11 (text+ko) ==== @@ -8,7 +8,7 @@ ]> - + ==== //depot/projects/docproj_nl/www/nl/share/sgml/header.l10n.ent#8 (text+ko) ==== @@ -1,4 +1,4 @@ - ==== //depot/projects/docproj_nl/www/nl/where.sgml#9 (text+ko) ==== @@ -1,5 +1,5 @@ + ==== //depot/projects/docproj_nl/www/share/sgml/commercial.isp.xml#9 (text+ko) ==== @@ -1,12 +1,12 @@ - + - $FreeBSD: www/share/sgml/commercial.isp.xml,v 1.45 2009/04/28 17:00:15 jkois Exp $ + $FreeBSD: www/share/sgml/commercial.isp.xml,v 1.46 2009/06/06 12:07:56 jkois Exp $ @@ -523,6 +523,25 @@ + + bytecamp GmbH + http://www.bytecamp.net/ + + We run a homogenic FreeBSD environment in our own datacenter + located in East Germany near Berlin since 2000. Our developers + contribute code to many open source projects. bytecamp is the home + for desktopbsd.net and + both biggest German BSD communities, bsdforen.de and bsdgroup.de. bytecamp offers + professional hosting on a FreeBSD cluster, enterprise email solutions, + domain name registration, dedicated and virtual servers. We offer + several shared, reseller and shell hosting plans on FreeBSD platform + that will meet and exceed all of your web presence needs from small + personal family web sites to full blown online e-commerce solutions. + + + Liebscher & Partner http://www.freibergnet.de ==== //depot/projects/docproj_nl/www/share/sgml/header.ent#3 (text+ko) ==== @@ -1,4 +1,4 @@ - + @@ -46,12 +46,26 @@ + '> ]]> + '> ==== //depot/projects/docproj_nl/www/share/sgml/news.xml#43 (text+ko) ==== @@ -25,7 +25,7 @@ - $FreeBSD: www/share/sgml/news.xml,v 1.259 2009/05/29 16:18:46 bcr Exp $ + $FreeBSD: www/share/sgml/news.xml,v 1.260 2009/06/04 10:43:56 erwin Exp $ @@ -33,6 +33,40 @@ 2009 + 6 + + + 4 + + + Portmgr reorganization + +

    Portmgr is happy to announce that two new members will + join the team.

    + +

    Martin Wilke has been one of our most active committers + since receiving his commit bit today 3 years ago. He has + been working in a number of subgroups including python, + ports-security and the KDE team.

    + +

    Ion-Mihai Tetcu has been interested in regression testing + and qualitiy assurance, creating QAT automated tinderbox + testing of all port commits on a per-commit basis, and adding + on-the-fly feedback to the snapshot builds from the pointyhat + package cluster.

    + +

    Unfortunately, we will also be saying goodbye to Kirill + Ponomarew, who hasn't had much time to spend on FreeBSD and + will be stepping down from portmgr.

    + +

    We thank Kirill for all his contributions in the past and + wish Martin and Ion-Mihai the best of luck with the new tasks + bestowed upon them.

    +
    +
    +
    + + 5 ==== //depot/projects/docproj_nl/www/share/sgml/press.xml#12 (text+ko) ==== @@ -9,7 +9,7 @@ - $FreeBSD: www/share/sgml/press.xml,v 1.82 2009/05/05 03:41:18 jkoshy Exp $ + $FreeBSD: www/share/sgml/press.xml,v 1.83 2009/06/04 03:16:41 jkoshy Exp $ @@ -17,6 +17,21 @@ 2009 + 6 + + + Most Reliable Hosting Company Sites in May 2009 + http://news.netcraft.com/archives/2009/06/02/most_reliable_hosting_company_sites_in_may_2009.html + Netcraft Ltd. + http://www.netcraft.com/ + 02 June 2009 + Paul Mutton +

    Three of the top five hosting providers in Netcraft's list + run FreeBSD.

    +
    +
    + + 5 ==== //depot/projects/docproj_nl/www/share/sgml/templates.news-rdf.xsl#2 (text+ko) ==== @@ -5,14 +5,14 @@ ]> - + - + ==== //depot/projects/docproj_nl/www/share/sgml/templates.news-rss.xsl#2 (text+ko) ==== @@ -7,7 +7,7 @@ ]> - + - + ==== //depot/projects/docproj_nl/www/share/sgml/templates.press-rss.xsl#2 (text+ko) ==== @@ -7,7 +7,7 @@ ]> - + + - From owner-p4-projects@FreeBSD.ORG Sun Jun 7 21:51:28 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 4D195106566C; Sun, 7 Jun 2009 21:51:28 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 0D3B2106564A for ; Sun, 7 Jun 2009 21:51:28 +0000 (UTC) (envelope-from scottl@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id D4D4D8FC14 for ; Sun, 7 Jun 2009 21:51:27 +0000 (UTC) (envelope-from scottl@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n57LpR3j098194 for ; Sun, 7 Jun 2009 21:51:27 GMT (envelope-from scottl@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n57LpRnG098192 for perforce@freebsd.org; Sun, 7 Jun 2009 21:51:27 GMT (envelope-from scottl@freebsd.org) Date: Sun, 7 Jun 2009 21:51:27 GMT Message-Id: <200906072151.n57LpRnG098192@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to scottl@freebsd.org using -f From: Scott Long To: Perforce Change Reviews Cc: Subject: PERFORCE change 163741 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 07 Jun 2009 21:51:29 -0000 http://perforce.freebsd.org/chv.cgi?CH=163741 Change 163741 by scottl@scottl-deimos on 2009/06/07 21:51:11 Iterate dc lists in 3 steps instead of two. This allows the lock to be held while unref'ing dt's, which will allow them to be safely freed in the future. Affected files ... .. //depot/projects/scottl-camlock/src/sys/kern/subr_bus.c#23 edit Differences ... ==== //depot/projects/scottl-camlock/src/sys/kern/subr_bus.c#23 (text+ko) ==== @@ -925,12 +925,13 @@ } mtx_unlock(&devclasses_mtx); - for (i = 0; i < maxunit; i++) { + for (i = 0; i < maxunit; i++) BUS_DRIVER_ADDED(devlist[i], driver); + + mtx_lock(&devclasses_mtx); + for (i = 0; i < maxunit; i++) DT_UNREF(devlist[i]); - } free(devlist, M_BUS); - mtx_lock(&devclasses_mtx); /* * Walk through the children classes. Since we only keep a @@ -991,10 +992,9 @@ dl->driver = driver; TAILQ_INSERT_TAIL(&dc->drivers, dl, link); driver->refs++; /* XXX: kobj_mtx */ + DC_REF(dc); - DC_REF(dc); devclass_driver_added(dc, driver); - DC_UNREF(dc); bus_data_generation_update(); mtx_unlock(&devclasses_mtx); return (0); @@ -1070,30 +1070,40 @@ } } } + mtx_unlock(&devclasses_mtx); - error = 0; for (i = 0; i < maxunit; i++) { dev = devlist[i]; - if ((error = device_detach(dev)) != 0) { - DT_UNREF(dev); + /* + * If device_detach() generates an error, the rest of the + * devices in the list still need to be deref'd. + */ + if ((error = device_detach(dev)) != 0) break; - } device_set_driver(dev, NULL); + } + + mtx_lock(&devclasses_mtx); + for (i = 0; i < maxunit; i++) { + dev = devlist[i]; DT_UNREF(dev); } + free(devlist, M_BUS); - if (error) + if (error) { + mtx_unlock(&devclasses_mtx); return (error); + } - mtx_lock(&devclasses_mtx); TAILQ_REMOVE(&busclass->drivers, dl, link); free(dl, M_BUS); /* XXX: kobj_mtx */ + DC_UNREF(dc); driver->refs--; if (driver->refs == 0) - kobj_class_free((kobj_class_t) driver); + kobj_class_free((kobj_class_t) driver); bus_data_generation_update(); mtx_unlock(&devclasses_mtx); @@ -1169,17 +1179,20 @@ } } } + mtx_unlock(&devclasses_mtx); - error = 0; for (i = 0; i < maxunit; i++) { - dev = devlist[i]; - error = device_quiesce(dev); - DT_UNREF(dev); - if (error) + if ((error = device_quiesce(devlist[i])) != 0) break; } + mtx_lock(&devclasses_mtx); + for (i = 0; i < maxunit; i++) { + DT_UNREF(devlist[i]); + } + mtx_unlock(&devclasses_mtx); + free(devlist, M_BUS); return (error); } From owner-p4-projects@FreeBSD.ORG Sun Jun 7 22:39:17 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 078311065670; Sun, 7 Jun 2009 22:39:17 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id BB195106564A for ; Sun, 7 Jun 2009 22:39:16 +0000 (UTC) (envelope-from mav@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id A70DF8FC0A for ; Sun, 7 Jun 2009 22:39:16 +0000 (UTC) (envelope-from mav@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n57MdGTv003219 for ; Sun, 7 Jun 2009 22:39:16 GMT (envelope-from mav@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n57MdGC8003217 for perforce@freebsd.org; Sun, 7 Jun 2009 22:39:16 GMT (envelope-from mav@freebsd.org) Date: Sun, 7 Jun 2009 22:39:16 GMT Message-Id: <200906072239.n57MdGC8003217@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to mav@freebsd.org using -f From: Alexander Motin To: Perforce Change Reviews Cc: Subject: PERFORCE change 163745 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 07 Jun 2009 22:39:18 -0000 http://perforce.freebsd.org/chv.cgi?CH=163745 Change 163745 by mav@mav_mavbook on 2009/06/07 22:38:27 Massive cleaning. Affected files ... .. //depot/projects/scottl-camlock/src/sys/dev/ahci/ahci.c#18 edit .. //depot/projects/scottl-camlock/src/sys/dev/ahci/ahci.h#6 edit Differences ... ==== //depot/projects/scottl-camlock/src/sys/dev/ahci/ahci.c#18 (text+ko) ==== @@ -82,8 +82,8 @@ static void ahci_start_fr(device_t dev); static void ahci_stop_fr(device_t dev); -static int ata_sata_connect(struct ahci_channel *ch); -static int ata_sata_phy_reset(device_t dev, int quick); +static int ahci_sata_connect(struct ahci_channel *ch); +static int ahci_sata_phy_reset(device_t dev, int quick); static void ahciaction(struct cam_sim *sim, union ccb *ccb); static void ahcipoll(struct cam_sim *sim); @@ -470,17 +470,6 @@ ahci_dmainit(dev); ahci_slotsalloc(dev); - - /* set the SATA resources */ - ch->r_io[ATA_SSTATUS].res = ch->r_mem; - ch->r_io[ATA_SSTATUS].offset = AHCI_P_SSTS; - ch->r_io[ATA_SERROR].res = ch->r_mem; - ch->r_io[ATA_SERROR].offset = AHCI_P_SERR; - ch->r_io[ATA_SCONTROL].res = ch->r_mem; - ch->r_io[ATA_SCONTROL].offset = AHCI_P_SCTL; - ch->r_io[ATA_SACTIVE].res = ch->r_mem; - ch->r_io[ATA_SACTIVE].offset = AHCI_P_SACT; - ahci_ch_resume(dev); mtx_lock(&ch->mtx); @@ -578,12 +567,12 @@ ahci_stop_fr(dev); ATA_OUTL(ch->r_mem, AHCI_P_CMD, 0); /* Allow everything, including partial and slumber modes. */ - ATA_IDX_OUTL(ch, ATA_SCONTROL, 0); + ATA_OUTL(ch->r_mem, AHCI_P_SCTL, 0); /* Request slumber mode transition and give some time to get there. */ ATA_OUTL(ch->r_mem, AHCI_P_CMD, AHCI_P_CMD_SLUMBER); DELAY(100); /* Disable PHY. */ - ATA_IDX_OUTL(ch, ATA_SCONTROL, ATA_SC_DET_DISABLE); + ATA_OUTL(ch->r_mem, AHCI_P_SCTL, ATA_SC_DET_DISABLE); return (0); } @@ -612,7 +601,6 @@ return (0); } - devclass_t ahcich_devclass; static device_method_t ahcich_methods[] = { DEVMETHOD(device_probe, ahci_ch_probe), @@ -629,17 +617,172 @@ }; DRIVER_MODULE(ahcich, ahci, ahcich_driver, ahci_devclass, 0, 0); +struct ahci_dc_cb_args { + bus_addr_t maddr; + int error; +}; + +static void +ahci_dmainit(device_t dev) +{ + struct ahci_controller *ctlr = device_get_softc(device_get_parent(dev)); + struct ahci_channel *ch = device_get_softc(dev); + struct ahci_dc_cb_args dcba; + + ch->dma.alignment = 2; + ch->dma.boundary = 65536; + ch->dma.segsize = 65536; + ch->dma.max_iosize = AHCI_DMA_ENTRIES * PAGE_SIZE; + if (ATA_INL(ctlr->r_mem, AHCI_CAP) & AHCI_CAP_64BIT) + ch->dma.max_address = BUS_SPACE_MAXADDR; + else + ch->dma.max_address = BUS_SPACE_MAXADDR_32BIT; + + if (bus_dma_tag_create(bus_get_dma_tag(dev), PAGE_SIZE, 64 * 1024, + ch->dma.max_address, BUS_SPACE_MAXADDR, + NULL, NULL, MAXWSPCSZ, 1, MAXWSPCSZ, + 0, NULL, NULL, &ch->dma.work_tag)) + goto error; + + if (bus_dmamem_alloc(ch->dma.work_tag, (void **)&ch->dma.work, 0, + &ch->dma.work_map)) + goto error; + + if (bus_dmamap_load(ch->dma.work_tag, ch->dma.work_map, ch->dma.work, + MAXWSPCSZ, ahci_dmasetupc_cb, &dcba, 0) || dcba.error) { + bus_dmamem_free(ch->dma.work_tag, ch->dma.work, ch->dma.work_map); + goto error; + } + ch->dma.work_bus = dcba.maddr; + + if (bus_dma_tag_create(bus_get_dma_tag(dev), + ch->dma.alignment, ch->dma.boundary, + ch->dma.max_address, BUS_SPACE_MAXADDR, + NULL, NULL, + ch->dma.max_iosize * AHCI_MAX_SLOTS, + AHCI_DMA_ENTRIES, ch->dma.segsize, + 0, NULL, NULL, &ch->dma.data_tag)) { + goto error; + } + return; + +error: + device_printf(dev, "WARNING - DMA initialization failed, disabling DMA\n"); + ahci_dmafini(dev); +} + +static void +ahci_dmasetupc_cb(void *xsc, bus_dma_segment_t *segs, int nsegs, int error) +{ + struct ahci_dc_cb_args *dcba = (struct ahci_dc_cb_args *)xsc; + + if (!(dcba->error = error)) + dcba->maddr = segs[0].ds_addr; +} + +static void +ahci_dmafini(device_t dev) +{ + struct ahci_channel *ch = device_get_softc(dev); + + if (ch->dma.data_tag) { + bus_dma_tag_destroy(ch->dma.data_tag); + ch->dma.data_tag = NULL; + } + if (ch->dma.work_bus) { + bus_dmamap_unload(ch->dma.work_tag, ch->dma.work_map); + bus_dmamem_free(ch->dma.work_tag, ch->dma.work, ch->dma.work_map); + ch->dma.work_bus = 0; + ch->dma.work_map = NULL; + ch->dma.work = NULL; + } + if (ch->dma.work_tag) { + bus_dma_tag_destroy(ch->dma.work_tag); + ch->dma.work_tag = NULL; + } +} + static void +ahci_slotsalloc(device_t dev) +{ + struct ahci_channel *ch = device_get_softc(dev); + struct ahci_dc_cb_args dcba; + int i; + + /* Alloc and setup command/dma slots */ + bzero(ch->slot, sizeof(ch->slot)); + for (i = 0; i < AHCI_MAX_SLOTS; i++) { + struct ahci_slot *slot = &ch->slot[i]; + + slot->dev = dev; + slot->slot = i; + slot->state = AHCI_SLOT_EMPTY; + slot->ccb = NULL; + callout_init_mtx(&slot->timeout, &ch->mtx, 0); + + if (bus_dma_tag_create(bus_get_dma_tag(dev), PAGE_SIZE, PAGE_SIZE, + ch->dma.max_address, BUS_SPACE_MAXADDR, + NULL, NULL, PAGE_SIZE, 1, PAGE_SIZE, + 0, NULL, NULL, &slot->dma.sg_tag)) { + device_printf(ch->dev, "FAILURE - create sg_tag\n"); + } + + if (bus_dmamem_alloc(slot->dma.sg_tag, (void **)&slot->dma.sg, + 0, &slot->dma.sg_map)) + device_printf(ch->dev, "FAILURE - alloc sg_map\n"); + + if (bus_dmamap_load(slot->dma.sg_tag, slot->dma.sg_map, slot->dma.sg, PAGE_SIZE, + ahci_dmasetupc_cb, &dcba, BUS_DMA_NOWAIT) || dcba.error) + device_printf(ch->dev, "FAILURE - load sg\n"); + slot->dma.sg_bus = dcba.maddr; + + if (bus_dmamap_create(ch->dma.data_tag, 0, &slot->dma.data_map)) + device_printf(ch->dev, "FAILURE - create data_map\n"); + } +} + +static void +ahci_slotsfree(device_t dev) +{ + struct ahci_channel *ch = device_get_softc(dev); + int i; + + /* Free all dma slots */ + for (i = 0; i < AHCI_MAX_SLOTS; i++) { + struct ahci_slot *slot = &ch->slot[i]; + + if (slot->dma.sg_tag) { + bus_dma_tag_destroy(slot->dma.sg_tag); + slot->dma.sg_tag = NULL; + } + if (slot->dma.sg_bus) { + bus_dmamap_unload(slot->dma.sg_tag, slot->dma.sg_map); + slot->dma.sg_bus = 0; + } + if (slot->dma.sg_map) { + bus_dmamem_free(slot->dma.sg_tag, slot->dma.sg, slot->dma.sg_map); + bus_dmamap_destroy(slot->dma.sg_tag, slot->dma.sg_map); + slot->dma.sg = NULL; + slot->dma.sg_map = NULL; + } + if (slot->dma.data_map) { + bus_dmamap_destroy(ch->dma.data_tag, slot->dma.data_map); + slot->dma.data_map = NULL; + } + } +} + +static void ahci_phy_check_events(device_t dev) { struct ahci_channel *ch = device_get_softc(dev); - u_int32_t error = ATA_IDX_INL(ch, ATA_SERROR); + u_int32_t error = ATA_INL(ch->r_mem, AHCI_P_SERR); /* Clear error bits/interrupt */ - ATA_IDX_OUTL(ch, ATA_SERROR, error); + ATA_OUTL(ch->r_mem, AHCI_P_SERR, error); /* If we have a connection event deal with it */ if ((error & ATA_SE_PHY_CHANGED) && (ch->pm_level == 0)) { - u_int32_t status = ATA_IDX_INL(ch, ATA_SSTATUS); + u_int32_t status = ATA_INL(ch->r_mem, AHCI_P_SSTS); if (((status & ATA_SS_DET_MASK) == ATA_SS_DET_PHY_ONLINE) && ((status & ATA_SS_SPD_MASK) != ATA_SS_SPD_NO_SPEED) && ((status & ATA_SS_IPM_MASK) == ATA_SS_IPM_ACTIVE)) { @@ -667,7 +810,7 @@ /* Read interrupt and command statuses. */ istatus = ATA_INL(ch->r_mem, AHCI_P_IS); cstatus = ATA_INL(ch->r_mem, AHCI_P_CI); - sstatus = ATA_IDX_INL(ch, ATA_SACTIVE); + sstatus = ATA_INL(ch->r_mem, AHCI_P_SACT); //device_printf(dev, "%s is %08x cs %08x ss %08x rslots %08x\n", __func__, istatus, cstatus, sstatus, ch->rslots); /* Clear interrupt(s) */ @@ -724,7 +867,7 @@ struct ahci_slot *slot; int tag; - tag = ch->lastslot; + tag = ch->lastslot; do { tag++; if (tag >= AHCI_MAX_SLOTS) @@ -843,7 +986,7 @@ if ((slot->ccb->ccb_h.func_code == XPT_ATA_IO) && (slot->ccb->ataio.cmd.flags & CAM_ATAIO_FPDMA)) { ch->aslots |= (1 << slot->slot); - ATA_IDX_OUTL(ch, ATA_SACTIVE, 1 << slot->slot); + ATA_OUTL(ch->r_mem, AHCI_P_SACT, 1 << slot->slot); } /* Issue command to the controller. */ slot->state = AHCI_SLOT_RUNNING; @@ -854,14 +997,14 @@ ATA_INL(ch->r_mem, AHCI_P_CI), ATA_INL(ch->r_mem, AHCI_P_IS), ATA_INL(ch->r_mem, AHCI_P_TFD), - ATA_IDX_INL(ch, ATA_SERROR), + ATA_INL(ch->r_mem, AHCI_P_SERR), ATA_INL(ch->r_mem, AHCI_P_SIG)); DELAY(100000); printf("ci %08x is %08x tfd %08x serr %08x sign %08x\n", ATA_INL(ch->r_mem, AHCI_P_CI), ATA_INL(ch->r_mem, AHCI_P_IS), ATA_INL(ch->r_mem, AHCI_P_TFD), - ATA_IDX_INL(ch, ATA_SERROR), + ATA_INL(ch->r_mem, AHCI_P_SERR), ATA_INL(ch->r_mem, AHCI_P_SIG)); */ /* Device reset commands doesn't interrupt. Poll them. */ @@ -1002,7 +1145,7 @@ u_int32_t cmd; /* Clear SATA error register */ - ATA_IDX_OUTL(ch, ATA_SERROR, ATA_IDX_INL(ch, ATA_SERROR)); + ATA_OUTL(ch->r_mem, AHCI_P_SERR, ATA_INL(ch->r_mem, AHCI_P_SERR)); /* Clear any interrupts pending on this channel */ ATA_OUTL(ch->r_mem, AHCI_P_IS, ATA_INL(ch->r_mem, AHCI_P_IS)); /* Start operations on this channel */ @@ -1120,7 +1263,7 @@ *signature = 0xffffffff; ahci_stop(dev); /* Reset port */ - if (!ata_sata_phy_reset(dev, 0)) + if (!ahci_sata_phy_reset(dev, 0)) return (ENOENT); /* Wait for clearing busy status. */ if (ahci_wait_ready(dev, 10000)) { @@ -1170,176 +1313,6 @@ xpt_async(AC_BUS_RESET, ch->path, NULL); } -struct ahci_dc_cb_args { - bus_addr_t maddr; - int error; -}; - -static void -ahci_dmainit(device_t dev) -{ - struct ahci_controller *ctlr = device_get_softc(device_get_parent(dev)); - struct ahci_channel *ch = device_get_softc(dev); - struct ahci_dc_cb_args dcba; - - /* note start and stop are not used here */ - ch->dma.max_iosize = 8192 * DEV_BSIZE; - if (ATA_INL(ctlr->r_mem, AHCI_CAP) & AHCI_CAP_64BIT) - ch->dma.max_address = BUS_SPACE_MAXADDR; - - ch->dma.alignment = 2; - ch->dma.boundary = 65536; - ch->dma.segsize = 65536; - ch->dma.max_iosize = 128 * DEV_BSIZE; - ch->dma.max_address = BUS_SPACE_MAXADDR_32BIT; - - if (bus_dma_tag_create(bus_get_dma_tag(dev), ch->dma.alignment, 0, - ch->dma.max_address, BUS_SPACE_MAXADDR, - NULL, NULL, ch->dma.max_iosize, - ATA_DMA_ENTRIES, ch->dma.segsize, - 0, NULL, NULL, &ch->dma.dmatag)) - goto error; - - if (bus_dma_tag_create(ch->dma.dmatag, PAGE_SIZE, 64 * 1024, - ch->dma.max_address, BUS_SPACE_MAXADDR, - NULL, NULL, MAXWSPCSZ, 1, MAXWSPCSZ, - 0, NULL, NULL, &ch->dma.work_tag)) - goto error; - - if (bus_dmamem_alloc(ch->dma.work_tag, (void **)&ch->dma.work, 0, - &ch->dma.work_map)) - goto error; - - if (bus_dmamap_load(ch->dma.work_tag, ch->dma.work_map, ch->dma.work, - MAXWSPCSZ, ahci_dmasetupc_cb, &dcba, 0) || - dcba.error) { - bus_dmamem_free(ch->dma.work_tag, ch->dma.work, ch->dma.work_map); - goto error; - } - ch->dma.work_bus = dcba.maddr; - - if (bus_dma_tag_create(ch->dma.dmatag, - ch->dma.alignment, ch->dma.boundary, - ch->dma.max_address, BUS_SPACE_MAXADDR, - NULL, NULL, - ch->dma.max_iosize * AHCI_MAX_SLOTS, - ATA_DMA_ENTRIES, ch->dma.segsize, - 0, NULL, NULL, &ch->dma.data_tag)) { - goto error; - } - - return; - -error: - device_printf(dev, "WARNING - DMA initialization failed, disabling DMA\n"); - ahci_dmafini(dev); -} - -static void -ahci_dmasetupc_cb(void *xsc, bus_dma_segment_t *segs, int nsegs, int error) -{ - struct ahci_dc_cb_args *dcba = (struct ahci_dc_cb_args *)xsc; - - if (!(dcba->error = error)) - dcba->maddr = segs[0].ds_addr; -} - -static void -ahci_dmafini(device_t dev) -{ - struct ahci_channel *ch = device_get_softc(dev); - - if (ch->dma.data_tag) { - bus_dma_tag_destroy(ch->dma.data_tag); - ch->dma.data_tag = NULL; - } - if (ch->dma.work_bus) { - bus_dmamap_unload(ch->dma.work_tag, ch->dma.work_map); - bus_dmamem_free(ch->dma.work_tag, ch->dma.work, ch->dma.work_map); - ch->dma.work_bus = 0; - ch->dma.work_map = NULL; - ch->dma.work = NULL; - } - if (ch->dma.work_tag) { - bus_dma_tag_destroy(ch->dma.work_tag); - ch->dma.work_tag = NULL; - } - if (ch->dma.dmatag) { - bus_dma_tag_destroy(ch->dma.dmatag); - ch->dma.dmatag = NULL; - } -} - -static void -ahci_slotsalloc(device_t dev) -{ - struct ahci_channel *ch = device_get_softc(dev); - struct ahci_dc_cb_args dcba; - int i; - - /* Alloc and setup command/dma slots */ - bzero(ch->slot, sizeof(ch->slot)); - for (i = 0; i < AHCI_MAX_SLOTS; i++) { - struct ahci_slot *slot = &ch->slot[i]; - - slot->dev = dev; - slot->slot = i; - slot->state = AHCI_SLOT_EMPTY; - slot->ccb = NULL; - callout_init_mtx(&slot->timeout, &ch->mtx, 0); - - if (bus_dma_tag_create(ch->dma.dmatag, PAGE_SIZE, PAGE_SIZE, - ch->dma.max_address, BUS_SPACE_MAXADDR, - NULL, NULL, PAGE_SIZE, 1, PAGE_SIZE, - 0, NULL, NULL, &slot->dma.sg_tag)) { - device_printf(ch->dev, "FAILURE - create sg_tag\n"); - } - - if (bus_dmamem_alloc(slot->dma.sg_tag, (void **)&slot->dma.sg, - 0, &slot->dma.sg_map)) - device_printf(ch->dev, "FAILURE - alloc sg_map\n"); - - if (bus_dmamap_load(slot->dma.sg_tag, slot->dma.sg_map, slot->dma.sg, PAGE_SIZE, - ahci_dmasetupc_cb, &dcba, BUS_DMA_NOWAIT) || dcba.error) - device_printf(ch->dev, "FAILURE - load sg\n"); - slot->dma.sg_bus = dcba.maddr; - - if (bus_dmamap_create(ch->dma.data_tag, 0, &slot->dma.data_map)) - device_printf(ch->dev, "FAILURE - create data_map\n"); - } -} - -static void -ahci_slotsfree(device_t dev) -{ - struct ahci_channel *ch = device_get_softc(dev); - int i; - - /* Free all dma slots */ - for (i = 0; i < AHCI_MAX_SLOTS; i++) { - struct ahci_slot *slot = &ch->slot[i]; - - if (slot->dma.sg_tag) { - bus_dma_tag_destroy(slot->dma.sg_tag); - slot->dma.sg_tag = NULL; - } - if (slot->dma.sg_bus) { - bus_dmamap_unload(slot->dma.sg_tag, slot->dma.sg_map); - slot->dma.sg_bus = 0; - } - if (slot->dma.sg_map) { - bus_dmamem_free(slot->dma.sg_tag, slot->dma.sg, slot->dma.sg_map); - bus_dmamap_destroy(slot->dma.sg_tag, slot->dma.sg_map); - slot->dma.sg = NULL; - slot->dma.sg_map = NULL; - } - if (slot->dma.data_map) { - bus_dmamap_destroy(ch->dma.data_tag, slot->dma.data_map); - slot->dma.data_map = NULL; - } - } -} - static int ahci_setup_fis(struct ahci_cmd_tab *ctp, union ccb *ccb, int tag) { @@ -1390,14 +1363,14 @@ } static int -ata_sata_connect(struct ahci_channel *ch) +ahci_sata_connect(struct ahci_channel *ch) { u_int32_t status; int timeout; /* Wait up to 1 second for "connect well" */ for (timeout = 0; timeout < 1000 ; timeout++) { - status = ATA_IDX_INL(ch, ATA_SSTATUS); + status = ATA_INL(ch->r_mem, AHCI_P_SSTS); if (((status & ATA_SS_DET_MASK) == ATA_SS_DET_PHY_ONLINE) && ((status & ATA_SS_SPD_MASK) != ATA_SS_SPD_NO_SPEED) && ((status & ATA_SS_IPM_MASK) == ATA_SS_IPM_ACTIVE)) @@ -1416,30 +1389,30 @@ timeout, status); } /* Clear SATA error register */ - ATA_IDX_OUTL(ch, ATA_SERROR, 0xffffffff); + ATA_OUTL(ch->r_mem, AHCI_P_SERR, 0xffffffff); return (1); } static int -ata_sata_phy_reset(device_t dev, int quick) +ahci_sata_phy_reset(device_t dev, int quick) { struct ahci_channel *ch = device_get_softc(dev); uint32_t val; if (quick) { - val = ATA_IDX_INL(ch, ATA_SCONTROL); + val = ATA_INL(ch->r_mem, AHCI_P_SCTL); if ((val & ATA_SC_DET_MASK) == ATA_SC_DET_IDLE) - return (ata_sata_connect(ch)); + return (ahci_sata_connect(ch)); } if (bootverbose) device_printf(dev, "hardware reset ...\n"); - ATA_IDX_OUTL(ch, ATA_SCONTROL, ATA_SC_DET_RESET); + ATA_OUTL(ch->r_mem, AHCI_P_SCTL, ATA_SC_DET_RESET); DELAY(50000); - ATA_IDX_OUTL(ch, ATA_SCONTROL, + ATA_OUTL(ch->r_mem, AHCI_P_SCTL, ATA_SC_DET_IDLE /*| ATA_SC_SPD_SPEED_GEN1*/ | ((ch->pm_level > 0) ? 0 : ATA_SC_IPM_DIS_PARTIAL | ATA_SC_IPM_DIS_SLUMBER)); - return (ata_sata_connect(ch)); + return (ahci_sata_connect(ch)); } static void @@ -1490,9 +1463,9 @@ cts->proto_specific.valid = 0; cts->xport_specific.sata.valid = CTS_SATA_VALID_SPEED; if (cts->type == CTS_TYPE_CURRENT_SETTINGS) - status = ATA_IDX_INL(ch, ATA_SSTATUS) & ATA_SS_SPD_MASK; + status = ATA_INL(ch->r_mem, AHCI_P_SSTS) & ATA_SS_SPD_MASK; else - status = ATA_IDX_INL(ch, ATA_SCONTROL) & ATA_SC_SPD_MASK; + status = ATA_INL(ch->r_mem, AHCI_P_SSTS) & ATA_SC_SPD_MASK; if (status & ATA_SS_SPD_GEN3) cts->xport_specific.sata.bitrate = 600000; else if (status & ATA_SS_SPD_GEN2) ==== //depot/projects/scottl-camlock/src/sys/dev/ahci/ahci.h#6 (text+ko) ==== @@ -76,10 +76,6 @@ #define ATA_S_BUSY 0x80 /* busy */ #define ATA_CONTROL 12 /* (W) control */ - -#define ATA_CTLOFFSET 0x206 /* control register offset */ -#define ATA_PCCARD_CTLOFFSET 0x0e /* do for PCCARD devices */ -#define ATA_PC98_CTLOFFSET 0x10c /* do for PC98 devices */ #define ATA_A_IDS 0x02 /* disable interrupts */ #define ATA_A_RESET 0x04 /* RESET controller */ #define ATA_A_4BIT 0x08 /* 4 head bits */ @@ -105,13 +101,6 @@ #define ATA_SS_IPM_PARTIAL 0x00000200 #define ATA_SS_IPM_SLUMBER 0x00000600 -#define ATA_SS_CONWELL_MASK \ - (ATA_SS_DET_MASK|ATA_SS_SPD_MASK|ATA_SS_IPM_MASK) -#define ATA_SS_CONWELL_GEN1 \ - (ATA_SS_DET_PHY_ONLINE|ATA_SS_SPD_GEN1|ATA_SS_IPM_ACTIVE) -#define ATA_SS_CONWELL_GEN2 \ - (ATA_SS_DET_PHY_ONLINE|ATA_SS_SPD_GEN2|ATA_SS_IPM_ACTIVE) - #define ATA_SERROR 14 #define ATA_SE_DATA_CORRECTED 0x00000001 #define ATA_SE_COMM_CORRECTED 0x00000002 @@ -286,63 +275,12 @@ u_int64_t cmd_table_phys; /* 128byte aligned */ } __packed; - /* DMA register defines */ #define ATA_DMA_ENTRIES 256 -#define ATA_DMA_EOT 0x80000000 - -#define ATA_BMCMD_PORT 17 -#define ATA_BMCMD_START_STOP 0x01 -#define ATA_BMCMD_WRITE_READ 0x08 - -#define ATA_BMDEVSPEC_0 18 -#define ATA_BMSTAT_PORT 19 -#define ATA_BMSTAT_ACTIVE 0x01 -#define ATA_BMSTAT_ERROR 0x02 -#define ATA_BMSTAT_INTERRUPT 0x04 -#define ATA_BMSTAT_MASK 0x07 -#define ATA_BMSTAT_DMA_MASTER 0x20 -#define ATA_BMSTAT_DMA_SLAVE 0x40 -#define ATA_BMSTAT_DMA_SIMPLEX 0x80 - -#define ATA_BMDEVSPEC_1 20 -#define ATA_BMDTP_PORT 21 -#define ATA_IDX_ADDR 22 -#define ATA_IDX_DATA 23 -#define ATA_MAX_RES 24 - /* misc defines */ -#define ATA_PRIMARY 0x1f0 -#define ATA_SECONDARY 0x170 -#define ATA_PC98_BANK 0x432 -#define ATA_IOSIZE 0x08 -#define ATA_PC98_IOSIZE 0x10 -#define ATA_CTLIOSIZE 0x01 -#define ATA_BMIOSIZE 0x08 -#define ATA_PC98_BANKIOSIZE 0x01 -#define ATA_IOADDR_RID 0 -#define ATA_CTLADDR_RID 1 -#define ATA_BMADDR_RID 0x20 -#define ATA_PC98_CTLADDR_RID 8 -#define ATA_PC98_BANKADDR_RID 9 #define ATA_IRQ_RID 0 -#define ATA_DEV(unit) ((unit > 0) ? 0x10 : 0) -#define ATA_CFA_MAGIC1 0x844A -#define ATA_CFA_MAGIC2 0x848A -#define ATA_CFA_MAGIC3 0x8400 -#define ATAPI_MAGIC_LSB 0x14 -#define ATAPI_MAGIC_MSB 0xeb -#define ATAPI_P_READ (ATA_S_DRQ | ATA_I_IN) -#define ATAPI_P_WRITE (ATA_S_DRQ) -#define ATAPI_P_CMDOUT (ATA_S_DRQ | ATA_I_CMD) -#define ATAPI_P_DONEDRQ (ATA_S_DRQ | ATA_I_CMD | ATA_I_IN) -#define ATAPI_P_DONE (ATA_I_CMD | ATA_I_IN) -#define ATAPI_P_ABORT 0 #define ATA_INTR_FLAGS (INTR_MPSAFE|INTR_TYPE_BIO|INTR_ENTROPY) -#define ATA_OP_CONTINUES 0 -#define ATA_OP_FINISHED 1 -#define ATA_MAX_28BIT_LBA 268435455UL /* structure for holding DMA Physical Region Descriptors (PRD) entries */ struct ata_dma_prdentry { @@ -385,12 +323,6 @@ #define ATA_DMA_ACTIVE 0x01 /* DMA transfer in progress */ }; -/* structure holding resources for an ATA channel */ -struct ata_resource { - struct resource *res; - int offset; -}; - #define ATA_MASTER 0x00 #define ATA_SLAVE 0x01 #define ATA_PM 0x0f @@ -419,7 +351,6 @@ struct ahci_channel { device_t dev; /* device handle */ int unit; /* physical channel */ - struct ata_resource r_io[ATA_MAX_RES];/* I/O resources */ struct resource *r_mem; struct resource *r_irq; /* interrupt of this channel */ void *ih; /* interrupt handle */ @@ -475,13 +406,6 @@ AHCI_ERR_TIMEOUT }; -/* disk bay/enclosure related */ -#define ATA_LED_OFF 0x00 -#define ATA_LED_RED 0x01 -#define ATA_LED_GREEN 0x02 -#define ATA_LED_ORANGE 0x03 -#define ATA_LED_MASK 0x03 - /* macros to hide busspace uglyness */ #define ATA_INB(res, offset) \ bus_read_1((res), (offset)) @@ -511,45 +435,3 @@ bus_write_multi_4((res), (offset), (addr), (count)) #define ATA_OUTSL_STRM(res, offset, addr, count) \ bus_write_multi_stream_4((res), (offset), (addr), (count)) - -#define ATA_IDX_INB(ch, idx) \ - ATA_INB(ch->r_io[idx].res, ch->r_io[idx].offset) - -#define ATA_IDX_INW(ch, idx) \ - ATA_INW(ch->r_io[idx].res, ch->r_io[idx].offset) - -#define ATA_IDX_INL(ch, idx) \ - ATA_INL(ch->r_io[idx].res, ch->r_io[idx].offset) - -#define ATA_IDX_INSW(ch, idx, addr, count) \ - ATA_INSW(ch->r_io[idx].res, ch->r_io[idx].offset, addr, count) - -#define ATA_IDX_INSW_STRM(ch, idx, addr, count) \ - ATA_INSW_STRM(ch->r_io[idx].res, ch->r_io[idx].offset, addr, count) - -#define ATA_IDX_INSL(ch, idx, addr, count) \ - ATA_INSL(ch->r_io[idx].res, ch->r_io[idx].offset, addr, count) - -#define ATA_IDX_INSL_STRM(ch, idx, addr, count) \ - ATA_INSL_STRM(ch->r_io[idx].res, ch->r_io[idx].offset, addr, count) - -#define ATA_IDX_OUTB(ch, idx, value) \ - ATA_OUTB(ch->r_io[idx].res, ch->r_io[idx].offset, value) - -#define ATA_IDX_OUTW(ch, idx, value) \ - ATA_OUTW(ch->r_io[idx].res, ch->r_io[idx].offset, value) - -#define ATA_IDX_OUTL(ch, idx, value) \ - ATA_OUTL(ch->r_io[idx].res, ch->r_io[idx].offset, value) - -#define ATA_IDX_OUTSW(ch, idx, addr, count) \ - ATA_OUTSW(ch->r_io[idx].res, ch->r_io[idx].offset, addr, count) - -#define ATA_IDX_OUTSW_STRM(ch, idx, addr, count) \ - ATA_OUTSW_STRM(ch->r_io[idx].res, ch->r_io[idx].offset, addr, count) - -#define ATA_IDX_OUTSL(ch, idx, addr, count) \ - ATA_OUTSL(ch->r_io[idx].res, ch->r_io[idx].offset, addr, count) - -#define ATA_IDX_OUTSL_STRM(ch, idx, addr, count) \ - ATA_OUTSL_STRM(ch->r_io[idx].res, ch->r_io[idx].offset, addr, count) From owner-p4-projects@FreeBSD.ORG Mon Jun 8 00:38:19 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id C5B601065673; Mon, 8 Jun 2009 00:38:18 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 853F21065670 for ; Mon, 8 Jun 2009 00:38:18 +0000 (UTC) (envelope-from zjriggl@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 5946F8FC12 for ; Mon, 8 Jun 2009 00:38:18 +0000 (UTC) (envelope-from zjriggl@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n580cHOQ014719 for ; Mon, 8 Jun 2009 00:38:18 GMT (envelope-from zjriggl@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n580cHGV014717 for perforce@freebsd.org; Mon, 8 Jun 2009 00:38:17 GMT (envelope-from zjriggl@FreeBSD.org) Date: Mon, 8 Jun 2009 00:38:17 GMT Message-Id: <200906080038.n580cHGV014717@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to zjriggl@FreeBSD.org using -f From: Zachariah Riggle To: Perforce Change Reviews Cc: Subject: PERFORCE change 163751 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 08 Jun 2009 00:38:20 -0000 http://perforce.freebsd.org/chv.cgi?CH=163751 Change 163751 by zjriggl@zjriggl_tcpregression on 2009/06/08 00:37:58 Committing to save work Affected files ... .. //depot/projects/soc2009/zjriggl_tcpregression/src/tcpregression/tcpstatemachine.py#1 add .. //depot/projects/soc2009/zjriggl_tcpregression/src/tcpregression/tcpstates.py#1 add Differences ... From owner-p4-projects@FreeBSD.ORG Mon Jun 8 03:27:17 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id D1F9E106566C; Mon, 8 Jun 2009 03:27:16 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 87341106566B for ; Mon, 8 Jun 2009 03:27:16 +0000 (UTC) (envelope-from scottl@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 5AF8D8FC0C for ; Mon, 8 Jun 2009 03:27:16 +0000 (UTC) (envelope-from scottl@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n583RG3w051674 for ; Mon, 8 Jun 2009 03:27:16 GMT (envelope-from scottl@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n583RGca051672 for perforce@freebsd.org; Mon, 8 Jun 2009 03:27:16 GMT (envelope-from scottl@freebsd.org) Date: Mon, 8 Jun 2009 03:27:16 GMT Message-Id: <200906080327.n583RGca051672@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to scottl@freebsd.org using -f From: Scott Long To: Perforce Change Reviews Cc: Subject: PERFORCE change 163754 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 08 Jun 2009 03:27:17 -0000 http://perforce.freebsd.org/chv.cgi?CH=163754 Change 163754 by scottl@scottl-deimos on 2009/06/08 03:26:36 Add locking to the remainder of the devclass methods. Affected files ... .. //depot/projects/scottl-camlock/src/sys/kern/subr_bus.c#24 edit Differences ... ==== //depot/projects/scottl-camlock/src/sys/kern/subr_bus.c#24 (text+ko) ==== @@ -1518,12 +1518,14 @@ /* If we were given a wired unit number, check for existing device */ /* XXX imp XXX */ + mtx_lock(&devclasses_mtx); if (unit != -1) { if (unit >= 0 && unit < dc->maxunit && dc->devices[unit] != NULL) { if (bootverbose) printf("%s: %s%d already exists; skipping it\n", dc->name, dc->name, *unitp); + mtx_unlock(&devclasses_mtx); return (EEXIST); } } else { @@ -1566,8 +1568,10 @@ if (oldlist != NULL) free(oldlist, M_BUS); } + dc->devices[unit] = dev; + mtx_unlock(&devclasses_mtx); + PDEBUG(("now: unit %d in devclass %s", unit, DEVCLANAME(dc))); - *unitp = unit; return (0); } @@ -1607,8 +1611,11 @@ dev->nameunit = NULL; return (error); } - dc->devices[dev->unit] = dev; + mtx_lock(&devclasses_mtx); + DC_REF(dc); + DT_REF(dev); dev->devclass = dc; + mtx_unlock(&devclasses_mtx); snprintf(dev->nameunit, buflen, "%s%d", dc->name, dev->unit); return (0); @@ -1634,14 +1641,18 @@ PDEBUG(("%s in devclass %s", DEVICENAME(dev), DEVCLANAME(dc))); + mtx_lock(&devclasses_mtx); if (dev->devclass != dc || dc->devices[dev->unit] != dev) panic("devclass_delete_device: inconsistent device class"); + DT_UNREF(dev); + DC_UNREF(dc); dc->devices[dev->unit] = NULL; if (dev->flags & DF_WILDCARD) dev->unit = -1; dev->devclass = NULL; free(dev->nameunit, M_BUS); dev->nameunit = NULL; + mtx_unlock(&devclasses_mtx); return (0); } @@ -1707,8 +1718,10 @@ dev->state = DS_NOTPRESENT; + mtx_lock(&devclasses_mtx); TAILQ_INSERT_TAIL(&bus_data_devices, dev, devlink); bus_data_generation_update(); + mtx_unlock(&devclasses_mtx); return (dev); } From owner-p4-projects@FreeBSD.ORG Mon Jun 8 04:21:12 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id BE9D31065670; Mon, 8 Jun 2009 04:21:11 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 7408D106566C for ; Mon, 8 Jun 2009 04:21:11 +0000 (UTC) (envelope-from dforsyth@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 608638FC0C for ; Mon, 8 Jun 2009 04:21:11 +0000 (UTC) (envelope-from dforsyth@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n584LB43056737 for ; Mon, 8 Jun 2009 04:21:11 GMT (envelope-from dforsyth@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n584LBx1056735 for perforce@freebsd.org; Mon, 8 Jun 2009 04:21:11 GMT (envelope-from dforsyth@FreeBSD.org) Date: Mon, 8 Jun 2009 04:21:11 GMT Message-Id: <200906080421.n584LBx1056735@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to dforsyth@FreeBSD.org using -f From: David Forsythe To: Perforce Change Reviews Cc: Subject: PERFORCE change 163756 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 08 Jun 2009 04:21:12 -0000 http://perforce.freebsd.org/chv.cgi?CH=163756 Change 163756 by dforsyth@squirrel on 2009/06/08 04:20:51 Started to divide up information in plist parse. Affected files ... .. //depot/projects/soc2009/dforsyth_libpkg/libpkg/pkg.c#10 edit .. //depot/projects/soc2009/dforsyth_libpkg/libpkg/pkg.h#10 edit .. //depot/projects/soc2009/dforsyth_libpkg/libpkg/pkg_plist.c#5 edit .. //depot/projects/soc2009/dforsyth_libpkg/libpkg/pkg_plist.h#5 edit .. //depot/projects/soc2009/dforsyth_libpkg/libpkg/pkgdb.c#10 edit Differences ... ==== //depot/projects/soc2009/dforsyth_libpkg/libpkg/pkg.c#10 (text+ko) ==== @@ -75,12 +75,8 @@ if (p == NULL) return (NULL); - if (is_it_empty(pl)) - printf("its empty in set_pkg_plist, before set\n"); + p->plist = pl; - p->plist = pl; - if (is_it_empty(pl)) - printf("its empty in set_pkg_plist, after set\n"); return (p); } @@ -142,29 +138,23 @@ if (p == NULL) return; - if (is_it_empty(p->plist)) - printf("its empty when pkg requests init\n"); - - pkg_plist_file_list_init(p->plist); - if (is_it_empty(p->plist)) - printf("its empty when pkg requests init, after\n"); + pkg_plist_pkg_file_list_reset(p->plist); } /* Temporarily char. */ char * pkg_file_list_next(struct pkg *p) { - struct pl_entry *ent; + struct pkg_file *pf; char *file_name; if (p == NULL) return (NULL); - - if (is_it_empty(p->plist)) - printf("its empty when pkg requests next\n"); - ent = pkg_plist_file_list_next(p->plist); - file_name = pl_entry_info(ent); + pf = pkg_plist_pkg_file_list_next(p->plist); + if (pf == NULL) + return (NULL); + file_name = pkg_file_path(pf); return (file_name); } ==== //depot/projects/soc2009/dforsyth_libpkg/libpkg/pkg.h#10 (text+ko) ==== @@ -49,6 +49,8 @@ struct pkg *pkgdb_next_pkg(struct pkgdb *db); +struct pkg *pkgdb_curr_pkg(struct pkgdb *db); + struct pkg *pkgdb_query_pkg(struct pkgdb *db, const char *ident); char *pkgdb_pkg_path(struct pkgdb *db, struct pkg *p); ==== //depot/projects/soc2009/dforsyth_libpkg/libpkg/pkg_plist.c#5 (text+ko) ==== @@ -13,12 +13,19 @@ #include "pkgdb.h" #include "pkg.h" -struct pl_entry { - enum plist_elem type; - char *info; - char *option; - - TAILQ_ENTRY(pl_entry) next; +struct parse_state { + enum plist_elem last_elem; + char *owner; + char *group; +}; + +struct pkg_file { + char *path; + char *md5; + char *owner; + char *group; + + TAILQ_ENTRY(pkg_file) next; }; struct pkg_plist { @@ -32,15 +39,26 @@ char *text; /* The entire plist */ - struct pl_entry *file_curr; + struct pkg_file *pf_curr; /* Use these lists here so that appending to our list doesnt need a * bunch of realloc procedures. This will be convenient for clients * that want to build plists on the fly, modify plists, etc. */ - TAILQ_HEAD(file_head, pl_entry) file_head; /* File list. */ + TAILQ_HEAD(pf_head, pkg_file) pf_head; /* pkg_file list. */ }; +void +set_parse_state_default(struct parse_state *st) +{ + if (st == NULL) + return; + + st->last_elem = PLIST_UNKNOWN; + st->owner = NULL; + st->group = NULL; +} + struct pkg_plist * pkg_plist_new() { @@ -59,29 +77,31 @@ return (pl); } -struct pl_entry * -pl_entry_new(enum plist_elem elem, char *info, char *option) +struct pkg_file * +pkg_file_new(char *path, char *md5, char *owner, char *group) { - struct pl_entry *ent; + struct pkg_file *pf; - ent = calloc(1, sizeof(*ent)); - if (ent != NULL) { - ent->type = elem; - ent->info = info; - ent->option = option; + pf = calloc(1, sizeof(*pf)); + if (pf != NULL) { + pf->path = path; + pf->md5 = md5; + pf->owner = owner; + pf->group = group; } - return (ent); + return (pf); } struct pkg_plist * pkg_plist_parse_contents_from_text(const char *text) { + int s; char *p; char *textp; char *line; struct pkg_plist *pl; - struct pl_entry *ent; + struct parse_state st; /* This function will parse text and create a pkg_plist */ if (text == NULL) @@ -101,40 +121,46 @@ pl->text = textp; - pkg_plist_plist_init(pl); + pkg_plist_pkg_file_list_init(pl); + set_parse_state_default(&st); for (p = textp; *p != '\0'; p++) { if (*p == '\n') { line = textp; line[p - textp] = '\0'; - ent = pkg_plist_parse_line(pl, line); - + s = pkg_plist_parse_line(pl, line, &st); /* For now, just plop everything onto the file list. */ /* TODO: have the append function sort entry types to the * correct list. */ - if (ent != NULL) - pkg_plist_plist_append(pl, ent); + /* Move the actual list assignment out of here to make it + * easier to deal with different types of data. */ + + /* Consider a dirty flag for these lists? */ + if (s != 0) { + /* bad parse. */ + } textp = p + 1; } } - if (is_it_empty(pl)) - printf("its empty in the parse.\n"); - return (pl); } -/* Parse a command sequence and and entry based on the findings. */ -struct pl_entry * -pkg_plist_parse_line(struct pkg_plist *pl, char *line) { +/* Parse a command sequence and add an entry based on the findings. */ +int +pkg_plist_parse_line(struct pkg_plist *pl, char *line, + struct parse_state *st) +{ + int s; char *command; char *argument; char *sep; - struct pl_entry *ent; + struct pkg_file *pf; if (line == NULL) - return (NULL); + return (-1); + s = 0; if (*line == '@') { sep = strchr(line, ' '); if (sep == NULL) @@ -145,12 +171,13 @@ if (strcmp(command, PLIST_CMD_CWD) == 0 || strcmp(command, PLIST_CMD_CD) == 0) { pl->cwd = argument; - return (NULL); + st->last_elem = PLIST_CWD; } else if (strcmp(command, PLIST_CMD_SRCDIR) == 0) { pl->srcdir = argument; - return (NULL); + return (0); } +#if 0 else if (strcmp(command, PLIST_CMD_EXEC) == 0) ent = pl_entry_new(PLIST_EXEC, argument, NULL); else if (strcmp(command, PLIST_CMD_UNEXEC) == 0) @@ -163,11 +190,13 @@ ent = pl_entry_new(PLIST_OWNER, argument, NULL); else if (strcmp(command, PLIST_CMD_GROUP) == 0) ent = pl_entry_new(PLIST_GROUP, argument, NULL); +#endif else if (strcmp(command, PLIST_CMD_COMMENT) == 0) { /* Lots more stuff needs to go in here... what a terrible file * format... */ - ent = pl_entry_new(PLIST_COMMENT, argument, NULL); + } +#if 0 else if (strcmp(command, PLIST_CMD_NOINST) == 0) { if ((sep = strchr(argument, ' ')) != NULL) *sep = '\0'; @@ -176,61 +205,36 @@ ent = pl_entry_new(PLIST_IGNORE, argument, NULL); else if (strcmp(command, PLIST_CMD_IGNORE_INST) == 0) ent = pl_entry_new(PLIST_IGNORE_INST, argument, NULL); +#endif else if (strcmp(command, PLIST_CMD_NAME) == 0) { pl->name = argument; - return (NULL); } +#if 0 else if (strcmp(command, PLIST_CMD_DIRRM) == 0) ent = pl_entry_new(PLIST_DIRRM, argument, NULL); +#endif else if (strcmp(command, PLIST_CMD_MTREE) == 0) { pl->mtree_file = argument; - return (NULL); } else if (strcmp(command, PLIST_CMD_DISPLAY) == 0) { pl->display = argument; - return (NULL); } +#if 0 else { /* If we cant identify the command, set it unknown and gather * whatever information we can. */ ent = pl_entry_new(PLIST_UNKNOWN, argument, NULL); } +#endif } else { - ent = pl_entry_new(PLIST_FILE, argument, NULL); + pf = pkg_file_new(line, NULL, NULL, NULL); + pkg_plist_pkg_file_list_append(pl, pf); + st->last_elem = PLIST_FILE; } - return (ent); + return (s); } -/* Temporarily void. */ -void -pkg_plist_file_list_init(struct pkg_plist *pl) -{ - /* Available to the client. */ - - /* If you init again, it clears the list. So don't. */ - pl->file_curr = NULL; -} - -struct pl_entry * -pkg_plist_file_list_next(struct pkg_plist *pl) -{ - struct pl_entry *ent; - - if (pl == NULL) - return (NULL); - - if (pl->file_curr == NULL) - ent = pkg_plist_plist_first(pl); - else - ent = TAILQ_NEXT(pl->file_curr, next); - - if (ent != NULL) - pl->file_curr = ent; - - return (ent); -} - char * pkg_plist_name(struct pkg_plist *pl) { @@ -258,50 +262,76 @@ return (pl->orgin); } +/* Will be available. */ +char * +pkg_file_path(struct pkg_file *pf) +{ + if (pf == NULL) + return (NULL); + + return (pf->path); +} + char * -pl_entry_info(struct pl_entry *ent) +pkg_file_md5(struct pkg_file *pf) { - if (ent == NULL) + if (pf == NULL) return (NULL); - return (ent->info); + return (pf->md5); +} + +/* Temporarily void. */ +void +pkg_plist_pkg_file_list_reset(struct pkg_plist *pl) +{ + /* If you init again, it clears the list. So don't. */ + pl->pf_curr = NULL; } -/* Don't know if I'll be sticking with this, so... */ +struct pkg_file * +pkg_plist_pkg_file_list_next(struct pkg_plist *pl) +{ + struct pkg_file *pf; + + if (pl == NULL) + return (NULL); + + if (pl->pf_curr == NULL) + pf = pkg_plist_pkg_file_list_first(pl); + else + pf = TAILQ_NEXT(pl->pf_curr, next); + + if (pf != NULL) + pl->pf_curr = pf; + + return (pf); +} void -pkg_plist_plist_init(struct pkg_plist *pl) +pkg_plist_pkg_file_list_init(struct pkg_plist *pl) { if (pl == NULL) return; - TAILQ_INIT(&pl->file_head); + TAILQ_INIT(&pl->pf_head); } -struct pl_entry * -pkg_plist_plist_first(struct pkg_plist *pl) +struct pkg_file * +pkg_plist_pkg_file_list_first(struct pkg_plist *pl) { if (pl == NULL) return (NULL); - return (TAILQ_FIRST(&pl->file_head)); + return (TAILQ_FIRST(&pl->pf_head)); } void -pkg_plist_plist_append(struct pkg_plist *pl, struct pl_entry *ent) +pkg_plist_pkg_file_list_append(struct pkg_plist *pl, struct pkg_file *pf) { - if (pl == NULL || ent == NULL) + if (pl == NULL || pf == NULL) return; - if (ent->type == PLIST_FILE) - TAILQ_INSERT_TAIL(&pl->file_head, ent, next); -} - -int -is_it_empty(struct pkg_plist *pl) -{ - if (TAILQ_EMPTY(&pl->file_head)) - return (1); - - return (0); + + TAILQ_INSERT_TAIL(&pl->pf_head, pf, next); } ==== //depot/projects/soc2009/dforsyth_libpkg/libpkg/pkg_plist.h#5 (text+ko) ==== @@ -45,25 +45,32 @@ #define PLIST_CMD_PKGDEG "pkgdep" #define PLIST_CMD_CONFLICTS "conflicts" -struct pl_entry; +struct parse_state; + +struct pkg_file; -struct pl_entry * -pl_entry_new(enum plist_elem elem, char *info, char *option); +struct pkg_file * +pkg_file_new(char *path, char *md5, char *owner, char *group); struct pkg_plist *pkg_plist_parse_contents_from_text(const char *text); -struct pl_entry *pkg_plist_parse_line(struct pkg_plist *pl, char *line); +int pkg_plist_parse_line(struct pkg_plist *pl, char *line, + struct parse_state *st); -void pkg_plist_file_list_init(struct pkg_plist *pl); -struct pl_entry *pkg_plist_file_list_next(struct pkg_plist *pl); +void pkg_plist_pkg_file_list_reset(struct pkg_plist *pl); +struct pkg_file *pkg_plist_pkg_file_list_next(struct pkg_plist *pl); char *pkg_plist_name(struct pkg_plist *pl); char *pkg_plist_cwd(struct pkg_plist *pl); char *pkg_plist_orgin(struct pkg_plist *pl); -char *pl_entry_info(struct pl_entry *ent); +char *pkg_file_path(struct pkg_file *pf); +char *pkg_file_md5(struct pkg_file *pf); + +void pkg_plist_pkg_file_list_init(struct pkg_plist *pl); +struct pkg_file *pkg_plist_pkg_file_list_first(struct pkg_plist *pl); +void pkg_plist_pkg_file_list_append(struct pkg_plist *pl, struct pkg_file +*pf); -void pkg_plist_plist_init(struct pkg_plist *pl); -struct pl_entry *pkg_plist_plist_first(struct pkg_plist *pl); -void pkg_plist_plist_append(struct pkg_plist *pl, struct pl_entry *ent); +void set_parse_state_default(struct parse_state *st); #endif ==== //depot/projects/soc2009/dforsyth_libpkg/libpkg/pkgdb.c#10 (text+ko) ==== @@ -208,6 +208,15 @@ return (p); } +struct pkg * +pkgdb_curr_pkg(struct pkgdb *db) +{ + if (db == NULL) + return (NULL); + + return (db->pkg_curr); +} + char * pkgdb_read_file_to_text(struct pkgdb *db, struct pkg *p, const char *filename) From owner-p4-projects@FreeBSD.ORG Mon Jun 8 04:22:12 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id A8C521065675; Mon, 8 Jun 2009 04:22:12 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 6855C106566C for ; Mon, 8 Jun 2009 04:22:12 +0000 (UTC) (envelope-from zjriggl@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 4ADAF8FC1A for ; Mon, 8 Jun 2009 04:22:12 +0000 (UTC) (envelope-from zjriggl@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n584MCjf056831 for ; Mon, 8 Jun 2009 04:22:12 GMT (envelope-from zjriggl@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n584MC2D056829 for perforce@freebsd.org; Mon, 8 Jun 2009 04:22:12 GMT (envelope-from zjriggl@FreeBSD.org) Date: Mon, 8 Jun 2009 04:22:12 GMT Message-Id: <200906080422.n584MC2D056829@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to zjriggl@FreeBSD.org using -f From: Zachariah Riggle To: Perforce Change Reviews Cc: Subject: PERFORCE change 163757 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 08 Jun 2009 04:22:13 -0000 http://perforce.freebsd.org/chv.cgi?CH=163757 Change 163757 by zjriggl@zjriggl_tcpregression on 2009/06/08 04:21:32 Done for the night, committing to save changes. Affected files ... .. //depot/projects/soc2009/zjriggl_tcpregression/src/tcpregression/echoServer.py#3 add .. //depot/projects/soc2009/zjriggl_tcpregression/src/tcpregression/loggable.py#3 add .. //depot/projects/soc2009/zjriggl_tcpregression/src/tcpregression/logging.conf#3 add .. //depot/projects/soc2009/zjriggl_tcpregression/src/tcpregression/pcsextension/StringField.py#1 add .. //depot/projects/soc2009/zjriggl_tcpregression/src/tcpregression/pcsextension/__init__.py#3 edit .. //depot/projects/soc2009/zjriggl_tcpregression/src/tcpregression/pcsextension/backup.tar#1 add .. //depot/projects/soc2009/zjriggl_tcpregression/src/tcpregression/pcsextension/decorators.py#1 add .. //depot/projects/soc2009/zjriggl_tcpregression/src/tcpregression/pcsextension/hwAddress.py#1 add .. //depot/projects/soc2009/zjriggl_tcpregression/src/tcpregression/pcsextension/ipAddress.py#1 add .. //depot/projects/soc2009/zjriggl_tcpregression/src/tcpregression/pcsextension/networkPort.py#1 add .. //depot/projects/soc2009/zjriggl_tcpregression/src/tcpregression/pcsextension/payload.py#1 add .. //depot/projects/soc2009/zjriggl_tcpregression/src/tcpregression/pcsextension/pseudoipv4.py#1 add .. //depot/projects/soc2009/zjriggl_tcpregression/src/tcpregression/sniffLocalhost.py#3 add .. //depot/projects/soc2009/zjriggl_tcpregression/src/tcpregression/tcpConstructor.py#3 add .. //depot/projects/soc2009/zjriggl_tcpregression/src/tcpregression/tcpFilter.py#3 add .. //depot/projects/soc2009/zjriggl_tcpregression/src/tcpregression/tcpHandshake.py#3 add .. //depot/projects/soc2009/zjriggl_tcpregression/src/tcpregression/tcpstatemachine.py#2 edit .. //depot/projects/soc2009/zjriggl_tcpregression/src/tcpregression/test.html#3 add .. //depot/projects/soc2009/zjriggl_tcpregression/src/tcpregression/testconfig.py#3 add Differences ... ==== //depot/projects/soc2009/zjriggl_tcpregression/src/tcpregression/pcsextension/__init__.py#3 (text+ko) ==== @@ -47,6 +47,31 @@ def inet_atol(ipString): return inet_ntol(socket.inet_aton(ipString)) -def tcpv4Checksum(t): - if not isinstance(t, tcp): - return 0+def getPcsFormattedIP(ipAddr): + if type(ipAddr) == str: + # The byte representation's length will be 4 bytes + if len(ipAddr) == 4: + return inet_ntol(ipAddr) + + # Otherwise, the length is between len("0.0.0.0") and len("255.255.255.255") (lengths are 7 and 15) + elif 7 <= len(ipAddr) and len(ipAddr) <= 15: + return inet_atol(ipAddr) + + elif type(ipAddr) == int: + return ipAddr + + logging.warn("Could not properly identify IP address type for: %s" % str(ipAddr)) + return 0 + +def getPcsFormattedPort(port): + if type(port) == str: + if port.isdigit(): + return htons(int(port)) + else: + return struct.unpack("!i",'A\x00\x00\x00')[0] + + if type(port) == int: + return port + + logging.warn("Could not properly identify port type for: %s" % str(ipAddr)) + return 0 ==== //depot/projects/soc2009/zjriggl_tcpregression/src/tcpregression/tcpstatemachine.py#2 (text+ko) ==== @@ -11,11 +11,16 @@ from pcsextension.pseudoipv4 import pseudoipv4, ipv4_cksum from socket import IPPROTO_TCP from tcpstates import * +from tcpFilter import tcpFilter import binhex import pcs +from pcs.packets import tcp +from pcs.packets import ipv4 +from pcs.packets import ethernet import testconfig import binascii + # Valid state transitions, as defined by the diagram on RFC 793 pp. 23: # September 1981 # Transmission Control Protocol @@ -103,6 +108,8 @@ 3 ''' + _connector = None + def generateInitialSequence(self): return 0 @@ -215,6 +222,13 @@ 'assigned.'} def enableSequenceGeneration(self, enable=True): + validateTypes({enable:bool}) + action = "Enabled" + if enable == False: + action = "Disabled" + + self.log.validate("%s generation of TCP sequence numbers" % action) + self._sequenceGeneration = enable def isSequenceGenerationEnabled(self): @@ -385,7 +399,44 @@ # Add the packet to the outgoing queue. self.packetsToSend += [tcpLayer] self._sendPackets() - + + def sendRawTcp(self, tcpLayer): + if not validateTypes({tcpLayer:tcp.tcp}): + return + + ip = ipv4.ipv4() + ethernet = ethernet.ethernet() + ip.data = tcpLayer + ethernet.data = ip + + ethernet.src = + + ip.src = self.localIP.getNetworkInteger() + ip.dst = self.remoteIP.getNetworkInteger() + + + + + +# version = pcs.Field("version", 4, default = 4) +# hlen = pcs.Field("hlen", 4) +# tos = pcs.Field("tos", 8) +# length = pcs.Field("length", 16) +# id = pcs.Field("id", 16) +# flags = pcs.Field("flags", 3) +# offset = pcs.Field("offset", 13) +# ttl = pcs.Field("ttl", 8, default = 64) +# protocol = pcs.Field("protocol", 8) +# checksum = pcs.Field("checksum", 16) +# src = pcs.Field("src", 32) +# dst = pcs.Field("dst", 32) + + + + self._connector.write(packet, byets) + + pass + def _sendPackets(self): for tcpLayer in self.packetsToSend: send = False @@ -409,8 +460,7 @@ tcpLayer.cksum = self.generateChecksum(tcpLayer) self.sendRawTcp(tcpLayer) - - pass + def generateChecksum(self, packet): """Calculate and store the checksum for the TCP segment @@ -418,7 +468,7 @@ bytes = packet.chain().bytes pip = pseudoipv4() - pip.src = self.localIP + pip.src = (I self.localIP pip.dst = self.remoteIP pip.protocol = IPPROTO_TCP pip.length = len(bytes) @@ -519,7 +569,7 @@ self.rcv_nxt = self.irs # Expected next recv sequence # self.msl = 2 * 60 # Maximum Segment Lifetime. Arbitrarily defined in the RFC to 2 minutes - self.timeout = 2*msl # Timeout + self.timeout = 2*self.msl # Timeout # Set the initial values self.state = CLOSED @@ -532,4 +582,4 @@ self.packetsRecvdAcked = [] self.packetsToSend = [] - + self._connector = tcpFilter(testconfig.interface) From owner-p4-projects@FreeBSD.ORG Mon Jun 8 04:39:31 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 8A2F81065670; Mon, 8 Jun 2009 04:39:30 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 4A488106566B for ; Mon, 8 Jun 2009 04:39:30 +0000 (UTC) (envelope-from dforsyth@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 1DA068FC08 for ; Mon, 8 Jun 2009 04:39:30 +0000 (UTC) (envelope-from dforsyth@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n584dUKC058079 for ; Mon, 8 Jun 2009 04:39:30 GMT (envelope-from dforsyth@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n584dTrY058077 for perforce@freebsd.org; Mon, 8 Jun 2009 04:39:29 GMT (envelope-from dforsyth@FreeBSD.org) Date: Mon, 8 Jun 2009 04:39:29 GMT Message-Id: <200906080439.n584dTrY058077@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to dforsyth@FreeBSD.org using -f From: David Forsythe To: Perforce Change Reviews Cc: Subject: PERFORCE change 163758 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 08 Jun 2009 04:39:31 -0000 http://perforce.freebsd.org/chv.cgi?CH=163758 Change 163758 by dforsyth@squirrel on 2009/06/08 04:38:46 Don't die when a package database contains non-directories. Affected files ... .. //depot/projects/soc2009/dforsyth_libpkg/libpkg/pkgdb.c#11 edit Differences ... ==== //depot/projects/soc2009/dforsyth_libpkg/libpkg/pkgdb.c#11 (text+ko) ==== @@ -91,9 +91,12 @@ for (i = 0; i < pkg_count; ++i) { p = pkgdb_read_pkg_hierdb(db, ents[i]->d_name); if (p == NULL) { + /* pkgdb_free_pkg_list(db); free(ents); return (-1); + */ + continue; } pkgdb_pkg_list_append(db, p); free(ents[i]); From owner-p4-projects@FreeBSD.ORG Mon Jun 8 05:28:20 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 8C5451065672; Mon, 8 Jun 2009 05:28:20 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 4C7AE106564A for ; Mon, 8 Jun 2009 05:28:20 +0000 (UTC) (envelope-from dforsyth@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 39DB28FC14 for ; Mon, 8 Jun 2009 05:28:20 +0000 (UTC) (envelope-from dforsyth@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n585SJZg072966 for ; Mon, 8 Jun 2009 05:28:19 GMT (envelope-from dforsyth@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n585SJMe072964 for perforce@freebsd.org; Mon, 8 Jun 2009 05:28:19 GMT (envelope-from dforsyth@FreeBSD.org) Date: Mon, 8 Jun 2009 05:28:19 GMT Message-Id: <200906080528.n585SJMe072964@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to dforsyth@FreeBSD.org using -f From: David Forsythe To: Perforce Change Reviews Cc: Subject: PERFORCE change 163762 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 08 Jun 2009 05:28:21 -0000 http://perforce.freebsd.org/chv.cgi?CH=163762 Change 163762 by dforsyth@squirrel on 2009/06/08 05:27:51 Base PKGNAME on a packages path, rather than the name in its plist. Affected files ... .. //depot/projects/soc2009/dforsyth_libpkg/pkg_info/main.c#5 edit Differences ... ==== //depot/projects/soc2009/dforsyth_libpkg/pkg_info/main.c#5 (text+ko) ==== @@ -105,7 +105,8 @@ /* Just print the basic PKGNAME COMMENT scheme right now. Other * information isn't collected by the library yet. */ if (!opt_show_all_info) - printf("%s %s\n", pkg_name(p), pkg_comment(p)); + /* Use pkg_ident because old pkg_info goes by directory name. */ + printf("%s %s\n", pkg_ident(p), pkg_comment(p)); else { /* Testing plist interaction. */ printf("%s:\n", pkg_name(p)); From owner-p4-projects@FreeBSD.ORG Mon Jun 8 08:26:22 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id E39F1106566B; Mon, 8 Jun 2009 08:26:21 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 93B19106574B for ; Mon, 8 Jun 2009 08:26:21 +0000 (UTC) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id AA4ED8FC08 for ; Mon, 8 Jun 2009 08:26:20 +0000 (UTC) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n588QK5O090125 for ; Mon, 8 Jun 2009 08:26:20 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n588QKhk090123 for perforce@freebsd.org; Mon, 8 Jun 2009 08:26:20 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Date: Mon, 8 Jun 2009 08:26:20 GMT Message-Id: <200906080826.n588QKhk090123@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to bb+lists.freebsd.perforce@cyrus.watson.org using -f From: Robert Watson To: Perforce Change Reviews Cc: Subject: PERFORCE change 163767 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 08 Jun 2009 08:26:24 -0000 http://perforce.freebsd.org/chv.cgi?CH=163767 Change 163767 by rwatson@rwatson_freebsd_capabilities on 2009/06/08 08:25:22 Add omitted copyright/license. Affected files ... .. //depot/projects/trustedbsd/capabilities/src/tools/cap/cap_exec/cap_exec.c#3 edit Differences ... ==== //depot/projects/trustedbsd/capabilities/src/tools/cap/cap_exec/cap_exec.c#3 (text+ko) ==== @@ -1,3 +1,39 @@ +/*- + * Copyright (c) 2008-2009 Robert N. M. Watson + * All rights reserved. + * + * WARNING: THIS IS EXPERIMENTAL SECURITY SOFTWARE THAT MUST NOT BE RELIED + * ON IN PRODUCTION SYSTEMS. IT WILL BREAK YOUR SOFTWARE IN NEW AND + * UNEXPECTED WAYS. + * + * This software was developed at the University of Cambridge Computer + * Laboratory with support from a grant from Google, Inc. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 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. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * 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. + */ + +#include +__FBSDID("$FreeBSD$"); + #include #include #include From owner-p4-projects@FreeBSD.ORG Mon Jun 8 08:27:22 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 453611065686; Mon, 8 Jun 2009 08:27:22 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id E72FF10656A8 for ; Mon, 8 Jun 2009 08:27:21 +0000 (UTC) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id D2EAF8FC1D for ; Mon, 8 Jun 2009 08:27:21 +0000 (UTC) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n588RLO5090193 for ; Mon, 8 Jun 2009 08:27:21 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n588RLEa090191 for perforce@freebsd.org; Mon, 8 Jun 2009 08:27:21 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Date: Mon, 8 Jun 2009 08:27:21 GMT Message-Id: <200906080827.n588RLEa090191@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to bb+lists.freebsd.perforce@cyrus.watson.org using -f From: Robert Watson To: Perforce Change Reviews Cc: Subject: PERFORCE change 163768 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 08 Jun 2009 08:27:24 -0000 http://perforce.freebsd.org/chv.cgi?CH=163768 Change 163768 by rwatson@rwatson_freebsd_capabilities on 2009/06/08 08:26:29 Do push executing process into a sandbox before fexecve(2). Affected files ... .. //depot/projects/trustedbsd/capabilities/src/tools/cap/cap_exec/cap_exec.c#4 edit Differences ... ==== //depot/projects/trustedbsd/capabilities/src/tools/cap/cap_exec/cap_exec.c#4 (text+ko) ==== @@ -124,10 +124,8 @@ * Global namespaces no longer required, enter capability * mode. */ -#if 0 if (cap_enter() < 0) err(-1, "cap_enter"); -#endif /* * Set up stdin, stdout, and stderr by wrapping the existing From owner-p4-projects@FreeBSD.ORG Mon Jun 8 08:58:54 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 8D2AE1065674; Mon, 8 Jun 2009 08:58:54 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 4D7841065672 for ; Mon, 8 Jun 2009 08:58:54 +0000 (UTC) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 399138FC13 for ; Mon, 8 Jun 2009 08:58:54 +0000 (UTC) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n588wsJB002571 for ; Mon, 8 Jun 2009 08:58:54 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n588wst2002569 for perforce@freebsd.org; Mon, 8 Jun 2009 08:58:54 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Date: Mon, 8 Jun 2009 08:58:54 GMT Message-Id: <200906080858.n588wst2002569@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to bb+lists.freebsd.perforce@cyrus.watson.org using -f From: Robert Watson To: Perforce Change Reviews Cc: Subject: PERFORCE change 163769 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 08 Jun 2009 08:58:55 -0000 http://perforce.freebsd.org/chv.cgi?CH=163769 Change 163769 by rwatson@rwatson_freebsd_capabilities on 2009/06/08 08:58:00 Clean up cap_exec by adding various utility functions, etc. Affected files ... .. //depot/projects/trustedbsd/capabilities/src/tools/cap/cap_exec/cap_exec.c#5 edit Differences ... ==== //depot/projects/trustedbsd/capabilities/src/tools/cap/cap_exec/cap_exec.c#5 (text+ko) ==== @@ -65,16 +65,39 @@ #define BIN_CAPS (CAP_SEEK | CAP_FSTAT | CAP_FSTATFS | CAP_READ | \ CAP_FEXECVE | CAP_MMAP | CAP_MAPEXEC) +static void +cap_limitfd(int fd, cap_rights_t rights) +{ + int fd_new; + + fd_new = cap_new(fd, rights); + if (fd_new < 0) + err(-1, "cap_new"); + if (fd_new != fd) { + if (dup2(fd_new, fd) < 0) + err(-1, "dup2"); + close(fd_new); + } +} + +static int +cap_open_limit(const char *path, int flags, cap_rights_t rights) +{ + int fd; + + fd = open(path, flags); + if (fd < 0) + err(-1, "open: %s", path); + cap_limitfd(fd, rights); + return (fd); +} + int main(int argc, char *argv[]) { - int fd_exec, fd_libc, fd_new; - int fd_stdin, fd_stdout, fd_stderr, fd_procdesc; + int fd_exec, fd_ldso, fd_libc, fd_procdesc; char *env_caplibindex; struct pollfd pollfd; -#ifdef LDSO_MODE - int fd_ldso; -#endif pid_t pid; if (argc < 2) @@ -85,104 +108,44 @@ err(-1, "pdfork"); if (pid == 0) { /* - * Open files by name before entering capability mode. Flag - * for close when fexecve(2) runs. - */ - fd_exec = open(argv[1], O_RDONLY); - if (fd_exec < 0) - err(-1, "open: %s", argv[1]); -#ifdef LDSO_MODE - if (fd_exec != 3) - errx(-1, "fd_exec not fd 3"); - fd_ldso = open(LD_ELF_CAP_SO, O_RDONLY); - if (fd_ldso < 0) - err(-1, "open: %s", LD_ELF_CAP_SO); - fd_new = cap_new(fd_ldso, BIN_CAPS); - if (fd_new < 0) - err(-1, "cap_new"); - if (dup2(fd_new, fd_ldso) < 0) - err(-1, "dup2"); - close(fd_new); - if (fcntl(fd_ldso, F_SETFD, FD_CLOEXEC) < 0) - err(-1, "fcntl FD_CLOEXEC"); - - fd_libc = open(LIBPATH LIBC_SO, O_RDONLY); - if (fd_libc < 0) - err(-1, "open: %s", LIBPATH LIBC_SO); - fd_new = cap_new(fd_libc, BIN_CAPS); - if (fd_new < 0) - err(-1, "cap_new"); - if (dup2(fd_new, fd_libc) < 0) - err(-1, "dup2"); - close(fd_new); -#else - if (fcntl(fd_exec, F_SETFD, FD_CLOEXEC) < 0) - err(-1, "fcntl FD_CLOEXEC"); -#endif - - /* - * Global namespaces no longer required, enter capability - * mode. - */ - if (cap_enter() < 0) - err(-1, "cap_enter"); - - /* * Set up stdin, stdout, and stderr by wrapping the existing * file descriptors in constrained capabilities. */ - fd_stdin = cap_new(STDIN_FILENO, STDIN_CAPS); - if (fd_stdin < 0) - err(-1, "cap_new"); - if (dup2(fd_stdin, STDIN_FILENO) < 0) - err(-1, "dup2"); - close(fd_stdin); - - fd_stdout = cap_new(STDOUT_FILENO, STDOUT_CAPS); - if (fd_stdout < 0) - err(-1, "cap_new"); - if (dup2(fd_stdout, STDOUT_FILENO) < 0) - err(-1, "dup2"); - close(fd_stdout); - - fd_stderr = cap_new(STDERR_FILENO, STDERR_CAPS); - if (fd_stderr < 0) - err(-1, "cap_new"); - if (dup2(fd_stderr, STDERR_FILENO) < 0) - err(-1, "dup2"); - close(fd_stderr); + cap_limitfd(STDIN_FILENO, STDIN_CAPS); + cap_limitfd(STDOUT_FILENO, STDOUT_CAPS); + cap_limitfd(STDERR_FILENO, STDERR_CAPS); /* - * Set up environmental variable so that the runtime linker - * can access libc in a sandbox. + * Open and configure the binary, ELF interpreter, and libc. + * The rtld-elf-cap runtime requires the binary to be passed + * as fd 3, so verify that's what we got. */ -#ifdef LDSO_MODE + fd_exec = cap_open_limit(argv[1], O_RDONLY, BIN_CAPS); + if (fd_exec != 3) + err(-1, "cap_open_limit(%s) returned fd %d", argv[1], + fd_exec); + fd_ldso = cap_open_limit(LD_ELF_CAP_SO, O_RDONLY, BIN_CAPS); + if (fcntl(fd_ldso, F_SETFD, FD_CLOEXEC) < 0) + err(-1, "fcntl FD_CLOEXEC"); + fd_libc = cap_open_limit(LIBPATH LIBC_SO, O_RDONLY, BIN_CAPS); if (asprintf(&env_caplibindex, "%d:%s", fd_libc, LIBC_SO) == -1) err(-1, "asprintf"); - printf("caplibindex: %s\n", env_caplibindex); setenv("LD_CAPLIBINDEX", env_caplibindex, 1); -#endif /* - * Perhaps a closeall() or something to clear any remaining - * file descriptors here? + * Global namespaces no longer required, enter capability + * mode. */ + if (cap_enter() < 0) + err(-1, "cap_enter"); /* * Scrub the remainder of process state by calling fexecve(2) * the desired binary. */ -#ifdef LDSO_MODE if (fexecve(fd_ldso, argv + 1, environ) < 0) -#if 0 - if (fexecve(fd_ldso, ldso_argv, environ) < 0) -#endif err(-1, "%s", LD_ELF_CAP_SO); -#else - if (fexecve(fd_exec, argv + 1, environ) < 0) - err(-1, "%s", argv[1]); -#endif /* NOTREACHED */ } From owner-p4-projects@FreeBSD.ORG Mon Jun 8 09:18:14 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 8CC121065673; Mon, 8 Jun 2009 09:18:14 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 4CB22106566B for ; Mon, 8 Jun 2009 09:18:14 +0000 (UTC) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 1F64D8FC0A for ; Mon, 8 Jun 2009 09:18:14 +0000 (UTC) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n589IEiC004955 for ; Mon, 8 Jun 2009 09:18:14 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n589IDSn004953 for perforce@freebsd.org; Mon, 8 Jun 2009 09:18:13 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Date: Mon, 8 Jun 2009 09:18:13 GMT Message-Id: <200906080918.n589IDSn004953@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to bb+lists.freebsd.perforce@cyrus.watson.org using -f From: Robert Watson To: Perforce Change Reviews Cc: Subject: PERFORCE change 163770 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 08 Jun 2009 09:18:15 -0000 http://perforce.freebsd.org/chv.cgi?CH=163770 Change 163770 by rwatson@rwatson_freebsd_capabilities on 2009/06/08 09:17:47 Add a few more utility libraries necessary to run common binaries for experimentation purposes. Finish expunging LDSO_MODE, we always use rtld-elf-cap.so now. Affected files ... .. //depot/projects/trustedbsd/capabilities/src/tools/cap/cap_exec/Makefile#2 edit .. //depot/projects/trustedbsd/capabilities/src/tools/cap/cap_exec/cap_exec.c#6 edit Differences ... ==== //depot/projects/trustedbsd/capabilities/src/tools/cap/cap_exec/Makefile#2 (text+ko) ==== @@ -1,5 +1,5 @@ PROG=cap_exec NO_MAN= -CFLAGS=-Wall -g -DLDSO_MODE +CFLAGS=-Wall -g .include ==== //depot/projects/trustedbsd/capabilities/src/tools/cap/cap_exec/cap_exec.c#6 (text+ko) ==== @@ -47,7 +47,6 @@ extern char **environ; -#ifdef LDSO_MODE #define LD_ELF_CAP_SO "/libexec/ld-elf-cap.so.1" char *ldso_argv[] = { LD_ELF_CAP_SO, @@ -55,8 +54,11 @@ }; #define LIBC_SO "libc.so.7" +#define LIBEDIT_SO "libedit.so.6" +#define LIBNCURSES_SO "libncurses.so.7" +#define LIBCRYPT_SO "libcrypt.so.4" + #define LIBPATH "/lib/" -#endif #define BASE_CAPS (CAP_IOCTL | CAP_EVENT | CAP_SEEK | CAP_FSTAT) #define STDIN_CAPS (BASE_CAPS | CAP_READ) @@ -95,7 +97,8 @@ int main(int argc, char *argv[]) { - int fd_exec, fd_ldso, fd_libc, fd_procdesc; + int fd_exec, fd_ldso, fd_procdesc; + int fd_libc, fd_libcrypt, fd_libedit, fd_libncurses; char *env_caplibindex; struct pollfd pollfd; pid_t pid; @@ -128,8 +131,19 @@ if (fcntl(fd_ldso, F_SETFD, FD_CLOEXEC) < 0) err(-1, "fcntl FD_CLOEXEC"); fd_libc = cap_open_limit(LIBPATH LIBC_SO, O_RDONLY, BIN_CAPS); - if (asprintf(&env_caplibindex, "%d:%s", fd_libc, LIBC_SO) == - -1) + fd_libcrypt = cap_open_limit(LIBPATH LIBCRYPT_SO, + O_RDONLY, BIN_CAPS); + fd_libedit = cap_open_limit(LIBPATH LIBEDIT_SO, O_RDONLY, + BIN_CAPS); + fd_libncurses = cap_open_limit(LIBPATH LIBNCURSES_SO, + O_RDONLY, BIN_CAPS); + + if (asprintf(&env_caplibindex, "%d:%s,%d:%s,%d:%s,%d:%s", + fd_libc, LIBC_SO, + fd_libcrypt, LIBCRYPT_SO, + fd_libedit, LIBEDIT_SO, + fd_libncurses, LIBNCURSES_SO + ) == -1) err(-1, "asprintf"); setenv("LD_CAPLIBINDEX", env_caplibindex, 1); From owner-p4-projects@FreeBSD.ORG Mon Jun 8 10:29:27 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 54EE71065679; Mon, 8 Jun 2009 10:29:27 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 0DBF1106564A for ; Mon, 8 Jun 2009 10:29:27 +0000 (UTC) (envelope-from mav@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 980068FC18 for ; Mon, 8 Jun 2009 10:29:26 +0000 (UTC) (envelope-from mav@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n58ATQok011478 for ; Mon, 8 Jun 2009 10:29:26 GMT (envelope-from mav@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n58ATQ6w011476 for perforce@freebsd.org; Mon, 8 Jun 2009 10:29:26 GMT (envelope-from mav@freebsd.org) Date: Mon, 8 Jun 2009 10:29:26 GMT Message-Id: <200906081029.n58ATQ6w011476@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to mav@freebsd.org using -f From: Alexander Motin To: Perforce Change Reviews Cc: Subject: PERFORCE change 163771 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 08 Jun 2009 10:29:28 -0000 http://perforce.freebsd.org/chv.cgi?CH=163771 Change 163771 by mav@mav_mavbook on 2009/06/08 10:29:12 Add multi-vector MSI mode support.. Affected files ... .. //depot/projects/scottl-camlock/src/sys/dev/ahci/ahci.c#19 edit .. //depot/projects/scottl-camlock/src/sys/dev/ahci/ahci.h#7 edit Differences ... ==== //depot/projects/scottl-camlock/src/sys/dev/ahci/ahci.c#19 (text+ko) ==== @@ -57,6 +57,7 @@ /* local prototypes */ static int ahci_setup_interrupt(device_t dev); static void ahci_intr(void *data); +static void ahci_intr_one(void *data); static int ahci_suspend(device_t dev); static int ahci_resume(device_t dev); static int ahci_ch_suspend(device_t dev); @@ -138,12 +139,6 @@ return (error); } - if (ahci_setup_interrupt(dev)) { - bus_release_resource(dev, SYS_RES_MEMORY, ctlr->r_rid, ctlr->r_mem); - rman_fini(&ctlr->sc_iomem); - return ENXIO; - } - /* reset controller */ if ((error = ahci_ctlr_reset(dev)) != 0) { bus_release_resource(dev, SYS_RES_MEMORY, ctlr->r_rid, ctlr->r_mem); @@ -156,6 +151,12 @@ ctlr->channels = MAX(flsl(ctlr->ichannels), (ATA_INL(ctlr->r_mem, AHCI_CAP) & AHCI_CAP_NPMASK) + 1); + if (ahci_setup_interrupt(dev)) { + bus_release_resource(dev, SYS_RES_MEMORY, ctlr->r_rid, ctlr->r_mem); + rman_fini(&ctlr->sc_iomem); + return ENXIO; + } + /* announce we support the HW */ version = ATA_INL(ctlr->r_mem, AHCI_VS); caps = ATA_INL(ctlr->r_mem, AHCI_CAP); @@ -223,12 +224,15 @@ free(children, M_TEMP); } - if (ctlr->r_irq) { - bus_teardown_intr(dev, ctlr->r_irq, ctlr->handle); - bus_release_resource(dev, SYS_RES_IRQ, ctlr->r_irq_rid, ctlr->r_irq); - if (ctlr->r_irq_rid != ATA_IRQ_RID) - pci_release_msi(dev); + for (i = 0; i < ctlr->numirqs; i++) { + if (ctlr->irqs[i].r_irq) { + bus_teardown_intr(dev, ctlr->irqs[i].r_irq, + ctlr->irqs[i].handle); + bus_release_resource(dev, SYS_RES_IRQ, + ctlr->irqs[i].r_irq_rid, ctlr->irqs[i].r_irq); + } } + pci_release_msi(dev); rman_fini(&ctlr->sc_iomem); if (ctlr->r_mem) @@ -303,23 +307,44 @@ int i, msi = 0; if (resource_int_value(device_get_name(dev), - device_get_unit(dev), "msi", &i) == 0 && i != 0) - msi = 1; - if (msi && pci_msi_count(dev) > 0 && pci_alloc_msi(dev, &msi) == 0) { - ctlr->r_irq_rid = 0x1; + device_get_unit(dev), "msi", &i) == 0) { + if (i == 1) + msi = min(1, pci_msi_count(dev)); + else if (i > 1) + msi = pci_msi_count(dev); + } + if (msi && pci_alloc_msi(dev, &msi) == 0) { + ctlr->numirqs = msi; } else { - ctlr->r_irq_rid = ATA_IRQ_RID; + msi = 0; + ctlr->numirqs = 1; } - if (!(ctlr->r_irq = bus_alloc_resource_any(dev, SYS_RES_IRQ, - &ctlr->r_irq_rid, RF_SHAREABLE | RF_ACTIVE))) { - device_printf(dev, "unable to map interrupt\n"); - return ENXIO; + if (ctlr->numirqs > 1 && + (ATA_INL(ctlr->r_mem, AHCI_GHC) & AHCI_GHC_MRSM) != 0) { + device_printf(dev, "Falling back to one MSI\n"); + ctlr->numirqs = 1; } - if ((bus_setup_intr(dev, ctlr->r_irq, ATA_INTR_FLAGS, NULL, - ahci_intr, ctlr, &ctlr->handle))) { - /* SOS XXX release r_irq */ - device_printf(dev, "unable to setup interrupt\n"); - return ENXIO; + for (i = 0; i < ctlr->numirqs; i++) { + ctlr->irqs[i].ctlr = ctlr; + ctlr->irqs[i].r_irq_rid = i + (msi ? 1 : 0); + if (ctlr->numirqs == 1 || i >= ctlr->channels) + ctlr->irqs[i].mode = AHCI_IRQ_MODE_ALL; + else if (i == ctlr->numirqs - 1) + ctlr->irqs[i].mode = AHCI_IRQ_MODE_AFTER; + else + ctlr->irqs[i].mode = AHCI_IRQ_MODE_ONE; + if (!(ctlr->irqs[i].r_irq = bus_alloc_resource_any(dev, SYS_RES_IRQ, + &ctlr->irqs[i].r_irq_rid, RF_SHAREABLE | RF_ACTIVE))) { + device_printf(dev, "unable to map interrupt\n"); + return ENXIO; + } + if ((bus_setup_intr(dev, ctlr->irqs[i].r_irq, ATA_INTR_FLAGS, NULL, + (ctlr->irqs[i].mode == AHCI_IRQ_MODE_ONE) ? ahci_intr_one : ahci_intr, + &ctlr->irqs[i], &ctlr->irqs[i].handle))) { + /* SOS XXX release r_irq */ + device_printf(dev, "unable to setup interrupt\n"); + return ENXIO; + } } return (0); } @@ -327,19 +352,41 @@ static void ahci_intr(void *data) { - struct ahci_controller *ctlr = data; - u_int32_t is = ATA_INL(ctlr->r_mem, AHCI_IS); - void *arg; - int unit; + struct ahci_controller_irq *irq = data; + struct ahci_controller *ctlr = irq->ctlr; + u_int32_t is; + void *arg; + int unit; -//device_printf(ctlr->dev, "%s is %08x\n", __func__, is); - for (unit = 0; unit < ctlr->channels; unit++) { - if ((is & (1 << unit)) != 0 && - (arg = ctlr->interrupt[unit].argument)) { - ctlr->interrupt[unit].function(arg); - ATA_OUTL(ctlr->r_mem, AHCI_IS, 1 << unit); + is = ATA_INL(ctlr->r_mem, AHCI_IS); +//device_printf(ctlr->dev, "%s is %08x inum %d\n", __func__, is, irq->r_irq_rid); + if (irq->mode == AHCI_IRQ_MODE_ALL) + unit = 0; + else /* AHCI_IRQ_MODE_AFTER */ + unit = irq->r_irq_rid - 1; + for (; unit < ctlr->channels; unit++) { + if ((is & (1 << unit)) != 0 && + (arg = ctlr->interrupt[unit].argument)) { + ctlr->interrupt[unit].function(arg); + ATA_OUTL(ctlr->r_mem, AHCI_IS, 1 << unit); + } } - } +} + +static void +ahci_intr_one(void *data) +{ + struct ahci_controller_irq *irq = data; + struct ahci_controller *ctlr = irq->ctlr; +// u_int32_t is; + void *arg; + int unit; + + unit = irq->r_irq_rid - 1; +// is = ATA_INL(ctlr->r_mem, AHCI_IS); +//device_printf(ctlr->dev, "%s is %08x one %d\n", __func__, is, irq->r_irq_rid); + if ((arg = ctlr->interrupt[unit].argument)) + ctlr->interrupt[unit].function(arg); } static struct resource * @@ -369,7 +416,7 @@ break; case SYS_RES_IRQ: if (*rid == ATA_IRQ_RID) - res = ctlr->r_irq; + res = ctlr->irqs[0].r_irq; break; } return (res); @@ -807,15 +854,14 @@ int i, ccs; mtx_lock(&ch->mtx); - /* Read interrupt and command statuses. */ + /* Read and clear interrupt statuses. */ istatus = ATA_INL(ch->r_mem, AHCI_P_IS); + ATA_OUTL(ch->r_mem, AHCI_P_IS, istatus); + /* Read command statuses. */ cstatus = ATA_INL(ch->r_mem, AHCI_P_CI); sstatus = ATA_INL(ch->r_mem, AHCI_P_SACT); //device_printf(dev, "%s is %08x cs %08x ss %08x rslots %08x\n", __func__, istatus, cstatus, sstatus, ch->rslots); - /* Clear interrupt(s) */ - ATA_OUTL(ch->r_mem, AHCI_P_IS, istatus); - /* Process PHY events */ if (istatus & (AHCI_P_IX_PRC | AHCI_P_IX_PC)) ahci_phy_check_events(dev); ==== //depot/projects/scottl-camlock/src/sys/dev/ahci/ahci.h#7 (text+ko) ==== @@ -168,6 +168,7 @@ #define AHCI_GHC 0x04 #define AHCI_GHC_AE 0x80000000 +#define AHCI_GHC_MRSM 0x00000004 #define AHCI_GHC_IE 0x00000002 #define AHCI_GHC_HR 0x00000001 @@ -306,7 +307,6 @@ /* structure holding DMA related information */ struct ata_dma { - bus_dma_tag_t dmatag; /* parent DMA tag */ bus_dma_tag_t work_tag; /* workspace DMA tag */ bus_dmamap_t work_map; /* workspace DMA map */ u_int8_t *work; /* workspace */ @@ -383,18 +383,26 @@ /* structure describing a AHCI controller */ struct ahci_controller { - device_t dev; - int r_rid; - struct resource *r_mem; - int r_irq_rid; - struct resource *r_irq; - void *handle; + device_t dev; + int r_rid; + struct resource *r_mem; struct rman sc_iomem; - int channels; + struct ahci_controller_irq { + struct ahci_controller *ctlr; + struct resource *r_irq; + void *handle; + int r_irq_rid; + int mode; +#define AHCI_IRQ_MODE_ALL 0 +#define AHCI_IRQ_MODE_AFTER 1 +#define AHCI_IRQ_MODE_ONE 2 + } irqs[16]; + int numirqs; + int channels; int ichannels; struct { - void (*function)(void *); - void *argument; + void (*function)(void *); + void *argument; } interrupt[AHCI_MAX_PORTS]; }; From owner-p4-projects@FreeBSD.ORG Mon Jun 8 11:33:31 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id BB7FE1065670; Mon, 8 Jun 2009 11:33:31 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 793F8106566B for ; Mon, 8 Jun 2009 11:33:31 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 4DB758FC14 for ; Mon, 8 Jun 2009 11:33:31 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n58BXVSW017429 for ; Mon, 8 Jun 2009 11:33:31 GMT (envelope-from hselasky@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n58BXV1c017427 for perforce@freebsd.org; Mon, 8 Jun 2009 11:33:31 GMT (envelope-from hselasky@FreeBSD.org) Date: Mon, 8 Jun 2009 11:33:31 GMT Message-Id: <200906081133.n58BXV1c017427@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to hselasky@FreeBSD.org using -f From: Hans Petter Selasky To: Perforce Change Reviews Cc: Subject: PERFORCE change 163772 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 08 Jun 2009 11:33:32 -0000 http://perforce.freebsd.org/chv.cgi?CH=163772 Change 163772 by hselasky@hselasky_laptop001 on 2009/06/08 11:33:20 USB CORE: - bugfix from Tim Borgeaud Affected files ... .. //depot/projects/usb/src/sys/dev/usb/usb_compat_linux.c#41 edit Differences ... ==== //depot/projects/usb/src/sys/dev/usb/usb_compat_linux.c#41 (text+ko) ==== @@ -1143,7 +1143,7 @@ uhe++; } err = usb_setup_endpoint(dev, &dev->ep0, 0); - free(uhe, M_USBDEV); + free(dev->linux_endpoint_start, M_USBDEV); } /*------------------------------------------------------------------------* From owner-p4-projects@FreeBSD.ORG Mon Jun 8 11:41:40 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 526C7106567A; Mon, 8 Jun 2009 11:41:40 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 0D0511065673 for ; Mon, 8 Jun 2009 11:41:40 +0000 (UTC) (envelope-from fangwang@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id EF74A8FC20 for ; Mon, 8 Jun 2009 11:41:39 +0000 (UTC) (envelope-from fangwang@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n58BfdiA018072 for ; Mon, 8 Jun 2009 11:41:39 GMT (envelope-from fangwang@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n58BfdLv018070 for perforce@freebsd.org; Mon, 8 Jun 2009 11:41:39 GMT (envelope-from fangwang@FreeBSD.org) Date: Mon, 8 Jun 2009 11:41:39 GMT Message-Id: <200906081141.n58BfdLv018070@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to fangwang@FreeBSD.org using -f From: Fang Wang To: Perforce Change Reviews Cc: Subject: PERFORCE change 163774 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 08 Jun 2009 11:41:41 -0000 http://perforce.freebsd.org/chv.cgi?CH=163774 Change 163774 by fangwang@fangwang_utobsd on 2009/06/08 11:40:57 Fix style. Remove bitfields, use bit operations instead. Affected files ... .. //depot/projects/soc2009/tcputo/src/sys/netinet/tcp.h#4 edit .. //depot/projects/soc2009/tcputo/src/sys/netinet/tcp_input.c#3 edit .. //depot/projects/soc2009/tcputo/src/sys/netinet/tcp_output.c#5 edit .. //depot/projects/soc2009/tcputo/src/sys/netinet/tcp_subr.c#3 edit .. //depot/projects/soc2009/tcputo/src/sys/netinet/tcp_syncache.c#3 edit .. //depot/projects/soc2009/tcputo/src/sys/netinet/tcp_syncache.h#3 edit .. //depot/projects/soc2009/tcputo/src/sys/netinet/tcp_timer.h#3 edit .. //depot/projects/soc2009/tcputo/src/sys/netinet/tcp_var.h#8 edit Differences ... ==== //depot/projects/soc2009/tcputo/src/sys/netinet/tcp.h#4 (text+ko) ==== @@ -96,8 +96,8 @@ #define TCPOLEN_TSTAMP_APPA (TCPOLEN_TIMESTAMP+2) /* appendix A */ #define TCPOPT_SIGNATURE 19 /* Keyed MD5: RFC 2385 */ #define TCPOLEN_SIGNATURE 18 -#define TCPOPT_UTO 28 -#define TCPOLEN_UTO 4 +#define TCPOPT_UTO 28 +#define TCPOLEN_UTO 4 /* Miscellaneous constants */ #define MAX_SACK_BLKS 6 /* Max # SACK blocks stored at receiver side */ @@ -152,7 +152,7 @@ #define TCP_MD5SIG 0x10 /* use MD5 digests (RFC2385) */ #define TCP_INFO 0x20 /* retrieve tcp_info structure */ #define TCP_CONGESTION 0x40 /* get/set congestion control algorithm */ -#define TCP_UTO 0x80 /* set tcp user timeout */ +#define TCP_UTO 0x80 /* set tcp user timeout */ #define TCP_CA_NAME_MAX 16 /* max congestion control name length */ @@ -161,7 +161,7 @@ #define TCPI_OPT_WSCALE 0x04 #define TCPI_OPT_ECN 0x08 #define TCPI_OPT_TOE 0x10 -#define TCPI_OPT_UTO 0x20 +#define TCPI_OPT_UTO 0x20 /* * The TCP_INFO socket option comes from the Linux 2.6 TCP API, and permits ==== //depot/projects/soc2009/tcputo/src/sys/netinet/tcp_input.c#3 (text+ko) ==== @@ -1226,6 +1226,10 @@ if ((tp->t_flags & TF_SACK_PERMIT) && (to.to_flags & TOF_SACKPERM) == 0) tp->t_flags &= ~TF_SACK_PERMIT; + if (to.to_flags & TOF_UTO) { + tp->t_flags |= TF_RCVD_UTO; + tp->rcv_uto = to.to_uto; + } } /* @@ -2944,15 +2948,13 @@ TCPSTAT_INC(tcps_sack_rcv_blocks); break; case TCPOPT_UTO: - unsigned short uto_load; if (optlen != TCPOLEN_UTO) continue; to->to_flags |= TOF_UTO; bcopy((char *)cp + 2, - (char *)&uto_load, sizeof(uto_load)); - uto_load = ntohs(uto_load); - to->to_granularity = uto_load >> 15; - to->to_uto = uto_load - ((unsigned short)to->to_granularity << 15)); + (char *)&to->to_uto, sizeof(uto_load)); + to->to_uto = ntohs(to->to_uto); + break; default: continue; } ==== //depot/projects/soc2009/tcputo/src/sys/netinet/tcp_output.c#5 (text+ko) ==== @@ -1446,15 +1446,14 @@ } case TOF_UTO: { - unsigned short uto_load = (unsigned short)to->to_granularity << 15; - uto_load += to->to_uto; if (TCP_MAXOLEN - optlen < TCPOLEN_UTO) continue; *optp++ = TCPOPT_UTO; *optp++ = TCPOLEN_UTO; optlen += TCPOLEN_UTO; - bcopy((u_char *)&uto_load, optp, sizeof(uto_load)); - optp += sizeof(uto_load); + bcopy((u_char *)&to->to_uto, optp, sizeof(to->to_uto)); + optp += sizeof(to->to_uto); + break; } default: panic("%s: unknown TCP option type", __func__); ==== //depot/projects/soc2009/tcputo/src/sys/netinet/tcp_subr.c#3 (text+ko) ==== @@ -745,9 +745,7 @@ * but we make it available if a UTO request received or set it through * setsockopt system call. */ - tp->uto_impl = 0; - tp->uto_changeable = 1; - tp->uto_enable = 1; + tp->uto_flag = UTO_ENABLE | UTO_CHANGEABLE /* * IPv4 TTL initialization is necessary for an IPv6 socket as well, * because the socket may be bound to an IPv6 wildcard address, ==== //depot/projects/soc2009/tcputo/src/sys/netinet/tcp_syncache.c#3 (text+ko) ==== @@ -774,7 +774,6 @@ tp->t_flags |= TF_SACK_PERMIT; if (sc->sc_flags & SCF_UTO) { tp->t_flags |= TF_RCVD_UTO; - tp->rcv_uto_granularity = sc->sc_granularity; tp->rcv_uto = sc->sc_uto; } } @@ -1215,7 +1214,6 @@ if ((th->th_flags & (TH_ECE|TH_CWR)) && V_tcp_do_ecn) sc->sc_flags |= SCF_ECN; if (to->to_flags & TOF_UTO) { - sc->sc_granularity = to->to_granularity; sc->sc_uto = to->to_uto; sc->sc_flags |= SCF_UTO; } @@ -1387,7 +1385,6 @@ to.to_flags |= TOF_SIGNATURE; #endif if (sc->sc_flags & SCF_UTO) { - to.to_granularity = sc->sc_granularity; to.to_uto = sc->sc_uto; to.to_flags |= TOF_UTO; } ==== //depot/projects/soc2009/tcputo/src/sys/netinet/tcp_syncache.h#3 (text+ko) ==== @@ -69,8 +69,7 @@ u_int8_t sc_ip_tos; /* IPv4 TOS */ u_int8_t sc_requested_s_scale:4, sc_requested_r_scale:4; - u_int16_t sc_granularity:1, /* user timeout granularity */ - sc_uto:15; /* user timeout, UTO */ + u_int16_t sc_uto; /* user timeout */ u_int16_t sc_flags; #ifndef TCP_OFFLOAD_DISABLE struct toe_usrreqs *sc_tu; /* TOE operations */ @@ -93,7 +92,7 @@ #define SCF_SIGNATURE 0x20 /* send MD5 digests */ #define SCF_SACK 0x80 /* send SACK option */ #define SCF_ECN 0x100 /* send ECN setup packet */ -#define SCF_UTO 0x200 /* send UTO option */ +#define SCF_UTO 0x200 /* send UTO option */ #define SYNCOOKIE_SECRET_SIZE 8 /* dwords */ #define SYNCOOKIE_LIFETIME 16 /* seconds */ ==== //depot/projects/soc2009/tcputo/src/sys/netinet/tcp_timer.h#3 (text+ko) ==== @@ -91,8 +91,8 @@ #define TCPTV_FINWAIT2_TIMEOUT (60*hz) /* FIN_WAIT_2 timeout if no receiver */ -#define TCPTV_UTOMIN (120*hz) /* min user timeout */ -#define TCPTV_UTOMAX (720*hz) /* max user timeout */ +#define TCPTV_UTOMIN (120*hz) /* min user timeout */ +#define TCPTV_UTOMAX (720*hz) /* max user timeout */ /* * Minimum retransmit timer is 3 ticks, for algorithmic stability. ==== //depot/projects/soc2009/tcputo/src/sys/netinet/tcp_var.h#8 (text+ko) ==== @@ -192,13 +192,12 @@ int t_bytes_acked; /* # bytes acked during current RTT */ /* user timeout variables (RFC 5482) */ - u_int rcv_uto; /* received user timeout value, in seconds */ - u_int snd_uto; /* send user timeout value, in seconds */ - u_char rcv_uto_granularity:1; /* received user timeout granularity */ - u_char snd_uto_granularity:1; /* received user timeout granularity */ - u_char uto_enable:1; /* flag controls whether the UTO option is enabled */ - u_char uto_changeable:1; /* flag that controls whether USER_TIMEOUT may be changed based on rcv_uto */ - u_char uto_impl:1; /* flag that controls whether implement user timeout */ + uint16_t rcv_uto; /* received user timeout */ + uint16_t snd_uto; /* send user timeout */ + uint8_t uto_flag; +#define UTO_ENABLE 0x01 +#define UTO_CHANGEABLE 0x02 +#define UTO_IMPL 0x04 u_int t_impl_uto; /* implemented user timeout */ }; @@ -231,8 +230,8 @@ #define TF_ECN_PERMIT 0x4000000 /* connection ECN-ready */ #define TF_ECN_SND_CWR 0x8000000 /* ECN CWR in queue */ #define TF_ECN_SND_ECE 0x10000000 /* ECN ECE in queue */ -#define TF_RCVD_UTO 0x20000000 /* a user timeout was received */ -#define TF_NEEDUTO 0x40000000 /* send user timeout */ +#define TF_RCVD_UTO 0x20000000 /* a user timeout was received */ +#define TF_NEEDUTO 0x40000000 /* send user timeout */ #define IN_FASTRECOVERY(tp) (tp->t_flags & TF_FASTRECOVERY) #define ENTER_FASTRECOVERY(tp) tp->t_flags |= TF_FASTRECOVERY @@ -275,7 +274,7 @@ #define TOF_TS 0x0010 /* timestamp */ #define TOF_SIGNATURE 0x0040 /* TCP-MD5 signature option (RFC2385) */ #define TOF_SACK 0x0080 /* Peer sent SACK option */ -#define TOF_UTO 0x0100 /* user timeout (RFC5482) */ +#define TOF_UTO 0x0100 /* user timeout (RFC5482) */ #define TOF_MAXOPT 0x0200 u_int32_t to_tsval; /* new timestamp */ u_int32_t to_tsecr; /* reflected timestamp */ @@ -284,8 +283,7 @@ u_int8_t to_nsacks; /* number of SACK blocks */ u_char *to_sacks; /* pointer to the first SACK blocks */ u_char *to_signature; /* pointer to the TCP-MD5 signature */ - u_int16_t to_granularity:1,/* user timeout granularity */ - to_uto:15; /* user timeout */ + u_int16_t to_uto; /* user timeout */ }; /* From owner-p4-projects@FreeBSD.ORG Mon Jun 8 12:36:36 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 748B01065673; Mon, 8 Jun 2009 12:36:36 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 33F5F106564A for ; Mon, 8 Jun 2009 12:36:36 +0000 (UTC) (envelope-from trasz@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 210288FC17 for ; Mon, 8 Jun 2009 12:36:36 +0000 (UTC) (envelope-from trasz@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n58Caa06023511 for ; Mon, 8 Jun 2009 12:36:36 GMT (envelope-from trasz@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n58CaaUb023509 for perforce@freebsd.org; Mon, 8 Jun 2009 12:36:36 GMT (envelope-from trasz@freebsd.org) Date: Mon, 8 Jun 2009 12:36:36 GMT Message-Id: <200906081236.n58CaaUb023509@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to trasz@freebsd.org using -f From: Edward Tomasz Napierala To: Perforce Change Reviews Cc: Subject: PERFORCE change 163778 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 08 Jun 2009 12:36:37 -0000 http://perforce.freebsd.org/chv.cgi?CH=163778 Change 163778 by trasz@trasz_victim on 2009/06/08 12:36:08 Minor renaming. Affected files ... .. //depot/projects/soc2009/trasz_limits/sys/kern/kern_hrl.c#5 edit .. //depot/projects/soc2009/trasz_limits/sys/kern/kern_resource.c#4 edit .. //depot/projects/soc2009/trasz_limits/sys/sys/hrl.h#4 edit .. //depot/projects/soc2009/trasz_limits/usr.sbin/hrl/hrl.c#4 edit Differences ... ==== //depot/projects/soc2009/trasz_limits/sys/kern/kern_hrl.c#5 (text+ko) ==== @@ -45,7 +45,7 @@ #include struct hrl_node { - struct hrl_limit hn_limit; + struct hrl_rule hn_rule; RB_ENTRY(hrl_node) hn_next; }; @@ -56,29 +56,29 @@ static int hn_compare(const struct hrl_node *a, const struct hrl_node *b) { - if (a->hn_limit.hl_subject < b->hn_limit.hl_subject) + if (a->hn_rule.hr_subject < b->hn_rule.hr_subject) return (-1); - else if (a->hn_limit.hl_subject > b->hn_limit.hl_subject) + else if (a->hn_rule.hr_subject > b->hn_rule.hr_subject) return (1); - if (a->hn_limit.hl_subject_id < b->hn_limit.hl_subject_id) + if (a->hn_rule.hr_subject_id < b->hn_rule.hr_subject_id) return (-1); - else if (a->hn_limit.hl_subject_id > b->hn_limit.hl_subject_id) + else if (a->hn_rule.hr_subject_id > b->hn_rule.hr_subject_id) return (1); - if (a->hn_limit.hl_per < b->hn_limit.hl_per) + if (a->hn_rule.hr_per < b->hn_rule.hr_per) return (-1); - else if (a->hn_limit.hl_per > b->hn_limit.hl_per) + else if (a->hn_rule.hr_per > b->hn_rule.hr_per) return (1); - if (a->hn_limit.hl_object < b->hn_limit.hl_object) + if (a->hn_rule.hr_resource < b->hn_rule.hr_resource) return (-1); - else if (a->hn_limit.hl_object > b->hn_limit.hl_object) + else if (a->hn_rule.hr_resource > b->hn_rule.hr_resource) return (1); - if (a->hn_limit.hl_action < b->hn_limit.hl_action) + if (a->hn_rule.hr_action < b->hn_rule.hr_action) return (-1); - else if (a->hn_limit.hl_action > b->hn_limit.hl_action) + else if (a->hn_rule.hr_action > b->hn_rule.hr_action) return (1); return (0); @@ -100,7 +100,7 @@ MALLOC_DEFINE(M_HRL, "hrl", "Hierarchical Resource Limits"); int -hrl_alloc(int object, uint64_t amount) +hrl_alloc(int resource, uint64_t amount) { KASSERT(amount > 0, ("invalid amount")); @@ -109,22 +109,22 @@ } void -hrl_free(int object, uint64_t amount) +hrl_free(int resource, uint64_t amount) { KASSERT(amount > 0, ("invalid amount")); } void -hrl_adjust(int subject, id_t subject_id, int per, int object, int action, int64_t amount) +hrl_adjust(int subject, id_t subject_id, int per, int resource, int action, int64_t amount) { struct hrl_node searched, *node, *existing; - searched.hn_limit.hl_subject = subject; - searched.hn_limit.hl_subject_id = subject_id; - searched.hn_limit.hl_per = per; - searched.hn_limit.hl_object = object; - searched.hn_limit.hl_action = action; + searched.hn_rule.hr_subject = subject; + searched.hn_rule.hr_subject_id = subject_id; + searched.hn_rule.hr_per = per; + searched.hn_rule.hr_resource = resource; + searched.hn_rule.hr_action = action; /* * Removing a limit. @@ -151,9 +151,9 @@ mtx_lock(&hrl_lock); existing = RB_INSERT(hrl_tree, &hrls, node); if (existing != NULL) { - existing->hn_limit.hl_amount = amount; + existing->hn_rule.hr_amount = amount; } else { - node->hn_limit.hl_amount = amount; + node->hn_rule.hr_amount = amount; nhrls++; } mtx_unlock(&hrl_lock); @@ -167,20 +167,20 @@ #if 0 static int -hrl_check(struct hrl_limit *limits, int nlimits) +hrl_check(struct hrl_rule *limits, int nlimits) { int i; for (i = 0; i < nlimits; i++) { - if (limits[i].hl_subject <= 0 || limits[i].hl_subject > HRL_SUBJECT_MAX) + if (limits[i].hr_subject <= 0 || limits[i].hr_subject > HRL_SUBJECT_MAX) return (EINVAL); - if (limits[i].hl_per <= 0 || limits[i].hl_per > HRL_SUBJECT_MAX) + if (limits[i].hr_per <= 0 || limits[i].hr_per > HRL_SUBJECT_MAX) return (EINVAL); - if (limits[i].hl_object <= 0 || limits[i].hl_object > HRL_OBJECT_MAX) + if (limits[i].hr_resource <= 0 || limits[i].hr_resource > HRL_RESOURCE_MAX) return (EINVAL); - if (limits[i].hl_action <= 0 || limits[i].hl_action > HRL_ACTION_MAX) + if (limits[i].hr_action <= 0 || limits[i].hr_action > HRL_ACTION_MAX) return (EINVAL); - if (limits[i].hl_amount <= 0) + if (limits[i].hr_amount <= 0) return (EINVAL); } @@ -194,7 +194,7 @@ #if 0 int error; size_t buflen; - struct hrl_limit *newlimits; + struct hrl_rule *newlimits; error = priv_check(td, PRIV_HRL_GET); if (error) @@ -220,7 +220,7 @@ return (0); } - buflen = sizeof(struct hrl_limit) * uap->nentries; + buflen = sizeof(struct hrl_rule) * uap->nentries; newlimits = malloc(buflen, M_HRL, M_WAITOK); error = copyin(uap->bufp, newlimits, buflen); @@ -257,7 +257,7 @@ int error = 0, copied = 0; size_t buflen; struct hrl_node *node; - struct hrl_limit *buf; + struct hrl_rule *buf; if (uap->nentries == 0 && uap->bufp == NULL) { mtx_lock(&hrl_lock); @@ -270,7 +270,7 @@ if (uap->nentries < 0 || uap->nentries >= HRL_MAX_LIMITS) return (EINVAL); - buflen = sizeof(struct hrl_limit) * uap->nentries; + buflen = sizeof(struct hrl_rule) * uap->nentries; buf = malloc(buflen, M_HRL, M_WAITOK); /* @@ -287,14 +287,14 @@ error = EFBIG; break; } - *(buf + copied) = node->hn_limit; + *(buf + copied) = node->hn_rule; copied++; } mtx_unlock(&hrl_lock); if (error) goto out; - error = copyout(buf, uap->bufp, sizeof(struct hrl_limit) * copied); + error = copyout(buf, uap->bufp, sizeof(struct hrl_rule) * copied); if (error) goto out; @@ -315,22 +315,21 @@ struct hrl_node *node, *next; /* - * Go through all the limits, looking for the ones with subject - * equal to the exiting process, and remove them. + * Remove temporary rules created via setrlimit(2). * - * XXX: What are we gonna do - insert a HRL entry for every process - * that inherits a limit set with setrlimit(2), or do some - * magic here, moving limits from the parent process that's - * exiting to its children? + * XXX: What are we gonna do with a children of a process that + * called setrlimit(2) - just copy the limits for every one + * of them, or do some magic here, moving limits from the + * parent process that's exiting to its children? */ restart: mtx_lock(&hrl_lock); for (node = RB_MIN(hrl_tree, &hrls); node != NULL; node = next) { next = RB_NEXT(hrl_tree, &hrls, node); - if (node->hn_limit.hl_subject != HRL_SUBJECT_PROCESS) + if (node->hn_rule.hr_subject != HRL_SUBJECT_PROCESS) continue; - if (node->hn_limit.hl_subject_id != p->p_pid) + if (node->hn_rule.hr_subject_id != p->p_pid) continue; node = RB_REMOVE(hrl_tree, &hrls, node); ==== //depot/projects/soc2009/trasz_limits/sys/kern/kern_resource.c#4 (text+ko) ==== @@ -646,7 +646,7 @@ static void hrl_handle_setrlimit(u_int which, struct rlimit *lim, struct thread *td) { - int object, subject, action = -1; + int resource, subject, action = -1; id_t id; /* @@ -657,47 +657,47 @@ switch (which) { case RLIMIT_CPU: - object = HRL_OBJECT_CPUTIME; + resource = HRL_RESOURCE_CPUTIME; action = HRL_ACTION_SIGXCPU; break; case RLIMIT_FSIZE: - object = HRL_OBJECT_FILESIZE; + resource = HRL_RESOURCE_FILESIZE; break; case RLIMIT_DATA: - object = HRL_OBJECT_DATASIZE; + resource = HRL_RESOURCE_DATASIZE; break; case RLIMIT_STACK: - object = HRL_OBJECT_STACKSIZE; + resource = HRL_RESOURCE_STACKSIZE; action = HRL_ACTION_SIGSEGV; break; case RLIMIT_CORE: - object = HRL_OBJECT_COREDUMPSIZE; + resource = HRL_RESOURCE_COREDUMPSIZE; break; case RLIMIT_RSS: - object = HRL_OBJECT_MEMORYUSE; + resource = HRL_RESOURCE_MEMORYUSE; break; case RLIMIT_MEMLOCK: - object = HRL_OBJECT_MEMORYLOCKED; + resource = HRL_RESOURCE_MEMORYLOCKED; break; case RLIMIT_NPROC: - object = HRL_OBJECT_MAXPROCESSES; + resource = HRL_RESOURCE_MAXPROCESSES; subject = HRL_SUBJECT_USER; id = td->td_ucred->cr_uid; break; case RLIMIT_NOFILE: - object = HRL_OBJECT_OPENFILES; + resource = HRL_RESOURCE_OPENFILES; action = HRL_ACTION_SIGXFSZ; break; case RLIMIT_SBSIZE: - object = HRL_OBJECT_SBSIZE; + resource = HRL_RESOURCE_SBSIZE; subject = HRL_SUBJECT_USER; id = td->td_ucred->cr_uid; break; case RLIMIT_VMEM: - object = HRL_OBJECT_VMEMORYUSE; + resource = HRL_RESOURCE_VMEMORYUSE; break; case RLIMIT_NPTS: - object = HRL_OBJECT_PTY; + resource = HRL_RESOURCE_PTY; subject = HRL_SUBJECT_USER; id = td->td_ucred->cr_uid; break; @@ -706,15 +706,15 @@ } if (lim->rlim_cur != RLIM_INFINITY) { - hrl_adjust(subject, id, subject, object, HRL_ACTION_DENY, + hrl_adjust(subject, id, subject, resource, HRL_ACTION_DENY, lim->rlim_cur); if (action != -1) - hrl_adjust(subject, id, subject, object, action, + hrl_adjust(subject, id, subject, resource, action, lim->rlim_cur); } else { - hrl_adjust(subject, id, subject, object, HRL_ACTION_DENY, 0); + hrl_adjust(subject, id, subject, resource, HRL_ACTION_DENY, 0); if (action != -1) - hrl_adjust(subject, id, subject, object, action, 0); + hrl_adjust(subject, id, subject, resource, action, 0); } } ==== //depot/projects/soc2009/trasz_limits/sys/sys/hrl.h#4 (text+ko) ==== @@ -36,13 +36,22 @@ * Hierarchical Resource Limits. */ -struct hrl_limit { - int hl_subject; - id_t hl_subject_id; - int hl_per; - int hl_object; - int hl_action; - int64_t hl_amount; +/* + * 'hrl_rule' describes a single limit configured by the system + * administrator or a temporary limit set using setrlimit(2). + * The difference between 'subject' and 'per' is best described + * by example: to specify that every process of user with uid 1984 + * can consume 1gb of virtual memory, the 'hr_subject' would be + * HRL_SUBJECT_USER, 'hrl_subject_id' - 1984, and 'hr_per' - + * HRL_SUBJECT_PROCESS. + */ +struct hrl_rule { + int hr_subject; + id_t hr_subject_id; + int hr_per; + int hr_resource; + int hr_action; + int64_t hr_amount; }; #define HRL_SUBJECT_PROCESS 0x0001 @@ -53,22 +62,22 @@ #define HRL_SUBJECT_MAX HRL_SUBJECT_JAIL /* - * 'hl_per' takes the same flags as 'hl_subject'. + * 'hr_per' takes the same flags as 'hr_subject'. */ -#define HRL_OBJECT_CPUTIME 0x0001 -#define HRL_OBJECT_FILESIZE 0x0002 -#define HRL_OBJECT_DATASIZE 0x0003 -#define HRL_OBJECT_STACKSIZE 0x0004 -#define HRL_OBJECT_COREDUMPSIZE 0x0005 -#define HRL_OBJECT_MEMORYUSE 0x0006 -#define HRL_OBJECT_MEMORYLOCKED 0x0007 -#define HRL_OBJECT_MAXPROCESSES 0x0008 -#define HRL_OBJECT_OPENFILES 0x0009 -#define HRL_OBJECT_SBSIZE 0x000a -#define HRL_OBJECT_VMEMORYUSE 0x000b -#define HRL_OBJECT_PTY 0x000c -#define HRL_OBJECT_MAX HRL_OBJECT_PTY +#define HRL_RESOURCE_CPUTIME 0x0001 +#define HRL_RESOURCE_FILESIZE 0x0002 +#define HRL_RESOURCE_DATASIZE 0x0003 +#define HRL_RESOURCE_STACKSIZE 0x0004 +#define HRL_RESOURCE_COREDUMPSIZE 0x0005 +#define HRL_RESOURCE_MEMORYUSE 0x0006 +#define HRL_RESOURCE_MEMORYLOCKED 0x0007 +#define HRL_RESOURCE_MAXPROCESSES 0x0008 +#define HRL_RESOURCE_OPENFILES 0x0009 +#define HRL_RESOURCE_SBSIZE 0x000a +#define HRL_RESOURCE_VMEMORYUSE 0x000b +#define HRL_RESOURCE_PTY 0x000c +#define HRL_RESOURCE_MAX HRL_RESOURCE_PTY #define HRL_ACTION_DENY 0x0001 #define HRL_ACTION_DELAY 0x0002 @@ -88,13 +97,13 @@ int hrl_alloc(int object, uint64_t amount); void hrl_free(int object, uint64_t amount); -void hrl_adjust(int subject, id_t subject_id, int per, int object, int action, int64_t amount); +void hrl_adjust(int subject, id_t subject_id, int per, int resource, int action, int64_t amount); #else /* !_KERNEL */ __BEGIN_DECLS -int hrl_get(struct hrl_limit *bufp, int nentries, int *count); -int hrl_set(struct hrl_limit *bufp, int nentries); +int hrl_get(struct hrl_rule *bufp, int nentries, int *count); +int hrl_set(struct hrl_rule *bufp, int nentries); __END_DECLS #endif /* !_KERNEL */ ==== //depot/projects/soc2009/trasz_limits/usr.sbin/hrl/hrl.c#4 (text+ko) ==== @@ -71,48 +71,48 @@ } static void -print_object(int object) +print_resource(int resource) { - switch (object) { - case HRL_OBJECT_CPUTIME: + switch (resource) { + case HRL_RESOURCE_CPUTIME: printf("cputime"); break; - case HRL_OBJECT_FILESIZE: + case HRL_RESOURCE_FILESIZE: printf("filesize"); break; - case HRL_OBJECT_DATASIZE: + case HRL_RESOURCE_DATASIZE: printf("datasize"); break; - case HRL_OBJECT_STACKSIZE: + case HRL_RESOURCE_STACKSIZE: printf("stacksize"); break; - case HRL_OBJECT_COREDUMPSIZE: + case HRL_RESOURCE_COREDUMPSIZE: printf("coredumpsize"); break; - case HRL_OBJECT_MEMORYUSE: + case HRL_RESOURCE_MEMORYUSE: printf("memoryuse"); break; - case HRL_OBJECT_MEMORYLOCKED: + case HRL_RESOURCE_MEMORYLOCKED: printf("memorylocked"); break; - case HRL_OBJECT_MAXPROCESSES: + case HRL_RESOURCE_MAXPROCESSES: printf("maxprocesses"); break; - case HRL_OBJECT_OPENFILES: + case HRL_RESOURCE_OPENFILES: printf("openfiles"); break; - case HRL_OBJECT_SBSIZE: + case HRL_RESOURCE_SBSIZE: printf("sbsize"); break; - case HRL_OBJECT_VMEMORYUSE: + case HRL_RESOURCE_VMEMORYUSE: printf("vmemoryuse"); break; - case HRL_OBJECT_PTY: + case HRL_RESOURCE_PTY: printf("pty"); break; default: - printf("undefined<0x%x>", object); + printf("undefined<0x%x>", resource); } } @@ -205,16 +205,16 @@ printf("Defined resource limits:\n"); for (i = 0; i < nentries; i++) { - print_subject(limits[i].hl_subject, limits[i].hl_subject_id); + print_subject(limits[i].hr_subject, limits[i].hr_subject_id); printf(":"); - print_object(limits[i].hl_object); + print_resource(limits[i].hr_resource); printf(":"); - print_action(limits[i].hl_action); - printf(":"); - printf("%jd", limits[i].hl_amount); - if (limits[i].hl_subject != limits[i].hl_per) { + print_action(limits[i].hr_action); + printf("="); + printf("%jd", limits[i].hr_amount); + if (limits[i].hr_subject != limits[i].hr_per) { printf("/"); - print_per(limits[i].hl_per); + print_per(limits[i].hr_per); } printf("\n"); } From owner-p4-projects@FreeBSD.ORG Mon Jun 8 13:05:05 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 6D7DE106568F; Mon, 8 Jun 2009 13:05:05 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 1B92D1065680 for ; Mon, 8 Jun 2009 13:05:05 +0000 (UTC) (envelope-from zhaoshuai@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 03E5F8FC25 for ; Mon, 8 Jun 2009 13:05:05 +0000 (UTC) (envelope-from zhaoshuai@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n58D54J4036526 for ; Mon, 8 Jun 2009 13:05:04 GMT (envelope-from zhaoshuai@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n58D54Tv036524 for perforce@freebsd.org; Mon, 8 Jun 2009 13:05:04 GMT (envelope-from zhaoshuai@FreeBSD.org) Date: Mon, 8 Jun 2009 13:05:04 GMT Message-Id: <200906081305.n58D54Tv036524@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to zhaoshuai@FreeBSD.org using -f From: Zhao Shuai To: Perforce Change Reviews Cc: Subject: PERFORCE change 163779 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 08 Jun 2009 13:05:06 -0000 http://perforce.freebsd.org/chv.cgi?CH=163779 Change 163779 by zhaoshuai@zhaoshuai on 2009/06/08 13:04:22 add fifo_poll_f() Affected files ... .. //depot/projects/soc2009/fifo/sys/fs/fifofs/fifo_vnops.c#11 edit Differences ... ==== //depot/projects/soc2009/fifo/sys/fs/fifofs/fifo_vnops.c#11 (text+ko) ==== @@ -43,6 +43,7 @@ #include #include #include +#include #include #include #include @@ -491,7 +492,15 @@ static int fifo_poll_f(struct file *fp, int events, struct ucred *cred, struct thread *td) { + struct fifoinfo *fip = fp->f_data; + int levents, revents = 0; - return (0); + levents = events & (POLLIN | POLLRDNORM); + if ((fp->f_flag & FREAD) && levents) + revents |= generic_pipe_poll(fip->fi_rpipe, levents, cred, td); + levents = events & (POLLOUT | POLLWRNORM); + if ((fp->f_flag & FWRITE) && levents) + revents |= generic_pipe_poll(fip->fi_wpipe, levents, cred, td); + return (revents); } From owner-p4-projects@FreeBSD.ORG Mon Jun 8 13:10:12 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id A1F4A1065690; Mon, 8 Jun 2009 13:10:12 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 40F5D10656D6 for ; Mon, 8 Jun 2009 13:10:12 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 465E88FC1D for ; Mon, 8 Jun 2009 13:10:10 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n58DAAsU036938 for ; Mon, 8 Jun 2009 13:10:10 GMT (envelope-from hselasky@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n58DAAwQ036936 for perforce@freebsd.org; Mon, 8 Jun 2009 13:10:10 GMT (envelope-from hselasky@FreeBSD.org) Date: Mon, 8 Jun 2009 13:10:10 GMT Message-Id: <200906081310.n58DAAwQ036936@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to hselasky@FreeBSD.org using -f From: Hans Petter Selasky To: Perforce Change Reviews Cc: Subject: PERFORCE change 163780 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 08 Jun 2009 13:10:14 -0000 http://perforce.freebsd.org/chv.cgi?CH=163780 Change 163780 by hselasky@hselasky_laptop001 on 2009/06/08 13:09:58 USB CORE: - minor device side improvement. Make sure a not complete state gets paired with a complete state in device side mode for the default control endpoint. Affected files ... .. //depot/projects/usb/src/sys/dev/usb/usb_core.h#24 edit .. //depot/projects/usb/src/sys/dev/usb/usb_handle_request.c#11 edit .. //depot/projects/usb/src/sys/dev/usb/usb_if.m#8 edit Differences ... ==== //depot/projects/usb/src/sys/dev/usb/usb_core.h#24 (text+ko) ==== @@ -215,6 +215,11 @@ #define USB_ST_TRANSFERRED 1 #define USB_ST_ERROR 2 +/* USB handle request states */ +#define USB_HR_NOT_COMPLETE 0 +#define USB_HR_COMPLETE_OK 1 +#define USB_HR_COMPLETE_ERR 2 + /* * The following macro will return the current state of an USB * transfer like defined by the "USB_ST_XXX" enums. ==== //depot/projects/usb/src/sys/dev/usb/usb_handle_request.c#11 (text+ko) ==== @@ -42,13 +42,6 @@ #include #include -/* enum */ - -enum { - ST_DATA, - ST_POST_STATUS, -}; - /* function prototypes */ static uint8_t usb2_handle_get_stall(struct usb_device *, uint8_t); @@ -88,16 +81,17 @@ usb2_needs_explore(xfer->xroot->bus, 0); break; } - /* - * If no control transfer is active, - * receive the next SETUP message: - */ goto tr_restart; } usb2_start_hardware(xfer); break; default: + /* check if a control transfer is active */ + if (xfer->flags_int.control_rem != 0xFFFF) { + /* handle the request */ + err = usb2_handle_request(xfer); + } if (xfer->error != USB_ERR_CANCELLED) { /* should not happen - try stalling */ goto tr_restart; @@ -107,6 +101,10 @@ return; tr_restart: + /* + * If a control transfer is active, stall it, and wait for the + * next control transfer. + */ xfer->frlengths[0] = sizeof(struct usb_device_request); xfer->nframes = 1; xfer->flags.manual_status = 1; @@ -215,7 +213,7 @@ #endif error = USB_HANDLE_REQUEST(iface->subdev, &req, ppdata, plen, - off, (state == ST_POST_STATUS)); + off, state); } iface_parent = usb2_get_iface(udev, iface->parent_iface_index); @@ -235,7 +233,7 @@ device_is_attached(iface_parent->subdev)) { error = USB_HANDLE_REQUEST(iface_parent->subdev, &req, ppdata, plen, off, - (state == ST_POST_STATUS)); + state); } if (error == 0) { /* negativly adjust pointer and length */ @@ -249,7 +247,7 @@ iface_index++; /* iterate */ goto tr_repeat; } - if (state == ST_POST_STATUS) { + if (state != USB_HR_NOT_COMPLETE) { /* we are complete */ goto tr_valid; } @@ -409,7 +407,7 @@ * * Internal state sequence: * - * ST_DATA -> ST_POST_STATUS + * USB_HR_NOT_COMPLETE -> USB_HR_COMPLETE_OK v USB_HR_COMPLETE_ERR * * Returns: * 0: Ready to start hardware @@ -441,21 +439,23 @@ switch (USB_GET_STATE(xfer)) { case USB_ST_SETUP: - state = ST_DATA; + state = USB_HR_NOT_COMPLETE; if (!xfer->flags_int.control_act) { /* nothing to do */ goto tr_stalled; } break; - - default: /* USB_ST_TRANSFERRED */ + case USB_ST_TRANSFERRED: if (!xfer->flags_int.control_act) { - state = ST_POST_STATUS; + state = USB_HR_COMPLETE_OK; } else { - state = ST_DATA; + state = USB_HR_NOT_COMPLETE; } break; + default: + state = USB_HR_COMPLETE_ERR; + break; } /* reset frame stuff */ @@ -499,7 +499,7 @@ switch (req.bmRequestType) { case UT_READ_DEVICE: - if (state != ST_DATA) { + if (state != USB_HR_NOT_COMPLETE) { break; } switch (req.bRequest) { @@ -629,7 +629,7 @@ goto tr_valid; tr_handle_set_address: - if (state == ST_DATA) { + if (state == USB_HR_NOT_COMPLETE) { if (wValue >= 0x80) { /* invalid value */ goto tr_stalled; @@ -637,14 +637,14 @@ /* we are configured ! */ goto tr_stalled; } - } else if (state == ST_POST_STATUS) { + } else if (state != USB_HR_NOT_COMPLETE) { udev->address = (wValue & 0x7F); goto tr_bad_context; } goto tr_valid; tr_handle_set_config: - if (state == ST_DATA) { + if (state == USB_HR_NOT_COMPLETE) { if (usb2_handle_set_config(xfer, req.wValue[0])) { goto tr_stalled; } @@ -652,7 +652,7 @@ goto tr_valid; tr_handle_clear_halt: - if (state == ST_DATA) { + if (state == USB_HR_NOT_COMPLETE) { if (usb2_handle_set_stall(xfer, req.wIndex[0], 0)) { goto tr_stalled; } @@ -660,7 +660,7 @@ goto tr_valid; tr_handle_clear_wakeup: - if (state == ST_DATA) { + if (state == USB_HR_NOT_COMPLETE) { if (usb2_handle_remote_wakeup(xfer, 0)) { goto tr_stalled; } @@ -668,7 +668,7 @@ goto tr_valid; tr_handle_set_halt: - if (state == ST_DATA) { + if (state == USB_HR_NOT_COMPLETE) { if (usb2_handle_set_stall(xfer, req.wIndex[0], 1)) { goto tr_stalled; } @@ -676,7 +676,7 @@ goto tr_valid; tr_handle_set_wakeup: - if (state == ST_DATA) { + if (state == USB_HR_NOT_COMPLETE) { if (usb2_handle_remote_wakeup(xfer, 1)) { goto tr_stalled; } @@ -684,7 +684,7 @@ goto tr_valid; tr_handle_get_ep_status: - if (state == ST_DATA) { + if (state == USB_HR_NOT_COMPLETE) { temp.wStatus[0] = usb2_handle_get_stall(udev, req.wIndex[0]); temp.wStatus[1] = 0; @@ -694,7 +694,7 @@ goto tr_valid; tr_valid: - if (state == ST_POST_STATUS) { + if (state != USB_HR_NOT_COMPLETE) { goto tr_stalled; } /* subtract offset from length */ @@ -750,7 +750,7 @@ return (0); /* success */ tr_stalled: - DPRINTF("%s\n", (state == ST_POST_STATUS) ? + DPRINTF("%s\n", (state != USB_HR_NOT_COMPLETE) ? "complete" : "stalled"); return (USB_ERR_STALLED); ==== //depot/projects/usb/src/sys/dev/usb/usb_if.m#8 (text+ko) ==== @@ -47,6 +47,5 @@ void **pptr; /* data pointer */ uint16_t *plen; /* maximum transfer length */ uint16_t offset; /* data offset */ - uint8_t is_complete; /* set if transfer is complete */ + uint8_t is_complete; /* set if transfer is complete, see USB_HR_XXX */ }; - From owner-p4-projects@FreeBSD.ORG Mon Jun 8 13:42:44 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id F3C051065670; Mon, 8 Jun 2009 13:42:43 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id B3A02106566B for ; Mon, 8 Jun 2009 13:42:43 +0000 (UTC) (envelope-from pgj@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id A17C18FC21 for ; Mon, 8 Jun 2009 13:42:43 +0000 (UTC) (envelope-from pgj@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n58DghGB039510 for ; Mon, 8 Jun 2009 13:42:43 GMT (envelope-from pgj@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n58DghxM039508 for perforce@freebsd.org; Mon, 8 Jun 2009 13:42:43 GMT (envelope-from pgj@FreeBSD.org) Date: Mon, 8 Jun 2009 13:42:43 GMT Message-Id: <200906081342.n58DghxM039508@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to pgj@FreeBSD.org using -f From: Gabor Pali To: Perforce Change Reviews Cc: Subject: PERFORCE change 163782 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 08 Jun 2009 13:42:45 -0000 http://perforce.freebsd.org/chv.cgi?CH=163782 Change 163782 by pgj@petymeg-current on 2009/06/08 13:41:51 Add pcb, vnode, conn, refs, reflink Affected files ... .. //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat.c#7 edit .. //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat.h#10 edit .. //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat_internal.h#7 edit .. //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat_util.c#9 edit .. //depot/projects/soc2009/pgj_libstat/src/usr.bin/netstat/unix.c#9 edit Differences ... ==== //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat.c#7 (text+ko) ==== @@ -3,6 +3,8 @@ #include #include #include +#include +#include #include #include #include @@ -26,7 +28,7 @@ { .n_name = NULL }, }; -static void extract_xsocket_data(struct xsocket *, struct socket_type *); +static void extract_xunpcb_data(struct xunpcb *, struct socket_type *); static const char *const socktype[] = { "#0", "stream", "dgram", "raw", "rdm", "seqpacket" }; @@ -69,7 +71,7 @@ if (xunp->xu_unp.unp_gencnt <= oxug->xug_gen) { stp = _netstat_st_allocate(list, PF_LOCAL, type, socktype[type]); - extract_xsocket_data(&xunp->xu_socket, stp); + extract_xunpcb_data(xunp, stp); stp->xup = *((struct xunpcb *)xug); } } @@ -147,7 +149,7 @@ sotoxsocket(&so, &xu.xu_socket); stp = _netstat_st_allocate(list, PF_LOCAL, type, socktype[type]); - extract_xsocket_data(&xu.xu_socket, stp); + extract_xunpcb_data(&xu, stp); stp->xup = xu; } @@ -221,11 +223,17 @@ } void -extract_xsocket_data(struct xsocket *xso, struct socket_type *stp) +extract_xunpcb_data(struct xunpcb *xpcb, struct socket_type *stp) { - stp->st_qlen = xso->so_qlen; - stp->st_incqlen = xso->so_incqlen; - stp->st_qlimit = xso->so_qlimit; - stp->st_snd_cc = xso->so_snd.sb_cc; - stp->st_rcv_cc = xso->so_rcv.sb_cc; + stp->st_qlen = xpcb->xu_socket.so_qlen; + stp->st_incqlen = xpcb->xu_socket.so_incqlen; + stp->st_qlimit = xpcb->xu_socket.so_qlimit; + stp->st_snd_cc = xpcb->xu_socket.so_snd.sb_cc; + stp->st_rcv_cc = xpcb->xu_socket.so_rcv.sb_cc; + stp->st_pcb = (long)xpcb->xu_socket.so_pcb; + stp->st_vnode = (long)xpcb->xu_unp.unp_vnode; + stp->st_conn = (long)xpcb->xu_unp.unp_conn; + stp->st_refs = (long)LIST_FIRST(&xpcb->xu_unp.unp_refs); + stp->st_reflink = (long)LIST_NEXT(&xpcb->xu_unp, unp_reflink); + stp->st_flags = SOCKTYPE_VNODE | SOCKTYPE_CONN | SOCKTYPE_REFS; } ==== //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat.h#10 (text+ko) ==== @@ -59,9 +59,14 @@ u_short netstat_st_get_qlen(const struct socket_type *stp); u_short netstat_st_get_incqlen(const struct socket_type *stp); u_short netstat_st_get_qlimit(const struct socket_type *stp); +long netstat_st_get_pcb(const struct socket_type *stp); +long netstat_st_get_vnode(const struct socket_type *stp); +long netstat_st_get_conn(const struct socket_type *stp); +long netstat_st_get_refs(const struct socket_type *stp); +long netstat_st_get_reflink(const struct socket_type *stp); /* XXX: Remove this hack :) */ -void *netstat_st_get_pcb(const struct socket_type *stp); +void *XXX_netstat_st_get_pcb(const struct socket_type *stp); __END_DECLS ==== //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat_internal.h#7 (text+ko) ==== @@ -35,6 +35,11 @@ u_short st_incqlen; /* number of unaccepted incomplete connections */ u_short st_qlimit; /* max number queued connections */ + long st_pcb; /* protocol control block */ + long st_vnode; /* if associated with file */ + long st_conn; /* control block of connected socket */ + long st_refs; /* referencing socket linked list */ + long st_reflink; /* link in references list */ /* Mixed properties, needed for different reasons, to be refined * continuously. @@ -45,6 +50,11 @@ LIST_ENTRY(socket_type) st_list; }; +/* Internal flags for socket_type: */ +#define SOCKTYPE_VNODE 0x01 /* Associated with a file. */ +#define SOCKTYPE_CONN 0x02 /* Has a control block connected. */ +#define SOCKTYPE_REFS 0x04 /* Has socket references. */ + struct socket_type_list { LIST_HEAD(, socket_type) stl_list; int stl_error; ==== //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat_util.c#9 (text+ko) ==== @@ -282,9 +282,39 @@ return (stp->st_qlimit); } +long +netstat_st_get_pcb(const struct socket_type *stp) +{ + return (stp->st_pcb); +} + +long +netstat_st_get_vnode(const struct socket_type *stp) +{ + return (stp->st_vnode); +} + +long +netstat_st_get_conn(const struct socket_type *stp) +{ + return (stp->st_conn); +} + +long +netstat_st_get_refs(const struct socket_type *stp) +{ + return (stp->st_refs); +} + +long +netstat_st_get_reflink(const struct socket_type *stp) +{ + return (stp->st_reflink); +} + /* XXX: hack alert :) */ void * -netstat_st_get_pcb(const struct socket_type *stp) +XXX_netstat_st_get_pcb(const struct socket_type *stp) { return (void *)(&stp->xup); } ==== //depot/projects/soc2009/pgj_libstat/src/usr.bin/netstat/unix.c#9 (text+ko) ==== @@ -133,7 +133,7 @@ struct xunpcb *xunp; struct xsocket *so; - xunp = netstat_st_get_pcb(stp); + xunp = XXX_netstat_st_get_pcb(stp); so = &xunp->xu_socket; unp = &xunp->xu_unp; if (unp->unp_addr) @@ -159,14 +159,10 @@ printf("unix %-14.14s", buf1); } else { printf("%8lx %-6.6s %6u %6u %8lx %8lx %8lx %8lx", - (long)so->so_pcb, - netstat_st_get_name(stp), - netstat_st_get_rcv_cc(stp), - netstat_st_get_snd_cc(stp), - (long)unp->unp_vnode, - (long)unp->unp_conn, - (long)LIST_FIRST(&unp->unp_refs), - (long)LIST_NEXT(unp, unp_reflink)); + netstat_st_get_pcb(stp), netstat_st_get_name(stp), + netstat_st_get_rcv_cc(stp), netstat_st_get_snd_cc(stp), + netstat_st_get_vnode(stp), netstat_st_get_conn(stp), + netstat_st_get_refs(stp), netstat_st_get_reflink(stp)); } if (sa) printf(" %.*s", From owner-p4-projects@FreeBSD.ORG Mon Jun 8 14:24:27 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 52137106567F; Mon, 8 Jun 2009 14:24:27 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 0E19E106566C for ; Mon, 8 Jun 2009 14:24:27 +0000 (UTC) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id D2E2F8FC1E for ; Mon, 8 Jun 2009 14:24:26 +0000 (UTC) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n58EOQSJ054057 for ; Mon, 8 Jun 2009 14:24:26 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n58EOQkU054055 for perforce@freebsd.org; Mon, 8 Jun 2009 14:24:26 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Date: Mon, 8 Jun 2009 14:24:26 GMT Message-Id: <200906081424.n58EOQkU054055@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to bb+lists.freebsd.perforce@cyrus.watson.org using -f From: Robert Watson To: Perforce Change Reviews Cc: Subject: PERFORCE change 163786 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 08 Jun 2009 14:24:28 -0000 http://perforce.freebsd.org/chv.cgi?CH=163786 Change 163786 by rwatson@rwatson_cinnamon on 2009/06/08 14:23:31 If we're going to allow socketpair(2) in sandboxes, also allow socket(2). Affected files ... .. //depot/projects/trustedbsd/capabilities/src/sys/kern/capabilities.conf#18 edit .. //depot/projects/trustedbsd/capabilities/src/sys/kern/init_sysent.c#31 edit .. //depot/projects/trustedbsd/capabilities/src/sys/kern/syscalls.c#31 edit .. //depot/projects/trustedbsd/capabilities/src/sys/kern/systrace_args.c#31 edit .. //depot/projects/trustedbsd/capabilities/src/sys/sys/syscall.h#31 edit .. //depot/projects/trustedbsd/capabilities/src/sys/sys/syscall.mk#31 edit .. //depot/projects/trustedbsd/capabilities/src/sys/sys/sysproto.h#31 edit Differences ... ==== //depot/projects/trustedbsd/capabilities/src/sys/kern/capabilities.conf#18 (text+ko) ==== @@ -38,7 +38,7 @@ ## - sys_exit(2), abort2(2) and close(2) are very important. ## - Sorted alphabetically, please keep it that way. ## -## $P4: //depot/projects/trustedbsd/capabilities/src/sys/kern/capabilities.conf#17 $ +## $P4: //depot/projects/trustedbsd/capabilities/src/sys/kern/capabilities.conf#18 $ ## ## @@ -652,8 +652,9 @@ sigwaitinfo ## -## Allow creating new socket pairs with socketpair(2). +## Allow creating new socket pairs with socket(2) and socketpair(2). ## +socket socketpair ## ==== //depot/projects/trustedbsd/capabilities/src/sys/kern/init_sysent.c#31 (text+ko) ==== @@ -125,7 +125,7 @@ { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0 }, /* 94 = setdopt */ { AS(fsync_args), (sy_call_t *)fsync, AUE_FSYNC, NULL, 0, 0, SYF_CAPENABLED }, /* 95 = fsync */ { AS(setpriority_args), (sy_call_t *)setpriority, AUE_SETPRIORITY, NULL, 0, 0, SYF_CAPENABLED }, /* 96 = setpriority */ - { AS(socket_args), (sy_call_t *)socket, AUE_SOCKET, NULL, 0, 0, 0 }, /* 97 = socket */ + { AS(socket_args), (sy_call_t *)socket, AUE_SOCKET, NULL, 0, 0, SYF_CAPENABLED }, /* 97 = socket */ { AS(connect_args), (sy_call_t *)connect, AUE_CONNECT, NULL, 0, 0, SYF_CAPENABLED }, /* 98 = connect */ { compat(AS(accept_args),accept), AUE_ACCEPT, NULL, 0, 0, SYF_CAPENABLED }, /* 99 = old accept */ { AS(getpriority_args), (sy_call_t *)getpriority, AUE_GETPRIORITY, NULL, 0, 0, SYF_CAPENABLED }, /* 100 = getpriority */ ==== //depot/projects/trustedbsd/capabilities/src/sys/kern/syscalls.c#31 (text+ko) ==== ==== //depot/projects/trustedbsd/capabilities/src/sys/kern/systrace_args.c#31 (text+ko) ==== ==== //depot/projects/trustedbsd/capabilities/src/sys/sys/syscall.h#31 (text+ko) ==== ==== //depot/projects/trustedbsd/capabilities/src/sys/sys/syscall.mk#31 (text+ko) ==== ==== //depot/projects/trustedbsd/capabilities/src/sys/sys/sysproto.h#31 (text+ko) ==== From owner-p4-projects@FreeBSD.ORG Mon Jun 8 14:32:38 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 33BA61065672; Mon, 8 Jun 2009 14:32:35 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 0C51A1065670 for ; Mon, 8 Jun 2009 14:32:35 +0000 (UTC) (envelope-from pgj@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id E4E898FC14 for ; Mon, 8 Jun 2009 14:32:34 +0000 (UTC) (envelope-from pgj@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n58EWYOV054676 for ; Mon, 8 Jun 2009 14:32:34 GMT (envelope-from pgj@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n58EWYsa054674 for perforce@freebsd.org; Mon, 8 Jun 2009 14:32:34 GMT (envelope-from pgj@FreeBSD.org) Date: Mon, 8 Jun 2009 14:32:34 GMT Message-Id: <200906081432.n58EWYsa054674@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to pgj@FreeBSD.org using -f From: Gabor Pali To: Perforce Change Reviews Cc: Subject: PERFORCE change 163787 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 08 Jun 2009 14:32:38 -0000 http://perforce.freebsd.org/chv.cgi?CH=163787 Change 163787 by pgj@petymeg-current on 2009/06/08 14:32:21 - Add address properties (as a pure string) - unix.c now entirely uses libnetstat :) Affected files ... .. //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat.c#8 edit .. //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat.h#11 edit .. //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat_internal.h#8 edit .. //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat_util.c#10 edit .. //depot/projects/soc2009/pgj_libstat/src/usr.bin/netstat/unix.c#10 edit Differences ... ==== //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat.c#8 (text+ko) ==== @@ -2,6 +2,7 @@ #include #include #include +#include #include #include #include @@ -72,7 +73,6 @@ stp = _netstat_st_allocate(list, PF_LOCAL, type, socktype[type]); extract_xunpcb_data(xunp, stp); - stp->xup = *((struct xunpcb *)xug); } } @@ -150,7 +150,6 @@ stp = _netstat_st_allocate(list, PF_LOCAL, type, socktype[type]); extract_xunpcb_data(&xu, stp); - stp->xup = xu; } return (0); @@ -225,6 +224,8 @@ void extract_xunpcb_data(struct xunpcb *xpcb, struct socket_type *stp) { + struct sockaddr_un *sa; + stp->st_qlen = xpcb->xu_socket.so_qlen; stp->st_incqlen = xpcb->xu_socket.so_incqlen; stp->st_qlimit = xpcb->xu_socket.so_qlimit; @@ -236,4 +237,12 @@ stp->st_refs = (long)LIST_FIRST(&xpcb->xu_unp.unp_refs); stp->st_reflink = (long)LIST_NEXT(&xpcb->xu_unp, unp_reflink); stp->st_flags = SOCKTYPE_VNODE | SOCKTYPE_CONN | SOCKTYPE_REFS; + if (xpcb->xu_unp.unp_addr) { + sa = (struct sockaddr_un *)&xpcb->xu_addr; + sprintf(stp->st_address, "%.*s", + (int)(sa->sun_len - offsetof(struct sockaddr_un, sun_path)), + sa->sun_path); + } else { + stp->st_address[0] = '\0'; + } } ==== //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat.h#11 (text+ko) ==== @@ -2,11 +2,13 @@ #ifndef _NETSTAT_H_ #define _NETSTAT_H_ +#include #include #define NETSTAT_MAXCALLER 16 #define SOCKTYPE_MAXNAME 32 +#define SOCKTYPE_MAXADDR SOCK_MAXADDRLEN #define NETSTAT_ERROR_UNDEFINED 0 #define NETSTAT_ERROR_NOMEMORY 1 @@ -64,10 +66,7 @@ long netstat_st_get_conn(const struct socket_type *stp); long netstat_st_get_refs(const struct socket_type *stp); long netstat_st_get_reflink(const struct socket_type *stp); - -/* XXX: Remove this hack :) */ -void *XXX_netstat_st_get_pcb(const struct socket_type *stp); - +const char *netstat_st_get_address(const struct socket_type *stp); __END_DECLS #endif /* !_NETSTAT_H_ */ ==== //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat_internal.h#8 (text+ko) ==== @@ -10,6 +10,7 @@ #include #include +/* XXX: not used yet */ /* Address type: * local, foreign, node (Netgraph), raw (domain) */ @@ -26,8 +27,11 @@ int st_flags; char st_name[SOCKTYPE_MAXNAME]; +#if 0 + /* XXX: not used yet */ struct address_type *st_address; /* address(es) */ int st_addrcnt; /* address count */ +#endif u_int st_snd_cc; /* actual chars in the send buffer */ u_int st_rcv_cc; /* actual chars in the receive buffer */ @@ -40,11 +44,7 @@ long st_conn; /* control block of connected socket */ long st_refs; /* referencing socket linked list */ long st_reflink; /* link in references list */ - - /* Mixed properties, needed for different reasons, to be refined - * continuously. - */ - struct xunpcb xup; /* xun */ + char st_address[SOCKTYPE_MAXADDR]; /* list of types */ LIST_ENTRY(socket_type) st_list; ==== //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat_util.c#10 (text+ko) ==== @@ -312,9 +312,8 @@ return (stp->st_reflink); } -/* XXX: hack alert :) */ -void * -XXX_netstat_st_get_pcb(const struct socket_type *stp) +const char * +netstat_st_get_address(const struct socket_type *stp) { - return (void *)(&stp->xup); + return (stp->st_address); } ==== //depot/projects/soc2009/pgj_libstat/src/usr.bin/netstat/unix.c#10 (text+ko) ==== @@ -43,27 +43,14 @@ /* * Display protocol blocks in the unix domain. */ -#include -#include -#include -#include +#include #include -#include -#include -#include -#include - -#include - -#include +#include #include -#include -#include +#include +#include #include #include -#include -#include -#include #include "extern.h" #define USE_ITERATOR_TYPE @@ -126,21 +113,9 @@ static void unixdomainpr(struct socket_type *stp) { - struct unpcb *unp; - struct sockaddr_un *sa; static int first = 1; char buf1[15]; - struct xunpcb *xunp; - struct xsocket *so; - xunp = XXX_netstat_st_get_pcb(stp); - so = &xunp->xu_socket; - unp = &xunp->xu_unp; - if (unp->unp_addr) - sa = &xunp->xu_addr; - else - sa = (struct sockaddr_un *)0; - if (first && !Lflag) { printf("Active UNIX domain sockets\n"); printf( @@ -164,9 +139,5 @@ netstat_st_get_vnode(stp), netstat_st_get_conn(stp), netstat_st_get_refs(stp), netstat_st_get_reflink(stp)); } - if (sa) - printf(" %.*s", - (int)(sa->sun_len - offsetof(struct sockaddr_un, sun_path)), - sa->sun_path); - putchar('\n'); + printf(" %s\n", netstat_st_get_address(stp)); } From owner-p4-projects@FreeBSD.ORG Mon Jun 8 15:26:11 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id B5837106567A; Mon, 8 Jun 2009 15:26:10 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 6C8131065670 for ; Mon, 8 Jun 2009 15:26:10 +0000 (UTC) (envelope-from rpaulo@gmail.com) Received: from mail-bw0-f217.google.com (mail-bw0-f217.google.com [209.85.218.217]) by mx1.freebsd.org (Postfix) with ESMTP id A67318FC0A for ; Mon, 8 Jun 2009 15:26:09 +0000 (UTC) (envelope-from rpaulo@gmail.com) Received: by bwz17 with SMTP id 17so345208bwz.43 for ; Mon, 08 Jun 2009 08:26:08 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:received:received:cc:message-id:from:to :in-reply-to:content-type:content-transfer-encoding:mime-version :subject:date:references:x-pgp-agent:x-mailer; bh=Sg13bdByLdP8PR2QnuF6j/jrIhQs/xwh32k5CAPqVsU=; b=v77OSz/3OOSdHNuPrRcMMbyLYAulfc2IvuU24kCo4QaNTbGbPqoDt0gWZnNF8tbdRj LrSDSQ7fu+CgkCJwpLvLiFCbetyYkD07c2avHTmnqLrGwGdOiMY8m5kJ2DvYn6Pg2rAb g6x9NFoSswWNbhtatrW9uwtD0FeYvZNyChd84= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=cc:message-id:from:to:in-reply-to:content-type :content-transfer-encoding:mime-version:subject:date:references :x-pgp-agent:x-mailer; b=ABFeFa4i/pTlrqsqEt7dH14esUkqBONHrkkJrnXL1Ift6xX9vW1kjXwK5xT6U2vCbd kEAZnpfMrC/rZ1l6J0af3Ipzj/gCn+YJvAIOVaueHzEb47yKzCMt7wYaQv0uK7w/lhBu 8p33qWhBynxQG5qCwfgN9IliLQ9sY2MqTReA8= Received: by 10.204.55.142 with SMTP id u14mr6832589bkg.114.1244473080097; Mon, 08 Jun 2009 07:58:00 -0700 (PDT) Received: from epsilon.lan (bl7-91-14.dsl.telepac.pt [85.240.91.14]) by mx.google.com with ESMTPS id 26sm3837288fks.1.2009.06.08.07.57.58 (version=TLSv1/SSLv3 cipher=RC4-MD5); Mon, 08 Jun 2009 07:57:59 -0700 (PDT) Message-Id: <791FED8A-DC07-44C0-96EF-141E00F804FA@gmail.com> From: Rui Paulo To: Fang Wang In-Reply-To: <200906081141.n58BfdLv018070@repoman.freebsd.org> Content-Type: multipart/signed; protocol="application/pgp-signature"; micalg=pgp-sha1; boundary="Apple-Mail-10--122094842" Content-Transfer-Encoding: 7bit Mime-Version: 1.0 (Apple Message framework v935.3) Date: Mon, 8 Jun 2009 15:57:57 +0100 References: <200906081141.n58BfdLv018070@repoman.freebsd.org> X-Pgp-Agent: GPGMail 1.2.0 (v56) X-Mailer: Apple Mail (2.935.3) Cc: Perforce Change Reviews Subject: Re: PERFORCE change 163774 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 08 Jun 2009 15:26:11 -0000 This is an OpenPGP/MIME signed message (RFC 2440 and 3156) --Apple-Mail-10--122094842 Content-Type: text/plain; charset=US-ASCII; format=flowed Content-Transfer-Encoding: 7bit On 8 Jun 2009, at 12:41, Fang Wang wrote: > http://perforce.freebsd.org/chv.cgi?CH=163774 > > Change 163774 by fangwang@fangwang_utobsd on 2009/06/08 11:40:57 > > Fix style. > Remove bitfields, use bit operations instead. > Great, looks good! -- Rui Paulo --Apple-Mail-10--122094842 content-type: application/pgp-signature; x-mac-type=70674453; name=PGP.sig content-description: This is a digitally signed message part content-disposition: inline; filename=PGP.sig content-transfer-encoding: 7bit -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.9 (Darwin) iEYEARECAAYFAkotJvUACgkQfD8M/ASTygJyFQCfVtMROlBU9hMEpI9GobznCFFM iC8AnAyyj8gxqAnB6VxRFoWv8POMoC/v =T+uL -----END PGP SIGNATURE----- --Apple-Mail-10--122094842-- From owner-p4-projects@FreeBSD.ORG Mon Jun 8 17:19:12 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 636991065670; Mon, 8 Jun 2009 17:19:12 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 1E908106564A for ; Mon, 8 Jun 2009 17:19:12 +0000 (UTC) (envelope-from truncs@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id E664D8FC13 for ; Mon, 8 Jun 2009 17:19:11 +0000 (UTC) (envelope-from truncs@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n58HJ4ko093809 for ; Mon, 8 Jun 2009 17:19:04 GMT (envelope-from truncs@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n58HJ21L093799 for perforce@freebsd.org; Mon, 8 Jun 2009 17:19:02 GMT (envelope-from truncs@FreeBSD.org) Date: Mon, 8 Jun 2009 17:19:02 GMT Message-Id: <200906081719.n58HJ21L093799@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to truncs@FreeBSD.org using -f From: Aditya Sarawgi To: Perforce Change Reviews Cc: Subject: PERFORCE change 163806 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 08 Jun 2009 17:19:13 -0000 http://perforce.freebsd.org/chv.cgi?CH=163806 Change 163806 by truncs@aditya on 2009/06/08 17:18:37 The old in-memory superblock is not needed sparc64-bitops.h is not used Affected files ... .. //depot/projects/soc2009/soc_ext2fs/src/sys/gnu/fs/ext2fs/ext2_fs_sb.h#4 delete .. //depot/projects/soc2009/soc_ext2fs/src/sys/gnu/fs/ext2fs/sparc64-bitops.h#3 delete Differences ... From owner-p4-projects@FreeBSD.ORG Mon Jun 8 17:48:43 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id A97B3106575A; Mon, 8 Jun 2009 17:48:42 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 60043106574C for ; Mon, 8 Jun 2009 17:48:42 +0000 (UTC) (envelope-from truncs@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 4D3BF8FC1A for ; Mon, 8 Jun 2009 17:48:42 +0000 (UTC) (envelope-from truncs@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n58HmgXb098225 for ; Mon, 8 Jun 2009 17:48:42 GMT (envelope-from truncs@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n58HmgjM098223 for perforce@freebsd.org; Mon, 8 Jun 2009 17:48:42 GMT (envelope-from truncs@FreeBSD.org) Date: Mon, 8 Jun 2009 17:48:42 GMT Message-Id: <200906081748.n58HmgjM098223@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to truncs@FreeBSD.org using -f From: Aditya Sarawgi To: Perforce Change Reviews Cc: Subject: PERFORCE change 163810 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 08 Jun 2009 17:48:44 -0000 http://perforce.freebsd.org/chv.cgi?CH=163810 Change 163810 by truncs@aditya on 2009/06/08 17:47:46 integrate changes made by stas@ Affected files ... .. //depot/projects/soc2009/soc_ext2fs/src/sys/gnu/fs/ext2fs/ext2_vfsops.c#6 edit Differences ... ==== //depot/projects/soc2009/soc_ext2fs/src/sys/gnu/fs/ext2fs/ext2_vfsops.c#6 (text+ko) ==== @@ -217,12 +217,12 @@ if ((fs->e2fs->s_state & EXT2_VALID_FS) == 0 || (fs->e2fs->s_state & EXT2_ERROR_FS)) { if (mp->mnt_flag & MNT_FORCE) { - printf("WARNING: %s was not properly " - "dismounted\n", fs->e2fs_fsmnt); + printf( +"WARNING: %s was not properly "dismounted\n", fs->e2fs_fsmnt); } else { - printf("WARNING: R/W mount of %s " - "denied. Filesystem is not clean" - " - run fsck\n", fs->e2fs_fsmnt); + printf( +"WARNING: R/W mount of %s denied. Filesystem is not clean - run fsck\n", + fs->e2fs_fsmnt); return (EPERM); } } @@ -358,8 +358,9 @@ } if (es->s_rev_level > EXT2_GOOD_OLD_REV) { if (es->s_feature_incompat & ~EXT2_FEATURE_INCOMPAT_SUPP) { - printf("WARNING: mount of %s denied due to unsupported " - "optional features\n", devtoname(dev)); + printf( +"WARNING: mount of %s denied due to unsupported optional features\n", + devtoname(dev)); return (1); } if (!ronly && @@ -628,11 +629,11 @@ if ((es->s_state & EXT2_VALID_FS) == 0 || (es->s_state & EXT2_ERROR_FS)) { if (ronly || (mp->mnt_flag & MNT_FORCE)) { - printf("WARNING: Filesystem was not properly " - "dismounted\n"); + printf( +"WARNING: Filesystem was not properly dismounted\n"); } else { - printf("WARNING: R/W mount denied. Filesystem " - "is not clean - run fsck\n"); + printf( +"WARNING: R/W mount denied. Filesystem is not clean - run fsck\n"); error = EPERM; goto out; } From owner-p4-projects@FreeBSD.ORG Mon Jun 8 18:36:40 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 034A5106566B; Mon, 8 Jun 2009 18:36:40 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 82EAC1065670 for ; Mon, 8 Jun 2009 18:36:39 +0000 (UTC) (envelope-from jhb@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 6EEC38FC1A for ; Mon, 8 Jun 2009 18:36:39 +0000 (UTC) (envelope-from jhb@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n58IadxH003068 for ; Mon, 8 Jun 2009 18:36:39 GMT (envelope-from jhb@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n58Iaa1g003062 for perforce@freebsd.org; Mon, 8 Jun 2009 18:36:36 GMT (envelope-from jhb@freebsd.org) Date: Mon, 8 Jun 2009 18:36:36 GMT Message-Id: <200906081836.n58Iaa1g003062@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to jhb@freebsd.org using -f From: John Baldwin To: Perforce Change Reviews Cc: Subject: PERFORCE change 163814 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 08 Jun 2009 18:36:40 -0000 http://perforce.freebsd.org/chv.cgi?CH=163814 Change 163814 by jhb@jhb_jhbbsd on 2009/06/08 18:36:33 IFC @163812 Affected files ... .. //depot/projects/multipass/sys/Makefile#3 integrate .. //depot/projects/multipass/sys/amd64/acpica/OsdEnvironment.c#2 integrate .. //depot/projects/multipass/sys/amd64/acpica/acpi_machdep.c#4 integrate .. //depot/projects/multipass/sys/amd64/acpica/acpi_wakeup.c#3 integrate .. //depot/projects/multipass/sys/amd64/acpica/madt.c#3 integrate .. //depot/projects/multipass/sys/amd64/amd64/dump_machdep.c#2 integrate .. //depot/projects/multipass/sys/amd64/amd64/mca.c#2 integrate .. //depot/projects/multipass/sys/amd64/amd64/minidump_machdep.c#2 integrate .. //depot/projects/multipass/sys/amd64/amd64/pmap.c#4 integrate .. //depot/projects/multipass/sys/amd64/amd64/support.S#2 integrate .. //depot/projects/multipass/sys/amd64/conf/GENERIC#4 integrate .. //depot/projects/multipass/sys/amd64/conf/MAC#2 delete .. //depot/projects/multipass/sys/amd64/include/param.h#3 integrate .. //depot/projects/multipass/sys/amd64/linux32/linux.h#4 integrate .. //depot/projects/multipass/sys/amd64/linux32/linux32_sysent.c#3 integrate .. //depot/projects/multipass/sys/arm/arm/dump_machdep.c#3 integrate .. //depot/projects/multipass/sys/arm/arm/pmap.c#4 integrate .. //depot/projects/multipass/sys/arm/at91/ohci_atmelarm.c#3 delete .. //depot/projects/multipass/sys/arm/conf/AVILA#4 integrate .. //depot/projects/multipass/sys/arm/xscale/ixp425/files.ixp425#3 integrate .. //depot/projects/multipass/sys/arm/xscale/ixp425/if_npe.c#3 integrate .. //depot/projects/multipass/sys/arm/xscale/ixp425/ixp425_qmgr.c#3 integrate .. //depot/projects/multipass/sys/arm/xscale/ixp425/ixp425_qmgr.h#2 integrate .. //depot/projects/multipass/sys/boot/common/boot.c#2 integrate .. //depot/projects/multipass/sys/boot/common/ufsread.c#2 integrate .. //depot/projects/multipass/sys/boot/i386/libi386/Makefile#3 integrate .. //depot/projects/multipass/sys/boot/i386/libi386/biosacpi.c#2 integrate .. //depot/projects/multipass/sys/boot/i386/libi386/biosdisk.c#3 integrate .. //depot/projects/multipass/sys/boot/i386/libi386/biospnp.c#2 integrate .. //depot/projects/multipass/sys/boot/ia64/ski/acpi_stub.c#2 integrate .. //depot/projects/multipass/sys/boot/pc98/boot2/sys.c#2 integrate .. //depot/projects/multipass/sys/boot/uboot/lib/disk.c#4 integrate .. //depot/projects/multipass/sys/boot/uboot/lib/net.c#3 integrate .. //depot/projects/multipass/sys/cddl/boot/zfs/zfssubr.c#4 integrate .. //depot/projects/multipass/sys/cddl/compat/opensolaris/kern/opensolaris.c#3 integrate .. //depot/projects/multipass/sys/cddl/compat/opensolaris/kern/opensolaris_acl.c#1 branch .. //depot/projects/multipass/sys/cddl/compat/opensolaris/kern/opensolaris_misc.c#3 integrate .. //depot/projects/multipass/sys/cddl/compat/opensolaris/kern/opensolaris_policy.c#3 integrate .. //depot/projects/multipass/sys/cddl/compat/opensolaris/sys/acl.h#1 branch .. //depot/projects/multipass/sys/cddl/compat/opensolaris/sys/mutex.h#3 integrate .. //depot/projects/multipass/sys/cddl/compat/opensolaris/sys/rwlock.h#3 integrate .. //depot/projects/multipass/sys/cddl/contrib/opensolaris/common/acl/acl_common.c#3 integrate .. //depot/projects/multipass/sys/cddl/contrib/opensolaris/common/acl/acl_common.h#2 integrate .. //depot/projects/multipass/sys/cddl/contrib/opensolaris/uts/common/dtrace/dtrace.c#2 integrate .. //depot/projects/multipass/sys/cddl/contrib/opensolaris/uts/common/fs/gfs.c#2 integrate .. //depot/projects/multipass/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/arc.c#3 integrate .. //depot/projects/multipass/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zfs_acl.h#2 integrate .. //depot/projects/multipass/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev.c#2 integrate .. //depot/projects/multipass/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_acl.c#2 integrate .. //depot/projects/multipass/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_ioctl.c#3 integrate .. //depot/projects/multipass/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vfsops.c#3 integrate .. //depot/projects/multipass/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vnops.c#4 integrate .. //depot/projects/multipass/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zio.c#3 integrate .. //depot/projects/multipass/sys/cddl/contrib/opensolaris/uts/common/rpc/xdr.h#2 integrate .. //depot/projects/multipass/sys/cddl/contrib/opensolaris/uts/common/sys/acl.h#2 integrate .. //depot/projects/multipass/sys/cddl/contrib/opensolaris/uts/common/sys/acl_impl.h#2 integrate .. //depot/projects/multipass/sys/cddl/dev/lockstat/lockstat.c#1 branch .. //depot/projects/multipass/sys/compat/freebsd32/freebsd32_misc.c#4 integrate .. //depot/projects/multipass/sys/compat/freebsd32/freebsd32_sysent.c#4 integrate .. //depot/projects/multipass/sys/compat/linux/linux_file.c#3 integrate .. //depot/projects/multipass/sys/compat/linux/linux_getcwd.c#3 integrate .. //depot/projects/multipass/sys/compat/linux/linux_ioctl.c#4 integrate .. //depot/projects/multipass/sys/compat/linux/linux_mib.c#3 integrate .. //depot/projects/multipass/sys/compat/linux/linux_misc.c#4 integrate .. //depot/projects/multipass/sys/compat/linux/linux_socket.c#4 integrate .. //depot/projects/multipass/sys/compat/linux/linux_stats.c#4 integrate .. //depot/projects/multipass/sys/compat/ndis/kern_ndis.c#3 integrate .. //depot/projects/multipass/sys/compat/ndis/subr_usbd.c#3 integrate .. //depot/projects/multipass/sys/compat/svr4/svr4_fcntl.c#2 integrate .. //depot/projects/multipass/sys/compat/svr4/svr4_ioctl.c#3 integrate .. //depot/projects/multipass/sys/compat/svr4/svr4_misc.c#3 integrate .. //depot/projects/multipass/sys/compat/svr4/svr4_resource.c#2 integrate .. //depot/projects/multipass/sys/compat/svr4/svr4_signal.c#2 integrate .. //depot/projects/multipass/sys/compat/svr4/svr4_socket.c#2 integrate .. //depot/projects/multipass/sys/compat/svr4/svr4_stat.c#3 integrate .. //depot/projects/multipass/sys/compat/svr4/svr4_stream.c#2 integrate .. //depot/projects/multipass/sys/compat/svr4/svr4_sysconfig.h#2 integrate .. //depot/projects/multipass/sys/compat/svr4/svr4_sysent.c#3 integrate .. //depot/projects/multipass/sys/conf/NOTES#4 integrate .. //depot/projects/multipass/sys/conf/files#4 integrate .. //depot/projects/multipass/sys/conf/files.i386#4 integrate .. //depot/projects/multipass/sys/conf/files.powerpc#4 integrate .. //depot/projects/multipass/sys/conf/kern.pre.mk#3 integrate .. //depot/projects/multipass/sys/conf/options#4 integrate .. //depot/projects/multipass/sys/contrib/dev/acpica/CHANGES.txt#2 delete .. //depot/projects/multipass/sys/contrib/dev/acpica/acapps.h#2 delete .. //depot/projects/multipass/sys/contrib/dev/acpica/acconfig.h#2 delete .. //depot/projects/multipass/sys/contrib/dev/acpica/acdebug.h#2 delete .. //depot/projects/multipass/sys/contrib/dev/acpica/acdisasm.h#2 delete .. //depot/projects/multipass/sys/contrib/dev/acpica/acdispat.h#2 delete .. //depot/projects/multipass/sys/contrib/dev/acpica/acefi.h#2 delete .. //depot/projects/multipass/sys/contrib/dev/acpica/acenv.h#2 delete .. //depot/projects/multipass/sys/contrib/dev/acpica/acevents.h#2 delete .. //depot/projects/multipass/sys/contrib/dev/acpica/acexcep.h#2 delete .. //depot/projects/multipass/sys/contrib/dev/acpica/acfreebsd.h#2 delete .. //depot/projects/multipass/sys/contrib/dev/acpica/acgcc.h#2 delete .. //depot/projects/multipass/sys/contrib/dev/acpica/acglobal.h#2 delete .. //depot/projects/multipass/sys/contrib/dev/acpica/achware.h#2 delete .. //depot/projects/multipass/sys/contrib/dev/acpica/acinterp.h#2 delete .. //depot/projects/multipass/sys/contrib/dev/acpica/aclocal.h#2 delete .. //depot/projects/multipass/sys/contrib/dev/acpica/acmacros.h#2 delete .. //depot/projects/multipass/sys/contrib/dev/acpica/acnames.h#2 delete .. //depot/projects/multipass/sys/contrib/dev/acpica/acnamesp.h#2 delete .. //depot/projects/multipass/sys/contrib/dev/acpica/acobject.h#2 delete .. //depot/projects/multipass/sys/contrib/dev/acpica/acopcode.h#2 delete .. //depot/projects/multipass/sys/contrib/dev/acpica/acoutput.h#2 delete .. //depot/projects/multipass/sys/contrib/dev/acpica/acparser.h#2 delete .. //depot/projects/multipass/sys/contrib/dev/acpica/acpi.h#2 delete .. //depot/projects/multipass/sys/contrib/dev/acpica/acpica_prep.sh#2 integrate .. //depot/projects/multipass/sys/contrib/dev/acpica/acpiosxf.h#2 delete .. //depot/projects/multipass/sys/contrib/dev/acpica/acpixf.h#2 delete .. //depot/projects/multipass/sys/contrib/dev/acpica/acresrc.h#2 delete .. //depot/projects/multipass/sys/contrib/dev/acpica/acstruct.h#2 delete .. //depot/projects/multipass/sys/contrib/dev/acpica/actables.h#2 delete .. //depot/projects/multipass/sys/contrib/dev/acpica/actbl.h#2 delete .. //depot/projects/multipass/sys/contrib/dev/acpica/actbl1.h#2 delete .. //depot/projects/multipass/sys/contrib/dev/acpica/actbl2.h#2 delete .. //depot/projects/multipass/sys/contrib/dev/acpica/actypes.h#2 delete .. //depot/projects/multipass/sys/contrib/dev/acpica/acutils.h#2 delete .. //depot/projects/multipass/sys/contrib/dev/acpica/aecommon.h#2 delete .. //depot/projects/multipass/sys/contrib/dev/acpica/amlcode.h#2 delete .. //depot/projects/multipass/sys/contrib/dev/acpica/amlresrc.h#2 delete .. //depot/projects/multipass/sys/contrib/dev/acpica/changes.txt#1 branch .. //depot/projects/multipass/sys/contrib/dev/acpica/common/adfile.c#2 integrate .. //depot/projects/multipass/sys/contrib/dev/acpica/common/adisasm.c#2 integrate .. //depot/projects/multipass/sys/contrib/dev/acpica/common/adwalk.c#2 integrate .. //depot/projects/multipass/sys/contrib/dev/acpica/common/dmrestag.c#2 integrate .. //depot/projects/multipass/sys/contrib/dev/acpica/common/dmtable.c#2 integrate .. //depot/projects/multipass/sys/contrib/dev/acpica/common/dmtbdump.c#2 integrate .. //depot/projects/multipass/sys/contrib/dev/acpica/common/dmtbinfo.c#2 integrate .. //depot/projects/multipass/sys/contrib/dev/acpica/common/getopt.c#2 integrate .. //depot/projects/multipass/sys/contrib/dev/acpica/compiler/aslanalyze.c#2 integrate .. //depot/projects/multipass/sys/contrib/dev/acpica/compiler/aslcodegen.c#2 integrate .. //depot/projects/multipass/sys/contrib/dev/acpica/compiler/aslcompile.c#2 integrate .. //depot/projects/multipass/sys/contrib/dev/acpica/compiler/aslcompiler.h#2 integrate .. //depot/projects/multipass/sys/contrib/dev/acpica/compiler/aslcompiler.l#2 integrate .. //depot/projects/multipass/sys/contrib/dev/acpica/compiler/aslcompiler.y#2 integrate .. //depot/projects/multipass/sys/contrib/dev/acpica/compiler/asldefine.h#2 integrate .. //depot/projects/multipass/sys/contrib/dev/acpica/compiler/aslerror.c#2 integrate .. //depot/projects/multipass/sys/contrib/dev/acpica/compiler/aslfiles.c#2 integrate .. //depot/projects/multipass/sys/contrib/dev/acpica/compiler/aslfold.c#2 integrate .. //depot/projects/multipass/sys/contrib/dev/acpica/compiler/aslglobal.h#2 integrate .. //depot/projects/multipass/sys/contrib/dev/acpica/compiler/asllength.c#2 integrate .. //depot/projects/multipass/sys/contrib/dev/acpica/compiler/asllisting.c#2 integrate .. //depot/projects/multipass/sys/contrib/dev/acpica/compiler/aslload.c#2 integrate .. //depot/projects/multipass/sys/contrib/dev/acpica/compiler/asllookup.c#2 integrate .. //depot/projects/multipass/sys/contrib/dev/acpica/compiler/aslmain.c#2 integrate .. //depot/projects/multipass/sys/contrib/dev/acpica/compiler/aslmap.c#2 integrate .. //depot/projects/multipass/sys/contrib/dev/acpica/compiler/aslopcodes.c#2 integrate .. //depot/projects/multipass/sys/contrib/dev/acpica/compiler/asloperands.c#2 integrate .. //depot/projects/multipass/sys/contrib/dev/acpica/compiler/aslopt.c#2 integrate .. //depot/projects/multipass/sys/contrib/dev/acpica/compiler/aslresource.c#2 integrate .. //depot/projects/multipass/sys/contrib/dev/acpica/compiler/aslrestype1.c#2 integrate .. //depot/projects/multipass/sys/contrib/dev/acpica/compiler/aslrestype2.c#2 integrate .. //depot/projects/multipass/sys/contrib/dev/acpica/compiler/aslstartup.c#1 branch .. //depot/projects/multipass/sys/contrib/dev/acpica/compiler/aslstubs.c#2 integrate .. //depot/projects/multipass/sys/contrib/dev/acpica/compiler/asltransform.c#2 integrate .. //depot/projects/multipass/sys/contrib/dev/acpica/compiler/asltree.c#2 integrate .. //depot/projects/multipass/sys/contrib/dev/acpica/compiler/asltypes.h#2 integrate .. //depot/projects/multipass/sys/contrib/dev/acpica/compiler/aslutils.c#2 integrate .. //depot/projects/multipass/sys/contrib/dev/acpica/dbcmds.c#2 delete .. //depot/projects/multipass/sys/contrib/dev/acpica/dbdisply.c#2 delete .. //depot/projects/multipass/sys/contrib/dev/acpica/dbexec.c#2 delete .. //depot/projects/multipass/sys/contrib/dev/acpica/dbfileio.c#2 delete .. //depot/projects/multipass/sys/contrib/dev/acpica/dbhistry.c#2 delete .. //depot/projects/multipass/sys/contrib/dev/acpica/dbinput.c#2 delete .. //depot/projects/multipass/sys/contrib/dev/acpica/dbstats.c#2 delete .. //depot/projects/multipass/sys/contrib/dev/acpica/dbutils.c#2 delete .. //depot/projects/multipass/sys/contrib/dev/acpica/dbxface.c#2 delete .. //depot/projects/multipass/sys/contrib/dev/acpica/debugger/dbcmds.c#1 branch .. //depot/projects/multipass/sys/contrib/dev/acpica/debugger/dbdisply.c#1 branch .. //depot/projects/multipass/sys/contrib/dev/acpica/debugger/dbexec.c#1 branch .. //depot/projects/multipass/sys/contrib/dev/acpica/debugger/dbfileio.c#1 branch .. //depot/projects/multipass/sys/contrib/dev/acpica/debugger/dbhistry.c#1 branch .. //depot/projects/multipass/sys/contrib/dev/acpica/debugger/dbinput.c#1 branch .. //depot/projects/multipass/sys/contrib/dev/acpica/debugger/dbstats.c#1 branch .. //depot/projects/multipass/sys/contrib/dev/acpica/debugger/dbutils.c#1 branch .. //depot/projects/multipass/sys/contrib/dev/acpica/debugger/dbxface.c#1 branch .. //depot/projects/multipass/sys/contrib/dev/acpica/disassembler/dmbuffer.c#1 branch .. //depot/projects/multipass/sys/contrib/dev/acpica/disassembler/dmnames.c#1 branch .. //depot/projects/multipass/sys/contrib/dev/acpica/disassembler/dmobject.c#1 branch .. //depot/projects/multipass/sys/contrib/dev/acpica/disassembler/dmopcode.c#1 branch .. //depot/projects/multipass/sys/contrib/dev/acpica/disassembler/dmresrc.c#1 branch .. //depot/projects/multipass/sys/contrib/dev/acpica/disassembler/dmresrcl.c#1 branch .. //depot/projects/multipass/sys/contrib/dev/acpica/disassembler/dmresrcs.c#1 branch .. //depot/projects/multipass/sys/contrib/dev/acpica/disassembler/dmutils.c#1 branch .. //depot/projects/multipass/sys/contrib/dev/acpica/disassembler/dmwalk.c#1 branch .. //depot/projects/multipass/sys/contrib/dev/acpica/dispatcher/dsfield.c#1 branch .. //depot/projects/multipass/sys/contrib/dev/acpica/dispatcher/dsinit.c#1 branch .. //depot/projects/multipass/sys/contrib/dev/acpica/dispatcher/dsmethod.c#1 branch .. //depot/projects/multipass/sys/contrib/dev/acpica/dispatcher/dsmthdat.c#1 branch .. //depot/projects/multipass/sys/contrib/dev/acpica/dispatcher/dsobject.c#1 branch .. //depot/projects/multipass/sys/contrib/dev/acpica/dispatcher/dsopcode.c#1 branch .. //depot/projects/multipass/sys/contrib/dev/acpica/dispatcher/dsutils.c#1 branch .. //depot/projects/multipass/sys/contrib/dev/acpica/dispatcher/dswexec.c#1 branch .. //depot/projects/multipass/sys/contrib/dev/acpica/dispatcher/dswload.c#1 branch .. //depot/projects/multipass/sys/contrib/dev/acpica/dispatcher/dswscope.c#1 branch .. //depot/projects/multipass/sys/contrib/dev/acpica/dispatcher/dswstate.c#1 branch .. //depot/projects/multipass/sys/contrib/dev/acpica/dmbuffer.c#2 delete .. //depot/projects/multipass/sys/contrib/dev/acpica/dmnames.c#2 delete .. //depot/projects/multipass/sys/contrib/dev/acpica/dmobject.c#2 delete .. //depot/projects/multipass/sys/contrib/dev/acpica/dmopcode.c#2 delete .. //depot/projects/multipass/sys/contrib/dev/acpica/dmresrc.c#2 delete .. //depot/projects/multipass/sys/contrib/dev/acpica/dmresrcl.c#2 delete .. //depot/projects/multipass/sys/contrib/dev/acpica/dmresrcs.c#2 delete .. //depot/projects/multipass/sys/contrib/dev/acpica/dmutils.c#2 delete .. //depot/projects/multipass/sys/contrib/dev/acpica/dmwalk.c#2 delete .. //depot/projects/multipass/sys/contrib/dev/acpica/dsfield.c#2 delete .. //depot/projects/multipass/sys/contrib/dev/acpica/dsinit.c#2 delete .. //depot/projects/multipass/sys/contrib/dev/acpica/dsmethod.c#2 delete .. //depot/projects/multipass/sys/contrib/dev/acpica/dsmthdat.c#2 delete .. //depot/projects/multipass/sys/contrib/dev/acpica/dsobject.c#2 delete .. //depot/projects/multipass/sys/contrib/dev/acpica/dsopcode.c#2 delete .. //depot/projects/multipass/sys/contrib/dev/acpica/dsutils.c#2 delete .. //depot/projects/multipass/sys/contrib/dev/acpica/dswexec.c#2 delete .. //depot/projects/multipass/sys/contrib/dev/acpica/dswload.c#2 delete .. //depot/projects/multipass/sys/contrib/dev/acpica/dswscope.c#2 delete .. //depot/projects/multipass/sys/contrib/dev/acpica/dswstate.c#2 delete .. //depot/projects/multipass/sys/contrib/dev/acpica/events/evevent.c#1 branch .. //depot/projects/multipass/sys/contrib/dev/acpica/events/evgpe.c#1 branch .. //depot/projects/multipass/sys/contrib/dev/acpica/events/evgpeblk.c#1 branch .. //depot/projects/multipass/sys/contrib/dev/acpica/events/evmisc.c#1 branch .. //depot/projects/multipass/sys/contrib/dev/acpica/events/evregion.c#1 branch .. //depot/projects/multipass/sys/contrib/dev/acpica/events/evrgnini.c#1 branch .. //depot/projects/multipass/sys/contrib/dev/acpica/events/evsci.c#1 branch .. //depot/projects/multipass/sys/contrib/dev/acpica/events/evxface.c#1 branch .. //depot/projects/multipass/sys/contrib/dev/acpica/events/evxfevnt.c#1 branch .. //depot/projects/multipass/sys/contrib/dev/acpica/events/evxfregn.c#1 branch .. //depot/projects/multipass/sys/contrib/dev/acpica/evevent.c#2 delete .. //depot/projects/multipass/sys/contrib/dev/acpica/evgpe.c#2 delete .. //depot/projects/multipass/sys/contrib/dev/acpica/evgpeblk.c#2 delete .. //depot/projects/multipass/sys/contrib/dev/acpica/evmisc.c#2 delete .. //depot/projects/multipass/sys/contrib/dev/acpica/evregion.c#2 delete .. //depot/projects/multipass/sys/contrib/dev/acpica/evrgnini.c#2 delete .. //depot/projects/multipass/sys/contrib/dev/acpica/evsci.c#2 delete .. //depot/projects/multipass/sys/contrib/dev/acpica/evxface.c#2 delete .. //depot/projects/multipass/sys/contrib/dev/acpica/evxfevnt.c#2 delete .. //depot/projects/multipass/sys/contrib/dev/acpica/evxfregn.c#2 delete .. //depot/projects/multipass/sys/contrib/dev/acpica/exconfig.c#2 delete .. //depot/projects/multipass/sys/contrib/dev/acpica/exconvrt.c#2 delete .. //depot/projects/multipass/sys/contrib/dev/acpica/excreate.c#2 delete .. //depot/projects/multipass/sys/contrib/dev/acpica/exdump.c#2 delete .. //depot/projects/multipass/sys/contrib/dev/acpica/executer/exconfig.c#1 branch .. //depot/projects/multipass/sys/contrib/dev/acpica/executer/exconvrt.c#1 branch .. //depot/projects/multipass/sys/contrib/dev/acpica/executer/excreate.c#1 branch .. //depot/projects/multipass/sys/contrib/dev/acpica/executer/exdump.c#1 branch .. //depot/projects/multipass/sys/contrib/dev/acpica/executer/exfield.c#1 branch .. //depot/projects/multipass/sys/contrib/dev/acpica/executer/exfldio.c#1 branch .. //depot/projects/multipass/sys/contrib/dev/acpica/executer/exmisc.c#1 branch .. //depot/projects/multipass/sys/contrib/dev/acpica/executer/exmutex.c#1 branch .. //depot/projects/multipass/sys/contrib/dev/acpica/executer/exnames.c#1 branch .. //depot/projects/multipass/sys/contrib/dev/acpica/executer/exoparg1.c#1 branch .. //depot/projects/multipass/sys/contrib/dev/acpica/executer/exoparg2.c#1 branch .. //depot/projects/multipass/sys/contrib/dev/acpica/executer/exoparg3.c#1 branch .. //depot/projects/multipass/sys/contrib/dev/acpica/executer/exoparg6.c#1 branch .. //depot/projects/multipass/sys/contrib/dev/acpica/executer/exprep.c#1 branch .. //depot/projects/multipass/sys/contrib/dev/acpica/executer/exregion.c#1 branch .. //depot/projects/multipass/sys/contrib/dev/acpica/executer/exresnte.c#1 branch .. //depot/projects/multipass/sys/contrib/dev/acpica/executer/exresolv.c#1 branch .. //depot/projects/multipass/sys/contrib/dev/acpica/executer/exresop.c#1 branch .. //depot/projects/multipass/sys/contrib/dev/acpica/executer/exstore.c#1 branch .. //depot/projects/multipass/sys/contrib/dev/acpica/executer/exstoren.c#1 branch .. //depot/projects/multipass/sys/contrib/dev/acpica/executer/exstorob.c#1 branch .. //depot/projects/multipass/sys/contrib/dev/acpica/executer/exsystem.c#1 branch .. //depot/projects/multipass/sys/contrib/dev/acpica/executer/exutils.c#1 branch .. //depot/projects/multipass/sys/contrib/dev/acpica/exfield.c#2 delete .. //depot/projects/multipass/sys/contrib/dev/acpica/exfldio.c#2 delete .. //depot/projects/multipass/sys/contrib/dev/acpica/exmisc.c#2 delete .. //depot/projects/multipass/sys/contrib/dev/acpica/exmutex.c#2 delete .. //depot/projects/multipass/sys/contrib/dev/acpica/exnames.c#2 delete .. //depot/projects/multipass/sys/contrib/dev/acpica/exoparg1.c#2 delete .. //depot/projects/multipass/sys/contrib/dev/acpica/exoparg2.c#2 delete .. //depot/projects/multipass/sys/contrib/dev/acpica/exoparg3.c#2 delete .. //depot/projects/multipass/sys/contrib/dev/acpica/exoparg6.c#2 delete .. //depot/projects/multipass/sys/contrib/dev/acpica/exprep.c#2 delete .. //depot/projects/multipass/sys/contrib/dev/acpica/exregion.c#2 delete .. //depot/projects/multipass/sys/contrib/dev/acpica/exresnte.c#2 delete .. //depot/projects/multipass/sys/contrib/dev/acpica/exresolv.c#2 delete .. //depot/projects/multipass/sys/contrib/dev/acpica/exresop.c#2 delete .. //depot/projects/multipass/sys/contrib/dev/acpica/exstore.c#2 delete .. //depot/projects/multipass/sys/contrib/dev/acpica/exstoren.c#2 delete .. //depot/projects/multipass/sys/contrib/dev/acpica/exstorob.c#2 delete .. //depot/projects/multipass/sys/contrib/dev/acpica/exsystem.c#2 delete .. //depot/projects/multipass/sys/contrib/dev/acpica/exutils.c#2 delete .. //depot/projects/multipass/sys/contrib/dev/acpica/hardware/hwacpi.c#1 branch .. //depot/projects/multipass/sys/contrib/dev/acpica/hardware/hwgpe.c#1 branch .. //depot/projects/multipass/sys/contrib/dev/acpica/hardware/hwregs.c#1 branch .. //depot/projects/multipass/sys/contrib/dev/acpica/hardware/hwsleep.c#1 branch .. //depot/projects/multipass/sys/contrib/dev/acpica/hardware/hwtimer.c#1 branch .. //depot/projects/multipass/sys/contrib/dev/acpica/hardware/hwvalid.c#1 branch .. //depot/projects/multipass/sys/contrib/dev/acpica/hardware/hwxface.c#1 branch .. //depot/projects/multipass/sys/contrib/dev/acpica/hwacpi.c#2 delete .. //depot/projects/multipass/sys/contrib/dev/acpica/hwgpe.c#2 delete .. //depot/projects/multipass/sys/contrib/dev/acpica/hwregs.c#2 delete .. //depot/projects/multipass/sys/contrib/dev/acpica/hwsleep.c#2 delete .. //depot/projects/multipass/sys/contrib/dev/acpica/hwtimer.c#2 delete .. //depot/projects/multipass/sys/contrib/dev/acpica/include/acapps.h#1 branch .. //depot/projects/multipass/sys/contrib/dev/acpica/include/accommon.h#1 branch .. //depot/projects/multipass/sys/contrib/dev/acpica/include/acconfig.h#1 branch .. //depot/projects/multipass/sys/contrib/dev/acpica/include/acdebug.h#1 branch .. //depot/projects/multipass/sys/contrib/dev/acpica/include/acdisasm.h#1 branch .. //depot/projects/multipass/sys/contrib/dev/acpica/include/acdispat.h#1 branch .. //depot/projects/multipass/sys/contrib/dev/acpica/include/acevents.h#1 branch .. //depot/projects/multipass/sys/contrib/dev/acpica/include/acexcep.h#1 branch .. //depot/projects/multipass/sys/contrib/dev/acpica/include/acglobal.h#1 branch .. //depot/projects/multipass/sys/contrib/dev/acpica/include/achware.h#1 branch .. //depot/projects/multipass/sys/contrib/dev/acpica/include/acinterp.h#1 branch .. //depot/projects/multipass/sys/contrib/dev/acpica/include/aclocal.h#1 branch .. //depot/projects/multipass/sys/contrib/dev/acpica/include/acmacros.h#1 branch .. //depot/projects/multipass/sys/contrib/dev/acpica/include/acnames.h#1 branch .. //depot/projects/multipass/sys/contrib/dev/acpica/include/acnamesp.h#1 branch .. //depot/projects/multipass/sys/contrib/dev/acpica/include/acobject.h#1 branch .. //depot/projects/multipass/sys/contrib/dev/acpica/include/acopcode.h#1 branch .. //depot/projects/multipass/sys/contrib/dev/acpica/include/acoutput.h#1 branch .. //depot/projects/multipass/sys/contrib/dev/acpica/include/acparser.h#1 branch .. //depot/projects/multipass/sys/contrib/dev/acpica/include/acpi.h#1 branch .. //depot/projects/multipass/sys/contrib/dev/acpica/include/acpiosxf.h#1 branch .. //depot/projects/multipass/sys/contrib/dev/acpica/include/acpixf.h#1 branch .. //depot/projects/multipass/sys/contrib/dev/acpica/include/acpredef.h#1 branch .. //depot/projects/multipass/sys/contrib/dev/acpica/include/acresrc.h#1 branch .. //depot/projects/multipass/sys/contrib/dev/acpica/include/acrestyp.h#1 branch .. //depot/projects/multipass/sys/contrib/dev/acpica/include/acstruct.h#1 branch .. //depot/projects/multipass/sys/contrib/dev/acpica/include/actables.h#1 branch .. //depot/projects/multipass/sys/contrib/dev/acpica/include/actbl.h#1 branch .. //depot/projects/multipass/sys/contrib/dev/acpica/include/actbl1.h#1 branch .. //depot/projects/multipass/sys/contrib/dev/acpica/include/actypes.h#1 branch .. //depot/projects/multipass/sys/contrib/dev/acpica/include/acutils.h#1 branch .. //depot/projects/multipass/sys/contrib/dev/acpica/include/amlcode.h#1 branch .. //depot/projects/multipass/sys/contrib/dev/acpica/include/amlresrc.h#1 branch .. //depot/projects/multipass/sys/contrib/dev/acpica/include/platform/acenv.h#1 branch .. //depot/projects/multipass/sys/contrib/dev/acpica/include/platform/acfreebsd.h#1 branch .. //depot/projects/multipass/sys/contrib/dev/acpica/include/platform/acgcc.h#1 branch .. //depot/projects/multipass/sys/contrib/dev/acpica/namespace/nsaccess.c#1 branch .. //depot/projects/multipass/sys/contrib/dev/acpica/namespace/nsalloc.c#1 branch .. //depot/projects/multipass/sys/contrib/dev/acpica/namespace/nsdump.c#1 branch .. //depot/projects/multipass/sys/contrib/dev/acpica/namespace/nsdumpdv.c#1 branch .. //depot/projects/multipass/sys/contrib/dev/acpica/namespace/nseval.c#1 branch .. //depot/projects/multipass/sys/contrib/dev/acpica/namespace/nsinit.c#1 branch .. //depot/projects/multipass/sys/contrib/dev/acpica/namespace/nsload.c#1 branch .. //depot/projects/multipass/sys/contrib/dev/acpica/namespace/nsnames.c#1 branch .. //depot/projects/multipass/sys/contrib/dev/acpica/namespace/nsobject.c#1 branch .. //depot/projects/multipass/sys/contrib/dev/acpica/namespace/nsparse.c#1 branch .. //depot/projects/multipass/sys/contrib/dev/acpica/namespace/nspredef.c#1 branch .. //depot/projects/multipass/sys/contrib/dev/acpica/namespace/nssearch.c#1 branch .. //depot/projects/multipass/sys/contrib/dev/acpica/namespace/nsutils.c#1 branch .. //depot/projects/multipass/sys/contrib/dev/acpica/namespace/nswalk.c#1 branch .. //depot/projects/multipass/sys/contrib/dev/acpica/namespace/nsxfeval.c#1 branch .. //depot/projects/multipass/sys/contrib/dev/acpica/namespace/nsxfname.c#1 branch .. //depot/projects/multipass/sys/contrib/dev/acpica/namespace/nsxfobj.c#1 branch .. //depot/projects/multipass/sys/contrib/dev/acpica/nsaccess.c#2 delete .. //depot/projects/multipass/sys/contrib/dev/acpica/nsalloc.c#2 delete .. //depot/projects/multipass/sys/contrib/dev/acpica/nsdump.c#2 delete .. //depot/projects/multipass/sys/contrib/dev/acpica/nsdumpdv.c#2 delete .. //depot/projects/multipass/sys/contrib/dev/acpica/nseval.c#2 delete .. //depot/projects/multipass/sys/contrib/dev/acpica/nsinit.c#2 delete .. //depot/projects/multipass/sys/contrib/dev/acpica/nsload.c#2 delete .. //depot/projects/multipass/sys/contrib/dev/acpica/nsnames.c#2 delete .. //depot/projects/multipass/sys/contrib/dev/acpica/nsobject.c#2 delete .. //depot/projects/multipass/sys/contrib/dev/acpica/nsparse.c#2 delete .. //depot/projects/multipass/sys/contrib/dev/acpica/nssearch.c#2 delete .. //depot/projects/multipass/sys/contrib/dev/acpica/nsutils.c#2 delete .. //depot/projects/multipass/sys/contrib/dev/acpica/nswalk.c#2 delete .. //depot/projects/multipass/sys/contrib/dev/acpica/nsxfeval.c#2 delete .. //depot/projects/multipass/sys/contrib/dev/acpica/nsxfname.c#2 delete .. //depot/projects/multipass/sys/contrib/dev/acpica/nsxfobj.c#2 delete .. //depot/projects/multipass/sys/contrib/dev/acpica/osunixxf.c#2 integrate .. //depot/projects/multipass/sys/contrib/dev/acpica/parser/psargs.c#1 branch .. //depot/projects/multipass/sys/contrib/dev/acpica/parser/psloop.c#1 branch .. //depot/projects/multipass/sys/contrib/dev/acpica/parser/psopcode.c#1 branch .. //depot/projects/multipass/sys/contrib/dev/acpica/parser/psparse.c#1 branch .. //depot/projects/multipass/sys/contrib/dev/acpica/parser/psscope.c#1 branch .. //depot/projects/multipass/sys/contrib/dev/acpica/parser/pstree.c#1 branch .. //depot/projects/multipass/sys/contrib/dev/acpica/parser/psutils.c#1 branch .. //depot/projects/multipass/sys/contrib/dev/acpica/parser/pswalk.c#1 branch .. //depot/projects/multipass/sys/contrib/dev/acpica/parser/psxface.c#1 branch .. //depot/projects/multipass/sys/contrib/dev/acpica/psargs.c#2 delete .. //depot/projects/multipass/sys/contrib/dev/acpica/psloop.c#2 delete .. //depot/projects/multipass/sys/contrib/dev/acpica/psopcode.c#2 delete .. //depot/projects/multipass/sys/contrib/dev/acpica/psparse.c#2 delete .. //depot/projects/multipass/sys/contrib/dev/acpica/psscope.c#2 delete .. //depot/projects/multipass/sys/contrib/dev/acpica/pstree.c#2 delete .. //depot/projects/multipass/sys/contrib/dev/acpica/psutils.c#2 delete .. //depot/projects/multipass/sys/contrib/dev/acpica/pswalk.c#2 delete .. //depot/projects/multipass/sys/contrib/dev/acpica/psxface.c#2 delete .. //depot/projects/multipass/sys/contrib/dev/acpica/resources/rsaddr.c#1 branch .. //depot/projects/multipass/sys/contrib/dev/acpica/resources/rscalc.c#1 branch .. //depot/projects/multipass/sys/contrib/dev/acpica/resources/rscreate.c#1 branch .. //depot/projects/multipass/sys/contrib/dev/acpica/resources/rsdump.c#1 branch .. //depot/projects/multipass/sys/contrib/dev/acpica/resources/rsinfo.c#1 branch .. //depot/projects/multipass/sys/contrib/dev/acpica/resources/rsio.c#1 branch .. //depot/projects/multipass/sys/contrib/dev/acpica/resources/rsirq.c#1 branch .. //depot/projects/multipass/sys/contrib/dev/acpica/resources/rslist.c#1 branch .. //depot/projects/multipass/sys/contrib/dev/acpica/resources/rsmemory.c#1 branch .. //depot/projects/multipass/sys/contrib/dev/acpica/resources/rsmisc.c#1 branch .. //depot/projects/multipass/sys/contrib/dev/acpica/resources/rsutils.c#1 branch .. //depot/projects/multipass/sys/contrib/dev/acpica/resources/rsxface.c#1 branch .. //depot/projects/multipass/sys/contrib/dev/acpica/rsaddr.c#2 delete .. //depot/projects/multipass/sys/contrib/dev/acpica/rscalc.c#2 delete .. //depot/projects/multipass/sys/contrib/dev/acpica/rscreate.c#2 delete .. //depot/projects/multipass/sys/contrib/dev/acpica/rsdump.c#2 delete .. //depot/projects/multipass/sys/contrib/dev/acpica/rsinfo.c#2 delete .. //depot/projects/multipass/sys/contrib/dev/acpica/rsio.c#2 delete .. //depot/projects/multipass/sys/contrib/dev/acpica/rsirq.c#2 delete .. //depot/projects/multipass/sys/contrib/dev/acpica/rslist.c#2 delete .. //depot/projects/multipass/sys/contrib/dev/acpica/rsmemory.c#2 delete .. //depot/projects/multipass/sys/contrib/dev/acpica/rsmisc.c#2 delete .. //depot/projects/multipass/sys/contrib/dev/acpica/rsutils.c#2 delete .. //depot/projects/multipass/sys/contrib/dev/acpica/rsxface.c#2 delete .. //depot/projects/multipass/sys/contrib/dev/acpica/tables/tbfadt.c#1 branch .. //depot/projects/multipass/sys/contrib/dev/acpica/tables/tbfind.c#1 branch .. //depot/projects/multipass/sys/contrib/dev/acpica/tables/tbinstal.c#1 branch .. //depot/projects/multipass/sys/contrib/dev/acpica/tables/tbutils.c#1 branch .. //depot/projects/multipass/sys/contrib/dev/acpica/tables/tbxface.c#1 branch .. //depot/projects/multipass/sys/contrib/dev/acpica/tables/tbxfroot.c#1 branch .. //depot/projects/multipass/sys/contrib/dev/acpica/tbfadt.c#2 delete .. //depot/projects/multipass/sys/contrib/dev/acpica/tbfind.c#2 delete .. //depot/projects/multipass/sys/contrib/dev/acpica/tbinstal.c#2 delete .. //depot/projects/multipass/sys/contrib/dev/acpica/tbutils.c#2 delete .. //depot/projects/multipass/sys/contrib/dev/acpica/tbxface.c#2 delete .. //depot/projects/multipass/sys/contrib/dev/acpica/tbxfroot.c#2 delete .. //depot/projects/multipass/sys/contrib/dev/acpica/tools/acpiexec/aecommon.h#1 branch .. //depot/projects/multipass/sys/contrib/dev/acpica/utalloc.c#2 delete .. //depot/projects/multipass/sys/contrib/dev/acpica/utcache.c#2 delete .. //depot/projects/multipass/sys/contrib/dev/acpica/utclib.c#2 delete .. //depot/projects/multipass/sys/contrib/dev/acpica/utcopy.c#2 delete .. //depot/projects/multipass/sys/contrib/dev/acpica/utdebug.c#2 delete .. //depot/projects/multipass/sys/contrib/dev/acpica/utdelete.c#2 delete .. //depot/projects/multipass/sys/contrib/dev/acpica/uteval.c#2 delete .. //depot/projects/multipass/sys/contrib/dev/acpica/utglobal.c#2 delete .. //depot/projects/multipass/sys/contrib/dev/acpica/utilities/utalloc.c#1 branch .. //depot/projects/multipass/sys/contrib/dev/acpica/utilities/utcache.c#1 branch .. //depot/projects/multipass/sys/contrib/dev/acpica/utilities/utcopy.c#1 branch .. //depot/projects/multipass/sys/contrib/dev/acpica/utilities/utdebug.c#1 branch .. //depot/projects/multipass/sys/contrib/dev/acpica/utilities/utdelete.c#1 branch .. //depot/projects/multipass/sys/contrib/dev/acpica/utilities/uteval.c#1 branch .. //depot/projects/multipass/sys/contrib/dev/acpica/utilities/utglobal.c#1 branch .. //depot/projects/multipass/sys/contrib/dev/acpica/utilities/utinit.c#1 branch .. //depot/projects/multipass/sys/contrib/dev/acpica/utilities/utlock.c#1 branch .. //depot/projects/multipass/sys/contrib/dev/acpica/utilities/utmath.c#1 branch .. //depot/projects/multipass/sys/contrib/dev/acpica/utilities/utmisc.c#1 branch .. //depot/projects/multipass/sys/contrib/dev/acpica/utilities/utmutex.c#1 branch .. //depot/projects/multipass/sys/contrib/dev/acpica/utilities/utobject.c#1 branch .. //depot/projects/multipass/sys/contrib/dev/acpica/utilities/utresrc.c#1 branch .. //depot/projects/multipass/sys/contrib/dev/acpica/utilities/utstate.c#1 branch .. //depot/projects/multipass/sys/contrib/dev/acpica/utilities/uttrack.c#1 branch .. //depot/projects/multipass/sys/contrib/dev/acpica/utilities/utxface.c#1 branch .. //depot/projects/multipass/sys/contrib/dev/acpica/utinit.c#2 delete .. //depot/projects/multipass/sys/contrib/dev/acpica/utmath.c#2 delete .. //depot/projects/multipass/sys/contrib/dev/acpica/utmisc.c#2 delete .. //depot/projects/multipass/sys/contrib/dev/acpica/utmutex.c#2 delete .. //depot/projects/multipass/sys/contrib/dev/acpica/utobject.c#2 delete .. //depot/projects/multipass/sys/contrib/dev/acpica/utresrc.c#2 delete .. //depot/projects/multipass/sys/contrib/dev/acpica/utstate.c#2 delete .. //depot/projects/multipass/sys/contrib/dev/acpica/uttrack.c#2 delete .. //depot/projects/multipass/sys/contrib/dev/acpica/utxface.c#2 delete .. //depot/projects/multipass/sys/contrib/dev/mwl/LICENSE#1 branch .. //depot/projects/multipass/sys/contrib/dev/mwl/Makefile#1 branch .. //depot/projects/multipass/sys/contrib/dev/mwl/mw88W8363.fw.uu#1 branch .. //depot/projects/multipass/sys/contrib/dev/mwl/mwlboot.fw.uu#1 branch .. //depot/projects/multipass/sys/contrib/ipfilter/netinet/ip_fil_freebsd.c#4 integrate .. //depot/projects/multipass/sys/contrib/ipfilter/netinet/ip_nat.c#2 integrate .. //depot/projects/multipass/sys/contrib/pf/net/pf.c#4 integrate .. //depot/projects/multipass/sys/contrib/pf/net/pf_ioctl.c#3 integrate .. //depot/projects/multipass/sys/crypto/via/padlock_hash.c#3 integrate .. //depot/projects/multipass/sys/ddb/db_textdump.c#2 integrate .. //depot/projects/multipass/sys/dev/aac/aac.c#3 integrate .. //depot/projects/multipass/sys/dev/acpi_support/acpi_aiboost.c#2 integrate .. //depot/projects/multipass/sys/dev/acpi_support/acpi_asus.c#3 integrate .. //depot/projects/multipass/sys/dev/acpi_support/acpi_fujitsu.c#2 integrate .. //depot/projects/multipass/sys/dev/acpi_support/acpi_ibm.c#3 integrate .. //depot/projects/multipass/sys/dev/acpi_support/acpi_panasonic.c#3 integrate .. //depot/projects/multipass/sys/dev/acpi_support/acpi_sony.c#3 integrate .. //depot/projects/multipass/sys/dev/acpi_support/acpi_toshiba.c#2 integrate .. //depot/projects/multipass/sys/dev/acpica/Osd/OsdDebug.c#2 integrate .. //depot/projects/multipass/sys/dev/acpica/Osd/OsdHardware.c#2 integrate .. //depot/projects/multipass/sys/dev/acpica/Osd/OsdInterrupt.c#2 integrate .. //depot/projects/multipass/sys/dev/acpica/Osd/OsdMemory.c#2 integrate .. //depot/projects/multipass/sys/dev/acpica/Osd/OsdSchedule.c#2 integrate .. //depot/projects/multipass/sys/dev/acpica/Osd/OsdStream.c#2 integrate .. //depot/projects/multipass/sys/dev/acpica/Osd/OsdSynch.c#2 integrate .. //depot/projects/multipass/sys/dev/acpica/Osd/OsdTable.c#2 integrate .. //depot/projects/multipass/sys/dev/acpica/acpi.c#5 integrate .. //depot/projects/multipass/sys/dev/acpica/acpi_acad.c#2 integrate .. //depot/projects/multipass/sys/dev/acpica/acpi_battery.c#3 integrate .. //depot/projects/multipass/sys/dev/acpica/acpi_button.c#2 integrate .. //depot/projects/multipass/sys/dev/acpica/acpi_cmbat.c#2 integrate .. //depot/projects/multipass/sys/dev/acpica/acpi_cpu.c#5 integrate .. //depot/projects/multipass/sys/dev/acpica/acpi_dock.c#2 integrate .. //depot/projects/multipass/sys/dev/acpica/acpi_ec.c#4 integrate .. //depot/projects/multipass/sys/dev/acpica/acpi_hpet.c#4 integrate .. //depot/projects/multipass/sys/dev/acpica/acpi_if.m#2 integrate .. //depot/projects/multipass/sys/dev/acpica/acpi_isab.c#3 integrate .. //depot/projects/multipass/sys/dev/acpica/acpi_lid.c#2 integrate .. //depot/projects/multipass/sys/dev/acpica/acpi_package.c#2 integrate .. //depot/projects/multipass/sys/dev/acpica/acpi_pci.c#3 integrate .. //depot/projects/multipass/sys/dev/acpica/acpi_pci_link.c#3 integrate .. //depot/projects/multipass/sys/dev/acpica/acpi_pcib.c#3 integrate .. //depot/projects/multipass/sys/dev/acpica/acpi_pcib_acpi.c#4 integrate .. //depot/projects/multipass/sys/dev/acpica/acpi_pcib_pci.c#3 integrate .. //depot/projects/multipass/sys/dev/acpica/acpi_perf.c#2 integrate .. //depot/projects/multipass/sys/dev/acpica/acpi_powerres.c#2 integrate .. //depot/projects/multipass/sys/dev/acpica/acpi_quirk.c#2 integrate .. //depot/projects/multipass/sys/dev/acpica/acpi_resource.c#3 integrate .. //depot/projects/multipass/sys/dev/acpica/acpi_smbat.c#3 integrate .. //depot/projects/multipass/sys/dev/acpica/acpi_thermal.c#2 integrate .. //depot/projects/multipass/sys/dev/acpica/acpi_throttle.c#2 integrate .. //depot/projects/multipass/sys/dev/acpica/acpi_timer.c#2 integrate .. //depot/projects/multipass/sys/dev/acpica/acpi_video.c#2 integrate .. //depot/projects/multipass/sys/dev/age/if_age.c#3 integrate .. //depot/projects/multipass/sys/dev/aic7xxx/aicasm/Makefile#2 integrate .. //depot/projects/multipass/sys/dev/aic7xxx/aicasm/aicasm.c#2 integrate .. //depot/projects/multipass/sys/dev/aic7xxx/aicasm/aicasm_gram.y#2 integrate .. //depot/projects/multipass/sys/dev/aic7xxx/aicasm/aicasm_macro_gram.y#2 integrate .. //depot/projects/multipass/sys/dev/aic7xxx/aicasm/aicasm_macro_scan.l#2 integrate .. //depot/projects/multipass/sys/dev/aic7xxx/aicasm/aicasm_scan.l#2 integrate .. //depot/projects/multipass/sys/dev/aic7xxx/aicasm/aicasm_symbol.c#2 integrate .. //depot/projects/multipass/sys/dev/aic7xxx/aicasm/aicasm_symbol.h#2 integrate .. //depot/projects/multipass/sys/dev/amr/amr.c#2 integrate .. //depot/projects/multipass/sys/dev/amr/amr_linux.c#2 integrate .. //depot/projects/multipass/sys/dev/arcmsr/arcmsr.c#3 integrate .. //depot/projects/multipass/sys/dev/asmc/asmc.c#3 integrate .. //depot/projects/multipass/sys/dev/ata/ata-all.c#3 integrate .. //depot/projects/multipass/sys/dev/ata/ata-all.h#4 integrate .. //depot/projects/multipass/sys/dev/ata/ata-pci.h#4 integrate .. //depot/projects/multipass/sys/dev/ata/ata-usb.c#3 integrate .. //depot/projects/multipass/sys/dev/ata/chipsets/ata-ahci.c#4 integrate .. //depot/projects/multipass/sys/dev/ata/chipsets/ata-intel.c#3 integrate .. //depot/projects/multipass/sys/dev/ata/chipsets/ata-nvidia.c#3 integrate .. //depot/projects/multipass/sys/dev/ata/chipsets/ata-promise.c#4 integrate .. //depot/projects/multipass/sys/dev/ath/if_ath.c#4 integrate .. //depot/projects/multipass/sys/dev/ath/if_athvar.h#3 integrate .. //depot/projects/multipass/sys/dev/bge/if_bge.c#4 integrate .. //depot/projects/multipass/sys/dev/bktr/bktr_os.c#2 integrate .. //depot/projects/multipass/sys/dev/bwi/if_bwi.c#2 integrate .. //depot/projects/multipass/sys/dev/bwi/if_bwivar.h#2 integrate .. //depot/projects/multipass/sys/dev/cfe/cfe_console.c#3 integrate .. //depot/projects/multipass/sys/dev/ciss/ciss.c#4 integrate .. //depot/projects/multipass/sys/dev/cxgb/common/cxgb_ael1002.c#3 integrate .. //depot/projects/multipass/sys/dev/cxgb/common/cxgb_common.h#3 integrate .. //depot/projects/multipass/sys/dev/cxgb/common/cxgb_t3_hw.c#3 integrate .. //depot/projects/multipass/sys/dev/cxgb/cxgb_adapter.h#3 integrate .. //depot/projects/multipass/sys/dev/cxgb/cxgb_main.c#3 integrate .. //depot/projects/multipass/sys/dev/cxgb/cxgb_sge.c#3 integrate .. //depot/projects/multipass/sys/dev/cxgb/ulp/iw_cxgb/iw_cxgb_cm.c#2 integrate .. //depot/projects/multipass/sys/dev/cxgb/ulp/tom/cxgb_cpl_io.c#4 integrate .. //depot/projects/multipass/sys/dev/dc/if_dc.c#3 integrate .. //depot/projects/multipass/sys/dev/dcons/dcons_os.c#3 integrate .. //depot/projects/multipass/sys/dev/e1000/if_em.c#4 integrate .. //depot/projects/multipass/sys/dev/fdc/fdc_acpi.c#2 integrate .. //depot/projects/multipass/sys/dev/firewire/firewire.c#3 integrate .. //depot/projects/multipass/sys/dev/firewire/if_fwe.c#3 integrate .. //depot/projects/multipass/sys/dev/firewire/if_fwip.c#3 integrate .. //depot/projects/multipass/sys/dev/fxp/if_fxp.c#3 integrate .. //depot/projects/multipass/sys/dev/if_ndis/if_ndis.c#4 integrate .. //depot/projects/multipass/sys/dev/if_ndis/if_ndis_usb.c#3 integrate .. //depot/projects/multipass/sys/dev/if_ndis/if_ndisvar.h#4 integrate .. //depot/projects/multipass/sys/dev/iir/iir.c#2 integrate .. //depot/projects/multipass/sys/dev/iir/iir_ctrl.c#2 integrate .. //depot/projects/multipass/sys/dev/ipmi/ipmi_acpi.c#3 integrate .. //depot/projects/multipass/sys/dev/ipw/if_ipw.c#4 integrate .. //depot/projects/multipass/sys/dev/ipw/if_ipwvar.h#3 integrate .. //depot/projects/multipass/sys/dev/iwi/if_iwi.c#4 integrate .. //depot/projects/multipass/sys/dev/iwi/if_iwivar.h#3 integrate .. //depot/projects/multipass/sys/dev/iwn/if_iwn.c#4 integrate .. //depot/projects/multipass/sys/dev/iwn/if_iwnvar.h#3 integrate .. //depot/projects/multipass/sys/dev/ixgb/if_ixgb.c#3 integrate .. //depot/projects/multipass/sys/dev/kbd/kbd.c#2 integrate .. //depot/projects/multipass/sys/dev/kbdmux/kbdmux.c#3 integrate .. //depot/projects/multipass/sys/dev/ksyms/ksyms.c#1 branch .. //depot/projects/multipass/sys/dev/lmc/if_lmc.c#4 integrate .. //depot/projects/multipass/sys/dev/lmc/if_lmc.h#4 integrate .. //depot/projects/multipass/sys/dev/malo/if_malo.c#3 integrate .. //depot/projects/multipass/sys/dev/malo/if_malo.h#2 integrate .. //depot/projects/multipass/sys/dev/mfi/mfi.c#3 integrate .. //depot/projects/multipass/sys/dev/mfi/mfi_linux.c#2 integrate .. //depot/projects/multipass/sys/dev/mge/if_mge.c#4 integrate .. //depot/projects/multipass/sys/dev/mii/e1000phy.c#2 integrate .. //depot/projects/multipass/sys/dev/mii/e1000phyreg.h#2 integrate .. //depot/projects/multipass/sys/dev/mii/miidevs#3 integrate .. //depot/projects/multipass/sys/dev/mpt/mpt_raid.c#3 integrate .. //depot/projects/multipass/sys/dev/mpt/mpt_user.c#3 integrate .. //depot/projects/multipass/sys/dev/msk/if_msk.c#3 integrate .. //depot/projects/multipass/sys/dev/msk/if_mskreg.h#3 integrate .. //depot/projects/multipass/sys/dev/mwl/if_mwl.c#1 branch .. //depot/projects/multipass/sys/dev/mwl/if_mwl_pci.c#1 branch .. //depot/projects/multipass/sys/dev/mwl/if_mwlioctl.h#1 branch .. //depot/projects/multipass/sys/dev/mwl/if_mwlvar.h#1 branch .. //depot/projects/multipass/sys/dev/mwl/mwldiag.h#1 branch .. //depot/projects/multipass/sys/dev/mwl/mwlhal.c#1 branch .. //depot/projects/multipass/sys/dev/mwl/mwlhal.h#1 branch .. //depot/projects/multipass/sys/dev/mwl/mwlreg.h#1 branch .. //depot/projects/multipass/sys/dev/mxge/if_mxge.c#4 integrate .. //depot/projects/multipass/sys/dev/mxge/if_mxge_var.h#4 integrate .. //depot/projects/multipass/sys/dev/nfe/if_nfe.c#3 integrate .. //depot/projects/multipass/sys/dev/nge/if_nge.c#3 integrate .. //depot/projects/multipass/sys/dev/nge/if_ngereg.h#3 integrate .. //depot/projects/multipass/sys/dev/nmdm/nmdm.c#3 integrate .. //depot/projects/multipass/sys/dev/ofw/ofw_console.c#2 integrate .. //depot/projects/multipass/sys/dev/pci/pci.c#4 integrate .. //depot/projects/multipass/sys/dev/pci/pci_pci.c#4 integrate .. //depot/projects/multipass/sys/dev/pci/pcib_if.m#2 integrate .. //depot/projects/multipass/sys/dev/pci/pcivar.h#2 integrate .. //depot/projects/multipass/sys/dev/puc/pucdata.c#3 integrate .. //depot/projects/multipass/sys/dev/ral/rt2560.c#3 integrate .. //depot/projects/multipass/sys/dev/ral/rt2560var.h#3 integrate .. //depot/projects/multipass/sys/dev/ral/rt2661.c#3 integrate .. //depot/projects/multipass/sys/dev/ral/rt2661var.h#3 integrate .. //depot/projects/multipass/sys/dev/random/nehemiah.c#2 integrate .. //depot/projects/multipass/sys/dev/random/randomdev_soft.c#3 integrate .. //depot/projects/multipass/sys/dev/re/if_re.c#4 integrate .. //depot/projects/multipass/sys/dev/rp/rp.c#3 integrate .. //depot/projects/multipass/sys/dev/sec/sec.c#1 branch .. //depot/projects/multipass/sys/dev/sec/sec.h#1 branch .. //depot/projects/multipass/sys/dev/sf/if_sf.c#2 integrate .. //depot/projects/multipass/sys/dev/si/si.c#3 integrate .. //depot/projects/multipass/sys/dev/sis/if_sis.c#3 integrate .. //depot/projects/multipass/sys/dev/smc/if_smc.c#2 integrate .. //depot/projects/multipass/sys/dev/sound/clone.c#2 integrate .. //depot/projects/multipass/sys/dev/sound/driver.c#2 integrate .. //depot/projects/multipass/sys/dev/sound/isa/ad1816.c#2 integrate .. //depot/projects/multipass/sys/dev/sound/isa/ess.c#2 integrate .. //depot/projects/multipass/sys/dev/sound/isa/gusc.c#2 integrate .. //depot/projects/multipass/sys/dev/sound/isa/mss.c#2 integrate .. //depot/projects/multipass/sys/dev/sound/isa/sb16.c#2 integrate .. //depot/projects/multipass/sys/dev/sound/isa/sb8.c#2 integrate .. //depot/projects/multipass/sys/dev/sound/isa/sbc.c#2 integrate .. //depot/projects/multipass/sys/dev/sound/isa/sndbuf_dma.c#2 integrate .. //depot/projects/multipass/sys/dev/sound/macio/aoa.c#2 integrate .. //depot/projects/multipass/sys/dev/sound/macio/davbus.c#2 integrate .. //depot/projects/multipass/sys/dev/sound/macio/i2s.c#2 integrate .. //depot/projects/multipass/sys/dev/sound/macio/snapper.c#2 integrate .. //depot/projects/multipass/sys/dev/sound/macio/tumbler.c#2 integrate .. //depot/projects/multipass/sys/dev/sound/midi/midi.c#2 integrate .. //depot/projects/multipass/sys/dev/sound/midi/mpu401.c#2 integrate .. //depot/projects/multipass/sys/dev/sound/midi/sequencer.c#2 integrate .. //depot/projects/multipass/sys/dev/sound/midi/sequencer.h#2 integrate .. //depot/projects/multipass/sys/dev/sound/pci/als4000.c#2 integrate .. //depot/projects/multipass/sys/dev/sound/pci/atiixp.c#2 integrate .. //depot/projects/multipass/sys/dev/sound/pci/aureal.c#2 integrate .. //depot/projects/multipass/sys/dev/sound/pci/cmi.c#3 integrate .. //depot/projects/multipass/sys/dev/sound/pci/cs4281.c#2 integrate .. //depot/projects/multipass/sys/dev/sound/pci/csa.c#2 integrate .. //depot/projects/multipass/sys/dev/sound/pci/csapcm.c#2 integrate .. //depot/projects/multipass/sys/dev/sound/pci/ds1.c#3 integrate .. //depot/projects/multipass/sys/dev/sound/pci/emu10k1.c#3 integrate .. //depot/projects/multipass/sys/dev/sound/pci/emu10kx-midi.c#2 integrate .. //depot/projects/multipass/sys/dev/sound/pci/emu10kx-pcm.c#2 integrate .. //depot/projects/multipass/sys/dev/sound/pci/emu10kx.c#3 integrate .. //depot/projects/multipass/sys/dev/sound/pci/envy24.c#4 integrate .. //depot/projects/multipass/sys/dev/sound/pci/envy24ht.c#4 integrate .. //depot/projects/multipass/sys/dev/sound/pci/es137x.c#2 integrate .. //depot/projects/multipass/sys/dev/sound/pci/fm801.c#2 integrate .. //depot/projects/multipass/sys/dev/sound/pci/hda/hdac.c#3 integrate .. //depot/projects/multipass/sys/dev/sound/pci/ich.c#3 integrate .. //depot/projects/multipass/sys/dev/sound/pci/maestro.c#2 integrate .. //depot/projects/multipass/sys/dev/sound/pci/maestro3.c#2 integrate .. //depot/projects/multipass/sys/dev/sound/pci/neomagic.c#2 integrate .. //depot/projects/multipass/sys/dev/sound/pci/solo.c#2 integrate .. //depot/projects/multipass/sys/dev/sound/pci/spicds.c#3 integrate .. //depot/projects/multipass/sys/dev/sound/pci/t4dwave.c#2 integrate .. //depot/projects/multipass/sys/dev/sound/pci/via8233.c#2 integrate .. //depot/projects/multipass/sys/dev/sound/pci/via82c686.c#2 integrate .. //depot/projects/multipass/sys/dev/sound/pci/via82c686.h#2 integrate .. //depot/projects/multipass/sys/dev/sound/pci/vibes.c#2 integrate .. //depot/projects/multipass/sys/dev/sound/pcm/ac97.c#2 integrate .. //depot/projects/multipass/sys/dev/sound/pcm/ac97_patch.c#2 integrate .. //depot/projects/multipass/sys/dev/sound/pcm/buffer.c#2 integrate .. //depot/projects/multipass/sys/dev/sound/pcm/buffer.h#2 integrate .. //depot/projects/multipass/sys/dev/sound/pcm/channel.c#2 integrate .. //depot/projects/multipass/sys/dev/sound/pcm/channel.h#2 integrate .. //depot/projects/multipass/sys/dev/sound/pcm/channel_if.m#2 integrate .. //depot/projects/multipass/sys/dev/sound/pcm/dsp.c#3 integrate .. //depot/projects/multipass/sys/dev/sound/pcm/dsp.h#2 integrate .. //depot/projects/multipass/sys/dev/sound/pcm/fake.c#2 delete .. //depot/projects/multipass/sys/dev/sound/pcm/feeder.c#2 integrate .. //depot/projects/multipass/sys/dev/sound/pcm/feeder.h#2 integrate .. //depot/projects/multipass/sys/dev/sound/pcm/feeder_chain.c#1 branch .. //depot/projects/multipass/sys/dev/sound/pcm/feeder_eq.c#1 branch .. //depot/projects/multipass/sys/dev/sound/pcm/feeder_fmt.c#2 delete .. //depot/projects/multipass/sys/dev/sound/pcm/feeder_format.c#1 branch .. //depot/projects/multipass/sys/dev/sound/pcm/feeder_matrix.c#1 branch .. //depot/projects/multipass/sys/dev/sound/pcm/feeder_mixer.c#1 branch .. //depot/projects/multipass/sys/dev/sound/pcm/feeder_rate.c#2 integrate .. //depot/projects/multipass/sys/dev/sound/pcm/feeder_volume.c#2 integrate .. //depot/projects/multipass/sys/dev/sound/pcm/g711.h#1 branch .. //depot/projects/multipass/sys/dev/sound/pcm/intpcm.h#1 branch .. //depot/projects/multipass/sys/dev/sound/pcm/matrix.h#1 branch .. //depot/projects/multipass/sys/dev/sound/pcm/matrix_map.h#1 branch .. //depot/projects/multipass/sys/dev/sound/pcm/mixer.c#3 integrate .. //depot/projects/multipass/sys/dev/sound/pcm/mixer.h#2 integrate .. //depot/projects/multipass/sys/dev/sound/pcm/pcm.h#1 branch .. //depot/projects/multipass/sys/dev/sound/pcm/sndstat.c#2 integrate .. //depot/projects/multipass/sys/dev/sound/pcm/sndstat.h#1 branch .. //depot/projects/multipass/sys/dev/sound/pcm/sound.c#3 integrate .. //depot/projects/multipass/sys/dev/sound/pcm/sound.h#3 integrate .. //depot/projects/multipass/sys/dev/sound/pcm/vchan.c#2 integrate .. //depot/projects/multipass/sys/dev/sound/pcm/vchan.h#2 integrate .. //depot/projects/multipass/sys/dev/sound/sbus/cs4231.c#2 integrate .. //depot/projects/multipass/sys/dev/sound/sbus/cs4231.h#2 integrate .. //depot/projects/multipass/sys/dev/sound/unit.c#2 integrate .. //depot/projects/multipass/sys/dev/sound/usb/uaudio.c#3 integrate .. //depot/projects/multipass/sys/dev/sound/usb/uaudio.h#3 integrate .. //depot/projects/multipass/sys/dev/sound/usb/uaudio_pcm.c#3 integrate .. //depot/projects/multipass/sys/dev/sound/usb/uaudioreg.h#3 integrate .. //depot/projects/multipass/sys/dev/sound/version.h#2 integrate .. //depot/projects/multipass/sys/dev/ste/if_ste.c#2 integrate .. //depot/projects/multipass/sys/dev/stge/if_stge.c#2 integrate .. //depot/projects/multipass/sys/dev/syscons/daemon/daemon_saver.c#2 integrate .. //depot/projects/multipass/sys/dev/syscons/scterm-teken.c#2 integrate .. //depot/projects/multipass/sys/dev/syscons/syscons.c#4 integrate .. //depot/projects/multipass/sys/dev/syscons/sysmouse.c#2 integrate .. //depot/projects/multipass/sys/dev/syscons/teken/sequences#2 integrate .. //depot/projects/multipass/sys/dev/syscons/teken/teken.c#2 integrate .. //depot/projects/multipass/sys/dev/syscons/teken/teken.h#2 integrate .. //depot/projects/multipass/sys/dev/syscons/teken/teken_subr_compat.h#2 integrate .. //depot/projects/multipass/sys/dev/tsec/if_tsec.c#3 integrate .. //depot/projects/multipass/sys/dev/twa/tw_osl_freebsd.c#3 integrate .. //depot/projects/multipass/sys/dev/twe/twe_freebsd.c#3 integrate .. //depot/projects/multipass/sys/dev/uart/uart_tty.c#3 integrate .. //depot/projects/multipass/sys/dev/usb/README.TXT#2 delete .. //depot/projects/multipass/sys/dev/usb/bluetooth/TODO.TXT#2 delete .. //depot/projects/multipass/sys/dev/usb/bluetooth/ng_ubt.c#2 delete .. //depot/projects/multipass/sys/dev/usb/bluetooth/ng_ubt_var.h#2 delete .. //depot/projects/multipass/sys/dev/usb/bluetooth/ubtbcmfw.c#2 delete .. //depot/projects/multipass/sys/dev/usb/controller/at91dci.c#3 integrate .. //depot/projects/multipass/sys/dev/usb/controller/at91dci.h#3 integrate .. //depot/projects/multipass/sys/dev/usb/controller/atmegadci.c#3 integrate .. //depot/projects/multipass/sys/dev/usb/controller/atmegadci.h#3 integrate .. //depot/projects/multipass/sys/dev/usb/controller/atmegadci_atmelarm.c#2 integrate .. //depot/projects/multipass/sys/dev/usb/controller/avr32dci.c#1 branch .. //depot/projects/multipass/sys/dev/usb/controller/avr32dci.h#1 branch .. //depot/projects/multipass/sys/dev/usb/controller/ehci.c#3 integrate .. //depot/projects/multipass/sys/dev/usb/controller/ehci.h#3 integrate .. //depot/projects/multipass/sys/dev/usb/controller/musb_otg.c#3 integrate .. //depot/projects/multipass/sys/dev/usb/controller/musb_otg.h#2 integrate .. //depot/projects/multipass/sys/dev/usb/controller/ohci.c#3 integrate .. //depot/projects/multipass/sys/dev/usb/controller/ohci.h#3 integrate .. //depot/projects/multipass/sys/dev/usb/controller/uhci.c#3 integrate .. //depot/projects/multipass/sys/dev/usb/controller/uhci.h#3 integrate .. //depot/projects/multipass/sys/dev/usb/controller/usb_controller.c#3 integrate .. //depot/projects/multipass/sys/dev/usb/controller/uss820dci.c#3 integrate .. //depot/projects/multipass/sys/dev/usb/controller/uss820dci.h#3 integrate .. //depot/projects/multipass/sys/dev/usb/controller/uss820dci_atmelarm.c#2 integrate .. //depot/projects/multipass/sys/dev/usb/input/uhid.c#2 integrate .. //depot/projects/multipass/sys/dev/usb/input/ukbd.c#2 integrate .. //depot/projects/multipass/sys/dev/usb/input/ums.c#2 integrate .. //depot/projects/multipass/sys/dev/usb/misc/udbp.c#2 integrate .. //depot/projects/multipass/sys/dev/usb/misc/ufm.c#2 integrate .. //depot/projects/multipass/sys/dev/usb/net/if_aue.c#3 integrate .. //depot/projects/multipass/sys/dev/usb/net/if_auereg.h#2 integrate .. //depot/projects/multipass/sys/dev/usb/net/if_axe.c#3 integrate .. //depot/projects/multipass/sys/dev/usb/net/if_axereg.h#2 integrate .. //depot/projects/multipass/sys/dev/usb/net/if_cdce.c#3 integrate .. //depot/projects/multipass/sys/dev/usb/net/if_cdcereg.h#2 integrate .. //depot/projects/multipass/sys/dev/usb/net/if_cue.c#3 integrate .. //depot/projects/multipass/sys/dev/usb/net/if_cuereg.h#2 integrate .. //depot/projects/multipass/sys/dev/usb/net/if_kue.c#3 integrate .. //depot/projects/multipass/sys/dev/usb/net/if_kuereg.h#2 integrate .. //depot/projects/multipass/sys/dev/usb/net/if_rue.c#3 integrate .. //depot/projects/multipass/sys/dev/usb/net/if_ruereg.h#2 integrate .. //depot/projects/multipass/sys/dev/usb/net/if_udav.c#3 integrate .. //depot/projects/multipass/sys/dev/usb/net/if_udavreg.h#2 integrate .. //depot/projects/multipass/sys/dev/usb/net/usb_ethernet.c#3 integrate .. //depot/projects/multipass/sys/dev/usb/net/usb_ethernet.h#3 integrate .. //depot/projects/multipass/sys/dev/usb/quirk/usb_quirk.c#2 integrate .. //depot/projects/multipass/sys/dev/usb/serial/u3g.c#3 integrate .. //depot/projects/multipass/sys/dev/usb/serial/uark.c#2 integrate .. //depot/projects/multipass/sys/dev/usb/serial/ubsa.c#2 integrate .. //depot/projects/multipass/sys/dev/usb/serial/ubser.c#2 integrate .. //depot/projects/multipass/sys/dev/usb/serial/uchcom.c#2 integrate .. //depot/projects/multipass/sys/dev/usb/serial/ucycom.c#2 integrate .. //depot/projects/multipass/sys/dev/usb/serial/ufoma.c#2 integrate .. //depot/projects/multipass/sys/dev/usb/serial/uftdi.c#3 integrate .. //depot/projects/multipass/sys/dev/usb/serial/ugensa.c#2 integrate .. //depot/projects/multipass/sys/dev/usb/serial/uipaq.c#2 integrate .. //depot/projects/multipass/sys/dev/usb/serial/ulpt.c#2 integrate .. //depot/projects/multipass/sys/dev/usb/serial/umct.c#2 integrate .. //depot/projects/multipass/sys/dev/usb/serial/umodem.c#2 integrate .. //depot/projects/multipass/sys/dev/usb/serial/umoscom.c#2 integrate .. //depot/projects/multipass/sys/dev/usb/serial/uplcom.c#2 integrate .. //depot/projects/multipass/sys/dev/usb/serial/usb_serial.c#2 integrate .. //depot/projects/multipass/sys/dev/usb/serial/usb_serial.h#2 integrate .. //depot/projects/multipass/sys/dev/usb/serial/uslcom.c#2 integrate .. //depot/projects/multipass/sys/dev/usb/serial/uvisor.c#2 integrate .. //depot/projects/multipass/sys/dev/usb/serial/uvscom.c#2 integrate .. //depot/projects/multipass/sys/dev/usb/storage/umass.c#3 integrate .. //depot/projects/multipass/sys/dev/usb/storage/urio.c#2 integrate .. //depot/projects/multipass/sys/dev/usb/storage/ustorage_fs.c#3 integrate .. //depot/projects/multipass/sys/dev/usb/template/usb_template.c#3 integrate .. //depot/projects/multipass/sys/dev/usb/template/usb_template.h#2 integrate .. //depot/projects/multipass/sys/dev/usb/template/usb_template_cdce.c#2 integrate .. //depot/projects/multipass/sys/dev/usb/template/usb_template_msc.c#2 integrate .. //depot/projects/multipass/sys/dev/usb/template/usb_template_mtp.c#2 integrate .. //depot/projects/multipass/sys/dev/usb/usb.h#3 integrate .. //depot/projects/multipass/sys/dev/usb/usb_bus.h#3 integrate .. //depot/projects/multipass/sys/dev/usb/usb_busdma.c#2 integrate .. //depot/projects/multipass/sys/dev/usb/usb_busdma.h#2 integrate .. //depot/projects/multipass/sys/dev/usb/usb_cdc.h#2 integrate .. //depot/projects/multipass/sys/dev/usb/usb_compat_linux.c#3 integrate .. //depot/projects/multipass/sys/dev/usb/usb_compat_linux.h#2 integrate .. //depot/projects/multipass/sys/dev/usb/usb_controller.h#3 integrate .. //depot/projects/multipass/sys/dev/usb/usb_core.h#3 integrate .. //depot/projects/multipass/sys/dev/usb/usb_debug.c#2 integrate .. //depot/projects/multipass/sys/dev/usb/usb_debug.h#2 integrate .. //depot/projects/multipass/sys/dev/usb/usb_dev.c#3 integrate .. //depot/projects/multipass/sys/dev/usb/usb_dev.h#2 integrate .. //depot/projects/multipass/sys/dev/usb/usb_device.c#3 integrate .. //depot/projects/multipass/sys/dev/usb/usb_device.h#3 integrate .. //depot/projects/multipass/sys/dev/usb/usb_dynamic.c#3 integrate .. //depot/projects/multipass/sys/dev/usb/usb_dynamic.h#3 integrate .. //depot/projects/multipass/sys/dev/usb/usb_error.c#2 integrate .. //depot/projects/multipass/sys/dev/usb/usb_generic.c#3 integrate .. //depot/projects/multipass/sys/dev/usb/usb_generic.h#2 integrate .. //depot/projects/multipass/sys/dev/usb/usb_handle_request.c#3 integrate .. //depot/projects/multipass/sys/dev/usb/usb_hid.c#3 integrate .. //depot/projects/multipass/sys/dev/usb/usb_hid.h#2 integrate .. //depot/projects/multipass/sys/dev/usb/usb_hub.c#3 integrate .. //depot/projects/multipass/sys/dev/usb/usb_hub.h#2 integrate .. //depot/projects/multipass/sys/dev/usb/usb_ioctl.h#2 integrate .. //depot/projects/multipass/sys/dev/usb/usb_lookup.c#2 integrate .. //depot/projects/multipass/sys/dev/usb/usb_lookup.h#2 integrate .. //depot/projects/multipass/sys/dev/usb/usb_mbuf.c#2 integrate .. //depot/projects/multipass/sys/dev/usb/usb_mbuf.h#2 integrate .. //depot/projects/multipass/sys/dev/usb/usb_msctest.c#2 integrate .. //depot/projects/multipass/sys/dev/usb/usb_msctest.h#2 integrate .. //depot/projects/multipass/sys/dev/usb/usb_parse.c#2 integrate .. //depot/projects/multipass/sys/dev/usb/usb_parse.h#2 integrate .. //depot/projects/multipass/sys/dev/usb/usb_process.c#2 integrate .. //depot/projects/multipass/sys/dev/usb/usb_process.h#2 integrate .. //depot/projects/multipass/sys/dev/usb/usb_request.c#3 integrate .. //depot/projects/multipass/sys/dev/usb/usb_request.h#3 integrate .. //depot/projects/multipass/sys/dev/usb/usb_revision.h#3 integrate .. //depot/projects/multipass/sys/dev/usb/usb_transfer.c#3 integrate .. //depot/projects/multipass/sys/dev/usb/usb_transfer.h#2 integrate .. //depot/projects/multipass/sys/dev/usb/usb_util.c#2 integrate .. //depot/projects/multipass/sys/dev/usb/usbdevs#3 integrate .. //depot/projects/multipass/sys/dev/usb/usbhid.h#3 integrate .. //depot/projects/multipass/sys/dev/usb/wlan/if_rum.c#3 integrate .. //depot/projects/multipass/sys/dev/usb/wlan/if_rumvar.h#3 integrate .. //depot/projects/multipass/sys/dev/usb/wlan/if_uath.c#3 integrate .. //depot/projects/multipass/sys/dev/usb/wlan/if_uathvar.h#3 integrate .. //depot/projects/multipass/sys/dev/usb/wlan/if_upgt.c#2 integrate .. //depot/projects/multipass/sys/dev/usb/wlan/if_upgtvar.h#2 integrate .. //depot/projects/multipass/sys/dev/usb/wlan/if_ural.c#3 integrate .. //depot/projects/multipass/sys/dev/usb/wlan/if_uralvar.h#3 integrate .. //depot/projects/multipass/sys/dev/usb/wlan/if_urtw.c#1 branch .. //depot/projects/multipass/sys/dev/usb/wlan/if_urtwreg.h#1 branch .. //depot/projects/multipass/sys/dev/usb/wlan/if_urtwvar.h#1 branch .. //depot/projects/multipass/sys/dev/usb/wlan/if_zyd.c#3 integrate .. //depot/projects/multipass/sys/dev/usb/wlan/if_zydreg.h#3 integrate .. //depot/projects/multipass/sys/dev/vge/if_vge.c#4 integrate .. //depot/projects/multipass/sys/dev/vr/if_vr.c#3 integrate .. //depot/projects/multipass/sys/dev/wi/if_wavelan_ieee.h#2 integrate .. //depot/projects/multipass/sys/dev/wi/if_wi.c#4 integrate .. //depot/projects/multipass/sys/dev/wi/if_wireg.h#2 integrate .. //depot/projects/multipass/sys/dev/wi/if_wivar.h#3 integrate .. //depot/projects/multipass/sys/dev/wpi/if_wpi.c#4 integrate .. //depot/projects/multipass/sys/dev/wpi/if_wpivar.h#3 integrate .. //depot/projects/multipass/sys/dev/xen/console/console.c#4 integrate .. //depot/projects/multipass/sys/dev/xen/netfront/netfront.c#4 integrate .. //depot/projects/multipass/sys/dev/xl/if_xl.c#4 integrate .. //depot/projects/multipass/sys/fs/cd9660/cd9660_rrip.c#3 integrate .. //depot/projects/multipass/sys/fs/devfs/devfs_devs.c#3 integrate .. //depot/projects/multipass/sys/fs/devfs/devfs_vfsops.c#3 integrate .. //depot/projects/multipass/sys/fs/devfs/devfs_vnops.c#4 integrate .. //depot/projects/multipass/sys/fs/nfs/nfs.h#2 integrate .. //depot/projects/multipass/sys/fs/nfs/nfs_commonacl.c#2 integrate .. //depot/projects/multipass/sys/fs/nfs/nfs_commonkrpc.c#2 integrate .. //depot/projects/multipass/sys/fs/nfs/nfs_commonport.c#2 integrate .. //depot/projects/multipass/sys/fs/nfs/nfs_commonsubs.c#2 integrate .. //depot/projects/multipass/sys/fs/nfs/nfsport.h#2 integrate .. //depot/projects/multipass/sys/fs/nfsclient/nfs_clbio.c#2 integrate .. //depot/projects/multipass/sys/fs/nfsclient/nfs_clkrpc.c#2 integrate .. //depot/projects/multipass/sys/fs/nfsclient/nfs_clnode.c#2 integrate .. //depot/projects/multipass/sys/fs/nfsclient/nfs_clport.c#2 integrate .. //depot/projects/multipass/sys/fs/nfsclient/nfs_clstate.c#2 integrate .. //depot/projects/multipass/sys/fs/nfsclient/nfs_clvfsops.c#2 integrate .. //depot/projects/multipass/sys/fs/nfsclient/nfs_clvnops.c#2 integrate .. //depot/projects/multipass/sys/fs/nfsserver/nfs_nfsdkrpc.c#2 integrate .. //depot/projects/multipass/sys/fs/nfsserver/nfs_nfsdport.c#2 integrate .. //depot/projects/multipass/sys/fs/nfsserver/nfs_nfsdserv.c#2 integrate .. //depot/projects/multipass/sys/fs/nfsserver/nfs_nfsdsocket.c#2 integrate .. //depot/projects/multipass/sys/fs/nfsserver/nfs_nfsdstate.c#2 integrate .. //depot/projects/multipass/sys/fs/nullfs/null_subr.c#2 integrate .. //depot/projects/multipass/sys/fs/nullfs/null_vnops.c#3 integrate .. //depot/projects/multipass/sys/fs/nwfs/nwfs_io.c#2 integrate .. //depot/projects/multipass/sys/fs/procfs/procfs_status.c#2 integrate .. //depot/projects/multipass/sys/fs/pseudofs/pseudofs_vncache.c#3 integrate .. //depot/projects/multipass/sys/fs/pseudofs/pseudofs_vnops.c#3 integrate .. //depot/projects/multipass/sys/fs/smbfs/smbfs_io.c#3 integrate .. //depot/projects/multipass/sys/fs/tmpfs/tmpfs_vnops.c#4 integrate .. //depot/projects/multipass/sys/fs/udf/osta.c#2 integrate .. //depot/projects/multipass/sys/fs/unionfs/union_subr.c#3 integrate .. //depot/projects/multipass/sys/geom/geom_subr.c#3 integrate .. //depot/projects/multipass/sys/geom/label/g_label.c#3 integrate .. //depot/projects/multipass/sys/geom/vinum/geom_vinum_create.c#2 integrate .. //depot/projects/multipass/sys/geom/vinum/geom_vinum_drive.c#3 integrate .. //depot/projects/multipass/sys/gnu/fs/ext2fs/ext2_fs.h#3 integrate .. //depot/projects/multipass/sys/gnu/fs/ext2fs/ext2_fs_sb.h#3 integrate .. //depot/projects/multipass/sys/gnu/fs/ext2fs/ext2_lookup.c#2 integrate .. //depot/projects/multipass/sys/gnu/fs/ext2fs/ext2_vfsops.c#4 integrate .. //depot/projects/multipass/sys/gnu/fs/ext2fs/ext2_vnops.c#3 integrate .. //depot/projects/multipass/sys/gnu/fs/ext2fs/sparc64-bitops.h#2 delete .. //depot/projects/multipass/sys/i386/acpica/OsdEnvironment.c#2 integrate .. //depot/projects/multipass/sys/i386/acpica/acpi_machdep.c#3 integrate .. //depot/projects/multipass/sys/i386/acpica/acpi_wakeup.c#3 integrate .. //depot/projects/multipass/sys/i386/acpica/madt.c#3 integrate .. //depot/projects/multipass/sys/i386/bios/smapi.c#3 integrate .. //depot/projects/multipass/sys/i386/conf/GENERIC#4 integrate .. //depot/projects/multipass/sys/i386/conf/MAC#2 delete .. //depot/projects/multipass/sys/i386/cpufreq/est.c#3 integrate .. //depot/projects/multipass/sys/i386/cpufreq/hwpstate.c#3 integrate .. //depot/projects/multipass/sys/i386/cpufreq/p4tcc.c#3 integrate .. //depot/projects/multipass/sys/i386/i386/dump_machdep.c#2 integrate .. //depot/projects/multipass/sys/i386/i386/mca.c#2 integrate .. //depot/projects/multipass/sys/i386/i386/minidump_machdep.c#2 integrate .. //depot/projects/multipass/sys/i386/i386/pmap.c#4 integrate .. //depot/projects/multipass/sys/i386/i386/sys_machdep.c#2 integrate .. //depot/projects/multipass/sys/i386/ibcs2/ibcs2_misc.c#3 integrate .. //depot/projects/multipass/sys/i386/ibcs2/ibcs2_socksys.c#3 integrate .. //depot/projects/multipass/sys/i386/ibcs2/ibcs2_sysent.c#3 integrate .. //depot/projects/multipass/sys/i386/include/apicvar.h#4 integrate .. //depot/projects/multipass/sys/i386/include/xen/xen_clock_util.h#1 branch .. //depot/projects/multipass/sys/i386/linux/linux.h#4 integrate .. //depot/projects/multipass/sys/i386/linux/linux_sysent.c#2 integrate .. //depot/projects/multipass/sys/i386/xen/clock.c#4 integrate .. //depot/projects/multipass/sys/i386/xen/mp_machdep.c#4 integrate .. //depot/projects/multipass/sys/i386/xen/pmap.c#3 integrate .. //depot/projects/multipass/sys/i386/xen/xen_clock_util.c#1 branch .. //depot/projects/multipass/sys/i386/xen/xen_rtc.c#1 branch .. //depot/projects/multipass/sys/ia64/acpica/OsdEnvironment.c#2 integrate .. //depot/projects/multipass/sys/ia64/acpica/acpi_machdep.c#2 integrate .. //depot/projects/multipass/sys/ia64/acpica/acpi_wakeup.c#2 integrate .. //depot/projects/multipass/sys/ia64/acpica/madt.c#2 integrate .. //depot/projects/multipass/sys/ia64/conf/GENERIC#3 integrate .. //depot/projects/multipass/sys/ia64/conf/MAC#2 delete .. //depot/projects/multipass/sys/ia64/ia64/dump_machdep.c#2 integrate .. //depot/projects/multipass/sys/ia64/ia64/mp_machdep.c#3 integrate .. //depot/projects/multipass/sys/ia64/ia64/nexus.c#3 integrate .. //depot/projects/multipass/sys/ia64/ia64/ssc.c#2 integrate .. //depot/projects/multipass/sys/kern/init_main.c#3 integrate .. //depot/projects/multipass/sys/kern/init_sysent.c#3 integrate .. //depot/projects/multipass/sys/kern/kern_acct.c#4 integrate .. //depot/projects/multipass/sys/kern/kern_alq.c#3 integrate .. //depot/projects/multipass/sys/kern/kern_conf.c#4 integrate .. //depot/projects/multipass/sys/kern/kern_cpu.c#3 integrate .. //depot/projects/multipass/sys/kern/kern_cpuset.c#4 integrate .. //depot/projects/multipass/sys/kern/kern_descrip.c#4 integrate .. //depot/projects/multipass/sys/kern/kern_environment.c#3 integrate .. //depot/projects/multipass/sys/kern/kern_exec.c#3 integrate .. //depot/projects/multipass/sys/kern/kern_exit.c#4 integrate .. //depot/projects/multipass/sys/kern/kern_fail.c#1 branch .. //depot/projects/multipass/sys/kern/kern_fork.c#4 integrate .. //depot/projects/multipass/sys/kern/kern_jail.c#4 integrate .. //depot/projects/multipass/sys/kern/kern_ktrace.c#3 integrate .. //depot/projects/multipass/sys/kern/kern_linker.c#4 integrate .. //depot/projects/multipass/sys/kern/kern_lock.c#4 integrate .. //depot/projects/multipass/sys/kern/kern_lockf.c#3 integrate .. //depot/projects/multipass/sys/kern/kern_lockstat.c#1 branch .. //depot/projects/multipass/sys/kern/kern_malloc.c#4 integrate .. //depot/projects/multipass/sys/kern/kern_mbuf.c#3 integrate .. //depot/projects/multipass/sys/kern/kern_mib.c#4 integrate .. //depot/projects/multipass/sys/kern/kern_mutex.c#3 integrate .. //depot/projects/multipass/sys/kern/kern_osd.c#4 integrate .. //depot/projects/multipass/sys/kern/kern_poll.c#3 integrate .. //depot/projects/multipass/sys/kern/kern_priv.c#3 integrate .. //depot/projects/multipass/sys/kern/kern_proc.c#3 integrate .. //depot/projects/multipass/sys/kern/kern_prot.c#4 integrate .. //depot/projects/multipass/sys/kern/kern_rmlock.c#3 integrate .. //depot/projects/multipass/sys/kern/kern_rwlock.c#3 integrate .. //depot/projects/multipass/sys/kern/kern_shutdown.c#3 integrate .. //depot/projects/multipass/sys/kern/kern_sx.c#3 integrate .. //depot/projects/multipass/sys/kern/kern_sysctl.c#4 integrate .. //depot/projects/multipass/sys/kern/kern_vimage.c#3 integrate .. //depot/projects/multipass/sys/kern/kern_xxx.c#3 integrate .. //depot/projects/multipass/sys/kern/link_elf.c#3 integrate .. //depot/projects/multipass/sys/kern/link_elf_obj.c#3 integrate .. //depot/projects/multipass/sys/kern/linker_if.m#2 integrate .. //depot/projects/multipass/sys/kern/makesyscalls.sh#2 integrate .. //depot/projects/multipass/sys/kern/subr_acl_posix1e.c#2 integrate .. //depot/projects/multipass/sys/kern/subr_bus.c#6 integrate .. //depot/projects/multipass/sys/kern/subr_clist.c#3 delete .. //depot/projects/multipass/sys/kern/subr_sglist.c#1 branch .. //depot/projects/multipass/sys/kern/subr_trap.c#3 integrate .. //depot/projects/multipass/sys/kern/subr_witness.c#4 integrate .. //depot/projects/multipass/sys/kern/sys_pipe.c#3 integrate .. //depot/projects/multipass/sys/kern/sys_socket.c#3 integrate .. //depot/projects/multipass/sys/kern/sysv_msg.c#2 integrate .. //depot/projects/multipass/sys/kern/sysv_sem.c#3 integrate .. //depot/projects/multipass/sys/kern/sysv_shm.c#3 integrate .. //depot/projects/multipass/sys/kern/tty.c#4 integrate .. //depot/projects/multipass/sys/kern/tty_inq.c#3 integrate .. //depot/projects/multipass/sys/kern/tty_pts.c#4 integrate .. //depot/projects/multipass/sys/kern/uipc_debug.c#3 integrate >>> TRUNCATED FOR MAIL (1000 lines) <<< From owner-p4-projects@FreeBSD.ORG Mon Jun 8 18:38:42 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 62F34106568E; Mon, 8 Jun 2009 18:38:42 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id D2C8A1065689 for ; Mon, 8 Jun 2009 18:38:41 +0000 (UTC) (envelope-from jhb@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id BFAB48FC1C for ; Mon, 8 Jun 2009 18:38:41 +0000 (UTC) (envelope-from jhb@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n58Icfwb003208 for ; Mon, 8 Jun 2009 18:38:41 GMT (envelope-from jhb@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n58Icf77003206 for perforce@freebsd.org; Mon, 8 Jun 2009 18:38:41 GMT (envelope-from jhb@freebsd.org) Date: Mon, 8 Jun 2009 18:38:41 GMT Message-Id: <200906081838.n58Icf77003206@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to jhb@freebsd.org using -f From: John Baldwin To: Perforce Change Reviews Cc: Subject: PERFORCE change 163815 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 08 Jun 2009 18:38:43 -0000 http://perforce.freebsd.org/chv.cgi?CH=163815 Change 163815 by jhb@jhb_jhbbsd on 2009/06/08 18:38:15 IFC @163813 Affected files ... .. //depot/projects/multipass/sys/amd64/amd64/pmap.c#5 integrate .. //depot/projects/multipass/sys/i386/i386/pmap.c#5 integrate .. //depot/projects/multipass/sys/i386/xen/pmap.c#4 integrate .. //depot/projects/multipass/sys/netgraph/bluetooth/drivers/ubt/ng_ubt.c#2 integrate .. //depot/projects/multipass/sys/netgraph/bluetooth/drivers/ubt/ng_ubt_var.h#2 integrate .. //depot/projects/multipass/sys/netgraph/bluetooth/drivers/ubtbcmfw/ubtbcmfw.c#3 integrate .. //depot/projects/multipass/sys/sys/cdefs.h#4 integrate Differences ... ==== //depot/projects/multipass/sys/amd64/amd64/pmap.c#5 (text+ko) ==== @@ -77,7 +77,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/amd64/amd64/pmap.c,v 1.659 2009/06/08 17:27:25 ed Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/amd64/pmap.c,v 1.660 2009/06/08 18:23:43 ed Exp $"); /* * Manages physical address maps. @@ -153,7 +153,7 @@ #endif #if !defined(DIAGNOSTIC) -#define PMAP_INLINE extern inline +#define PMAP_INLINE __gnu89_inline #else #define PMAP_INLINE #endif ==== //depot/projects/multipass/sys/i386/i386/pmap.c#5 (text+ko) ==== @@ -75,7 +75,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/i386/i386/pmap.c,v 1.636 2009/06/08 17:27:25 ed Exp $"); +__FBSDID("$FreeBSD: src/sys/i386/i386/pmap.c,v 1.637 2009/06/08 18:23:43 ed Exp $"); /* * Manages physical address maps. @@ -161,7 +161,7 @@ #endif #if !defined(DIAGNOSTIC) -#define PMAP_INLINE extern inline +#define PMAP_INLINE __gnu89_inline #else #define PMAP_INLINE #endif ==== //depot/projects/multipass/sys/i386/xen/pmap.c#4 (text+ko) ==== @@ -75,7 +75,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/i386/xen/pmap.c,v 1.11 2009/06/08 17:27:25 ed Exp $"); +__FBSDID("$FreeBSD: src/sys/i386/xen/pmap.c,v 1.12 2009/06/08 18:23:43 ed Exp $"); /* * Manages physical address maps. @@ -172,7 +172,7 @@ #endif #if !defined(PMAP_DIAGNOSTIC) -#define PMAP_INLINE extern inline +#define PMAP_INLINE __gnu89_inline #else #define PMAP_INLINE #endif ==== //depot/projects/multipass/sys/netgraph/bluetooth/drivers/ubt/ng_ubt.c#2 (text+ko) ==== @@ -3,7 +3,7 @@ */ /*- - * Copyright (c) 2001-2002 Maksim Yevmenkin + * Copyright (c) 2001-2009 Maksim Yevmenkin * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -27,29 +27,89 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $Id: ng_ubt.c,v 1.22 2005/10/31 17:57:44 max Exp $ - * $FreeBSD: src/sys/netgraph/bluetooth/drivers/ubt/ng_ubt.c,v 1.36 2008/10/03 22:40:42 emax Exp $ + * $Id: ng_ubt.c,v 1.16 2003/10/10 19:15:06 max Exp $ + * $FreeBSD: src/sys/netgraph/bluetooth/drivers/ubt/ng_ubt.c,v 1.41 2009/05/29 18:46:57 thompsa Exp $ */ -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include +/* + * NOTE: ng_ubt2 driver has a split personality. On one side it is + * a USB device driver and on the other it is a Netgraph node. This + * driver will *NOT* create traditional /dev/ enties, only Netgraph + * node. + * + * NOTE ON LOCKS USED: ng_ubt2 drives uses 2 locks (mutexes) + * + * 1) sc_if_mtx - lock for device's interface #0 and #1. This lock is used + * by USB for any USB request going over device's interface #0 and #1, + * i.e. interrupt, control, bulk and isoc. transfers. + * + * 2) sc_ng_mtx - this lock is used to protect shared (between USB, Netgraph + * and Taskqueue) data, such as outgoing mbuf queues, task flags and hook + * pointer. This lock *SHOULD NOT* be grabbed for a long time. In fact, + * think of it as a spin lock. + * + * NOTE ON LOCKING STRATEGY: ng_ubt2 driver operates in 3 different contexts. + * + * 1) USB context. This is where all the USB related stuff happens. All + * callbacks run in this context. All callbacks are called (by USB) with + * appropriate interface lock held. It is (generally) allowed to grab + * any additional locks. + * + * 2) Netgraph context. This is where all the Netgraph related stuff happens. + * Since we mark node as WRITER, the Netgraph node will be "locked" (from + * Netgraph point of view). Any variable that is only modified from the + * Netgraph context does not require any additonal locking. It is generally + * *NOT* allowed to grab *ANY* additional locks. Whatever you do, *DO NOT* + * grab any lock in the Netgraph context that could cause de-scheduling of + * the Netgraph thread for significant amount of time. In fact, the only + * lock that is allowed in the Netgraph context is the sc_ng_mtx lock. + * Also make sure that any code that is called from the Netgraph context + * follows the rule above. + * + * 3) Taskqueue context. This is where ubt_task runs. Since we are generally + * NOT allowed to grab any lock that could cause de-scheduling in the + * Netgraph context, and, USB requires us to grab interface lock before + * doing things with transfers, it is safer to transition from the Netgraph + * context to the Taskqueue context before we can call into USB subsystem. + * + * So, to put everything together, the rules are as follows. + * It is OK to call from the USB context or the Taskqueue context into + * the Netgraph context (i.e. call NG_SEND_xxx functions). In other words + * it is allowed to call into the Netgraph context with locks held. + * Is it *NOT* OK to call from the Netgraph context into the USB context, + * because USB requires us to grab interface locks, and, it is safer to + * avoid it. So, to make things safer we set task flags to indicate which + * actions we want to perform and schedule ubt_task which would run in the + * Taskqueue context. + * Is is OK to call from the Taskqueue context into the USB context, + * and, ubt_task does just that (i.e. grabs appropriate interface locks + * before calling into USB). + * Access to the outgoing queues, task flags and hook pointer is + * controlled by the sc_ng_mtx lock. It is an unavoidable evil. Again, + * sc_ng_mtx should really be a spin lock (and it is very likely to an + * equivalent of spin lock due to adaptive nature of FreeBSD mutexes). + * All USB callbacks accept softc pointer as a private data. USB ensures + * that this pointer is valid. + */ +#include "usbdevs.h" #include -#include -#include -#include +#include +#include + +#define USB_DEBUG_VAR usb2_debug + +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include #include #include @@ -59,73 +119,17 @@ #include #include -#include "usbdevs.h" +static int ubt_modevent(module_t, int, void *); +static device_probe_t ubt_probe; +static device_attach_t ubt_attach; +static device_detach_t ubt_detach; -/* - * USB methods - */ +static void ubt_task_schedule(ubt_softc_p, int); +static task_fn_t ubt_task; -static device_probe_t ubt_match; -static device_attach_t ubt_attach; -static device_detach_t ubt_detach; +#define ubt_xfer_start(sc, i) usb2_transfer_start((sc)->sc_xfer[(i)]) -static device_method_t ubt_methods[] = { - /* Device interface */ - DEVMETHOD(device_probe, ubt_match), - DEVMETHOD(device_attach, ubt_attach), - DEVMETHOD(device_detach, ubt_detach), - - { 0, 0 } -}; - -static driver_t ubt_driver = { - "ubt", - ubt_methods, - sizeof(struct ubt_softc) -}; - -static devclass_t ubt_devclass; - -static int ubt_modevent (module_t, int, void *); - -static usbd_status ubt_request_start (ubt_softc_p); -static void ubt_request_complete (usbd_xfer_handle, - usbd_private_handle, usbd_status); -static void ubt_request_complete2 (node_p, hook_p, void *, int); - -static usbd_status ubt_intr_start (ubt_softc_p); -static void ubt_intr_complete (usbd_xfer_handle, - usbd_private_handle, usbd_status); -static void ubt_intr_complete2 (node_p, hook_p, void *, int); - -static usbd_status ubt_bulk_in_start (ubt_softc_p); -static void ubt_bulk_in_complete (usbd_xfer_handle, - usbd_private_handle, usbd_status); -static void ubt_bulk_in_complete2 (node_p, hook_p, void *, int); - -static usbd_status ubt_bulk_out_start (ubt_softc_p); -static void ubt_bulk_out_complete (usbd_xfer_handle, - usbd_private_handle, usbd_status); -static void ubt_bulk_out_complete2 (node_p, hook_p, void *, int); - -static usbd_status ubt_isoc_in_start_one (ubt_softc_p, int); -static usbd_status ubt_isoc_in_start (ubt_softc_p); -static void ubt_isoc_in_complete (usbd_xfer_handle, - usbd_private_handle, usbd_status); -static void ubt_isoc_in_complete2 (node_p, hook_p, void *, int); - -static usbd_status ubt_isoc_out_start_one (ubt_softc_p, int); -static usbd_status ubt_isoc_out_start (ubt_softc_p); -static void ubt_isoc_out_complete (usbd_xfer_handle, - usbd_private_handle, usbd_status); -static void ubt_isoc_out_complete2 (node_p, hook_p, void *, int); - -static void ubt_reset (ubt_softc_p); - -/* - * Netgraph methods - */ - +/* Netgraph methods */ static ng_constructor_t ng_ubt_constructor; static ng_shutdown_t ng_ubt_shutdown; static ng_newhook_t ng_ubt_newhook; @@ -141,7 +145,8 @@ { "qlen", &ng_parse_int32_type, }, { NULL, } }; -static const struct ng_parse_type ng_ubt_node_qlen_type = { +static const struct ng_parse_type ng_ubt_node_qlen_type = +{ &ng_parse_struct_type, &ng_ubt_node_qlen_type_fields }; @@ -157,61 +162,64 @@ { "ierrors", &ng_parse_uint32_type, }, { NULL, } }; -static const struct ng_parse_type ng_ubt_node_stat_type = { +static const struct ng_parse_type ng_ubt_node_stat_type = +{ &ng_parse_struct_type, &ng_ubt_node_stat_type_fields }; /* Netgraph node command list */ -static const struct ng_cmdlist ng_ubt_cmdlist[] = { +static const struct ng_cmdlist ng_ubt_cmdlist[] = { - NGM_UBT_COOKIE, - NGM_UBT_NODE_SET_DEBUG, - "set_debug", - &ng_parse_uint16_type, - NULL -}, -{ - NGM_UBT_COOKIE, - NGM_UBT_NODE_GET_DEBUG, - "get_debug", - NULL, - &ng_parse_uint16_type -}, -{ - NGM_UBT_COOKIE, - NGM_UBT_NODE_SET_QLEN, - "set_qlen", - &ng_ubt_node_qlen_type, - NULL -}, -{ - NGM_UBT_COOKIE, - NGM_UBT_NODE_GET_QLEN, - "get_qlen", - &ng_ubt_node_qlen_type, - &ng_ubt_node_qlen_type -}, -{ - NGM_UBT_COOKIE, - NGM_UBT_NODE_GET_STAT, - "get_stat", - NULL, - &ng_ubt_node_stat_type -}, -{ - NGM_UBT_COOKIE, - NGM_UBT_NODE_RESET_STAT, - "reset_stat", - NULL, - NULL -}, -{ 0, } + { + NGM_UBT_COOKIE, + NGM_UBT_NODE_SET_DEBUG, + "set_debug", + &ng_parse_uint16_type, + NULL + }, + { + NGM_UBT_COOKIE, + NGM_UBT_NODE_GET_DEBUG, + "get_debug", + NULL, + &ng_parse_uint16_type + }, + { + NGM_UBT_COOKIE, + NGM_UBT_NODE_SET_QLEN, + "set_qlen", + &ng_ubt_node_qlen_type, + NULL + }, + { + NGM_UBT_COOKIE, + NGM_UBT_NODE_GET_QLEN, + "get_qlen", + &ng_ubt_node_qlen_type, + &ng_ubt_node_qlen_type + }, + { + NGM_UBT_COOKIE, + NGM_UBT_NODE_GET_STAT, + "get_stat", + NULL, + &ng_ubt_node_stat_type + }, + { + NGM_UBT_COOKIE, + NGM_UBT_NODE_RESET_STAT, + "reset_stat", + NULL, + NULL + }, + { 0, } }; /* Netgraph node type */ -static struct ng_type typestruct = { - .version = NG_ABI_VERSION, +static struct ng_type typestruct = +{ + .version = NG_ABI_VERSION, .name = NG_UBT_NODE_TYPE, .constructor = ng_ubt_constructor, .rcvmsg = ng_ubt_rcvmsg, @@ -220,192 +228,251 @@ .connect = ng_ubt_connect, .rcvdata = ng_ubt_rcvdata, .disconnect = ng_ubt_disconnect, - .cmdlist = ng_ubt_cmdlist + .cmdlist = ng_ubt_cmdlist }; -/* - * Module - */ - -DRIVER_MODULE(ubt, uhub, ubt_driver, ubt_devclass, ubt_modevent, 0); -MODULE_VERSION(ng_ubt, NG_BLUETOOTH_VERSION); -MODULE_DEPEND(ng_ubt, netgraph, NG_ABI_VERSION, NG_ABI_VERSION, NG_ABI_VERSION); -MODULE_DEPEND(ubt, usb, 1, 1, 1); - - /**************************************************************************** **************************************************************************** ** USB specific **************************************************************************** ****************************************************************************/ +/* USB methods */ +static usb_callback_t ubt_ctrl_write_callback; +static usb_callback_t ubt_intr_read_callback; +static usb_callback_t ubt_bulk_read_callback; +static usb_callback_t ubt_bulk_write_callback; +static usb_callback_t ubt_isoc_read_callback; +static usb_callback_t ubt_isoc_write_callback; + +static int ubt_fwd_mbuf_up(ubt_softc_p, struct mbuf **); +static int ubt_isoc_read_one_frame(struct usb_xfer *, int); + /* - * Load/Unload the driver module + * USB config + * + * The following desribes usb transfers that could be submitted on USB device. + * + * Interface 0 on the USB device must present the following endpoints + * 1) Interrupt endpoint to receive HCI events + * 2) Bulk IN endpoint to receive ACL data + * 3) Bulk OUT endpoint to send ACL data + * + * Interface 1 on the USB device must present the following endpoints + * 1) Isochronous IN endpoint to receive SCO data + * 2) Isochronous OUT endpoint to send SCO data */ -static int -ubt_modevent(module_t mod, int event, void *data) +static const struct usb_config ubt_config[UBT_N_TRANSFER] = { - int error; + /* + * Interface #0 + */ + + /* Outgoing bulk transfer - ACL packets */ + [UBT_IF_0_BULK_DT_WR] = { + .type = UE_BULK, + .endpoint = UE_ADDR_ANY, + .direction = UE_DIR_OUT, + .if_index = 0, + .bufsize = UBT_BULK_WRITE_BUFFER_SIZE, + .flags = { .pipe_bof = 1, .force_short_xfer = 1, }, + .callback = &ubt_bulk_write_callback, + }, + /* Incoming bulk transfer - ACL packets */ + [UBT_IF_0_BULK_DT_RD] = { + .type = UE_BULK, + .endpoint = UE_ADDR_ANY, + .direction = UE_DIR_IN, + .if_index = 0, + .bufsize = UBT_BULK_READ_BUFFER_SIZE, + .flags = { .pipe_bof = 1, .short_xfer_ok = 1, }, + .callback = &ubt_bulk_read_callback, + }, + /* Incoming interrupt transfer - HCI events */ + [UBT_IF_0_INTR_DT_RD] = { + .type = UE_INTERRUPT, + .endpoint = UE_ADDR_ANY, + .direction = UE_DIR_IN, + .if_index = 0, + .flags = { .pipe_bof = 1, .short_xfer_ok = 1, }, + .bufsize = UBT_INTR_BUFFER_SIZE, + .callback = &ubt_intr_read_callback, + }, + /* Outgoing control transfer - HCI commands */ + [UBT_IF_0_CTRL_DT_WR] = { + .type = UE_CONTROL, + .endpoint = 0x00, /* control pipe */ + .direction = UE_DIR_ANY, + .if_index = 0, + .bufsize = UBT_CTRL_BUFFER_SIZE, + .callback = &ubt_ctrl_write_callback, + .timeout = 5000, /* 5 seconds */ + }, + + /* + * Interface #1 + */ + + /* Incoming isochronous transfer #1 - SCO packets */ + [UBT_IF_1_ISOC_DT_RD1] = { + .type = UE_ISOCHRONOUS, + .endpoint = UE_ADDR_ANY, + .direction = UE_DIR_IN, + .if_index = 1, + .bufsize = 0, /* use "wMaxPacketSize * frames" */ + .frames = UBT_ISOC_NFRAMES, + .flags = { .short_xfer_ok = 1, }, + .callback = &ubt_isoc_read_callback, + }, + /* Incoming isochronous transfer #2 - SCO packets */ + [UBT_IF_1_ISOC_DT_RD2] = { + .type = UE_ISOCHRONOUS, + .endpoint = UE_ADDR_ANY, + .direction = UE_DIR_IN, + .if_index = 1, + .bufsize = 0, /* use "wMaxPacketSize * frames" */ + .frames = UBT_ISOC_NFRAMES, + .flags = { .short_xfer_ok = 1, }, + .callback = &ubt_isoc_read_callback, + }, + /* Outgoing isochronous transfer #1 - SCO packets */ + [UBT_IF_1_ISOC_DT_WR1] = { + .type = UE_ISOCHRONOUS, + .endpoint = UE_ADDR_ANY, + .direction = UE_DIR_OUT, + .if_index = 1, + .bufsize = 0, /* use "wMaxPacketSize * frames" */ + .frames = UBT_ISOC_NFRAMES, + .flags = { .short_xfer_ok = 1, }, + .callback = &ubt_isoc_write_callback, + }, + /* Outgoing isochronous transfer #2 - SCO packets */ + [UBT_IF_1_ISOC_DT_WR2] = { + .type = UE_ISOCHRONOUS, + .endpoint = UE_ADDR_ANY, + .direction = UE_DIR_OUT, + .if_index = 1, + .bufsize = 0, /* use "wMaxPacketSize * frames" */ + .frames = UBT_ISOC_NFRAMES, + .flags = { .short_xfer_ok = 1, }, + .callback = &ubt_isoc_write_callback, + }, +}; - switch (event) { - case MOD_LOAD: - error = ng_newtype(&typestruct); - if (error != 0) - printf( -"%s: Could not register Netgraph node type, error=%d\n", - NG_UBT_NODE_TYPE, error); - else - error = usbd_driver_load(mod, event, data); - break; +/* + * If for some reason device should not be attached then put + * VendorID/ProductID pair into the list below. The format is + * as follows: + * + * { USB_VPI(VENDOR_ID, PRODUCT_ID, 0) }, + * + * where VENDOR_ID and PRODUCT_ID are hex numbers. + */ - case MOD_UNLOAD: - error = ng_rmtype(&typestruct); - if (error == 0) - error = usbd_driver_load(mod, event, data); - break; +static const struct usb_device_id ubt_ignore_devs[] = +{ + /* AVM USB Bluetooth-Adapter BlueFritz! v1.0 */ + { USB_VPI(USB_VENDOR_AVM, 0x2200, 0) }, +}; - default: - error = EOPNOTSUPP; - break; - } +/* List of supported bluetooth devices */ +static const struct usb_device_id ubt_devs[] = +{ + /* Generic Bluetooth class devices */ + { USB_IFACE_CLASS(UDCLASS_WIRELESS), + USB_IFACE_SUBCLASS(UDSUBCLASS_RF), + USB_IFACE_PROTOCOL(UDPROTO_BLUETOOTH) }, - return (error); -} /* ubt_modevent */ + /* AVM USB Bluetooth-Adapter BlueFritz! v2.0 */ + { USB_VPI(USB_VENDOR_AVM, 0x3800, 0) }, +}; /* - * Probe for a USB Bluetooth device + * Probe for a USB Bluetooth device. + * USB context. */ static int -ubt_match(device_t self) +ubt_probe(device_t dev) { - /* - * If for some reason device should not be attached then put - * VendorID/ProductID pair into the list below. The format is - * as follows: - * - * { VENDOR_ID, PRODUCT_ID }, - * - * where VENDOR_ID and PRODUCT_ID are hex numbers. - */ + struct usb_attach_arg *uaa = device_get_ivars(dev); - static struct usb_devno const ubt_ignored_devices[] = { - { USB_VENDOR_AVM, 0x2200 }, /* AVM USB Bluetooth-Adapter BlueFritz! v1.0 */ - { 0, 0 } /* This should be the last item in the list */ - }; + if (uaa->usb_mode != USB_MODE_HOST) + return (ENXIO); - /* - * If device violates Bluetooth specification and has bDeviceClass, - * bDeviceSubClass and bDeviceProtocol set to wrong values then you - * could try to put VendorID/ProductID pair into the list below. - * Adding VendorID/ProductID pair into this list forces ng_ubt(4) - * to attach to the broken device. - */ + if (uaa->info.bIfaceIndex != 0) + return (ENXIO); - static struct usb_devno const ubt_broken_devices[] = { - { USB_VENDOR_AVM, 0x3800 }, /* AVM USB Bluetooth-Adapter BlueFritz! v2.0 */ - { 0, 0 } /* This should be the last item in the list */ - }; + if (uaa->use_generic == 0) + return (ENXIO); - struct usb_attach_arg *uaa = device_get_ivars(self); - usb_device_descriptor_t *dd = usbd_get_device_descriptor(uaa->device); + if (usb2_lookup_id_by_uaa(ubt_ignore_devs, + sizeof(ubt_ignore_devs), uaa) == 0) + return (ENXIO); - if (uaa->iface == NULL || - usb_lookup(ubt_ignored_devices, uaa->vendor, uaa->product)) - return (UMATCH_NONE); - - if (dd->bDeviceClass == UDCLASS_WIRELESS && - dd->bDeviceSubClass == UDSUBCLASS_RF && - dd->bDeviceProtocol == UDPROTO_BLUETOOTH) - return (UMATCH_DEVCLASS_DEVSUBCLASS); - - if (usb_lookup(ubt_broken_devices, uaa->vendor, uaa->product)) - return (UMATCH_VENDOR_PRODUCT); - - return (UMATCH_NONE); -} /* ubt_match */ + return (usb2_lookup_id_by_uaa(ubt_devs, sizeof(ubt_devs), uaa)); +} /* ubt_probe */ /* - * Attach the device + * Attach the device. + * USB context. */ static int -ubt_attach(device_t self) +ubt_attach(device_t dev) { - struct ubt_softc *sc = device_get_softc(self); - struct usb_attach_arg *uaa = device_get_ivars(self); - usb_config_descriptor_t *cd = NULL; - usb_interface_descriptor_t *id = NULL; - usb_endpoint_descriptor_t *ed = NULL; - usbd_status error; - int i, ai, alt_no, isoc_in, isoc_out, - isoc_isize, isoc_osize; + struct usb_attach_arg *uaa = device_get_ivars(dev); + struct ubt_softc *sc = device_get_softc(dev); + struct usb_endpoint_descriptor *ed; + struct usb_interface_descriptor *id; + uint16_t wMaxPacketSize; + uint8_t alt_index, i, j; + uint8_t iface_index[2] = { 0, 1 }; + + device_set_usb2_desc(dev); - /* Get USB device info */ - sc->sc_dev = self; - sc->sc_udev = uaa->device; + sc->sc_dev = dev; + sc->sc_debug = NG_UBT_WARN_LEVEL; /* - * Initialize device softc structure + * Create Netgraph node */ - /* State */ - sc->sc_debug = NG_UBT_WARN_LEVEL; - sc->sc_flags = 0; - NG_UBT_STAT_RESET(sc->sc_stat); + if (ng_make_node_common(&typestruct, &sc->sc_node) != 0) { + UBT_ALERT(sc, "could not create Netgraph node\n"); + return (ENXIO); + } + + /* Name Netgraph node */ + if (ng_name_node(sc->sc_node, device_get_nameunit(dev)) != 0) { + UBT_ALERT(sc, "could not name Netgraph node\n"); + NG_NODE_UNREF(sc->sc_node); + return (ENXIO); + } + NG_NODE_SET_PRIVATE(sc->sc_node, sc); + NG_NODE_FORCE_WRITER(sc->sc_node); - /* Interfaces */ - sc->sc_iface0 = sc->sc_iface1 = NULL; + /* + * Initialize device softc structure + */ - /* Interrupt pipe */ - sc->sc_intr_ep = -1; - sc->sc_intr_pipe = NULL; - sc->sc_intr_xfer = NULL; - sc->sc_intr_buffer = NULL; + /* initialize locks */ + mtx_init(&sc->sc_ng_mtx, "ubt ng", NULL, MTX_DEF); + mtx_init(&sc->sc_if_mtx, "ubt if", NULL, MTX_DEF | MTX_RECURSE); - /* Control pipe */ - sc->sc_ctrl_xfer = NULL; - sc->sc_ctrl_buffer = NULL; + /* initialize packet queues */ NG_BT_MBUFQ_INIT(&sc->sc_cmdq, UBT_DEFAULT_QLEN); - - /* Bulk-in pipe */ - sc->sc_bulk_in_ep = -1; - sc->sc_bulk_in_pipe = NULL; - sc->sc_bulk_in_xfer = NULL; - sc->sc_bulk_in_buffer = NULL; - - /* Bulk-out pipe */ - sc->sc_bulk_out_ep = -1; - sc->sc_bulk_out_pipe = NULL; - sc->sc_bulk_out_xfer = NULL; - sc->sc_bulk_out_buffer = NULL; NG_BT_MBUFQ_INIT(&sc->sc_aclq, UBT_DEFAULT_QLEN); - - /* Isoc-in pipe */ - sc->sc_isoc_in_buffer = NULL; - sc->sc_isoc_in_ep = -1; - sc->sc_isoc_in_pipe = NULL; - bzero(&sc->sc_isoc_in, sizeof(sc->sc_isoc_in)); - - /* Isoc-out pipe */ - sc->sc_isoc_out_ep = -1; - sc->sc_isoc_out_pipe = NULL; - bzero(&sc->sc_isoc_out, sizeof(sc->sc_isoc_out)); - - sc->sc_isoc_size = -1; NG_BT_MBUFQ_INIT(&sc->sc_scoq, UBT_DEFAULT_QLEN); - /* Netgraph part */ - sc->sc_node = NULL; - sc->sc_hook = NULL; + /* initialize glue task */ + TASK_INIT(&sc->sc_task, 0, ubt_task, sc); /* - * XXX set configuration? + * Configure Bluetooth USB device. Discover all required USB + * interfaces and endpoints. * - * Configure Bluetooth USB device. Discover all required USB interfaces - * and endpoints. - * * USB device must present two interfaces: * 1) Interface 0 that has 3 endpoints * 1) Interrupt endpoint to receive HCI events @@ -416,1524 +483,804 @@ * 1) Isochronous IN endpoint to receive SCO data * 2) Isochronous OUT endpoint to send SCO data * - * Interface 1 (with isochronous endpoints) has several alternate + * Interface 1 (with isochronous endpoints) has several alternate * configurations with different packet size. */ /* - * Interface 0 + * For interface #1 search alternate settings, and find + * the descriptor with the largest wMaxPacketSize */ - error = usbd_device2interface_handle(sc->sc_udev, 0, &sc->sc_iface0); - if (error || sc->sc_iface0 == NULL) { - printf("%s: Could not get interface 0 handle. %s (%d), " \ - "handle=%p\n", device_get_nameunit(sc->sc_dev), - usbd_errstr(error), error, sc->sc_iface0); - goto bad; - } + wMaxPacketSize = 0; + alt_index = 0; + i = 0; + j = 0; + ed = NULL; - id = usbd_get_interface_descriptor(sc->sc_iface0); - if (id == NULL) { - printf("%s: Could not get interface 0 descriptor\n", - device_get_nameunit(sc->sc_dev)); - goto bad; - } - - for (i = 0; i < id->bNumEndpoints; i ++) { - ed = usbd_interface2endpoint_descriptor(sc->sc_iface0, i); - if (ed == NULL) { - printf("%s: Could not read endpoint descriptor for " \ - "interface 0, i=%d\n", device_get_nameunit(sc->sc_dev), - i); - goto bad; - } - - switch (UE_GET_XFERTYPE(ed->bmAttributes)) { - case UE_BULK: - if (UE_GET_DIR(ed->bEndpointAddress) == UE_DIR_IN) - sc->sc_bulk_in_ep = ed->bEndpointAddress; - else - sc->sc_bulk_out_ep = ed->bEndpointAddress; - break; - - case UE_INTERRUPT: - sc->sc_intr_ep = ed->bEndpointAddress; - break; - } - } - - /* Check if we got everything we wanted on Interface 0 */ - if (sc->sc_intr_ep == -1) { - printf("%s: Could not detect interrupt endpoint\n", - device_get_nameunit(sc->sc_dev)); - goto bad; - } - if (sc->sc_bulk_in_ep == -1) { - printf("%s: Could not detect bulk-in endpoint\n", - device_get_nameunit(sc->sc_dev)); - goto bad; - } - if (sc->sc_bulk_out_ep == -1) { - printf("%s: Could not detect bulk-out endpoint\n", - device_get_nameunit(sc->sc_dev)); - goto bad; - } - - printf("%s: Interface 0 endpoints: interrupt=%#x, bulk-in=%#x, " \ - "bulk-out=%#x\n", device_get_nameunit(sc->sc_dev), - sc->sc_intr_ep, sc->sc_bulk_in_ep, sc->sc_bulk_out_ep); - - /* - * Interface 1 + /* + * Search through all the descriptors looking for the largest + * packet size: */ + while ((ed = (struct usb_endpoint_descriptor *)usb2_desc_foreach( + usb2_get_config_descriptor(uaa->device), + (struct usb_descriptor *)ed))) { - cd = usbd_get_config_descriptor(sc->sc_udev); - if (cd == NULL) { - printf("%s: Could not get device configuration descriptor\n", - device_get_nameunit(sc->sc_dev)); - goto bad; - } - - error = usbd_device2interface_handle(sc->sc_udev, 1, &sc->sc_iface1); - if (error || sc->sc_iface1 == NULL) { - printf("%s: Could not get interface 1 handle. %s (%d), " \ - "handle=%p\n", device_get_nameunit(sc->sc_dev), - usbd_errstr(error), error, sc->sc_iface1); - goto bad; - } - - id = usbd_get_interface_descriptor(sc->sc_iface1); - if (id == NULL) { - printf("%s: Could not get interface 1 descriptor\n", - device_get_nameunit(sc->sc_dev)); - goto bad; - } - - /* - * Scan all alternate configurations for interface 1 - */ - - alt_no = -1; - - for (ai = 0; ai < usbd_get_no_alts(cd, 1); ai++) { - error = usbd_set_interface(sc->sc_iface1, ai); - if (error) { - printf("%s: [SCAN] Could not set alternate " \ - "configuration %d for interface 1. %s (%d)\n", - device_get_nameunit(sc->sc_dev), ai, usbd_errstr(error), - error); - goto bad; - } - id = usbd_get_interface_descriptor(sc->sc_iface1); - if (id == NULL) { - printf("%s: Could not get interface 1 descriptor for " \ - "alternate configuration %d\n", - device_get_nameunit(sc->sc_dev), ai); - goto bad; + if ((ed->bDescriptorType == UDESC_INTERFACE) && + (ed->bLength >= sizeof(*id))) { + id = (struct usb_interface_descriptor *)ed; + i = id->bInterfaceNumber; + j = id->bAlternateSetting; } - isoc_in = isoc_out = -1; - isoc_isize = isoc_osize = 0; + if ((ed->bDescriptorType == UDESC_ENDPOINT) && + (ed->bLength >= sizeof(*ed)) && + (i == 1)) { + uint16_t temp; - for (i = 0; i < id->bNumEndpoints; i ++) { - ed = usbd_interface2endpoint_descriptor(sc->sc_iface1, i); - if (ed == NULL) { - printf("%s: Could not read endpoint " \ - "descriptor for interface 1, " \ - "alternate configuration %d, i=%d\n", - device_get_nameunit(sc->sc_dev), ai, i); - goto bad; - } - - if (UE_GET_XFERTYPE(ed->bmAttributes) != UE_ISOCHRONOUS) - continue; - - if (UE_GET_DIR(ed->bEndpointAddress) == UE_DIR_IN) { - isoc_in = ed->bEndpointAddress; - isoc_isize = UGETW(ed->wMaxPacketSize); - } else { - isoc_out = ed->bEndpointAddress; - isoc_osize = UGETW(ed->wMaxPacketSize); + temp = UGETW(ed->wMaxPacketSize); + if (temp > wMaxPacketSize) { + wMaxPacketSize = temp; + alt_index = j; } } - - /* - * Make sure that configuration looks sane and if so - * update current settings - */ - - if (isoc_in != -1 && isoc_out != -1 && - isoc_isize > 0 && isoc_osize > 0 && - isoc_isize == isoc_osize && isoc_isize > sc->sc_isoc_size) { - sc->sc_isoc_in_ep = isoc_in; - sc->sc_isoc_out_ep = isoc_out; - sc->sc_isoc_size = isoc_isize; - alt_no = ai; - } } - /* Check if we got everything we wanted on Interface 0 */ - if (sc->sc_isoc_in_ep == -1) { - printf("%s: Could not detect isoc-in endpoint\n", - device_get_nameunit(sc->sc_dev)); - goto bad; + /* Set alt configuration on interface #1 only if we found it */ + if (wMaxPacketSize > 0 && + usb2_set_alt_interface_index(uaa->device, 1, alt_index)) { + UBT_ALERT(sc, "could not set alternate setting %d " \ + "for interface 1!\n", alt_index); + goto detach; } - if (sc->sc_isoc_out_ep == -1) { - printf("%s: Could not detect isoc-out endpoint\n", - device_get_nameunit(sc->sc_dev)); - goto bad; - } - if (sc->sc_isoc_size <= 0) { - printf("%s: Invalid isoc. packet size=%d\n", - device_get_nameunit(sc->sc_dev), sc->sc_isoc_size); - goto bad; >>> TRUNCATED FOR MAIL (1000 lines) <<< From owner-p4-projects@FreeBSD.ORG Mon Jun 8 18:43:47 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 673EA1065674; Mon, 8 Jun 2009 18:43:47 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 22C041065673 for ; Mon, 8 Jun 2009 18:43:47 +0000 (UTC) (envelope-from rene@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 0FFD88FC15 for ; Mon, 8 Jun 2009 18:43:47 +0000 (UTC) (envelope-from rene@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n58Ihk80003608 for ; Mon, 8 Jun 2009 18:43:46 GMT (envelope-from rene@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n58IhkNh003606 for perforce@freebsd.org; Mon, 8 Jun 2009 18:43:46 GMT (envelope-from rene@FreeBSD.org) Date: Mon, 8 Jun 2009 18:43:46 GMT Message-Id: <200906081843.n58IhkNh003606@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to rene@FreeBSD.org using -f From: Rene Ladan To: Perforce Change Reviews Cc: Subject: PERFORCE change 163816 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 08 Jun 2009 18:43:48 -0000 http://perforce.freebsd.org/chv.cgi?CH=163816 Change 163816 by rene@rene_self on 2009/06/08 18:43:00 MFen: nl_NL.ISO8859-1/books/handbook/introduction/chapter.sgml 1.134 -> 1.135 nl_NL.ISO8859-1/share/sgml/trademarks.ent 1.44 -> 1.45 (SRCID bump) www/nl/administration.sgml 1.24 -> 1.25 www/nl/index.xsl 1.167 -> 1.169 www/nl/share/sgml/header.l10n.ent 1.10 -> 1.11 Affected files ... .. //depot/projects/docproj_nl/nl_NL.ISO8859-1/books/handbook/introduction/chapter.sgml#19 edit .. //depot/projects/docproj_nl/nl_NL.ISO8859-1/share/sgml/trademarks.ent#4 edit .. //depot/projects/docproj_nl/www/nl/administration.sgml#7 edit .. //depot/projects/docproj_nl/www/nl/index.xsl#12 edit .. //depot/projects/docproj_nl/www/nl/share/sgml/header.l10n.ent#9 edit Differences ... ==== //depot/projects/docproj_nl/nl_NL.ISO8859-1/books/handbook/introduction/chapter.sgml#19 (text+ko) ==== @@ -5,7 +5,7 @@ $FreeBSDnl: nl_NL.ISO8859-1/books/handbook/introduction/chapter.sgml,v 1.35 2005/09/23 17:03:10 siebrand Exp $ %SOURCE% en_US.ISO8859-1/books/handbook/introduction/chapter.sgml - %SRCID% 1.134 + %SRCID% 1.135 --> @@ -563,6 +563,11 @@ url="http://www.netcraft.com/">Netcraft + NetEase + + NetEase + + Weathernews ==== //depot/projects/docproj_nl/nl_NL.ISO8859-1/share/sgml/trademarks.ent#4 (text+ko) ==== @@ -11,7 +11,7 @@ $FreeBSD: doc/nl_NL.ISO8859-1/share/sgml/trademarks.ent,v 1.2 2009/03/29 15:01:00 rene Exp $ %SOURCE% share/sgml/trademarks.ent - %SRCID% 1.44 + %SRCID% 1.45 --> 3Com en HomeConnect zijn geregistreerde ==== //depot/projects/docproj_nl/www/nl/administration.sgml#7 (text+ko) ==== @@ -7,7 +7,7 @@ &header; @@ -133,7 +133,8 @@
  • &a.erwin; <erwin@FreeBSD.org>
  • &a.linimon; <linimon@FreeBSD.org>
  • &a.pav; <pav@FreeBSD.org>
  • -
  • &a.krion; <krion@FreeBSD.org>
  • +
  • &a.miwi; <miwi@FreeBSD.org>
  • +
  • &a.itetcu; <itetcu@FreeBSD.org>
  • &a.flz; <flz@FreeBSD.org>
  • @@ -424,9 +425,10 @@ verantwoordelijk voor de probleemrapportagegroep.

    Clusterbeheerders ==== //depot/projects/docproj_nl/www/nl/index.xsl#12 (text+ko) ==== @@ -1,7 +1,7 @@ + ==== //depot/projects/docproj_nl/www/nl/share/sgml/header.l10n.ent#9 (text+ko) ==== @@ -1,6 +1,6 @@ @@ -49,12 +49,26 @@ + '> ]]> + '> From owner-p4-projects@FreeBSD.ORG Mon Jun 8 19:14:18 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 9E48E1065675; Mon, 8 Jun 2009 19:14:18 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 5BF701065673 for ; Mon, 8 Jun 2009 19:14:18 +0000 (UTC) (envelope-from syl@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 4A95D8FC12 for ; Mon, 8 Jun 2009 19:14:18 +0000 (UTC) (envelope-from syl@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n58JEI2g008134 for ; Mon, 8 Jun 2009 19:14:18 GMT (envelope-from syl@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n58JEIwu008132 for perforce@freebsd.org; Mon, 8 Jun 2009 19:14:18 GMT (envelope-from syl@FreeBSD.org) Date: Mon, 8 Jun 2009 19:14:18 GMT Message-Id: <200906081914.n58JEIwu008132@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to syl@FreeBSD.org using -f From: Sylvestre Gallon To: Perforce Change Reviews Cc: Subject: PERFORCE change 163819 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 08 Jun 2009 19:14:19 -0000 http://perforce.freebsd.org/chv.cgi?CH=163819 Change 163819 by syl@syl_atuin on 2009/06/08 19:13:43 Fix dead assignments. Fix use of uninitialized value. Fix dereference of undefined value. Found by LLVM/Clang Static Analyzer. Affected files ... .. //depot/projects/soc2009/syl_usb/src/lib/libusb/libusb10.c#26 edit .. //depot/projects/soc2009/syl_usb/src/lib/libusb/libusb10_desc.c#12 edit .. //depot/projects/soc2009/syl_usb/src/lib/libusb/libusb10_io.c#8 edit Differences ... ==== //depot/projects/soc2009/syl_usb/src/lib/libusb/libusb10.c#26 (text+ko) ==== @@ -41,7 +41,6 @@ /* * XXX TODO * - implement debug messages. - * - implement last io funcs. */ static pthread_mutex_t default_context_lock = PTHREAD_MUTEX_INITIALIZER; @@ -364,7 +363,7 @@ } libusb_lock_events(ctx); - err = read(ctx->ctrl_pipe[0], &dummy, sizeof(dummy)); + read(ctx->ctrl_pipe[0], &dummy, sizeof(dummy)); pthread_mutex_lock(&ctx->pollfd_modify_lock); ctx->pollfd_modify--; pthread_mutex_unlock(&ctx->pollfd_modify_lock); @@ -381,7 +380,7 @@ struct libusb_device_handle *devh; struct libusb20_device *pdev; struct LIBUSB20_DEVICE_DESC_DECODED *pdesc; - int i, j, k; + int i, j; devh = NULL; @@ -393,7 +392,7 @@ pdesc = libusb20_dev_get_device_desc(pdev); if (pdesc->idVendor == vendor_id && pdesc->idProduct == product_id) - if ((k = libusb_open(devs[j], &devh)) < 0) + if (libusb_open(devs[j], &devh) < 0) devh = NULL; } @@ -438,7 +437,7 @@ } libusb_lock_events(ctx); - err = read(ctx->ctrl_pipe[0], &dummy, sizeof(dummy)); + read(ctx->ctrl_pipe[0], &dummy, sizeof(dummy)); pthread_mutex_lock(&ctx->open_devs_lock); LIST_DEL(&devh->list); pthread_mutex_unlock(&ctx->open_devs_lock); @@ -522,6 +521,7 @@ { int ret; + ret = 0; if (dev == NULL) return (LIBUSB_ERROR_INVALID_PARAM); @@ -735,7 +735,7 @@ usb_backend->flags = 0; if (xfer->timeout != 0) { - ret = clock_gettime(CLOCK_MONOTONIC, &cur_ts); + clock_gettime(CLOCK_MONOTONIC, &cur_ts); cur_ts.tv_sec += xfer->timeout / 1000; cur_ts.tv_nsec += (xfer->timeout % 1000) * 1000000; ==== //depot/projects/soc2009/syl_usb/src/lib/libusb/libusb10_desc.c#12 (text+ko) ==== @@ -166,7 +166,7 @@ (*config)->MaxPower = pconf->desc.bMaxPower; (*config)->extra_length = pconf->extra.len; if ((*config)->extra_length != 0) - ifd->extra = pconf->extra.ptr; + (*config)->extra = pconf->extra.ptr; for (i = 0 ; i < nif ; i++) { pinf = &pconf->interface[i]; ==== //depot/projects/soc2009/syl_usb/src/lib/libusb/libusb10_io.c#8 (text+ko) ==== @@ -620,7 +620,7 @@ } libusb_free_transfer(xfer); - return (0); + return (ret); } int From owner-p4-projects@FreeBSD.ORG Mon Jun 8 20:06:12 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 3B8921065676; Mon, 8 Jun 2009 20:06:12 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 9C4211065687 for ; Mon, 8 Jun 2009 20:06:11 +0000 (UTC) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 885868FC2A for ; Mon, 8 Jun 2009 20:06:11 +0000 (UTC) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n58K6BS2013684 for ; Mon, 8 Jun 2009 20:06:11 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n58K6B86013682 for perforce@freebsd.org; Mon, 8 Jun 2009 20:06:11 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Date: Mon, 8 Jun 2009 20:06:11 GMT Message-Id: <200906082006.n58K6B86013682@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to bb+lists.freebsd.perforce@cyrus.watson.org using -f From: Robert Watson To: Perforce Change Reviews Cc: Subject: PERFORCE change 163824 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 08 Jun 2009 20:06:13 -0000 http://perforce.freebsd.org/chv.cgi?CH=163824 Change 163824 by rwatson@rwatson_freebsd_capabilities on 2009/06/08 20:05:36 As a supplement to existing ad hoc sandboxing techniques in sshd's privilege separation, also employ a capability mode sandbox if supported by the kernel. Affected files ... .. //depot/projects/trustedbsd/capabilities/src/crypto/openssh/sshd.c#5 edit Differences ... ==== //depot/projects/trustedbsd/capabilities/src/crypto/openssh/sshd.c#5 (text+ko) ==== @@ -46,6 +46,7 @@ __RCSID("$FreeBSD: src/crypto/openssh/sshd.c,v 1.48 2009/05/22 18:46:28 des Exp $"); #include +#include #include #include #ifdef HAVE_SYS_STAT_H @@ -620,6 +621,8 @@ fatal("setgroups: %.100s", strerror(errno)); permanently_set_uid(privsep_pw); #endif + if (cap_enter() != 0 && errno != ENOSYS) + fatal("cap_enter: %.100s", strerror(errno)); } static int From owner-p4-projects@FreeBSD.ORG Mon Jun 8 20:43:51 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id D7F931065678; Mon, 8 Jun 2009 20:43:50 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 905E41065670 for ; Mon, 8 Jun 2009 20:43:50 +0000 (UTC) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 61FF68FC20 for ; Mon, 8 Jun 2009 20:43:50 +0000 (UTC) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n58KhoG1016648 for ; Mon, 8 Jun 2009 20:43:50 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n58Khoa0016646 for perforce@freebsd.org; Mon, 8 Jun 2009 20:43:50 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Date: Mon, 8 Jun 2009 20:43:50 GMT Message-Id: <200906082043.n58Khoa0016646@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to bb+lists.freebsd.perforce@cyrus.watson.org using -f From: Robert Watson To: Perforce Change Reviews Cc: Subject: PERFORCE change 163829 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 08 Jun 2009 20:43:52 -0000 http://perforce.freebsd.org/chv.cgi?CH=163829 Change 163829 by rwatson@rwatson_freebsd_capabilities on 2009/06/08 20:43:11 Allow fork(2) in sandboxes -- pdfork(2) should be preferred, but fork(2) isn't harmful. Affected files ... .. //depot/projects/trustedbsd/capabilities/src/sys/kern/capabilities.conf#19 edit .. //depot/projects/trustedbsd/capabilities/src/sys/kern/init_sysent.c#32 edit .. //depot/projects/trustedbsd/capabilities/src/sys/kern/syscalls.c#32 edit .. //depot/projects/trustedbsd/capabilities/src/sys/kern/systrace_args.c#32 edit .. //depot/projects/trustedbsd/capabilities/src/sys/sys/syscall.h#32 edit .. //depot/projects/trustedbsd/capabilities/src/sys/sys/syscall.mk#32 edit .. //depot/projects/trustedbsd/capabilities/src/sys/sys/sysproto.h#32 edit Differences ... ==== //depot/projects/trustedbsd/capabilities/src/sys/kern/capabilities.conf#19 (text+ko) ==== @@ -38,7 +38,7 @@ ## - sys_exit(2), abort2(2) and close(2) are very important. ## - Sorted alphabetically, please keep it that way. ## -## $P4: //depot/projects/trustedbsd/capabilities/src/sys/kern/capabilities.conf#18 $ +## $P4: //depot/projects/trustedbsd/capabilities/src/sys/kern/capabilities.conf#19 $ ## ## @@ -191,6 +191,12 @@ flock ## +## Allow fork(2), even though it returns pids -- some applications seem to +## prefer this interface. +## +fork + +## ## Allow fpathconf(2), subject to capability rights. ## fpathconf ==== //depot/projects/trustedbsd/capabilities/src/sys/kern/init_sysent.c#32 (text+ko) ==== @@ -30,7 +30,7 @@ struct sysent sysent[] = { { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0 }, /* 0 = syscall */ { AS(sys_exit_args), (sy_call_t *)sys_exit, AUE_EXIT, NULL, 0, 0, SYF_CAPENABLED }, /* 1 = exit */ - { 0, (sy_call_t *)fork, AUE_FORK, NULL, 0, 0, 0 }, /* 2 = fork */ + { 0, (sy_call_t *)fork, AUE_FORK, NULL, 0, 0, SYF_CAPENABLED }, /* 2 = fork */ { AS(read_args), (sy_call_t *)read, AUE_NULL, NULL, 0, 0, SYF_CAPENABLED }, /* 3 = read */ { AS(write_args), (sy_call_t *)write, AUE_NULL, NULL, 0, 0, SYF_CAPENABLED }, /* 4 = write */ { AS(open_args), (sy_call_t *)open, AUE_OPEN_RWTC, NULL, 0, 0, 0 }, /* 5 = open */ ==== //depot/projects/trustedbsd/capabilities/src/sys/kern/syscalls.c#32 (text+ko) ==== ==== //depot/projects/trustedbsd/capabilities/src/sys/kern/systrace_args.c#32 (text+ko) ==== ==== //depot/projects/trustedbsd/capabilities/src/sys/sys/syscall.h#32 (text+ko) ==== ==== //depot/projects/trustedbsd/capabilities/src/sys/sys/syscall.mk#32 (text+ko) ==== ==== //depot/projects/trustedbsd/capabilities/src/sys/sys/sysproto.h#32 (text+ko) ==== From owner-p4-projects@FreeBSD.ORG Mon Jun 8 20:44:52 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id E175A1065675; Mon, 8 Jun 2009 20:44:51 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 9E5F4106566C for ; Mon, 8 Jun 2009 20:44:51 +0000 (UTC) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 8B3EA8FC22 for ; Mon, 8 Jun 2009 20:44:51 +0000 (UTC) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n58KipAm016724 for ; Mon, 8 Jun 2009 20:44:51 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n58KipIJ016722 for perforce@freebsd.org; Mon, 8 Jun 2009 20:44:51 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Date: Mon, 8 Jun 2009 20:44:51 GMT Message-Id: <200906082044.n58KipIJ016722@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to bb+lists.freebsd.perforce@cyrus.watson.org using -f From: Robert Watson To: Perforce Change Reviews Cc: Subject: PERFORCE change 163830 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 08 Jun 2009 20:44:52 -0000 http://perforce.freebsd.org/chv.cgi?CH=163830 Change 163830 by rwatson@rwatson_freebsd_capabilities on 2009/06/08 20:44:45 Supplement existing privilege separation in dhclient using capability mode. Affected files ... .. //depot/projects/trustedbsd/capabilities/src/sbin/dhclient/dhclient.c#4 edit Differences ... ==== //depot/projects/trustedbsd/capabilities/src/sbin/dhclient/dhclient.c#4 (text+ko) ==== @@ -61,6 +61,8 @@ #include +#include + #ifndef _PATH_VAREMPTY #define _PATH_VAREMPTY "/var/empty" #endif @@ -438,6 +440,9 @@ if (immediate_daemon) go_daemon(); + if (cap_enter() != 0 && errno != ENOSYS) + error("cap_enter"); + ifi->client->state = S_INIT; state_reboot(ifi); From owner-p4-projects@FreeBSD.ORG Mon Jun 8 21:05:13 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 7559E1065675; Mon, 8 Jun 2009 21:05:13 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 94F97106568E for ; Mon, 8 Jun 2009 21:05:12 +0000 (UTC) (envelope-from rene@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 64F5E8FC14 for ; Mon, 8 Jun 2009 21:05:12 +0000 (UTC) (envelope-from rene@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n58L5Coa029351 for ; Mon, 8 Jun 2009 21:05:12 GMT (envelope-from rene@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n58L5CFf029349 for perforce@freebsd.org; Mon, 8 Jun 2009 21:05:12 GMT (envelope-from rene@FreeBSD.org) Date: Mon, 8 Jun 2009 21:05:12 GMT Message-Id: <200906082105.n58L5CFf029349@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to rene@FreeBSD.org using -f From: Rene Ladan To: Perforce Change Reviews Cc: Subject: PERFORCE change 163832 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 08 Jun 2009 21:05:19 -0000 http://perforce.freebsd.org/chv.cgi?CH=163832 Change 163832 by rene@rene_self on 2009/06/08 21:04:18 MFen articles/explaining-bsd 1.23 -> 1.24 Affected files ... .. //depot/projects/docproj_nl/nl_NL.ISO8859-1/articles/explaining-bsd/article.sgml#15 edit Differences ... ==== //depot/projects/docproj_nl/nl_NL.ISO8859-1/articles/explaining-bsd/article.sgml#15 (text+ko) ==== @@ -2,7 +2,7 @@ - + @@ -26,9 +26,12 @@ &tm-attrib.freebsd; &tm-attrib.amd; &tm-attrib.apple; + &tm-attrib.intel; &tm-attrib.linux; &tm-attrib.opengroup; + &tm-attrib.sparc; &tm-attrib.sun; + &tm-attrib.unix; &tm-attrib.xfree86; &tm-attrib.general; @@ -403,7 +406,7 @@ naamgeving en voegt een achtervoegsel van een enkele letter toe welke veranderingen aan de interne interfaces aangeeft, bijvoorbeeld NetBSD 1.4.3G. OpenBSD kent geen nummer toe - ("OpenBSD-current"). Alle nieuwe ontwikkelingen aan het + (OpenBSD-current). Alle nieuwe ontwikkelingen aan het systeem komen in deze tak terecht. @@ -463,7 +466,7 @@ &os; richt zich op hoge prestaties en gebruikersgemak voor eindgebruikers, en is een favoriet van aanbieders van webinhoud. Het draait op een aantal platformen, waaronder - systemen die op de i386 gebaseerd zijn + systemen die op de &i386; gebaseerd zijn (PC's), systemen die gebaseerd zijn op AMD 64-bit-processoren, systemen die op &ultrasparc; gebaseerd zijn, systemen die gebaseerd zijn op de Alpha-processoren @@ -477,7 +480,7 @@ course it runs NetBSD. Het draait op machines variërend van palmtops tot grote servers, en het is zelfs gebruikt in ruimtemissies van NASA. Het is een - bijzonder goede keuze om op oude niet-Intel hardware te + bijzonder goede keuze om op oude niet-&intel; hardware te draaien. From owner-p4-projects@FreeBSD.ORG Mon Jun 8 21:21:29 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 9D61E106567F; Mon, 8 Jun 2009 21:21:29 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 5D22A106564A for ; Mon, 8 Jun 2009 21:21:29 +0000 (UTC) (envelope-from jona@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 312BA8FC1D for ; Mon, 8 Jun 2009 21:21:29 +0000 (UTC) (envelope-from jona@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n58LLTMl030723 for ; Mon, 8 Jun 2009 21:21:29 GMT (envelope-from jona@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n58LLT3F030721 for perforce@freebsd.org; Mon, 8 Jun 2009 21:21:29 GMT (envelope-from jona@FreeBSD.org) Date: Mon, 8 Jun 2009 21:21:29 GMT Message-Id: <200906082121.n58LLT3F030721@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to jona@FreeBSD.org using -f From: Jonathan Anderson To: Perforce Change Reviews Cc: Subject: PERFORCE change 163835 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 08 Jun 2009 21:21:30 -0000 http://perforce.freebsd.org/chv.cgi?CH=163835 Change 163835 by jona@jona-trustedbsd-belle-vm on 2009/06/08 21:21:22 Let uipc_syscalls.c compile even if CAPABILITIES is not defined Affected files ... .. //depot/projects/trustedbsd/capabilities/src/sys/kern/uipc_syscalls.c#12 edit Differences ... ==== //depot/projects/trustedbsd/capabilities/src/sys/kern/uipc_syscalls.c#12 (text+ko) ==== @@ -120,8 +120,8 @@ struct file *fp; #ifdef CAPABILITIES struct file *fp_fromcap; + int error; #endif - int error; fp = NULL; if (fdp == NULL || (fp = fget_unlocked(fdp, fd)) == NULL) From owner-p4-projects@FreeBSD.ORG Mon Jun 8 21:53:02 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id D45751065686; Mon, 8 Jun 2009 21:53:01 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 9151B1065695 for ; Mon, 8 Jun 2009 21:53:01 +0000 (UTC) (envelope-from rene@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 7C9208FC12 for ; Mon, 8 Jun 2009 21:53:01 +0000 (UTC) (envelope-from rene@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n58Lr1pi034131 for ; Mon, 8 Jun 2009 21:53:01 GMT (envelope-from rene@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n58Lr1rD034129 for perforce@freebsd.org; Mon, 8 Jun 2009 21:53:01 GMT (envelope-from rene@FreeBSD.org) Date: Mon, 8 Jun 2009 21:53:01 GMT Message-Id: <200906082153.n58Lr1rD034129@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to rene@FreeBSD.org using -f From: Rene Ladan To: Perforce Change Reviews Cc: Subject: PERFORCE change 163838 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 08 Jun 2009 21:53:03 -0000 http://perforce.freebsd.org/chv.cgi?CH=163838 Change 163838 by rene@rene_self on 2009/06/08 21:52:50 [website] finish book section of publish.sgml Affected files ... .. //depot/projects/docproj_nl/www/nl/publish.sgml#5 edit Differences ... ==== //depot/projects/docproj_nl/www/nl/publish.sgml#5 (text+ko) ==== @@ -215,82 +215,81 @@ boekomslag "&os;, An Open-Source Operating System for Your Personal Computer", Annelise Anderson.
    - An introduction to &os; for users new to both &os; and UNIX. - This book includes a 4.4 installation CD-ROM and covers everything - you need to know about installation of the system and third-party - software; getting sound, X Window, your network, and printing working; - building your own kernel; and upgrading. Second Edition. December 2001, + Een introductie tot &os; voor gebruikers voor wie zowel &os; als UNIX + nieuw zijn. Dit boek bevat een installatie-CD-ROM voor &os; 4.4 + en behandelt alles dat u dient te weten over de installatie van het + systeem en software van derde partijen; en over het werkend krijgen + van geluid, X Window, uw netwerk en printen; het bouwen van uw + eigen kernel; en upgraden. Tweede editie, december 2001, The Bit Tree Press. ISBN 0-9712045-1-9 Absolute BSD boekomslag - Absolute BSD. This book discusses management of - &os;-based servers in high-performance enterprise - environments. - - June 2002, No Starch - Press. ISBN 1-886411-74-3 + Absolute BSD. Dit boek bespreekt het beheer van servers die op + &os; zijn gebaseerd in hoog-presterende bedrijfsomgevingen. Juni + 2002, No Starch Press. ISBN + 1-886411-74-3 &os; Open Documentation Library - -Fultus presents -&os; Open Documentation Library. This -is the full up-to-date &os; documentation collection available -online -in the Technical Literature section of the Fultus -eLibrary -and Fultus Online Book -Superstore -in the following formats: + Fultus + presenteert &os; Open Documentation Library. Dit is de + volledig bijgewerkte &os; documentatieverzameling die in de + volgende formaten + online beschikbaar is in de sectie Technische + Literatuur van de Fultus eLibrary en de Fultus Online Book + Superstore:
      -
    • Online Web Help (searchable through all documents) (Mozilla, Netscape Navigator & IE compatible); -
    • Searchable Adobe PDF format with Bookmark link page (for desktop and PDA); -
    • Compiled HTML format (chm) (for Windows). +
    • Online Web Help (alle documenten doorzoekbaar) (Mozilla, Netscape Navigator & IE-compatibelen); +
    • doorzoekbaar Adobe PDF formaat met Bookmark link-pagina (voor desktop en PDA); +
    • Gecompileerd HTML formaat (chm) (voor Windows).
    -Interested? -
    Read about &os; eBooks and download examples on the -&os; Documentation -page of the Fultus web site. - +Geïnteresseerd? +
    Lees meer over &os; eBooks en download voorbeelden op de pagina +&os; Documentatie +van de Fultus website. boekomslag - "Building an Internet Server with &os; 6" is a step-by-step - guide for helping new and experienced users to &os; - install and configure the latest Internet server applications - in a minimum of time. The guide includes descriptions of - many of the Internet's most popular and widely deployed - open source projects, detailed instructions on implementing - each, and maintenance tasks important to an Internet - server. May 2006, Lulu Press, ISBN 1411695747, 228 pages. + + "Building an Internet Server with &os; 6" is een stapsgewijze + gids die nieuwe en ervaren gebruikers van &os; helpt om de nieuwste + Internet-serverapplicaties in een mum van tijd te configureren en te + installeren. De gids bevat beschrijvingen van vele populaire en + wijdverspreide open-source projecten van het Internet, gedetailleerde + instructies om elk ervan te implementeren, en onderhoudstaken die + belangrijk zijn voor een Internet-server. Mei 2006, Lulu Press, ISBN + 1411695747, 228 pagina's. boekomslag - Written by the professionals of EnderUNIX and Huseyin Yuce - this book is the first Turkish &os; book. The book is - published by acikkod - publications. Book is available for sale on this page. - Details of the book:
    + Dit is het eerste Turkse &os;-boek, geschreven door de + professionals van EnderUNIX en Huseyin Yuce. Het boek wordt + gepubliceerd door acikkod + Publicaties. Het boek is te koop via deze pagina. + Details van het boek:

    ISBN: 975-98990-0-0
    - Published: February 2004
    - Paperback: 504 pages
    - CD: &os; 4.9 Installation CD
    - Authors: Hüseyin Yüce, İsmail Yenigül, Ömer Faruk - Şen, Barış Şimşek and Murat + Gepubliceerd: februari 2004
    + Paperback: 504 pagina's
    + CD: &os; 4.9 installatie-CD
    + Auteurs: Hüseyin Yüce, İsmail Yenigül, Ömer Faruk + Şen, Barış Şimşek en Murat Balaban.

    - Table of - Contents (in Turkish) + Inhoudsopgave + (in het Turks) @@ -300,11 +299,11 @@ src="&enbase;/gifs/cahiers_adm_cov.jpg" width="187" height="215" alt="Les cahiers de l'Admin BSD boekomslag"> - Les cahiers de l'Admin: BSD (the BSD sysadmin notebook), - from Emmanuel Dreyfus, covers various &unix; administrative - topics for BSD systems. Aimed at beginners and intermediate - in BSD system administration. Book in french, Eyrolles, 2004. ISBN + Les cahiers de l'Admin: BSD (het schrift voor BSD-systeembeheerders) + van Emmanuel Dreyfus, behandelt verschillende administratieve + &unix;-onderwerpen voor BSD-systemen. Gericht op beginners en + enigszins ervarenen in BSD-systeembeheer. Boek in het Frans, Eyrolles, 2004. ISBN 2-212-11463-X @@ -314,33 +313,32 @@ alt="The OpenBSD PF Packet Filter Book" height="142" width="95"> - The OpenBSD PF Packet Filter Book covers the PF packet filter - suite, ALTQ, spamd, address translation, and more for &os;, - NetBSD, OpenBSD, and DragonFly. August 2006, Reed Media Services. - ISBN 978-0-9790342-0-6. + Het OpenBSD PF Packet Filter Book behandelt het PF pakketfilter, + ALTQ, spamd, adresvertaling en meer voor &os;, NetBSD, OpenBSD, en + DragonFly. Augustus 2006, Reed Media + Services. ISBN 978-0-9790342-0-6. &os; 6 Unleashed + alt="&os; 6 Unleashed" width="150" height="150"> - &os; 6 Unleashed covers everything you need to know to use - &os; to its fullest potential. - Jun 7, 2006, + &os; 6 Unleashed behandelt alles wat u dient te weten om het + uiterste uit &os; te halen. 7 juni 2006, Sams. ISBN 0-672-32875-5 The &os; 6.0 Book + alt="Het &os; 6.0 Boek" width="150" height="202"> - (Traditional Chinese &os; book with 6.0) + (Traditioneel Chinees &os;-boek with 6.0) December 2005, Drmaster. ISBN 9-575-27878-X @@ -352,13 +350,13 @@ height="202" width="150"> - This Romanian language book is a useful guide for people - taking their first steps with &os;. It covers installation - and day-to-day operation of a &os; system, and contains - practical examples illustrating the use of &os;'s utilities. - It has two case studies on configuring &os; as a server - and a router. 2005, Polirom Publishing House, ISBN - 973-681-683-4 + Dit boek in het Roemeens is een handige gids voor mensen die &os; + voor het eerst gebruiken. Het behandelt de installatie en het + dagelijkse gebruik van een &os;-systeem, en bevat praktische + voorbeelden die het gebruik van de gereedschappen van &os; + illustreren. Het behandelt twee situaties over het configureren van + &os; als een server en als een router. 2005, Polirom Publishing + House, ISBN 973-681-683-4 @@ -367,8 +365,9 @@ alt="The RadioBSD Crier: Issue 2007/01: Managing &os; and NetBSD Firewalls" height="202" width="150"> - The “RadioBSD Crier: 2007/01” is a 24-page article - on managing &os; and NetBSD IPFW, IPFW2, and IP6FW firewalls. + The “RadioBSD Crier: 2007/01” is een artikel van 24 + pagina's over het beheren van IPFW, IPFW2 en IP6FW firewalls op &os; + en NetBSD. @@ -378,9 +377,9 @@ height="190" width="145"> - The Best of &os; Basics by Dru Lavigne provides near 100 - tutorials covering a wide range of &os; and open source Unix - topics. December 2007. + The Best of &os; Basics by Dru Lavigne + biedt bijna 100 tutorials die een groot aantal onderwerpen met + betrekking tot &os; en open-source Unix behandelen. December 2007. Reed Media Services. ISBN 978-0-9790342-2-0. From owner-p4-projects@FreeBSD.ORG Mon Jun 8 23:11:22 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 3A8441065675; Mon, 8 Jun 2009 23:11:22 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id EA081106566B for ; Mon, 8 Jun 2009 23:11:21 +0000 (UTC) (envelope-from anchie@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id BC8058FC08 for ; Mon, 8 Jun 2009 23:11:21 +0000 (UTC) (envelope-from anchie@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n58NBLmr044673 for ; Mon, 8 Jun 2009 23:11:21 GMT (envelope-from anchie@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n58NBLMD044671 for perforce@freebsd.org; Mon, 8 Jun 2009 23:11:21 GMT (envelope-from anchie@FreeBSD.org) Date: Mon, 8 Jun 2009 23:11:21 GMT Message-Id: <200906082311.n58NBLMD044671@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to anchie@FreeBSD.org using -f From: Ana Kukec To: Perforce Change Reviews Cc: Subject: PERFORCE change 163844 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 08 Jun 2009 23:11:23 -0000 http://perforce.freebsd.org/chv.cgi?CH=163844 Change 163844 by anchie@anchie_malimis on 2009/06/08 23:10:25 Adding some code for SeND input_hook processing. Affected files ... .. //depot/projects/soc2009/anchie_send/send_0.2/sendd/net.c#2 edit .. //depot/projects/soc2009/anchie_send/send_0.2/sendd/snd_proto.h#2 edit .. //depot/projects/soc2009/anchie_send/src/sys/netinet6/icmp6.c#4 edit .. //depot/projects/soc2009/anchie_send/src/sys/netinet6/send.c#6 edit .. //depot/projects/soc2009/anchie_send/src/sys/netinet6/send.h#6 edit Differences ... ==== //depot/projects/soc2009/anchie_send/send_0.2/sendd/net.c#2 (text+ko) ==== @@ -119,6 +119,7 @@ snd_icmp_sock_read(void) { struct sockaddr_in6 sin[1]; + struct input_hook_packet_info pi; struct sbuff *b; uint8_t *type; socklen_t slen; @@ -147,6 +148,9 @@ goto done; } + /* Populate input_hook_packet_info structure! */ + /* Populate ifidx and in integers. */ + type = sbuff_data(b); switch (*type) { case ICMP6_SND_CPS: @@ -160,7 +164,8 @@ &sin->sin6_addr); break; default: - DBG(&dbg_snd, "Unhandled ICMP6 type %d", *type); + snd_recv_pkt(sbuff_data(b), ifidx, in, pi); + break; } ==== //depot/projects/soc2009/anchie_send/send_0.2/sendd/snd_proto.h#2 (text+ko) ==== @@ -49,6 +49,12 @@ #define NDISC_OPT_SPACE(len) (((len)+2+7)&~7) +#define ND_ROUTER_SOLICIT 133 +#define ND_ROUTER_ADVERT 134 +#define ND_NEIGHBOR_SOLICIT 135 +#define ND_NEIGHBOR_ADVERT 136 +#define ND_REDIRECT 137 + #define ICMP6_SND_CPS 148 #define ICMP6_SND_CPA 149 ==== //depot/projects/soc2009/anchie_send/src/sys/netinet6/icmp6.c#4 (text+ko) ==== @@ -802,6 +802,8 @@ if ((n = m_copym(m, 0, M_COPYALL, M_DONTWAIT)) == NULL) { /* send incoming SeND-protected/ND packet to sendd */ + if (send_input_hook != NULL) + send_input_hook(); /* give up local */ nd6_ns_input(m, off, icmp6len); ==== //depot/projects/soc2009/anchie_send/src/sys/netinet6/send.c#6 (text+ko) ==== @@ -5,6 +5,8 @@ #include #include +#include + #include static int X_send_input_hook(void); @@ -12,6 +14,9 @@ static int X_send_input_hook(void) { + + /* send module is loaded, send incoming packet to sendd */ + return 0; } ==== //depot/projects/soc2009/anchie_send/src/sys/netinet6/send.h#6 (text+ko) ==== @@ -1,2 +1,2 @@ /* send.c */ -int (*send_input_hook)(void); +int (*send_input_hook)(struct mbuf *, int, int); From owner-p4-projects@FreeBSD.ORG Tue Jun 9 03:12:27 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 2EBD110656A4; Tue, 9 Jun 2009 03:12:27 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id D7CA3106568A for ; Tue, 9 Jun 2009 03:12:26 +0000 (UTC) (envelope-from dforsyth@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id C47158FC14 for ; Tue, 9 Jun 2009 03:12:26 +0000 (UTC) (envelope-from dforsyth@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n593CQHx087924 for ; Tue, 9 Jun 2009 03:12:26 GMT (envelope-from dforsyth@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n593CQgT087922 for perforce@freebsd.org; Tue, 9 Jun 2009 03:12:26 GMT (envelope-from dforsyth@FreeBSD.org) Date: Tue, 9 Jun 2009 03:12:26 GMT Message-Id: <200906090312.n593CQgT087922@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to dforsyth@FreeBSD.org using -f From: David Forsythe To: Perforce Change Reviews Cc: Subject: PERFORCE change 163852 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 09 Jun 2009 03:12:28 -0000 http://perforce.freebsd.org/chv.cgi?CH=163852 Change 163852 by dforsyth@squirrel on 2009/06/09 03:12:05 Still building parser. Learned how to spell origin. Affected files ... .. //depot/projects/soc2009/dforsyth_libpkg/libpkg/Makefile#4 edit .. //depot/projects/soc2009/dforsyth_libpkg/libpkg/pkg.c#11 edit .. //depot/projects/soc2009/dforsyth_libpkg/libpkg/pkg.h#11 edit .. //depot/projects/soc2009/dforsyth_libpkg/libpkg/pkg_dep.c#1 add .. //depot/projects/soc2009/dforsyth_libpkg/libpkg/pkg_dep.h#1 add .. //depot/projects/soc2009/dforsyth_libpkg/libpkg/pkg_file.c#1 add .. //depot/projects/soc2009/dforsyth_libpkg/libpkg/pkg_file.h#1 add .. //depot/projects/soc2009/dforsyth_libpkg/libpkg/pkg_plist.c#6 edit .. //depot/projects/soc2009/dforsyth_libpkg/libpkg/pkg_plist.h#6 edit .. //depot/projects/soc2009/dforsyth_libpkg/libpkg/pkg_private.h#6 edit .. //depot/projects/soc2009/dforsyth_libpkg/libpkg/pkg_util.c#3 edit .. //depot/projects/soc2009/dforsyth_libpkg/libpkg/pkg_util.h#3 edit .. //depot/projects/soc2009/dforsyth_libpkg/libpkg/pkgdb.c#12 edit .. //depot/projects/soc2009/dforsyth_libpkg/libpkg/pkgdb.h#7 edit .. //depot/projects/soc2009/dforsyth_libpkg/pkg_info/Makefile#3 edit .. //depot/projects/soc2009/dforsyth_libpkg/pkg_info/main.c#6 edit .. //depot/projects/soc2009/dforsyth_libpkg/pkg_info/pkg_info.h#2 edit Differences ... ==== //depot/projects/soc2009/dforsyth_libpkg/libpkg/Makefile#4 (text+ko) ==== @@ -1,7 +1,7 @@ LIB= pkg INCS= pkg.h WARNS= 6 -SRCS= pkgdb.c pkg_plist.c pkg.c pkg_util.c +SRCS= pkgdb.c pkg_plist.c pkg.c pkg_util.c pkg_file.c pkg_dep.c NO_MAN= yes .include ==== //depot/projects/soc2009/dforsyth_libpkg/libpkg/pkg.c#11 (text+ko) ==== @@ -3,12 +3,13 @@ #include #include "pkg_util.h" +#include "pkg_dep.h" +#include "pkg_file.h" #include "pkg_plist.h" #include "pkgdb.h" #include "pkg_private.h" #include "pkg.h" - /* Create a new pkg. */ struct pkg * @@ -122,13 +123,13 @@ /* Doesn't work correctly yet. */ char * -pkg_orgin(struct pkg *p) +pkg_origin(struct pkg *p) { - char *orgin; + char *origin; - orgin = pkg_plist_orgin(p->plist); + origin = pkg_plist_origin(p->plist); - return (orgin); + return (origin); } /* Temporarily void. */ @@ -142,21 +143,17 @@ } /* Temporarily char. */ -char * +struct pkg_file * pkg_file_list_next(struct pkg *p) { struct pkg_file *pf; - char *file_name; if (p == NULL) return (NULL); pf = pkg_plist_pkg_file_list_next(p->plist); - if (pf == NULL) - return (NULL); - file_name = pkg_file_path(pf); - - return (file_name); + + return (pf); } /* TODO: Make an note in the manual for libpkg that pkg_free should not be ==== //depot/projects/soc2009/dforsyth_libpkg/libpkg/pkg.h#11 (text+ko) ==== @@ -1,6 +1,19 @@ #ifndef __PKG_H__ #define __PKG_H__ +/* TODO: Error codes. */ + +/* pkg_file */ + +struct pkg_file; + +const char *pkg_file_path(struct pkg_file *pf); + +const char *pkg_file_md5(struct pkg_file *pf); + + +/* TODO: Get pkg_plist out of here. */ + /* pkg_plist */ struct pkg_plist; @@ -27,13 +40,13 @@ char *pkg_cwd(struct pkg *p); -char *pkg_orgin(struct pkg *p); +char *pkg_origin(struct pkg *p); char *pkg_comment(struct pkg *p); void pkg_file_list_init(struct pkg *p); -char *pkg_file_list_next(struct pkg *p); +struct pkg_file *pkg_file_list_next(struct pkg *p); void pkg_free(struct pkg *p); ==== //depot/projects/soc2009/dforsyth_libpkg/libpkg/pkg_plist.c#6 (text+ko) ==== @@ -9,6 +9,8 @@ #include #include +#include "pkg_dep.h" +#include "pkg_file.h" #include "pkg_plist.h" #include "pkgdb.h" #include "pkg.h" @@ -19,33 +21,26 @@ char *group; }; -struct pkg_file { - char *path; - char *md5; - char *owner; - char *group; - - TAILQ_ENTRY(pkg_file) next; -}; - struct pkg_plist { - int rev; + char * rev; char *cwd; char *srcdir; char *name; - char *orgin; + char *origin; char *display; char *mtree_file; char *text; /* The entire plist */ struct pkg_file *pf_curr; + struct pkg_dep *pd_curr; /* Use these lists here so that appending to our list doesnt need a * bunch of realloc procedures. This will be convenient for clients * that want to build plists on the fly, modify plists, etc. */ TAILQ_HEAD(pf_head, pkg_file) pf_head; /* pkg_file list. */ + TAILQ_HEAD(pd_head, pkg_dep) pd_head; /* pkg_dep list. */ }; void @@ -77,22 +72,6 @@ return (pl); } -struct pkg_file * -pkg_file_new(char *path, char *md5, char *owner, char *group) -{ - struct pkg_file *pf; - - pf = calloc(1, sizeof(*pf)); - if (pf != NULL) { - pf->path = path; - pf->md5 = md5; - pf->owner = owner; - pf->group = group; - } - - return (pf); -} - struct pkg_plist * pkg_plist_parse_contents_from_text(const char *text) { @@ -147,11 +126,14 @@ } /* Parse a command sequence and add an entry based on the findings. */ + +/* TODO: Add richer return values for parse errors. */ int pkg_plist_parse_line(struct pkg_plist *pl, char *line, struct parse_state *st) { int s; + size_t line_len; char *command; char *argument; char *sep; @@ -161,6 +143,7 @@ return (-1); s = 0; + line_len = strlen(line); if (*line == '@') { sep = strchr(line, ' '); if (sep == NULL) @@ -172,10 +155,9 @@ strcmp(command, PLIST_CMD_CD) == 0) { pl->cwd = argument; st->last_elem = PLIST_CWD; - } - else if (strcmp(command, PLIST_CMD_SRCDIR) == 0) { + } else if (strcmp(command, PLIST_CMD_SRCDIR) == 0) { pl->srcdir = argument; - return (0); + st->last_elem = PLIST_SRCDIR; } #if 0 else if (strcmp(command, PLIST_CMD_EXEC) == 0) @@ -186,15 +168,62 @@ ent = pl_entry_new(PLIST_MODE, argument, NULL); else if (strcmp(command, PLIST_CMD_OPTION) == 0) ent = pl_entry_new(PLIST_OPTION, argument, NULL); - else if (strcmp(command, PLIST_CMD_OWNER) == 0) - ent = pl_entry_new(PLIST_OWNER, argument, NULL); - else if (strcmp(command, PLIST_CMD_GROUP) == 0) - ent = pl_entry_new(PLIST_GROUP, argument, NULL); #endif - else if (strcmp(command, PLIST_CMD_COMMENT) == 0) { + else if (strcmp(command, PLIST_CMD_OWNER) == 0) { + if (line_len == strlen(PLIST_CMD_OWNER) + 1) + /* Empty owner line, reset to NULL. */ + st->owner = NULL; + else + st->owner = argument; + + st->last_elem = PLIST_OWNER; + } else if (strcmp(command, PLIST_CMD_GROUP) == 0) { + if (line_len == strlen(PLIST_CMD_OWNER) + 1) + /* Empty group line, reset to NULL. */ + st->owner = NULL; + else + st->owner = argument; + + st->last_elem = PLIST_GROUP; + } else if (strcmp(command, PLIST_CMD_COMMENT) == 0) { /* Lots more stuff needs to go in here... what a terrible file * format... */ - + + /* mmm... should probably pull this out into a different + * function. */ + if (line_len == strlen(PLIST_CMD_COMMENT) + 1) { + /* Empty comment. */ + st->last_elem = PLIST_COMMENT; + return (0); + } + sep = strchr(argument, ':'); + if (sep == NULL) { + /* Still not sure what to do with comments that don't have any + * effect on the package information. For now, just throw + * them out. Maybe later, add a new command that specifies + * comments that should be printed when displaying + * information from the plist. */ + return (0); + } + *sep = '\0'; + if (strcmp(argument, PLIST_COMMENT_PKG_REV) == 0) { + /* TODO: Keeping rev as s string for now. String based + * version comparison is dumb, convert to int. */ + pl->rev = sep + 1; + st->last_elem = PLIST_COMMENT; + } else if (strcmp(argument, PLIST_COMMENT_ORIGIN) == 0) { + pl->origin = sep + 1; + st->last_elem = PLIST_COMMENT; + } else if (strcmp(argument, PLIST_COMMENT_DEPORIGIN) == 0) { + if (st->last_elem != PLIST_PKGDEP) + return (1); + /* add the the dependency list. */ + } else if (strcmp(argument, PLIST_COMMENT_MD5) == 0) { + if (st->last_elem != PLIST_FILE) + return (1); + pf = pkg_plist_pkg_file_list_last(pl); + pkg_file_set_md5(pf, sep + 1); + } } #if 0 else if (strcmp(command, PLIST_CMD_NOINST) == 0) { @@ -208,6 +237,7 @@ #endif else if (strcmp(command, PLIST_CMD_NAME) == 0) { pl->name = argument; + st->last_elem = PLIST_NAME; } #if 0 else if (strcmp(command, PLIST_CMD_DIRRM) == 0) @@ -215,9 +245,11 @@ #endif else if (strcmp(command, PLIST_CMD_MTREE) == 0) { pl->mtree_file = argument; + st->last_elem = PLIST_MTREE; } else if (strcmp(command, PLIST_CMD_DISPLAY) == 0) { pl->display = argument; + st->last_elem = PLIST_DISPLAY; } #if 0 else { @@ -227,7 +259,7 @@ } #endif } else { - pf = pkg_file_new(line, NULL, NULL, NULL); + pf = pkg_file_new(line, NULL, st->owner, st->group); pkg_plist_pkg_file_list_append(pl, pf); st->last_elem = PLIST_FILE; } @@ -254,33 +286,19 @@ } char * -pkg_plist_orgin(struct pkg_plist *pl) +pkg_plist_origin(struct pkg_plist *pl) { if (pl == NULL) return (NULL); - return (pl->orgin); + return (pl->origin); } -/* Will be available. */ -char * -pkg_file_path(struct pkg_file *pf) -{ - if (pf == NULL) - return (NULL); +/* pkg_file list manipulation and access. */ - return (pf->path); -} +/* I should really just write a set of generic routine to handle this + * whole mess. */ -char * -pkg_file_md5(struct pkg_file *pf) -{ - if (pf == NULL) - return (NULL); - - return (pf->md5); -} - /* Temporarily void. */ void pkg_plist_pkg_file_list_reset(struct pkg_plist *pl) @@ -326,6 +344,15 @@ return (TAILQ_FIRST(&pl->pf_head)); } +struct pkg_file * +pkg_plist_pkg_file_list_last(struct pkg_plist *pl) +{ + if (pl == NULL) + return (NULL); + + return (TAILQ_LAST(&pl->pf_head, pf_head)); +} + void pkg_plist_pkg_file_list_append(struct pkg_plist *pl, struct pkg_file *pf) { @@ -335,3 +362,4 @@ TAILQ_INSERT_TAIL(&pl->pf_head, pf, next); } +/* pkg_dep list manipulation and access. */ ==== //depot/projects/soc2009/dforsyth_libpkg/libpkg/pkg_plist.h#6 (text+ko) ==== @@ -2,6 +2,7 @@ #define __PKG_PLIST_H__ /* Make these visible to the client. */ + enum plist_elem { PLIST_CWD, PLIST_SRCDIR, @@ -25,6 +26,8 @@ PLIST_UNKNOWN }; +/* Plist commands. */ + #define PLIST_CMD_CWD "cwd" #define PLIST_CMD_CD "cd" #define PLIST_CMD_SRCDIR "srcdir" @@ -45,12 +48,14 @@ #define PLIST_CMD_PKGDEG "pkgdep" #define PLIST_CMD_CONFLICTS "conflicts" -struct parse_state; +/* Meta comments. */ -struct pkg_file; +#define PLIST_COMMENT_PKG_REV "PKG_FORMAT_REVISION" +#define PLIST_COMMENT_ORIGIN "ORIGIN" +#define PLIST_COMMENT_DEPORIGIN "DEPORIGIN" +#define PLIST_COMMENT_MD5 "MD5" -struct pkg_file * -pkg_file_new(char *path, char *md5, char *owner, char *group); +struct parse_state; struct pkg_plist *pkg_plist_parse_contents_from_text(const char *text); int pkg_plist_parse_line(struct pkg_plist *pl, char *line, @@ -61,15 +66,13 @@ char *pkg_plist_name(struct pkg_plist *pl); char *pkg_plist_cwd(struct pkg_plist *pl); -char *pkg_plist_orgin(struct pkg_plist *pl); - -char *pkg_file_path(struct pkg_file *pf); -char *pkg_file_md5(struct pkg_file *pf); +char *pkg_plist_origin(struct pkg_plist *pl); void pkg_plist_pkg_file_list_init(struct pkg_plist *pl); struct pkg_file *pkg_plist_pkg_file_list_first(struct pkg_plist *pl); -void pkg_plist_pkg_file_list_append(struct pkg_plist *pl, struct pkg_file -*pf); +struct pkg_file *pkg_plist_pkg_file_list_last(struct pkg_plist *pl); +void pkg_plist_pkg_file_list_append(struct pkg_plist *pl, + struct pkg_file *pf); void set_parse_state_default(struct parse_state *st); ==== //depot/projects/soc2009/dforsyth_libpkg/libpkg/pkg_private.h#6 (text+ko) ==== @@ -9,12 +9,11 @@ #define REQUIRED_BY_FILE "+REQUIRED_BY" struct pkg { - TAILQ_ENTRY(pkg) next; - char *ident; /* User given name for this pkg. */ - char *comment; /* Mmmmm, should be 70 or less, right? */ struct pkg_plist *plist; + + TAILQ_ENTRY(pkg) next; }; #endif ==== //depot/projects/soc2009/dforsyth_libpkg/libpkg/pkg_util.c#3 (text+ko) ==== @@ -34,3 +34,10 @@ return (new_path); } + +void +argument_rage_quit(const char *function, const char *message, int ret) +{ + fprintf(stderr, "Bad argument in %s: %s\n", function, message); + exit(ret); +} ==== //depot/projects/soc2009/dforsyth_libpkg/libpkg/pkg_util.h#3 (text+ko) ==== @@ -6,4 +6,7 @@ int subdir_sel(struct dirent *ent); char *path_strdup(const char *name); +void argument_rage_quit(const char *function, const char *message, + int ret); + #endif ==== //depot/projects/soc2009/dforsyth_libpkg/libpkg/pkgdb.c#12 (text+ko) ==== ==== //depot/projects/soc2009/dforsyth_libpkg/libpkg/pkgdb.h#7 (text+ko) ==== ==== //depot/projects/soc2009/dforsyth_libpkg/pkg_info/Makefile#3 (text+ko) ==== ==== //depot/projects/soc2009/dforsyth_libpkg/pkg_info/main.c#6 (text+ko) ==== @@ -100,7 +100,7 @@ void print_pkg_information(struct pkg *p) { - char *file_name; + struct pkg_file *pf; /* Just print the basic PKGNAME COMMENT scheme right now. Other * information isn't collected by the library yet. */ @@ -111,11 +111,11 @@ /* Testing plist interaction. */ printf("%s:\n", pkg_name(p)); printf("\tcwd: %s\n", pkg_cwd(p)); - printf("\torgin: %s\n", pkg_orgin(p)); + printf("\torigin: %s\n", pkg_origin(p)); printf("\tplist:\n"); pkg_file_list_init(p); - while ((file_name = pkg_file_list_next(p)) != NULL) { - printf("\t\t%s\n", file_name); + while ((pf = pkg_file_list_next(p)) != NULL) { + printf("\t\t%s\n\t\t\tMD5: %s\n", pkg_file_path(pf), pkg_file_md5(pf)); } } } ==== //depot/projects/soc2009/dforsyth_libpkg/pkg_info/pkg_info.h#2 (text+ko) ==== From owner-p4-projects@FreeBSD.ORG Tue Jun 9 03:49:04 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 920AF1065675; Tue, 9 Jun 2009 03:49:04 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 4EDAA1065670 for ; Tue, 9 Jun 2009 03:49:04 +0000 (UTC) (envelope-from dforsyth@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 3384E8FC17 for ; Tue, 9 Jun 2009 03:49:04 +0000 (UTC) (envelope-from dforsyth@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n593n4Lg090625 for ; Tue, 9 Jun 2009 03:49:04 GMT (envelope-from dforsyth@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n593n4KN090623 for perforce@freebsd.org; Tue, 9 Jun 2009 03:49:04 GMT (envelope-from dforsyth@FreeBSD.org) Date: Tue, 9 Jun 2009 03:49:04 GMT Message-Id: <200906090349.n593n4KN090623@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to dforsyth@FreeBSD.org using -f From: David Forsythe To: Perforce Change Reviews Cc: Subject: PERFORCE change 163854 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 09 Jun 2009 03:49:05 -0000 http://perforce.freebsd.org/chv.cgi?CH=163854 Change 163854 by dforsyth@squirrel on 2009/06/09 03:49:03 faux-pkg_info now vomits all file information on to your screen at your request. Affected files ... .. //depot/projects/soc2009/dforsyth_libpkg/libpkg/Makefile#5 edit .. //depot/projects/soc2009/dforsyth_libpkg/libpkg/pkg.c#12 edit .. //depot/projects/soc2009/dforsyth_libpkg/libpkg/pkg.h#12 edit .. //depot/projects/soc2009/dforsyth_libpkg/libpkg/pkg_dep.c#2 edit .. //depot/projects/soc2009/dforsyth_libpkg/libpkg/pkg_dep.h#2 edit .. //depot/projects/soc2009/dforsyth_libpkg/libpkg/pkg_file.c#2 edit .. //depot/projects/soc2009/dforsyth_libpkg/libpkg/pkg_file.h#2 edit .. //depot/projects/soc2009/dforsyth_libpkg/libpkg/pkg_plist.c#7 edit .. //depot/projects/soc2009/dforsyth_libpkg/libpkg/pkg_plist.h#7 edit .. //depot/projects/soc2009/dforsyth_libpkg/libpkg/pkg_private.h#7 edit .. //depot/projects/soc2009/dforsyth_libpkg/libpkg/pkg_util.c#4 edit .. //depot/projects/soc2009/dforsyth_libpkg/libpkg/pkg_util.h#4 edit .. //depot/projects/soc2009/dforsyth_libpkg/libpkg/pkgdb.c#13 edit .. //depot/projects/soc2009/dforsyth_libpkg/libpkg/pkgdb.h#8 edit .. //depot/projects/soc2009/dforsyth_libpkg/pkg_info/Makefile#4 edit .. //depot/projects/soc2009/dforsyth_libpkg/pkg_info/main.c#7 edit .. //depot/projects/soc2009/dforsyth_libpkg/pkg_info/pkg_info.h#3 edit Differences ... ==== //depot/projects/soc2009/dforsyth_libpkg/libpkg/Makefile#5 (text+ko) ==== ==== //depot/projects/soc2009/dforsyth_libpkg/libpkg/pkg.c#12 (text+ko) ==== ==== //depot/projects/soc2009/dforsyth_libpkg/libpkg/pkg.h#12 (text+ko) ==== @@ -11,6 +11,13 @@ const char *pkg_file_md5(struct pkg_file *pf); +/* These might not be client accessible since they're really only useful + * when reading a plist. A client creating a plist should already have + * this information. */ +const char *pkg_file_owner(struct pkg_file *pf); + +const char *pkg_file_group(struct pkg_file *pf); + /* TODO: Get pkg_plist out of here. */ ==== //depot/projects/soc2009/dforsyth_libpkg/libpkg/pkg_dep.c#2 (text+ko) ==== ==== //depot/projects/soc2009/dforsyth_libpkg/libpkg/pkg_dep.h#2 (text+ko) ==== ==== //depot/projects/soc2009/dforsyth_libpkg/libpkg/pkg_file.c#2 (text+ko) ==== @@ -39,6 +39,27 @@ return (pf->md5); } +/* If NULL is returned from pkg_file_owner or pkg_file_group, assume the + * default owner and group. */ + +const char * +pkg_file_owner(struct pkg_file *pf) +{ + if (pf == NULL) + return (NULL); + + return (pf->owner); +} + +const char * +pkg_file_group(struct pkg_file *pf) +{ + if (pf == NULL) + return (NULL); + + return (pf->group); +} + struct pkg_file * pkg_file_set_md5(struct pkg_file *pf, const char *md5) { @@ -58,3 +79,23 @@ pf->path = path; return (pf); } + +struct pkg_file * +pkg_file_set_owner(struct pkg_file *pf, const char *owner) +{ + if (pf == NULL) + return (NULL); + + pf->owner = owner; + return (pf); +} + +struct pkg_file * +pkg_file_set_group(struct pkg_file *pf, const char *group) +{ + if (pf == NULL) + return (NULL); + + pf->group = group; + return (pf); +} ==== //depot/projects/soc2009/dforsyth_libpkg/libpkg/pkg_file.h#2 (text+ko) ==== @@ -19,5 +19,11 @@ struct pkg_file *pkg_file_set_md5(struct pkg_file *pf, const char *md5); struct pkg_file *pkg_file_set_path(struct pkg_file *pf, const char *path); +struct pkg_file *pkg_file_set_owner(struct pkg_file *pf, + const char *owner); +struct pkg_file *pkg_file_set_group(struct pkg_file *pf, + const char *group); + + #endif ==== //depot/projects/soc2009/dforsyth_libpkg/libpkg/pkg_plist.c#7 (text+ko) ==== ==== //depot/projects/soc2009/dforsyth_libpkg/libpkg/pkg_plist.h#7 (text+ko) ==== ==== //depot/projects/soc2009/dforsyth_libpkg/libpkg/pkg_private.h#7 (text+ko) ==== @@ -12,6 +12,8 @@ char *ident; /* User given name for this pkg. */ char *comment; /* Mmmmm, should be 70 or less, right? */ struct pkg_plist *plist; + + int legal; /* Soon to be used for pkg verification. */ TAILQ_ENTRY(pkg) next; }; ==== //depot/projects/soc2009/dforsyth_libpkg/libpkg/pkg_util.c#4 (text+ko) ==== ==== //depot/projects/soc2009/dforsyth_libpkg/libpkg/pkg_util.h#4 (text+ko) ==== ==== //depot/projects/soc2009/dforsyth_libpkg/libpkg/pkgdb.c#13 (text+ko) ==== ==== //depot/projects/soc2009/dforsyth_libpkg/libpkg/pkgdb.h#8 (text+ko) ==== ==== //depot/projects/soc2009/dforsyth_libpkg/pkg_info/Makefile#4 (text+ko) ==== ==== //depot/projects/soc2009/dforsyth_libpkg/pkg_info/main.c#7 (text+ko) ==== @@ -6,6 +6,7 @@ #include "pkg_info.h" #define PKG_DBDIR_DEFAULT "/var/db/pkg" /* Move this. */ +#define BAD_OR_UNKNOWN_VALUE "???" short opt_all = 0; short opt_glob = 0; @@ -101,6 +102,13 @@ print_pkg_information(struct pkg *p) { struct pkg_file *pf; + const char *name; + const char *cwd; + const char *origin; + const char *path; + const char *md5; + const char *owner; + const char *group; /* Just print the basic PKGNAME COMMENT scheme right now. Other * information isn't collected by the library yet. */ @@ -109,13 +117,29 @@ printf("%s %s\n", pkg_ident(p), pkg_comment(p)); else { /* Testing plist interaction. */ - printf("%s:\n", pkg_name(p)); - printf("\tcwd: %s\n", pkg_cwd(p)); - printf("\torigin: %s\n", pkg_origin(p)); - printf("\tplist:\n"); + name = + ((name = pkg_name(p)) == NULL ? BAD_OR_UNKNOWN_VALUE : name); + cwd = ((cwd = pkg_cwd(p)) == NULL ? BAD_OR_UNKNOWN_VALUE : cwd); + origin = + ((origin = pkg_origin(p)) == NULL ? BAD_OR_UNKNOWN_VALUE : origin); + + printf("%s:\n", name); + printf("\tcwd: %s\n", cwd); + printf("\torigin: %s\n", origin); + printf("\tfiles:\n"); pkg_file_list_init(p); while ((pf = pkg_file_list_next(p)) != NULL) { - printf("\t\t%s\n\t\t\tMD5: %s\n", pkg_file_path(pf), pkg_file_md5(pf)); + path = + ((path = pkg_file_path(pf)) == NULL ? BAD_OR_UNKNOWN_VALUE : path); + md5 = + ((md5 = pkg_file_md5(pf)) == NULL ? BAD_OR_UNKNOWN_VALUE : md5); + owner = + ((owner = pkg_file_owner(pf)) == NULL ? BAD_OR_UNKNOWN_VALUE : owner); + group = + ((group = pkg_file_group(pf)) == NULL ? BAD_OR_UNKNOWN_VALUE : group); + printf("\t\t%s\n\t\t\tMD5: %s\n\t\t\tOWNER: %s\n\t\t\t", + path, md5, owner); + printf("GROUP: %s\n", owner); } } } ==== //depot/projects/soc2009/dforsyth_libpkg/pkg_info/pkg_info.h#3 (text+ko) ==== From owner-p4-projects@FreeBSD.ORG Tue Jun 9 07:47:11 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 266D11065675; Tue, 9 Jun 2009 07:47:11 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id DAA95106566C for ; Tue, 9 Jun 2009 07:47:10 +0000 (UTC) (envelope-from trasz@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id C99588FC16 for ; Tue, 9 Jun 2009 07:47:10 +0000 (UTC) (envelope-from trasz@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n597lAF6026460 for ; Tue, 9 Jun 2009 07:47:10 GMT (envelope-from trasz@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n597lAp5026458 for perforce@freebsd.org; Tue, 9 Jun 2009 07:47:10 GMT (envelope-from trasz@freebsd.org) Date: Tue, 9 Jun 2009 07:47:10 GMT Message-Id: <200906090747.n597lAp5026458@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to trasz@freebsd.org using -f From: Edward Tomasz Napierala To: Perforce Change Reviews Cc: Subject: PERFORCE change 163864 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 09 Jun 2009 07:47:12 -0000 http://perforce.freebsd.org/chv.cgi?CH=163864 Change 163864 by trasz@trasz_victim on 2009/06/09 07:47:06 Compilation fix. Affected files ... .. //depot/projects/soc2009/trasz_limits/usr.sbin/hrl/hrl.c#5 edit Differences ... ==== //depot/projects/soc2009/trasz_limits/usr.sbin/hrl/hrl.c#5 (text+ko) ==== @@ -183,7 +183,7 @@ main(int argc __unused, char **argv __unused) { int error, nentries, i; - struct hrl_limit *limits; + struct hrl_rule *limits; error = hrl_get(NULL, 0, &nentries); if (error) @@ -194,7 +194,7 @@ return (0); } - limits = malloc(sizeof(struct hrl_limit) * nentries); + limits = malloc(sizeof(struct hrl_rule) * nentries); if (limits == NULL) err(1, "malloc"); From owner-p4-projects@FreeBSD.ORG Tue Jun 9 08:03:34 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id CFC5F1065670; Tue, 9 Jun 2009 08:03:33 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 8E777106566C for ; Tue, 9 Jun 2009 08:03:33 +0000 (UTC) (envelope-from zec@fer.hr) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 7B7DD8FC13 for ; Tue, 9 Jun 2009 08:03:33 +0000 (UTC) (envelope-from zec@fer.hr) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n5983XZe028757 for ; Tue, 9 Jun 2009 08:03:33 GMT (envelope-from zec@fer.hr) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n5983WlO028755 for perforce@freebsd.org; Tue, 9 Jun 2009 08:03:32 GMT (envelope-from zec@fer.hr) Date: Tue, 9 Jun 2009 08:03:32 GMT Message-Id: <200906090803.n5983WlO028755@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to zec@fer.hr using -f From: Marko Zec To: Perforce Change Reviews Cc: Subject: PERFORCE change 163865 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 09 Jun 2009 08:03:35 -0000 http://perforce.freebsd.org/chv.cgi?CH=163865 Change 163865 by zec@zec_amdx4 on 2009/06/09 08:03:15 IFC @ 163863 Affected files ... .. //depot/projects/vimage-commit2/src/sys/amd64/amd64/local_apic.c#9 integrate .. //depot/projects/vimage-commit2/src/sys/amd64/amd64/machdep.c#11 integrate .. //depot/projects/vimage-commit2/src/sys/amd64/amd64/pmap.c#15 integrate .. //depot/projects/vimage-commit2/src/sys/amd64/conf/NOTES#9 integrate .. //depot/projects/vimage-commit2/src/sys/amd64/include/param.h#7 integrate .. //depot/projects/vimage-commit2/src/sys/amd64/isa/clock.c#4 integrate .. //depot/projects/vimage-commit2/src/sys/arm/arm/pmap.c#7 integrate .. //depot/projects/vimage-commit2/src/sys/boot/i386/libi386/biosdisk.c#6 integrate .. //depot/projects/vimage-commit2/src/sys/boot/i386/libi386/biospnp.c#2 integrate .. //depot/projects/vimage-commit2/src/sys/compat/linprocfs/linprocfs.c#21 integrate .. //depot/projects/vimage-commit2/src/sys/compat/linux/linux_ioctl.c#18 integrate .. //depot/projects/vimage-commit2/src/sys/compat/ndis/subr_usbd.c#8 integrate .. //depot/projects/vimage-commit2/src/sys/compat/svr4/svr4_sockio.c#12 integrate .. //depot/projects/vimage-commit2/src/sys/conf/NOTES#28 integrate .. //depot/projects/vimage-commit2/src/sys/conf/files#41 integrate .. //depot/projects/vimage-commit2/src/sys/conf/files.powerpc#14 integrate .. //depot/projects/vimage-commit2/src/sys/conf/options#31 integrate .. //depot/projects/vimage-commit2/src/sys/contrib/altq/altq/altq_subr.c#12 integrate .. //depot/projects/vimage-commit2/src/sys/contrib/dev/acpica/include/platform/acfreebsd.h#2 integrate .. //depot/projects/vimage-commit2/src/sys/contrib/pf/net/pf_if.c#11 integrate .. //depot/projects/vimage-commit2/src/sys/contrib/pf/net/pf_ioctl.c#15 integrate .. //depot/projects/vimage-commit2/src/sys/dev/acpica/Osd/OsdSynch.c#3 integrate .. //depot/projects/vimage-commit2/src/sys/dev/ata/ata-pci.h#15 integrate .. //depot/projects/vimage-commit2/src/sys/dev/ata/chipsets/ata-nvidia.c#5 integrate .. //depot/projects/vimage-commit2/src/sys/dev/ce/if_ce.c#6 integrate .. //depot/projects/vimage-commit2/src/sys/dev/cp/if_cp.c#5 integrate .. //depot/projects/vimage-commit2/src/sys/dev/ctau/if_ct.c#5 integrate .. //depot/projects/vimage-commit2/src/sys/dev/cx/if_cx.c#4 integrate .. //depot/projects/vimage-commit2/src/sys/dev/cxgb/ulp/iw_cxgb/iw_cxgb.c#9 integrate .. //depot/projects/vimage-commit2/src/sys/dev/if_ndis/if_ndis_usb.c#7 integrate .. //depot/projects/vimage-commit2/src/sys/dev/kbdmux/kbdmux.c#7 integrate .. //depot/projects/vimage-commit2/src/sys/dev/mwl/if_mwl.c#2 integrate .. //depot/projects/vimage-commit2/src/sys/dev/sec/sec.c#1 branch .. //depot/projects/vimage-commit2/src/sys/dev/sec/sec.h#1 branch .. //depot/projects/vimage-commit2/src/sys/dev/sound/clone.c#2 integrate .. //depot/projects/vimage-commit2/src/sys/dev/sound/driver.c#2 integrate .. //depot/projects/vimage-commit2/src/sys/dev/sound/isa/ad1816.c#2 integrate .. //depot/projects/vimage-commit2/src/sys/dev/sound/isa/ess.c#2 integrate .. //depot/projects/vimage-commit2/src/sys/dev/sound/isa/gusc.c#2 integrate .. //depot/projects/vimage-commit2/src/sys/dev/sound/isa/mss.c#2 integrate .. //depot/projects/vimage-commit2/src/sys/dev/sound/isa/sb16.c#2 integrate .. //depot/projects/vimage-commit2/src/sys/dev/sound/isa/sb8.c#2 integrate .. //depot/projects/vimage-commit2/src/sys/dev/sound/isa/sbc.c#2 integrate .. //depot/projects/vimage-commit2/src/sys/dev/sound/isa/sndbuf_dma.c#2 integrate .. //depot/projects/vimage-commit2/src/sys/dev/sound/macio/aoa.c#2 integrate .. //depot/projects/vimage-commit2/src/sys/dev/sound/macio/davbus.c#2 integrate .. //depot/projects/vimage-commit2/src/sys/dev/sound/macio/i2s.c#2 integrate .. //depot/projects/vimage-commit2/src/sys/dev/sound/macio/snapper.c#2 integrate .. //depot/projects/vimage-commit2/src/sys/dev/sound/macio/tumbler.c#2 integrate .. //depot/projects/vimage-commit2/src/sys/dev/sound/midi/midi.c#3 integrate .. //depot/projects/vimage-commit2/src/sys/dev/sound/midi/mpu401.c#2 integrate .. //depot/projects/vimage-commit2/src/sys/dev/sound/midi/sequencer.c#4 integrate .. //depot/projects/vimage-commit2/src/sys/dev/sound/midi/sequencer.h#2 integrate .. //depot/projects/vimage-commit2/src/sys/dev/sound/pci/als4000.c#2 integrate .. //depot/projects/vimage-commit2/src/sys/dev/sound/pci/atiixp.c#2 integrate .. //depot/projects/vimage-commit2/src/sys/dev/sound/pci/aureal.c#2 integrate .. //depot/projects/vimage-commit2/src/sys/dev/sound/pci/cmi.c#4 integrate .. //depot/projects/vimage-commit2/src/sys/dev/sound/pci/cs4281.c#3 integrate .. //depot/projects/vimage-commit2/src/sys/dev/sound/pci/csa.c#3 integrate .. //depot/projects/vimage-commit2/src/sys/dev/sound/pci/csapcm.c#2 integrate .. //depot/projects/vimage-commit2/src/sys/dev/sound/pci/ds1.c#3 integrate .. //depot/projects/vimage-commit2/src/sys/dev/sound/pci/emu10k1.c#3 integrate .. //depot/projects/vimage-commit2/src/sys/dev/sound/pci/emu10kx-midi.c#3 integrate .. //depot/projects/vimage-commit2/src/sys/dev/sound/pci/emu10kx-pcm.c#2 integrate .. //depot/projects/vimage-commit2/src/sys/dev/sound/pci/emu10kx.c#4 integrate .. //depot/projects/vimage-commit2/src/sys/dev/sound/pci/envy24.c#4 integrate .. //depot/projects/vimage-commit2/src/sys/dev/sound/pci/envy24ht.c#4 integrate .. //depot/projects/vimage-commit2/src/sys/dev/sound/pci/es137x.c#2 integrate .. //depot/projects/vimage-commit2/src/sys/dev/sound/pci/fm801.c#2 integrate .. //depot/projects/vimage-commit2/src/sys/dev/sound/pci/hda/hdac.c#15 integrate .. //depot/projects/vimage-commit2/src/sys/dev/sound/pci/ich.c#3 integrate .. //depot/projects/vimage-commit2/src/sys/dev/sound/pci/maestro.c#2 integrate .. //depot/projects/vimage-commit2/src/sys/dev/sound/pci/maestro3.c#2 integrate .. //depot/projects/vimage-commit2/src/sys/dev/sound/pci/neomagic.c#2 integrate .. //depot/projects/vimage-commit2/src/sys/dev/sound/pci/solo.c#2 integrate .. //depot/projects/vimage-commit2/src/sys/dev/sound/pci/spicds.c#3 integrate .. //depot/projects/vimage-commit2/src/sys/dev/sound/pci/t4dwave.c#2 integrate .. //depot/projects/vimage-commit2/src/sys/dev/sound/pci/via8233.c#2 integrate .. //depot/projects/vimage-commit2/src/sys/dev/sound/pci/via82c686.c#2 integrate .. //depot/projects/vimage-commit2/src/sys/dev/sound/pci/vibes.c#3 integrate .. //depot/projects/vimage-commit2/src/sys/dev/sound/pcm/ac97.c#2 integrate .. //depot/projects/vimage-commit2/src/sys/dev/sound/pcm/ac97_patch.c#2 integrate .. //depot/projects/vimage-commit2/src/sys/dev/sound/pcm/buffer.c#2 integrate .. //depot/projects/vimage-commit2/src/sys/dev/sound/pcm/buffer.h#2 integrate .. //depot/projects/vimage-commit2/src/sys/dev/sound/pcm/channel.c#3 integrate .. //depot/projects/vimage-commit2/src/sys/dev/sound/pcm/channel.h#3 integrate .. //depot/projects/vimage-commit2/src/sys/dev/sound/pcm/channel_if.m#2 integrate .. //depot/projects/vimage-commit2/src/sys/dev/sound/pcm/dsp.c#4 integrate .. //depot/projects/vimage-commit2/src/sys/dev/sound/pcm/dsp.h#2 integrate .. //depot/projects/vimage-commit2/src/sys/dev/sound/pcm/fake.c#2 delete .. //depot/projects/vimage-commit2/src/sys/dev/sound/pcm/feeder.c#2 integrate .. //depot/projects/vimage-commit2/src/sys/dev/sound/pcm/feeder.h#2 integrate .. //depot/projects/vimage-commit2/src/sys/dev/sound/pcm/feeder_chain.c#1 branch .. //depot/projects/vimage-commit2/src/sys/dev/sound/pcm/feeder_eq.c#1 branch .. //depot/projects/vimage-commit2/src/sys/dev/sound/pcm/feeder_fmt.c#2 delete .. //depot/projects/vimage-commit2/src/sys/dev/sound/pcm/feeder_format.c#1 branch .. //depot/projects/vimage-commit2/src/sys/dev/sound/pcm/feeder_matrix.c#1 branch .. //depot/projects/vimage-commit2/src/sys/dev/sound/pcm/feeder_mixer.c#1 branch .. //depot/projects/vimage-commit2/src/sys/dev/sound/pcm/feeder_rate.c#2 integrate .. //depot/projects/vimage-commit2/src/sys/dev/sound/pcm/feeder_volume.c#2 integrate .. //depot/projects/vimage-commit2/src/sys/dev/sound/pcm/g711.h#1 branch .. //depot/projects/vimage-commit2/src/sys/dev/sound/pcm/intpcm.h#1 branch .. //depot/projects/vimage-commit2/src/sys/dev/sound/pcm/matrix.h#1 branch .. //depot/projects/vimage-commit2/src/sys/dev/sound/pcm/matrix_map.h#1 branch .. //depot/projects/vimage-commit2/src/sys/dev/sound/pcm/mixer.c#5 integrate .. //depot/projects/vimage-commit2/src/sys/dev/sound/pcm/mixer.h#3 integrate .. //depot/projects/vimage-commit2/src/sys/dev/sound/pcm/pcm.h#1 branch .. //depot/projects/vimage-commit2/src/sys/dev/sound/pcm/sndstat.c#2 integrate .. //depot/projects/vimage-commit2/src/sys/dev/sound/pcm/sndstat.h#1 branch .. //depot/projects/vimage-commit2/src/sys/dev/sound/pcm/sound.c#4 integrate .. //depot/projects/vimage-commit2/src/sys/dev/sound/pcm/sound.h#5 integrate .. //depot/projects/vimage-commit2/src/sys/dev/sound/pcm/vchan.c#2 integrate .. //depot/projects/vimage-commit2/src/sys/dev/sound/pcm/vchan.h#2 integrate .. //depot/projects/vimage-commit2/src/sys/dev/sound/sbus/cs4231.c#2 integrate .. //depot/projects/vimage-commit2/src/sys/dev/sound/unit.c#2 integrate .. //depot/projects/vimage-commit2/src/sys/dev/sound/usb/uaudio.c#10 integrate .. //depot/projects/vimage-commit2/src/sys/dev/sound/usb/uaudio.h#6 integrate .. //depot/projects/vimage-commit2/src/sys/dev/sound/usb/uaudio_pcm.c#6 integrate .. //depot/projects/vimage-commit2/src/sys/dev/sound/version.h#2 integrate .. //depot/projects/vimage-commit2/src/sys/dev/usb/controller/at91dci.c#8 integrate .. //depot/projects/vimage-commit2/src/sys/dev/usb/controller/atmegadci.c#9 integrate .. //depot/projects/vimage-commit2/src/sys/dev/usb/controller/avr32dci.c#3 integrate .. //depot/projects/vimage-commit2/src/sys/dev/usb/controller/ehci.c#11 integrate .. //depot/projects/vimage-commit2/src/sys/dev/usb/controller/musb_otg.c#8 integrate .. //depot/projects/vimage-commit2/src/sys/dev/usb/controller/ohci.c#10 integrate .. //depot/projects/vimage-commit2/src/sys/dev/usb/controller/uhci.c#10 integrate .. //depot/projects/vimage-commit2/src/sys/dev/usb/controller/uss820dci.c#8 integrate .. //depot/projects/vimage-commit2/src/sys/dev/usb/serial/ugensa.c#7 integrate .. //depot/projects/vimage-commit2/src/sys/dev/usb/serial/umct.c#7 integrate .. //depot/projects/vimage-commit2/src/sys/dev/usb/storage/ustorage_fs.c#8 integrate .. //depot/projects/vimage-commit2/src/sys/dev/usb/usb.h#7 integrate .. //depot/projects/vimage-commit2/src/sys/dev/usb/usb_compat_linux.c#8 integrate .. //depot/projects/vimage-commit2/src/sys/dev/usb/usb_compat_linux.h#6 integrate .. //depot/projects/vimage-commit2/src/sys/dev/usb/usb_controller.h#8 integrate .. //depot/projects/vimage-commit2/src/sys/dev/usb/usb_core.h#12 integrate .. //depot/projects/vimage-commit2/src/sys/dev/usb/usb_debug.c#5 integrate .. //depot/projects/vimage-commit2/src/sys/dev/usb/usb_debug.h#5 integrate .. //depot/projects/vimage-commit2/src/sys/dev/usb/usb_dev.c#9 integrate .. //depot/projects/vimage-commit2/src/sys/dev/usb/usb_device.c#12 integrate .. //depot/projects/vimage-commit2/src/sys/dev/usb/usb_device.h#11 integrate .. //depot/projects/vimage-commit2/src/sys/dev/usb/usb_generic.c#10 integrate .. //depot/projects/vimage-commit2/src/sys/dev/usb/usb_handle_request.c#7 integrate .. //depot/projects/vimage-commit2/src/sys/dev/usb/usb_hub.c#12 integrate .. //depot/projects/vimage-commit2/src/sys/dev/usb/usb_lookup.h#4 integrate .. //depot/projects/vimage-commit2/src/sys/dev/usb/usb_request.c#10 integrate .. //depot/projects/vimage-commit2/src/sys/dev/usb/usb_transfer.c#10 integrate .. //depot/projects/vimage-commit2/src/sys/dev/usb/usb_transfer.h#6 integrate .. //depot/projects/vimage-commit2/src/sys/dev/usb/wlan/if_zyd.c#11 integrate .. //depot/projects/vimage-commit2/src/sys/dev/usb/wlan/if_zydreg.h#6 integrate .. //depot/projects/vimage-commit2/src/sys/dev/xen/netfront/netfront.c#11 integrate .. //depot/projects/vimage-commit2/src/sys/fs/nfsclient/nfs_clstate.c#4 integrate .. //depot/projects/vimage-commit2/src/sys/fs/pseudofs/pseudofs_vncache.c#4 integrate .. //depot/projects/vimage-commit2/src/sys/fs/udf/osta.c#2 integrate .. //depot/projects/vimage-commit2/src/sys/geom/geom_subr.c#8 integrate .. //depot/projects/vimage-commit2/src/sys/gnu/fs/ext2fs/ext2_vfsops.c#9 integrate .. //depot/projects/vimage-commit2/src/sys/i386/conf/NOTES#16 integrate .. //depot/projects/vimage-commit2/src/sys/i386/i386/local_apic.c#10 integrate .. //depot/projects/vimage-commit2/src/sys/i386/i386/machdep.c#12 integrate .. //depot/projects/vimage-commit2/src/sys/i386/i386/pmap.c#12 integrate .. //depot/projects/vimage-commit2/src/sys/i386/include/apicvar.h#7 integrate .. //depot/projects/vimage-commit2/src/sys/i386/isa/clock.c#3 integrate .. //depot/projects/vimage-commit2/src/sys/i386/isa/vesa.c#2 integrate .. //depot/projects/vimage-commit2/src/sys/i386/xen/pmap.c#8 integrate .. //depot/projects/vimage-commit2/src/sys/kern/kern_exec.c#13 integrate .. //depot/projects/vimage-commit2/src/sys/kern/kern_exit.c#13 integrate .. //depot/projects/vimage-commit2/src/sys/kern/kern_poll.c#17 integrate .. //depot/projects/vimage-commit2/src/sys/kern/kern_uuid.c#12 integrate .. //depot/projects/vimage-commit2/src/sys/kern/kern_vimage.c#54 integrate .. //depot/projects/vimage-commit2/src/sys/kern/tty.c#24 integrate .. //depot/projects/vimage-commit2/src/sys/kern/uipc_domain.c#9 integrate .. //depot/projects/vimage-commit2/src/sys/kern/vfs_bio.c#16 integrate .. //depot/projects/vimage-commit2/src/sys/kern/vfs_cluster.c#2 integrate .. //depot/projects/vimage-commit2/src/sys/kern/vfs_lookup.c#14 integrate .. //depot/projects/vimage-commit2/src/sys/kern/vfs_syscalls.c#13 integrate .. //depot/projects/vimage-commit2/src/sys/kern/vfs_vnops.c#18 integrate .. //depot/projects/vimage-commit2/src/sys/kern/vnode_if.src#9 integrate .. //depot/projects/vimage-commit2/src/sys/modules/bridgestp/Makefile#3 integrate .. //depot/projects/vimage-commit2/src/sys/modules/cxgb/iw_cxgb/Makefile#5 integrate .. //depot/projects/vimage-commit2/src/sys/modules/cxgb/tom/Makefile#3 integrate .. //depot/projects/vimage-commit2/src/sys/modules/firewire/fwip/Makefile#2 integrate .. //depot/projects/vimage-commit2/src/sys/modules/ibcs2/Makefile#2 integrate .. //depot/projects/vimage-commit2/src/sys/modules/if_ef/Makefile#3 integrate .. //depot/projects/vimage-commit2/src/sys/modules/if_gif/Makefile#2 integrate .. //depot/projects/vimage-commit2/src/sys/modules/if_ppp/Makefile#2 integrate .. //depot/projects/vimage-commit2/src/sys/modules/if_stf/Makefile#2 integrate .. //depot/projects/vimage-commit2/src/sys/modules/if_tun/Makefile#2 integrate .. //depot/projects/vimage-commit2/src/sys/modules/if_vlan/Makefile#3 integrate .. //depot/projects/vimage-commit2/src/sys/modules/ip6_mroute_mod/Makefile#2 integrate .. //depot/projects/vimage-commit2/src/sys/modules/ip_mroute_mod/Makefile#4 integrate .. //depot/projects/vimage-commit2/src/sys/modules/ipfw/Makefile#4 integrate .. //depot/projects/vimage-commit2/src/sys/modules/linprocfs/Makefile#4 integrate .. //depot/projects/vimage-commit2/src/sys/modules/linux/Makefile#7 integrate .. //depot/projects/vimage-commit2/src/sys/modules/mac_lomac/Makefile#2 integrate .. //depot/projects/vimage-commit2/src/sys/modules/netgraph/atm/atm/Makefile#3 integrate .. //depot/projects/vimage-commit2/src/sys/modules/netgraph/ether/Makefile#3 integrate .. //depot/projects/vimage-commit2/src/sys/modules/netgraph/gif/Makefile#3 integrate .. //depot/projects/vimage-commit2/src/sys/modules/nfsclient/Makefile#6 integrate .. //depot/projects/vimage-commit2/src/sys/modules/nfsserver/Makefile#4 integrate .. //depot/projects/vimage-commit2/src/sys/modules/pf/Makefile#4 integrate .. //depot/projects/vimage-commit2/src/sys/modules/pseudofs/Makefile#2 integrate .. //depot/projects/vimage-commit2/src/sys/modules/sem/Makefile#3 integrate .. //depot/projects/vimage-commit2/src/sys/modules/sound/sound/Makefile#3 integrate .. //depot/projects/vimage-commit2/src/sys/modules/svr4/Makefile#6 integrate .. //depot/projects/vimage-commit2/src/sys/modules/sysvipc/sysvmsg/Makefile#2 integrate .. //depot/projects/vimage-commit2/src/sys/modules/sysvipc/sysvsem/Makefile#2 integrate .. //depot/projects/vimage-commit2/src/sys/modules/sysvipc/sysvshm/Makefile#2 integrate .. //depot/projects/vimage-commit2/src/sys/modules/ufs/Makefile#2 integrate .. //depot/projects/vimage-commit2/src/sys/modules/wlan/Makefile#6 integrate .. //depot/projects/vimage-commit2/src/sys/net/bridgestp.c#12 integrate .. //depot/projects/vimage-commit2/src/sys/net/flowtable.h#2 integrate .. //depot/projects/vimage-commit2/src/sys/net/if.c#75 integrate .. //depot/projects/vimage-commit2/src/sys/net/if_ef.c#12 integrate .. //depot/projects/vimage-commit2/src/sys/net/if_ethersubr.c#29 integrate .. //depot/projects/vimage-commit2/src/sys/net/if_gif.c#29 integrate .. //depot/projects/vimage-commit2/src/sys/net/if_gif.h#12 integrate .. //depot/projects/vimage-commit2/src/sys/net/if_loop.c#37 integrate .. //depot/projects/vimage-commit2/src/sys/net/if_mib.c#16 integrate .. //depot/projects/vimage-commit2/src/sys/net/if_var.h#30 integrate .. //depot/projects/vimage-commit2/src/sys/net/if_vlan.c#16 integrate .. //depot/projects/vimage-commit2/src/sys/net/raw_cb.c#14 integrate .. //depot/projects/vimage-commit2/src/sys/net/raw_usrreq.c#12 integrate .. //depot/projects/vimage-commit2/src/sys/net/route.c#43 integrate .. //depot/projects/vimage-commit2/src/sys/net/rtsock.c#29 integrate .. //depot/projects/vimage-commit2/src/sys/net/vnet.h#22 integrate .. //depot/projects/vimage-commit2/src/sys/net80211/ieee80211.c#18 integrate .. //depot/projects/vimage-commit2/src/sys/net80211/ieee80211.h#10 integrate .. //depot/projects/vimage-commit2/src/sys/net80211/ieee80211_crypto.c#4 integrate .. //depot/projects/vimage-commit2/src/sys/net80211/ieee80211_crypto.h#4 integrate .. //depot/projects/vimage-commit2/src/sys/net80211/ieee80211_crypto_ccmp.c#4 integrate .. //depot/projects/vimage-commit2/src/sys/net80211/ieee80211_crypto_tkip.c#5 integrate .. //depot/projects/vimage-commit2/src/sys/net80211/ieee80211_ddb.c#18 integrate .. //depot/projects/vimage-commit2/src/sys/net80211/ieee80211_dfs.c#4 integrate .. //depot/projects/vimage-commit2/src/sys/net80211/ieee80211_freebsd.c#13 integrate .. //depot/projects/vimage-commit2/src/sys/net80211/ieee80211_hostap.c#15 integrate .. //depot/projects/vimage-commit2/src/sys/net80211/ieee80211_ht.c#10 integrate .. //depot/projects/vimage-commit2/src/sys/net80211/ieee80211_input.c#10 integrate .. //depot/projects/vimage-commit2/src/sys/net80211/ieee80211_ioctl.c#14 integrate .. //depot/projects/vimage-commit2/src/sys/net80211/ieee80211_ioctl.h#7 integrate .. //depot/projects/vimage-commit2/src/sys/net80211/ieee80211_node.c#11 integrate .. //depot/projects/vimage-commit2/src/sys/net80211/ieee80211_node.h#11 integrate .. //depot/projects/vimage-commit2/src/sys/net80211/ieee80211_output.c#16 integrate .. //depot/projects/vimage-commit2/src/sys/net80211/ieee80211_proto.h#9 integrate .. //depot/projects/vimage-commit2/src/sys/net80211/ieee80211_radiotap.c#4 integrate .. //depot/projects/vimage-commit2/src/sys/net80211/ieee80211_scan_sta.c#10 integrate .. //depot/projects/vimage-commit2/src/sys/net80211/ieee80211_sta.c#14 integrate .. //depot/projects/vimage-commit2/src/sys/net80211/ieee80211_var.h#16 integrate .. //depot/projects/vimage-commit2/src/sys/netgraph/atm/ng_atm.c#11 integrate .. //depot/projects/vimage-commit2/src/sys/netgraph/ng_base.c#32 integrate .. //depot/projects/vimage-commit2/src/sys/netgraph/ng_ether.c#15 integrate .. //depot/projects/vimage-commit2/src/sys/netgraph/ng_gif.c#13 integrate .. //depot/projects/vimage-commit2/src/sys/netgraph/ng_message.h#3 integrate .. //depot/projects/vimage-commit2/src/sys/netinet/if_ether.c#37 integrate .. //depot/projects/vimage-commit2/src/sys/netinet/igmp.c#42 integrate .. //depot/projects/vimage-commit2/src/sys/netinet/in.c#29 integrate .. //depot/projects/vimage-commit2/src/sys/netinet/in_gif.c#14 integrate .. //depot/projects/vimage-commit2/src/sys/netinet/in_mcast.c#24 integrate .. //depot/projects/vimage-commit2/src/sys/netinet/in_proto.c#14 integrate .. //depot/projects/vimage-commit2/src/sys/netinet/in_rmx.c#33 integrate .. //depot/projects/vimage-commit2/src/sys/netinet/ip_ipsec.c#13 integrate .. //depot/projects/vimage-commit2/src/sys/netinet/ip_ipsec.h#2 integrate .. //depot/projects/vimage-commit2/src/sys/netinet/ip_output.c#30 integrate .. //depot/projects/vimage-commit2/src/sys/netinet/ip_var.h#18 integrate .. //depot/projects/vimage-commit2/src/sys/netinet/ipfw/ip_fw2.c#2 integrate .. //depot/projects/vimage-commit2/src/sys/netinet/raw_ip.c#32 integrate .. //depot/projects/vimage-commit2/src/sys/netinet/sctp_os_bsd.h#25 integrate .. //depot/projects/vimage-commit2/src/sys/netinet/tcp_hostcache.c#28 integrate .. //depot/projects/vimage-commit2/src/sys/netinet/tcp_subr.c#54 integrate .. //depot/projects/vimage-commit2/src/sys/netinet/tcp_syncache.c#38 integrate .. //depot/projects/vimage-commit2/src/sys/netinet/tcp_syncache.h#9 integrate .. //depot/projects/vimage-commit2/src/sys/netinet/tcp_timewait.c#29 integrate .. //depot/projects/vimage-commit2/src/sys/netinet/tcp_var.h#16 integrate .. //depot/projects/vimage-commit2/src/sys/netinet/udp_usrreq.c#42 integrate .. //depot/projects/vimage-commit2/src/sys/netinet/udp_var.h#8 integrate .. //depot/projects/vimage-commit2/src/sys/netinet6/icmp6.c#29 integrate .. //depot/projects/vimage-commit2/src/sys/netinet6/in6.c#20 integrate .. //depot/projects/vimage-commit2/src/sys/netinet6/in6_gif.c#12 integrate .. //depot/projects/vimage-commit2/src/sys/netinet6/in6_ifattach.c#29 integrate .. //depot/projects/vimage-commit2/src/sys/netinet6/in6_mcast.c#4 integrate .. //depot/projects/vimage-commit2/src/sys/netinet6/in6_proto.c#24 integrate .. //depot/projects/vimage-commit2/src/sys/netinet6/in6_rmx.c#34 integrate .. //depot/projects/vimage-commit2/src/sys/netinet6/ip6_input.c#35 integrate .. //depot/projects/vimage-commit2/src/sys/netinet6/ip6_mroute.c#18 integrate .. //depot/projects/vimage-commit2/src/sys/netinet6/ip6_output.c#17 integrate .. //depot/projects/vimage-commit2/src/sys/netinet6/ip6_var.h#10 integrate .. //depot/projects/vimage-commit2/src/sys/netinet6/ip6protosw.h#4 integrate .. //depot/projects/vimage-commit2/src/sys/netinet6/nd6.c#37 integrate .. //depot/projects/vimage-commit2/src/sys/netinet6/nd6.h#10 integrate .. //depot/projects/vimage-commit2/src/sys/netinet6/nd6_rtr.c#28 integrate .. //depot/projects/vimage-commit2/src/sys/netinet6/raw_ip6.c#26 integrate .. //depot/projects/vimage-commit2/src/sys/netinet6/scope6.c#15 integrate .. //depot/projects/vimage-commit2/src/sys/netipsec/ipsec.c#34 integrate .. //depot/projects/vimage-commit2/src/sys/netipsec/key.c#32 integrate .. //depot/projects/vimage-commit2/src/sys/netipsec/key.h#4 integrate .. //depot/projects/vimage-commit2/src/sys/netipsec/keysock.c#22 integrate .. //depot/projects/vimage-commit2/src/sys/netipsec/xform_ipip.c#18 integrate .. //depot/projects/vimage-commit2/src/sys/nfsclient/bootp_subr.c#13 integrate .. //depot/projects/vimage-commit2/src/sys/nfsclient/nfs_diskless.c#12 integrate .. //depot/projects/vimage-commit2/src/sys/powerpc/conf/MPC85XX#6 integrate .. //depot/projects/vimage-commit2/src/sys/powerpc/include/ocpbus.h#2 integrate .. //depot/projects/vimage-commit2/src/sys/powerpc/include/pio.h#2 integrate .. //depot/projects/vimage-commit2/src/sys/powerpc/mpc85xx/ocpbus.c#7 integrate .. //depot/projects/vimage-commit2/src/sys/powerpc/mpc85xx/ocpbus.h#3 integrate .. //depot/projects/vimage-commit2/src/sys/powerpc/powerpc/bus_machdep.c#4 integrate .. //depot/projects/vimage-commit2/src/sys/rpc/svc.c#4 integrate .. //depot/projects/vimage-commit2/src/sys/rpc/svc_auth.c#3 integrate .. //depot/projects/vimage-commit2/src/sys/sys/cdefs.h#5 integrate .. //depot/projects/vimage-commit2/src/sys/sys/domain.h#3 integrate .. //depot/projects/vimage-commit2/src/sys/sys/mount.h#14 integrate .. //depot/projects/vimage-commit2/src/sys/sys/param.h#43 integrate .. //depot/projects/vimage-commit2/src/sys/sys/priv.h#11 integrate .. //depot/projects/vimage-commit2/src/sys/sys/protosw.h#5 integrate .. //depot/projects/vimage-commit2/src/sys/sys/soundcard.h#3 integrate .. //depot/projects/vimage-commit2/src/sys/sys/vimage.h#71 integrate .. //depot/projects/vimage-commit2/src/sys/tools/feeder_eq_mkfilter.awk#1 branch .. //depot/projects/vimage-commit2/src/sys/tools/feeder_rate_mkfilter.awk#1 branch .. //depot/projects/vimage-commit2/src/sys/tools/snd_fxdiv_gen.awk#1 branch .. //depot/projects/vimage-commit2/src/sys/vm/vm_fault.c#7 integrate .. //depot/projects/vimage-commit2/src/sys/vm/vm_glue.c#4 integrate .. //depot/projects/vimage-commit2/src/sys/vm/vm_map.c#7 integrate .. //depot/projects/vimage-commit2/src/sys/vm/vm_pager.h#2 integrate Differences ... ==== //depot/projects/vimage-commit2/src/sys/amd64/amd64/local_apic.c#9 (text+ko) ==== @@ -32,7 +32,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/amd64/amd64/local_apic.c,v 1.55 2009/05/05 01:13:20 mav Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/amd64/local_apic.c,v 1.56 2009/06/09 04:17:36 ariff Exp $"); #include "opt_hwpmc_hooks.h" #include "opt_kdtrace.h" @@ -329,29 +329,6 @@ /* XXX: Error and thermal LVTs */ - if (cpu_vendor_id == CPU_VENDOR_AMD) { - /* - * Detect the presence of C1E capability mostly on latest - * dual-cores (or future) k8 family. This feature renders - * the local APIC timer dead, so we disable it by reading - * the Interrupt Pending Message register and clearing both - * C1eOnCmpHalt (bit 28) and SmiOnCmpHalt (bit 27). - * - * Reference: - * "BIOS and Kernel Developer's Guide for AMD NPT - * Family 0Fh Processors" - * #32559 revision 3.00 - */ - if ((cpu_id & 0x00000f00) == 0x00000f00 && - (cpu_id & 0x0fff0000) >= 0x00040000) { - uint64_t msr; - - msr = rdmsr(0xc0010055); - if (msr & 0x18000000) - wrmsr(0xc0010055, msr & ~0x18000000ULL); - } - } - intr_restore(eflags); } ==== //depot/projects/vimage-commit2/src/sys/amd64/amd64/machdep.c#11 (text+ko) ==== @@ -39,7 +39,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/amd64/amd64/machdep.c,v 1.701 2009/05/18 18:37:18 marcel Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/amd64/machdep.c,v 1.702 2009/06/09 04:17:36 ariff Exp $"); #include "opt_atalk.h" #include "opt_atpic.h" @@ -600,7 +600,70 @@ __asm __volatile("sti; hlt"); } +static int cpu_ident_amdc1e = 0; + +static int +cpu_probe_amdc1e(void) +{ + int i; + + /* + * Forget it, if we're not using local APIC timer. + */ + if (resource_disabled("apic", 0) || + (resource_int_value("apic", 0, "clock", &i) == 0 && i == 0)) + return (0); + + /* + * Detect the presence of C1E capability mostly on latest + * dual-cores (or future) k8 family. + */ + if (cpu_vendor_id == CPU_VENDOR_AMD && + (cpu_id & 0x00000f00) == 0x00000f00 && + (cpu_id & 0x0fff0000) >= 0x00040000) { + cpu_ident_amdc1e = 1; + return (1); + } + + return (0); +} + +/* + * C1E renders the local APIC timer dead, so we disable it by + * reading the Interrupt Pending Message register and clearing + * both C1eOnCmpHalt (bit 28) and SmiOnCmpHalt (bit 27). + * + * Reference: + * "BIOS and Kernel Developer's Guide for AMD NPT Family 0Fh Processors" + * #32559 revision 3.00+ + */ +#define MSR_AMDK8_IPM 0xc0010055 +#define AMDK8_SMIONCMPHALT (1ULL << 27) +#define AMDK8_C1EONCMPHALT (1ULL << 28) +#define AMDK8_CMPHALT (AMDK8_SMIONCMPHALT | AMDK8_C1EONCMPHALT) + static void +cpu_idle_amdc1e(int busy) +{ + + disable_intr(); + if (sched_runnable()) + enable_intr(); + else { + uint64_t msr; + + msr = rdmsr(MSR_AMDK8_IPM); + if (msr & AMDK8_CMPHALT) + wrmsr(MSR_AMDK8_IPM, msr & ~AMDK8_CMPHALT); + + if (cpu_idle_hook) + cpu_idle_hook(); + else + __asm __volatile("sti; hlt"); + } +} + +static void cpu_idle_spin(int busy) { return; @@ -697,6 +760,7 @@ { cpu_idle_spin, "spin" }, { cpu_idle_mwait, "mwait" }, { cpu_idle_mwait_hlt, "mwait_hlt" }, + { cpu_idle_amdc1e, "amdc1e" }, { cpu_idle_hlt, "hlt" }, { cpu_idle_acpi, "acpi" }, { NULL, NULL } @@ -715,6 +779,9 @@ if (strstr(idle_tbl[i].id_name, "mwait") && (cpu_feature2 & CPUID2_MON) == 0) continue; + if (strcmp(idle_tbl[i].id_name, "amdc1e") == 0 && + cpu_ident_amdc1e == 0) + continue; p += sprintf(p, "%s, ", idle_tbl[i].id_name); } error = sysctl_handle_string(oidp, avail, 0, req); @@ -745,6 +812,9 @@ if (strstr(idle_tbl[i].id_name, "mwait") && (cpu_feature2 & CPUID2_MON) == 0) continue; + if (strcmp(idle_tbl[i].id_name, "amdc1e") == 0 && + cpu_ident_amdc1e == 0) + continue; if (strcmp(idle_tbl[i].id_name, buf)) continue; cpu_idle_fn = idle_tbl[i].id_fn; @@ -1593,6 +1663,9 @@ } #endif + if (cpu_probe_amdc1e()) + cpu_idle_fn = cpu_idle_amdc1e; + /* Location of kernel stack for locore */ return ((u_int64_t)thread0.td_pcb); } ==== //depot/projects/vimage-commit2/src/sys/amd64/amd64/pmap.c#15 (text+ko) ==== @@ -77,7 +77,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/amd64/amd64/pmap.c,v 1.658 2009/05/13 07:42:53 alc Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/amd64/pmap.c,v 1.660 2009/06/08 18:23:43 ed Exp $"); /* * Manages physical address maps. ==== //depot/projects/vimage-commit2/src/sys/amd64/conf/NOTES#9 (text+ko) ==== @@ -4,7 +4,7 @@ # This file contains machine dependent kernel configuration notes. For # machine independent notes, look in /sys/conf/NOTES. # -# $FreeBSD: src/sys/amd64/conf/NOTES,v 1.90 2009/05/10 00:00:25 kuriyama Exp $ +# $FreeBSD: src/sys/amd64/conf/NOTES,v 1.91 2009/06/08 20:07:16 jkim Exp $ # # @@ -237,12 +237,9 @@ # kernel environment variables to select initial debugging levels for the # Intel ACPICA code. (Note that the Intel code must also have USE_DEBUGGER # defined when it is built). -# -# ACPI_NO_SEMAPHORES makes the AcpiOs*Semaphore routines a no-op. device acpi options ACPI_DEBUG -#!options ACPI_NO_SEMAPHORES # The cpufreq(4) driver provides support for non-ACPI CPU frequency control device cpufreq ==== //depot/projects/vimage-commit2/src/sys/amd64/include/param.h#7 (text+ko) ==== @@ -36,7 +36,7 @@ * SUCH DAMAGE. * * @(#)param.h 8.1 (Berkeley) 6/10/93 - * $FreeBSD: src/sys/amd64/include/param.h,v 1.28 2009/05/18 19:33:59 jhb Exp $ + * $FreeBSD: src/sys/amd64/include/param.h,v 1.29 2009/06/08 16:43:40 alc Exp $ */ /* @@ -137,15 +137,6 @@ #endif /* - * Ceiling on size of buffer cache (really only effects write queueing, - * the VM page cache is not effected), can be changed via - * the kern.maxbcache /boot/loader.conf variable. - */ -#ifndef VM_BCACHE_SIZE_MAX -#define VM_BCACHE_SIZE_MAX (1024 * 1024 * 1024) -#endif - -/* * Mach derived conversion macros */ #define round_page(x) ((((unsigned long)(x)) + PAGE_MASK) & ~(PAGE_MASK)) ==== //depot/projects/vimage-commit2/src/sys/amd64/isa/clock.c#4 (text+ko) ==== @@ -33,7 +33,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/amd64/isa/clock.c,v 1.246 2009/05/03 17:47:21 mav Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/isa/clock.c,v 1.247 2009/06/09 07:26:52 ariff Exp $"); /* * Routines to handle clock hardware. @@ -93,6 +93,9 @@ static int using_atrtc_timer; static int using_lapic_timer; +static u_int stat_ticks = 0; +static u_int prof_ticks = 0; + /* Values for timerX_state: */ #define RELEASED 0 #define RELEASE_PENDING 1 @@ -122,8 +125,6 @@ hardclock(TRAPF_USERMODE(frame), TRAPF_PC(frame)); else hardclock_cpu(TRAPF_USERMODE(frame)); - if (!using_atrtc_timer) - statclockintr(frame); return (FILTER_HANDLED); } @@ -131,8 +132,6 @@ statclockintr(struct trapframe *frame) { - if (profprocs != 0) - profclock(TRAPF_USERMODE(frame), TRAPF_PC(frame)); statclock(TRAPF_USERMODE(frame)); return (FILTER_HANDLED); } @@ -166,6 +165,30 @@ ipi_all_but_self(IPI_HARDCLOCK); #endif hardclockintr(frame); + + if (!using_atrtc_timer) { + prof_ticks += profhz; + if (prof_ticks >= hz) { + prof_ticks -= hz; + if (profprocs != 0) { +#ifdef SMP + if (smp_started) + ipi_all_but_self(IPI_PROFCLOCK); +#endif + profclockintr(frame); + } + } + stat_ticks += stathz; + if (stat_ticks >= hz) { + stat_ticks -= hz; +#ifdef SMP + if (smp_started) + ipi_all_but_self(IPI_STATCLOCK); +#endif + statclockintr(frame); + } + } + return (FILTER_HANDLED); } @@ -500,7 +523,8 @@ INTR_TYPE_CLK, NULL); atrtc_enable_intr(); } else { - profhz = stathz = hz; + profhz = min(RTC_PROFRATE, hz); + stathz = min(RTC_NOPROFRATE, hz); } } @@ -511,7 +535,7 @@ cpu_startprofclock(void) { - if (using_lapic_timer) + if (using_lapic_timer || !using_atrtc_clock) return; atrtc_rate(RTCSA_PROF); psdiv = pscnt = psratio; @@ -521,7 +545,7 @@ cpu_stopprofclock(void) { - if (using_lapic_timer) + if (using_lapic_timer || !using_atrtc_clock) return; atrtc_rate(RTCSA_NOPROF); psdiv = pscnt = 1; ==== //depot/projects/vimage-commit2/src/sys/arm/arm/pmap.c#7 (text+ko) ==== @@ -147,7 +147,7 @@ #include "opt_vm.h" #include -__FBSDID("$FreeBSD: src/sys/arm/arm/pmap.c,v 1.108 2009/05/07 05:42:13 alc Exp $"); +__FBSDID("$FreeBSD: src/sys/arm/arm/pmap.c,v 1.109 2009/06/08 12:15:39 raj Exp $"); #include #include #include @@ -3124,7 +3124,19 @@ if (flush == FALSE && (pv->pv_pmap == curpm || pv->pv_pmap == pmap_kernel())) flush = TRUE; + PMAP_LOCK(pv->pv_pmap); + /* + * Cached contents were written-back in pmap_remove_write(), + * but we still have to invalidate the cache entry to make + * sure stale data are not retrieved when another page will be + * mapped under this virtual address. + */ + if (pmap_is_current(pv->pv_pmap)) { + cpu_dcache_inv_range(pv->pv_va, PAGE_SIZE); + cpu_l2cache_inv_range(pv->pv_va, PAGE_SIZE); + } + l2b = pmap_get_l2_bucket(pv->pv_pmap, pv->pv_va); KASSERT(l2b != NULL, ("No l2 bucket")); ptep = &l2b->l2b_kva[l2pte_index(pv->pv_va)]; ==== //depot/projects/vimage-commit2/src/sys/boot/i386/libi386/biosdisk.c#6 (text+ko) ==== @@ -25,7 +25,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/boot/i386/libi386/biosdisk.c,v 1.60 2009/06/01 14:20:13 jhb Exp $"); +__FBSDID("$FreeBSD: src/sys/boot/i386/libi386/biosdisk.c,v 1.61 2009/06/08 15:07:35 jhb Exp $"); /* * BIOS disk device handling. @@ -990,7 +990,8 @@ out: if (error) { - free(od->od_partitions); + if (od->od_nparts > 0) + free(od->od_partitions); od->od_flags &= ~BD_GPTOK; } return (error); @@ -1044,7 +1045,7 @@ delay(3000000); #endif #ifdef LOADER_GPT_SUPPORT - if (od->od_flags & BD_GPTOK) + if (od->od_flags & BD_GPTOK && od->od_nparts > 0) free(od->od_partitions); #endif free(od); ==== //depot/projects/vimage-commit2/src/sys/boot/i386/libi386/biospnp.c#2 (text+ko) ==== @@ -25,7 +25,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/boot/i386/libi386/biospnp.c,v 1.10 2005/12/19 09:00:11 sobomax Exp $"); +__FBSDID("$FreeBSD: src/sys/boot/i386/libi386/biospnp.c,v 1.11 2009/06/08 15:09:22 jhb Exp $"); /* * PnP BIOS enumerator. @@ -49,38 +49,38 @@ struct pnp_ICstructure { - u_int8_t pnp_signature[4] __packed; - u_int8_t pnp_version __packed; - u_int8_t pnp_length __packed; - u_int16_t pnp_BIOScontrol __packed; - u_int8_t pnp_checksum __packed; - u_int32_t pnp_eventflag __packed; - u_int16_t pnp_rmip __packed; - u_int16_t pnp_rmcs __packed; - u_int16_t pnp_pmip __packed; - u_int32_t pnp_pmcs __packed; - u_int8_t pnp_OEMdev[4] __packed; - u_int16_t pnp_rmds __packed; - u_int32_t pnp_pmds __packed; -}; + u_int8_t pnp_signature[4]; + u_int8_t pnp_version; + u_int8_t pnp_length; + u_int16_t pnp_BIOScontrol; + u_int8_t pnp_checksum; + u_int32_t pnp_eventflag; + u_int16_t pnp_rmip; + u_int16_t pnp_rmcs; + u_int16_t pnp_pmip; + u_int32_t pnp_pmcs; + u_int8_t pnp_OEMdev[4]; + u_int16_t pnp_rmds; + u_int32_t pnp_pmds; +} __packed; struct pnp_devNode { - u_int16_t dn_size __packed; - u_int8_t dn_handle __packed; - u_int8_t dn_id[4] __packed; - u_int8_t dn_type[3] __packed; - u_int16_t dn_attrib __packed; - u_int8_t dn_data[1] __packed; -}; + u_int16_t dn_size; + u_int8_t dn_handle; + u_int8_t dn_id[4]; + u_int8_t dn_type[3]; + u_int16_t dn_attrib; + u_int8_t dn_data[1]; +} __packed; struct pnp_isaConfiguration { - u_int8_t ic_revision __packed; - u_int8_t ic_nCSN __packed; - u_int16_t ic_rdport __packed; - u_int16_t ic_reserved __packed; -}; + u_int8_t ic_revision; + u_int8_t ic_nCSN; + u_int16_t ic_rdport; + u_int16_t ic_reserved; +} __packed; static struct pnp_ICstructure *pnp_Icheck = NULL; static u_int16_t pnp_NumNodes; ==== //depot/projects/vimage-commit2/src/sys/compat/linprocfs/linprocfs.c#21 (text+ko) ==== @@ -39,11 +39,10 @@ * @(#)procfs_status.c 8.4 (Berkeley) 6/15/94 */ -#include "opt_route.h" #include "opt_compat.h" #include -__FBSDID("$FreeBSD: src/sys/compat/linprocfs/linprocfs.c,v 1.137 2009/03/26 17:14:22 ambrisko Exp $"); +__FBSDID("$FreeBSD: src/sys/compat/linprocfs/linprocfs.c,v 1.138 2009/06/08 19:57:35 bz Exp $"); #include #include ==== //depot/projects/vimage-commit2/src/sys/compat/linux/linux_ioctl.c#18 (text+ko) ==== @@ -26,11 +26,10 @@ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -#include "opt_route.h" #include "opt_compat.h" #include -__FBSDID("$FreeBSD: src/sys/compat/linux/linux_ioctl.c,v 1.149 2009/05/27 15:23:12 avg Exp $"); +__FBSDID("$FreeBSD: src/sys/compat/linux/linux_ioctl.c,v 1.150 2009/06/08 19:57:35 bz Exp $"); #include #include ==== //depot/projects/vimage-commit2/src/sys/compat/ndis/subr_usbd.c#8 (text+ko) ==== @@ -31,7 +31,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/compat/ndis/subr_usbd.c,v 1.14 2009/05/29 18:46:57 thompsa Exp $"); +__FBSDID("$FreeBSD: src/sys/compat/ndis/subr_usbd.c,v 1.15 2009/06/07 19:41:11 thompsa Exp $"); #include #include @@ -520,7 +520,7 @@ int i, j; struct ndis_softc *sc = device_get_softc(dev); struct usb_device *udev = sc->ndisusb_dev; - struct usb_pipe *p = NULL; + struct usb_endpoint *ep = NULL; struct usbd_interface_information *intf; struct usbd_pipe_information *pipe; struct usbd_urb_select_configuration *selconf; @@ -549,14 +549,14 @@ return usbd_usb2urb(ret); } - for (j = 0; (p = usb2_pipe_foreach(udev, p)); j++) { + for (j = 0; (ep = usb2_endpoint_foreach(udev, ep)); j++) { if (j >= intf->uii_numeps) { device_printf(dev, "endpoint %d and above are ignored", intf->uii_numeps); break; } - edesc = p->edesc; + edesc = ep->edesc; pipe = &intf->uii_pipes[j]; pipe->upi_handle = edesc; pipe->upi_epaddr = edesc->bEndpointAddress; ==== //depot/projects/vimage-commit2/src/sys/compat/svr4/svr4_sockio.c#12 (text+ko) ==== @@ -27,9 +27,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/compat/svr4/svr4_sockio.c,v 1.23 2009/02/27 14:12:05 bz Exp $"); - -#include "opt_route.h" +__FBSDID("$FreeBSD: src/sys/compat/svr4/svr4_sockio.c,v 1.24 2009/06/08 19:57:35 bz Exp $"); #include #include ==== //depot/projects/vimage-commit2/src/sys/conf/NOTES#28 (text+ko) ==== @@ -1,4 +1,4 @@ -# $FreeBSD: src/sys/conf/NOTES,v 1.1543 2009/06/01 10:30:00 pjd Exp $ +# $FreeBSD: src/sys/conf/NOTES,v 1.1544 2009/06/08 04:39:48 svn Exp $ # # NOTES -- Lines that can be cut/pasted into kernel and hints configs. # @@ -2110,6 +2110,42 @@ hint.gusc.0.flags="0x13" # +# Following options are intended for debugging/testing purposes: +# +# SND_DEBUG Enable extra debugging code that includes +# sanity checking and possible increase of +# verbosity. +# +# SND_DIAGNOSTIC Simmilar in a spirit of INVARIANTS/DIAGNOSTIC, +# zero tolerance against inconsistencies. +# +# SND_FEEDER_MULTIFORMAT By default, only 16/32 bit feeders are compiled +# in. This options enable most feeder converters +# except for 8bit. WARNING: May bloat the kernel. +# +# SND_FEEDER_FULL_MULTIFORMAT Ditto, but includes 8bit feeders as well. +# +# SND_FEEDER_RATE_HP (feeder_rate) High precision 64bit arithmetic +# as much as possible (the default trying to +# avoid it). Possible slowdown. +# +# SND_PCM_64 (Only applicable for i386/32bit arch) +# Process 32bit samples through 64bit +# integer/arithmetic. Slight increase of dynamic +# range at a cost of possible slowdown. +# +# SND_OLDSTEREO Only 2 channels are allowed, effectively +# disabling multichannel processing. +# +options SND_DEBUG +options SND_DIAGNOSTIC +options SND_FEEDER_MULTIFORMAT +options SND_FEEDER_FULL_MULTIFORMAT +options SND_FEEDER_RATE_HP +options SND_PCM_64 +options SND_OLDSTEREO + +# # IEEE-488 hardware: # pcii: PCIIA cards (uPD7210 based isa cards) # tnt4882: National Instruments PCI-GPIB card. ==== //depot/projects/vimage-commit2/src/sys/conf/files#41 (text+ko) ==== @@ -1,4 +1,4 @@ -# $FreeBSD: src/sys/conf/files,v 1.1414 2009/06/05 19:22:47 luigi Exp $ +# $FreeBSD: src/sys/conf/files,v 1.1415 2009/06/07 19:12:08 ariff Exp $ # # The long compile-with and dependency lines are required because of # limitations in config: backslash-newline doesn't work in strings, and @@ -65,6 +65,21 @@ compile-with "CC='${CC}' AWK=${AWK} sh $S/tools/emu10k1-mkalsa.sh $S/gnu/dev/sound/pci/p17v-alsa.h p17v-alsa%diked.h" \ no-obj no-implicit-rule before-depend \ clean "p17v-alsa%diked.h" +feeder_eq_gen.h optional sound \ + dependency "$S/tools/feeder_eq_mkfilter.awk" \ + compile-with "${AWK} -f $S/tools/feeder_eq_mkfilter.awk -- ${FEEDER_EQ_PRESETS} > feeder_eq_gen.h" \ + no-obj no-implicit-rule before-depend \ + clean "feeder_eq_gen.h" +feeder_rate_gen.h optional sound \ + dependency "$S/tools/feeder_rate_mkfilter.awk" \ + compile-with "${AWK} -f $S/tools/feeder_rate_mkfilter.awk -- ${FEEDER_RATE_PRESETS} > feeder_rate_gen.h" \ + no-obj no-implicit-rule before-depend \ + clean "feeder_rate_gen.h" +snd_fxdiv_gen.h optional sound \ + dependency "$S/tools/snd_fxdiv_gen.awk" \ + compile-with "${AWK} -f $S/tools/snd_fxdiv_gen.awk -- > snd_fxdiv_gen.h" \ + no-obj no-implicit-rule before-depend \ + clean "snd_fxdiv_gen.h" miidevs.h optional miibus | mii \ dependency "$S/tools/miidevs2h.awk $S/dev/mii/miidevs" \ compile-with "${AWK} -f $S/tools/miidevs2h.awk $S/dev/mii/miidevs" \ @@ -1433,16 +1448,28 @@ dev/sound/pcm/ac97.c optional sound dev/sound/pcm/ac97_if.m optional sound dev/sound/pcm/ac97_patch.c optional sound -dev/sound/pcm/buffer.c optional sound +dev/sound/pcm/buffer.c optional sound \ + dependency "snd_fxdiv_gen.h" dev/sound/pcm/channel.c optional sound dev/sound/pcm/channel_if.m optional sound dev/sound/pcm/dsp.c optional sound -dev/sound/pcm/fake.c optional sound dev/sound/pcm/feeder.c optional sound -dev/sound/pcm/feeder_fmt.c optional sound +dev/sound/pcm/feeder_chain.c optional sound +dev/sound/pcm/feeder_eq.c optional sound \ + dependency "feeder_eq_gen.h" \ + dependency "snd_fxdiv_gen.h" dev/sound/pcm/feeder_if.m optional sound -dev/sound/pcm/feeder_rate.c optional sound -dev/sound/pcm/feeder_volume.c optional sound +dev/sound/pcm/feeder_format.c optional sound \ + dependency "snd_fxdiv_gen.h" +dev/sound/pcm/feeder_matrix.c optional sound \ + dependency "snd_fxdiv_gen.h" +dev/sound/pcm/feeder_mixer.c optional sound \ + dependency "snd_fxdiv_gen.h" +dev/sound/pcm/feeder_rate.c optional sound \ + dependency "feeder_rate_gen.h" \ + dependency "snd_fxdiv_gen.h" +dev/sound/pcm/feeder_volume.c optional sound \ + dependency "snd_fxdiv_gen.h" dev/sound/pcm/mixer.c optional sound dev/sound/pcm/mixer_if.m optional sound dev/sound/pcm/sndstat.c optional sound ==== //depot/projects/vimage-commit2/src/sys/conf/files.powerpc#14 (text+ko) ==== @@ -1,7 +1,7 @@ >>> TRUNCATED FOR MAIL (1000 lines) <<< From owner-p4-projects@FreeBSD.ORG Tue Jun 9 08:09:41 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id AA29E106567B; Tue, 9 Jun 2009 08:09:41 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 683CF1065673 for ; Tue, 9 Jun 2009 08:09:41 +0000 (UTC) (envelope-from zec@fer.hr) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 54E418FC18 for ; Tue, 9 Jun 2009 08:09:41 +0000 (UTC) (envelope-from zec@fer.hr) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n5989fDg029235 for ; Tue, 9 Jun 2009 08:09:41 GMT (envelope-from zec@fer.hr) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n5989d8q029233 for perforce@freebsd.org; Tue, 9 Jun 2009 08:09:39 GMT (envelope-from zec@fer.hr) Date: Tue, 9 Jun 2009 08:09:39 GMT Message-Id: <200906090809.n5989d8q029233@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to zec@fer.hr using -f From: Marko Zec To: Perforce Change Reviews Cc: Subject: PERFORCE change 163867 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 09 Jun 2009 08:09:42 -0000 http://perforce.freebsd.org/chv.cgi?CH=163867 Change 163867 by zec@zec_tpx32 on 2009/06/09 08:09:17 IFC @ 163863 Affected files ... .. //depot/projects/vimage/src/share/man/man4/acpi.4#2 integrate .. //depot/projects/vimage/src/share/man/man4/gif.4#2 integrate .. //depot/projects/vimage/src/share/man/man4/if_bridge.4#3 integrate .. //depot/projects/vimage/src/share/man/man4/ral.4#2 integrate .. //depot/projects/vimage/src/share/man/man4/rum.4#3 integrate .. //depot/projects/vimage/src/share/man/man4/ural.4#2 integrate .. //depot/projects/vimage/src/share/man/man5/fstab.5#3 integrate .. //depot/projects/vimage/src/share/man/man9/Makefile#8 integrate .. //depot/projects/vimage/src/share/man/man9/netisr.9#1 branch .. //depot/projects/vimage/src/sys/amd64/acpica/OsdEnvironment.c#3 integrate .. //depot/projects/vimage/src/sys/amd64/acpica/acpi_machdep.c#4 integrate .. //depot/projects/vimage/src/sys/amd64/acpica/acpi_wakeup.c#4 integrate .. //depot/projects/vimage/src/sys/amd64/acpica/madt.c#7 integrate .. //depot/projects/vimage/src/sys/amd64/amd64/local_apic.c#19 integrate .. //depot/projects/vimage/src/sys/amd64/amd64/machdep.c#19 integrate .. //depot/projects/vimage/src/sys/amd64/amd64/pmap.c#29 integrate .. //depot/projects/vimage/src/sys/amd64/amd64/support.S#6 integrate .. //depot/projects/vimage/src/sys/amd64/conf/NOTES#19 integrate .. //depot/projects/vimage/src/sys/amd64/include/param.h#8 integrate .. //depot/projects/vimage/src/sys/amd64/isa/clock.c#12 integrate .. //depot/projects/vimage/src/sys/arm/arm/pmap.c#19 integrate .. //depot/projects/vimage/src/sys/boot/i386/libi386/Makefile#5 integrate .. //depot/projects/vimage/src/sys/boot/i386/libi386/biosacpi.c#3 integrate .. //depot/projects/vimage/src/sys/boot/i386/libi386/biosdisk.c#8 integrate .. //depot/projects/vimage/src/sys/boot/i386/libi386/biospnp.c#2 integrate .. //depot/projects/vimage/src/sys/boot/ia64/ski/acpi_stub.c#3 integrate .. //depot/projects/vimage/src/sys/compat/linprocfs/linprocfs.c#36 integrate .. //depot/projects/vimage/src/sys/compat/linux/linux_file.c#15 integrate .. //depot/projects/vimage/src/sys/compat/linux/linux_getcwd.c#7 integrate .. //depot/projects/vimage/src/sys/compat/linux/linux_ioctl.c#22 integrate .. //depot/projects/vimage/src/sys/compat/linux/linux_misc.c#33 integrate .. //depot/projects/vimage/src/sys/compat/linux/linux_stats.c#13 integrate .. //depot/projects/vimage/src/sys/compat/ndis/subr_usbd.c#9 integrate .. //depot/projects/vimage/src/sys/compat/svr4/svr4_fcntl.c#8 integrate .. //depot/projects/vimage/src/sys/compat/svr4/svr4_misc.c#10 integrate .. //depot/projects/vimage/src/sys/compat/svr4/svr4_sockio.c#12 integrate .. //depot/projects/vimage/src/sys/conf/NOTES#54 integrate .. //depot/projects/vimage/src/sys/conf/files#71 integrate .. //depot/projects/vimage/src/sys/conf/files.powerpc#24 integrate .. //depot/projects/vimage/src/sys/conf/options#52 integrate .. //depot/projects/vimage/src/sys/contrib/altq/altq/altq_subr.c#20 integrate .. //depot/projects/vimage/src/sys/contrib/dev/acpica/CHANGES.txt#3 delete .. //depot/projects/vimage/src/sys/contrib/dev/acpica/acapps.h#3 delete .. //depot/projects/vimage/src/sys/contrib/dev/acpica/acconfig.h#3 delete .. //depot/projects/vimage/src/sys/contrib/dev/acpica/acdebug.h#3 delete .. //depot/projects/vimage/src/sys/contrib/dev/acpica/acdisasm.h#3 delete .. //depot/projects/vimage/src/sys/contrib/dev/acpica/acdispat.h#3 delete .. //depot/projects/vimage/src/sys/contrib/dev/acpica/acefi.h#3 delete .. //depot/projects/vimage/src/sys/contrib/dev/acpica/acenv.h#3 delete .. //depot/projects/vimage/src/sys/contrib/dev/acpica/acevents.h#3 delete .. //depot/projects/vimage/src/sys/contrib/dev/acpica/acexcep.h#3 delete .. //depot/projects/vimage/src/sys/contrib/dev/acpica/acfreebsd.h#3 delete .. //depot/projects/vimage/src/sys/contrib/dev/acpica/acgcc.h#3 delete .. //depot/projects/vimage/src/sys/contrib/dev/acpica/acglobal.h#3 delete .. //depot/projects/vimage/src/sys/contrib/dev/acpica/achware.h#3 delete .. //depot/projects/vimage/src/sys/contrib/dev/acpica/acinterp.h#3 delete .. //depot/projects/vimage/src/sys/contrib/dev/acpica/aclocal.h#3 delete .. //depot/projects/vimage/src/sys/contrib/dev/acpica/acmacros.h#3 delete .. //depot/projects/vimage/src/sys/contrib/dev/acpica/acnames.h#3 delete .. //depot/projects/vimage/src/sys/contrib/dev/acpica/acnamesp.h#3 delete .. //depot/projects/vimage/src/sys/contrib/dev/acpica/acobject.h#3 delete .. //depot/projects/vimage/src/sys/contrib/dev/acpica/acopcode.h#3 delete .. //depot/projects/vimage/src/sys/contrib/dev/acpica/acoutput.h#3 delete .. //depot/projects/vimage/src/sys/contrib/dev/acpica/acparser.h#3 delete .. //depot/projects/vimage/src/sys/contrib/dev/acpica/acpi.h#3 delete .. //depot/projects/vimage/src/sys/contrib/dev/acpica/acpica_prep.sh#3 integrate .. //depot/projects/vimage/src/sys/contrib/dev/acpica/acpiosxf.h#3 delete .. //depot/projects/vimage/src/sys/contrib/dev/acpica/acpixf.h#3 delete .. //depot/projects/vimage/src/sys/contrib/dev/acpica/acresrc.h#3 delete .. //depot/projects/vimage/src/sys/contrib/dev/acpica/acstruct.h#3 delete .. //depot/projects/vimage/src/sys/contrib/dev/acpica/actables.h#3 delete .. //depot/projects/vimage/src/sys/contrib/dev/acpica/actbl.h#3 delete .. //depot/projects/vimage/src/sys/contrib/dev/acpica/actbl1.h#3 delete .. //depot/projects/vimage/src/sys/contrib/dev/acpica/actbl2.h#3 delete .. //depot/projects/vimage/src/sys/contrib/dev/acpica/actypes.h#3 delete .. //depot/projects/vimage/src/sys/contrib/dev/acpica/acutils.h#3 delete .. //depot/projects/vimage/src/sys/contrib/dev/acpica/aecommon.h#3 delete .. //depot/projects/vimage/src/sys/contrib/dev/acpica/amlcode.h#3 delete .. //depot/projects/vimage/src/sys/contrib/dev/acpica/amlresrc.h#3 delete .. //depot/projects/vimage/src/sys/contrib/dev/acpica/changes.txt#1 branch .. //depot/projects/vimage/src/sys/contrib/dev/acpica/common/adfile.c#2 integrate .. //depot/projects/vimage/src/sys/contrib/dev/acpica/common/adisasm.c#3 integrate .. //depot/projects/vimage/src/sys/contrib/dev/acpica/common/adwalk.c#2 integrate .. //depot/projects/vimage/src/sys/contrib/dev/acpica/common/dmrestag.c#2 integrate .. //depot/projects/vimage/src/sys/contrib/dev/acpica/common/dmtable.c#2 integrate .. //depot/projects/vimage/src/sys/contrib/dev/acpica/common/dmtbdump.c#2 integrate .. //depot/projects/vimage/src/sys/contrib/dev/acpica/common/dmtbinfo.c#2 integrate .. //depot/projects/vimage/src/sys/contrib/dev/acpica/common/getopt.c#3 integrate .. //depot/projects/vimage/src/sys/contrib/dev/acpica/compiler/aslanalyze.c#3 integrate .. //depot/projects/vimage/src/sys/contrib/dev/acpica/compiler/aslcodegen.c#3 integrate .. //depot/projects/vimage/src/sys/contrib/dev/acpica/compiler/aslcompile.c#3 integrate .. //depot/projects/vimage/src/sys/contrib/dev/acpica/compiler/aslcompiler.h#3 integrate .. //depot/projects/vimage/src/sys/contrib/dev/acpica/compiler/aslcompiler.l#3 integrate .. //depot/projects/vimage/src/sys/contrib/dev/acpica/compiler/aslcompiler.y#3 integrate .. //depot/projects/vimage/src/sys/contrib/dev/acpica/compiler/asldefine.h#3 integrate .. //depot/projects/vimage/src/sys/contrib/dev/acpica/compiler/aslerror.c#3 integrate .. //depot/projects/vimage/src/sys/contrib/dev/acpica/compiler/aslfiles.c#3 integrate .. //depot/projects/vimage/src/sys/contrib/dev/acpica/compiler/aslfold.c#3 integrate .. //depot/projects/vimage/src/sys/contrib/dev/acpica/compiler/aslglobal.h#3 integrate .. //depot/projects/vimage/src/sys/contrib/dev/acpica/compiler/asllength.c#3 integrate .. //depot/projects/vimage/src/sys/contrib/dev/acpica/compiler/asllisting.c#3 integrate .. //depot/projects/vimage/src/sys/contrib/dev/acpica/compiler/aslload.c#3 integrate .. //depot/projects/vimage/src/sys/contrib/dev/acpica/compiler/asllookup.c#3 integrate .. //depot/projects/vimage/src/sys/contrib/dev/acpica/compiler/aslmain.c#3 integrate .. //depot/projects/vimage/src/sys/contrib/dev/acpica/compiler/aslmap.c#3 integrate .. //depot/projects/vimage/src/sys/contrib/dev/acpica/compiler/aslopcodes.c#3 integrate .. //depot/projects/vimage/src/sys/contrib/dev/acpica/compiler/asloperands.c#3 integrate .. //depot/projects/vimage/src/sys/contrib/dev/acpica/compiler/aslopt.c#3 integrate .. //depot/projects/vimage/src/sys/contrib/dev/acpica/compiler/aslresource.c#3 integrate .. //depot/projects/vimage/src/sys/contrib/dev/acpica/compiler/aslrestype1.c#3 integrate .. //depot/projects/vimage/src/sys/contrib/dev/acpica/compiler/aslrestype2.c#3 integrate .. //depot/projects/vimage/src/sys/contrib/dev/acpica/compiler/aslstartup.c#1 branch .. //depot/projects/vimage/src/sys/contrib/dev/acpica/compiler/aslstubs.c#3 integrate .. //depot/projects/vimage/src/sys/contrib/dev/acpica/compiler/asltransform.c#3 integrate .. //depot/projects/vimage/src/sys/contrib/dev/acpica/compiler/asltree.c#3 integrate .. //depot/projects/vimage/src/sys/contrib/dev/acpica/compiler/asltypes.h#3 integrate .. //depot/projects/vimage/src/sys/contrib/dev/acpica/compiler/aslutils.c#3 integrate .. //depot/projects/vimage/src/sys/contrib/dev/acpica/dbcmds.c#3 delete .. //depot/projects/vimage/src/sys/contrib/dev/acpica/dbdisply.c#3 delete .. //depot/projects/vimage/src/sys/contrib/dev/acpica/dbexec.c#3 delete .. //depot/projects/vimage/src/sys/contrib/dev/acpica/dbfileio.c#3 delete .. //depot/projects/vimage/src/sys/contrib/dev/acpica/dbhistry.c#3 delete .. //depot/projects/vimage/src/sys/contrib/dev/acpica/dbinput.c#3 delete .. //depot/projects/vimage/src/sys/contrib/dev/acpica/dbstats.c#3 delete .. //depot/projects/vimage/src/sys/contrib/dev/acpica/dbutils.c#3 delete .. //depot/projects/vimage/src/sys/contrib/dev/acpica/dbxface.c#3 delete .. //depot/projects/vimage/src/sys/contrib/dev/acpica/debugger/dbcmds.c#1 branch .. //depot/projects/vimage/src/sys/contrib/dev/acpica/debugger/dbdisply.c#1 branch .. //depot/projects/vimage/src/sys/contrib/dev/acpica/debugger/dbexec.c#1 branch .. //depot/projects/vimage/src/sys/contrib/dev/acpica/debugger/dbfileio.c#1 branch .. //depot/projects/vimage/src/sys/contrib/dev/acpica/debugger/dbhistry.c#1 branch .. //depot/projects/vimage/src/sys/contrib/dev/acpica/debugger/dbinput.c#1 branch .. //depot/projects/vimage/src/sys/contrib/dev/acpica/debugger/dbstats.c#1 branch .. //depot/projects/vimage/src/sys/contrib/dev/acpica/debugger/dbutils.c#1 branch .. //depot/projects/vimage/src/sys/contrib/dev/acpica/debugger/dbxface.c#1 branch .. //depot/projects/vimage/src/sys/contrib/dev/acpica/disassembler/dmbuffer.c#1 branch .. //depot/projects/vimage/src/sys/contrib/dev/acpica/disassembler/dmnames.c#1 branch .. //depot/projects/vimage/src/sys/contrib/dev/acpica/disassembler/dmobject.c#1 branch .. //depot/projects/vimage/src/sys/contrib/dev/acpica/disassembler/dmopcode.c#1 branch .. //depot/projects/vimage/src/sys/contrib/dev/acpica/disassembler/dmresrc.c#1 branch .. //depot/projects/vimage/src/sys/contrib/dev/acpica/disassembler/dmresrcl.c#1 branch .. //depot/projects/vimage/src/sys/contrib/dev/acpica/disassembler/dmresrcs.c#1 branch .. //depot/projects/vimage/src/sys/contrib/dev/acpica/disassembler/dmutils.c#1 branch .. //depot/projects/vimage/src/sys/contrib/dev/acpica/disassembler/dmwalk.c#1 branch .. //depot/projects/vimage/src/sys/contrib/dev/acpica/dispatcher/dsfield.c#1 branch .. //depot/projects/vimage/src/sys/contrib/dev/acpica/dispatcher/dsinit.c#1 branch .. //depot/projects/vimage/src/sys/contrib/dev/acpica/dispatcher/dsmethod.c#1 branch .. //depot/projects/vimage/src/sys/contrib/dev/acpica/dispatcher/dsmthdat.c#1 branch .. //depot/projects/vimage/src/sys/contrib/dev/acpica/dispatcher/dsobject.c#1 branch .. //depot/projects/vimage/src/sys/contrib/dev/acpica/dispatcher/dsopcode.c#1 branch .. //depot/projects/vimage/src/sys/contrib/dev/acpica/dispatcher/dsutils.c#1 branch .. //depot/projects/vimage/src/sys/contrib/dev/acpica/dispatcher/dswexec.c#1 branch .. //depot/projects/vimage/src/sys/contrib/dev/acpica/dispatcher/dswload.c#1 branch .. //depot/projects/vimage/src/sys/contrib/dev/acpica/dispatcher/dswscope.c#1 branch .. //depot/projects/vimage/src/sys/contrib/dev/acpica/dispatcher/dswstate.c#1 branch .. //depot/projects/vimage/src/sys/contrib/dev/acpica/dmbuffer.c#3 delete .. //depot/projects/vimage/src/sys/contrib/dev/acpica/dmnames.c#3 delete .. //depot/projects/vimage/src/sys/contrib/dev/acpica/dmobject.c#3 delete .. //depot/projects/vimage/src/sys/contrib/dev/acpica/dmopcode.c#3 delete .. //depot/projects/vimage/src/sys/contrib/dev/acpica/dmresrc.c#3 delete .. //depot/projects/vimage/src/sys/contrib/dev/acpica/dmresrcl.c#3 delete .. //depot/projects/vimage/src/sys/contrib/dev/acpica/dmresrcs.c#3 delete .. //depot/projects/vimage/src/sys/contrib/dev/acpica/dmutils.c#3 delete .. //depot/projects/vimage/src/sys/contrib/dev/acpica/dmwalk.c#3 delete .. //depot/projects/vimage/src/sys/contrib/dev/acpica/dsfield.c#3 delete .. //depot/projects/vimage/src/sys/contrib/dev/acpica/dsinit.c#3 delete .. //depot/projects/vimage/src/sys/contrib/dev/acpica/dsmethod.c#3 delete .. //depot/projects/vimage/src/sys/contrib/dev/acpica/dsmthdat.c#3 delete .. //depot/projects/vimage/src/sys/contrib/dev/acpica/dsobject.c#3 delete .. //depot/projects/vimage/src/sys/contrib/dev/acpica/dsopcode.c#3 delete .. //depot/projects/vimage/src/sys/contrib/dev/acpica/dsutils.c#3 delete .. //depot/projects/vimage/src/sys/contrib/dev/acpica/dswexec.c#3 delete .. //depot/projects/vimage/src/sys/contrib/dev/acpica/dswload.c#3 delete .. //depot/projects/vimage/src/sys/contrib/dev/acpica/dswscope.c#3 delete .. //depot/projects/vimage/src/sys/contrib/dev/acpica/dswstate.c#3 delete .. //depot/projects/vimage/src/sys/contrib/dev/acpica/events/evevent.c#1 branch .. //depot/projects/vimage/src/sys/contrib/dev/acpica/events/evgpe.c#1 branch .. //depot/projects/vimage/src/sys/contrib/dev/acpica/events/evgpeblk.c#1 branch .. //depot/projects/vimage/src/sys/contrib/dev/acpica/events/evmisc.c#1 branch .. //depot/projects/vimage/src/sys/contrib/dev/acpica/events/evregion.c#1 branch .. //depot/projects/vimage/src/sys/contrib/dev/acpica/events/evrgnini.c#1 branch .. //depot/projects/vimage/src/sys/contrib/dev/acpica/events/evsci.c#1 branch .. //depot/projects/vimage/src/sys/contrib/dev/acpica/events/evxface.c#1 branch .. //depot/projects/vimage/src/sys/contrib/dev/acpica/events/evxfevnt.c#1 branch .. //depot/projects/vimage/src/sys/contrib/dev/acpica/events/evxfregn.c#1 branch .. //depot/projects/vimage/src/sys/contrib/dev/acpica/evevent.c#3 delete .. //depot/projects/vimage/src/sys/contrib/dev/acpica/evgpe.c#4 delete .. //depot/projects/vimage/src/sys/contrib/dev/acpica/evgpeblk.c#3 delete .. //depot/projects/vimage/src/sys/contrib/dev/acpica/evmisc.c#4 delete .. //depot/projects/vimage/src/sys/contrib/dev/acpica/evregion.c#3 delete .. //depot/projects/vimage/src/sys/contrib/dev/acpica/evrgnini.c#3 delete .. //depot/projects/vimage/src/sys/contrib/dev/acpica/evsci.c#3 delete .. //depot/projects/vimage/src/sys/contrib/dev/acpica/evxface.c#4 delete .. //depot/projects/vimage/src/sys/contrib/dev/acpica/evxfevnt.c#3 delete .. //depot/projects/vimage/src/sys/contrib/dev/acpica/evxfregn.c#3 delete .. //depot/projects/vimage/src/sys/contrib/dev/acpica/exconfig.c#3 delete .. //depot/projects/vimage/src/sys/contrib/dev/acpica/exconvrt.c#3 delete .. //depot/projects/vimage/src/sys/contrib/dev/acpica/excreate.c#3 delete .. //depot/projects/vimage/src/sys/contrib/dev/acpica/exdump.c#3 delete .. //depot/projects/vimage/src/sys/contrib/dev/acpica/executer/exconfig.c#1 branch .. //depot/projects/vimage/src/sys/contrib/dev/acpica/executer/exconvrt.c#1 branch .. //depot/projects/vimage/src/sys/contrib/dev/acpica/executer/excreate.c#1 branch .. //depot/projects/vimage/src/sys/contrib/dev/acpica/executer/exdump.c#1 branch .. //depot/projects/vimage/src/sys/contrib/dev/acpica/executer/exfield.c#1 branch .. //depot/projects/vimage/src/sys/contrib/dev/acpica/executer/exfldio.c#1 branch .. //depot/projects/vimage/src/sys/contrib/dev/acpica/executer/exmisc.c#1 branch .. //depot/projects/vimage/src/sys/contrib/dev/acpica/executer/exmutex.c#1 branch .. //depot/projects/vimage/src/sys/contrib/dev/acpica/executer/exnames.c#1 branch .. //depot/projects/vimage/src/sys/contrib/dev/acpica/executer/exoparg1.c#1 branch .. //depot/projects/vimage/src/sys/contrib/dev/acpica/executer/exoparg2.c#1 branch .. //depot/projects/vimage/src/sys/contrib/dev/acpica/executer/exoparg3.c#1 branch .. //depot/projects/vimage/src/sys/contrib/dev/acpica/executer/exoparg6.c#1 branch .. //depot/projects/vimage/src/sys/contrib/dev/acpica/executer/exprep.c#1 branch .. //depot/projects/vimage/src/sys/contrib/dev/acpica/executer/exregion.c#1 branch .. //depot/projects/vimage/src/sys/contrib/dev/acpica/executer/exresnte.c#1 branch .. //depot/projects/vimage/src/sys/contrib/dev/acpica/executer/exresolv.c#1 branch .. //depot/projects/vimage/src/sys/contrib/dev/acpica/executer/exresop.c#1 branch .. //depot/projects/vimage/src/sys/contrib/dev/acpica/executer/exstore.c#1 branch .. //depot/projects/vimage/src/sys/contrib/dev/acpica/executer/exstoren.c#1 branch .. //depot/projects/vimage/src/sys/contrib/dev/acpica/executer/exstorob.c#1 branch .. //depot/projects/vimage/src/sys/contrib/dev/acpica/executer/exsystem.c#1 branch .. //depot/projects/vimage/src/sys/contrib/dev/acpica/executer/exutils.c#1 branch .. //depot/projects/vimage/src/sys/contrib/dev/acpica/exfield.c#3 delete .. //depot/projects/vimage/src/sys/contrib/dev/acpica/exfldio.c#3 delete .. //depot/projects/vimage/src/sys/contrib/dev/acpica/exmisc.c#3 delete .. //depot/projects/vimage/src/sys/contrib/dev/acpica/exmutex.c#3 delete .. //depot/projects/vimage/src/sys/contrib/dev/acpica/exnames.c#3 delete .. //depot/projects/vimage/src/sys/contrib/dev/acpica/exoparg1.c#3 delete .. //depot/projects/vimage/src/sys/contrib/dev/acpica/exoparg2.c#3 delete .. //depot/projects/vimage/src/sys/contrib/dev/acpica/exoparg3.c#3 delete .. //depot/projects/vimage/src/sys/contrib/dev/acpica/exoparg6.c#3 delete .. //depot/projects/vimage/src/sys/contrib/dev/acpica/exprep.c#3 delete .. //depot/projects/vimage/src/sys/contrib/dev/acpica/exregion.c#3 delete .. //depot/projects/vimage/src/sys/contrib/dev/acpica/exresnte.c#3 delete .. //depot/projects/vimage/src/sys/contrib/dev/acpica/exresolv.c#3 delete .. //depot/projects/vimage/src/sys/contrib/dev/acpica/exresop.c#3 delete .. //depot/projects/vimage/src/sys/contrib/dev/acpica/exstore.c#3 delete .. //depot/projects/vimage/src/sys/contrib/dev/acpica/exstoren.c#3 delete .. //depot/projects/vimage/src/sys/contrib/dev/acpica/exstorob.c#3 delete .. //depot/projects/vimage/src/sys/contrib/dev/acpica/exsystem.c#3 delete .. //depot/projects/vimage/src/sys/contrib/dev/acpica/exutils.c#3 delete .. //depot/projects/vimage/src/sys/contrib/dev/acpica/hardware/hwacpi.c#1 branch .. //depot/projects/vimage/src/sys/contrib/dev/acpica/hardware/hwgpe.c#1 branch .. //depot/projects/vimage/src/sys/contrib/dev/acpica/hardware/hwregs.c#1 branch .. //depot/projects/vimage/src/sys/contrib/dev/acpica/hardware/hwsleep.c#1 branch .. //depot/projects/vimage/src/sys/contrib/dev/acpica/hardware/hwtimer.c#1 branch .. //depot/projects/vimage/src/sys/contrib/dev/acpica/hardware/hwvalid.c#1 branch .. //depot/projects/vimage/src/sys/contrib/dev/acpica/hardware/hwxface.c#1 branch .. //depot/projects/vimage/src/sys/contrib/dev/acpica/hwacpi.c#3 delete .. //depot/projects/vimage/src/sys/contrib/dev/acpica/hwgpe.c#3 delete .. //depot/projects/vimage/src/sys/contrib/dev/acpica/hwregs.c#3 delete .. //depot/projects/vimage/src/sys/contrib/dev/acpica/hwsleep.c#3 delete .. //depot/projects/vimage/src/sys/contrib/dev/acpica/hwtimer.c#3 delete .. //depot/projects/vimage/src/sys/contrib/dev/acpica/include/acapps.h#1 branch .. //depot/projects/vimage/src/sys/contrib/dev/acpica/include/accommon.h#1 branch .. //depot/projects/vimage/src/sys/contrib/dev/acpica/include/acconfig.h#1 branch .. //depot/projects/vimage/src/sys/contrib/dev/acpica/include/acdebug.h#1 branch .. //depot/projects/vimage/src/sys/contrib/dev/acpica/include/acdisasm.h#1 branch .. //depot/projects/vimage/src/sys/contrib/dev/acpica/include/acdispat.h#1 branch .. //depot/projects/vimage/src/sys/contrib/dev/acpica/include/acevents.h#1 branch .. //depot/projects/vimage/src/sys/contrib/dev/acpica/include/acexcep.h#1 branch .. //depot/projects/vimage/src/sys/contrib/dev/acpica/include/acglobal.h#1 branch .. //depot/projects/vimage/src/sys/contrib/dev/acpica/include/achware.h#1 branch .. //depot/projects/vimage/src/sys/contrib/dev/acpica/include/acinterp.h#1 branch .. //depot/projects/vimage/src/sys/contrib/dev/acpica/include/aclocal.h#1 branch .. //depot/projects/vimage/src/sys/contrib/dev/acpica/include/acmacros.h#1 branch .. //depot/projects/vimage/src/sys/contrib/dev/acpica/include/acnames.h#1 branch .. //depot/projects/vimage/src/sys/contrib/dev/acpica/include/acnamesp.h#1 branch .. //depot/projects/vimage/src/sys/contrib/dev/acpica/include/acobject.h#1 branch .. //depot/projects/vimage/src/sys/contrib/dev/acpica/include/acopcode.h#1 branch .. //depot/projects/vimage/src/sys/contrib/dev/acpica/include/acoutput.h#1 branch .. //depot/projects/vimage/src/sys/contrib/dev/acpica/include/acparser.h#1 branch .. //depot/projects/vimage/src/sys/contrib/dev/acpica/include/acpi.h#1 branch .. //depot/projects/vimage/src/sys/contrib/dev/acpica/include/acpiosxf.h#1 branch .. //depot/projects/vimage/src/sys/contrib/dev/acpica/include/acpixf.h#1 branch .. //depot/projects/vimage/src/sys/contrib/dev/acpica/include/acpredef.h#1 branch .. //depot/projects/vimage/src/sys/contrib/dev/acpica/include/acresrc.h#1 branch .. //depot/projects/vimage/src/sys/contrib/dev/acpica/include/acrestyp.h#1 branch .. //depot/projects/vimage/src/sys/contrib/dev/acpica/include/acstruct.h#1 branch .. //depot/projects/vimage/src/sys/contrib/dev/acpica/include/actables.h#1 branch .. //depot/projects/vimage/src/sys/contrib/dev/acpica/include/actbl.h#1 branch .. //depot/projects/vimage/src/sys/contrib/dev/acpica/include/actbl1.h#1 branch .. //depot/projects/vimage/src/sys/contrib/dev/acpica/include/actypes.h#1 branch .. //depot/projects/vimage/src/sys/contrib/dev/acpica/include/acutils.h#1 branch .. //depot/projects/vimage/src/sys/contrib/dev/acpica/include/amlcode.h#1 branch .. //depot/projects/vimage/src/sys/contrib/dev/acpica/include/amlresrc.h#1 branch .. //depot/projects/vimage/src/sys/contrib/dev/acpica/include/platform/acenv.h#1 branch .. //depot/projects/vimage/src/sys/contrib/dev/acpica/include/platform/acfreebsd.h#1 branch .. //depot/projects/vimage/src/sys/contrib/dev/acpica/include/platform/acgcc.h#1 branch .. //depot/projects/vimage/src/sys/contrib/dev/acpica/namespace/nsaccess.c#1 branch .. //depot/projects/vimage/src/sys/contrib/dev/acpica/namespace/nsalloc.c#1 branch .. //depot/projects/vimage/src/sys/contrib/dev/acpica/namespace/nsdump.c#1 branch .. //depot/projects/vimage/src/sys/contrib/dev/acpica/namespace/nsdumpdv.c#1 branch .. //depot/projects/vimage/src/sys/contrib/dev/acpica/namespace/nseval.c#1 branch .. //depot/projects/vimage/src/sys/contrib/dev/acpica/namespace/nsinit.c#1 branch .. //depot/projects/vimage/src/sys/contrib/dev/acpica/namespace/nsload.c#1 branch .. //depot/projects/vimage/src/sys/contrib/dev/acpica/namespace/nsnames.c#1 branch .. //depot/projects/vimage/src/sys/contrib/dev/acpica/namespace/nsobject.c#1 branch .. //depot/projects/vimage/src/sys/contrib/dev/acpica/namespace/nsparse.c#1 branch .. //depot/projects/vimage/src/sys/contrib/dev/acpica/namespace/nspredef.c#1 branch .. //depot/projects/vimage/src/sys/contrib/dev/acpica/namespace/nssearch.c#1 branch .. //depot/projects/vimage/src/sys/contrib/dev/acpica/namespace/nsutils.c#1 branch .. //depot/projects/vimage/src/sys/contrib/dev/acpica/namespace/nswalk.c#1 branch .. //depot/projects/vimage/src/sys/contrib/dev/acpica/namespace/nsxfeval.c#1 branch .. //depot/projects/vimage/src/sys/contrib/dev/acpica/namespace/nsxfname.c#1 branch .. //depot/projects/vimage/src/sys/contrib/dev/acpica/namespace/nsxfobj.c#1 branch .. //depot/projects/vimage/src/sys/contrib/dev/acpica/nsaccess.c#3 delete .. //depot/projects/vimage/src/sys/contrib/dev/acpica/nsalloc.c#3 delete .. //depot/projects/vimage/src/sys/contrib/dev/acpica/nsdump.c#3 delete .. //depot/projects/vimage/src/sys/contrib/dev/acpica/nsdumpdv.c#3 delete .. //depot/projects/vimage/src/sys/contrib/dev/acpica/nseval.c#3 delete .. //depot/projects/vimage/src/sys/contrib/dev/acpica/nsinit.c#3 delete .. //depot/projects/vimage/src/sys/contrib/dev/acpica/nsload.c#3 delete .. //depot/projects/vimage/src/sys/contrib/dev/acpica/nsnames.c#3 delete .. //depot/projects/vimage/src/sys/contrib/dev/acpica/nsobject.c#3 delete .. //depot/projects/vimage/src/sys/contrib/dev/acpica/nsparse.c#3 delete .. //depot/projects/vimage/src/sys/contrib/dev/acpica/nssearch.c#3 delete .. //depot/projects/vimage/src/sys/contrib/dev/acpica/nsutils.c#3 delete .. //depot/projects/vimage/src/sys/contrib/dev/acpica/nswalk.c#3 delete .. //depot/projects/vimage/src/sys/contrib/dev/acpica/nsxfeval.c#3 delete .. //depot/projects/vimage/src/sys/contrib/dev/acpica/nsxfname.c#3 delete .. //depot/projects/vimage/src/sys/contrib/dev/acpica/nsxfobj.c#3 delete .. //depot/projects/vimage/src/sys/contrib/dev/acpica/osunixxf.c#3 integrate .. //depot/projects/vimage/src/sys/contrib/dev/acpica/parser/psargs.c#1 branch .. //depot/projects/vimage/src/sys/contrib/dev/acpica/parser/psloop.c#1 branch .. //depot/projects/vimage/src/sys/contrib/dev/acpica/parser/psopcode.c#1 branch .. //depot/projects/vimage/src/sys/contrib/dev/acpica/parser/psparse.c#1 branch .. //depot/projects/vimage/src/sys/contrib/dev/acpica/parser/psscope.c#1 branch .. //depot/projects/vimage/src/sys/contrib/dev/acpica/parser/pstree.c#1 branch .. //depot/projects/vimage/src/sys/contrib/dev/acpica/parser/psutils.c#1 branch .. //depot/projects/vimage/src/sys/contrib/dev/acpica/parser/pswalk.c#1 branch .. //depot/projects/vimage/src/sys/contrib/dev/acpica/parser/psxface.c#1 branch .. //depot/projects/vimage/src/sys/contrib/dev/acpica/psargs.c#3 delete .. //depot/projects/vimage/src/sys/contrib/dev/acpica/psloop.c#3 delete .. //depot/projects/vimage/src/sys/contrib/dev/acpica/psopcode.c#3 delete .. //depot/projects/vimage/src/sys/contrib/dev/acpica/psparse.c#3 delete .. //depot/projects/vimage/src/sys/contrib/dev/acpica/psscope.c#3 delete .. //depot/projects/vimage/src/sys/contrib/dev/acpica/pstree.c#3 delete .. //depot/projects/vimage/src/sys/contrib/dev/acpica/psutils.c#3 delete .. //depot/projects/vimage/src/sys/contrib/dev/acpica/pswalk.c#3 delete .. //depot/projects/vimage/src/sys/contrib/dev/acpica/psxface.c#3 delete .. //depot/projects/vimage/src/sys/contrib/dev/acpica/resources/rsaddr.c#1 branch .. //depot/projects/vimage/src/sys/contrib/dev/acpica/resources/rscalc.c#1 branch .. //depot/projects/vimage/src/sys/contrib/dev/acpica/resources/rscreate.c#1 branch .. //depot/projects/vimage/src/sys/contrib/dev/acpica/resources/rsdump.c#1 branch .. //depot/projects/vimage/src/sys/contrib/dev/acpica/resources/rsinfo.c#1 branch .. //depot/projects/vimage/src/sys/contrib/dev/acpica/resources/rsio.c#1 branch .. //depot/projects/vimage/src/sys/contrib/dev/acpica/resources/rsirq.c#1 branch .. //depot/projects/vimage/src/sys/contrib/dev/acpica/resources/rslist.c#1 branch .. //depot/projects/vimage/src/sys/contrib/dev/acpica/resources/rsmemory.c#1 branch .. //depot/projects/vimage/src/sys/contrib/dev/acpica/resources/rsmisc.c#1 branch .. //depot/projects/vimage/src/sys/contrib/dev/acpica/resources/rsutils.c#1 branch .. //depot/projects/vimage/src/sys/contrib/dev/acpica/resources/rsxface.c#1 branch .. //depot/projects/vimage/src/sys/contrib/dev/acpica/rsaddr.c#3 delete .. //depot/projects/vimage/src/sys/contrib/dev/acpica/rscalc.c#3 delete .. //depot/projects/vimage/src/sys/contrib/dev/acpica/rscreate.c#3 delete .. //depot/projects/vimage/src/sys/contrib/dev/acpica/rsdump.c#3 delete .. //depot/projects/vimage/src/sys/contrib/dev/acpica/rsinfo.c#3 delete .. //depot/projects/vimage/src/sys/contrib/dev/acpica/rsio.c#3 delete .. //depot/projects/vimage/src/sys/contrib/dev/acpica/rsirq.c#3 delete .. //depot/projects/vimage/src/sys/contrib/dev/acpica/rslist.c#3 delete .. //depot/projects/vimage/src/sys/contrib/dev/acpica/rsmemory.c#3 delete .. //depot/projects/vimage/src/sys/contrib/dev/acpica/rsmisc.c#3 delete .. //depot/projects/vimage/src/sys/contrib/dev/acpica/rsutils.c#3 delete .. //depot/projects/vimage/src/sys/contrib/dev/acpica/rsxface.c#3 delete .. //depot/projects/vimage/src/sys/contrib/dev/acpica/tables/tbfadt.c#1 branch .. //depot/projects/vimage/src/sys/contrib/dev/acpica/tables/tbfind.c#1 branch .. //depot/projects/vimage/src/sys/contrib/dev/acpica/tables/tbinstal.c#1 branch .. //depot/projects/vimage/src/sys/contrib/dev/acpica/tables/tbutils.c#1 branch .. //depot/projects/vimage/src/sys/contrib/dev/acpica/tables/tbxface.c#1 branch .. //depot/projects/vimage/src/sys/contrib/dev/acpica/tables/tbxfroot.c#1 branch .. //depot/projects/vimage/src/sys/contrib/dev/acpica/tbfadt.c#2 delete .. //depot/projects/vimage/src/sys/contrib/dev/acpica/tbfind.c#2 delete .. //depot/projects/vimage/src/sys/contrib/dev/acpica/tbinstal.c#3 delete .. //depot/projects/vimage/src/sys/contrib/dev/acpica/tbutils.c#3 delete .. //depot/projects/vimage/src/sys/contrib/dev/acpica/tbxface.c#3 delete .. //depot/projects/vimage/src/sys/contrib/dev/acpica/tbxfroot.c#3 delete .. //depot/projects/vimage/src/sys/contrib/dev/acpica/tools/acpiexec/aecommon.h#1 branch .. //depot/projects/vimage/src/sys/contrib/dev/acpica/utalloc.c#3 delete .. //depot/projects/vimage/src/sys/contrib/dev/acpica/utcache.c#3 delete .. //depot/projects/vimage/src/sys/contrib/dev/acpica/utclib.c#3 delete .. //depot/projects/vimage/src/sys/contrib/dev/acpica/utcopy.c#3 delete .. //depot/projects/vimage/src/sys/contrib/dev/acpica/utdebug.c#3 delete .. //depot/projects/vimage/src/sys/contrib/dev/acpica/utdelete.c#3 delete .. //depot/projects/vimage/src/sys/contrib/dev/acpica/uteval.c#3 delete .. //depot/projects/vimage/src/sys/contrib/dev/acpica/utglobal.c#3 delete .. //depot/projects/vimage/src/sys/contrib/dev/acpica/utilities/utalloc.c#1 branch .. //depot/projects/vimage/src/sys/contrib/dev/acpica/utilities/utcache.c#1 branch .. //depot/projects/vimage/src/sys/contrib/dev/acpica/utilities/utcopy.c#1 branch .. //depot/projects/vimage/src/sys/contrib/dev/acpica/utilities/utdebug.c#1 branch .. //depot/projects/vimage/src/sys/contrib/dev/acpica/utilities/utdelete.c#1 branch .. //depot/projects/vimage/src/sys/contrib/dev/acpica/utilities/uteval.c#1 branch .. //depot/projects/vimage/src/sys/contrib/dev/acpica/utilities/utglobal.c#1 branch .. //depot/projects/vimage/src/sys/contrib/dev/acpica/utilities/utinit.c#1 branch .. //depot/projects/vimage/src/sys/contrib/dev/acpica/utilities/utlock.c#1 branch .. //depot/projects/vimage/src/sys/contrib/dev/acpica/utilities/utmath.c#1 branch .. //depot/projects/vimage/src/sys/contrib/dev/acpica/utilities/utmisc.c#1 branch .. //depot/projects/vimage/src/sys/contrib/dev/acpica/utilities/utmutex.c#1 branch .. //depot/projects/vimage/src/sys/contrib/dev/acpica/utilities/utobject.c#1 branch .. //depot/projects/vimage/src/sys/contrib/dev/acpica/utilities/utresrc.c#1 branch .. //depot/projects/vimage/src/sys/contrib/dev/acpica/utilities/utstate.c#1 branch .. //depot/projects/vimage/src/sys/contrib/dev/acpica/utilities/uttrack.c#1 branch .. //depot/projects/vimage/src/sys/contrib/dev/acpica/utilities/utxface.c#1 branch .. //depot/projects/vimage/src/sys/contrib/dev/acpica/utinit.c#3 delete .. //depot/projects/vimage/src/sys/contrib/dev/acpica/utmath.c#3 delete .. //depot/projects/vimage/src/sys/contrib/dev/acpica/utmisc.c#4 delete .. //depot/projects/vimage/src/sys/contrib/dev/acpica/utmutex.c#3 delete .. //depot/projects/vimage/src/sys/contrib/dev/acpica/utobject.c#3 delete .. //depot/projects/vimage/src/sys/contrib/dev/acpica/utresrc.c#2 delete .. //depot/projects/vimage/src/sys/contrib/dev/acpica/utstate.c#3 delete .. //depot/projects/vimage/src/sys/contrib/dev/acpica/uttrack.c#2 delete .. //depot/projects/vimage/src/sys/contrib/dev/acpica/utxface.c#3 delete .. //depot/projects/vimage/src/sys/contrib/pf/net/pf.c#23 integrate .. //depot/projects/vimage/src/sys/contrib/pf/net/pf_if.c#17 integrate .. //depot/projects/vimage/src/sys/contrib/pf/net/pf_ioctl.c#24 integrate .. //depot/projects/vimage/src/sys/dev/acpi_support/acpi_aiboost.c#2 integrate .. //depot/projects/vimage/src/sys/dev/acpi_support/acpi_asus.c#12 integrate .. //depot/projects/vimage/src/sys/dev/acpi_support/acpi_fujitsu.c#4 integrate .. //depot/projects/vimage/src/sys/dev/acpi_support/acpi_ibm.c#8 integrate .. //depot/projects/vimage/src/sys/dev/acpi_support/acpi_panasonic.c#4 integrate .. //depot/projects/vimage/src/sys/dev/acpi_support/acpi_sony.c#4 integrate .. //depot/projects/vimage/src/sys/dev/acpi_support/acpi_toshiba.c#2 integrate .. //depot/projects/vimage/src/sys/dev/acpica/Osd/OsdDebug.c#4 integrate .. //depot/projects/vimage/src/sys/dev/acpica/Osd/OsdHardware.c#3 integrate .. //depot/projects/vimage/src/sys/dev/acpica/Osd/OsdInterrupt.c#3 integrate .. //depot/projects/vimage/src/sys/dev/acpica/Osd/OsdMemory.c#3 integrate .. //depot/projects/vimage/src/sys/dev/acpica/Osd/OsdSchedule.c#5 integrate .. //depot/projects/vimage/src/sys/dev/acpica/Osd/OsdStream.c#2 integrate .. //depot/projects/vimage/src/sys/dev/acpica/Osd/OsdSynch.c#4 integrate .. //depot/projects/vimage/src/sys/dev/acpica/Osd/OsdTable.c#3 integrate .. //depot/projects/vimage/src/sys/dev/acpica/acpi.c#21 integrate .. //depot/projects/vimage/src/sys/dev/acpica/acpi_acad.c#3 integrate .. //depot/projects/vimage/src/sys/dev/acpica/acpi_battery.c#6 integrate .. //depot/projects/vimage/src/sys/dev/acpica/acpi_button.c#3 integrate .. //depot/projects/vimage/src/sys/dev/acpica/acpi_cmbat.c#3 integrate .. //depot/projects/vimage/src/sys/dev/acpica/acpi_cpu.c#12 integrate .. //depot/projects/vimage/src/sys/dev/acpica/acpi_dock.c#4 integrate .. //depot/projects/vimage/src/sys/dev/acpica/acpi_ec.c#7 integrate .. //depot/projects/vimage/src/sys/dev/acpica/acpi_hpet.c#10 integrate .. //depot/projects/vimage/src/sys/dev/acpica/acpi_if.m#2 integrate .. //depot/projects/vimage/src/sys/dev/acpica/acpi_isab.c#2 integrate .. //depot/projects/vimage/src/sys/dev/acpica/acpi_lid.c#3 integrate .. //depot/projects/vimage/src/sys/dev/acpica/acpi_package.c#3 integrate .. //depot/projects/vimage/src/sys/dev/acpica/acpi_pci.c#4 integrate .. //depot/projects/vimage/src/sys/dev/acpica/acpi_pci_link.c#4 integrate .. //depot/projects/vimage/src/sys/dev/acpica/acpi_pcib.c#3 integrate .. //depot/projects/vimage/src/sys/dev/acpica/acpi_pcib_acpi.c#7 integrate .. //depot/projects/vimage/src/sys/dev/acpica/acpi_pcib_pci.c#4 integrate .. //depot/projects/vimage/src/sys/dev/acpica/acpi_perf.c#4 integrate .. //depot/projects/vimage/src/sys/dev/acpica/acpi_powerres.c#2 integrate .. //depot/projects/vimage/src/sys/dev/acpica/acpi_quirk.c#4 integrate .. //depot/projects/vimage/src/sys/dev/acpica/acpi_resource.c#3 integrate .. //depot/projects/vimage/src/sys/dev/acpica/acpi_smbat.c#3 integrate .. //depot/projects/vimage/src/sys/dev/acpica/acpi_thermal.c#7 integrate .. //depot/projects/vimage/src/sys/dev/acpica/acpi_throttle.c#4 integrate .. //depot/projects/vimage/src/sys/dev/acpica/acpi_timer.c#5 integrate .. //depot/projects/vimage/src/sys/dev/acpica/acpi_video.c#2 integrate .. //depot/projects/vimage/src/sys/dev/asmc/asmc.c#5 integrate .. //depot/projects/vimage/src/sys/dev/ata/ata-pci.h#25 integrate .. //depot/projects/vimage/src/sys/dev/ata/chipsets/ata-nvidia.c#5 integrate .. //depot/projects/vimage/src/sys/dev/ce/if_ce.c#9 integrate .. //depot/projects/vimage/src/sys/dev/cp/if_cp.c#8 integrate .. //depot/projects/vimage/src/sys/dev/ctau/if_ct.c#9 integrate .. //depot/projects/vimage/src/sys/dev/cx/if_cx.c#8 integrate .. //depot/projects/vimage/src/sys/dev/cxgb/ulp/iw_cxgb/iw_cxgb.c#11 integrate .. //depot/projects/vimage/src/sys/dev/fdc/fdc_acpi.c#2 integrate .. //depot/projects/vimage/src/sys/dev/if_ndis/if_ndis_usb.c#9 integrate .. //depot/projects/vimage/src/sys/dev/ipmi/ipmi_acpi.c#3 integrate .. //depot/projects/vimage/src/sys/dev/kbd/kbd.c#5 integrate .. //depot/projects/vimage/src/sys/dev/kbdmux/kbdmux.c#9 integrate .. //depot/projects/vimage/src/sys/dev/mwl/if_mwl.c#2 integrate .. //depot/projects/vimage/src/sys/dev/pci/pci.c#25 integrate .. //depot/projects/vimage/src/sys/dev/sec/sec.c#1 branch .. //depot/projects/vimage/src/sys/dev/sec/sec.h#1 branch .. //depot/projects/vimage/src/sys/dev/sound/clone.c#2 integrate .. //depot/projects/vimage/src/sys/dev/sound/driver.c#3 integrate .. //depot/projects/vimage/src/sys/dev/sound/isa/ad1816.c#6 integrate .. //depot/projects/vimage/src/sys/dev/sound/isa/ess.c#5 integrate .. //depot/projects/vimage/src/sys/dev/sound/isa/gusc.c#3 integrate .. //depot/projects/vimage/src/sys/dev/sound/isa/mss.c#6 integrate .. //depot/projects/vimage/src/sys/dev/sound/isa/sb16.c#5 integrate .. //depot/projects/vimage/src/sys/dev/sound/isa/sb8.c#5 integrate .. //depot/projects/vimage/src/sys/dev/sound/isa/sbc.c#3 integrate .. //depot/projects/vimage/src/sys/dev/sound/isa/sndbuf_dma.c#2 integrate .. //depot/projects/vimage/src/sys/dev/sound/macio/aoa.c#3 integrate .. //depot/projects/vimage/src/sys/dev/sound/macio/davbus.c#3 integrate .. //depot/projects/vimage/src/sys/dev/sound/macio/i2s.c#3 integrate .. //depot/projects/vimage/src/sys/dev/sound/macio/snapper.c#3 integrate .. //depot/projects/vimage/src/sys/dev/sound/macio/tumbler.c#3 integrate .. //depot/projects/vimage/src/sys/dev/sound/midi/midi.c#4 integrate .. //depot/projects/vimage/src/sys/dev/sound/midi/mpu401.c#4 integrate .. //depot/projects/vimage/src/sys/dev/sound/midi/sequencer.c#7 integrate .. //depot/projects/vimage/src/sys/dev/sound/midi/sequencer.h#3 integrate .. //depot/projects/vimage/src/sys/dev/sound/pci/als4000.c#5 integrate .. //depot/projects/vimage/src/sys/dev/sound/pci/atiixp.c#8 integrate .. //depot/projects/vimage/src/sys/dev/sound/pci/aureal.c#5 integrate .. //depot/projects/vimage/src/sys/dev/sound/pci/cmi.c#7 integrate .. //depot/projects/vimage/src/sys/dev/sound/pci/cs4281.c#6 integrate .. //depot/projects/vimage/src/sys/dev/sound/pci/csa.c#4 integrate .. //depot/projects/vimage/src/sys/dev/sound/pci/csapcm.c#5 integrate .. //depot/projects/vimage/src/sys/dev/sound/pci/ds1.c#6 integrate .. //depot/projects/vimage/src/sys/dev/sound/pci/emu10k1.c#6 integrate .. //depot/projects/vimage/src/sys/dev/sound/pci/emu10kx-midi.c#4 integrate .. //depot/projects/vimage/src/sys/dev/sound/pci/emu10kx-pcm.c#7 integrate .. //depot/projects/vimage/src/sys/dev/sound/pci/emu10kx.c#10 integrate .. //depot/projects/vimage/src/sys/dev/sound/pci/envy24.c#10 integrate .. //depot/projects/vimage/src/sys/dev/sound/pci/envy24ht.c#10 integrate .. //depot/projects/vimage/src/sys/dev/sound/pci/es137x.c#7 integrate .. //depot/projects/vimage/src/sys/dev/sound/pci/fm801.c#6 integrate .. //depot/projects/vimage/src/sys/dev/sound/pci/hda/hdac.c#33 integrate .. //depot/projects/vimage/src/sys/dev/sound/pci/ich.c#10 integrate .. //depot/projects/vimage/src/sys/dev/sound/pci/maestro.c#5 integrate .. //depot/projects/vimage/src/sys/dev/sound/pci/maestro3.c#5 integrate .. //depot/projects/vimage/src/sys/dev/sound/pci/neomagic.c#3 integrate .. //depot/projects/vimage/src/sys/dev/sound/pci/solo.c#5 integrate .. //depot/projects/vimage/src/sys/dev/sound/pci/spicds.c#5 integrate .. //depot/projects/vimage/src/sys/dev/sound/pci/t4dwave.c#6 integrate .. //depot/projects/vimage/src/sys/dev/sound/pci/via8233.c#5 integrate .. //depot/projects/vimage/src/sys/dev/sound/pci/via82c686.c#5 integrate .. //depot/projects/vimage/src/sys/dev/sound/pci/vibes.c#6 integrate .. //depot/projects/vimage/src/sys/dev/sound/pcm/ac97.c#6 integrate .. //depot/projects/vimage/src/sys/dev/sound/pcm/ac97_patch.c#7 integrate .. //depot/projects/vimage/src/sys/dev/sound/pcm/buffer.c#5 integrate .. //depot/projects/vimage/src/sys/dev/sound/pcm/buffer.h#6 integrate .. //depot/projects/vimage/src/sys/dev/sound/pcm/channel.c#7 integrate .. //depot/projects/vimage/src/sys/dev/sound/pcm/channel.h#4 integrate .. //depot/projects/vimage/src/sys/dev/sound/pcm/channel_if.m#3 integrate .. //depot/projects/vimage/src/sys/dev/sound/pcm/dsp.c#10 integrate .. //depot/projects/vimage/src/sys/dev/sound/pcm/dsp.h#4 integrate .. //depot/projects/vimage/src/sys/dev/sound/pcm/fake.c#3 delete .. //depot/projects/vimage/src/sys/dev/sound/pcm/feeder.c#5 integrate .. //depot/projects/vimage/src/sys/dev/sound/pcm/feeder.h#3 integrate .. //depot/projects/vimage/src/sys/dev/sound/pcm/feeder_chain.c#1 branch .. //depot/projects/vimage/src/sys/dev/sound/pcm/feeder_eq.c#1 branch .. //depot/projects/vimage/src/sys/dev/sound/pcm/feeder_fmt.c#4 delete .. //depot/projects/vimage/src/sys/dev/sound/pcm/feeder_format.c#1 branch .. //depot/projects/vimage/src/sys/dev/sound/pcm/feeder_matrix.c#1 branch .. //depot/projects/vimage/src/sys/dev/sound/pcm/feeder_mixer.c#1 branch .. //depot/projects/vimage/src/sys/dev/sound/pcm/feeder_rate.c#4 integrate .. //depot/projects/vimage/src/sys/dev/sound/pcm/feeder_volume.c#4 integrate .. //depot/projects/vimage/src/sys/dev/sound/pcm/g711.h#1 branch .. //depot/projects/vimage/src/sys/dev/sound/pcm/intpcm.h#1 branch .. //depot/projects/vimage/src/sys/dev/sound/pcm/matrix.h#1 branch .. //depot/projects/vimage/src/sys/dev/sound/pcm/matrix_map.h#1 branch .. //depot/projects/vimage/src/sys/dev/sound/pcm/mixer.c#7 integrate .. //depot/projects/vimage/src/sys/dev/sound/pcm/mixer.h#4 integrate .. //depot/projects/vimage/src/sys/dev/sound/pcm/pcm.h#1 branch .. //depot/projects/vimage/src/sys/dev/sound/pcm/sndstat.c#4 integrate .. //depot/projects/vimage/src/sys/dev/sound/pcm/sndstat.h#1 branch .. //depot/projects/vimage/src/sys/dev/sound/pcm/sound.c#6 integrate .. //depot/projects/vimage/src/sys/dev/sound/pcm/sound.h#9 integrate .. //depot/projects/vimage/src/sys/dev/sound/pcm/vchan.c#4 integrate .. //depot/projects/vimage/src/sys/dev/sound/pcm/vchan.h#3 integrate .. //depot/projects/vimage/src/sys/dev/sound/sbus/cs4231.c#7 integrate .. //depot/projects/vimage/src/sys/dev/sound/unit.c#2 integrate .. //depot/projects/vimage/src/sys/dev/sound/usb/uaudio.c#15 integrate .. //depot/projects/vimage/src/sys/dev/sound/usb/uaudio.h#8 integrate .. //depot/projects/vimage/src/sys/dev/sound/usb/uaudio_pcm.c#9 integrate .. //depot/projects/vimage/src/sys/dev/sound/version.h#2 integrate .. //depot/projects/vimage/src/sys/dev/usb/controller/at91dci.c#9 integrate .. //depot/projects/vimage/src/sys/dev/usb/controller/atmegadci.c#10 integrate .. //depot/projects/vimage/src/sys/dev/usb/controller/avr32dci.c#3 integrate .. //depot/projects/vimage/src/sys/dev/usb/controller/ehci.c#12 integrate .. //depot/projects/vimage/src/sys/dev/usb/controller/musb_otg.c#9 integrate .. //depot/projects/vimage/src/sys/dev/usb/controller/ohci.c#11 integrate .. //depot/projects/vimage/src/sys/dev/usb/controller/uhci.c#11 integrate .. //depot/projects/vimage/src/sys/dev/usb/controller/uss820dci.c#9 integrate .. //depot/projects/vimage/src/sys/dev/usb/serial/ugensa.c#8 integrate .. //depot/projects/vimage/src/sys/dev/usb/serial/umct.c#9 integrate .. //depot/projects/vimage/src/sys/dev/usb/storage/ustorage_fs.c#9 integrate .. //depot/projects/vimage/src/sys/dev/usb/usb.h#10 integrate .. //depot/projects/vimage/src/sys/dev/usb/usb_compat_linux.c#9 integrate .. //depot/projects/vimage/src/sys/dev/usb/usb_compat_linux.h#7 integrate .. //depot/projects/vimage/src/sys/dev/usb/usb_controller.h#9 integrate .. //depot/projects/vimage/src/sys/dev/usb/usb_core.h#13 integrate .. //depot/projects/vimage/src/sys/dev/usb/usb_debug.c#6 integrate .. //depot/projects/vimage/src/sys/dev/usb/usb_debug.h#6 integrate .. //depot/projects/vimage/src/sys/dev/usb/usb_dev.c#11 integrate .. //depot/projects/vimage/src/sys/dev/usb/usb_device.c#13 integrate .. //depot/projects/vimage/src/sys/dev/usb/usb_device.h#12 integrate .. //depot/projects/vimage/src/sys/dev/usb/usb_generic.c#11 integrate .. //depot/projects/vimage/src/sys/dev/usb/usb_handle_request.c#8 integrate .. //depot/projects/vimage/src/sys/dev/usb/usb_hub.c#13 integrate .. //depot/projects/vimage/src/sys/dev/usb/usb_lookup.h#5 integrate .. //depot/projects/vimage/src/sys/dev/usb/usb_request.c#11 integrate .. //depot/projects/vimage/src/sys/dev/usb/usb_transfer.c#11 integrate .. //depot/projects/vimage/src/sys/dev/usb/usb_transfer.h#7 integrate .. //depot/projects/vimage/src/sys/dev/usb/wlan/if_zyd.c#12 integrate .. //depot/projects/vimage/src/sys/dev/usb/wlan/if_zydreg.h#7 integrate .. //depot/projects/vimage/src/sys/dev/xen/netfront/netfront.c#13 integrate .. //depot/projects/vimage/src/sys/fs/devfs/devfs_devs.c#8 integrate .. //depot/projects/vimage/src/sys/fs/devfs/devfs_vfsops.c#5 integrate .. //depot/projects/vimage/src/sys/fs/devfs/devfs_vnops.c#28 integrate .. //depot/projects/vimage/src/sys/fs/nfsclient/nfs_clstate.c#4 integrate .. //depot/projects/vimage/src/sys/fs/nfsserver/nfs_nfsdkrpc.c#4 integrate .. //depot/projects/vimage/src/sys/fs/pseudofs/pseudofs_vncache.c#9 integrate .. //depot/projects/vimage/src/sys/fs/udf/osta.c#2 integrate .. //depot/projects/vimage/src/sys/fs/unionfs/union_subr.c#16 integrate .. //depot/projects/vimage/src/sys/geom/geom_subr.c#11 integrate .. //depot/projects/vimage/src/sys/gnu/fs/ext2fs/ext2_vfsops.c#16 integrate .. //depot/projects/vimage/src/sys/i386/acpica/OsdEnvironment.c#3 integrate .. //depot/projects/vimage/src/sys/i386/acpica/acpi_machdep.c#9 integrate .. //depot/projects/vimage/src/sys/i386/acpica/acpi_wakeup.c#5 integrate .. //depot/projects/vimage/src/sys/i386/acpica/madt.c#8 integrate .. //depot/projects/vimage/src/sys/i386/conf/NOTES#31 integrate .. //depot/projects/vimage/src/sys/i386/cpufreq/est.c#10 integrate .. //depot/projects/vimage/src/sys/i386/cpufreq/hwpstate.c#3 integrate .. //depot/projects/vimage/src/sys/i386/cpufreq/p4tcc.c#5 integrate .. //depot/projects/vimage/src/sys/i386/i386/local_apic.c#19 integrate .. //depot/projects/vimage/src/sys/i386/i386/machdep.c#22 integrate .. //depot/projects/vimage/src/sys/i386/i386/pmap.c#27 integrate .. //depot/projects/vimage/src/sys/i386/i386/sys_machdep.c#9 integrate .. //depot/projects/vimage/src/sys/i386/ibcs2/ibcs2_misc.c#6 integrate .. //depot/projects/vimage/src/sys/i386/include/apicvar.h#11 integrate .. //depot/projects/vimage/src/sys/i386/isa/clock.c#11 integrate .. //depot/projects/vimage/src/sys/i386/isa/vesa.c#3 integrate .. //depot/projects/vimage/src/sys/i386/xen/pmap.c#9 integrate .. //depot/projects/vimage/src/sys/ia64/acpica/OsdEnvironment.c#3 integrate .. //depot/projects/vimage/src/sys/ia64/acpica/acpi_machdep.c#2 integrate .. //depot/projects/vimage/src/sys/ia64/acpica/acpi_wakeup.c#2 integrate .. //depot/projects/vimage/src/sys/ia64/acpica/madt.c#3 integrate .. //depot/projects/vimage/src/sys/ia64/ia64/nexus.c#5 integrate .. //depot/projects/vimage/src/sys/kern/init_main.c#28 integrate .. //depot/projects/vimage/src/sys/kern/kern_acct.c#11 integrate .. //depot/projects/vimage/src/sys/kern/kern_alq.c#9 integrate .. //depot/projects/vimage/src/sys/kern/kern_environment.c#7 integrate .. //depot/projects/vimage/src/sys/kern/kern_exec.c#22 integrate .. //depot/projects/vimage/src/sys/kern/kern_exit.c#32 integrate .. //depot/projects/vimage/src/sys/kern/kern_fork.c#27 integrate .. //depot/projects/vimage/src/sys/kern/kern_jail.c#29 integrate .. //depot/projects/vimage/src/sys/kern/kern_ktrace.c#12 integrate .. //depot/projects/vimage/src/sys/kern/kern_linker.c#29 integrate .. //depot/projects/vimage/src/sys/kern/kern_mbuf.c#13 integrate .. //depot/projects/vimage/src/sys/kern/kern_poll.c#21 integrate .. //depot/projects/vimage/src/sys/kern/kern_priv.c#7 integrate .. //depot/projects/vimage/src/sys/kern/kern_prot.c#18 integrate .. //depot/projects/vimage/src/sys/kern/kern_shutdown.c#13 integrate .. //depot/projects/vimage/src/sys/kern/kern_sysctl.c#25 integrate .. //depot/projects/vimage/src/sys/kern/kern_uuid.c#16 integrate .. //depot/projects/vimage/src/sys/kern/kern_vimage.c#97 integrate .. //depot/projects/vimage/src/sys/kern/link_elf.c#12 integrate .. //depot/projects/vimage/src/sys/kern/link_elf_obj.c#12 integrate .. //depot/projects/vimage/src/sys/kern/subr_clist.c#6 delete .. //depot/projects/vimage/src/sys/kern/subr_trap.c#12 integrate .. //depot/projects/vimage/src/sys/kern/sys_pipe.c#11 integrate .. //depot/projects/vimage/src/sys/kern/sys_socket.c#17 integrate .. //depot/projects/vimage/src/sys/kern/sysv_msg.c#7 integrate .. //depot/projects/vimage/src/sys/kern/sysv_sem.c#9 integrate .. //depot/projects/vimage/src/sys/kern/sysv_shm.c#8 integrate .. //depot/projects/vimage/src/sys/kern/tty.c#37 integrate .. //depot/projects/vimage/src/sys/kern/uipc_domain.c#21 integrate .. //depot/projects/vimage/src/sys/kern/uipc_mbuf.c#12 integrate .. //depot/projects/vimage/src/sys/kern/uipc_mbuf2.c#3 integrate .. //depot/projects/vimage/src/sys/kern/uipc_sem.c#9 integrate .. //depot/projects/vimage/src/sys/kern/uipc_shm.c#7 integrate .. //depot/projects/vimage/src/sys/kern/uipc_socket.c#37 integrate .. //depot/projects/vimage/src/sys/kern/uipc_syscalls.c#29 integrate .. //depot/projects/vimage/src/sys/kern/uipc_usrreq.c#27 integrate .. //depot/projects/vimage/src/sys/kern/vfs_acl.c#8 integrate .. //depot/projects/vimage/src/sys/kern/vfs_bio.c#26 integrate .. //depot/projects/vimage/src/sys/kern/vfs_cache.c#28 integrate .. //depot/projects/vimage/src/sys/kern/vfs_cluster.c#5 integrate .. //depot/projects/vimage/src/sys/kern/vfs_extattr.c#9 integrate .. //depot/projects/vimage/src/sys/kern/vfs_lookup.c#24 integrate .. //depot/projects/vimage/src/sys/kern/vfs_mount.c#35 integrate .. //depot/projects/vimage/src/sys/kern/vfs_subr.c#30 integrate .. //depot/projects/vimage/src/sys/kern/vfs_syscalls.c#28 integrate .. //depot/projects/vimage/src/sys/kern/vfs_vnops.c#26 integrate .. //depot/projects/vimage/src/sys/kern/vnode_if.src#14 integrate .. //depot/projects/vimage/src/sys/modules/acpi/acpi/Makefile#6 integrate .. //depot/projects/vimage/src/sys/modules/acpi/acpi_aiboost/Makefile#2 integrate .. //depot/projects/vimage/src/sys/modules/acpi/acpi_asus/Makefile#2 integrate .. //depot/projects/vimage/src/sys/modules/acpi/acpi_dock/Makefile#2 integrate .. //depot/projects/vimage/src/sys/modules/acpi/acpi_fujitsu/Makefile#2 integrate .. //depot/projects/vimage/src/sys/modules/acpi/acpi_ibm/Makefile#2 integrate .. //depot/projects/vimage/src/sys/modules/acpi/acpi_panasonic/Makefile#2 integrate .. //depot/projects/vimage/src/sys/modules/acpi/acpi_sony/Makefile#2 integrate .. //depot/projects/vimage/src/sys/modules/acpi/acpi_toshiba/Makefile#2 integrate .. //depot/projects/vimage/src/sys/modules/acpi/acpi_video/Makefile#3 integrate .. //depot/projects/vimage/src/sys/modules/bridgestp/Makefile#3 integrate .. //depot/projects/vimage/src/sys/modules/cpufreq/Makefile#4 integrate .. //depot/projects/vimage/src/sys/modules/cxgb/iw_cxgb/Makefile#5 integrate .. //depot/projects/vimage/src/sys/modules/cxgb/tom/Makefile#5 integrate .. //depot/projects/vimage/src/sys/modules/dummynet/Makefile#2 integrate .. //depot/projects/vimage/src/sys/modules/fdc/Makefile#2 integrate .. //depot/projects/vimage/src/sys/modules/firewire/fwip/Makefile#2 integrate .. //depot/projects/vimage/src/sys/modules/ibcs2/Makefile#2 integrate .. //depot/projects/vimage/src/sys/modules/if_ef/Makefile#3 integrate .. //depot/projects/vimage/src/sys/modules/if_gif/Makefile#2 integrate .. //depot/projects/vimage/src/sys/modules/if_ppp/Makefile#2 integrate .. //depot/projects/vimage/src/sys/modules/if_stf/Makefile#2 integrate .. //depot/projects/vimage/src/sys/modules/if_tun/Makefile#2 integrate .. //depot/projects/vimage/src/sys/modules/if_vlan/Makefile#4 integrate .. //depot/projects/vimage/src/sys/modules/ip6_mroute_mod/Makefile#2 integrate .. //depot/projects/vimage/src/sys/modules/ip_mroute_mod/Makefile#6 integrate .. //depot/projects/vimage/src/sys/modules/ipfw/Makefile#4 integrate .. //depot/projects/vimage/src/sys/modules/ipfw_nat/Makefile#2 integrate .. //depot/projects/vimage/src/sys/modules/linprocfs/Makefile#4 integrate .. //depot/projects/vimage/src/sys/modules/linux/Makefile#8 integrate .. //depot/projects/vimage/src/sys/modules/mac_lomac/Makefile#2 integrate .. //depot/projects/vimage/src/sys/modules/netgraph/atm/atm/Makefile#3 integrate .. //depot/projects/vimage/src/sys/modules/netgraph/ether/Makefile#3 integrate .. //depot/projects/vimage/src/sys/modules/netgraph/gif/Makefile#3 integrate .. //depot/projects/vimage/src/sys/modules/nfsclient/Makefile#6 integrate .. //depot/projects/vimage/src/sys/modules/nfsserver/Makefile#4 integrate .. //depot/projects/vimage/src/sys/modules/pf/Makefile#5 integrate .. //depot/projects/vimage/src/sys/modules/pseudofs/Makefile#2 integrate .. //depot/projects/vimage/src/sys/modules/sem/Makefile#3 integrate .. //depot/projects/vimage/src/sys/modules/sound/sound/Makefile#4 integrate .. //depot/projects/vimage/src/sys/modules/svr4/Makefile#6 integrate .. //depot/projects/vimage/src/sys/modules/sysvipc/sysvmsg/Makefile#2 integrate .. //depot/projects/vimage/src/sys/modules/sysvipc/sysvsem/Makefile#2 integrate .. //depot/projects/vimage/src/sys/modules/sysvipc/sysvshm/Makefile#2 integrate .. //depot/projects/vimage/src/sys/modules/ufs/Makefile#3 integrate .. //depot/projects/vimage/src/sys/modules/wlan/Makefile#8 integrate .. //depot/projects/vimage/src/sys/net/bpf.c#37 integrate .. //depot/projects/vimage/src/sys/net/bridgestp.c#20 integrate .. //depot/projects/vimage/src/sys/net/flowtable.h#2 integrate .. //depot/projects/vimage/src/sys/net/if.c#85 integrate .. //depot/projects/vimage/src/sys/net/if_atmsubr.c#8 integrate .. //depot/projects/vimage/src/sys/net/if_ef.c#14 integrate .. //depot/projects/vimage/src/sys/net/if_ethersubr.c#43 integrate .. //depot/projects/vimage/src/sys/net/if_fddisubr.c#10 integrate .. //depot/projects/vimage/src/sys/net/if_fwsubr.c#12 integrate .. //depot/projects/vimage/src/sys/net/if_gif.c#31 integrate .. //depot/projects/vimage/src/sys/net/if_gif.h#14 integrate .. //depot/projects/vimage/src/sys/net/if_iso88025subr.c#10 integrate .. //depot/projects/vimage/src/sys/net/if_loop.c#51 integrate .. //depot/projects/vimage/src/sys/net/if_mib.c#16 integrate .. //depot/projects/vimage/src/sys/net/if_stf.c#18 integrate .. //depot/projects/vimage/src/sys/net/if_tun.c#17 integrate .. //depot/projects/vimage/src/sys/net/if_var.h#39 integrate .. //depot/projects/vimage/src/sys/net/if_vlan.c#19 integrate .. //depot/projects/vimage/src/sys/net/raw_cb.c#14 integrate .. //depot/projects/vimage/src/sys/net/raw_usrreq.c#13 integrate .. //depot/projects/vimage/src/sys/net/route.c#53 integrate .. //depot/projects/vimage/src/sys/net/rtsock.c#37 integrate .. //depot/projects/vimage/src/sys/net/vnet.h#27 integrate .. //depot/projects/vimage/src/sys/net80211/ieee80211.c#36 integrate .. //depot/projects/vimage/src/sys/net80211/ieee80211.h#17 integrate .. //depot/projects/vimage/src/sys/net80211/ieee80211_crypto.c#8 integrate .. //depot/projects/vimage/src/sys/net80211/ieee80211_crypto.h#10 integrate .. //depot/projects/vimage/src/sys/net80211/ieee80211_crypto_ccmp.c#7 integrate .. //depot/projects/vimage/src/sys/net80211/ieee80211_crypto_tkip.c#8 integrate .. //depot/projects/vimage/src/sys/net80211/ieee80211_ddb.c#27 integrate .. //depot/projects/vimage/src/sys/net80211/ieee80211_dfs.c#4 integrate .. //depot/projects/vimage/src/sys/net80211/ieee80211_freebsd.c#24 integrate .. //depot/projects/vimage/src/sys/net80211/ieee80211_hostap.c#15 integrate .. //depot/projects/vimage/src/sys/net80211/ieee80211_ht.c#16 integrate .. //depot/projects/vimage/src/sys/net80211/ieee80211_input.c#19 integrate .. //depot/projects/vimage/src/sys/net80211/ieee80211_ioctl.c#27 integrate .. //depot/projects/vimage/src/sys/net80211/ieee80211_ioctl.h#13 integrate .. //depot/projects/vimage/src/sys/net80211/ieee80211_node.c#24 integrate .. //depot/projects/vimage/src/sys/net80211/ieee80211_node.h#17 integrate .. //depot/projects/vimage/src/sys/net80211/ieee80211_output.c#27 integrate .. //depot/projects/vimage/src/sys/net80211/ieee80211_proto.h#19 integrate .. //depot/projects/vimage/src/sys/net80211/ieee80211_radiotap.c#4 integrate .. //depot/projects/vimage/src/sys/net80211/ieee80211_scan_sta.c#17 integrate .. //depot/projects/vimage/src/sys/net80211/ieee80211_sta.c#14 integrate .. //depot/projects/vimage/src/sys/net80211/ieee80211_var.h#32 integrate .. //depot/projects/vimage/src/sys/netatalk/aarp.c#5 integrate .. //depot/projects/vimage/src/sys/netatalk/ddp_input.c#5 integrate .. //depot/projects/vimage/src/sys/netatalk/ddp_output.c#4 integrate .. //depot/projects/vimage/src/sys/netgraph/atm/ng_atm.c#12 integrate .. //depot/projects/vimage/src/sys/netgraph/ng_base.c#59 integrate .. //depot/projects/vimage/src/sys/netgraph/ng_ether.c#25 integrate .. //depot/projects/vimage/src/sys/netgraph/ng_gif.c#14 integrate .. //depot/projects/vimage/src/sys/netgraph/ng_message.h#3 integrate .. //depot/projects/vimage/src/sys/netinet/if_ether.c#46 integrate .. //depot/projects/vimage/src/sys/netinet/igmp.c#43 integrate .. //depot/projects/vimage/src/sys/netinet/in.c#36 integrate .. //depot/projects/vimage/src/sys/netinet/in_gif.c#21 integrate .. //depot/projects/vimage/src/sys/netinet/in_mcast.c#28 integrate .. //depot/projects/vimage/src/sys/netinet/in_pcb.c#60 integrate .. //depot/projects/vimage/src/sys/netinet/in_proto.c#21 integrate .. //depot/projects/vimage/src/sys/netinet/in_rmx.c#37 integrate .. //depot/projects/vimage/src/sys/netinet/ip_divert.c#34 integrate .. //depot/projects/vimage/src/sys/netinet/ip_dummynet.c#17 delete .. //depot/projects/vimage/src/sys/netinet/ip_fw.h#32 integrate .. //depot/projects/vimage/src/sys/netinet/ip_fw2.c#80 delete .. //depot/projects/vimage/src/sys/netinet/ip_fw_nat.c#15 delete .. //depot/projects/vimage/src/sys/netinet/ip_fw_pfil.c#23 delete .. //depot/projects/vimage/src/sys/netinet/ip_icmp.c#28 integrate .. //depot/projects/vimage/src/sys/netinet/ip_input.c#60 integrate .. //depot/projects/vimage/src/sys/netinet/ip_ipsec.c#24 integrate .. //depot/projects/vimage/src/sys/netinet/ip_ipsec.h#4 integrate .. //depot/projects/vimage/src/sys/netinet/ip_mroute.c#23 integrate .. //depot/projects/vimage/src/sys/netinet/ip_options.c#21 integrate .. //depot/projects/vimage/src/sys/netinet/ip_output.c#39 integrate .. //depot/projects/vimage/src/sys/netinet/ip_var.h#20 integrate .. //depot/projects/vimage/src/sys/netinet/ipfw/ip_dummynet.c#1 branch .. //depot/projects/vimage/src/sys/netinet/ipfw/ip_fw2.c#1 branch .. //depot/projects/vimage/src/sys/netinet/ipfw/ip_fw_nat.c#1 branch .. //depot/projects/vimage/src/sys/netinet/ipfw/ip_fw_pfil.c#1 branch .. //depot/projects/vimage/src/sys/netinet/raw_ip.c#49 integrate .. //depot/projects/vimage/src/sys/netinet/sctp_os_bsd.h#30 integrate .. //depot/projects/vimage/src/sys/netinet/tcp_hostcache.c#39 integrate .. //depot/projects/vimage/src/sys/netinet/tcp_input.c#54 integrate .. //depot/projects/vimage/src/sys/netinet/tcp_output.c#30 integrate .. //depot/projects/vimage/src/sys/netinet/tcp_subr.c#86 integrate .. //depot/projects/vimage/src/sys/netinet/tcp_syncache.c#55 integrate .. //depot/projects/vimage/src/sys/netinet/tcp_syncache.h#21 integrate .. //depot/projects/vimage/src/sys/netinet/tcp_timewait.c#34 integrate .. //depot/projects/vimage/src/sys/netinet/tcp_var.h#35 integrate .. //depot/projects/vimage/src/sys/netinet/udp_usrreq.c#57 integrate .. //depot/projects/vimage/src/sys/netinet/udp_var.h#14 integrate .. //depot/projects/vimage/src/sys/netinet6/frag6.c#28 integrate .. //depot/projects/vimage/src/sys/netinet6/icmp6.c#45 integrate .. //depot/projects/vimage/src/sys/netinet6/in6.c#36 integrate .. //depot/projects/vimage/src/sys/netinet6/in6_gif.c#20 integrate .. //depot/projects/vimage/src/sys/netinet6/in6_ifattach.c#41 integrate .. //depot/projects/vimage/src/sys/netinet6/in6_mcast.c#4 integrate .. //depot/projects/vimage/src/sys/netinet6/in6_pcb.c#36 integrate .. //depot/projects/vimage/src/sys/netinet6/in6_proto.c#43 integrate .. //depot/projects/vimage/src/sys/netinet6/in6_rmx.c#37 integrate .. //depot/projects/vimage/src/sys/netinet6/ip6_input.c#58 integrate .. //depot/projects/vimage/src/sys/netinet6/ip6_mroute.c#26 integrate .. //depot/projects/vimage/src/sys/netinet6/ip6_output.c#31 integrate .. //depot/projects/vimage/src/sys/netinet6/ip6_var.h#21 integrate .. //depot/projects/vimage/src/sys/netinet6/ip6protosw.h#6 integrate .. //depot/projects/vimage/src/sys/netinet6/nd6.c#54 integrate .. //depot/projects/vimage/src/sys/netinet6/nd6.h#17 integrate .. //depot/projects/vimage/src/sys/netinet6/nd6_rtr.c#36 integrate .. //depot/projects/vimage/src/sys/netinet6/raw_ip6.c#40 integrate .. //depot/projects/vimage/src/sys/netinet6/scope6.c#26 integrate .. //depot/projects/vimage/src/sys/netinet6/udp6_usrreq.c#44 integrate .. //depot/projects/vimage/src/sys/netipsec/ipsec.c#49 integrate .. //depot/projects/vimage/src/sys/netipsec/key.c#42 integrate .. //depot/projects/vimage/src/sys/netipsec/key.h#4 integrate .. //depot/projects/vimage/src/sys/netipsec/keysock.c#26 integrate .. //depot/projects/vimage/src/sys/netipsec/xform_ipip.c#31 integrate .. //depot/projects/vimage/src/sys/nfsclient/bootp_subr.c#21 integrate .. //depot/projects/vimage/src/sys/nfsclient/nfs_diskless.c#16 integrate .. //depot/projects/vimage/src/sys/nfsserver/nfs_srvkrpc.c#6 integrate .. //depot/projects/vimage/src/sys/nfsserver/nfs_srvsock.c#12 integrate .. //depot/projects/vimage/src/sys/powerpc/conf/MPC85XX#7 integrate .. //depot/projects/vimage/src/sys/powerpc/include/ocpbus.h#2 integrate .. //depot/projects/vimage/src/sys/powerpc/include/pio.h#2 integrate .. //depot/projects/vimage/src/sys/powerpc/mpc85xx/ocpbus.c#7 integrate .. //depot/projects/vimage/src/sys/powerpc/mpc85xx/ocpbus.h#3 integrate .. //depot/projects/vimage/src/sys/powerpc/powerpc/bus_machdep.c#4 integrate .. //depot/projects/vimage/src/sys/rpc/svc.c#4 integrate .. //depot/projects/vimage/src/sys/rpc/svc_auth.c#3 integrate .. //depot/projects/vimage/src/sys/rpc/svc_vc.c#6 integrate .. //depot/projects/vimage/src/sys/security/audit/audit_syscalls.c#20 integrate .. //depot/projects/vimage/src/sys/sys/cdefs.h#7 integrate .. //depot/projects/vimage/src/sys/sys/clist.h#5 delete .. //depot/projects/vimage/src/sys/sys/domain.h#6 integrate .. //depot/projects/vimage/src/sys/sys/mount.h#23 integrate .. //depot/projects/vimage/src/sys/sys/param.h#56 integrate .. //depot/projects/vimage/src/sys/sys/priv.h#18 integrate .. //depot/projects/vimage/src/sys/sys/protosw.h#8 integrate .. //depot/projects/vimage/src/sys/sys/soundcard.h#3 integrate .. //depot/projects/vimage/src/sys/sys/vimage.h#98 integrate .. //depot/projects/vimage/src/sys/tools/feeder_eq_mkfilter.awk#1 branch .. //depot/projects/vimage/src/sys/tools/feeder_rate_mkfilter.awk#1 branch .. //depot/projects/vimage/src/sys/tools/snd_fxdiv_gen.awk#1 branch .. //depot/projects/vimage/src/sys/ufs/ffs/ffs_vfsops.c#23 integrate .. //depot/projects/vimage/src/sys/ufs/ufs/ufs_vnops.c#17 integrate .. //depot/projects/vimage/src/sys/vm/swap_pager.c#20 integrate .. //depot/projects/vimage/src/sys/vm/vm_fault.c#17 integrate .. //depot/projects/vimage/src/sys/vm/vm_glue.c#10 integrate .. //depot/projects/vimage/src/sys/vm/vm_map.c#17 integrate .. //depot/projects/vimage/src/sys/vm/vm_mmap.c#20 integrate .. //depot/projects/vimage/src/sys/vm/vm_pager.h#2 integrate Differences ... ==== //depot/projects/vimage/src/share/man/man4/acpi.4#2 (text+ko) ==== @@ -23,9 +23,9 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.\" $FreeBSD: src/share/man/man4/acpi.4,v 1.61 2006/09/18 15:24:18 ru Exp $ +.\" $FreeBSD: src/share/man/man4/acpi.4,v 1.62 2009/06/08 21:48:13 jkim Exp $ .\" -.Dd July 29, 2006 +.Dd June 8, 2009 .Dt ACPI 4 .Os .Sh NAME @@ -451,10 +451,6 @@ The supported levels are: .Pp .Bl -tag -compact -width ".Li ACPI_LV_AML_DISASSEMBLE" -.It Li ACPI_LV_ERROR -Fatal error conditions -.It Li ACPI_LV_WARN -Warnings and potential problems .It Li ACPI_LV_INIT Initialization progress .It Li ACPI_LV_DEBUG_OBJECT @@ -463,9 +459,7 @@ General information and progress .It Li ACPI_LV_ALL_EXCEPTIONS All the previous levels -.It Li ACPI_LV_INIT_NAMES .It Li ACPI_LV_PARSE -.It Li ACPI_LV_LOAD .It Li ACPI_LV_DISPATCH .It Li ACPI_LV_EXEC .It Li ACPI_LV_NAMES @@ -483,7 +477,10 @@ .It Li ACPI_LV_FUNCTIONS .It Li ACPI_LV_OPTIMIZATIONS .It Li ACPI_LV_VERBOSITY2 +All the previous levels .It Li ACPI_LV_ALL +Synonym for +.Qq Li ACPI_LV_VERBOSITY2 .It Li ACPI_LV_MUTEX .It Li ACPI_LV_THREADS .It Li ACPI_LV_IO @@ -497,6 +494,8 @@ .It Li ACPI_LV_VERBOSE All levels after .Qq Li ACPI_LV_VERBOSITY3 +.It Li ACPI_LV_INIT_NAMES +.It Li ACPI_LV_LOAD .El .Pp Selection of the appropriate layer and level values is important ==== //depot/projects/vimage/src/share/man/man4/gif.4#2 (text+ko) ==== @@ -27,9 +27,9 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.\" $FreeBSD: src/share/man/man4/gif.4,v 1.26 2005/07/26 18:14:22 trhodes Exp $ +.\" $FreeBSD: src/share/man/man4/gif.4,v 1.27 2009/06/07 23:00:40 hrs Exp $ .\" -.Dd April 10, 1999 +.Dd June 8, 2009 .Dt GIF 4 .Os .Sh NAME @@ -256,3 +256,32 @@ .Dv IFF_LINK0 flag. The behavior is obsolete and is no longer supported. +.Pp +On +.Fx +6.1, 6.2, 6.3, 7.0, 7.1, and 7.2 +the +.Nm +sends and receives incorrect EtherIP packets with reversed version +field when +.Xr if_bridge 4 +is used together. As a workaround on this interoperability issue, the +following two +.Xr ifconfig 8 +flags can be used: +.Bl -tag -width "accept_rev_ethip_ver" -offset indent +.It accept_rev_ethip_ver +accepts both correct EtherIP packets and ones with reversed version +field, if enabled. If disabled, the +.Nm +accepts the correct packets only. This flag is enabled by default. +.It send_rev_ethip_ver +sends EtherIP packets with reversed version field intentionally, if +enabled. If disabled, the +.Nm +sends the correct packets only. This flag is disabled by default. +.El +.Pp +If interoperability with the older +.Fx +machines is needed, both of these two flags must be enabled. ==== //depot/projects/vimage/src/share/man/man4/if_bridge.4#3 (text+ko) ==== @@ -33,9 +33,9 @@ .\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE .\" POSSIBILITY OF SUCH DAMAGE. .\" -.\" $FreeBSD: src/share/man/man4/if_bridge.4,v 1.34 2009/05/07 16:31:50 emaste Exp $ +.\" $FreeBSD: src/share/man/man4/if_bridge.4,v 1.35 2009/06/07 23:00:40 hrs Exp $ .\" -.Dd September 17, 2007 +.Dd June 8, 2009 .Dt IF_BRIDGE 4 .Os .Sh NAME @@ -406,6 +406,12 @@ ifconfig bridge0 create ifconfig bridge0 addm fxp0 addm gif0 up .Ed +.Pp +Note that +.Fx +6.1, 6.2, 6.3, 7.0, 7.1, and 7.2 have a bug in the EtherIP protocol. >>> TRUNCATED FOR MAIL (1000 lines) <<< From owner-p4-projects@FreeBSD.ORG Tue Jun 9 08:25:03 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 2CEFD1065672; Tue, 9 Jun 2009 08:25:03 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id E0840106566B for ; Tue, 9 Jun 2009 08:25:02 +0000 (UTC) (envelope-from zec@fer.hr) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id CF2628FC0C for ; Tue, 9 Jun 2009 08:25:02 +0000 (UTC) (envelope-from zec@fer.hr) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n598P2SO030615 for ; Tue, 9 Jun 2009 08:25:02 GMT (envelope-from zec@fer.hr) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n598P20t030613 for perforce@freebsd.org; Tue, 9 Jun 2009 08:25:02 GMT (envelope-from zec@fer.hr) Date: Tue, 9 Jun 2009 08:25:02 GMT Message-Id: <200906090825.n598P20t030613@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to zec@fer.hr using -f From: Marko Zec To: Perforce Change Reviews Cc: Subject: PERFORCE change 163869 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 09 Jun 2009 08:25:03 -0000 http://perforce.freebsd.org/chv.cgi?CH=163869 Change 163869 by zec@zec_amdx4 on 2009/06/09 08:24:24 Fix misintegrations, reduce WS diff against head, and back out M_REMOTE_VNET mbuf flag, to be replaced RSN by thread tagging for preventing netisr direct dispatch being called from outbound call path of the network stack. Affected files ... .. //depot/projects/vimage/src/sys/kern/uipc_domain.c#22 edit .. //depot/projects/vimage/src/sys/netgraph/ng_base.c#60 edit .. //depot/projects/vimage/src/sys/netgraph/ng_eiface.c#27 edit .. //depot/projects/vimage/src/sys/netgraph/ng_iface.c#26 edit .. //depot/projects/vimage/src/sys/netinet/tcp_hostcache.c#40 edit .. //depot/projects/vimage/src/sys/netipsec/key.c#43 edit .. //depot/projects/vimage/src/sys/sys/mbuf.h#19 edit Differences ... ==== //depot/projects/vimage/src/sys/kern/uipc_domain.c#22 (text+ko) ==== @@ -172,7 +172,9 @@ } /* - * Initialize a domain instance. + * Add a new protocol domain to the list of supported domains + * Note: you cant unload it again because a socket may be using it. + * XXX can't fail at this time. */ static int net_init_domain(const void *arg) ==== //depot/projects/vimage/src/sys/netgraph/ng_base.c#60 (text+ko) ==== @@ -3096,7 +3096,7 @@ V_nextID = 1; - return 0; + return (0); } #ifdef VIMAGE ==== //depot/projects/vimage/src/sys/netgraph/ng_eiface.c#27 (text+ko) ==== @@ -261,14 +261,6 @@ * Send packet; if hook is not connected, mbuf will get * freed. */ -#ifdef VIMAGE - if (ifp->if_vnet != node->nd_vnet) { - m->m_flags |= M_REMOTE_VNET; - CURVNET_SET_QUIET(node->nd_vnet); - NG_SEND_DATA_ONLY(error, priv->ether, m); - CURVNET_RESTORE(); - } else -#endif NG_SEND_DATA_ONLY(error, priv->ether, m); /* Update stats */ @@ -556,12 +548,6 @@ /* Update interface stats */ ifp->if_ipackets++; -#ifdef VIMAGE - /* Mark up the mbuf if crossing vnet boundary */ - if (ifp->if_vnet != NG_HOOK_NODE(hook)->nd_vnet) - m->m_flags |= M_REMOTE_VNET; -#endif - (*ifp->if_input)(ifp, m); /* Done */ ==== //depot/projects/vimage/src/sys/netgraph/ng_iface.c#26 (text+ko) ==== @@ -484,14 +484,6 @@ /* Send packet. If hook is not connected, mbuf will get freed. */ -#ifdef VIMAGE - if (ifp->if_vnet != priv->node->nd_vnet) { - m->m_flags |= M_REMOTE_VNET; - CURVNET_SET_QUIET(priv->node->nd_vnet); - NG_SEND_DATA_ONLY(error, *get_hook_from_iffam(priv, iffam), m); - CURVNET_RESTORE(); - } else -#endif NG_SEND_DATA_ONLY(error, *get_hook_from_iffam(priv, iffam), m); /* Update stats. */ @@ -766,12 +758,6 @@ ifp->if_ipackets++; ifp->if_ibytes += m->m_pkthdr.len; -#ifdef VIMAGE - /* Mark up the mbuf if crossing vnet boundary */ - if (ifp->if_vnet != NG_HOOK_NODE(hook)->nd_vnet) - m->m_flags |= M_REMOTE_VNET; -#endif - /* Note receiving interface */ m->m_pkthdr.rcvif = ifp; ==== //depot/projects/vimage/src/sys/netinet/tcp_hostcache.c#40 (text+ko) ==== @@ -675,6 +675,5 @@ callout_reset(&V_tcp_hc_callout, V_tcp_hostcache.prune * hz, tcp_hc_purge, arg); - CURVNET_RESTORE(); } ==== //depot/projects/vimage/src/sys/netipsec/key.c#43 (text+ko) ==== @@ -7271,18 +7271,6 @@ } REGTREE_UNLOCK(); - REGTREE_LOCK(); - for (i = 0; i <= SADB_SATYPE_MAX; i++) { - LIST_FOREACH(reg, &V_regtree[i], chain) { - if (__LIST_CHAINED(reg)) { - LIST_REMOVE(reg, chain); - free(reg, M_IPSEC_SAR); - break; - } - } - } - REGTREE_UNLOCK(); - ACQ_LOCK(); for (acq = LIST_FIRST(&V_spacqtree); acq != NULL; acq = nextacq) { nextacq = LIST_NEXT(acq, chain); ==== //depot/projects/vimage/src/sys/sys/mbuf.h#19 (text+ko) ==== @@ -200,7 +200,6 @@ #define M_PROTO7 0x00100000 /* protocol-specific */ #define M_PROTO8 0x00200000 /* protocol-specific */ #define M_FLOWID 0x00400000 /* flowid is valid */ -#define M_REMOTE_VNET 0x00800000 /* mbuf crossed boundary between two vnets */ /* * For RELENG_{6,7} steal these flags for limited multiple routing table * support. In RELENG_8 and beyond, use just one flag and a tag. From owner-p4-projects@FreeBSD.ORG Tue Jun 9 08:35:14 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id BF78B1065674; Tue, 9 Jun 2009 08:35:13 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 79B0010656A6 for ; Tue, 9 Jun 2009 08:35:13 +0000 (UTC) (envelope-from zec@fer.hr) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 685D38FC31 for ; Tue, 9 Jun 2009 08:35:13 +0000 (UTC) (envelope-from zec@fer.hr) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n598ZDso031442 for ; Tue, 9 Jun 2009 08:35:13 GMT (envelope-from zec@fer.hr) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n598ZDhd031438 for perforce@freebsd.org; Tue, 9 Jun 2009 08:35:13 GMT (envelope-from zec@fer.hr) Date: Tue, 9 Jun 2009 08:35:13 GMT Message-Id: <200906090835.n598ZDhd031438@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to zec@fer.hr using -f From: Marko Zec To: Perforce Change Reviews Cc: Subject: PERFORCE change 163871 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 09 Jun 2009 08:35:15 -0000 http://perforce.freebsd.org/chv.cgi?CH=163871 Change 163871 by zec@zec_tpx32 on 2009/06/09 08:34:52 When outbound path of the network stack calls into netgraph, depending on the netgraph topology configuration it is possible that the call graph will loop back to inbound network processing path. In such cases we must not permit direct dispatch of netisr handlers in the same call graph. This change introduces a new thread flag, TDF_NODIRNETISR, which prevents direct netisr dispatch when set. It is however mandatory that the caller clears this flag once the call into netgraph is completed. Discussed with: rwatson, julian, bz Affected files ... .. //depot/projects/vimage/src/sys/net/netisr.c#18 edit .. //depot/projects/vimage/src/sys/netgraph/ng_eiface.c#28 edit .. //depot/projects/vimage/src/sys/netgraph/ng_ether.c#26 edit .. //depot/projects/vimage/src/sys/netgraph/ng_iface.c#27 edit .. //depot/projects/vimage/src/sys/sys/proc.h#33 edit Differences ... ==== //depot/projects/vimage/src/sys/net/netisr.c#18 (text+ko) ==== @@ -872,7 +872,7 @@ /* * If direct dispatch is entirely disabled, fall back on queueing. */ - if (!netisr_direct) + if (!netisr_direct || curthread->td_flags & TDF_NODIRNETISR) return (netisr_queue_src(proto, source, m)); KASSERT(proto < NETISR_MAXPROT, ==== //depot/projects/vimage/src/sys/netgraph/ng_eiface.c#28 (text+ko) ==== @@ -261,7 +261,9 @@ * Send packet; if hook is not connected, mbuf will get * freed. */ + curthread->td_flags |= TDF_NODIRNETISR; NG_SEND_DATA_ONLY(error, priv->ether, m); + curthread->td_flags &= ~TDF_NODIRNETISR; /* Update stats */ if (error == 0) ==== //depot/projects/vimage/src/sys/netgraph/ng_ether.c#26 (text+ko) ==== @@ -242,7 +242,9 @@ /* If "lower" hook not connected, let packet continue */ if (priv->lower == NULL) return; + curthread->td_flags |= TDF_NODIRNETISR; NG_SEND_DATA_ONLY(error, priv->lower, *mp); /* sets *mp = NULL */ + curthread->td_flags &= ~TDF_NODIRNETISR; } /* ==== //depot/projects/vimage/src/sys/netgraph/ng_iface.c#27 (text+ko) ==== @@ -482,9 +482,10 @@ /* Copy length before the mbuf gets invalidated. */ len = m->m_pkthdr.len; - /* Send packet. If hook is not connected, - mbuf will get freed. */ + /* Send packet. If hook is not connected, mbuf will get freed. */ + curthread->td_flags |= TDF_NODIRNETISR; NG_SEND_DATA_ONLY(error, *get_hook_from_iffam(priv, iffam), m); + curthread->td_flags &= ~TDF_NODIRNETISR; /* Update stats. */ if (error == 0) { ==== //depot/projects/vimage/src/sys/sys/proc.h#33 (text+ko) ==== @@ -319,7 +319,7 @@ #define TDF_BOUNDARY 0x00000400 /* Thread suspended at user boundary */ #define TDF_ASTPENDING 0x00000800 /* Thread has some asynchronous events. */ #define TDF_TIMOFAIL 0x00001000 /* Timeout from sleep after we were awake. */ -#define TDF_UNUSED2000 0x00002000 /* --available-- */ +#define TDF_NODIRNETISR 0x00002000 /* Do not direct dispatch netisr handlers. */ #define TDF_UPIBLOCKED 0x00004000 /* Thread blocked on user PI mutex. */ #define TDF_NEEDSUSPCHK 0x00008000 /* Thread may need to suspend. */ #define TDF_NEEDRESCHED 0x00010000 /* Thread needs to yield. */ From owner-p4-projects@FreeBSD.ORG Tue Jun 9 09:47:27 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 402EE106567B; Tue, 9 Jun 2009 09:47:27 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id F1AE3106566B for ; Tue, 9 Jun 2009 09:47:26 +0000 (UTC) (envelope-from mav@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id DE9A78FC25 for ; Tue, 9 Jun 2009 09:47:26 +0000 (UTC) (envelope-from mav@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n599lQD8060882 for ; Tue, 9 Jun 2009 09:47:26 GMT (envelope-from mav@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n599lQhD060880 for perforce@freebsd.org; Tue, 9 Jun 2009 09:47:26 GMT (envelope-from mav@freebsd.org) Date: Tue, 9 Jun 2009 09:47:26 GMT Message-Id: <200906090947.n599lQhD060880@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to mav@freebsd.org using -f From: Alexander Motin To: Perforce Change Reviews Cc: Subject: PERFORCE change 163876 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 09 Jun 2009 09:47:28 -0000 http://perforce.freebsd.org/chv.cgi?CH=163876 Change 163876 by mav@mav_mavbook on 2009/06/09 09:47:10 Implement proper command ordering enforcement for the worst case of AHCI specification, when FIS based swhitching is not supported, but PM is present and NCQ commands to different devices are intermixed, and mixed with untagged commands. When collision condition detected, simq freezed and CCB saved for later, until all active requests processed or error detected. I have decided not to do it on upper layers, as some of this limitations are AHCI specific, and better controllers able to do all of this in silicon. Affected files ... .. //depot/projects/scottl-camlock/src/sys/dev/ahci/ahci.c#20 edit .. //depot/projects/scottl-camlock/src/sys/dev/ahci/ahci.h#8 edit Differences ... ==== //depot/projects/scottl-camlock/src/sys/dev/ahci/ahci.c#20 (text+ko) ==== @@ -66,7 +66,7 @@ static int ahci_ctlr_reset(device_t dev); static void ahci_begin_transaction(device_t dev, union ccb *ccb); static void ahci_dmasetprd(void *arg, bus_dma_segment_t *segs, int nsegs, int error); -static void ahci_execute_command(struct ahci_slot *slot); +static void ahci_execute_transaction(struct ahci_slot *slot); static void ahci_timeout(struct ahci_slot *slot); static void ahci_end_transaction(struct ahci_slot *slot, enum ahci_err_type et); static int ahci_hardreset(device_t dev, int port, uint32_t *signature); @@ -708,7 +708,7 @@ NULL, NULL, ch->dma.max_iosize * AHCI_MAX_SLOTS, AHCI_DMA_ENTRIES, ch->dma.segsize, - 0, NULL, NULL, &ch->dma.data_tag)) { + 0, busdma_lock_mutex, &ch->mtx, &ch->dma.data_tag)) { goto error; } return; @@ -882,6 +882,14 @@ res = ch->rslots & ~(cstatus | sstatus); err = 0; } + /* On error, requeue frozen command. */ + if (err && ch->frozen) { + union ccb *fccb = ch->frozen; + ch->frozen = NULL; + xpt_release_simq(ch->sim, TRUE); + fccb->ccb_h.status = CAM_REQUEUE_REQ; + xpt_done(fccb); + } /* Check all slots. */ for (i = 0; i < AHCI_MAX_SLOTS; i++) { /* Do we have an event on slot? */ @@ -906,6 +914,36 @@ mtx_unlock(&ch->mtx); } +/* Must be called with channel locked. */ +static int +ahci_check_collision(device_t dev, union ccb *ccb) +{ + struct ahci_channel *ch = device_get_softc(dev); + + if ((ccb->ccb_h.func_code == XPT_ATA_IO) && + (ccb->ataio.cmd.flags & CAM_ATAIO_FPDMA)) { + /* Tagged command while untagged are active. */ + if (ch->numrslots != 0 && ch->numtslots == 0) + return (1); + /* Tagged command while tagged to other target is active. */ + if (ch->numtslots != 0 && + ch->taggedtarget != ccb->ccb_h.target_id) + return (1); + } else { + /* Untagged command while tagged are active. */ + if (ch->numrslots != 0 && ch->numtslots != 0) + return (1); + } + if ((ccb->ccb_h.func_code == XPT_ATA_IO) && + (ccb->ataio.cmd.flags & CAM_ATAIO_CONTROL)) { + /* Control command while anything active. */ + if (ch->numrslots != 0) + return (1); + } + return (0); +} + +/* Must be called with channel locked. */ static void ahci_begin_transaction(device_t dev, union ccb *ccb) { @@ -913,6 +951,7 @@ struct ahci_slot *slot; int tag; + /* Choose empty slot. */ tag = ch->lastslot; do { tag++; @@ -924,15 +963,21 @@ if (tag == ch->lastslot) device_printf(ch->dev, "ALL SLOTS BUSY!\n"); ch->lastslot = tag; - + /* Occupy chosen slot. */ slot = &ch->slot[tag]; //device_printf(slot->dev, "%s slot %d\n", __func__, slot->slot); - slot->state = AHCI_SLOT_TAKEN; slot->ccb = ccb; slot->dma.nsegs = 0; - - /* if request moves data setup and load SG list */ + /* Update channel stats. */ + ch->numrslots++; + if ((slot->ccb->ccb_h.func_code == XPT_ATA_IO) && + (slot->ccb->ataio.cmd.flags & CAM_ATAIO_FPDMA)) { + ch->numtslots++; + ch->taggedtarget = ccb->ccb_h.target_id; + } + /* If request moves data, setup and load SG list */ if ((ccb->ccb_h.flags & CAM_DIR_MASK) != CAM_DIR_NONE) { + slot->state = AHCI_SLOT_LOADING; if (ccb->ccb_h.func_code == XPT_ATA_IO) { if (bus_dmamap_load(ch->dma.data_tag, slot->dma.data_map, ccb->ataio.data_ptr, ccb->ataio.dxfer_len, @@ -946,12 +991,11 @@ device_printf(dev, "FAILURE - load data\n"); } } - return; - } - - ahci_execute_command(slot); + } else + ahci_execute_transaction(slot); } +/* Locked by busdma engine. */ void ahci_dmasetprd(void *arg, bus_dma_segment_t *segs, int nsegs, int error) { @@ -986,52 +1030,53 @@ ((slot->ccb->ccb_h.flags & CAM_DIR_IN) ? BUS_DMASYNC_PREREAD : BUS_DMASYNC_PREWRITE)); - ahci_execute_command(slot); + ahci_execute_transaction(slot); } +/* Must be called with channel locked. */ static void -ahci_execute_command(struct ahci_slot *slot) +ahci_execute_transaction(struct ahci_slot *slot) { - struct ahci_channel *ch = device_get_softc(slot->dev); + device_t dev = slot->dev; + struct ahci_channel *ch = device_get_softc(dev); struct ahci_cmd_tab *ctp; struct ahci_cmd_list *clp; - int port = slot->ccb->ccb_h.target_id & 0x0f; + union ccb *ccb = slot->ccb; + int port = ccb->ccb_h.target_id & 0x0f; int fis_size; -//device_printf(slot->dev, "%s slot %d\n", __func__, slot->slot); - slot->state = AHCI_SLOT_LOADED; +//device_printf(dev, "%s slot %d\n", __func__, slot->slot); /* Get a piece of the workspace for this request */ ctp = (struct ahci_cmd_tab *) (ch->dma.work + AHCI_CT_OFFSET + (AHCI_CT_SIZE * slot->slot)); /* Setup the FIS for this request */ - if (!(fis_size = ahci_setup_fis(ctp, slot->ccb, slot->slot))) { + if (!(fis_size = ahci_setup_fis(ctp, ccb, slot->slot))) { device_printf(ch->dev, "setting up SATA FIS failed\n"); - slot->ccb->ccb_h.status = CAM_REQ_INVALID; - xpt_done(slot->ccb); + ccb->ccb_h.status = CAM_REQ_INVALID; + xpt_done(ccb); return; } /* Setup the command list entry */ clp = (struct ahci_cmd_list *) (ch->dma.work + AHCI_CL_OFFSET + (AHCI_CL_SIZE * slot->slot)); clp->prd_length = slot->dma.nsegs; - clp->cmd_flags = (slot->ccb->ccb_h.flags & CAM_DIR_OUT ? AHCI_CMD_WRITE : 0) | - (slot->ccb->ccb_h.func_code == XPT_SCSI_IO ? + clp->cmd_flags = (ccb->ccb_h.flags & CAM_DIR_OUT ? AHCI_CMD_WRITE : 0) | + (ccb->ccb_h.func_code == XPT_SCSI_IO ? (AHCI_CMD_ATAPI | AHCI_CMD_PREFETCH) : 0) | (fis_size / sizeof(u_int32_t)) | (port << 12); /* Special handling for Soft Reset command. */ - if ((slot->ccb->ccb_h.func_code == XPT_ATA_IO) && - (slot->ccb->ataio.cmd.flags & CAM_ATAIO_CONTROL) && - slot->ccb->ataio.cmd.control & ATA_A_RESET) { + if ((ccb->ccb_h.func_code == XPT_ATA_IO) && + (ccb->ataio.cmd.flags & CAM_ATAIO_CONTROL) && + ccb->ataio.cmd.control & ATA_A_RESET) { clp->cmd_flags |= AHCI_CMD_RESET | AHCI_CMD_CLR_BUSY; } clp->bytecount = 0; clp->cmd_table_phys = htole64(ch->dma.work_bus + AHCI_CT_OFFSET + (AHCI_CT_SIZE * slot->slot)); /* Set ACTIVE bit for NCQ commands. */ - if ((slot->ccb->ccb_h.func_code == XPT_ATA_IO) && - (slot->ccb->ataio.cmd.flags & CAM_ATAIO_FPDMA)) { - ch->aslots |= (1 << slot->slot); + if ((ccb->ccb_h.func_code == XPT_ATA_IO) && + (ccb->ataio.cmd.flags & CAM_ATAIO_FPDMA)) { ATA_OUTL(ch->r_mem, AHCI_P_SACT, 1 << slot->slot); } /* Issue command to the controller. */ @@ -1054,11 +1099,11 @@ ATA_INL(ch->r_mem, AHCI_P_SIG)); */ /* Device reset commands doesn't interrupt. Poll them. */ - if (slot->ccb->ccb_h.func_code == XPT_ATA_IO && - (slot->ccb->ataio.cmd.command == ATA_DEVICE_RESET || - (slot->ccb->ataio.cmd.flags & CAM_ATAIO_CONTROL))) { + if (ccb->ccb_h.func_code == XPT_ATA_IO && + (ccb->ataio.cmd.command == ATA_DEVICE_RESET || + (ccb->ataio.cmd.flags & CAM_ATAIO_CONTROL))) { u_int32_t status; - int count, timeout = slot->ccb->ccb_h.timeout; + int count, timeout = ccb->ccb_h.timeout; enum ahci_err_type et = AHCI_ERR_NONE; for (count = 0; count < timeout; count++) { @@ -1080,7 +1125,7 @@ } /* start the timeout */ - callout_reset(&slot->timeout, (int)slot->ccb->ccb_h.timeout * hz / 1000, + callout_reset(&slot->timeout, (int)ccb->ccb_h.timeout * hz / 1000, (timeout_t*)ahci_timeout, slot); return; } @@ -1095,6 +1140,13 @@ int i; device_printf(dev, "Timeout on slot %d\n", slot->slot); + if (ch->frozen) { + union ccb *fccb = ch->frozen; + ch->frozen = NULL; + xpt_release_simq(ch->sim, TRUE); + fccb->ccb_h.status = CAM_SCSI_BUS_RESET; + xpt_done(fccb); + } ahci_stop(dev); for (i = 0; i < AHCI_MAX_SLOTS; i++) { /* Do we have a running request on slot? */ @@ -1115,14 +1167,15 @@ { device_t dev = slot->dev; struct ahci_channel *ch = device_get_softc(dev); + union ccb *ccb = slot->ccb; // struct ahci_cmd_list *clp; //device_printf(dev, "%s slot %d\n", __func__, slot->slot); /* Kill the timeout */ callout_stop(&slot->timeout); /* Read registers to the result struct */ - if (slot->ccb->ccb_h.func_code == XPT_ATA_IO) { - struct ata_res *res = &slot->ccb->ataio.res; + if (ccb->ccb_h.func_code == XPT_ATA_IO) { + struct ata_res *res = &ccb->ataio.res; u_int8_t *fis = ch->dma.work + AHCI_FB_OFFSET + 0x40; res->status = fis[2]; @@ -1143,45 +1196,58 @@ (ch->dma.work + AHCI_CL_OFFSET + (AHCI_CL_SIZE * slot->slot)); request->donecount = clp->bytecount; #endif - if ((slot->ccb->ccb_h.flags & CAM_DIR_MASK) != CAM_DIR_NONE) { + if ((ccb->ccb_h.flags & CAM_DIR_MASK) != CAM_DIR_NONE) { bus_dmamap_sync(slot->dma.sg_tag, slot->dma.sg_map, BUS_DMASYNC_POSTWRITE); bus_dmamap_sync(ch->dma.data_tag, slot->dma.data_map, - (slot->ccb->ccb_h.flags & CAM_DIR_IN) ? + (ccb->ccb_h.flags & CAM_DIR_IN) ? BUS_DMASYNC_POSTREAD : BUS_DMASYNC_POSTWRITE); bus_dmamap_unload(ch->dma.data_tag, slot->dma.data_map); } /* Set proper result status. */ switch (et) { case AHCI_ERR_NONE: - slot->ccb->ccb_h.status = CAM_REQ_CMP; - if (slot->ccb->ccb_h.func_code == XPT_SCSI_IO) - slot->ccb->csio.scsi_status = SCSI_STATUS_OK; + ccb->ccb_h.status = CAM_REQ_CMP; + if (ccb->ccb_h.func_code == XPT_SCSI_IO) + ccb->csio.scsi_status = SCSI_STATUS_OK; break; case AHCI_ERR_REAL: - if (slot->ccb->ccb_h.func_code == XPT_SCSI_IO) { - slot->ccb->ccb_h.status = CAM_SCSI_STATUS_ERROR; - slot->ccb->csio.scsi_status = SCSI_STATUS_CHECK_COND; + if (ccb->ccb_h.func_code == XPT_SCSI_IO) { + ccb->ccb_h.status = CAM_SCSI_STATUS_ERROR; + ccb->csio.scsi_status = SCSI_STATUS_CHECK_COND; } else - slot->ccb->ccb_h.status = CAM_REQ_CMP_ERR; + ccb->ccb_h.status = CAM_REQ_CMP_ERR; break; case AHCI_ERR_BTW: - slot->ccb->ccb_h.status = CAM_REQUEUE_REQ; + ccb->ccb_h.status = CAM_REQUEUE_REQ; break; case AHCI_ERR_RESET: - slot->ccb->ccb_h.status = CAM_SCSI_BUS_RESET; + ccb->ccb_h.status = CAM_SCSI_BUS_RESET; break; case AHCI_ERR_TIMEOUT: - slot->ccb->ccb_h.status = CAM_CMD_TIMEOUT; + ccb->ccb_h.status = CAM_CMD_TIMEOUT; break; default: - slot->ccb->ccb_h.status = CAM_REQ_CMP_ERR; + ccb->ccb_h.status = CAM_REQ_CMP_ERR; } - xpt_done(slot->ccb); + /* Free slot. */ ch->rslots &= ~(1 << slot->slot); slot->state = AHCI_SLOT_EMPTY; slot->ccb = NULL; - return; + /* Update channel stats. */ + ch->numrslots--; + if ((ccb->ccb_h.func_code == XPT_ATA_IO) && + (ccb->ataio.cmd.flags & CAM_ATAIO_FPDMA)) { + ch->numtslots--; + } + xpt_done(ccb); + if (ch->frozen && ch->numrslots == 0) { + union ccb *fccb = ch->frozen; +//device_printf(dev, "Unfreeze\n"); + ch->frozen = NULL; + ahci_begin_transaction(dev, fccb); + xpt_release_simq(ch->sim, TRUE); + } } static void @@ -1464,12 +1530,14 @@ static void ahciaction(struct cam_sim *sim, union ccb *ccb) { + device_t dev; struct ahci_channel *ch; - CAM_DEBUG(ccb->ccb_h.path, CAM_DEBUG_TRACE, ("ahciaction func_codeL%d\n", + CAM_DEBUG(ccb->ccb_h.path, CAM_DEBUG_TRACE, ("ahciaction func_code=%x\n", ccb->ccb_h.func_code)); ch = (struct ahci_channel *)cam_sim_softc(sim); + dev = ch->dev; //device_printf(ch->dev, "ccb func 0x%x %d:%d\n", ccb->ccb_h.func_code, ccb->ccb_h.target_id, ccb->ccb_h.target_lun); switch (ccb->ccb_h.func_code) { /* Common cases first */ @@ -1480,7 +1548,16 @@ xpt_done(ccb); break; } - ahci_begin_transaction(ch->dev, ccb); + /* Check for command collision. */ + if (ahci_check_collision(dev, ccb)) { + /* Freeze command. */ +//device_printf(dev, "Freeze\n"); + /* We have only one frozen slot, so freeze simq also. */ + xpt_freeze_simq(ch->sim, 1); + ch->frozen = ccb; + return; + } + ahci_begin_transaction(dev, ccb); break; case XPT_EN_LUN: /* Enable LUN as a target */ case XPT_TARGET_IO: /* Execute target I/O request */ @@ -1555,7 +1632,7 @@ #endif case XPT_RESET_BUS: /* Reset the specified SCSI bus */ case XPT_RESET_DEV: /* Bus Device Reset the specified SCSI device */ - ahci_reset(ch->dev); + ahci_reset(dev); ccb->ccb_h.status = CAM_REQ_CMP; xpt_done(ccb); break; ==== //depot/projects/scottl-camlock/src/sys/dev/ahci/ahci.h#8 (text+ko) ==== @@ -329,8 +329,7 @@ enum ahci_slot_states { AHCI_SLOT_EMPTY, - AHCI_SLOT_TAKEN, - AHCI_SLOT_LOADED, + AHCI_SLOT_LOADING, AHCI_SLOT_RUNNING, AHCI_SLOT_WAITING }; @@ -377,8 +376,11 @@ struct ahci_slot slot[AHCI_MAX_SLOTS]; uint32_t rslots; /* Running slots */ - uint32_t aslots; /* SACTIVE slots */ + int numrslots; /* Number of running slots */ + int numtslots; /* Number of tagged slots */ int lastslot; /* Last used slot */ + int taggedtarget; /* Last tagged target */ + union ccb *frozen; /* Frozen command */ }; /* structure describing a AHCI controller */ From owner-p4-projects@FreeBSD.ORG Tue Jun 9 10:09:50 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 5145A1065677; Tue, 9 Jun 2009 10:09:50 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 0F8EE1065672 for ; Tue, 9 Jun 2009 10:09:50 +0000 (UTC) (envelope-from rene@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id F094B8FC18 for ; Tue, 9 Jun 2009 10:09:49 +0000 (UTC) (envelope-from rene@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n59A9nmO063491 for ; Tue, 9 Jun 2009 10:09:49 GMT (envelope-from rene@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n59A9nKW063489 for perforce@freebsd.org; Tue, 9 Jun 2009 10:09:49 GMT (envelope-from rene@FreeBSD.org) Date: Tue, 9 Jun 2009 10:09:49 GMT Message-Id: <200906091009.n59A9nKW063489@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to rene@FreeBSD.org using -f From: Rene Ladan To: Perforce Change Reviews Cc: Subject: PERFORCE change 163879 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 09 Jun 2009 10:09:51 -0000 http://perforce.freebsd.org/chv.cgi?CH=163879 Change 163879 by rene@rene_self on 2009/06/09 10:09:12 IFC Affected files ... .. //depot/projects/docproj_nl/en_US.ISO8859-1/articles/contributors/contrib.committers.sgml#26 integrate .. //depot/projects/docproj_nl/en_US.ISO8859-1/books/faq/book.sgml#22 integrate .. //depot/projects/docproj_nl/en_US.ISO8859-1/books/handbook/eresources/chapter.sgml#14 integrate .. //depot/projects/docproj_nl/en_US.ISO8859-1/books/handbook/jails/chapter.sgml#4 integrate .. //depot/projects/docproj_nl/en_US.ISO8859-1/books/porters-handbook/book.sgml#33 integrate .. //depot/projects/docproj_nl/nl_NL.ISO8859-1/articles/explaining-bsd/article.sgml#16 integrate .. //depot/projects/docproj_nl/nl_NL.ISO8859-1/books/handbook/introduction/chapter.sgml#20 integrate .. //depot/projects/docproj_nl/nl_NL.ISO8859-1/share/sgml/trademarks.ent#5 integrate .. //depot/projects/docproj_nl/share/pgpkeys/np.key#1 branch .. //depot/projects/docproj_nl/share/pgpkeys/pgpkeys-developers.sgml#21 integrate .. //depot/projects/docproj_nl/share/pgpkeys/pgpkeys.ent#19 integrate .. //depot/projects/docproj_nl/share/pgpkeys/tuexen.key#1 branch .. //depot/projects/docproj_nl/www/en/developers.sgml#20 integrate .. //depot/projects/docproj_nl/www/en/releases/7.2R/errata.html#5 integrate .. //depot/projects/docproj_nl/www/nl/administration.sgml#8 integrate .. //depot/projects/docproj_nl/www/nl/index.xsl#13 integrate .. //depot/projects/docproj_nl/www/nl/share/sgml/header.l10n.ent#10 integrate .. //depot/projects/docproj_nl/www/share/sgml/events.xml#18 integrate .. //depot/projects/docproj_nl/www/share/sgml/news.xml#44 integrate Differences ... ==== //depot/projects/docproj_nl/en_US.ISO8859-1/articles/contributors/contrib.committers.sgml#26 (text+ko) ==== @@ -1,4 +1,4 @@ - + @@ -1192,7 +1192,7 @@ This is a forum about Gecko applications using &os;. - Discussion centers, around Gecko Ports applications, + Discussion centers around Gecko Ports applications, their installation, their development and their support within &os;. ==== //depot/projects/docproj_nl/en_US.ISO8859-1/books/handbook/jails/chapter.sgml#4 (text+ko) ==== @@ -1,7 +1,7 @@ @@ -242,7 +242,8 @@ &prompt.root; setenv D /here/is/the/jail &prompt.root; mkdir -p $D &prompt.root; cd /usr/src -&prompt.root; make world DESTDIR=$D +&prompt.root; make buildworld +&prompt.root; make installworld DESTDIR=$D &prompt.root; cd etc/ This step is not required on &os; 6.0 and later. &prompt.root; make distribution DESTDIR=$D @@ -262,13 +263,17 @@ of the &os; base system. - + + If you have already rebuilt your userland using + make world or make buildworld, + you can skip this step and install your existing userland into the + new jail. + + + This command will populate the directory subtree chosen as jail's physical location on the file system with the - necessary binaries, libraries, manual pages and so on. - Everything is done in the typical &os; style — first - everything is built/compiled, then installed to the - destination path. + necessary binaries, libraries, manual pages and so on. ==== //depot/projects/docproj_nl/en_US.ISO8859-1/books/porters-handbook/book.sgml#33 (text+ko) ==== @@ -1,7 +1,7 @@ + + 800097 + June 8, 2009 + 8.0-CURRENT after the introduction of vnet + destructor hooks and infrastructure. + ==== //depot/projects/docproj_nl/nl_NL.ISO8859-1/articles/explaining-bsd/article.sgml#16 (text+ko) ==== @@ -1,4 +1,4 @@ - + ==== //depot/projects/docproj_nl/nl_NL.ISO8859-1/books/handbook/introduction/chapter.sgml#20 (text+ko) ==== @@ -1,7 +1,7 @@ ==== //depot/projects/docproj_nl/share/pgpkeys/pgpkeys-developers.sgml#21 (text+ko) ==== @@ -1,7 +1,7 @@ @@ -961,6 +961,11 @@ &pgpkey.sat; + + &a.np; + &pgpkey.np; + + &a.rpaulo; &pgpkey.rpaulo; @@ -1336,6 +1341,11 @@ &pgpkey.ganbold; + + &a.tuexen; + &pgpkey.tuexen; + + &a.ume; &pgpkey.ume; ==== //depot/projects/docproj_nl/share/pgpkeys/pgpkeys.ent#19 (text+ko) ==== @@ -1,5 +1,5 @@ - + @@ -215,6 +215,7 @@ + @@ -292,6 +293,7 @@ + ==== //depot/projects/docproj_nl/www/en/developers.sgml#20 (text+ko) ==== @@ -6,7 +6,7 @@ us to update author names, or the representation of those names (such as adding email addresses), by just editing a single file. -$FreeBSD: www/en/developers.sgml,v 1.226 2009/06/04 16:22:32 linimon Exp $ +$FreeBSD: www/en/developers.sgml,v 1.228 2009/06/08 16:03:29 np Exp $ --> @@ -404,6 +404,7 @@ + @@ -552,6 +553,7 @@ + ==== //depot/projects/docproj_nl/www/en/releases/7.2R/errata.html#5 (text+ko) ==== @@ -19,7 +19,7 @@

    $FreeBSD: stable/7/release/doc/en_US.ISO8859-1/errata/article.sgml -192411 2009-05-20 00:55:26Z hrs $
    +193687 2009-06-08 05:11:35Z hrs $

    @@ -133,6 +133,12 @@ -tso parameter (per interface basis) or setting net.inet.tcp.tso to 0 (globally on the system). An Errata Notice to fix this problem is planned after the release.

    + +

    [20090608] An issue was found in the bge(4) driver that it +can cause a system panic upon reboot with heavy network traffic. A fix has been committed +to RELENG_7 (r192127).

    ==== //depot/projects/docproj_nl/www/nl/administration.sgml#8 (text+ko) ==== @@ -1,5 +1,5 @@ + %developers; ==== //depot/projects/docproj_nl/www/nl/index.xsl#13 (text+ko) ==== @@ -8,7 +8,7 @@ ]> - + ==== //depot/projects/docproj_nl/www/nl/share/sgml/header.l10n.ent#10 (text+ko) ==== @@ -1,4 +1,4 @@ - ==== //depot/projects/docproj_nl/www/share/sgml/events.xml#18 (text+ko) ==== @@ -10,7 +10,7 @@ - $FreeBSD: www/share/sgml/events.xml,v 1.72 2009/05/18 12:53:22 brueffer Exp $ + $FreeBSD: www/share/sgml/events.xml,v 1.73 2009/06/08 17:56:30 delphij Exp $ @@ -89,6 +89,29 @@ OSI-approved license. + + 10th Libre Software Meeting + http://2009.rmll.info/?lang=en + + 2009 + 7 + 7 + + + 2009 + 7 + 11 + + + France + Nantes + Nantes University + + The Libre Software Meeting has occurred each year + since July 2000. This year there will again be a FreeBSD boot + camp to introduce new users to the Operating System. + + BSDday Argentina 2009 http://www.bsdday.com.ar/ ==== //depot/projects/docproj_nl/www/share/sgml/news.xml#44 (text+ko) ==== @@ -25,7 +25,7 @@ - $FreeBSD: www/share/sgml/news.xml,v 1.260 2009/06/04 10:43:56 erwin Exp $ + $FreeBSD: www/share/sgml/news.xml,v 1.262 2009/06/08 16:03:29 np Exp $ @@ -36,6 +36,20 @@ 6 + 8 + + +

    New committer: Navdeep + Parhar (src)

    +
    + + +

    New committer: Michael + Tuexen (src)

    +
    +
    + + 4 From owner-p4-projects@FreeBSD.ORG Tue Jun 9 10:35:17 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id D00861065677; Tue, 9 Jun 2009 10:35:16 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 8F7671065670 for ; Tue, 9 Jun 2009 10:35:16 +0000 (UTC) (envelope-from zec@fer.hr) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 7E4B38FC25 for ; Tue, 9 Jun 2009 10:35:16 +0000 (UTC) (envelope-from zec@fer.hr) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n59AZGCD065518 for ; Tue, 9 Jun 2009 10:35:16 GMT (envelope-from zec@fer.hr) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n59AZG4H065516 for perforce@freebsd.org; Tue, 9 Jun 2009 10:35:16 GMT (envelope-from zec@fer.hr) Date: Tue, 9 Jun 2009 10:35:16 GMT Message-Id: <200906091035.n59AZG4H065516@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to zec@fer.hr using -f From: Marko Zec To: Perforce Change Reviews Cc: Subject: PERFORCE change 163881 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 09 Jun 2009 10:35:17 -0000 http://perforce.freebsd.org/chv.cgi?CH=163881 Change 163881 by zec@zec_amdx4 on 2009/06/09 10:35:07 IFC @ 163880 in order to unbreak build on amd64. Affected files ... .. //depot/projects/vimage/src/sys/amd64/isa/clock.c#13 integrate .. //depot/projects/vimage/src/sys/modules/sound/sound/Makefile#5 integrate .. //depot/projects/vimage/src/sys/net/flowtable.c#3 integrate .. //depot/projects/vimage/src/sys/net/if_gif.c#32 integrate Differences ... ==== //depot/projects/vimage/src/sys/amd64/isa/clock.c#13 (text+ko) ==== @@ -33,7 +33,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/amd64/isa/clock.c,v 1.247 2009/06/09 07:26:52 ariff Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/isa/clock.c,v 1.248 2009/06/09 09:47:02 bz Exp $"); /* * Routines to handle clock hardware. @@ -535,7 +535,7 @@ cpu_startprofclock(void) { - if (using_lapic_timer || !using_atrtc_clock) + if (using_lapic_timer || !using_atrtc_timer) return; atrtc_rate(RTCSA_PROF); psdiv = pscnt = psratio; @@ -545,7 +545,7 @@ cpu_stopprofclock(void) { - if (using_lapic_timer || !using_atrtc_clock) + if (using_lapic_timer || !using_atrtc_timer) return; atrtc_rate(RTCSA_NOPROF); psdiv = pscnt = 1; ==== //depot/projects/vimage/src/sys/modules/sound/sound/Makefile#5 (text+ko) ==== @@ -1,4 +1,4 @@ -# $FreeBSD: src/sys/modules/sound/sound/Makefile,v 1.23 2009/06/07 19:12:08 ariff Exp $ +# $FreeBSD: src/sys/modules/sound/sound/Makefile,v 1.25 2009/06/09 10:17:22 ariff Exp $ .PATH: ${.CURDIR}/../../../dev/sound .PATH: ${.CURDIR}/../../../dev/sound/pcm @@ -19,13 +19,13 @@ SRCS+= mixer.c sndstat.c sound.c unit.c vchan.c SRCS+= midi.c mpu401.c sequencer.c -feeder_eq_gen.h: +feeder_eq_gen.h: @ @/tools/feeder_eq_mkfilter.awk machine ${AWK} -f @/tools/feeder_eq_mkfilter.awk -- ${FEEDER_EQ_PRESETS} > ${.TARGET} -feeder_rate_gen.h: +feeder_rate_gen.h: @ @/tools/feeder_rate_mkfilter.awk machine ${AWK} -f @/tools/feeder_rate_mkfilter.awk -- ${FEEDER_RATE_PRESETS} > ${.TARGET} -snd_fxdiv_gen.h: +snd_fxdiv_gen.h: @ @/tools/snd_fxdiv_gen.awk machine ${AWK} -f @/tools/snd_fxdiv_gen.awk -- > ${.TARGET} CLEANFILES+= feeder_eq_gen.h feeder_rate_gen.h snd_fxdiv_gen.h ==== //depot/projects/vimage/src/sys/net/flowtable.c#3 (text+ko) ==== @@ -31,7 +31,7 @@ #include "opt_mpath.h" #include -__FBSDID("$FreeBSD: src/sys/net/flowtable.c,v 1.5 2009/04/27 22:45:19 kmacy Exp $"); +__FBSDID("$FreeBSD: src/sys/net/flowtable.c,v 1.6 2009/06/09 09:50:43 bz Exp $"); #include #include @@ -407,7 +407,7 @@ in_rtalloc_ign_wrapper(struct route *ro, uint32_t hash, u_int fib) { - in_rtalloc_ign(ro, 0, fib); + rtalloc_ign_fib(ro, 0, fib); } #endif ==== //depot/projects/vimage/src/sys/net/if_gif.c#32 (text+ko) ==== @@ -1,4 +1,4 @@ -/* $FreeBSD: src/sys/net/if_gif.c,v 1.82 2009/06/09 02:27:59 hrs Exp $ */ +/* $FreeBSD: src/sys/net/if_gif.c,v 1.83 2009/06/09 08:09:30 hrs Exp $ */ /* $KAME: if_gif.c,v 1.87 2001/10/19 08:50:27 itojun Exp $ */ /*- @@ -912,13 +912,13 @@ case GIFSOPTS: if ((error = priv_check(curthread, PRIV_NET_GIF)) != 0) break; - if (!(error = copyin(ifr->ifr_data, &options, - sizeof(options)))) { - if ((options | GIF_OPTMASK) == GIF_OPTMASK) - sc->gif_options = options; - else - error = EINVAL; - } + error = copyin(ifr->ifr_data, &options, sizeof(options)); + if (error) + break; + if (options & ~GIF_OPTMASK) + error = EINVAL; + else + sc->gif_options = options; break; default: From owner-p4-projects@FreeBSD.ORG Tue Jun 9 10:39:21 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 911421065680; Tue, 9 Jun 2009 10:39:21 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 0F7431065686 for ; Tue, 9 Jun 2009 10:39:21 +0000 (UTC) (envelope-from zec@fer.hr) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id F28EA8FC18 for ; Tue, 9 Jun 2009 10:39:20 +0000 (UTC) (envelope-from zec@fer.hr) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n59AdKRB065784 for ; Tue, 9 Jun 2009 10:39:20 GMT (envelope-from zec@fer.hr) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n59AdKMi065782 for perforce@freebsd.org; Tue, 9 Jun 2009 10:39:20 GMT (envelope-from zec@fer.hr) Date: Tue, 9 Jun 2009 10:39:20 GMT Message-Id: <200906091039.n59AdKMi065782@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to zec@fer.hr using -f From: Marko Zec To: Perforce Change Reviews Cc: Subject: PERFORCE change 163882 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 09 Jun 2009 10:39:22 -0000 http://perforce.freebsd.org/chv.cgi?CH=163882 Change 163882 by zec@zec_amdx4 on 2009/06/09 10:39:17 Unbreak LINT / VLINT build. Affected files ... .. //depot/projects/vimage/src/sys/netinet/ipfw/ip_fw2.c#2 edit .. //depot/projects/vimage/src/sys/netinet/ipfw/ip_fw_nat.c#2 edit Differences ... ==== //depot/projects/vimage/src/sys/netinet/ipfw/ip_fw2.c#2 (text+ko) ==== @@ -133,19 +133,6 @@ static uma_zone_t ipfw_dyn_rule_zone; /* - * Data structure to cache our ucred related - * information. This structure only gets used if - * the user specified UID/GID based constraints in - * a firewall rule. - */ -struct ip_fw_ugid { - gid_t fw_groups[NGROUPS]; - int fw_ngroups; - uid_t fw_uid; - int fw_prid; -}; - -/* * list of rules for layer 3 */ #ifdef VIMAGE_GLOBALS @@ -161,12 +148,6 @@ ipfw_nat_cfg_t *ipfw_nat_get_cfg_ptr; ipfw_nat_cfg_t *ipfw_nat_get_log_ptr; -struct table_entry { - struct radix_node rn[2]; - struct sockaddr_in addr, mask; - u_int32_t value; -}; - #ifdef VIMAGE_GLOBALS static int autoinc_step; #endif ==== //depot/projects/vimage/src/sys/netinet/ipfw/ip_fw_nat.c#2 (text+ko) ==== @@ -609,7 +609,7 @@ NULL, EVENTHANDLER_PRI_ANY); } -static void +void ipfw_nat_destroy(void) { INIT_VNET_IPFW(curvnet); From owner-p4-projects@FreeBSD.ORG Tue Jun 9 10:57:40 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id B30051065673; Tue, 9 Jun 2009 10:57:39 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 73178106566B for ; Tue, 9 Jun 2009 10:57:39 +0000 (UTC) (envelope-from zec@fer.hr) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 61B548FC0A for ; Tue, 9 Jun 2009 10:57:39 +0000 (UTC) (envelope-from zec@fer.hr) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n59Avdta067190 for ; Tue, 9 Jun 2009 10:57:39 GMT (envelope-from zec@fer.hr) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n59Avd8f067188 for perforce@freebsd.org; Tue, 9 Jun 2009 10:57:39 GMT (envelope-from zec@fer.hr) Date: Tue, 9 Jun 2009 10:57:39 GMT Message-Id: <200906091057.n59Avd8f067188@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to zec@fer.hr using -f From: Marko Zec To: Perforce Change Reviews Cc: Subject: PERFORCE change 163883 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 09 Jun 2009 10:57:40 -0000 http://perforce.freebsd.org/chv.cgi?CH=163883 Change 163883 by zec@zec_amdx4 on 2009/06/09 10:57:18 IFC @ 163880 in order to unbreak build on amd64. Affected files ... .. //depot/projects/vimage-commit2/src/sys/amd64/isa/clock.c#5 integrate .. //depot/projects/vimage-commit2/src/sys/modules/sound/sound/Makefile#4 integrate .. //depot/projects/vimage-commit2/src/sys/net/flowtable.c#3 integrate .. //depot/projects/vimage-commit2/src/sys/net/if_gif.c#30 integrate Differences ... ==== //depot/projects/vimage-commit2/src/sys/amd64/isa/clock.c#5 (text+ko) ==== @@ -33,7 +33,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/amd64/isa/clock.c,v 1.247 2009/06/09 07:26:52 ariff Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/isa/clock.c,v 1.248 2009/06/09 09:47:02 bz Exp $"); /* * Routines to handle clock hardware. @@ -535,7 +535,7 @@ cpu_startprofclock(void) { - if (using_lapic_timer || !using_atrtc_clock) + if (using_lapic_timer || !using_atrtc_timer) return; atrtc_rate(RTCSA_PROF); psdiv = pscnt = psratio; @@ -545,7 +545,7 @@ cpu_stopprofclock(void) { - if (using_lapic_timer || !using_atrtc_clock) + if (using_lapic_timer || !using_atrtc_timer) return; atrtc_rate(RTCSA_NOPROF); psdiv = pscnt = 1; ==== //depot/projects/vimage-commit2/src/sys/modules/sound/sound/Makefile#4 (text+ko) ==== @@ -1,4 +1,4 @@ -# $FreeBSD: src/sys/modules/sound/sound/Makefile,v 1.23 2009/06/07 19:12:08 ariff Exp $ +# $FreeBSD: src/sys/modules/sound/sound/Makefile,v 1.25 2009/06/09 10:17:22 ariff Exp $ .PATH: ${.CURDIR}/../../../dev/sound .PATH: ${.CURDIR}/../../../dev/sound/pcm @@ -19,13 +19,13 @@ SRCS+= mixer.c sndstat.c sound.c unit.c vchan.c SRCS+= midi.c mpu401.c sequencer.c -feeder_eq_gen.h: +feeder_eq_gen.h: @ @/tools/feeder_eq_mkfilter.awk machine ${AWK} -f @/tools/feeder_eq_mkfilter.awk -- ${FEEDER_EQ_PRESETS} > ${.TARGET} -feeder_rate_gen.h: +feeder_rate_gen.h: @ @/tools/feeder_rate_mkfilter.awk machine ${AWK} -f @/tools/feeder_rate_mkfilter.awk -- ${FEEDER_RATE_PRESETS} > ${.TARGET} -snd_fxdiv_gen.h: +snd_fxdiv_gen.h: @ @/tools/snd_fxdiv_gen.awk machine ${AWK} -f @/tools/snd_fxdiv_gen.awk -- > ${.TARGET} CLEANFILES+= feeder_eq_gen.h feeder_rate_gen.h snd_fxdiv_gen.h ==== //depot/projects/vimage-commit2/src/sys/net/flowtable.c#3 (text+ko) ==== @@ -31,7 +31,7 @@ #include "opt_mpath.h" #include -__FBSDID("$FreeBSD: src/sys/net/flowtable.c,v 1.5 2009/04/27 22:45:19 kmacy Exp $"); +__FBSDID("$FreeBSD: src/sys/net/flowtable.c,v 1.6 2009/06/09 09:50:43 bz Exp $"); #include #include @@ -407,7 +407,7 @@ in_rtalloc_ign_wrapper(struct route *ro, uint32_t hash, u_int fib) { - in_rtalloc_ign(ro, 0, fib); + rtalloc_ign_fib(ro, 0, fib); } #endif ==== //depot/projects/vimage-commit2/src/sys/net/if_gif.c#30 (text+ko) ==== @@ -1,4 +1,4 @@ -/* $FreeBSD: src/sys/net/if_gif.c,v 1.82 2009/06/09 02:27:59 hrs Exp $ */ +/* $FreeBSD: src/sys/net/if_gif.c,v 1.83 2009/06/09 08:09:30 hrs Exp $ */ /* $KAME: if_gif.c,v 1.87 2001/10/19 08:50:27 itojun Exp $ */ /*- @@ -912,13 +912,13 @@ case GIFSOPTS: if ((error = priv_check(curthread, PRIV_NET_GIF)) != 0) break; - if (!(error = copyin(ifr->ifr_data, &options, - sizeof(options)))) { - if ((options | GIF_OPTMASK) == GIF_OPTMASK) - sc->gif_options = options; - else - error = EINVAL; - } + error = copyin(ifr->ifr_data, &options, sizeof(options)); + if (error) + break; + if (options & ~GIF_OPTMASK) + error = EINVAL; + else + sc->gif_options = options; break; default: From owner-p4-projects@FreeBSD.ORG Tue Jun 9 11:09:52 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 4456E1065676; Tue, 9 Jun 2009 11:09:52 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 047DE1065674 for ; Tue, 9 Jun 2009 11:09:52 +0000 (UTC) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id E4DFE8FC17 for ; Tue, 9 Jun 2009 11:09:51 +0000 (UTC) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n59B9pp4069043 for ; Tue, 9 Jun 2009 11:09:51 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n59B9pYc069041 for perforce@freebsd.org; Tue, 9 Jun 2009 11:09:51 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Date: Tue, 9 Jun 2009 11:09:51 GMT Message-Id: <200906091109.n59B9pYc069041@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to bb+lists.freebsd.perforce@cyrus.watson.org using -f From: Robert Watson To: Perforce Change Reviews Cc: Subject: PERFORCE change 163885 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 09 Jun 2009 11:09:53 -0000 http://perforce.freebsd.org/chv.cgi?CH=163885 Change 163885 by rwatson@rwatson_freebsd_capabilities on 2009/06/09 11:09:14 Disallow connect()/send() in capability mode since they use global IPC namespaces (including potentially the local file system interface), and subset sendto()/sendmsg() so that they return an error in capability mode if an explicit destination address is requested. Affected files ... .. //depot/projects/trustedbsd/capabilities/src/sys/kern/capabilities.conf#20 edit .. //depot/projects/trustedbsd/capabilities/src/sys/kern/init_sysent.c#33 edit .. //depot/projects/trustedbsd/capabilities/src/sys/kern/syscalls.c#33 edit .. //depot/projects/trustedbsd/capabilities/src/sys/kern/systrace_args.c#33 edit .. //depot/projects/trustedbsd/capabilities/src/sys/kern/uipc_syscalls.c#13 edit .. //depot/projects/trustedbsd/capabilities/src/sys/sys/syscall.h#33 edit .. //depot/projects/trustedbsd/capabilities/src/sys/sys/syscall.mk#33 edit .. //depot/projects/trustedbsd/capabilities/src/sys/sys/sysproto.h#33 edit Differences ... ==== //depot/projects/trustedbsd/capabilities/src/sys/kern/capabilities.conf#20 (text+ko) ==== @@ -38,7 +38,7 @@ ## - sys_exit(2), abort2(2) and close(2) are very important. ## - Sorted alphabetically, please keep it that way. ## -## $P4: //depot/projects/trustedbsd/capabilities/src/sys/kern/capabilities.conf#19 $ +## $P4: //depot/projects/trustedbsd/capabilities/src/sys/kern/capabilities.conf#20 $ ## ## @@ -106,12 +106,11 @@ #audit ## -## Allow bind(2) for now, even though it operates on global name spaces, as -## we support CAP_BIND. +## Disllow bind(2) for now, even though we support CAP_BIND. ## ## XXXRW: Revisit this. ## -bind +#bind ## ## Allow capability mode and capability system calls. @@ -133,12 +132,11 @@ close ## -## Allow connect(2) for now, ven though it supports global namespaces, we -## we support CAP_CONNECT. +## Disallow connect(2) for now, despite CAP_CONNECT. ## ## XXXRW: Revisit this. ## -connect +#connect ## ## cpuset(2) and related calls require scoping by process, but should @@ -556,7 +554,8 @@ select ## -## Allow I/O-related file descriptors, subject to capability rights. +## Allow I/O-related file descriptors, subject to capability rights. Use of +## explicit addresses here is restricted by the system calls themselves. ## send sendfile ==== //depot/projects/trustedbsd/capabilities/src/sys/kern/init_sysent.c#33 (text+ko) ==== @@ -126,13 +126,13 @@ { AS(fsync_args), (sy_call_t *)fsync, AUE_FSYNC, NULL, 0, 0, SYF_CAPENABLED }, /* 95 = fsync */ { AS(setpriority_args), (sy_call_t *)setpriority, AUE_SETPRIORITY, NULL, 0, 0, SYF_CAPENABLED }, /* 96 = setpriority */ { AS(socket_args), (sy_call_t *)socket, AUE_SOCKET, NULL, 0, 0, SYF_CAPENABLED }, /* 97 = socket */ - { AS(connect_args), (sy_call_t *)connect, AUE_CONNECT, NULL, 0, 0, SYF_CAPENABLED }, /* 98 = connect */ + { AS(connect_args), (sy_call_t *)connect, AUE_CONNECT, NULL, 0, 0, 0 }, /* 98 = connect */ { compat(AS(accept_args),accept), AUE_ACCEPT, NULL, 0, 0, SYF_CAPENABLED }, /* 99 = old accept */ { AS(getpriority_args), (sy_call_t *)getpriority, AUE_GETPRIORITY, NULL, 0, 0, SYF_CAPENABLED }, /* 100 = getpriority */ { compat(AS(osend_args),send), AUE_SEND, NULL, 0, 0, SYF_CAPENABLED }, /* 101 = old send */ { compat(AS(orecv_args),recv), AUE_RECV, NULL, 0, 0, SYF_CAPENABLED }, /* 102 = old recv */ { compat(AS(osigreturn_args),sigreturn), AUE_SIGRETURN, NULL, 0, 0, SYF_CAPENABLED }, /* 103 = old sigreturn */ - { AS(bind_args), (sy_call_t *)bind, AUE_BIND, NULL, 0, 0, SYF_CAPENABLED }, /* 104 = bind */ + { AS(bind_args), (sy_call_t *)bind, AUE_BIND, NULL, 0, 0, 0 }, /* 104 = bind */ { AS(setsockopt_args), (sy_call_t *)setsockopt, AUE_SETSOCKOPT, NULL, 0, 0, SYF_CAPENABLED }, /* 105 = setsockopt */ { AS(listen_args), (sy_call_t *)listen, AUE_LISTEN, NULL, 0, 0, SYF_CAPENABLED }, /* 106 = listen */ { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0 }, /* 107 = obsolete vtimes */ ==== //depot/projects/trustedbsd/capabilities/src/sys/kern/syscalls.c#33 (text+ko) ==== ==== //depot/projects/trustedbsd/capabilities/src/sys/kern/systrace_args.c#33 (text+ko) ==== ==== //depot/projects/trustedbsd/capabilities/src/sys/kern/uipc_syscalls.c#13 (text+ko) ==== @@ -682,6 +682,12 @@ struct sockaddr *to; int error; +#ifdef CAPABILITIES + if ((td->td_ucred->cr_flags & CRED_FLAG_CAPMODE) && + (mp->msg_name != NULL)) + return (ENOSYS); +#endif + if (mp->msg_name != NULL) { error = getsockaddr(&to, mp->msg_name, mp->msg_namelen); if (error) { ==== //depot/projects/trustedbsd/capabilities/src/sys/sys/syscall.h#33 (text+ko) ==== ==== //depot/projects/trustedbsd/capabilities/src/sys/sys/syscall.mk#33 (text+ko) ==== ==== //depot/projects/trustedbsd/capabilities/src/sys/sys/sysproto.h#33 (text+ko) ==== From owner-p4-projects@FreeBSD.ORG Tue Jun 9 11:17:01 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id DFDCF1065677; Tue, 9 Jun 2009 11:16:59 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 5694D106566B for ; Tue, 9 Jun 2009 11:16:59 +0000 (UTC) (envelope-from zhaoshuai@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 4015E8FC1A for ; Tue, 9 Jun 2009 11:16:59 +0000 (UTC) (envelope-from zhaoshuai@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n59BGxg7069670 for ; Tue, 9 Jun 2009 11:16:59 GMT (envelope-from zhaoshuai@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n59BGx5o069668 for perforce@freebsd.org; Tue, 9 Jun 2009 11:16:59 GMT (envelope-from zhaoshuai@FreeBSD.org) Date: Tue, 9 Jun 2009 11:16:59 GMT Message-Id: <200906091116.n59BGx5o069668@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to zhaoshuai@FreeBSD.org using -f From: Zhao Shuai To: Perforce Change Reviews Cc: Subject: PERFORCE change 163886 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 09 Jun 2009 11:17:03 -0000 http://perforce.freebsd.org/chv.cgi?CH=163886 Change 163886 by zhaoshuai@zhaoshuai on 2009/06/09 11:16:08 fix a bug in fifo_read/write_f(), the 4th argument of generic_pipe_read/write is file flag. Affected files ... .. //depot/projects/soc2009/fifo/sys/fs/fifofs/fifo_vnops.c#12 edit .. //depot/projects/soc2009/fifo/sys/kern/sys_pipe.c#12 edit Differences ... ==== //depot/projects/soc2009/fifo/sys/fs/fifofs/fifo_vnops.c#12 (text+ko) ==== @@ -394,7 +394,8 @@ struct fifoinfo *fip = fp->f_data; - return (generic_pipe_read(fip->fi_rpipe, uio, cred, flags, td)); + /* The 4th argument of generic_pipe_read is file flag */ + return (generic_pipe_read(fip->fi_rpipe, uio, cred, fp->f_flag, td)); } static int @@ -403,7 +404,8 @@ struct fifoinfo *fip = fp->f_data; - return (generic_pipe_write(fip->fi_wpipe, uio, cred, flags, td)); + /* The 4th argument of generic_pipe_write is file flag */ + return (generic_pipe_write(fip->fi_wpipe, uio, cred, fp->f_flag, td)); } static int ==== //depot/projects/soc2009/fifo/sys/kern/sys_pipe.c#12 (text+ko) ==== @@ -138,6 +138,7 @@ struct pipe *pipe = fp->f_data; + /* The 4th arguments of generic_pipe_read is file flag */ return generic_pipe_read(pipe, uio, active_cred, fp->f_flag, td); } @@ -148,6 +149,7 @@ struct pipe *pipe = fp->f_data; + /* The 4th arguments of generic_pipe_write is file flag */ return generic_pipe_write(pipe, uio, active_cred, fp->f_flag, td); } From owner-p4-projects@FreeBSD.ORG Tue Jun 9 11:19:02 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 23937106567D; Tue, 9 Jun 2009 11:19:02 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id D3A861065673 for ; Tue, 9 Jun 2009 11:19:01 +0000 (UTC) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id A5D548FC13 for ; Tue, 9 Jun 2009 11:19:01 +0000 (UTC) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n59BJ191069799 for ; Tue, 9 Jun 2009 11:19:01 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n59BJ1VI069797 for perforce@freebsd.org; Tue, 9 Jun 2009 11:19:01 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Date: Tue, 9 Jun 2009 11:19:01 GMT Message-Id: <200906091119.n59BJ1VI069797@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to bb+lists.freebsd.perforce@cyrus.watson.org using -f From: Robert Watson To: Perforce Change Reviews Cc: Subject: PERFORCE change 163887 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 09 Jun 2009 11:19:03 -0000 http://perforce.freebsd.org/chv.cgi?CH=163887 Change 163887 by rwatson@rwatson_freebsd_capabilities on 2009/06/09 11:18:33 Teach audit about ENOTCAPABLE. Affected files ... .. //depot/projects/trustedbsd/capabilities/src/contrib/openbsm/libbsm/bsm_errno.c#4 edit .. //depot/projects/trustedbsd/capabilities/src/contrib/openbsm/sys/bsm/audit_errno.h#3 edit .. //depot/projects/trustedbsd/capabilities/src/sys/bsm/audit_errno.h#3 edit .. //depot/projects/trustedbsd/capabilities/src/sys/security/audit/audit_bsm_errno.c#4 edit Differences ... ==== //depot/projects/trustedbsd/capabilities/src/contrib/openbsm/libbsm/bsm_errno.c#4 (text) ==== @@ -586,6 +586,13 @@ ERRNO_NO_LOCAL_MAPPING, #endif ES("Key was rejected by service") }, + { BSM_ERRNO_ENOTCAPABLE, +#ifdef ENOTCAPABLE + ENOTCAPABLE, +#else + ERRNO_NO_LOCAL_MAPPING, +#endif + ES("Capabilities insufficient") }, }; static const int bsm_errnos_count = sizeof(bsm_errnos) / sizeof(bsm_errnos[0]); ==== //depot/projects/trustedbsd/capabilities/src/contrib/openbsm/sys/bsm/audit_errno.h#3 (text) ==== @@ -204,6 +204,7 @@ #define BSM_ERRNO_EKEYEXPIRED 220 /* Linux-specific. */ #define BSM_ERRNO_EKEYREVOKED 221 /* Linux-specific. */ #define BSM_ERRNO_EKEYREJECTED 222 /* Linux-specific. */ +#define BSM_ERRNO_ENOTCAPABLE 223 /* FreeBSD-specific. */ /* * In the event that OpenBSM doesn't have a file representation of a local ==== //depot/projects/trustedbsd/capabilities/src/sys/bsm/audit_errno.h#3 (text) ==== @@ -205,6 +205,7 @@ #define BSM_ERRNO_EKEYEXPIRED 220 /* Linux-specific. */ #define BSM_ERRNO_EKEYREVOKED 221 /* Linux-specific. */ #define BSM_ERRNO_EKEYREJECTED 222 /* Linux-specific. */ +#define BSM_ERRNO_ENOTCAPABLE 223 /* FreeBSD-specific. */ /* * In the event that OpenBSM doesn't have a file representation of a local ==== //depot/projects/trustedbsd/capabilities/src/sys/security/audit/audit_bsm_errno.c#4 (text+ko) ==== @@ -588,6 +588,13 @@ ERRNO_NO_LOCAL_MAPPING, #endif ES("Key was rejected by service") }, + { BSM_ERRNO_ENOTCAPABLE, +#ifdef ENOTCAPABLE + ENOTCAPABLE, +#else + ERRNO_NO_LOCAL_MAPPING, +#endif + ES("Capabilities insufficient") }, }; static const int bsm_errnos_count = sizeof(bsm_errnos) / sizeof(bsm_errnos[0]); From owner-p4-projects@FreeBSD.ORG Tue Jun 9 14:06:52 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 8D2FE1065672; Tue, 9 Jun 2009 14:06:52 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 4D581106564A for ; Tue, 9 Jun 2009 14:06:52 +0000 (UTC) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 300828FC16 for ; Tue, 9 Jun 2009 14:06:52 +0000 (UTC) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n59E6qX9096048 for ; Tue, 9 Jun 2009 14:06:52 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n59E6qc9096046 for perforce@freebsd.org; Tue, 9 Jun 2009 14:06:52 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Date: Tue, 9 Jun 2009 14:06:52 GMT Message-Id: <200906091406.n59E6qc9096046@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to bb+lists.freebsd.perforce@cyrus.watson.org using -f From: Robert Watson To: Perforce Change Reviews Cc: Subject: PERFORCE change 163894 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 09 Jun 2009 14:06:53 -0000 http://perforce.freebsd.org/chv.cgi?CH=163894 Change 163894 by rwatson@rwatson_freebsd_capabilities on 2009/06/09 14:06:35 Add additional syscalls to regression tests for capability mode: bind(), connect(), sendto() with and without address arguments. fork() is now OK, but waitpid() is not. Affected files ... .. //depot/projects/trustedbsd/capabilities/src/tools/regression/security/cap_test/cap_test_syscalls.c#5 edit Differences ... ==== //depot/projects/trustedbsd/capabilities/src/tools/regression/security/cap_test/cap_test_syscalls.c#5 (text+ko) ==== @@ -31,7 +31,7 @@ */ #include -__FBSDID("$P4: //depot/projects/trustedbsd/capabilities/src/tools/regression/security/cap_test/cap_test_syscalls.c#4 $"); +__FBSDID("$P4: //depot/projects/trustedbsd/capabilities/src/tools/regression/security/cap_test/cap_test_syscalls.c#5 $"); #include #include @@ -43,6 +43,8 @@ #include #include +#include + #include #include #include @@ -55,6 +57,7 @@ void test_syscalls(void) { + struct sockaddr_in sin; struct statfs statfs; struct pollfd pollfd; struct stat sb; @@ -96,6 +99,11 @@ if (cap_enter() < 0) err(-1, "test_syscalls:prep: cap_enter"); + + bzero(&sin, sizeof(sin)); + sin.sin_len = sizeof(sin); + sin.sin_family = AF_INET; + /* * Here begin the tests, sorted roughly alphabetically by system call * name. @@ -121,6 +129,12 @@ } else warnx("test_syscalls:acct succeeded"); + if (bind(PF_INET, (struct sockaddr *)&sin, sizeof(sin)) < 0) { + if (errno != ENOSYS) + warnx("test_syscall:bind %d", errno); + } else + warnx("test_syscall:bind succeeded"); + if (chdir("/tmp/cap_test_syscalls_chdir") < 0) { if (errno != ENOSYS) warnx("test_syscalls:chdir %d", errno); @@ -158,6 +172,12 @@ warnx("test_syscalls:close %d", errno); } + if (connect(PF_INET, (struct sockaddr *)&sin, sizeof(sin)) < 0) { + if (errno != ENOSYS) + warnx("test_syscall:connect %d", errno); + } else + warnx("test_syscall:connect succeeded"); + fd = creat("/tmp/cap_test_syscalls_creat", 0644); if (fd >= 0) { warnx("test_syscalls:creat succeeded"); @@ -188,17 +208,15 @@ if (pid == 0) { exit(0); } else if (pid > 0) { - warnx("test_syscalls:fork succeeded"); wpid = waitpid(pid, NULL, 0); if (wpid < 0) { - if (errno == ENOSYS) - warnx("test_syscalls:waitpid ENOSYS"); - else + if (errno != ENOSYS) warnx("test_syscalls:waitpid %d", errno); - } + } else + warnx("test_syscalls:waitpid succeeded"); } - } else if (errno != ENOSYS) + } else warnx("test_syscalls:fork %d", errno); if (fstat(fd_file, &sb) < 0) { @@ -379,6 +397,15 @@ if (len < 0 && errno == ENOSYS) warnx("test_syscalls:sendmsg ENOSYS"); + len = sendto(fd_socket, NULL, 0, 0, NULL, 0); + if (len < 0 && errno == ENOSYS) + warnx("test_syscalls:sendmesg %d", errno); + + len = sendto(fd_socket, NULL, 0, 0, (struct sockaddr *)&sin, + sizeof(sin)); + if (len < 0 && errno != ENOSYS) + warnx("test_syscalls:sendmesg %d", errno); + if (setuid(getuid()) < 0) { if (errno == ENOSYS) warnx("test_syscalls:setuid ENOSYS"); From owner-p4-projects@FreeBSD.ORG Tue Jun 9 14:57:45 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id D83CE106567C; Tue, 9 Jun 2009 14:57:44 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 89D6B1065673 for ; Tue, 9 Jun 2009 14:57:44 +0000 (UTC) (envelope-from gabor@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 7699A8FC12 for ; Tue, 9 Jun 2009 14:57:44 +0000 (UTC) (envelope-from gabor@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n59EviRG000406 for ; Tue, 9 Jun 2009 14:57:44 GMT (envelope-from gabor@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n59EviZU000404 for perforce@freebsd.org; Tue, 9 Jun 2009 14:57:44 GMT (envelope-from gabor@freebsd.org) Date: Tue, 9 Jun 2009 14:57:44 GMT Message-Id: <200906091457.n59EviZU000404@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to gabor@freebsd.org using -f From: Gabor Kovesdan To: Perforce Change Reviews Cc: Subject: PERFORCE change 163899 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 09 Jun 2009 14:57:46 -0000 http://perforce.freebsd.org/chv.cgi?CH=163899 Change 163899 by gabor@gabor_server on 2009/06/09 14:57:42 - Some trivial changes Submitted by: delphij Obtained from: OpenBSD Affected files ... .. //depot/projects/soc2008/gabor_textproc/grep/file.c#46 edit .. //depot/projects/soc2008/gabor_textproc/grep/grep.1#13 edit Differences ... ==== //depot/projects/soc2008/gabor_textproc/grep/file.c#46 (text+ko) ==== @@ -1,3 +1,5 @@ +/* $OpenBSD: file.c,v 1.10 2008/10/16 22:56:32 deraadt Exp $ */ + /*- * Copyright (c) 1999 James Howard and Dag-Erling Coïdan Smørgrav * Copyright (C) 2008-2009 Gabor Kovesdan @@ -26,14 +28,7 @@ */ #include - -#ifndef lint -#if 0 -__RCSID("$OpenBSD: file.c,v 1.9 2006/02/09 09:54:46 otto Exp $"); -#else __FBSDID("$FreeBSD$"); -#endif -#endif /* not lint */ #include #include ==== //depot/projects/soc2008/gabor_textproc/grep/grep.1#13 (text+ko) ==== @@ -1,5 +1,5 @@ .\" $FreeBSD$ -.\" $OpenBSD: grep.1,v 1.35 2007/05/31 19:20:10 jmc Exp $ +.\" $OpenBSD: grep.1,v 1.36 2009/02/08 17:15:10 jmc Exp $ .\" Copyright (c) 1980, 1990, 1993 .\" The Regents of the University of California. All rights reserved. .\" @@ -416,7 +416,7 @@ The .Nm utility is compliant with the -.St -p1003.1-2004 +.St -p1003.1-2008 specification. .Pp The flags From owner-p4-projects@FreeBSD.ORG Tue Jun 9 14:59:47 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 18B741065675; Tue, 9 Jun 2009 14:59:47 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id B9F121065670 for ; Tue, 9 Jun 2009 14:59:46 +0000 (UTC) (envelope-from gabor@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id A73788FC21 for ; Tue, 9 Jun 2009 14:59:46 +0000 (UTC) (envelope-from gabor@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n59ExkCh000529 for ; Tue, 9 Jun 2009 14:59:46 GMT (envelope-from gabor@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n59ExknH000527 for perforce@freebsd.org; Tue, 9 Jun 2009 14:59:46 GMT (envelope-from gabor@freebsd.org) Date: Tue, 9 Jun 2009 14:59:46 GMT Message-Id: <200906091459.n59ExknH000527@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to gabor@freebsd.org using -f From: Gabor Kovesdan To: Perforce Change Reviews Cc: Subject: PERFORCE change 163900 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 09 Jun 2009 14:59:53 -0000 http://perforce.freebsd.org/chv.cgi?CH=163900 Change 163900 by gabor@gabor_server on 2009/06/09 14:59:34 - Cleanup Inspired by: delphij Affected files ... .. //depot/projects/soc2008/gabor_textproc/grep/fastgrep.c#16 edit .. //depot/projects/soc2008/gabor_textproc/grep/grep.c#90 edit .. //depot/projects/soc2008/gabor_textproc/grep/queue.c#9 edit .. //depot/projects/soc2008/gabor_textproc/grep/util.c#85 edit Differences ... ==== //depot/projects/soc2008/gabor_textproc/grep/fastgrep.c#16 (text+ko) ==== @@ -35,10 +35,7 @@ */ #include - -#ifndef lint __FBSDID("$FreeBSD$"); -#endif /* not lint */ #include #include ==== //depot/projects/soc2008/gabor_textproc/grep/grep.c#90 (text+ko) ==== @@ -26,14 +26,7 @@ */ #include - -#ifndef lint -#if 0 -__RCSID("$OpenBSD: grep.c,v 1.39 2007/09/02 15:19:32 deraadt Exp $"); -#else __FBSDID("$FreeBSD$"); -#endif -#endif /* not lint */ #include #include ==== //depot/projects/soc2008/gabor_textproc/grep/queue.c#9 (text+ko) ==== @@ -30,14 +30,7 @@ */ #include - -#ifndef lint -#if 0 -__RCSID("$OpenBSD: queue.c,v 1.5 2006/02/09 09:54:47 otto Exp $"); -#else __FBSDID("$FreeBSD$"); -#endif -#endif /* not lint */ #include #include ==== //depot/projects/soc2008/gabor_textproc/grep/util.c#85 (text+ko) ==== @@ -26,14 +26,7 @@ */ #include - -#ifndef lint -#if 0 -__RCSID("$OpenBSD: util.c,v 1.36 2007/10/02 17:59:18 otto Exp $"); -#else __FBSDID("$FreeBSD$"); -#endif -#endif /* not lint */ #include #include From owner-p4-projects@FreeBSD.ORG Tue Jun 9 15:16:05 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 508171065677; Tue, 9 Jun 2009 15:16:05 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 0EFBC106566B for ; Tue, 9 Jun 2009 15:16:05 +0000 (UTC) (envelope-from jhb@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id EE0FF8FC17 for ; Tue, 9 Jun 2009 15:16:04 +0000 (UTC) (envelope-from jhb@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n59FG4sA003476 for ; Tue, 9 Jun 2009 15:16:04 GMT (envelope-from jhb@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n59FG3Ew003474 for perforce@freebsd.org; Tue, 9 Jun 2009 15:16:03 GMT (envelope-from jhb@freebsd.org) Date: Tue, 9 Jun 2009 15:16:03 GMT Message-Id: <200906091516.n59FG3Ew003474@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to jhb@freebsd.org using -f From: John Baldwin To: Perforce Change Reviews Cc: Subject: PERFORCE change 163902 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 09 Jun 2009 15:16:06 -0000 http://perforce.freebsd.org/chv.cgi?CH=163902 Change 163902 by jhb@jhb_jhbbsd on 2009/06/09 15:15:22 IFC @163898 Affected files ... .. //depot/projects/smpng/share/man/man9/BUS_NEW_PASS.9#1 branch .. //depot/projects/smpng/share/man/man9/Makefile#4 integrate .. //depot/projects/smpng/share/man/man9/bus_generic_new_pass.9#1 branch .. //depot/projects/smpng/share/man/man9/bus_set_pass.9#1 branch .. //depot/projects/smpng/share/man/man9/netisr.9#1 branch .. //depot/projects/smpng/sys/amd64/acpica/OsdEnvironment.c#8 integrate .. //depot/projects/smpng/sys/amd64/acpica/acpi_machdep.c#13 integrate .. //depot/projects/smpng/sys/amd64/acpica/acpi_wakeup.c#8 integrate .. //depot/projects/smpng/sys/amd64/acpica/madt.c#18 integrate .. //depot/projects/smpng/sys/amd64/amd64/local_apic.c#41 integrate .. //depot/projects/smpng/sys/amd64/amd64/machdep.c#80 integrate .. //depot/projects/smpng/sys/amd64/amd64/pmap.c#94 integrate .. //depot/projects/smpng/sys/amd64/amd64/support.S#22 integrate .. //depot/projects/smpng/sys/amd64/conf/GENERIC#78 integrate .. //depot/projects/smpng/sys/amd64/conf/MAC#2 delete .. //depot/projects/smpng/sys/amd64/conf/NOTES#52 integrate .. //depot/projects/smpng/sys/amd64/include/param.h#24 integrate .. //depot/projects/smpng/sys/amd64/isa/clock.c#28 integrate .. //depot/projects/smpng/sys/arm/arm/pmap.c#49 integrate .. //depot/projects/smpng/sys/boot/i386/libi386/Makefile#20 integrate .. //depot/projects/smpng/sys/boot/i386/libi386/biosacpi.c#12 integrate .. //depot/projects/smpng/sys/boot/i386/libi386/biosdisk.c#22 integrate .. //depot/projects/smpng/sys/boot/i386/libi386/biospnp.c#7 integrate .. //depot/projects/smpng/sys/boot/ia64/ski/acpi_stub.c#5 integrate .. //depot/projects/smpng/sys/boot/uboot/lib/disk.c#4 integrate .. //depot/projects/smpng/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/arc.c#5 integrate .. //depot/projects/smpng/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vfsops.c#5 integrate .. //depot/projects/smpng/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zio.c#4 integrate .. //depot/projects/smpng/sys/compat/linprocfs/linprocfs.c#76 integrate .. //depot/projects/smpng/sys/compat/linux/linux_file.c#44 integrate .. //depot/projects/smpng/sys/compat/linux/linux_getcwd.c#29 integrate .. //depot/projects/smpng/sys/compat/linux/linux_ioctl.c#58 integrate .. //depot/projects/smpng/sys/compat/linux/linux_misc.c#99 integrate .. //depot/projects/smpng/sys/compat/linux/linux_stats.c#44 integrate .. //depot/projects/smpng/sys/compat/ndis/subr_usbd.c#12 integrate .. //depot/projects/smpng/sys/compat/svr4/svr4_fcntl.c#30 integrate .. //depot/projects/smpng/sys/compat/svr4/svr4_misc.c#66 integrate .. //depot/projects/smpng/sys/compat/svr4/svr4_sockio.c#15 integrate .. //depot/projects/smpng/sys/conf/NOTES#170 integrate .. //depot/projects/smpng/sys/conf/files#242 integrate .. //depot/projects/smpng/sys/conf/files.powerpc#54 integrate .. //depot/projects/smpng/sys/conf/options#169 integrate .. //depot/projects/smpng/sys/contrib/altq/altq/altq_subr.c#13 integrate .. //depot/projects/smpng/sys/contrib/dev/acpica/CHANGES.txt#14 delete .. //depot/projects/smpng/sys/contrib/dev/acpica/acapps.h#7 delete .. //depot/projects/smpng/sys/contrib/dev/acpica/acconfig.h#26 delete .. //depot/projects/smpng/sys/contrib/dev/acpica/acdebug.h#17 delete .. //depot/projects/smpng/sys/contrib/dev/acpica/acdisasm.h#12 delete .. //depot/projects/smpng/sys/contrib/dev/acpica/acdispat.h#13 delete .. //depot/projects/smpng/sys/contrib/dev/acpica/acefi.h#11 delete .. //depot/projects/smpng/sys/contrib/dev/acpica/acenv.h#18 delete .. //depot/projects/smpng/sys/contrib/dev/acpica/acevents.h#16 delete .. //depot/projects/smpng/sys/contrib/dev/acpica/acexcep.h#16 delete .. //depot/projects/smpng/sys/contrib/dev/acpica/acfreebsd.h#20 delete .. //depot/projects/smpng/sys/contrib/dev/acpica/acgcc.h#14 delete .. //depot/projects/smpng/sys/contrib/dev/acpica/acglobal.h#22 delete .. //depot/projects/smpng/sys/contrib/dev/acpica/achware.h#13 delete .. //depot/projects/smpng/sys/contrib/dev/acpica/acinterp.h#19 delete .. //depot/projects/smpng/sys/contrib/dev/acpica/aclocal.h#23 delete .. //depot/projects/smpng/sys/contrib/dev/acpica/acmacros.h#23 delete .. //depot/projects/smpng/sys/contrib/dev/acpica/acnames.h#3 delete .. //depot/projects/smpng/sys/contrib/dev/acpica/acnamesp.h#16 delete .. //depot/projects/smpng/sys/contrib/dev/acpica/acobject.h#19 delete .. //depot/projects/smpng/sys/contrib/dev/acpica/acopcode.h#3 delete .. //depot/projects/smpng/sys/contrib/dev/acpica/acoutput.h#13 delete .. //depot/projects/smpng/sys/contrib/dev/acpica/acparser.h#16 delete .. //depot/projects/smpng/sys/contrib/dev/acpica/acpi.h#9 delete .. //depot/projects/smpng/sys/contrib/dev/acpica/acpica_prep.sh#11 integrate .. //depot/projects/smpng/sys/contrib/dev/acpica/acpiosxf.h#18 delete .. //depot/projects/smpng/sys/contrib/dev/acpica/acpixf.h#19 delete .. //depot/projects/smpng/sys/contrib/dev/acpica/acresrc.h#9 delete .. //depot/projects/smpng/sys/contrib/dev/acpica/acstruct.h#15 delete .. //depot/projects/smpng/sys/contrib/dev/acpica/actables.h#11 delete .. //depot/projects/smpng/sys/contrib/dev/acpica/actbl.h#12 delete .. //depot/projects/smpng/sys/contrib/dev/acpica/actbl1.h#8 delete .. //depot/projects/smpng/sys/contrib/dev/acpica/actbl2.h#11 delete .. //depot/projects/smpng/sys/contrib/dev/acpica/actypes.h#24 delete .. //depot/projects/smpng/sys/contrib/dev/acpica/acutils.h#24 delete .. //depot/projects/smpng/sys/contrib/dev/acpica/aecommon.h#3 delete .. //depot/projects/smpng/sys/contrib/dev/acpica/amlcode.h#16 delete .. //depot/projects/smpng/sys/contrib/dev/acpica/amlresrc.h#8 delete .. //depot/projects/smpng/sys/contrib/dev/acpica/changes.txt#1 branch .. //depot/projects/smpng/sys/contrib/dev/acpica/common/adfile.c#2 integrate .. //depot/projects/smpng/sys/contrib/dev/acpica/common/adisasm.c#9 integrate .. //depot/projects/smpng/sys/contrib/dev/acpica/common/adwalk.c#2 integrate .. //depot/projects/smpng/sys/contrib/dev/acpica/common/dmrestag.c#2 integrate .. //depot/projects/smpng/sys/contrib/dev/acpica/common/dmtable.c#2 integrate .. //depot/projects/smpng/sys/contrib/dev/acpica/common/dmtbdump.c#2 integrate .. //depot/projects/smpng/sys/contrib/dev/acpica/common/dmtbinfo.c#2 integrate .. //depot/projects/smpng/sys/contrib/dev/acpica/common/getopt.c#5 integrate .. //depot/projects/smpng/sys/contrib/dev/acpica/compiler/aslanalyze.c#7 integrate .. //depot/projects/smpng/sys/contrib/dev/acpica/compiler/aslcodegen.c#6 integrate .. //depot/projects/smpng/sys/contrib/dev/acpica/compiler/aslcompile.c#6 integrate .. //depot/projects/smpng/sys/contrib/dev/acpica/compiler/aslcompiler.h#6 integrate .. //depot/projects/smpng/sys/contrib/dev/acpica/compiler/aslcompiler.l#6 integrate .. //depot/projects/smpng/sys/contrib/dev/acpica/compiler/aslcompiler.y#9 integrate .. //depot/projects/smpng/sys/contrib/dev/acpica/compiler/asldefine.h#3 integrate .. //depot/projects/smpng/sys/contrib/dev/acpica/compiler/aslerror.c#5 integrate .. //depot/projects/smpng/sys/contrib/dev/acpica/compiler/aslfiles.c#5 integrate .. //depot/projects/smpng/sys/contrib/dev/acpica/compiler/aslfold.c#6 integrate .. //depot/projects/smpng/sys/contrib/dev/acpica/compiler/aslglobal.h#6 integrate .. //depot/projects/smpng/sys/contrib/dev/acpica/compiler/asllength.c#5 integrate .. //depot/projects/smpng/sys/contrib/dev/acpica/compiler/asllisting.c#5 integrate .. //depot/projects/smpng/sys/contrib/dev/acpica/compiler/aslload.c#6 integrate .. //depot/projects/smpng/sys/contrib/dev/acpica/compiler/asllookup.c#5 integrate .. //depot/projects/smpng/sys/contrib/dev/acpica/compiler/aslmain.c#6 integrate .. //depot/projects/smpng/sys/contrib/dev/acpica/compiler/aslmap.c#6 integrate .. //depot/projects/smpng/sys/contrib/dev/acpica/compiler/aslopcodes.c#6 integrate .. //depot/projects/smpng/sys/contrib/dev/acpica/compiler/asloperands.c#5 integrate .. //depot/projects/smpng/sys/contrib/dev/acpica/compiler/aslopt.c#6 integrate .. //depot/projects/smpng/sys/contrib/dev/acpica/compiler/aslresource.c#5 integrate .. //depot/projects/smpng/sys/contrib/dev/acpica/compiler/aslrestype1.c#5 integrate .. //depot/projects/smpng/sys/contrib/dev/acpica/compiler/aslrestype2.c#5 integrate .. //depot/projects/smpng/sys/contrib/dev/acpica/compiler/aslstartup.c#1 branch .. //depot/projects/smpng/sys/contrib/dev/acpica/compiler/aslstubs.c#6 integrate .. //depot/projects/smpng/sys/contrib/dev/acpica/compiler/asltransform.c#6 integrate .. //depot/projects/smpng/sys/contrib/dev/acpica/compiler/asltree.c#6 integrate .. //depot/projects/smpng/sys/contrib/dev/acpica/compiler/asltypes.h#7 integrate .. //depot/projects/smpng/sys/contrib/dev/acpica/compiler/aslutils.c#7 integrate .. //depot/projects/smpng/sys/contrib/dev/acpica/dbcmds.c#25 delete .. //depot/projects/smpng/sys/contrib/dev/acpica/dbdisply.c#23 delete .. //depot/projects/smpng/sys/contrib/dev/acpica/dbexec.c#22 delete .. //depot/projects/smpng/sys/contrib/dev/acpica/dbfileio.c#20 delete .. //depot/projects/smpng/sys/contrib/dev/acpica/dbhistry.c#11 delete .. //depot/projects/smpng/sys/contrib/dev/acpica/dbinput.c#19 delete .. //depot/projects/smpng/sys/contrib/dev/acpica/dbstats.c#18 delete .. //depot/projects/smpng/sys/contrib/dev/acpica/dbutils.c#19 delete .. //depot/projects/smpng/sys/contrib/dev/acpica/dbxface.c#18 delete .. //depot/projects/smpng/sys/contrib/dev/acpica/debugger/dbcmds.c#1 branch .. //depot/projects/smpng/sys/contrib/dev/acpica/debugger/dbdisply.c#1 branch .. //depot/projects/smpng/sys/contrib/dev/acpica/debugger/dbexec.c#1 branch .. //depot/projects/smpng/sys/contrib/dev/acpica/debugger/dbfileio.c#1 branch .. //depot/projects/smpng/sys/contrib/dev/acpica/debugger/dbhistry.c#1 branch .. //depot/projects/smpng/sys/contrib/dev/acpica/debugger/dbinput.c#1 branch .. //depot/projects/smpng/sys/contrib/dev/acpica/debugger/dbstats.c#1 branch .. //depot/projects/smpng/sys/contrib/dev/acpica/debugger/dbutils.c#1 branch .. //depot/projects/smpng/sys/contrib/dev/acpica/debugger/dbxface.c#1 branch .. //depot/projects/smpng/sys/contrib/dev/acpica/disassembler/dmbuffer.c#1 branch .. //depot/projects/smpng/sys/contrib/dev/acpica/disassembler/dmnames.c#1 branch .. //depot/projects/smpng/sys/contrib/dev/acpica/disassembler/dmobject.c#1 branch .. //depot/projects/smpng/sys/contrib/dev/acpica/disassembler/dmopcode.c#1 branch .. //depot/projects/smpng/sys/contrib/dev/acpica/disassembler/dmresrc.c#1 branch .. //depot/projects/smpng/sys/contrib/dev/acpica/disassembler/dmresrcl.c#1 branch .. //depot/projects/smpng/sys/contrib/dev/acpica/disassembler/dmresrcs.c#1 branch .. //depot/projects/smpng/sys/contrib/dev/acpica/disassembler/dmutils.c#1 branch .. //depot/projects/smpng/sys/contrib/dev/acpica/disassembler/dmwalk.c#1 branch .. //depot/projects/smpng/sys/contrib/dev/acpica/dispatcher/dsfield.c#1 branch .. //depot/projects/smpng/sys/contrib/dev/acpica/dispatcher/dsinit.c#1 branch .. //depot/projects/smpng/sys/contrib/dev/acpica/dispatcher/dsmethod.c#1 branch .. //depot/projects/smpng/sys/contrib/dev/acpica/dispatcher/dsmthdat.c#1 branch .. //depot/projects/smpng/sys/contrib/dev/acpica/dispatcher/dsobject.c#1 branch .. //depot/projects/smpng/sys/contrib/dev/acpica/dispatcher/dsopcode.c#1 branch .. //depot/projects/smpng/sys/contrib/dev/acpica/dispatcher/dsutils.c#1 branch .. //depot/projects/smpng/sys/contrib/dev/acpica/dispatcher/dswexec.c#1 branch .. //depot/projects/smpng/sys/contrib/dev/acpica/dispatcher/dswload.c#1 branch .. //depot/projects/smpng/sys/contrib/dev/acpica/dispatcher/dswscope.c#1 branch .. //depot/projects/smpng/sys/contrib/dev/acpica/dispatcher/dswstate.c#1 branch .. //depot/projects/smpng/sys/contrib/dev/acpica/dmbuffer.c#10 delete .. //depot/projects/smpng/sys/contrib/dev/acpica/dmnames.c#9 delete .. //depot/projects/smpng/sys/contrib/dev/acpica/dmobject.c#7 delete .. //depot/projects/smpng/sys/contrib/dev/acpica/dmopcode.c#11 delete .. //depot/projects/smpng/sys/contrib/dev/acpica/dmresrc.c#11 delete .. //depot/projects/smpng/sys/contrib/dev/acpica/dmresrcl.c#9 delete .. //depot/projects/smpng/sys/contrib/dev/acpica/dmresrcs.c#8 delete .. //depot/projects/smpng/sys/contrib/dev/acpica/dmutils.c#10 delete .. //depot/projects/smpng/sys/contrib/dev/acpica/dmwalk.c#12 delete .. //depot/projects/smpng/sys/contrib/dev/acpica/dsfield.c#18 delete .. //depot/projects/smpng/sys/contrib/dev/acpica/dsinit.c#8 delete .. //depot/projects/smpng/sys/contrib/dev/acpica/dsmethod.c#23 delete .. //depot/projects/smpng/sys/contrib/dev/acpica/dsmthdat.c#21 delete .. //depot/projects/smpng/sys/contrib/dev/acpica/dsobject.c#20 delete .. //depot/projects/smpng/sys/contrib/dev/acpica/dsopcode.c#22 delete .. //depot/projects/smpng/sys/contrib/dev/acpica/dsutils.c#21 delete .. //depot/projects/smpng/sys/contrib/dev/acpica/dswexec.c#20 delete .. //depot/projects/smpng/sys/contrib/dev/acpica/dswload.c#22 delete .. //depot/projects/smpng/sys/contrib/dev/acpica/dswscope.c#14 delete .. //depot/projects/smpng/sys/contrib/dev/acpica/dswstate.c#20 delete .. //depot/projects/smpng/sys/contrib/dev/acpica/events/evevent.c#1 branch .. //depot/projects/smpng/sys/contrib/dev/acpica/events/evgpe.c#1 branch .. //depot/projects/smpng/sys/contrib/dev/acpica/events/evgpeblk.c#1 branch .. //depot/projects/smpng/sys/contrib/dev/acpica/events/evmisc.c#1 branch .. //depot/projects/smpng/sys/contrib/dev/acpica/events/evregion.c#1 branch .. //depot/projects/smpng/sys/contrib/dev/acpica/events/evrgnini.c#1 branch .. //depot/projects/smpng/sys/contrib/dev/acpica/events/evsci.c#1 branch .. //depot/projects/smpng/sys/contrib/dev/acpica/events/evxface.c#1 branch .. //depot/projects/smpng/sys/contrib/dev/acpica/events/evxfevnt.c#1 branch .. //depot/projects/smpng/sys/contrib/dev/acpica/events/evxfregn.c#1 branch .. //depot/projects/smpng/sys/contrib/dev/acpica/evevent.c#20 delete .. //depot/projects/smpng/sys/contrib/dev/acpica/evgpe.c#14 delete .. //depot/projects/smpng/sys/contrib/dev/acpica/evgpeblk.c#12 delete .. //depot/projects/smpng/sys/contrib/dev/acpica/evmisc.c#24 delete .. //depot/projects/smpng/sys/contrib/dev/acpica/evregion.c#20 delete .. //depot/projects/smpng/sys/contrib/dev/acpica/evrgnini.c#20 delete .. //depot/projects/smpng/sys/contrib/dev/acpica/evsci.c#13 delete .. //depot/projects/smpng/sys/contrib/dev/acpica/evxface.c#20 delete .. //depot/projects/smpng/sys/contrib/dev/acpica/evxfevnt.c#17 delete .. //depot/projects/smpng/sys/contrib/dev/acpica/evxfregn.c#18 delete .. //depot/projects/smpng/sys/contrib/dev/acpica/exconfig.c#22 delete .. //depot/projects/smpng/sys/contrib/dev/acpica/exconvrt.c#17 delete .. //depot/projects/smpng/sys/contrib/dev/acpica/excreate.c#20 delete .. //depot/projects/smpng/sys/contrib/dev/acpica/exdump.c#22 delete .. //depot/projects/smpng/sys/contrib/dev/acpica/executer/exconfig.c#1 branch .. //depot/projects/smpng/sys/contrib/dev/acpica/executer/exconvrt.c#1 branch .. //depot/projects/smpng/sys/contrib/dev/acpica/executer/excreate.c#1 branch .. //depot/projects/smpng/sys/contrib/dev/acpica/executer/exdump.c#1 branch .. //depot/projects/smpng/sys/contrib/dev/acpica/executer/exfield.c#1 branch .. //depot/projects/smpng/sys/contrib/dev/acpica/executer/exfldio.c#1 branch .. //depot/projects/smpng/sys/contrib/dev/acpica/executer/exmisc.c#1 branch .. //depot/projects/smpng/sys/contrib/dev/acpica/executer/exmutex.c#1 branch .. //depot/projects/smpng/sys/contrib/dev/acpica/executer/exnames.c#1 branch .. //depot/projects/smpng/sys/contrib/dev/acpica/executer/exoparg1.c#1 branch .. //depot/projects/smpng/sys/contrib/dev/acpica/executer/exoparg2.c#1 branch .. //depot/projects/smpng/sys/contrib/dev/acpica/executer/exoparg3.c#1 branch .. //depot/projects/smpng/sys/contrib/dev/acpica/executer/exoparg6.c#1 branch .. //depot/projects/smpng/sys/contrib/dev/acpica/executer/exprep.c#1 branch .. //depot/projects/smpng/sys/contrib/dev/acpica/executer/exregion.c#1 branch .. //depot/projects/smpng/sys/contrib/dev/acpica/executer/exresnte.c#1 branch .. //depot/projects/smpng/sys/contrib/dev/acpica/executer/exresolv.c#1 branch .. //depot/projects/smpng/sys/contrib/dev/acpica/executer/exresop.c#1 branch .. //depot/projects/smpng/sys/contrib/dev/acpica/executer/exstore.c#1 branch .. //depot/projects/smpng/sys/contrib/dev/acpica/executer/exstoren.c#1 branch .. //depot/projects/smpng/sys/contrib/dev/acpica/executer/exstorob.c#1 branch .. //depot/projects/smpng/sys/contrib/dev/acpica/executer/exsystem.c#1 branch .. //depot/projects/smpng/sys/contrib/dev/acpica/executer/exutils.c#1 branch .. //depot/projects/smpng/sys/contrib/dev/acpica/exfield.c#15 delete .. //depot/projects/smpng/sys/contrib/dev/acpica/exfldio.c#23 delete .. //depot/projects/smpng/sys/contrib/dev/acpica/exmisc.c#21 delete .. //depot/projects/smpng/sys/contrib/dev/acpica/exmutex.c#15 delete .. //depot/projects/smpng/sys/contrib/dev/acpica/exnames.c#14 delete .. //depot/projects/smpng/sys/contrib/dev/acpica/exoparg1.c#17 delete .. //depot/projects/smpng/sys/contrib/dev/acpica/exoparg2.c#16 delete .. //depot/projects/smpng/sys/contrib/dev/acpica/exoparg3.c#12 delete .. //depot/projects/smpng/sys/contrib/dev/acpica/exoparg6.c#10 delete .. //depot/projects/smpng/sys/contrib/dev/acpica/exprep.c#19 delete .. //depot/projects/smpng/sys/contrib/dev/acpica/exregion.c#20 delete .. //depot/projects/smpng/sys/contrib/dev/acpica/exresnte.c#19 delete .. //depot/projects/smpng/sys/contrib/dev/acpica/exresolv.c#20 delete .. //depot/projects/smpng/sys/contrib/dev/acpica/exresop.c#20 delete .. //depot/projects/smpng/sys/contrib/dev/acpica/exstore.c#26 delete .. //depot/projects/smpng/sys/contrib/dev/acpica/exstoren.c#16 delete .. //depot/projects/smpng/sys/contrib/dev/acpica/exstorob.c#14 delete .. //depot/projects/smpng/sys/contrib/dev/acpica/exsystem.c#18 delete .. //depot/projects/smpng/sys/contrib/dev/acpica/exutils.c#20 delete .. //depot/projects/smpng/sys/contrib/dev/acpica/hardware/hwacpi.c#1 branch .. //depot/projects/smpng/sys/contrib/dev/acpica/hardware/hwgpe.c#1 branch .. //depot/projects/smpng/sys/contrib/dev/acpica/hardware/hwregs.c#1 branch .. //depot/projects/smpng/sys/contrib/dev/acpica/hardware/hwsleep.c#1 branch .. //depot/projects/smpng/sys/contrib/dev/acpica/hardware/hwtimer.c#1 branch .. //depot/projects/smpng/sys/contrib/dev/acpica/hardware/hwvalid.c#1 branch .. //depot/projects/smpng/sys/contrib/dev/acpica/hardware/hwxface.c#1 branch .. //depot/projects/smpng/sys/contrib/dev/acpica/hwacpi.c#17 delete .. //depot/projects/smpng/sys/contrib/dev/acpica/hwgpe.c#18 delete .. //depot/projects/smpng/sys/contrib/dev/acpica/hwregs.c#21 delete .. //depot/projects/smpng/sys/contrib/dev/acpica/hwsleep.c#23 delete .. //depot/projects/smpng/sys/contrib/dev/acpica/hwtimer.c#14 delete .. //depot/projects/smpng/sys/contrib/dev/acpica/include/acapps.h#1 branch .. //depot/projects/smpng/sys/contrib/dev/acpica/include/accommon.h#1 branch .. //depot/projects/smpng/sys/contrib/dev/acpica/include/acconfig.h#1 branch .. //depot/projects/smpng/sys/contrib/dev/acpica/include/acdebug.h#1 branch .. //depot/projects/smpng/sys/contrib/dev/acpica/include/acdisasm.h#1 branch .. //depot/projects/smpng/sys/contrib/dev/acpica/include/acdispat.h#1 branch .. //depot/projects/smpng/sys/contrib/dev/acpica/include/acevents.h#1 branch .. //depot/projects/smpng/sys/contrib/dev/acpica/include/acexcep.h#1 branch .. //depot/projects/smpng/sys/contrib/dev/acpica/include/acglobal.h#1 branch .. //depot/projects/smpng/sys/contrib/dev/acpica/include/achware.h#1 branch .. //depot/projects/smpng/sys/contrib/dev/acpica/include/acinterp.h#1 branch .. //depot/projects/smpng/sys/contrib/dev/acpica/include/aclocal.h#1 branch .. //depot/projects/smpng/sys/contrib/dev/acpica/include/acmacros.h#1 branch .. //depot/projects/smpng/sys/contrib/dev/acpica/include/acnames.h#1 branch .. //depot/projects/smpng/sys/contrib/dev/acpica/include/acnamesp.h#1 branch .. //depot/projects/smpng/sys/contrib/dev/acpica/include/acobject.h#1 branch .. //depot/projects/smpng/sys/contrib/dev/acpica/include/acopcode.h#1 branch .. //depot/projects/smpng/sys/contrib/dev/acpica/include/acoutput.h#1 branch .. //depot/projects/smpng/sys/contrib/dev/acpica/include/acparser.h#1 branch .. //depot/projects/smpng/sys/contrib/dev/acpica/include/acpi.h#1 branch .. //depot/projects/smpng/sys/contrib/dev/acpica/include/acpiosxf.h#1 branch .. //depot/projects/smpng/sys/contrib/dev/acpica/include/acpixf.h#1 branch .. //depot/projects/smpng/sys/contrib/dev/acpica/include/acpredef.h#1 branch .. //depot/projects/smpng/sys/contrib/dev/acpica/include/acresrc.h#1 branch .. //depot/projects/smpng/sys/contrib/dev/acpica/include/acrestyp.h#1 branch .. //depot/projects/smpng/sys/contrib/dev/acpica/include/acstruct.h#1 branch .. //depot/projects/smpng/sys/contrib/dev/acpica/include/actables.h#1 branch .. //depot/projects/smpng/sys/contrib/dev/acpica/include/actbl.h#1 branch .. //depot/projects/smpng/sys/contrib/dev/acpica/include/actbl1.h#1 branch .. //depot/projects/smpng/sys/contrib/dev/acpica/include/actypes.h#1 branch .. //depot/projects/smpng/sys/contrib/dev/acpica/include/acutils.h#1 branch .. //depot/projects/smpng/sys/contrib/dev/acpica/include/amlcode.h#1 branch .. //depot/projects/smpng/sys/contrib/dev/acpica/include/amlresrc.h#1 branch .. //depot/projects/smpng/sys/contrib/dev/acpica/include/platform/acenv.h#1 branch .. //depot/projects/smpng/sys/contrib/dev/acpica/include/platform/acfreebsd.h#1 branch .. //depot/projects/smpng/sys/contrib/dev/acpica/include/platform/acgcc.h#1 branch .. //depot/projects/smpng/sys/contrib/dev/acpica/namespace/nsaccess.c#1 branch .. //depot/projects/smpng/sys/contrib/dev/acpica/namespace/nsalloc.c#1 branch .. //depot/projects/smpng/sys/contrib/dev/acpica/namespace/nsdump.c#1 branch .. //depot/projects/smpng/sys/contrib/dev/acpica/namespace/nsdumpdv.c#1 branch .. //depot/projects/smpng/sys/contrib/dev/acpica/namespace/nseval.c#1 branch .. //depot/projects/smpng/sys/contrib/dev/acpica/namespace/nsinit.c#1 branch .. //depot/projects/smpng/sys/contrib/dev/acpica/namespace/nsload.c#1 branch .. //depot/projects/smpng/sys/contrib/dev/acpica/namespace/nsnames.c#1 branch .. //depot/projects/smpng/sys/contrib/dev/acpica/namespace/nsobject.c#1 branch .. //depot/projects/smpng/sys/contrib/dev/acpica/namespace/nsparse.c#1 branch .. //depot/projects/smpng/sys/contrib/dev/acpica/namespace/nspredef.c#1 branch .. //depot/projects/smpng/sys/contrib/dev/acpica/namespace/nssearch.c#1 branch .. //depot/projects/smpng/sys/contrib/dev/acpica/namespace/nsutils.c#1 branch .. //depot/projects/smpng/sys/contrib/dev/acpica/namespace/nswalk.c#1 branch .. //depot/projects/smpng/sys/contrib/dev/acpica/namespace/nsxfeval.c#1 branch .. //depot/projects/smpng/sys/contrib/dev/acpica/namespace/nsxfname.c#1 branch .. //depot/projects/smpng/sys/contrib/dev/acpica/namespace/nsxfobj.c#1 branch .. //depot/projects/smpng/sys/contrib/dev/acpica/nsaccess.c#22 delete .. //depot/projects/smpng/sys/contrib/dev/acpica/nsalloc.c#22 delete .. //depot/projects/smpng/sys/contrib/dev/acpica/nsdump.c#22 delete .. //depot/projects/smpng/sys/contrib/dev/acpica/nsdumpdv.c#12 delete .. //depot/projects/smpng/sys/contrib/dev/acpica/nseval.c#22 delete .. //depot/projects/smpng/sys/contrib/dev/acpica/nsinit.c#20 delete .. //depot/projects/smpng/sys/contrib/dev/acpica/nsload.c#18 delete .. //depot/projects/smpng/sys/contrib/dev/acpica/nsnames.c#18 delete .. //depot/projects/smpng/sys/contrib/dev/acpica/nsobject.c#17 delete .. //depot/projects/smpng/sys/contrib/dev/acpica/nsparse.c#8 delete .. //depot/projects/smpng/sys/contrib/dev/acpica/nssearch.c#21 delete .. //depot/projects/smpng/sys/contrib/dev/acpica/nsutils.c#21 delete .. //depot/projects/smpng/sys/contrib/dev/acpica/nswalk.c#14 delete .. //depot/projects/smpng/sys/contrib/dev/acpica/nsxfeval.c#12 delete .. //depot/projects/smpng/sys/contrib/dev/acpica/nsxfname.c#15 delete .. //depot/projects/smpng/sys/contrib/dev/acpica/nsxfobj.c#17 delete .. //depot/projects/smpng/sys/contrib/dev/acpica/osunixxf.c#8 integrate .. //depot/projects/smpng/sys/contrib/dev/acpica/parser/psargs.c#1 branch .. //depot/projects/smpng/sys/contrib/dev/acpica/parser/psloop.c#1 branch .. //depot/projects/smpng/sys/contrib/dev/acpica/parser/psopcode.c#1 branch .. //depot/projects/smpng/sys/contrib/dev/acpica/parser/psparse.c#1 branch .. //depot/projects/smpng/sys/contrib/dev/acpica/parser/psscope.c#1 branch .. //depot/projects/smpng/sys/contrib/dev/acpica/parser/pstree.c#1 branch .. //depot/projects/smpng/sys/contrib/dev/acpica/parser/psutils.c#1 branch .. //depot/projects/smpng/sys/contrib/dev/acpica/parser/pswalk.c#1 branch .. //depot/projects/smpng/sys/contrib/dev/acpica/parser/psxface.c#1 branch .. //depot/projects/smpng/sys/contrib/dev/acpica/psargs.c#18 delete .. //depot/projects/smpng/sys/contrib/dev/acpica/psloop.c#3 delete .. //depot/projects/smpng/sys/contrib/dev/acpica/psopcode.c#19 delete .. //depot/projects/smpng/sys/contrib/dev/acpica/psparse.c#22 delete .. //depot/projects/smpng/sys/contrib/dev/acpica/psscope.c#13 delete .. //depot/projects/smpng/sys/contrib/dev/acpica/pstree.c#13 delete .. //depot/projects/smpng/sys/contrib/dev/acpica/psutils.c#15 delete .. //depot/projects/smpng/sys/contrib/dev/acpica/pswalk.c#13 delete .. //depot/projects/smpng/sys/contrib/dev/acpica/psxface.c#20 delete .. //depot/projects/smpng/sys/contrib/dev/acpica/resources/rsaddr.c#1 branch .. //depot/projects/smpng/sys/contrib/dev/acpica/resources/rscalc.c#1 branch .. //depot/projects/smpng/sys/contrib/dev/acpica/resources/rscreate.c#1 branch .. //depot/projects/smpng/sys/contrib/dev/acpica/resources/rsdump.c#1 branch .. //depot/projects/smpng/sys/contrib/dev/acpica/resources/rsinfo.c#1 branch .. //depot/projects/smpng/sys/contrib/dev/acpica/resources/rsio.c#1 branch .. //depot/projects/smpng/sys/contrib/dev/acpica/resources/rsirq.c#1 branch .. //depot/projects/smpng/sys/contrib/dev/acpica/resources/rslist.c#1 branch .. //depot/projects/smpng/sys/contrib/dev/acpica/resources/rsmemory.c#1 branch .. //depot/projects/smpng/sys/contrib/dev/acpica/resources/rsmisc.c#1 branch .. //depot/projects/smpng/sys/contrib/dev/acpica/resources/rsutils.c#1 branch .. //depot/projects/smpng/sys/contrib/dev/acpica/resources/rsxface.c#1 branch .. //depot/projects/smpng/sys/contrib/dev/acpica/rsaddr.c#15 delete .. //depot/projects/smpng/sys/contrib/dev/acpica/rscalc.c#16 delete .. //depot/projects/smpng/sys/contrib/dev/acpica/rscreate.c#17 delete .. //depot/projects/smpng/sys/contrib/dev/acpica/rsdump.c#14 delete .. //depot/projects/smpng/sys/contrib/dev/acpica/rsinfo.c#3 delete .. //depot/projects/smpng/sys/contrib/dev/acpica/rsio.c#11 delete .. //depot/projects/smpng/sys/contrib/dev/acpica/rsirq.c#15 delete .. //depot/projects/smpng/sys/contrib/dev/acpica/rslist.c#12 delete .. //depot/projects/smpng/sys/contrib/dev/acpica/rsmemory.c#10 delete .. //depot/projects/smpng/sys/contrib/dev/acpica/rsmisc.c#13 delete .. //depot/projects/smpng/sys/contrib/dev/acpica/rsutils.c#14 delete .. //depot/projects/smpng/sys/contrib/dev/acpica/rsxface.c#14 delete .. //depot/projects/smpng/sys/contrib/dev/acpica/tables/tbfadt.c#1 branch .. //depot/projects/smpng/sys/contrib/dev/acpica/tables/tbfind.c#1 branch .. //depot/projects/smpng/sys/contrib/dev/acpica/tables/tbinstal.c#1 branch .. //depot/projects/smpng/sys/contrib/dev/acpica/tables/tbutils.c#1 branch .. //depot/projects/smpng/sys/contrib/dev/acpica/tables/tbxface.c#1 branch .. //depot/projects/smpng/sys/contrib/dev/acpica/tables/tbxfroot.c#1 branch .. //depot/projects/smpng/sys/contrib/dev/acpica/tbfadt.c#2 delete .. //depot/projects/smpng/sys/contrib/dev/acpica/tbfind.c#2 delete .. //depot/projects/smpng/sys/contrib/dev/acpica/tbinstal.c#21 delete .. //depot/projects/smpng/sys/contrib/dev/acpica/tbutils.c#17 delete .. //depot/projects/smpng/sys/contrib/dev/acpica/tbxface.c#17 delete .. //depot/projects/smpng/sys/contrib/dev/acpica/tbxfroot.c#19 delete .. //depot/projects/smpng/sys/contrib/dev/acpica/tools/acpiexec/aecommon.h#1 branch .. //depot/projects/smpng/sys/contrib/dev/acpica/utalloc.c#17 delete .. //depot/projects/smpng/sys/contrib/dev/acpica/utcache.c#3 delete .. //depot/projects/smpng/sys/contrib/dev/acpica/utclib.c#12 delete .. //depot/projects/smpng/sys/contrib/dev/acpica/utcopy.c#20 delete .. //depot/projects/smpng/sys/contrib/dev/acpica/utdebug.c#20 delete .. //depot/projects/smpng/sys/contrib/dev/acpica/utdelete.c#20 delete .. //depot/projects/smpng/sys/contrib/dev/acpica/uteval.c#21 delete .. //depot/projects/smpng/sys/contrib/dev/acpica/utglobal.c#24 delete .. //depot/projects/smpng/sys/contrib/dev/acpica/utilities/utalloc.c#1 branch .. //depot/projects/smpng/sys/contrib/dev/acpica/utilities/utcache.c#1 branch .. //depot/projects/smpng/sys/contrib/dev/acpica/utilities/utcopy.c#1 branch .. //depot/projects/smpng/sys/contrib/dev/acpica/utilities/utdebug.c#1 branch .. //depot/projects/smpng/sys/contrib/dev/acpica/utilities/utdelete.c#1 branch .. //depot/projects/smpng/sys/contrib/dev/acpica/utilities/uteval.c#1 branch .. //depot/projects/smpng/sys/contrib/dev/acpica/utilities/utglobal.c#1 branch .. //depot/projects/smpng/sys/contrib/dev/acpica/utilities/utinit.c#1 branch .. //depot/projects/smpng/sys/contrib/dev/acpica/utilities/utlock.c#1 branch .. //depot/projects/smpng/sys/contrib/dev/acpica/utilities/utmath.c#1 branch .. //depot/projects/smpng/sys/contrib/dev/acpica/utilities/utmisc.c#1 branch .. //depot/projects/smpng/sys/contrib/dev/acpica/utilities/utmutex.c#1 branch .. //depot/projects/smpng/sys/contrib/dev/acpica/utilities/utobject.c#1 branch .. //depot/projects/smpng/sys/contrib/dev/acpica/utilities/utresrc.c#1 branch .. //depot/projects/smpng/sys/contrib/dev/acpica/utilities/utstate.c#1 branch .. //depot/projects/smpng/sys/contrib/dev/acpica/utilities/uttrack.c#1 branch .. //depot/projects/smpng/sys/contrib/dev/acpica/utilities/utxface.c#1 branch .. //depot/projects/smpng/sys/contrib/dev/acpica/utinit.c#17 delete .. //depot/projects/smpng/sys/contrib/dev/acpica/utmath.c#12 delete .. //depot/projects/smpng/sys/contrib/dev/acpica/utmisc.c#21 delete .. //depot/projects/smpng/sys/contrib/dev/acpica/utmutex.c#3 delete .. //depot/projects/smpng/sys/contrib/dev/acpica/utobject.c#19 delete .. //depot/projects/smpng/sys/contrib/dev/acpica/utresrc.c#2 delete .. //depot/projects/smpng/sys/contrib/dev/acpica/utstate.c#3 delete .. //depot/projects/smpng/sys/contrib/dev/acpica/uttrack.c#2 delete .. //depot/projects/smpng/sys/contrib/dev/acpica/utxface.c#18 delete .. //depot/projects/smpng/sys/contrib/pf/net/pf.c#35 integrate .. //depot/projects/smpng/sys/contrib/pf/net/pf_if.c#15 integrate .. //depot/projects/smpng/sys/contrib/pf/net/pf_ioctl.c#32 integrate .. //depot/projects/smpng/sys/dev/acpi_support/acpi_aiboost.c#3 integrate .. //depot/projects/smpng/sys/dev/acpi_support/acpi_asus.c#16 integrate .. //depot/projects/smpng/sys/dev/acpi_support/acpi_fujitsu.c#7 integrate .. //depot/projects/smpng/sys/dev/acpi_support/acpi_ibm.c#14 integrate .. //depot/projects/smpng/sys/dev/acpi_support/acpi_panasonic.c#8 integrate .. //depot/projects/smpng/sys/dev/acpi_support/acpi_sony.c#8 integrate .. //depot/projects/smpng/sys/dev/acpi_support/acpi_toshiba.c#5 integrate .. //depot/projects/smpng/sys/dev/acpica/Osd/OsdDebug.c#14 integrate .. //depot/projects/smpng/sys/dev/acpica/Osd/OsdHardware.c#21 integrate .. //depot/projects/smpng/sys/dev/acpica/Osd/OsdInterrupt.c#17 integrate .. //depot/projects/smpng/sys/dev/acpica/Osd/OsdMemory.c#12 integrate .. //depot/projects/smpng/sys/dev/acpica/Osd/OsdSchedule.c#34 integrate .. //depot/projects/smpng/sys/dev/acpica/Osd/OsdStream.c#7 integrate .. //depot/projects/smpng/sys/dev/acpica/Osd/OsdSynch.c#22 integrate .. //depot/projects/smpng/sys/dev/acpica/Osd/OsdTable.c#13 integrate .. //depot/projects/smpng/sys/dev/acpica/acpi.c#114 integrate .. //depot/projects/smpng/sys/dev/acpica/acpi_acad.c#27 integrate .. //depot/projects/smpng/sys/dev/acpica/acpi_battery.c#22 integrate .. //depot/projects/smpng/sys/dev/acpica/acpi_button.c#20 integrate .. //depot/projects/smpng/sys/dev/acpica/acpi_cmbat.c#31 integrate .. //depot/projects/smpng/sys/dev/acpica/acpi_cpu.c#46 integrate .. //depot/projects/smpng/sys/dev/acpica/acpi_dock.c#6 integrate .. //depot/projects/smpng/sys/dev/acpica/acpi_ec.c#47 integrate .. //depot/projects/smpng/sys/dev/acpica/acpi_hpet.c#11 integrate .. //depot/projects/smpng/sys/dev/acpica/acpi_if.m#9 integrate .. //depot/projects/smpng/sys/dev/acpica/acpi_isab.c#9 integrate .. //depot/projects/smpng/sys/dev/acpica/acpi_lid.c#18 integrate .. //depot/projects/smpng/sys/dev/acpica/acpi_package.c#9 integrate .. //depot/projects/smpng/sys/dev/acpica/acpi_pci.c#23 integrate .. //depot/projects/smpng/sys/dev/acpica/acpi_pci_link.c#39 integrate .. //depot/projects/smpng/sys/dev/acpica/acpi_pcib.c#36 integrate .. //depot/projects/smpng/sys/dev/acpica/acpi_pcib_acpi.c#28 integrate .. //depot/projects/smpng/sys/dev/acpica/acpi_pcib_pci.c#15 integrate .. //depot/projects/smpng/sys/dev/acpica/acpi_perf.c#12 integrate .. //depot/projects/smpng/sys/dev/acpica/acpi_powerres.c#23 integrate .. //depot/projects/smpng/sys/dev/acpica/acpi_quirk.c#6 integrate .. //depot/projects/smpng/sys/dev/acpica/acpi_resource.c#32 integrate .. //depot/projects/smpng/sys/dev/acpica/acpi_smbat.c#6 integrate .. //depot/projects/smpng/sys/dev/acpica/acpi_thermal.c#44 integrate .. //depot/projects/smpng/sys/dev/acpica/acpi_throttle.c#9 integrate .. //depot/projects/smpng/sys/dev/acpica/acpi_timer.c#25 integrate .. //depot/projects/smpng/sys/dev/acpica/acpi_video.c#12 integrate .. //depot/projects/smpng/sys/dev/aic7xxx/aicasm/Makefile#15 integrate .. //depot/projects/smpng/sys/dev/asmc/asmc.c#6 integrate .. //depot/projects/smpng/sys/dev/ata/ata-pci.h#66 integrate .. //depot/projects/smpng/sys/dev/ata/chipsets/ata-nvidia.c#5 integrate .. //depot/projects/smpng/sys/dev/ath/if_ath.c#77 integrate .. //depot/projects/smpng/sys/dev/bwi/if_bwi.c#4 integrate .. //depot/projects/smpng/sys/dev/ce/if_ce.c#14 integrate .. //depot/projects/smpng/sys/dev/cp/if_cp.c#25 integrate .. //depot/projects/smpng/sys/dev/ctau/if_ct.c#27 integrate .. //depot/projects/smpng/sys/dev/cx/if_cx.c#33 integrate .. //depot/projects/smpng/sys/dev/cxgb/ulp/iw_cxgb/iw_cxgb.c#7 integrate .. //depot/projects/smpng/sys/dev/fdc/fdc_acpi.c#9 integrate .. //depot/projects/smpng/sys/dev/if_ndis/if_ndis.c#59 integrate .. //depot/projects/smpng/sys/dev/if_ndis/if_ndis_usb.c#10 integrate .. //depot/projects/smpng/sys/dev/iir/iir.c#21 integrate .. //depot/projects/smpng/sys/dev/iir/iir_ctrl.c#16 integrate .. //depot/projects/smpng/sys/dev/ipmi/ipmi_acpi.c#3 integrate .. //depot/projects/smpng/sys/dev/kbd/kbd.c#22 integrate .. //depot/projects/smpng/sys/dev/kbdmux/kbdmux.c#14 integrate .. //depot/projects/smpng/sys/dev/mii/e1000phy.c#20 integrate .. //depot/projects/smpng/sys/dev/mii/e1000phyreg.h#7 integrate .. //depot/projects/smpng/sys/dev/msk/if_msk.c#18 integrate .. //depot/projects/smpng/sys/dev/msk/if_mskreg.h#10 integrate .. //depot/projects/smpng/sys/dev/mwl/if_mwl.c#2 integrate .. //depot/projects/smpng/sys/dev/mxge/if_mxge.c#29 integrate .. //depot/projects/smpng/sys/dev/mxge/if_mxge_var.h#16 integrate .. //depot/projects/smpng/sys/dev/nmdm/nmdm.c#36 integrate .. //depot/projects/smpng/sys/dev/pci/pci.c#110 integrate .. //depot/projects/smpng/sys/dev/puc/pucdata.c#49 integrate .. //depot/projects/smpng/sys/dev/sec/sec.c#1 branch .. //depot/projects/smpng/sys/dev/sec/sec.h#1 branch .. //depot/projects/smpng/sys/dev/sound/clone.c#2 integrate .. //depot/projects/smpng/sys/dev/sound/driver.c#11 integrate .. //depot/projects/smpng/sys/dev/sound/isa/ad1816.c#27 integrate .. //depot/projects/smpng/sys/dev/sound/isa/ess.c#22 integrate .. //depot/projects/smpng/sys/dev/sound/isa/gusc.c#10 integrate .. //depot/projects/smpng/sys/dev/sound/isa/mss.c#34 integrate .. //depot/projects/smpng/sys/dev/sound/isa/sb16.c#26 integrate .. //depot/projects/smpng/sys/dev/sound/isa/sb8.c#20 integrate .. //depot/projects/smpng/sys/dev/sound/isa/sbc.c#19 integrate .. //depot/projects/smpng/sys/dev/sound/isa/sndbuf_dma.c#4 integrate .. //depot/projects/smpng/sys/dev/sound/macio/aoa.c#3 integrate .. //depot/projects/smpng/sys/dev/sound/macio/davbus.c#3 integrate .. //depot/projects/smpng/sys/dev/sound/macio/i2s.c#3 integrate .. //depot/projects/smpng/sys/dev/sound/macio/snapper.c#3 integrate .. //depot/projects/smpng/sys/dev/sound/macio/tumbler.c#3 integrate .. //depot/projects/smpng/sys/dev/sound/midi/midi.c#17 integrate .. //depot/projects/smpng/sys/dev/sound/midi/mpu401.c#5 integrate .. //depot/projects/smpng/sys/dev/sound/midi/sequencer.c#23 integrate .. //depot/projects/smpng/sys/dev/sound/midi/sequencer.h#7 integrate .. //depot/projects/smpng/sys/dev/sound/pci/als4000.c#23 integrate .. //depot/projects/smpng/sys/dev/sound/pci/atiixp.c#13 integrate .. //depot/projects/smpng/sys/dev/sound/pci/aureal.c#17 integrate .. //depot/projects/smpng/sys/dev/sound/pci/cmi.c#39 integrate .. //depot/projects/smpng/sys/dev/sound/pci/cs4281.c#19 integrate .. //depot/projects/smpng/sys/dev/sound/pci/csa.c#20 integrate .. //depot/projects/smpng/sys/dev/sound/pci/csapcm.c#19 integrate .. //depot/projects/smpng/sys/dev/sound/pci/ds1.c#28 integrate .. //depot/projects/smpng/sys/dev/sound/pci/emu10k1.c#36 integrate .. //depot/projects/smpng/sys/dev/sound/pci/emu10kx-midi.c#4 integrate .. //depot/projects/smpng/sys/dev/sound/pci/emu10kx-pcm.c#8 integrate .. //depot/projects/smpng/sys/dev/sound/pci/emu10kx.c#10 integrate .. //depot/projects/smpng/sys/dev/sound/pci/envy24.c#15 integrate .. //depot/projects/smpng/sys/dev/sound/pci/envy24ht.c#12 integrate .. //depot/projects/smpng/sys/dev/sound/pci/es137x.c#27 integrate .. //depot/projects/smpng/sys/dev/sound/pci/fm801.c#23 integrate .. //depot/projects/smpng/sys/dev/sound/pci/hda/hdac.c#33 integrate .. //depot/projects/smpng/sys/dev/sound/pci/ich.c#54 integrate .. //depot/projects/smpng/sys/dev/sound/pci/maestro.c#24 integrate .. //depot/projects/smpng/sys/dev/sound/pci/maestro3.c#28 integrate .. //depot/projects/smpng/sys/dev/sound/pci/neomagic.c#12 integrate .. //depot/projects/smpng/sys/dev/sound/pci/solo.c#22 integrate .. //depot/projects/smpng/sys/dev/sound/pci/spicds.c#5 integrate .. //depot/projects/smpng/sys/dev/sound/pci/t4dwave.c#26 integrate .. //depot/projects/smpng/sys/dev/sound/pci/via8233.c#28 integrate .. //depot/projects/smpng/sys/dev/sound/pci/via82c686.c#28 integrate .. //depot/projects/smpng/sys/dev/sound/pci/vibes.c#20 integrate .. //depot/projects/smpng/sys/dev/sound/pcm/ac97.c#39 integrate .. //depot/projects/smpng/sys/dev/sound/pcm/ac97_patch.c#9 integrate .. //depot/projects/smpng/sys/dev/sound/pcm/buffer.c#22 integrate .. //depot/projects/smpng/sys/dev/sound/pcm/buffer.h#15 integrate .. //depot/projects/smpng/sys/dev/sound/pcm/channel.c#43 integrate .. //depot/projects/smpng/sys/dev/sound/pcm/channel.h#17 integrate .. //depot/projects/smpng/sys/dev/sound/pcm/channel_if.m#5 integrate .. //depot/projects/smpng/sys/dev/sound/pcm/dsp.c#46 integrate .. //depot/projects/smpng/sys/dev/sound/pcm/dsp.h#9 integrate .. //depot/projects/smpng/sys/dev/sound/pcm/fake.c#10 delete .. //depot/projects/smpng/sys/dev/sound/pcm/feeder.c#20 integrate .. //depot/projects/smpng/sys/dev/sound/pcm/feeder.h#10 integrate .. //depot/projects/smpng/sys/dev/sound/pcm/feeder_chain.c#1 branch .. //depot/projects/smpng/sys/dev/sound/pcm/feeder_eq.c#1 branch .. //depot/projects/smpng/sys/dev/sound/pcm/feeder_fmt.c#19 delete .. //depot/projects/smpng/sys/dev/sound/pcm/feeder_format.c#1 branch .. //depot/projects/smpng/sys/dev/sound/pcm/feeder_matrix.c#1 branch .. //depot/projects/smpng/sys/dev/sound/pcm/feeder_mixer.c#1 branch .. //depot/projects/smpng/sys/dev/sound/pcm/feeder_rate.c#16 integrate .. //depot/projects/smpng/sys/dev/sound/pcm/feeder_volume.c#6 integrate .. //depot/projects/smpng/sys/dev/sound/pcm/g711.h#1 branch .. //depot/projects/smpng/sys/dev/sound/pcm/intpcm.h#1 branch .. //depot/projects/smpng/sys/dev/sound/pcm/matrix.h#1 branch .. //depot/projects/smpng/sys/dev/sound/pcm/matrix_map.h#1 branch .. //depot/projects/smpng/sys/dev/sound/pcm/mixer.c#32 integrate .. //depot/projects/smpng/sys/dev/sound/pcm/mixer.h#10 integrate .. //depot/projects/smpng/sys/dev/sound/pcm/pcm.h#1 branch .. //depot/projects/smpng/sys/dev/sound/pcm/sndstat.c#22 integrate .. //depot/projects/smpng/sys/dev/sound/pcm/sndstat.h#1 branch .. //depot/projects/smpng/sys/dev/sound/pcm/sound.c#43 integrate .. //depot/projects/smpng/sys/dev/sound/pcm/sound.h#36 integrate .. //depot/projects/smpng/sys/dev/sound/pcm/vchan.c#22 integrate .. //depot/projects/smpng/sys/dev/sound/pcm/vchan.h#6 integrate .. //depot/projects/smpng/sys/dev/sound/sbus/cs4231.c#9 integrate .. //depot/projects/smpng/sys/dev/sound/unit.c#2 integrate .. //depot/projects/smpng/sys/dev/sound/usb/uaudio.c#27 integrate .. //depot/projects/smpng/sys/dev/sound/usb/uaudio.h#8 integrate .. //depot/projects/smpng/sys/dev/sound/usb/uaudio_pcm.c#19 integrate .. //depot/projects/smpng/sys/dev/sound/version.h#2 integrate .. //depot/projects/smpng/sys/dev/usb/controller/at91dci.c#8 integrate .. //depot/projects/smpng/sys/dev/usb/controller/atmegadci.c#10 integrate .. //depot/projects/smpng/sys/dev/usb/controller/avr32dci.c#3 integrate .. //depot/projects/smpng/sys/dev/usb/controller/ehci.c#10 integrate .. //depot/projects/smpng/sys/dev/usb/controller/musb_otg.c#8 integrate .. //depot/projects/smpng/sys/dev/usb/controller/ohci.c#8 integrate .. //depot/projects/smpng/sys/dev/usb/controller/uhci.c#8 integrate .. //depot/projects/smpng/sys/dev/usb/controller/uss820dci.c#9 integrate .. //depot/projects/smpng/sys/dev/usb/input/ukbd.c#6 integrate .. //depot/projects/smpng/sys/dev/usb/serial/ugensa.c#7 integrate .. //depot/projects/smpng/sys/dev/usb/serial/umct.c#8 integrate .. //depot/projects/smpng/sys/dev/usb/storage/ustorage_fs.c#9 integrate .. //depot/projects/smpng/sys/dev/usb/usb.h#19 integrate .. //depot/projects/smpng/sys/dev/usb/usb_compat_linux.c#8 integrate .. //depot/projects/smpng/sys/dev/usb/usb_compat_linux.h#5 integrate .. //depot/projects/smpng/sys/dev/usb/usb_controller.h#8 integrate .. //depot/projects/smpng/sys/dev/usb/usb_core.h#11 integrate .. //depot/projects/smpng/sys/dev/usb/usb_debug.c#4 integrate .. //depot/projects/smpng/sys/dev/usb/usb_debug.h#4 integrate .. //depot/projects/smpng/sys/dev/usb/usb_dev.c#11 integrate .. //depot/projects/smpng/sys/dev/usb/usb_dev.h#8 integrate .. //depot/projects/smpng/sys/dev/usb/usb_device.c#10 integrate .. //depot/projects/smpng/sys/dev/usb/usb_device.h#11 integrate .. //depot/projects/smpng/sys/dev/usb/usb_generic.c#10 integrate .. //depot/projects/smpng/sys/dev/usb/usb_handle_request.c#8 integrate .. //depot/projects/smpng/sys/dev/usb/usb_hub.c#9 integrate .. //depot/projects/smpng/sys/dev/usb/usb_lookup.h#5 integrate .. //depot/projects/smpng/sys/dev/usb/usb_request.c#8 integrate .. //depot/projects/smpng/sys/dev/usb/usb_transfer.c#9 integrate .. //depot/projects/smpng/sys/dev/usb/usb_transfer.h#6 integrate .. //depot/projects/smpng/sys/dev/usb/wlan/if_zyd.c#7 integrate .. //depot/projects/smpng/sys/dev/usb/wlan/if_zydreg.h#5 integrate .. //depot/projects/smpng/sys/dev/xen/netfront/netfront.c#10 integrate .. //depot/projects/smpng/sys/fs/devfs/devfs_devs.c#31 integrate .. //depot/projects/smpng/sys/fs/devfs/devfs_vfsops.c#32 integrate .. //depot/projects/smpng/sys/fs/devfs/devfs_vnops.c#81 integrate .. //depot/projects/smpng/sys/fs/nfs/nfs_commonacl.c#3 integrate .. //depot/projects/smpng/sys/fs/nfsclient/nfs_clstate.c#4 integrate .. //depot/projects/smpng/sys/fs/nfsserver/nfs_nfsdkrpc.c#5 integrate .. //depot/projects/smpng/sys/fs/pseudofs/pseudofs_vncache.c#31 integrate .. //depot/projects/smpng/sys/fs/udf/osta.c#5 integrate .. //depot/projects/smpng/sys/fs/unionfs/union_subr.c#38 integrate .. //depot/projects/smpng/sys/geom/geom_subr.c#60 integrate .. //depot/projects/smpng/sys/gnu/fs/ext2fs/ext2_fs.h#4 integrate .. //depot/projects/smpng/sys/gnu/fs/ext2fs/ext2_fs_sb.h#4 integrate .. //depot/projects/smpng/sys/gnu/fs/ext2fs/ext2_lookup.c#6 integrate .. //depot/projects/smpng/sys/gnu/fs/ext2fs/ext2_vfsops.c#21 integrate .. //depot/projects/smpng/sys/gnu/fs/ext2fs/ext2_vnops.c#14 integrate .. //depot/projects/smpng/sys/gnu/fs/ext2fs/sparc64-bitops.h#3 delete .. //depot/projects/smpng/sys/i386/acpica/OsdEnvironment.c#11 integrate .. //depot/projects/smpng/sys/i386/acpica/acpi_machdep.c#32 integrate .. //depot/projects/smpng/sys/i386/acpica/acpi_wakeup.c#39 integrate .. //depot/projects/smpng/sys/i386/acpica/madt.c#25 integrate .. //depot/projects/smpng/sys/i386/conf/GENERIC#109 integrate .. //depot/projects/smpng/sys/i386/conf/MAC#2 delete .. //depot/projects/smpng/sys/i386/conf/NOTES#143 integrate .. //depot/projects/smpng/sys/i386/cpufreq/est.c#15 integrate .. //depot/projects/smpng/sys/i386/cpufreq/hwpstate.c#3 integrate .. //depot/projects/smpng/sys/i386/cpufreq/p4tcc.c#7 integrate .. //depot/projects/smpng/sys/i386/i386/local_apic.c#63 integrate .. //depot/projects/smpng/sys/i386/i386/machdep.c#141 integrate .. //depot/projects/smpng/sys/i386/i386/pmap.c#134 integrate .. //depot/projects/smpng/sys/i386/i386/sys_machdep.c#55 integrate .. //depot/projects/smpng/sys/i386/ibcs2/ibcs2_misc.c#36 integrate .. //depot/projects/smpng/sys/i386/include/apicvar.h#34 integrate .. //depot/projects/smpng/sys/i386/isa/clock.c#60 integrate .. //depot/projects/smpng/sys/i386/isa/vesa.c#20 integrate .. //depot/projects/smpng/sys/i386/xen/pmap.c#8 integrate .. //depot/projects/smpng/sys/ia64/acpica/OsdEnvironment.c#11 integrate .. //depot/projects/smpng/sys/ia64/acpica/acpi_machdep.c#7 integrate .. //depot/projects/smpng/sys/ia64/acpica/acpi_wakeup.c#4 integrate .. //depot/projects/smpng/sys/ia64/acpica/madt.c#15 integrate .. //depot/projects/smpng/sys/ia64/conf/GENERIC#66 integrate .. //depot/projects/smpng/sys/ia64/conf/MAC#2 delete .. //depot/projects/smpng/sys/ia64/ia64/nexus.c#19 integrate .. //depot/projects/smpng/sys/kern/bus_if.m#17 integrate .. //depot/projects/smpng/sys/kern/init_main.c#79 integrate .. //depot/projects/smpng/sys/kern/kern_acct.c#56 integrate .. //depot/projects/smpng/sys/kern/kern_alq.c#20 integrate .. //depot/projects/smpng/sys/kern/kern_descrip.c#126 integrate .. //depot/projects/smpng/sys/kern/kern_environment.c#29 integrate .. //depot/projects/smpng/sys/kern/kern_exec.c#118 integrate .. //depot/projects/smpng/sys/kern/kern_exit.c#140 integrate .. //depot/projects/smpng/sys/kern/kern_fork.c#120 integrate .. //depot/projects/smpng/sys/kern/kern_jail.c#70 integrate .. //depot/projects/smpng/sys/kern/kern_ktrace.c#69 integrate .. //depot/projects/smpng/sys/kern/kern_linker.c#102 integrate .. //depot/projects/smpng/sys/kern/kern_lock.c#76 integrate .. //depot/projects/smpng/sys/kern/kern_malloc.c#56 integrate .. //depot/projects/smpng/sys/kern/kern_mbuf.c#31 integrate .. //depot/projects/smpng/sys/kern/kern_poll.c#34 integrate .. //depot/projects/smpng/sys/kern/kern_priv.c#7 integrate .. //depot/projects/smpng/sys/kern/kern_prot.c#111 integrate .. //depot/projects/smpng/sys/kern/kern_rwlock.c#29 integrate .. //depot/projects/smpng/sys/kern/kern_shutdown.c#77 integrate .. //depot/projects/smpng/sys/kern/kern_sx.c#58 integrate .. //depot/projects/smpng/sys/kern/kern_sysctl.c#64 integrate .. //depot/projects/smpng/sys/kern/kern_uuid.c#19 integrate .. //depot/projects/smpng/sys/kern/kern_vimage.c#7 integrate .. //depot/projects/smpng/sys/kern/link_elf.c#50 integrate .. //depot/projects/smpng/sys/kern/link_elf_obj.c#24 integrate .. //depot/projects/smpng/sys/kern/subr_bus.c#80 integrate .. //depot/projects/smpng/sys/kern/subr_clist.c#6 delete .. //depot/projects/smpng/sys/kern/subr_trap.c#91 integrate .. //depot/projects/smpng/sys/kern/sys_pipe.c#64 integrate .. //depot/projects/smpng/sys/kern/sys_socket.c#32 integrate .. //depot/projects/smpng/sys/kern/sysv_msg.c#39 integrate .. //depot/projects/smpng/sys/kern/sysv_sem.c#52 integrate .. //depot/projects/smpng/sys/kern/sysv_shm.c#43 integrate .. //depot/projects/smpng/sys/kern/tty.c#92 integrate .. //depot/projects/smpng/sys/kern/uipc_domain.c#24 integrate .. //depot/projects/smpng/sys/kern/uipc_mbuf.c#62 integrate .. //depot/projects/smpng/sys/kern/uipc_mbuf2.c#23 integrate .. //depot/projects/smpng/sys/kern/uipc_sem.c#28 integrate .. //depot/projects/smpng/sys/kern/uipc_shm.c#6 integrate .. //depot/projects/smpng/sys/kern/uipc_socket.c#124 integrate .. //depot/projects/smpng/sys/kern/uipc_syscalls.c#118 integrate .. //depot/projects/smpng/sys/kern/uipc_usrreq.c#89 integrate .. //depot/projects/smpng/sys/kern/vfs_acl.c#9 integrate .. //depot/projects/smpng/sys/kern/vfs_bio.c#124 integrate .. //depot/projects/smpng/sys/kern/vfs_cache.c#57 integrate .. //depot/projects/smpng/sys/kern/vfs_cluster.c#50 integrate .. //depot/projects/smpng/sys/kern/vfs_default.c#62 integrate .. //depot/projects/smpng/sys/kern/vfs_extattr.c#9 integrate .. //depot/projects/smpng/sys/kern/vfs_lookup.c#60 integrate .. //depot/projects/smpng/sys/kern/vfs_mount.c#95 integrate .. //depot/projects/smpng/sys/kern/vfs_subr.c#168 integrate .. //depot/projects/smpng/sys/kern/vfs_syscalls.c#148 integrate .. //depot/projects/smpng/sys/kern/vfs_vnops.c#96 integrate .. //depot/projects/smpng/sys/kern/vnode_if.src#43 integrate .. //depot/projects/smpng/sys/modules/acpi/acpi/Makefile#17 integrate .. //depot/projects/smpng/sys/modules/acpi/acpi_aiboost/Makefile#2 integrate .. //depot/projects/smpng/sys/modules/acpi/acpi_asus/Makefile#7 integrate .. //depot/projects/smpng/sys/modules/acpi/acpi_dock/Makefile#2 integrate .. //depot/projects/smpng/sys/modules/acpi/acpi_fujitsu/Makefile#2 integrate .. //depot/projects/smpng/sys/modules/acpi/acpi_ibm/Makefile#2 integrate .. //depot/projects/smpng/sys/modules/acpi/acpi_panasonic/Makefile#5 integrate .. //depot/projects/smpng/sys/modules/acpi/acpi_sony/Makefile#2 integrate .. //depot/projects/smpng/sys/modules/acpi/acpi_toshiba/Makefile#6 integrate .. //depot/projects/smpng/sys/modules/acpi/acpi_video/Makefile#8 integrate .. //depot/projects/smpng/sys/modules/bridgestp/Makefile#3 integrate .. //depot/projects/smpng/sys/modules/cpufreq/Makefile#9 integrate .. //depot/projects/smpng/sys/modules/cxgb/iw_cxgb/Makefile#5 integrate .. //depot/projects/smpng/sys/modules/cxgb/tom/Makefile#5 integrate .. //depot/projects/smpng/sys/modules/dummynet/Makefile#7 integrate .. //depot/projects/smpng/sys/modules/fdc/Makefile#11 integrate .. //depot/projects/smpng/sys/modules/firewire/fwip/Makefile#3 integrate .. //depot/projects/smpng/sys/modules/ibcs2/Makefile#3 integrate .. //depot/projects/smpng/sys/modules/if_ef/Makefile#8 integrate .. //depot/projects/smpng/sys/modules/if_gif/Makefile#10 integrate .. //depot/projects/smpng/sys/modules/if_ppp/Makefile#10 integrate .. //depot/projects/smpng/sys/modules/if_stf/Makefile#5 integrate .. //depot/projects/smpng/sys/modules/if_tun/Makefile#7 integrate .. //depot/projects/smpng/sys/modules/if_vlan/Makefile#7 integrate .. //depot/projects/smpng/sys/modules/ip6_mroute_mod/Makefile#2 integrate .. //depot/projects/smpng/sys/modules/ip_mroute_mod/Makefile#12 integrate .. //depot/projects/smpng/sys/modules/ipfw/Makefile#13 integrate .. //depot/projects/smpng/sys/modules/ipfw_nat/Makefile#2 integrate .. //depot/projects/smpng/sys/modules/linprocfs/Makefile#8 integrate .. //depot/projects/smpng/sys/modules/linux/Makefile#25 integrate .. //depot/projects/smpng/sys/modules/mac_lomac/Makefile#2 integrate .. //depot/projects/smpng/sys/modules/netgraph/atm/atm/Makefile#3 integrate .. //depot/projects/smpng/sys/modules/netgraph/ether/Makefile#5 integrate .. //depot/projects/smpng/sys/modules/netgraph/gif/Makefile#4 integrate .. //depot/projects/smpng/sys/modules/nfsclient/Makefile#15 integrate .. //depot/projects/smpng/sys/modules/nfsserver/Makefile#10 integrate .. //depot/projects/smpng/sys/modules/pf/Makefile#16 integrate .. //depot/projects/smpng/sys/modules/pseudofs/Makefile#4 integrate .. //depot/projects/smpng/sys/modules/sem/Makefile#4 integrate .. //depot/projects/smpng/sys/modules/sound/sound/Makefile#9 integrate .. //depot/projects/smpng/sys/modules/svr4/Makefile#11 integrate .. //depot/projects/smpng/sys/modules/sysvipc/sysvmsg/Makefile#3 integrate .. //depot/projects/smpng/sys/modules/sysvipc/sysvsem/Makefile#3 integrate .. //depot/projects/smpng/sys/modules/sysvipc/sysvshm/Makefile#4 integrate .. //depot/projects/smpng/sys/modules/ufs/Makefile#6 integrate .. //depot/projects/smpng/sys/modules/usb/zyd/Makefile#2 integrate .. //depot/projects/smpng/sys/modules/wlan/Makefile#12 integrate .. //depot/projects/smpng/sys/net/bpf.c#86 integrate .. //depot/projects/smpng/sys/net/bridgestp.c#27 integrate .. //depot/projects/smpng/sys/net/flowtable.c#2 integrate .. //depot/projects/smpng/sys/net/flowtable.h#2 integrate .. //depot/projects/smpng/sys/net/if.c#120 integrate .. //depot/projects/smpng/sys/net/if_atmsubr.c#29 integrate .. //depot/projects/smpng/sys/net/if_bridge.c#58 integrate .. //depot/projects/smpng/sys/net/if_ef.c#30 integrate .. //depot/projects/smpng/sys/net/if_ethersubr.c#98 integrate .. //depot/projects/smpng/sys/net/if_fddisubr.c#36 integrate .. //depot/projects/smpng/sys/net/if_fwsubr.c#23 integrate .. //depot/projects/smpng/sys/net/if_gif.c#51 integrate .. //depot/projects/smpng/sys/net/if_gif.h#19 integrate .. //depot/projects/smpng/sys/net/if_iso88025subr.c#34 integrate .. //depot/projects/smpng/sys/net/if_loop.c#57 integrate .. //depot/projects/smpng/sys/net/if_mib.c#16 integrate .. //depot/projects/smpng/sys/net/if_stf.c#47 integrate .. //depot/projects/smpng/sys/net/if_tun.c#60 integrate .. //depot/projects/smpng/sys/net/if_var.h#64 integrate .. //depot/projects/smpng/sys/net/if_vlan.c#66 integrate .. //depot/projects/smpng/sys/net/raw_cb.c#21 integrate .. //depot/projects/smpng/sys/net/raw_usrreq.c#29 integrate .. //depot/projects/smpng/sys/net/route.c#48 integrate .. //depot/projects/smpng/sys/net/rtsock.c#73 integrate .. //depot/projects/smpng/sys/net/vnet.h#11 integrate .. //depot/projects/smpng/sys/net80211/ieee80211.c#41 integrate .. //depot/projects/smpng/sys/net80211/ieee80211.h#22 integrate .. //depot/projects/smpng/sys/net80211/ieee80211_crypto.c#15 integrate .. //depot/projects/smpng/sys/net80211/ieee80211_crypto.h#15 integrate .. //depot/projects/smpng/sys/net80211/ieee80211_crypto_ccmp.c#10 integrate .. //depot/projects/smpng/sys/net80211/ieee80211_crypto_tkip.c#11 integrate .. //depot/projects/smpng/sys/net80211/ieee80211_ddb.c#16 integrate .. //depot/projects/smpng/sys/net80211/ieee80211_dfs.c#4 integrate .. //depot/projects/smpng/sys/net80211/ieee80211_freebsd.c#23 integrate .. //depot/projects/smpng/sys/net80211/ieee80211_hostap.c#12 integrate .. //depot/projects/smpng/sys/net80211/ieee80211_ht.c#11 integrate .. //depot/projects/smpng/sys/net80211/ieee80211_input.c#47 integrate .. //depot/projects/smpng/sys/net80211/ieee80211_ioctl.c#47 integrate .. //depot/projects/smpng/sys/net80211/ieee80211_ioctl.h#22 integrate .. //depot/projects/smpng/sys/net80211/ieee80211_monitor.c#3 integrate .. //depot/projects/smpng/sys/net80211/ieee80211_node.c#49 integrate .. //depot/projects/smpng/sys/net80211/ieee80211_node.h#30 integrate .. //depot/projects/smpng/sys/net80211/ieee80211_output.c#44 integrate .. //depot/projects/smpng/sys/net80211/ieee80211_proto.c#36 integrate .. //depot/projects/smpng/sys/net80211/ieee80211_proto.h#26 integrate .. //depot/projects/smpng/sys/net80211/ieee80211_radiotap.c#2 integrate .. //depot/projects/smpng/sys/net80211/ieee80211_scan.c#10 integrate .. //depot/projects/smpng/sys/net80211/ieee80211_scan.h#8 integrate .. //depot/projects/smpng/sys/net80211/ieee80211_scan_sta.c#13 integrate .. //depot/projects/smpng/sys/net80211/ieee80211_sta.c#10 integrate .. //depot/projects/smpng/sys/net80211/ieee80211_var.h#41 integrate .. //depot/projects/smpng/sys/netatalk/aarp.c#25 integrate .. //depot/projects/smpng/sys/netatalk/ddp_input.c#19 integrate .. //depot/projects/smpng/sys/netatalk/ddp_output.c#15 integrate .. //depot/projects/smpng/sys/netgraph/atm/ng_atm.c#18 integrate .. //depot/projects/smpng/sys/netgraph/ng_base.c#65 integrate .. //depot/projects/smpng/sys/netgraph/ng_ether.c#41 integrate .. //depot/projects/smpng/sys/netgraph/ng_gif.c#20 integrate .. //depot/projects/smpng/sys/netgraph/ng_message.h#16 integrate .. //depot/projects/smpng/sys/netinet/if_ether.c#71 integrate .. //depot/projects/smpng/sys/netinet/igmp.c#34 integrate .. //depot/projects/smpng/sys/netinet/in.c#55 integrate .. //depot/projects/smpng/sys/netinet/in_gif.c#28 integrate .. //depot/projects/smpng/sys/netinet/in_mcast.c#13 integrate .. //depot/projects/smpng/sys/netinet/in_pcb.c#97 integrate .. //depot/projects/smpng/sys/netinet/in_proto.c#33 integrate .. //depot/projects/smpng/sys/netinet/in_rmx.c#26 integrate .. //depot/projects/smpng/sys/netinet/ip_divert.c#66 integrate .. //depot/projects/smpng/sys/netinet/ip_dummynet.c#55 delete .. //depot/projects/smpng/sys/netinet/ip_dummynet.h#25 integrate .. //depot/projects/smpng/sys/netinet/ip_fw.h#49 integrate .. //depot/projects/smpng/sys/netinet/ip_fw2.c#110 delete .. //depot/projects/smpng/sys/netinet/ip_fw_nat.c#9 delete .. //depot/projects/smpng/sys/netinet/ip_fw_pfil.c#27 delete .. //depot/projects/smpng/sys/netinet/ip_icmp.c#50 integrate .. //depot/projects/smpng/sys/netinet/ip_input.c#101 integrate .. //depot/projects/smpng/sys/netinet/ip_ipsec.c#16 integrate .. //depot/projects/smpng/sys/netinet/ip_ipsec.h#4 integrate .. //depot/projects/smpng/sys/netinet/ip_mroute.c#67 integrate .. //depot/projects/smpng/sys/netinet/ip_options.c#14 integrate .. //depot/projects/smpng/sys/netinet/ip_output.c#109 integrate .. //depot/projects/smpng/sys/netinet/ip_var.h#41 integrate .. //depot/projects/smpng/sys/netinet/ipfw/ip_dummynet.c#1 branch .. //depot/projects/smpng/sys/netinet/ipfw/ip_fw2.c#1 branch .. //depot/projects/smpng/sys/netinet/ipfw/ip_fw_nat.c#1 branch .. //depot/projects/smpng/sys/netinet/ipfw/ip_fw_pfil.c#1 branch .. //depot/projects/smpng/sys/netinet/raw_ip.c#82 integrate .. //depot/projects/smpng/sys/netinet/sctp_os_bsd.h#23 integrate .. //depot/projects/smpng/sys/netinet/tcp_hostcache.c#20 integrate .. //depot/projects/smpng/sys/netinet/tcp_input.c#126 integrate .. //depot/projects/smpng/sys/netinet/tcp_output.c#61 integrate .. //depot/projects/smpng/sys/netinet/tcp_subr.c#114 integrate .. //depot/projects/smpng/sys/netinet/tcp_syncache.c#72 integrate .. //depot/projects/smpng/sys/netinet/tcp_syncache.h#6 integrate .. //depot/projects/smpng/sys/netinet/tcp_timewait.c#14 integrate .. //depot/projects/smpng/sys/netinet/tcp_var.h#68 integrate .. //depot/projects/smpng/sys/netinet/udp_usrreq.c#93 integrate .. //depot/projects/smpng/sys/netinet/udp_var.h#14 integrate .. //depot/projects/smpng/sys/netinet6/frag6.c#23 integrate .. //depot/projects/smpng/sys/netinet6/icmp6.c#55 integrate .. //depot/projects/smpng/sys/netinet6/in6.c#56 integrate .. //depot/projects/smpng/sys/netinet6/in6_gif.c#23 integrate .. //depot/projects/smpng/sys/netinet6/in6_ifattach.c#35 integrate .. //depot/projects/smpng/sys/netinet6/in6_mcast.c#3 integrate .. //depot/projects/smpng/sys/netinet6/in6_pcb.c#63 integrate .. //depot/projects/smpng/sys/netinet6/in6_proto.c#30 integrate .. //depot/projects/smpng/sys/netinet6/in6_rmx.c#22 integrate .. //depot/projects/smpng/sys/netinet6/ip6_input.c#64 integrate .. //depot/projects/smpng/sys/netinet6/ip6_mroute.c#40 integrate .. //depot/projects/smpng/sys/netinet6/ip6_output.c#65 integrate .. //depot/projects/smpng/sys/netinet6/ip6_var.h#29 integrate .. //depot/projects/smpng/sys/netinet6/ip6protosw.h#10 integrate .. //depot/projects/smpng/sys/netinet6/nd6.c#54 integrate .. //depot/projects/smpng/sys/netinet6/nd6.h#17 integrate .. //depot/projects/smpng/sys/netinet6/nd6_rtr.c#32 integrate .. //depot/projects/smpng/sys/netinet6/raw_ip6.c#61 integrate .. //depot/projects/smpng/sys/netinet6/scope6.c#15 integrate .. //depot/projects/smpng/sys/netinet6/udp6_usrreq.c#58 integrate .. //depot/projects/smpng/sys/netipsec/ipsec.c#36 integrate .. //depot/projects/smpng/sys/netipsec/key.c#36 integrate .. //depot/projects/smpng/sys/netipsec/key.h#6 integrate .. //depot/projects/smpng/sys/netipsec/keysock.c#22 integrate .. //depot/projects/smpng/sys/netipsec/xform_ipip.c#22 integrate .. //depot/projects/smpng/sys/nfsclient/bootp_subr.c#42 integrate .. //depot/projects/smpng/sys/nfsclient/nfs_diskless.c#23 integrate .. //depot/projects/smpng/sys/nfsserver/nfs_srvkrpc.c#7 integrate .. //depot/projects/smpng/sys/nfsserver/nfs_srvsock.c#39 integrate .. //depot/projects/smpng/sys/nlm/nlm_advlock.c#6 integrate .. //depot/projects/smpng/sys/pc98/conf/GENERIC#84 integrate .. //depot/projects/smpng/sys/pc98/conf/MAC#2 delete .. //depot/projects/smpng/sys/powerpc/booke/platform_bare.c#3 integrate .. //depot/projects/smpng/sys/powerpc/booke/pmap.c#11 integrate .. //depot/projects/smpng/sys/powerpc/conf/GENERIC#59 integrate .. //depot/projects/smpng/sys/powerpc/conf/MAC#2 delete .. //depot/projects/smpng/sys/powerpc/conf/MPC85XX#8 integrate .. //depot/projects/smpng/sys/powerpc/include/ocpbus.h#2 integrate .. //depot/projects/smpng/sys/powerpc/include/pio.h#3 integrate .. //depot/projects/smpng/sys/powerpc/mpc85xx/ocpbus.c#8 integrate .. //depot/projects/smpng/sys/powerpc/mpc85xx/ocpbus.h#4 integrate .. //depot/projects/smpng/sys/powerpc/powerpc/bus_machdep.c#4 integrate .. //depot/projects/smpng/sys/rpc/clnt_dg.c#5 integrate .. //depot/projects/smpng/sys/rpc/clnt_vc.c#6 integrate .. //depot/projects/smpng/sys/rpc/svc.c#3 integrate .. //depot/projects/smpng/sys/rpc/svc.h#4 integrate .. //depot/projects/smpng/sys/rpc/svc_auth.c#3 integrate .. //depot/projects/smpng/sys/rpc/svc_vc.c#5 integrate .. //depot/projects/smpng/sys/security/audit/audit_syscalls.c#22 integrate .. //depot/projects/smpng/sys/security/mac/mac_atalk.c#4 integrate .. //depot/projects/smpng/sys/security/mac/mac_framework.c#8 integrate .. //depot/projects/smpng/sys/security/mac/mac_inet.c#16 integrate .. //depot/projects/smpng/sys/security/mac/mac_inet6.c#6 integrate .. //depot/projects/smpng/sys/security/mac/mac_internal.h#22 integrate .. //depot/projects/smpng/sys/security/mac/mac_net.c#25 integrate .. //depot/projects/smpng/sys/security/mac/mac_socket.c#14 integrate .. //depot/projects/smpng/sys/security/mac_biba/mac_biba.c#58 integrate .. //depot/projects/smpng/sys/security/mac_lomac/mac_lomac.c#46 integrate .. //depot/projects/smpng/sys/security/mac_mls/mac_mls.c#52 integrate .. //depot/projects/smpng/sys/security/mac_stub/mac_stub.c#31 integrate .. //depot/projects/smpng/sys/security/mac_test/mac_test.c#47 integrate .. //depot/projects/smpng/sys/sparc64/conf/GENERIC#94 integrate .. //depot/projects/smpng/sys/sparc64/conf/MAC#2 delete .. //depot/projects/smpng/sys/sun4v/conf/GENERIC#16 integrate .. //depot/projects/smpng/sys/sun4v/conf/MAC#2 delete .. //depot/projects/smpng/sys/sun4v/include/pcpu.h#8 integrate .. //depot/projects/smpng/sys/sys/bus.h#33 integrate .. //depot/projects/smpng/sys/sys/cdefs.h#40 integrate .. //depot/projects/smpng/sys/sys/clist.h#6 delete .. //depot/projects/smpng/sys/sys/domain.h#11 integrate .. //depot/projects/smpng/sys/sys/mount.h#76 integrate .. //depot/projects/smpng/sys/sys/param.h#147 integrate .. //depot/projects/smpng/sys/sys/pcpu.h#26 integrate .. //depot/projects/smpng/sys/sys/pmc.h#16 integrate .. //depot/projects/smpng/sys/sys/priv.h#19 integrate .. //depot/projects/smpng/sys/sys/protosw.h#25 integrate .. //depot/projects/smpng/sys/sys/soundcard.h#15 integrate .. //depot/projects/smpng/sys/sys/vimage.h#13 integrate .. //depot/projects/smpng/sys/sys/vnode.h#100 integrate .. //depot/projects/smpng/sys/tools/feeder_eq_mkfilter.awk#1 branch .. //depot/projects/smpng/sys/tools/feeder_rate_mkfilter.awk#1 branch .. //depot/projects/smpng/sys/tools/snd_fxdiv_gen.awk#1 branch .. //depot/projects/smpng/sys/ufs/ffs/ffs_softdep.c#74 integrate .. //depot/projects/smpng/sys/ufs/ffs/ffs_vfsops.c#114 integrate .. //depot/projects/smpng/sys/ufs/ufs/dirhash.h#7 integrate .. //depot/projects/smpng/sys/ufs/ufs/ufs_dirhash.c#31 integrate .. //depot/projects/smpng/sys/ufs/ufs/ufs_vnops.c#76 integrate .. //depot/projects/smpng/sys/vm/swap_pager.c#80 integrate .. //depot/projects/smpng/sys/vm/vm_contig.c#47 integrate .. //depot/projects/smpng/sys/vm/vm_fault.c#75 integrate .. //depot/projects/smpng/sys/vm/vm_glue.c#68 integrate .. //depot/projects/smpng/sys/vm/vm_map.c#97 integrate .. //depot/projects/smpng/sys/vm/vm_mmap.c#77 integrate .. //depot/projects/smpng/sys/vm/vm_pager.h#14 integrate .. //depot/projects/smpng/sys/vm/vnode_pager.c#73 integrate Differences ... ==== //depot/projects/smpng/share/man/man9/Makefile#4 (text+ko) ==== @@ -1,4 +1,4 @@ -# $FreeBSD: src/share/man/man9/Makefile,v 1.352 2009/06/01 20:35:53 jhb Exp $ +# $FreeBSD: src/share/man/man9/Makefile,v 1.354 2009/06/09 14:26:23 jhb Exp $ MAN= accept_filter.9 \ accf_data.9 \ @@ -28,12 +28,15 @@ bus_dma.9 \ bus_generic_attach.9 \ bus_generic_detach.9 \ + bus_generic_new_pass.9 \ bus_generic_print_child.9 \ bus_generic_read_ivar.9 \ bus_generic_shutdown.9 \ + BUS_NEW_PASS.9 \ BUS_PRINT_CHILD.9 \ BUS_READ_IVAR.9 \ bus_release_resource.9 \ + bus_set_pass.9 \ bus_set_resource.9 \ BUS_SETUP_INTR.9 \ bus_space.9 \ @@ -162,6 +165,7 @@ mtx_pool.9 \ mutex.9 \ namei.9 \ + netisr.9 \ panic.9 \ pbuf.9 \ p_candebug.9 \ ==== //depot/projects/smpng/sys/amd64/acpica/OsdEnvironment.c#8 (text+ko) ==== @@ -26,7 +26,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/amd64/acpica/OsdEnvironment.c,v 1.14 2007/03/22 18:16:38 jkim Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/acpica/OsdEnvironment.c,v 1.15 2009/06/05 18:44:36 jkim Exp $"); /* * 6.1 : Environmental support @@ -36,8 +36,8 @@ #include >>> TRUNCATED FOR MAIL (1000 lines) <<< From owner-p4-projects@FreeBSD.ORG Tue Jun 9 15:23:13 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 14FB51065678; Tue, 9 Jun 2009 15:23:13 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id BD458106566B for ; Tue, 9 Jun 2009 15:23:12 +0000 (UTC) (envelope-from rene@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 8F7308FC41 for ; Tue, 9 Jun 2009 15:23:12 +0000 (UTC) (envelope-from rene@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n59FNCBr004053 for ; Tue, 9 Jun 2009 15:23:12 GMT (envelope-from rene@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n59FNCgS004051 for perforce@freebsd.org; Tue, 9 Jun 2009 15:23:12 GMT (envelope-from rene@FreeBSD.org) Date: Tue, 9 Jun 2009 15:23:12 GMT Message-Id: <200906091523.n59FNCgS004051@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to rene@FreeBSD.org using -f From: Rene Ladan To: Perforce Change Reviews Cc: Subject: PERFORCE change 163905 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 09 Jun 2009 15:23:14 -0000 http://perforce.freebsd.org/chv.cgi?CH=163905 Change 163905 by rene@rene_self on 2009/06/09 15:22:57 MFen the Dutch handbook: * eresources 1.198 -> 1.199 (SRCID bump only) * jails 1.17 -> 1.18 Affected files ... .. //depot/projects/docproj_nl/nl_NL.ISO8859-1/books/handbook/eresources/chapter.sgml#22 edit .. //depot/projects/docproj_nl/nl_NL.ISO8859-1/books/handbook/jails/chapter.sgml#13 edit Differences ... ==== //depot/projects/docproj_nl/nl_NL.ISO8859-1/books/handbook/eresources/chapter.sgml#22 (text+ko) ==== @@ -6,7 +6,7 @@ Vertaald door: Siebrand Mazeland %SOURCE% en_US.ISO8859-1/books/handbook/eresources/chapter.sgml - %SRCID% 1.198 + %SRCID% 1.199 --> ==== //depot/projects/docproj_nl/nl_NL.ISO8859-1/books/handbook/jails/chapter.sgml#13 (text+ko) ==== @@ -4,7 +4,7 @@ $FreeBSD: doc/nl_NL.ISO8859-1/books/handbook/jails/chapter.sgml,v 1.3 2008/10/18 14:45:59 remko Exp $ %SOURCE% en_US.ISO8859-1/books/handbook/jails/chapter.sgml - %SRCID% 1.17 + %SRCID% 1.18 --> @@ -264,7 +264,8 @@ &prompt.root; setenv D /here/is/the/jail &prompt.root; mkdir -p $D &prompt.root; cd /usr/src -&prompt.root; make world DESTDIR=$D +&prompt.root; make buildworld +&prompt.root; make installworld DESTDIR=$D &prompt.root; cd etc/ Deze stap s niet benodigd onder &os; 6.0 en later. &prompt.root; make distribution DESTDIR=$D @@ -285,12 +286,17 @@ dat standaard aanwezig is binnen het &os; basissysteem. - + + Als u uw userland al heeft herbouwd met + make world of make buildworld, + dan kunt u deze stap overslaan en uw bestaande userland in de nieuwe + jail installeren. + + + Dit commando zal de gekozen fysieke directory vullen met de benodigde binaire bestanden, bibliotheken, - handleidingen, etc. Alles wordt gedaan op de typische - &os; manier, eerst wordt het systeem gebouwd, daarna - wordt het geïnstalleerd in de doel directory. + handleidingen, etc. From owner-p4-projects@FreeBSD.ORG Tue Jun 9 16:20:11 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 2524C1065678; Tue, 9 Jun 2009 16:20:11 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id D6C441065672 for ; Tue, 9 Jun 2009 16:20:10 +0000 (UTC) (envelope-from mav@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id C2DE28FC13 for ; Tue, 9 Jun 2009 16:20:10 +0000 (UTC) (envelope-from mav@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n59GKAbJ024570 for ; Tue, 9 Jun 2009 16:20:10 GMT (envelope-from mav@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n59GKAvS024568 for perforce@freebsd.org; Tue, 9 Jun 2009 16:20:10 GMT (envelope-from mav@freebsd.org) Date: Tue, 9 Jun 2009 16:20:10 GMT Message-Id: <200906091620.n59GKAvS024568@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to mav@freebsd.org using -f From: Alexander Motin To: Perforce Change Reviews Cc: Subject: PERFORCE change 163908 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 09 Jun 2009 16:20:12 -0000 http://perforce.freebsd.org/chv.cgi?CH=163908 Change 163908 by mav@mav_mavbook on 2009/06/09 16:19:15 Further cleanup. Affected files ... .. //depot/projects/scottl-camlock/src/sys/dev/ahci/ahci.c#21 edit .. //depot/projects/scottl-camlock/src/sys/dev/ahci/ahci.h#9 edit Differences ... ==== //depot/projects/scottl-camlock/src/sys/dev/ahci/ahci.c#21 (text+ko) ==== @@ -138,26 +138,23 @@ rman_fini(&ctlr->sc_iomem); return (error); } - - /* reset controller */ + /* Reset controller */ if ((error = ahci_ctlr_reset(dev)) != 0) { bus_release_resource(dev, SYS_RES_MEMORY, ctlr->r_rid, ctlr->r_mem); rman_fini(&ctlr->sc_iomem); return (error); }; - - /* get the number of HW channels */ + /* Get the number of HW channels */ ctlr->ichannels = ATA_INL(ctlr->r_mem, AHCI_PI); ctlr->channels = MAX(flsl(ctlr->ichannels), (ATA_INL(ctlr->r_mem, AHCI_CAP) & AHCI_CAP_NPMASK) + 1); - + /* Setup interrupts. */ if (ahci_setup_interrupt(dev)) { bus_release_resource(dev, SYS_RES_MEMORY, ctlr->r_rid, ctlr->r_mem); rman_fini(&ctlr->sc_iomem); return ENXIO; } - - /* announce we support the HW */ + /* Announce HW capabilities. */ version = ATA_INL(ctlr->r_mem, AHCI_VS); caps = ATA_INL(ctlr->r_mem, AHCI_CAP); speed = (caps & AHCI_CAP_ISS) >> AHCI_CAP_ISS_SHIFT; @@ -195,8 +192,7 @@ (caps & AHCI_CAP_SXS) ? " eSATA":"", (caps & AHCI_CAP_NPMASK) + 1); } - - /* attach all channels on this controller */ + /* Attach all channels on this controller */ for (unit = 0; unit < ctlr->channels; unit++) { if ((ctlr->ichannels & (1 << unit)) == 0) continue; @@ -217,13 +213,13 @@ device_t *children; int nchildren, i; - /* detach & delete all children */ + /* Detach & delete all children */ if (!device_get_children(dev, &children, &nchildren)) { for (i = 0; i < nchildren; i++) device_delete_child(dev, children[i]); free(children, M_TEMP); } - + /* Free interrupts. */ for (i = 0; i < ctlr->numirqs; i++) { if (ctlr->irqs[i].r_irq) { bus_teardown_intr(dev, ctlr->irqs[i].r_irq, @@ -233,7 +229,7 @@ } } pci_release_msi(dev); - + /* Free memory. */ rman_fini(&ctlr->sc_iomem); if (ctlr->r_mem) bus_release_resource(dev, SYS_RES_MEMORY, ctlr->r_rid, ctlr->r_mem); @@ -249,11 +245,9 @@ if (pci_read_config(dev, 0x00, 4) == 0x28298086 && (pci_read_config(dev, 0x92, 1) & 0xfe) == 0x04) pci_write_config(dev, 0x92, 0x01, 1); - - /* enable AHCI mode */ + /* Enable AHCI mode */ ATA_OUTL(ctlr->r_mem, AHCI_GHC, AHCI_GHC_AE); - - /* reset AHCI controller */ + /* Reset AHCI controller */ ATA_OUTL(ctlr->r_mem, AHCI_GHC, AHCI_GHC_AE|AHCI_GHC_HR); for (timeout = 1000; timeout > 0; timeout--) { DELAY(1000); @@ -264,18 +258,14 @@ device_printf(dev, "AHCI controller reset failure\n"); return ENXIO; } - - /* reenable AHCI mode */ + /* Reenable AHCI mode */ ATA_OUTL(ctlr->r_mem, AHCI_GHC, AHCI_GHC_AE); - - /* clear interrupts */ + /* Clear interrupts */ ATA_OUTL(ctlr->r_mem, AHCI_IS, ATA_INL(ctlr->r_mem, AHCI_IS)); - - /* enable AHCI interrupts */ + /* Enable AHCI interrupts */ ATA_OUTL(ctlr->r_mem, AHCI_GHC, ATA_INL(ctlr->r_mem, AHCI_GHC) | AHCI_GHC_IE); - - return 0; + return (0); } static int @@ -284,7 +274,7 @@ struct ahci_controller *ctlr = device_get_softc(dev); bus_generic_suspend(dev); - /* disable interupts so the state change(s) doesn't trigger */ + /* Disable interupts, so the state change(s) doesn't trigger */ ATA_OUTL(ctlr->r_mem, AHCI_GHC, ATA_INL(ctlr->r_mem, AHCI_GHC) & (~AHCI_GHC_IE)); return 0; @@ -306,6 +296,7 @@ struct ahci_controller *ctlr = device_get_softc(dev); int i, msi = 0; + /* Process hints. */ if (resource_int_value(device_get_name(dev), device_get_unit(dev), "msi", &i) == 0) { if (i == 1) @@ -313,17 +304,20 @@ else if (i > 1) msi = pci_msi_count(dev); } + /* Allocate MSI if needed/present. */ if (msi && pci_alloc_msi(dev, &msi) == 0) { ctlr->numirqs = msi; } else { msi = 0; ctlr->numirqs = 1; } + /* Check for single MSI vector fallback. */ if (ctlr->numirqs > 1 && (ATA_INL(ctlr->r_mem, AHCI_GHC) & AHCI_GHC_MRSM) != 0) { device_printf(dev, "Falling back to one MSI\n"); ctlr->numirqs = 1; } + /* Allocate all IRQs. */ for (i = 0; i < ctlr->numirqs; i++) { ctlr->irqs[i].ctlr = ctlr; ctlr->irqs[i].r_irq_rid = i + (msi ? 1 : 0); @@ -349,6 +343,9 @@ return (0); } +/* + * Common case interrupt handler. + */ static void ahci_intr(void *data) { @@ -373,6 +370,9 @@ } } +/* + * Simplified interrupt handler for multivector MSI mode. + */ static void ahci_intr_one(void *data) { @@ -453,7 +453,6 @@ } ctlr->interrupt[unit].function = function; ctlr->interrupt[unit].argument = argument; - *cookiep = ctlr; return (0); } @@ -502,80 +501,77 @@ static int ahci_ch_attach(device_t dev) { + struct ahci_controller *ctlr = device_get_softc(device_get_parent(dev)); struct ahci_channel *ch = device_get_softc(dev); struct cam_devq *devq; - int tagged_dev_openings; - int rid; + int rid, error; ch->dev = dev; ch->unit = (intptr_t)device_get_ivars(dev); + ch->caps = ATA_INL(ctlr->r_mem, AHCI_CAP); + ch->numslots = ((ch->caps & AHCI_CAP_NCS) >> AHCI_CAP_NCS_SHIFT) + 1, + resource_int_value(device_get_name(dev), + device_get_unit(dev), "pm_level", &ch->pm_level); mtx_init(&ch->mtx, "AHCI channel lock", NULL, MTX_DEF); rid = ch->unit; if (!(ch->r_mem = bus_alloc_resource_any(dev, SYS_RES_MEMORY, &rid, RF_ACTIVE))) return (ENXIO); - ahci_dmainit(dev); ahci_slotsalloc(dev); ahci_ch_resume(dev); - mtx_lock(&ch->mtx); - /* - * We don't do tagged queueing, since the aha cards don't - * support it. - */ - tagged_dev_openings = 0; - - /* - * Create the device queue for our SIM. - */ - devq = cam_simq_alloc(32); - if (devq == NULL) - return (ENOMEM); - rid = ATA_IRQ_RID; if (!(ch->r_irq = bus_alloc_resource_any(dev, SYS_RES_IRQ, &rid, RF_SHAREABLE | RF_ACTIVE))) { bus_release_resource(dev, SYS_RES_MEMORY, ch->unit, ch->r_mem); - device_printf(dev, "unable to map interrupt\n"); - return ENXIO; + device_printf(dev, "Unable to map interrupt\n"); + return (ENXIO); } if ((bus_setup_intr(dev, ch->r_irq, ATA_INTR_FLAGS, NULL, ahci_ch_intr, dev, &ch->ih))) { - bus_release_resource(dev, SYS_RES_IRQ, ATA_IRQ_RID, ch->r_irq); - bus_release_resource(dev, SYS_RES_MEMORY, ch->unit, ch->r_mem); - device_printf(dev, "unable to setup interrupt\n"); - return ENXIO; + device_printf(dev, "Unable to setup interrupt\n"); + error = ENXIO; + goto err1; + } + /* Create the device queue for our SIM. */ + devq = cam_simq_alloc(ch->numslots); + if (devq == NULL) { + device_printf(dev, "Unable to allocate simq\n"); + error = ENOMEM; + goto err1; } - - /* - * Construct our SIM entry - */ + /* Construct SIM entry */ ch->sim = cam_sim_alloc(ahciaction, ahcipoll, "ahcich", ch, - device_get_unit(dev), &ch->mtx, 32, tagged_dev_openings, devq); + device_get_unit(dev), &ch->mtx, ch->numslots, 0, devq); if (ch->sim == NULL) { - cam_simq_free(devq); - bus_release_resource(dev, SYS_RES_MEMORY, ch->unit, ch->r_mem); device_printf(dev, "unable to allocate sim\n"); - return (ENOMEM); + error = ENOMEM; + goto err2; } if (xpt_bus_register(ch->sim, dev, 0) != CAM_SUCCESS) { - cam_sim_free(ch->sim, /*free_devq*/TRUE); - bus_release_resource(dev, SYS_RES_MEMORY, ch->unit, ch->r_mem); device_printf(dev, "unable to register xpt bus\n"); - return (ENXIO); + error = ENXIO; + goto err2; } if (xpt_create_path(&ch->path, /*periph*/NULL, cam_sim_path(ch->sim), CAM_TARGET_WILDCARD, CAM_LUN_WILDCARD) != CAM_REQ_CMP) { - xpt_bus_deregister(cam_sim_path(ch->sim)); - cam_sim_free(ch->sim, /*free_devq*/TRUE); - bus_release_resource(dev, SYS_RES_MEMORY, ch->unit, ch->r_mem); device_printf(dev, "unable to create path\n"); - return (ENXIO); + error = ENXIO; + goto err3; } - + mtx_unlock(&ch->mtx); + return (0); + +err3: + xpt_bus_deregister(cam_sim_path(ch->sim)); +err2: + cam_sim_free(ch->sim, /*free_devq*/TRUE); +err1: + bus_release_resource(dev, SYS_RES_IRQ, ATA_IRQ_RID, ch->r_irq); + bus_release_resource(dev, SYS_RES_MEMORY, ch->unit, ch->r_mem); mtx_unlock(&ch->mtx); - return 0; + return (error); } static int @@ -672,7 +668,6 @@ static void ahci_dmainit(device_t dev) { - struct ahci_controller *ctlr = device_get_softc(device_get_parent(dev)); struct ahci_channel *ch = device_get_softc(dev); struct ahci_dc_cb_args dcba; @@ -680,7 +675,7 @@ ch->dma.boundary = 65536; ch->dma.segsize = 65536; ch->dma.max_iosize = AHCI_DMA_ENTRIES * PAGE_SIZE; - if (ATA_INL(ctlr->r_mem, AHCI_CAP) & AHCI_CAP_64BIT) + if (ch->caps & AHCI_CAP_64BIT) ch->dma.max_address = BUS_SPACE_MAXADDR; else ch->dma.max_address = BUS_SPACE_MAXADDR_32BIT; @@ -706,7 +701,7 @@ ch->dma.alignment, ch->dma.boundary, ch->dma.max_address, BUS_SPACE_MAXADDR, NULL, NULL, - ch->dma.max_iosize * AHCI_MAX_SLOTS, + ch->dma.max_iosize * ch->numslots, AHCI_DMA_ENTRIES, ch->dma.segsize, 0, busdma_lock_mutex, &ch->mtx, &ch->dma.data_tag)) { goto error; @@ -714,7 +709,7 @@ return; error: - device_printf(dev, "WARNING - DMA initialization failed, disabling DMA\n"); + device_printf(dev, "WARNING - DMA initialization failed\n"); ahci_dmafini(dev); } @@ -758,7 +753,7 @@ /* Alloc and setup command/dma slots */ bzero(ch->slot, sizeof(ch->slot)); - for (i = 0; i < AHCI_MAX_SLOTS; i++) { + for (i = 0; i < ch->numslots; i++) { struct ahci_slot *slot = &ch->slot[i]; slot->dev = dev; @@ -795,7 +790,7 @@ int i; /* Free all dma slots */ - for (i = 0; i < AHCI_MAX_SLOTS; i++) { + for (i = 0; i < ch->numslots; i++) { struct ahci_slot *slot = &ch->slot[i]; if (slot->dma.sg_tag) { @@ -827,7 +822,7 @@ /* Clear error bits/interrupt */ ATA_OUTL(ch->r_mem, AHCI_P_SERR, error); - /* If we have a connection event deal with it */ + /* If we have a connection event, deal with it */ if ((error & ATA_SE_PHY_CHANGED) && (ch->pm_level == 0)) { u_int32_t status = ATA_INL(ch->r_mem, AHCI_P_SSTS); if (((status & ATA_SS_DET_MASK) == ATA_SS_DET_PHY_ONLINE) && @@ -861,18 +856,15 @@ cstatus = ATA_INL(ch->r_mem, AHCI_P_CI); sstatus = ATA_INL(ch->r_mem, AHCI_P_SACT); //device_printf(dev, "%s is %08x cs %08x ss %08x rslots %08x\n", __func__, istatus, cstatus, sstatus, ch->rslots); - /* Process PHY events */ if (istatus & (AHCI_P_IX_PRC | AHCI_P_IX_PC)) ahci_phy_check_events(dev); - -#define AHCI_STATBITS \ - (AHCI_P_IX_IF|AHCI_P_IX_HBD|AHCI_P_IX_HBF|AHCI_P_IX_TFE) - if ((istatus & AHCI_STATBITS) && ((cstatus | sstatus) & ch->rslots)) { + /* Process command errors */ + if (istatus & (AHCI_P_IX_IF|AHCI_P_IX_HBD|AHCI_P_IX_HBF|AHCI_P_IX_TFE)) { device_printf(dev, "%s ERROR is %08x cs %08x ss %08x rs %08x\n", __func__, istatus, cstatus, sstatus, ch->rslots); ccs = (ATA_INL(ch->r_mem, AHCI_P_CMD) & AHCI_P_CMD_CCS_MASK) >> AHCI_P_CMD_CCS_SHIFT; - /* kick controller into sane state */ + /* Kick controller into sane state */ ahci_stop(dev); ahci_start(dev); res = ch->rslots; @@ -891,16 +883,10 @@ xpt_done(fccb); } /* Check all slots. */ - for (i = 0; i < AHCI_MAX_SLOTS; i++) { + for (i = 0; i < ch->numslots; i++) { /* Do we have an event on slot? */ if ((res & (1 << i)) == 0) continue; - /* Do we have a running request on slot? */ - if (ch->slot[i].state < AHCI_SLOT_RUNNING) { - device_printf(dev, "Request completion on slot %d in state %d\n", - i, ch->slot[i].state); - continue; - } /* Process request completion. */ et = AHCI_ERR_NONE; if ((err >> i) & 1) { @@ -955,7 +941,7 @@ tag = ch->lastslot; do { tag++; - if (tag >= AHCI_MAX_SLOTS) + if (tag >= ch->numslots) tag = 0; if (ch->slot[tag].state == AHCI_SLOT_EMPTY) break; @@ -967,7 +953,6 @@ slot = &ch->slot[tag]; //device_printf(slot->dev, "%s slot %d\n", __func__, slot->slot); slot->ccb = ccb; - slot->dma.nsegs = 0; /* Update channel stats. */ ch->numrslots++; if ((slot->ccb->ccb_h.func_code == XPT_ATA_IO) && @@ -975,28 +960,28 @@ ch->numtslots++; ch->taggedtarget = ccb->ccb_h.target_id; } + slot->dma.nsegs = 0; /* If request moves data, setup and load SG list */ if ((ccb->ccb_h.flags & CAM_DIR_MASK) != CAM_DIR_NONE) { + void *buf; + bus_size_t size; + slot->state = AHCI_SLOT_LOADING; if (ccb->ccb_h.func_code == XPT_ATA_IO) { - if (bus_dmamap_load(ch->dma.data_tag, slot->dma.data_map, - ccb->ataio.data_ptr, ccb->ataio.dxfer_len, - ahci_dmasetprd, slot, 0)) { - device_printf(dev, "FAILURE - load data\n"); - } + buf = ccb->ataio.data_ptr; + size = ccb->ataio.dxfer_len; } else { - if (bus_dmamap_load(ch->dma.data_tag, slot->dma.data_map, - ccb->csio.data_ptr, ccb->csio.dxfer_len, - ahci_dmasetprd, slot, 0)) { - device_printf(dev, "FAILURE - load data\n"); - } + buf = ccb->csio.data_ptr; + size = ccb->csio.dxfer_len; } + bus_dmamap_load(ch->dma.data_tag, slot->dma.data_map, + buf, size, ahci_dmasetprd, slot, 0); } else ahci_execute_transaction(slot); } /* Locked by busdma engine. */ -void +static void ahci_dmasetprd(void *arg, bus_dma_segment_t *segs, int nsegs, int error) { struct ahci_slot *slot = arg; @@ -1008,28 +993,25 @@ //device_printf(slot->dev, "%s slot %d\n", __func__, slot->slot); if (error) { device_printf(slot->dev, "DMA load error\n"); + ahci_end_transaction(slot, AHCI_ERR_INVALID); return; } - KASSERT(nsegs <= AHCI_DMA_ENTRIES, ("too many DMA segment entries\n")); - - /* get a piece of the workspace for this request */ + /* Get a piece of the workspace for this request */ ctp = (struct ahci_cmd_tab *) (ch->dma.work + AHCI_CT_OFFSET + (AHCI_CT_SIZE * slot->slot)); - + /* Fill S/G table */ prd = &ctp->prd_tab[0]; for (i = 0; i < nsegs; i++) { prd[i].dba = htole64(segs[i].ds_addr); prd[i].dbc = htole32((segs[i].ds_len - 1) & AHCI_PRD_MASK); } slot->dma.nsegs = nsegs; - bus_dmamap_sync(slot->dma.sg_tag, slot->dma.sg_map, BUS_DMASYNC_PREWRITE); bus_dmamap_sync(ch->dma.data_tag, slot->dma.data_map, ((slot->ccb->ccb_h.flags & CAM_DIR_IN) ? BUS_DMASYNC_PREREAD : BUS_DMASYNC_PREWRITE)); - ahci_execute_transaction(slot); } @@ -1051,9 +1033,8 @@ (ch->dma.work + AHCI_CT_OFFSET + (AHCI_CT_SIZE * slot->slot)); /* Setup the FIS for this request */ if (!(fis_size = ahci_setup_fis(ctp, ccb, slot->slot))) { - device_printf(ch->dev, "setting up SATA FIS failed\n"); - ccb->ccb_h.status = CAM_REQ_INVALID; - xpt_done(ccb); + device_printf(ch->dev, "Setting up SATA FIS failed\n"); + ahci_end_transaction(slot, AHCI_ERR_INVALID); return; } /* Setup the command list entry */ @@ -1102,29 +1083,25 @@ if (ccb->ccb_h.func_code == XPT_ATA_IO && (ccb->ataio.cmd.command == ATA_DEVICE_RESET || (ccb->ataio.cmd.flags & CAM_ATAIO_CONTROL))) { - u_int32_t status; int count, timeout = ccb->ccb_h.timeout; enum ahci_err_type et = AHCI_ERR_NONE; for (count = 0; count < timeout; count++) { DELAY(1000); - if (!((status = ATA_INL(ch->r_mem, AHCI_P_CI)) & - (1 << slot->slot))) { + if (!(ATA_INL(ch->r_mem, AHCI_P_CI) & (1 << slot->slot))) break; - } } if (timeout && (count >= timeout)) { device_printf(ch->dev, "Poll timeout on slot %d\n", slot->slot); et = CAM_CMD_TIMEOUT; - /* kick controller into sane state */ + /* Kick controller into sane state */ ahci_stop(ch->dev); ahci_start(ch->dev); } ahci_end_transaction(slot, et); return; } - - /* start the timeout */ + /* Start command execution timeout */ callout_reset(&slot->timeout, (int)ccb->ccb_h.timeout * hz / 1000, (timeout_t*)ahci_timeout, slot); return; @@ -1140,6 +1117,7 @@ int i; device_printf(dev, "Timeout on slot %d\n", slot->slot); + /* Requeue freezed command. */ if (ch->frozen) { union ccb *fccb = ch->frozen; ch->frozen = NULL; @@ -1147,10 +1125,11 @@ fccb->ccb_h.status = CAM_SCSI_BUS_RESET; xpt_done(fccb); } + /* Kill the engine and terminate all commands. */ ahci_stop(dev); - for (i = 0; i < AHCI_MAX_SLOTS; i++) { + for (i = 0; i < ch->numslots; i++) { /* Do we have a running request on slot? */ - if (ch->slot[i].state < AHCI_SLOT_RUNNING) + if (ch->slot[i].state < AHCI_SLOT_RUNNING) continue; if (i == slot->slot) et = AHCI_ERR_TIMEOUT; @@ -1158,6 +1137,7 @@ et = AHCI_ERR_RESET; ahci_end_transaction(&ch->slot[i], et); } + /* XXX: This is wrong for NCQ error recovery. */ ahci_reset(dev); } @@ -1171,9 +1151,9 @@ // struct ahci_cmd_list *clp; //device_printf(dev, "%s slot %d\n", __func__, slot->slot); - /* Kill the timeout */ + /* Cancel command execution timeout */ callout_stop(&slot->timeout); - /* Read registers to the result struct */ + /* Read result registers to the result struct */ if (ccb->ccb_h.func_code == XPT_ATA_IO) { struct ata_res *res = &ccb->ataio.res; u_int8_t *fis = ch->dma.work + AHCI_FB_OFFSET + 0x40; @@ -1211,6 +1191,9 @@ if (ccb->ccb_h.func_code == XPT_SCSI_IO) ccb->csio.scsi_status = SCSI_STATUS_OK; break; + case AHCI_ERR_INVALID: + ccb->ccb_h.status = CAM_REQ_INVALID; + break; case AHCI_ERR_REAL: if (ccb->ccb_h.func_code == XPT_SCSI_IO) { ccb->ccb_h.status = CAM_SCSI_STATUS_ERROR; @@ -1262,9 +1245,8 @@ ATA_OUTL(ch->r_mem, AHCI_P_IS, ATA_INL(ch->r_mem, AHCI_P_IS)); /* Start operations on this channel */ cmd = ATA_INL(ch->r_mem, AHCI_P_CMD); - ATA_OUTL(ch->r_mem, AHCI_P_CMD, - cmd | AHCI_P_CMD_ST | - (ch->devices & ATA_PORTMULTIPLIER ? AHCI_P_CMD_PMA : 0)); + ATA_OUTL(ch->r_mem, AHCI_P_CMD, cmd | AHCI_P_CMD_ST); +// (ch->devices & ATA_PORTMULTIPLIER ? AHCI_P_CMD_PMA : 0)); } static void @@ -1292,13 +1274,12 @@ static void ahci_clo(device_t dev) { - struct ahci_controller *ctlr = device_get_softc(device_get_parent(dev)); struct ahci_channel *ch = device_get_softc(dev); u_int32_t cmd; int timeout; /* Issue Command List Override if supported */ - if (ATA_INL(ctlr->r_mem, AHCI_CAP) & AHCI_CAP_SCLO) { + if (ch->caps & AHCI_CAP_SCLO) { cmd = ATA_INL(ch->r_mem, AHCI_P_CMD); cmd |= AHCI_P_CMD_CLO; ATA_OUTL(ch->r_mem, AHCI_P_CMD, cmd); @@ -1410,7 +1391,7 @@ (AHCI_P_IX_CPD | AHCI_P_IX_PRC | AHCI_P_IX_PC)); return; } - ch->devices = ATA_ATA_MASTER; + ch->devices = 1; /* Enable wanted port interrupts */ ATA_OUTL(ch->r_mem, AHCI_P_IE, (AHCI_P_IX_CPD | AHCI_P_IX_TFE | AHCI_P_IX_HBF | @@ -1523,7 +1504,7 @@ DELAY(50000); ATA_OUTL(ch->r_mem, AHCI_P_SCTL, ATA_SC_DET_IDLE /*| ATA_SC_SPD_SPEED_GEN1*/ | ((ch->pm_level > 0) ? 0 : - ATA_SC_IPM_DIS_PARTIAL | ATA_SC_IPM_DIS_SLUMBER)); + (ATA_SC_IPM_DIS_PARTIAL | ATA_SC_IPM_DIS_SLUMBER))); return (ahci_sata_connect(ch)); } @@ -1551,7 +1532,7 @@ /* Check for command collision. */ if (ahci_check_collision(dev, ccb)) { /* Freeze command. */ -//device_printf(dev, "Freeze\n"); +device_printf(dev, "Freeze\n"); /* We have only one frozen slot, so freeze simq also. */ xpt_freeze_simq(ch->sim, 1); ch->frozen = ccb; ==== //depot/projects/scottl-camlock/src/sys/dev/ahci/ahci.h#9 (text+ko) ==== @@ -289,13 +289,6 @@ u_int32_t count; }; -/* structure used by the setprd function */ -struct ata_dmasetprd_args { - void *dmatab; - int nsegs; - int error; -}; - struct ata_dmaslot { bus_dma_tag_t sg_tag; /* SG list DMA tag */ bus_dmamap_t sg_map; /* SG list DMA map */ @@ -319,8 +312,6 @@ u_int32_t segsize; /* DMA SG list segment size */ u_int32_t max_iosize; /* DMA data max IO size */ u_int64_t max_address; /* highest DMA'able address */ - int flags; -#define ATA_DMA_ACTIVE 0x01 /* DMA transfer in progress */ }; #define ATA_MASTER 0x00 @@ -335,46 +326,32 @@ }; struct ahci_slot { - device_t dev; /* device handle */ + device_t dev; /* Device handle */ u_int8_t slot; /* Number of this slot */ enum ahci_slot_states state; /* Slot state */ - union ccb *ccb; - int flags; - - struct ata_dmaslot dma; /* DMA slot of this request */ - struct callout timeout; /* Timeout management */ + union ccb *ccb; /* CCB occupying slot */ + struct ata_dmaslot dma; /* DMA data of this slot */ + struct callout timeout; /* Execution timeout */ }; /* structure describing an ATA channel */ struct ahci_channel { - device_t dev; /* device handle */ - int unit; /* physical channel */ - struct resource *r_mem; - struct resource *r_irq; /* interrupt of this channel */ - void *ih; /* interrupt handle */ - struct ata_dma dma; /* DMA data / functions */ - int flags; /* channel flags */ -#define ATA_NO_SLAVE 0x01 -#define ATA_USE_16BIT 0x02 -#define ATA_ATAPI_DMA_RO 0x04 -#define ATA_NO_48BIT_DMA 0x08 -#define ATA_ALWAYS_DMASTAT 0x10 - - int pm_level; /* power management level */ - int devices; /* what is present */ -#define ATA_ATA_MASTER 0x00000001 -#define ATA_ATA_SLAVE 0x00000002 -#define ATA_PORTMULTIPLIER 0x00008000 -#define ATA_ATAPI_MASTER 0x00010000 -#define ATA_ATAPI_SLAVE 0x00020000 - - struct mtx mtx; /* state lock */ - + device_t dev; /* Device handle */ + int unit; /* Physical channel */ + struct resource *r_mem; /* Memory of this channel */ + struct resource *r_irq; /* Interrupt of this channel */ + void *ih; /* Interrupt handle */ + struct ata_dma dma; /* DMA data */ struct cam_sim *sim; struct cam_path *path; - + uint32_t caps; /* Controller capabilities */ + int numslots; /* Number of present slots */ + int pm_level; /* power management level */ + struct ahci_slot slot[AHCI_MAX_SLOTS]; + struct mtx mtx; /* state lock */ + int devices; /* What is present */ uint32_t rslots; /* Running slots */ int numrslots; /* Number of running slots */ int numtslots; /* Number of tagged slots */ @@ -410,6 +387,7 @@ enum ahci_err_type { AHCI_ERR_NONE, + AHCI_ERR_INVALID, AHCI_ERR_REAL, AHCI_ERR_BTW, AHCI_ERR_RESET, From owner-p4-projects@FreeBSD.ORG Tue Jun 9 16:32:23 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 9B9FB1065691; Tue, 9 Jun 2009 16:32:23 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 522961065688 for ; Tue, 9 Jun 2009 16:32:23 +0000 (UTC) (envelope-from trasz@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 3EA208FC21 for ; Tue, 9 Jun 2009 16:32:23 +0000 (UTC) (envelope-from trasz@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n59GWNrH025599 for ; Tue, 9 Jun 2009 16:32:23 GMT (envelope-from trasz@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n59GWNor025597 for perforce@freebsd.org; Tue, 9 Jun 2009 16:32:23 GMT (envelope-from trasz@freebsd.org) Date: Tue, 9 Jun 2009 16:32:23 GMT Message-Id: <200906091632.n59GWNor025597@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to trasz@freebsd.org using -f From: Edward Tomasz Napierala To: Perforce Change Reviews Cc: Subject: PERFORCE change 163909 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 09 Jun 2009 16:32:25 -0000 http://perforce.freebsd.org/chv.cgi?CH=163909 Change 163909 by trasz@trasz_victim on 2009/06/09 16:31:50 Little cleanup. Affected files ... .. //depot/projects/soc2008/trasz_nfs4acl/sys/kern/subr_acl_nfs4.c#48 edit Differences ... ==== //depot/projects/soc2008/trasz_nfs4acl/sys/kern/subr_acl_nfs4.c#48 (text+ko) ==== @@ -256,25 +256,25 @@ #endif static int -_entry_does_not_match(struct acl_entry *entry, acl_tag_t tag, acl_perm_t perm, +_acl_entry_matches(struct acl_entry *entry, acl_tag_t tag, acl_perm_t perm, acl_entry_type_t entry_type) { if (entry->ae_tag != tag) - return (1); + return (0); if (entry->ae_id != ACL_UNDEFINED_ID) - return (1); + return (0); if (entry->ae_perm != perm) - return (1); + return (0); if (entry->ae_entry_type != entry_type) - return (1); + return (0); if (entry->ae_flags != 0) - return (1); + return (0); - return (0); + return (1); } static struct acl_entry * @@ -464,7 +464,7 @@ previous = entry; entry = _acl_duplicate_entry(aclp, i); - /* Adjust counter, as we've just entry_type the ACL. */ + /* Adjust counter, as we've just added an entry. */ i++; previous->ae_tag = entry->ae_tag; @@ -475,11 +475,15 @@ } /* - * 1.5.2. + * 1.5.2. The following modifications are made to the prepended + * ACE. The intent is to mask the following ACE + * to disallow ACL_READ_DATA, ACL_WRITE_DATA, + * ACL_APPEND_DATA, or ACL_EXECUTE, based upon the group + * permissions of the new mode. As a special case, + * if the ACE matches the current owner of the file, + * the owner bits are used, rather than the group bits. + * This is reflected in the algorithm below. */ - /* - * XXX: Verify all these shifts. - */ amode = mode >> 3; /* @@ -568,24 +572,24 @@ a2 = &(aclp->acl_entry[aclp->acl_cnt - 5]); a1 = &(aclp->acl_entry[aclp->acl_cnt - 6]); - if (_entry_does_not_match(a1, ACL_USER_OBJ, 0, + if (!_acl_entry_matches(a1, ACL_USER_OBJ, 0, ACL_ENTRY_TYPE_DENY)) must_append = 1; - if (_entry_does_not_match(a2, ACL_USER_OBJ, ACL_WRITE_ACL | + if (!_acl_entry_matches(a2, ACL_USER_OBJ, ACL_WRITE_ACL | ACL_WRITE_OWNER | ACL_WRITE_ATTRIBUTES | ACL_WRITE_NAMED_ATTRS, ACL_ENTRY_TYPE_ALLOW)) must_append = 1; - if (_entry_does_not_match(a3, ACL_GROUP_OBJ, 0, + if (!_acl_entry_matches(a3, ACL_GROUP_OBJ, 0, ACL_ENTRY_TYPE_DENY)) must_append = 1; - if (_entry_does_not_match(a4, ACL_GROUP_OBJ, 0, + if (!_acl_entry_matches(a4, ACL_GROUP_OBJ, 0, ACL_ENTRY_TYPE_ALLOW)) must_append = 1; - if (_entry_does_not_match(a5, ACL_EVERYONE, ACL_WRITE_ACL | + if (!_acl_entry_matches(a5, ACL_EVERYONE, ACL_WRITE_ACL | ACL_WRITE_OWNER | ACL_WRITE_ATTRIBUTES | ACL_WRITE_NAMED_ATTRS, ACL_ENTRY_TYPE_DENY)) must_append = 1; - if (_entry_does_not_match(a6, ACL_EVERYONE, ACL_READ_ACL | + if (!_acl_entry_matches(a6, ACL_EVERYONE, ACL_READ_ACL | ACL_READ_ATTRIBUTES | ACL_READ_NAMED_ATTRS | ACL_SYNCHRONIZE, ACL_ENTRY_TYPE_ALLOW)) must_append = 1; From owner-p4-projects@FreeBSD.ORG Tue Jun 9 16:57:53 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id EB1C31065672; Tue, 9 Jun 2009 16:57:52 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id AC9841065670 for ; Tue, 9 Jun 2009 16:57:52 +0000 (UTC) (envelope-from anchie@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 99D048FC1A for ; Tue, 9 Jun 2009 16:57:52 +0000 (UTC) (envelope-from anchie@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n59Gvqo7049503 for ; Tue, 9 Jun 2009 16:57:52 GMT (envelope-from anchie@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n59GvqEY049501 for perforce@freebsd.org; Tue, 9 Jun 2009 16:57:52 GMT (envelope-from anchie@FreeBSD.org) Date: Tue, 9 Jun 2009 16:57:52 GMT Message-Id: <200906091657.n59GvqEY049501@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to anchie@FreeBSD.org using -f From: Ana Kukec To: Perforce Change Reviews Cc: Subject: PERFORCE change 163913 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 09 Jun 2009 16:57:54 -0000 http://perforce.freebsd.org/chv.cgi?CH=163913 Change 163913 by anchie@anchie_malimis on 2009/06/09 16:56:51 Initial code for per-interface processing of SEND messages, that used to be received through netgraph. Affected files ... .. //depot/projects/soc2009/anchie_send/send_0.2/sendd/addr.c#2 edit .. //depot/projects/soc2009/anchie_send/send_0.2/sendd/net.c#3 edit .. //depot/projects/soc2009/anchie_send/send_0.2/sendd/proto.c#2 edit .. //depot/projects/soc2009/anchie_send/send_0.2/sendd/sendd.c#2 edit Differences ... ==== //depot/projects/soc2009/anchie_send/send_0.2/sendd/addr.c#2 (text+ko) ==== @@ -281,9 +281,14 @@ return (0); } + /* if (os_specific_handle_iface(entry->intf_name, ifidx) < 0) { return (-1); } + */ + if (snd_handle_iface(entry->intf_name, ifidx) < 0) { + return (-1); + } intf_cfg_addr(&entry->intf_addr, ifidx); ==== //depot/projects/soc2009/anchie_send/send_0.2/sendd/net.c#3 (text+ko) ==== @@ -69,6 +69,64 @@ return (b); } +/* Per-interface info */ +struct snd_ifinfo { + struct list_head list; + char name[32]; + int ifidx; + int icmps; +} +static DEFINE_LIST_HEAD(ifaces); + +/* Data packet meta data */ +struct input_hook_packet_info { + struct snd_ifinfo *ifinfo; + int in; + int from_kernel; +} + +int +snd_handle_iface(const char *ifname, int ifidx) +{ + struct snd_ifinfo *p; + + if ((p = malloc(sizeof (*p))) == NULL) { + APPLOG_NOMEM(); + return (-1); + } + memset(p, 0, sizeof (*p)); + + snprintf(o->name, sizeof (p->name), "%s", ifname) + p->ifidx = ifidx; + p->icmps = -1; + list_add_tail(&p->list, &ifaces); + + return (0); +} + +void +snd_add_fds(fd_set *fds, int *maxfd) +{ + struct snd_ifinfo *p; + + list_for_each_entry(p, &ifaces, list) { + *maxfd = *maxfd > p->icmps ? *maxfd : p->icmps; + FD_SET(p->icmps, fds); + } +} + +void +snd_dispatch_fds(fd_set *fds) +{ + struct snd_ifinfo *p; + + list_for_each_entry(p, &ifaces, list) { + if (FD_ISSET(p->icmps, fds)) { + /* Reuse the code from + snd_recv_pkt() and snd_icmp_sock_read() + */ + } + void snd_put_buf(struct sbuff *b) { @@ -119,7 +177,7 @@ snd_icmp_sock_read(void) { struct sockaddr_in6 sin[1]; - struct input_hook_packet_info pi; + struct input_hook_packet_info *pi; struct sbuff *b; uint8_t *type; socklen_t slen; @@ -149,7 +207,10 @@ } /* Populate input_hook_packet_info structure! */ - /* Populate ifidx and in integers. */ + /* Determine if the packet was sent to sendd by kernel or other sendd. */ + pi->from_kernel = 1; + + pi->in = 1; type = sbuff_data(b); switch (*type) { @@ -164,8 +225,7 @@ &sin->sin6_addr); break; default: - snd_recv_pkt(sbuff_data(b), ifidx, in, pi); - + DBG(&dbg_snd, "Unhandled ICMP6 type %d", *type); break; } ==== //depot/projects/soc2009/anchie_send/send_0.2/sendd/proto.c#2 (text+ko) ==== @@ -664,9 +664,6 @@ void *start; struct ip6_hdr *iph; - if (!snd_iface_ok(ifidx)) { - return; - } start = sbuff_data(b); DBG(&dbg, "%s", in ? "<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<" : @@ -719,11 +716,13 @@ } if (in) { + /* if (snd_is_lcl_cga(pi->cga, ifidx)) { DBG(&dbg, "is local; don't need to check"); drop = 0; goto done; } + */ if (snd_parse_opts(&pi->ndopts, sbuff_data(b), b->len) < 0) { goto drop; } @@ -733,7 +732,7 @@ /* skip all options */ sbuff_advance(b, b->len); b->len = tlen; - + /* if (!snd_is_lcl_cga(pi->cga, ifidx)) { DBG(&dbg_snd, "outgoing: not CGA, dropping"); if (dad && IN6_IS_ADDR_LINKLOCAL(pi->cga)) { @@ -742,6 +741,7 @@ } goto drop; } + */ r = handle_outgoing(pi); } @@ -763,7 +763,8 @@ drop = 1; done: b->data = start; - os_specific_deliver_pkt(pkt, b, drop, changed); + /* ToDo: The packet is here sent through netgraph. Change this! */ + /* os_specific_deliver_pkt(pkt, b, drop, changed); */ } int ==== //depot/projects/soc2009/anchie_send/send_0.2/sendd/sendd.c#2 (text+ko) ==== @@ -92,7 +92,8 @@ if (cfd != -1) FD_SET(cfd, fds); FD_SET(icmps, fds); FD_SET(ctlfd, fds); - os_specific_add_fds(fds, &maxfd); + /* os_specific_add_fds(fds, &maxfd); */ + snd_add_fds(fds, &maxfd); tv = get_next_wait(tvb); if (select(maxfd + 1, fds, NULL, NULL, tv) < 0) { @@ -113,13 +114,14 @@ #endif /* USE_READLINE */ } #endif /* USE_CONSOLE */ - if (FD_ISSET(icmps, fds)) { + if (FD_ISSET(icmps, fds) { snd_icmp_sock_read(); } if (FD_ISSET(ctlfd, fds)) { snd_ctl_read(ctlfd); } - os_specific_dispatch_fds(fds); + snd_dispatch_fds(fds); + /* os_specific_dispatch_fds(fds); */ snd_replace_non_cga_linklocals(); } } From owner-p4-projects@FreeBSD.ORG Tue Jun 9 17:17:12 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id AE71F10656C9; Tue, 9 Jun 2009 17:17:12 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 67A8F10656C6 for ; Tue, 9 Jun 2009 17:17:12 +0000 (UTC) (envelope-from anchie@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 550008FC27 for ; Tue, 9 Jun 2009 17:17:12 +0000 (UTC) (envelope-from anchie@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n59HHC69052622 for ; Tue, 9 Jun 2009 17:17:12 GMT (envelope-from anchie@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n59HHCbU052620 for perforce@freebsd.org; Tue, 9 Jun 2009 17:17:12 GMT (envelope-from anchie@FreeBSD.org) Date: Tue, 9 Jun 2009 17:17:12 GMT Message-Id: <200906091717.n59HHCbU052620@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to anchie@FreeBSD.org using -f From: Ana Kukec To: Perforce Change Reviews Cc: Subject: PERFORCE change 163916 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 09 Jun 2009 17:17:13 -0000 http://perforce.freebsd.org/chv.cgi?CH=163916 Change 163916 by anchie@anchie_malimis on 2009/06/09 17:16:34 Declarations of new functions for per-interface handling of the incoming traffic. Affected files ... .. //depot/projects/soc2009/anchie_send/send_0.2/sendd/net.c#4 edit .. //depot/projects/soc2009/anchie_send/send_0.2/sendd/os_specific.h#2 edit Differences ... ==== //depot/projects/soc2009/anchie_send/send_0.2/sendd/net.c#4 (text+ko) ==== @@ -43,6 +43,7 @@ #include #include "sendd_local.h" +#include "os_specific.h" #include "snd_proto.h" #include "dbg.h" ==== //depot/projects/soc2009/anchie_send/send_0.2/sendd/os_specific.h#2 (text+ko) ==== @@ -49,6 +49,10 @@ extern void os_specific_fini(void); extern int os_specific_init(void); +extern void snd_add_fds(fd_set *, int *); +extern void snd_dispatch_fds(fd_set *); +extern int snd_handle_iface(const char *, int); + static __inline__ int sendd_max(int a, int b) { From owner-p4-projects@FreeBSD.ORG Tue Jun 9 18:05:19 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 28FFE10656C0; Tue, 9 Jun 2009 18:05:19 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id D541B10656B7 for ; Tue, 9 Jun 2009 18:05:18 +0000 (UTC) (envelope-from marinosi@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id C2F778FC1E for ; Tue, 9 Jun 2009 18:05:18 +0000 (UTC) (envelope-from marinosi@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n59I5HgM057149 for ; Tue, 9 Jun 2009 18:05:17 GMT (envelope-from marinosi@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n59I5F4I057147 for perforce@freebsd.org; Tue, 9 Jun 2009 18:05:15 GMT (envelope-from marinosi@FreeBSD.org) Date: Tue, 9 Jun 2009 18:05:15 GMT Message-Id: <200906091805.n59I5F4I057147@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to marinosi@FreeBSD.org using -f From: Ilias Marinos To: Perforce Change Reviews Cc: Subject: PERFORCE change 163920 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 09 Jun 2009 18:05:20 -0000 http://perforce.freebsd.org/chv.cgi?CH=163920 Change 163920 by marinosi@marinosi_redrum on 2009/06/09 18:04:49 - Fix a memory related bug Affected files ... .. //depot/projects/soc2009/marinosi_appaudit/src/sys/security/audit/audit.c#3 edit .. //depot/projects/soc2009/marinosi_appaudit/src/sys/security/audit/audit_private.h#3 edit Differences ... ==== //depot/projects/soc2009/marinosi_appaudit/src/sys/security/audit/audit.c#3 (text) ==== @@ -79,13 +79,13 @@ MALLOC_DEFINE(M_AUDITDATA, "audit_data", "Audit data storage"); MALLOC_DEFINE(M_AUDITPATH, "audit_path", "Audit path storage"); MALLOC_DEFINE(M_AUDITTEXT, "audit_text", "Audit text storage"); +MALLOC_DEFINE(M_AUDITSLICE, "audit_slice", "Audit slice storage"); SYSCTL_NODE(_security, OID_AUTO, audit, CTLFLAG_RW, 0, "TrustedBSD audit controls"); +struct audit_slice *audit_base_slice = NULL; -struct audit_slice base_slice; -struct audit_slice *audit_base_slice = &base_slice; /* * Kernel audit information. This will store the current audit address * or host information that the kernel will use when it's generating @@ -193,7 +193,12 @@ audit_init(void *arg) { + if ( audit_base_slice == NULL ) + audit_base_slice = malloc(sizeof(*audit_base_slice), + M_AUDITSLICE, M_WAITOK | M_ZERO); + struct audit_slice *as = (struct audit_slice *) arg; + as = audit_base_slice; as->audit_enabled = 0; as->audit_suspended = 0; @@ -245,7 +250,7 @@ } /* Init the base slice */ -SYSINIT(audit_init, SI_SUB_AUDIT, SI_ORDER_FIRST, audit_init, &audit_base_slice); +SYSINIT(audit_init, SI_SUB_AUDIT, SI_ORDER_FIRST, audit_init, NULL); /* * Drain the audit queue and close the log at shutdown. Note that this can ==== //depot/projects/soc2009/marinosi_appaudit/src/sys/security/audit/audit_private.h#3 (text) ==== @@ -50,6 +50,7 @@ MALLOC_DECLARE(M_AUDITDATA); MALLOC_DECLARE(M_AUDITPATH); MALLOC_DECLARE(M_AUDITTEXT); +MALLOC_DECLARE(M_AUDITSLICE); #endif /* @@ -283,17 +284,6 @@ #define AU_PRS_FAILURE 2 #define AU_PRS_BOTH (AU_PRS_SUCCESS|AU_PRS_FAILURE) -/* - * Data structures relating to the kernel audit queue. Ideally, these might - * be abstracted so that only accessor methods are exposed. - */ -extern struct mtx audit_mtx; -extern struct cv audit_watermark_cv; -extern struct cv audit_worker_cv; -extern struct kaudit_queue audit_q; -extern int audit_q_len; -extern int audit_pre_q_len; -extern int audit_in_failure; /* * Flags to use on audit files when opening and closing. From owner-p4-projects@FreeBSD.ORG Tue Jun 9 18:47:02 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 1D29E106568F; Tue, 9 Jun 2009 18:47:02 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id C912D106568B for ; Tue, 9 Jun 2009 18:47:01 +0000 (UTC) (envelope-from trasz@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 9CDA38FC12 for ; Tue, 9 Jun 2009 18:47:01 +0000 (UTC) (envelope-from trasz@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n59Il1BH066836 for ; Tue, 9 Jun 2009 18:47:01 GMT (envelope-from trasz@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n59Il1a3066834 for perforce@freebsd.org; Tue, 9 Jun 2009 18:47:01 GMT (envelope-from trasz@freebsd.org) Date: Tue, 9 Jun 2009 18:47:01 GMT Message-Id: <200906091847.n59Il1a3066834@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to trasz@freebsd.org using -f From: Edward Tomasz Napierala To: Perforce Change Reviews Cc: Subject: PERFORCE change 163922 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 09 Jun 2009 18:47:03 -0000 http://perforce.freebsd.org/chv.cgi?CH=163922 Change 163922 by trasz@trasz_victim on 2009/06/09 18:46:21 Fix build. Affected files ... .. //depot/projects/soc2008/trasz_nfs4acl/sys/sys/vnode.h#30 edit Differences ... ==== //depot/projects/soc2008/trasz_nfs4acl/sys/sys/vnode.h#30 (text+ko) ==== @@ -615,7 +615,6 @@ int vaccess_acl_nfs4(enum vtype type, uid_t file_uid, gid_t file_gid, struct acl *acl, accmode_t accmode, struct ucred *cred, int *privused); -int vfs_unixify_accmode(accmode_t *accmode); void vattr_null(struct vattr *vap); int vcount(struct vnode *vp); void vdrop(struct vnode *); From owner-p4-projects@FreeBSD.ORG Tue Jun 9 20:01:18 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 9A4A31065673; Tue, 9 Jun 2009 20:01:17 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 59BDD1065670 for ; Tue, 9 Jun 2009 20:01:17 +0000 (UTC) (envelope-from trasz@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 484DC8FC1D for ; Tue, 9 Jun 2009 20:01:17 +0000 (UTC) (envelope-from trasz@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n59K1He6073960 for ; Tue, 9 Jun 2009 20:01:17 GMT (envelope-from trasz@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n59K1HeJ073958 for perforce@freebsd.org; Tue, 9 Jun 2009 20:01:17 GMT (envelope-from trasz@freebsd.org) Date: Tue, 9 Jun 2009 20:01:17 GMT Message-Id: <200906092001.n59K1HeJ073958@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to trasz@freebsd.org using -f From: Edward Tomasz Napierala To: Perforce Change Reviews Cc: Subject: PERFORCE change 163925 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 09 Jun 2009 20:01:19 -0000 http://perforce.freebsd.org/chv.cgi?CH=163925 Change 163925 by trasz@trasz_victim on 2009/06/09 20:00:24 Turn assertion into CTASSERT. Affected files ... .. //depot/projects/soc2008/trasz_nfs4acl/lib/libc/posix1e/acl_init.c#8 edit Differences ... ==== //depot/projects/soc2008/trasz_nfs4acl/lib/libc/posix1e/acl_init.c#8 (text+ko) ==== @@ -42,6 +42,14 @@ #include "acl_support.h" +#ifndef CTASSERT +#define CTASSERT(x) _CTASSERT(x, __LINE__) +#define _CTASSERT(x, y) __CTASSERT(x, y) +#define __CTASSERT(x, y) typedef char __assert_ ## y [(x) ? 1 : -1] +#endif + +CTASSERT(1 << _ACL_T_ALIGNMENT_BITS > sizeof(struct acl_t_struct)); + acl_t acl_init(int count) { @@ -57,7 +65,6 @@ return (NULL); } - assert(1 << _ACL_T_ALIGNMENT_BITS > sizeof(struct acl_t_struct)); error = posix_memalign((void *)&acl, 1 << _ACL_T_ALIGNMENT_BITS, sizeof(struct acl_t_struct)); if (error) From owner-p4-projects@FreeBSD.ORG Tue Jun 9 20:31:49 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 436D3106566B; Tue, 9 Jun 2009 20:31:49 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id DA4261065686 for ; Tue, 9 Jun 2009 20:31:48 +0000 (UTC) (envelope-from syl@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id BD8448FC2C for ; Tue, 9 Jun 2009 20:31:48 +0000 (UTC) (envelope-from syl@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n59KVmpF077380 for ; Tue, 9 Jun 2009 20:31:48 GMT (envelope-from syl@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n59KVmcc077378 for perforce@freebsd.org; Tue, 9 Jun 2009 20:31:48 GMT (envelope-from syl@FreeBSD.org) Date: Tue, 9 Jun 2009 20:31:48 GMT Message-Id: <200906092031.n59KVmcc077378@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to syl@FreeBSD.org using -f From: Sylvestre Gallon To: Perforce Change Reviews Cc: Subject: PERFORCE change 163929 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 09 Jun 2009 20:31:50 -0000 http://perforce.freebsd.org/chv.cgi?CH=163929 Change 163929 by syl@syl_atuin on 2009/06/09 20:30:56 - Update Watchdog and PIT drivers to be SoC independant. - Add Watchdog and PIT accessors for base address. - Update cpu_devs. - Fix ident in config file. Affected files ... .. //depot/projects/soc2009/syl_usb/src/sys/arm/at91/at91_pit.c#2 edit .. //depot/projects/soc2009/syl_usb/src/sys/arm/at91/at91_pmc.c#2 edit .. //depot/projects/soc2009/syl_usb/src/sys/arm/at91/at91_wdt.c#2 edit .. //depot/projects/soc2009/syl_usb/src/sys/arm/at91/at91var.h#5 edit .. //depot/projects/soc2009/syl_usb/src/sys/arm/at91/soc_at91sam9261.c#7 edit .. //depot/projects/soc2009/syl_usb/src/sys/arm/at91/uart_bus_at91usart.c#3 edit .. //depot/projects/soc2009/syl_usb/src/sys/arm/at91/uart_cpu_at91usart.c#2 edit .. //depot/projects/soc2009/syl_usb/src/sys/arm/at91/uart_dev_at91usart.c#3 edit .. //depot/projects/soc2009/syl_usb/src/sys/arm/conf/AT91SAM9261EK#3 edit Differences ... ==== //depot/projects/soc2009/syl_usb/src/sys/arm/at91/at91_pit.c#2 (text+ko) ==== @@ -42,7 +42,6 @@ #include #include -#include #include #include @@ -87,8 +86,8 @@ pit_softc = device_get_softc(dev); pit_softc->sc_st = sc->sc_st; pit_softc->sc_dev = dev; - if (bus_space_subregion(sc->sc_st, sc->sc_sh, AT91SAM9261_PIT_BASE, - AT91SAM9261_PIT_SIZE, &pit_softc->sc_sh) != 0) + if (bus_space_subregion(sc->sc_st, sc->sc_sh, at91_pit_base(), + at91_pit_size(), &pit_softc->sc_sh) != 0) panic("couldn't subregion pit registers"); //Enable the PIT here. ==== //depot/projects/soc2009/syl_usb/src/sys/arm/at91/at91_pmc.c#2 (text) ==== ==== //depot/projects/soc2009/syl_usb/src/sys/arm/at91/at91_wdt.c#2 (text+ko) ==== @@ -33,7 +33,6 @@ #include #include -#include #include #include @@ -66,8 +65,8 @@ wdt_softc = device_get_softc(dev); wdt_softc->sc_st = sc->sc_st; wdt_softc->sc_dev = dev; - if (bus_space_subregion(sc->sc_st, sc->sc_sh, AT91SAM9261_WDT_BASE, - AT91SAM9261_WDT_SIZE, &wdt_softc->sc_sh) != 0) + if (bus_space_subregion(sc->sc_st, sc->sc_sh, at91_wdt_base(), + at91_wdt_size(), &wdt_softc->sc_sh) != 0) panic("couldn't subregion watchdog registers"); WR4(WDT_MR, WDT_WDV(0xfff)|WDT_WDRSTEN|WDT_WDD(0xfff)| ==== //depot/projects/soc2009/syl_usb/src/sys/arm/at91/at91var.h#5 (text) ==== @@ -72,5 +72,9 @@ uint32_t at91_sdramc_base(void); uint32_t at91_dbgu_base(void); uint32_t at91_usart0_base(void); +uint32_t at91_wdt_base(void); +uint32_t at91_wdt_size(void); +uint32_t at91_pit_base(void); +uint32_t at91_pit_size(void); #endif /* _AT91VAR_H_ */ ==== //depot/projects/soc2009/syl_usb/src/sys/arm/at91/soc_at91sam9261.c#7 (text+ko) ==== @@ -142,32 +142,27 @@ AT91SAM9261_IRQ_SYSTEM }, { - "at91_udp", 0, - AT91SAM9261_BASE + AT91SAM9261_UDP_BASE, AT91SAM9261_UDP_SIZE, - AT91SAM9261_IRQ_UDP, AT91SAM9261_IRQ_PIOB + "at91_pmc", 0, + AT91SAM9261_BASE + AT91SAM9261_PMC_BASE, AT91SAM9261_PMC_SIZE, + AT91SAM9261_IRQ_SYSTEM }, { - "ohci", 0, - AT91SAM9261_OHCI_BASE, AT91SAM9261_OHCI_SIZE, - AT91SAM9261_IRQ_UHP - }, - { - "pio", 0, + "at91_pio", 0, AT91SAM9261_BASE + AT91SAM9261_PIOA_BASE, AT91SAM9261_PIO_SIZE, AT91SAM9261_IRQ_SYSTEM }, { - "pio", 1, + "at91_pio", 1, AT91SAM9261_BASE + AT91SAM9261_PIOB_BASE, AT91SAM9261_PIO_SIZE, AT91SAM9261_IRQ_SYSTEM }, { - "pio", 2, + "at91_pio", 2, AT91SAM9261_BASE + AT91SAM9261_PIOC_BASE, AT91SAM9261_PIO_SIZE, AT91SAM9261_IRQ_SYSTEM }, { - "uart", 2, + "uart", 0, AT91SAM9261_BASE + AT91SAM9261_DBGU_BASE, AT91SAM9261_DBGU_SIZE, AT91SAM9261_IRQ_SYSTEM }, @@ -236,3 +231,28 @@ { return (AT91SAM9261_DBGU_BASE); } + +uint32_t +at91_wdt_base(void) +{ + return (AT91SAM9261_WDT_BASE); +} + +uint32_t +at91_wdt_size(void) +{ + return (AT91SAM9261_WDT_SIZE); +} + +uint32_t +at91_pit_base(void) +{ + return (AT91SAM9261_PIT_BASE); +} + +uint32_t +at91_pit_size(void) +{ + return (AT91SAM9261_PIT_SIZE); +} + ==== //depot/projects/soc2009/syl_usb/src/sys/arm/at91/uart_bus_at91usart.c#3 (text) ==== ==== //depot/projects/soc2009/syl_usb/src/sys/arm/at91/uart_cpu_at91usart.c#2 (text+ko) ==== ==== //depot/projects/soc2009/syl_usb/src/sys/arm/at91/uart_dev_at91usart.c#3 (text) ==== ==== //depot/projects/soc2009/syl_usb/src/sys/arm/conf/AT91SAM9261EK#3 (text+ko) ==== @@ -17,7 +17,7 @@ # # $FreeBSD: src/sys/arm/conf/BWCT,v 1.11 2009/05/10 00:00:25 kuriyama Exp $ -ident BWCT +ident AT91SAM9261EK options VERBOSE_INIT_ARM @@ -99,9 +99,9 @@ device bpf # Berkeley packet filter -options USB_DEBUG -device scbus -device da -device ohci -device usb -device umass # Disks/Mass storage - Requires scbus and da +#options USB_DEBUG +#device scbus +#device da +#device ohci +#device usb +#device umass # Disks/Mass storage - Requires scbus and da From owner-p4-projects@FreeBSD.ORG Tue Jun 9 21:01:19 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 8CF0D1065672; Tue, 9 Jun 2009 21:01:19 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 4BA81106566B for ; Tue, 9 Jun 2009 21:01:19 +0000 (UTC) (envelope-from pgj@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 368328FC1D for ; Tue, 9 Jun 2009 21:01:19 +0000 (UTC) (envelope-from pgj@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n59L1J5l089755 for ; Tue, 9 Jun 2009 21:01:19 GMT (envelope-from pgj@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n59L1JXU089753 for perforce@freebsd.org; Tue, 9 Jun 2009 21:01:19 GMT (envelope-from pgj@FreeBSD.org) Date: Tue, 9 Jun 2009 21:01:19 GMT Message-Id: <200906092101.n59L1JXU089753@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to pgj@FreeBSD.org using -f From: Gabor Pali To: Perforce Change Reviews Cc: Subject: PERFORCE change 163933 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 09 Jun 2009 21:01:20 -0000 http://perforce.freebsd.org/chv.cgi?CH=163933 Change 163933 by pgj@petymeg-current on 2009/06/09 21:00:22 Start to use libnetstat for displaying tcp connections -- needs some work, still contains hacks Affected files ... .. //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/Makefile#5 edit .. //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat.c#9 edit .. //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat.h#12 edit .. //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat_internal.h#9 edit .. //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat_util.c#11 edit .. //depot/projects/soc2009/pgj_libstat/src/usr.bin/netstat/extern.h#2 edit .. //depot/projects/soc2009/pgj_libstat/src/usr.bin/netstat/inet.c#3 edit .. //depot/projects/soc2009/pgj_libstat/src/usr.bin/netstat/main.c#5 edit Differences ... ==== //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/Makefile#5 (text+ko) ==== @@ -18,4 +18,8 @@ WITHOUT_MAN= yes +.if ${MK_INET6_SUPPORT} != "no" +CFLAGS+= -DINET6 +.endif + .include ==== //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat.c#9 (text+ko) ==== @@ -9,6 +9,11 @@ #include #include #include +#include +#include +#include +#define TCPSTATES +#include #include #include #include @@ -17,7 +22,7 @@ #include "netstat_internal.h" static struct nlist nl[] = { -/* UNP_###-related variables. */ +/* UNP_###-related */ #define X_UNP_COUNT 0 { .n_name = "_unp_count" }, #define X_UNP_GENCNT 1 @@ -27,19 +32,32 @@ #define X_UNP_SHEAD 3 { .n_name = "_unp_shead" }, { .n_name = NULL }, +/* INET-related */ +#define X_TCBINFO 5 + { .n_name = "_tcbinfo" }, +#define X_UDBINFO 6 + { .n_name = "_udbinfo" }, + { .n_name = NULL }, }; static void extract_xunpcb_data(struct xunpcb *, struct socket_type *); +static void extract_inet_data(struct tcpcb *, struct inpcb *, + struct xsocket *, struct socket_type *); +/* type names */ static const char *const socktype[] = { "#0", "stream", "dgram", "raw", "rdm", "seqpacket" }; +static const char *const ipproto[] = + { "hopopts", "igmp", "tcp", "ggp", "ipv4", "ipip", "st", "egp", "pgip", + "rccmon", "nvpii", "pup", "argus", "emcon", "xnet", "chaos", "udp" }; + static int net_local_pcblist_sysctl(int type, struct socket_type_list *list) { char *buf; size_t len; - char mibvar[sizeof "net.local.seqpacket.pcblist"]; + char mibvar[64]; struct xunpgen *xug, *oxug; struct xunpcb *xunp; @@ -156,6 +174,75 @@ #undef KREAD } +static int +net_inet_pcblist_sysctl(int protocol, struct socket_type_list *list) +{ + char *buf; + size_t len; + char mibvar[64]; + + struct xinpgen *xig, *oxig; + struct tcpcb *tp = NULL; + struct inpcb *inp; + struct xsocket *so; + + struct socket_type *stp; + + sprintf(mibvar, "net.inet.%s.pcblist", ipproto[protocol]); + + len = 0; + if (sysctlbyname(mibvar, 0, &len, 0, 0) < 0) { + if (errno != ENOENT) + warn("sysctl: %s", mibvar); + return (-1); + } + if ((buf = malloc(len)) == 0) { + warnx("malloc %lu bytes", (u_long)len); + return (-2); + } + if (sysctlbyname(mibvar, buf, &len, 0, 0) < 0) { + warn("sysctl: %s", mibvar); + free(buf); + return (-2); + } + + oxig = xig = (struct xinpgen *)buf; + for (xig = (struct xinpgen *)((char *)xig + xig->xig_len); + xig->xig_len > sizeof(struct xinpgen); + xig = (struct xinpgen *)((char *)xig + xig->xig_len)) { + if (protocol == IPPROTO_TCP) { + tp = &((struct xtcpcb *)xig)->xt_tp; + inp = &((struct xtcpcb *)xig)->xt_inp; + so = &((struct xtcpcb *)xig)->xt_socket; + } else { + inp = &((struct xinpcb *)xig)->xi_inp; + so = &((struct xinpcb *)xig)->xi_socket; + } + + /* Ignore sockets for protocols other than the desired one. + XXX: is this needed? */ + if (so->xso_protocol != protocol) + continue; + + if (inp->inp_gencnt <= oxig->xig_gen) { + stp = _netstat_st_allocate(list, PF_INET, protocol, + ipproto[protocol]); + extract_inet_data(tp, inp, so, stp); + } + } + + free(buf); + return (0); +} + +static int +net_inet_pcblist_kvm(int protocol, struct socket_type_list *list, + kvm_t *kvm, struct nlist *nlistp) +{ + /* XXX: to be filled in. */ + return (0); +} + int netstat_socket(int domain, int type, int protocol, struct socket_type_list *list, int flags, void *kvm_handle) @@ -173,18 +260,18 @@ } } -#define NLP_KVM(type, list, kvm, nl) do { \ - if (net_local_pcblist_kvm((type), (list), (kvm), (nl)) != 0) { \ - list->stl_error = NETSTAT_ERROR_UNDEFINED; \ - return (-1); \ - } \ +#define NPCB_KVM(family, type, list, kvm, nl) do { \ + if (net_##family##_pcblist_kvm((type), (list), (kvm), (nl)) != 0) { \ + list->stl_error = NETSTAT_ERROR_UNDEFINED; \ + return (-1); \ + } \ } while (0) -#define NLP_SCT(type, list) do { \ - if (net_local_pcblist_sysctl((type), (list)) != 0) { \ - list->stl_error = NETSTAT_ERROR_UNDEFINED; \ - return (-1); \ - } \ +#define NPCB_SCT(family, type, list) do { \ + if (net_##family##_pcblist_sysctl((type), (list)) != 0) { \ + list->stl_error = NETSTAT_ERROR_UNDEFINED; \ + return (-1); \ + } \ } while (0) switch (domain) { @@ -193,18 +280,43 @@ case SOCK_STREAM: case SOCK_DGRAM: if (use_kvm) - NLP_KVM(type, list, kvm, nl); + NPCB_KVM(local, type, list, kvm, nl); else /* Use sysctl (or something else). */ - NLP_SCT(type, list); + NPCB_SCT(local, type, list); + break; /* All PF_LOCAL */ case 0: if (use_kvm) { - NLP_KVM(SOCK_STREAM, list, kvm, nl); - NLP_KVM(SOCK_DGRAM, list, kvm, nl); + NPCB_KVM(local, SOCK_STREAM, list, kvm, nl); + NPCB_KVM(local, SOCK_DGRAM, list, kvm, nl); + } else { + NPCB_SCT(local, SOCK_STREAM, list); + NPCB_SCT(local, SOCK_DGRAM, list); + } + break; + default: + list->stl_error = NETSTAT_ERROR_UNSUPPORTED; + return (-1); + } + break; + case PF_INET: + switch (protocol) { + case IPPROTO_TCP: + case IPPROTO_UDP: + if (use_kvm) + NPCB_KVM(inet, protocol, list, kvm, nl); + else + NPCB_SCT(inet, protocol, list); + break; + /* All PF_INET */ + case 0: + if (use_kvm) { + NPCB_KVM(inet, IPPROTO_TCP, list, kvm, nl); + NPCB_KVM(inet, IPPROTO_UDP, list, kvm, nl); } else { - NLP_SCT(SOCK_STREAM, list); - NLP_SCT(SOCK_DGRAM, list); + NPCB_SCT(inet, IPPROTO_TCP, list); + NPCB_SCT(inet, IPPROTO_UDP, list); } break; default: @@ -216,8 +328,8 @@ list->stl_error = NETSTAT_ERROR_UNSUPPORTED; return (-1); } -#undef NLP_KVM -#undef NLP_SCT +#undef NPCB_KVM +#undef NPCB_SCT return (0); } @@ -230,12 +342,24 @@ stp->st_incqlen = xpcb->xu_socket.so_incqlen; stp->st_qlimit = xpcb->xu_socket.so_qlimit; stp->st_snd_cc = xpcb->xu_socket.so_snd.sb_cc; + stp->st_snd_mcnt = xpcb->xu_socket.so_snd.sb_mcnt; + stp->st_snd_ccnt = xpcb->xu_socket.so_snd.sb_ccnt; + stp->st_snd_hiwat = xpcb->xu_socket.so_snd.sb_hiwat; + stp->st_snd_lowat = xpcb->xu_socket.so_snd.sb_lowat; + stp->st_snd_mbcnt = xpcb->xu_socket.so_snd.sb_mbcnt; + stp->st_snd_mbmax = xpcb->xu_socket.so_snd.sb_mbmax; stp->st_rcv_cc = xpcb->xu_socket.so_rcv.sb_cc; - stp->st_pcb = (long)xpcb->xu_socket.so_pcb; - stp->st_vnode = (long)xpcb->xu_unp.unp_vnode; - stp->st_conn = (long)xpcb->xu_unp.unp_conn; - stp->st_refs = (long)LIST_FIRST(&xpcb->xu_unp.unp_refs); - stp->st_reflink = (long)LIST_NEXT(&xpcb->xu_unp, unp_reflink); + stp->st_rcv_mcnt = xpcb->xu_socket.so_rcv.sb_mcnt; + stp->st_rcv_ccnt = xpcb->xu_socket.so_rcv.sb_ccnt; + stp->st_rcv_hiwat = xpcb->xu_socket.so_rcv.sb_hiwat; + stp->st_rcv_lowat = xpcb->xu_socket.so_rcv.sb_lowat; + stp->st_rcv_mbcnt = xpcb->xu_socket.so_rcv.sb_mbcnt; + stp->st_rcv_mbmax = xpcb->xu_socket.so_rcv.sb_mbmax; + stp->st_pcb = (u_long)xpcb->xu_socket.so_pcb; + stp->st_vnode = (u_long)xpcb->xu_unp.unp_vnode; + stp->st_conn = (u_long)xpcb->xu_unp.unp_conn; + stp->st_refs = (u_long)LIST_FIRST(&xpcb->xu_unp.unp_refs); + stp->st_reflink = (u_long)LIST_NEXT(&xpcb->xu_unp, unp_reflink); stp->st_flags = SOCKTYPE_VNODE | SOCKTYPE_CONN | SOCKTYPE_REFS; if (xpcb->xu_unp.unp_addr) { sa = (struct sockaddr_un *)&xpcb->xu_addr; @@ -245,4 +369,56 @@ } else { stp->st_address[0] = '\0'; } + stp->st_listening = 0; + stp->st_tcpstate[0] = '\0'; +} + +void +extract_inet_data(struct tcpcb *tp, struct inpcb *inp, struct xsocket *so, + struct socket_type *stp) +{ + stp->st_qlen = so->so_qlen; + stp->st_incqlen = so->so_incqlen; + stp->st_qlimit = so->so_qlimit; + stp->st_snd_cc = so->so_snd.sb_cc; + stp->st_snd_mcnt = so->so_snd.sb_mcnt; + stp->st_snd_ccnt = so->so_snd.sb_ccnt; + stp->st_snd_hiwat = so->so_snd.sb_hiwat; + stp->st_snd_lowat = so->so_snd.sb_lowat; + stp->st_snd_mbcnt = so->so_snd.sb_mbcnt; + stp->st_snd_mbmax = so->so_snd.sb_mbmax; + stp->st_rcv_cc = so->so_rcv.sb_cc; + stp->st_rcv_mcnt = so->so_rcv.sb_mcnt; + stp->st_rcv_ccnt = so->so_rcv.sb_ccnt; + stp->st_rcv_hiwat = so->so_rcv.sb_hiwat; + stp->st_rcv_lowat = so->so_rcv.sb_lowat; + stp->st_rcv_mbcnt = so->so_rcv.sb_mbcnt; + stp->st_rcv_mbmax = so->so_rcv.sb_mbmax; + stp->st_pcb = (tp == NULL) ? (u_long)inp->inp_ppcb : + (u_long)so->so_pcb; + stp->st_vnode = (u_long)0; + stp->st_conn = (u_long)0; + stp->st_refs = (u_long)0; + stp->st_reflink = (u_long)0; + stp->st_flags = SOCKTYPE_TCP; + /* XXX: Remove this. */ + if (tp != NULL) + stp->XXX_tcpcb = *tp; + stp->XXX_inpcb = *inp; + stp->XXX_xsocket = *so; + /* XXX: address is missing. */ + stp->st_address[0] = '\0'; + stp->st_listening = (tp->t_state == TCPS_LISTEN); + if (tp->t_state < 0 || tp->t_state >= TCP_NSTATES) + sprintf(stp->st_tcpstate, "%d", tp->t_state); + else { + sprintf(stp->st_tcpstate, "%s", tcpstates[tp->t_state]); +#if defined(TF_NEEDSYN) && defined(TF_NEEDFIN) + /* T/TCP `hidden state' */ + if (tp->t_flags & (TF_NEEDSYN|TF_NEEDFIN)) { + stp->st_tcpstate[0] = '*'; + stp->st_tcpstate[1] = '\0'; + } +#endif /* defined(TF_NEEDSYN) && defined(TF_NEEDFIN) */ + } } ==== //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat.h#12 (text+ko) ==== @@ -56,17 +56,36 @@ int netstat_st_get_family(const struct socket_type *stp); int netstat_st_get_protocol(const struct socket_type *stp); const char *netstat_st_get_name(const struct socket_type *stp); +/* XXX: move snd/rcv-related properties into a new abstract type? */ u_int netstat_st_get_snd_cc(const struct socket_type *stp); +u_int netstat_st_get_snd_hiwat(const struct socket_type *stp); +u_int netstat_st_get_snd_lowat(const struct socket_type *stp); +u_int netstat_st_get_snd_mbcnt(const struct socket_type *stp); +u_int netstat_st_get_snd_mcnt(const struct socket_type *stp); +u_int netstat_st_get_snd_ccnt(const struct socket_type *stp); +u_int netstat_st_get_snd_mbmax(const struct socket_type *stp); u_int netstat_st_get_rcv_cc(const struct socket_type *stp); +u_int netstat_st_get_rcv_hiwat(const struct socket_type *stp); +u_int netstat_st_get_rcv_lowat(const struct socket_type *stp); +u_int netstat_st_get_rcv_mbcnt(const struct socket_type *stp); +u_int netstat_st_get_rcv_mcnt(const struct socket_type *stp); +u_int netstat_st_get_rcv_ccnt(const struct socket_type *stp); +u_int netstat_st_get_rcv_mbmax(const struct socket_type *stp); u_short netstat_st_get_qlen(const struct socket_type *stp); u_short netstat_st_get_incqlen(const struct socket_type *stp); u_short netstat_st_get_qlimit(const struct socket_type *stp); -long netstat_st_get_pcb(const struct socket_type *stp); -long netstat_st_get_vnode(const struct socket_type *stp); -long netstat_st_get_conn(const struct socket_type *stp); -long netstat_st_get_refs(const struct socket_type *stp); -long netstat_st_get_reflink(const struct socket_type *stp); +u_long netstat_st_get_pcb(const struct socket_type *stp); +u_long netstat_st_get_vnode(const struct socket_type *stp); +u_long netstat_st_get_conn(const struct socket_type *stp); +u_long netstat_st_get_refs(const struct socket_type *stp); +u_long netstat_st_get_reflink(const struct socket_type *stp); const char *netstat_st_get_address(const struct socket_type *stp); +int netstat_st_get_listening(const struct socket_type *stp); +const char *netstat_st_get_tcpstate(const struct socket_type *stp); +/* XXX: Remove this hacks. */ +struct tcpcb XXX_netstat_st_get_tcpcb(const struct socket_type *stp); +struct inpcb XXX_netstat_st_get_inpcb(const struct socket_type *stp); +struct xsocket XXX_netstat_st_get_xsocket(const struct socket_type *stp); __END_DECLS #endif /* !_NETSTAT_H_ */ ==== //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat_internal.h#9 (text+ko) ==== @@ -9,6 +9,9 @@ #include #include #include +#include +#include +#include /* XXX: not used yet */ /* Address type: @@ -34,17 +37,36 @@ #endif u_int st_snd_cc; /* actual chars in the send buffer */ + u_int st_snd_mcnt; + u_int st_snd_ccnt; + u_int st_snd_hiwat; + u_int st_snd_lowat; + u_int st_snd_mbcnt; + u_int st_snd_mbmax; u_int st_rcv_cc; /* actual chars in the receive buffer */ + u_int st_rcv_mcnt; + u_int st_rcv_ccnt; + u_int st_rcv_hiwat; + u_int st_rcv_lowat; + u_int st_rcv_mbcnt; + u_int st_rcv_mbmax; u_short st_qlen; /* number of unaccepted connections */ u_short st_incqlen; /* number of unaccepted incomplete connections */ u_short st_qlimit; /* max number queued connections */ - long st_pcb; /* protocol control block */ - long st_vnode; /* if associated with file */ - long st_conn; /* control block of connected socket */ - long st_refs; /* referencing socket linked list */ - long st_reflink; /* link in references list */ + u_long st_pcb; /* protocol control block */ + u_long st_vnode; /* if associated with file */ + u_long st_conn; /* control block of connected socket */ + u_long st_refs; /* referencing socket linked list */ + u_long st_reflink; /* link in references list */ char st_address[SOCKTYPE_MAXADDR]; + char st_tcpstate[16]; + int st_listening; + + /* XXX: Removables. */ + struct tcpcb XXX_tcpcb; + struct inpcb XXX_inpcb; + struct xsocket XXX_xsocket; /* list of types */ LIST_ENTRY(socket_type) st_list; @@ -54,6 +76,7 @@ #define SOCKTYPE_VNODE 0x01 /* Associated with a file. */ #define SOCKTYPE_CONN 0x02 /* Has a control block connected. */ #define SOCKTYPE_REFS 0x04 /* Has socket references. */ +#define SOCKTYPE_TCP 0x08 /* A TCP socket, has states. */ struct socket_type_list { LIST_HEAD(, socket_type) stl_list; ==== //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat_util.c#11 (text+ko) ==== @@ -259,11 +259,83 @@ } u_int +netstat_st_get_rcv_hiwat(const struct socket_type *stp) +{ + return (stp->st_rcv_hiwat); +} + +u_int +netstat_st_get_rcv_lowat(const struct socket_type *stp) +{ + return (stp->st_rcv_lowat); +} + +u_int +netstat_st_get_rcv_mbcnt(const struct socket_type *stp) +{ + return (stp->st_rcv_mbcnt); +} + +u_int +netstat_st_get_rcv_mcnt(const struct socket_type *stp) +{ + return (stp->st_rcv_mcnt); +} + +u_int +netstat_st_get_rcv_ccnt(const struct socket_type *stp) +{ + return (stp->st_rcv_ccnt); +} + +u_int +netstat_st_get_rcv_mbmax(const struct socket_type *stp) +{ + return (stp->st_rcv_mbmax); +} + +u_int netstat_st_get_snd_cc(const struct socket_type *stp) { return (stp->st_snd_cc); } +u_int +netstat_st_get_snd_hiwat(const struct socket_type *stp) +{ + return (stp->st_snd_hiwat); +} + +u_int +netstat_st_get_snd_lowat(const struct socket_type *stp) +{ + return (stp->st_snd_lowat); +} + +u_int +netstat_st_get_snd_mbcnt(const struct socket_type *stp) +{ + return (stp->st_snd_mbcnt); +} + +u_int +netstat_st_get_snd_mcnt(const struct socket_type *stp) +{ + return (stp->st_snd_mcnt); +} + +u_int +netstat_st_get_snd_ccnt(const struct socket_type *stp) +{ + return (stp->st_snd_ccnt); +} + +u_int +netstat_st_get_snd_mbmax(const struct socket_type *stp) +{ + return (stp->st_snd_mbmax); +} + u_short netstat_st_get_qlen(const struct socket_type *stp) { @@ -282,31 +354,31 @@ return (stp->st_qlimit); } -long +u_long netstat_st_get_pcb(const struct socket_type *stp) { return (stp->st_pcb); } -long +u_long netstat_st_get_vnode(const struct socket_type *stp) { return (stp->st_vnode); } -long +u_long netstat_st_get_conn(const struct socket_type *stp) { return (stp->st_conn); } -long +u_long netstat_st_get_refs(const struct socket_type *stp) { return (stp->st_refs); } -long +u_long netstat_st_get_reflink(const struct socket_type *stp) { return (stp->st_reflink); @@ -317,3 +389,34 @@ { return (stp->st_address); } + +int +netstat_st_get_listening(const struct socket_type *stp) +{ + return (stp->st_listening); +} + +const char * +netstat_st_get_tcpstate(const struct socket_type *stp) +{ + return (stp->st_tcpstate); +} + +/* XXX: Remove this hacks. */ +struct tcpcb +XXX_netstat_st_get_tcpcb(const struct socket_type *stp) +{ + return (stp->XXX_tcpcb); +} + +struct inpcb +XXX_netstat_st_get_inpcb(const struct socket_type *stp) +{ + return (stp->XXX_inpcb); +} + +struct xsocket +XXX_netstat_st_get_xsocket(const struct socket_type *stp) +{ + return (stp->XXX_xsocket); +} ==== //depot/projects/soc2009/pgj_libstat/src/usr.bin/netstat/extern.h#2 (text+ko) ==== @@ -69,6 +69,7 @@ int sotoxsocket(struct socket *, struct xsocket *); void protopr(u_long, const char *, int, int); +void inetpr(void *, int); void tcp_stats(u_long, const char *, int, int); void udp_stats(u_long, const char *, int, int); #ifdef SCTP ==== //depot/projects/soc2009/pgj_libstat/src/usr.bin/netstat/inet.c#3 (text+ko) ==== @@ -83,13 +83,19 @@ #include #include #include + +#include +#include #include "extern.h" +#define USE_ITERATOR_TYPE + char *inetname(struct in_addr *); void inetprint(struct in_addr *, int, const char *, int); #ifdef INET6 static int udp_done, tcp_done; #endif /* INET6 */ +static void inetppr(struct socket_type *); static int pcblist_sysctl(int proto, char **bufp, int istcp) @@ -554,6 +560,225 @@ free(buf); } +void +inetpr(void *kvmd, int proto) +{ + struct socket_type_list *stlp; + int error, st_flags; + kvm_t *kvm; +#ifdef USE_ITERATOR_TYPE + struct socket_type_iterator *stip; + struct socket_type *stp; +#endif + + kvm = (kvm_t *)kvmd; + stlp = netstat_stl_alloc(); + if (stlp == NULL) { + warn("netstat_stl_alloc"); + return; + } + + st_flags = 0; + if (live) + st_flags |= NETSTAT_SOCKET_KVM; + + if (netstat_socket(PF_INET, 0, proto, stlp, st_flags, kvm) < 0) { + error = netstat_stl_geterror(stlp); + if (error == NETSTAT_ERROR_KVM) + warnx("netstat_socket: %s", kvm_geterr(kvm)); + else + warnx("netstat_socket: %s", netstat_strerror(error)); + return; + } + +#ifdef USE_ITERATOR_TYPE + if (netstat_sti_alloc(stlp, &stip) < 0) { + warnx("netstat_sti_alloc"); + return; + } + for (stp = netstat_sti_first(stip); stp != NULL; + stp = netstat_sti_next(stip)) { + inetppr(stp); + netstat_st_free(stp); + } +#else + netstat_stl_iterate(stlp, inetppr); +#endif +} + +void +inetppr(struct socket_type *stp) +{ + static int first = 1; + char buf1[15]; + const char *vchar; + struct tcpcb tp; + struct inpcb inp; + struct xsocket so; + int istcp; + + istcp = 0; + inp = XXX_netstat_st_get_inpcb(stp); + so = XXX_netstat_st_get_xsocket(stp); + if (netstat_st_get_protocol(stp) == IPPROTO_TCP) { + tp = XXX_netstat_st_get_tcpcb(stp); + istcp = 1; + } +/* XXX: af1 */ +#if 0 + if ((af1 == AF_INET && (inp.inp_vflag & INP_IPV4) == 0) +#ifdef INET6 + || (af1 == AF_INET6 && (inp.inp_vflag & INP_IPV6) == 0) +#endif /* INET6 */ + || (af1 == AF_UNSPEC && ((inp.inp_vflag & INP_IPV4) == 0 +#ifdef INET6 + && (inp.inp_vflag & INP_IPV6) == 0 +#endif /* INET6 */ + )) + ) + continue; + if (!aflag && + ( + (istcp && netstat_st_get_listening(stp)) + || (af1 == AF_INET && + inet_lnaof(inp.inp_laddr) == INADDR_ANY) +#ifdef INET6 + || (af1 == AF_INET6 && + IN6_IS_ADDR_UNSPECIFIED(&inp.in6p_laddr)) +#endif /* INET6 */ + || (af1 == AF_UNSPEC && + (((inp.inp_vflag & INP_IPV4) != 0 && + inet_lnaof(inp.inp_laddr) == INADDR_ANY) +#ifdef INET6 + || ((inp.inp_vflag & INP_IPV6) != 0 && + IN6_IS_ADDR_UNSPECIFIED(&inp.in6p_laddr)) +#endif + )) + )) + return; +#endif + if (first) { + if (!Lflag) { + printf("Active Internet connections"); + if (aflag) + printf(" (including servers)"); + } else + printf( + "Current listen queue sizes (qlen/incqlen/maxqlen)"); + putchar('\n'); + if (Aflag) + printf("%-8.8s ", "Tcpcb"); + if (Lflag) + printf("%-5.5s %-14.14s %-22.22s\n", + "Proto", "Listen", "Local Address"); + else { + printf((Aflag && !Wflag) ? + "%-5.5s %-6.6s %-6.6s %-18.18s %-18.18s" : + "%-5.5s %-6.6s %-6.6s %-22.22s %-22.22s", + "Proto", "Recv-Q", "Send-Q", + "Local Address", "Foreign Address"); + if (xflag) + printf( + "%-6.6s %-6.6s %-6.6s %-6.6s %-6.6s %-6.6s %-6.6s %-6.6s %-6.6s %-6.6s %-6.6s %-6.6s\n", + "R-MBUF", "S-MBUF", "R-CLUS", + "S-CLUS", "R-HIWA", "S-HIWA", + "R-LOWA", "S-LOWA", "R-BCNT", + "S-BCNT", "R-BMAX", "S-BMAX"); + else + printf("(state)\n"); + } + first = 0; + } + if (Lflag && so.so_qlimit == 0) + return; + if (Aflag) + printf("%8lx ", netstat_st_get_pcb(stp)); +#ifdef INET6 + if ((inp.inp_vflag & INP_IPV6) != 0) + vchar = ((inp.inp_vflag & INP_IPV4) != 0) ? + "46" : "6 "; + else +#endif + vchar = ((inp.inp_vflag & INP_IPV4) != 0) ? + "4 " : " "; + printf("%-3.3s%-2.2s", netstat_st_get_name(stp), vchar); + if (Lflag) { + snprintf(buf1, 15, "%d/%d/%d", netstat_st_get_qlen(stp), + netstat_st_get_incqlen(stp), netstat_st_get_qlimit(stp)); + printf("%-14.14s", buf1); + } else { + printf("%6u %6u", netstat_st_get_rcv_cc(stp), + netstat_st_get_snd_cc(stp)); + } + if (numeric_port) { + if (inp.inp_vflag & INP_IPV4) { + inetprint(&inp.inp_laddr, (int)inp.inp_lport, + netstat_st_get_name(stp), 1); + if (!Lflag) + inetprint(&inp.inp_faddr, + (int)inp.inp_fport, + netstat_st_get_name(stp), 1); + } +#ifdef INET6 + else if (inp.inp_vflag & INP_IPV6) { + inet6print(&inp.in6p_laddr, + (int)inp.inp_lport, netstat_st_get_name(stp), 1); + if (!Lflag) + inet6print(&inp.in6p_faddr, + (int)inp.inp_fport, + netstat_st_get_name(stp), 1); + } /* else nothing printed now */ +#endif /* INET6 */ + } else if (inp.inp_flags & INP_ANONPORT) { + if (inp.inp_vflag & INP_IPV4) { + inetprint(&inp.inp_laddr, (int)inp.inp_lport, + netstat_st_get_name(stp), 1); + if (!Lflag) + inetprint(&inp.inp_faddr, + (int)inp.inp_fport, + netstat_st_get_name(stp), 0); + } +#ifdef INET6 + else if (inp.inp_vflag & INP_IPV6) { + inet6print(&inp.in6p_laddr, + (int)inp.inp_lport, netstat_st_get_name(stp), 1); + if (!Lflag) + inet6print(&inp.in6p_faddr, + (int)inp.inp_fport, + netstat_st_get_name(stp), 0); + } /* else nothing printed now */ +#endif /* INET6 */ + else if (inp.inp_vflag & INP_IPV6) { + inet6print(&inp.in6p_laddr, + (int)inp.inp_lport, netstat_st_get_name(stp), 0); + if (!Lflag) + inet6print(&inp.in6p_faddr, + (int)inp.inp_fport, + netstat_st_get_name(stp), + inp.inp_lport != inp.inp_fport); + } /* else nothing printed now */ + } + if (xflag) { + if (Lflag) + printf("%21s", " "); + printf("%6u %6u %6u %6u %6u %6u %6u %6u %6u %6u %6u %6u", + netstat_st_get_rcv_mcnt(stp), netstat_st_get_snd_mcnt(stp), + netstat_st_get_rcv_ccnt(stp), netstat_st_get_snd_ccnt(stp), + netstat_st_get_rcv_hiwat(stp), + netstat_st_get_snd_hiwat(stp), + netstat_st_get_rcv_lowat(stp), + netstat_st_get_snd_lowat(stp), + netstat_st_get_rcv_mbcnt(stp), + netstat_st_get_snd_mbcnt(stp), + netstat_st_get_rcv_mbmax(stp), + netstat_st_get_snd_mbmax(stp)); + } + if (istcp && !Lflag) { + printf("%s", netstat_st_get_tcpstate(stp)); + } + putchar('\n'); +} + /* * Dump TCP statistics structure. */ ==== //depot/projects/soc2009/pgj_libstat/src/usr.bin/netstat/main.c#5 (text+ko) ==== @@ -652,8 +652,13 @@ off = nl[tp->pr_index].n_value; } if (pr != NULL && (off || (live && tp->pr_usesysctl) || - af != AF_UNSPEC)) - (*pr)(off, name, af, tp->pr_protocol); + af != AF_UNSPEC)) { + /* XXX: temp. hack */ + if (tp->pr_index == N_TCBINFO) + inetpr(kvmd, IPPROTO_TCP); + else + (*pr)(off, name, af, tp->pr_protocol); + } } /* From owner-p4-projects@FreeBSD.ORG Tue Jun 9 23:05:34 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id DCDB91065679; Tue, 9 Jun 2009 23:05:33 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 9CC251065675 for ; Tue, 9 Jun 2009 23:05:33 +0000 (UTC) (envelope-from zec@fer.hr) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 81C878FC27 for ; Tue, 9 Jun 2009 23:05:33 +0000 (UTC) (envelope-from zec@fer.hr) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n59N5Vlv002297 for ; Tue, 9 Jun 2009 23:05:31 GMT (envelope-from zec@fer.hr) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n59N5TrV002295 for perforce@freebsd.org; Tue, 9 Jun 2009 23:05:29 GMT (envelope-from zec@fer.hr) Date: Tue, 9 Jun 2009 23:05:29 GMT Message-Id: <200906092305.n59N5TrV002295@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to zec@fer.hr using -f From: Marko Zec To: Perforce Change Reviews Cc: Subject: PERFORCE change 163941 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 09 Jun 2009 23:05:34 -0000 http://perforce.freebsd.org/chv.cgi?CH=163941 Change 163941 by zec@zec_amdx4 on 2009/06/09 23:05:04 A still nonfunctional hack aiming at preventing inbound path of the network stack being called directly from the outbound path via netgraph. Affected files ... .. //depot/projects/vimage-commit2/src/sys/netgraph/netgraph.h#25 edit .. //depot/projects/vimage-commit2/src/sys/netgraph/ng_base.c#33 edit .. //depot/projects/vimage-commit2/src/sys/netgraph/ng_eiface.c#23 edit .. //depot/projects/vimage-commit2/src/sys/sys/proc.h#18 edit Differences ... ==== //depot/projects/vimage-commit2/src/sys/netgraph/netgraph.h#25 (text+ko) ==== @@ -130,6 +130,8 @@ #define HK_FORCE_WRITER 0x0004 /* Incoming data queued as a writer */ #define HK_DEAD 0x0008 /* This is the dead hook.. don't free */ #define HK_HI_STACK 0x0010 /* Hook has hi stack usage */ +#define HK_TO_INBOUND 0x0020 /* Hook calls into the inbound path + of the network stack. */ /* * Public Methods for hook @@ -150,6 +152,8 @@ #define _NG_HOOK_FORCE_WRITER(hook) \ do { hook->hk_flags |= HK_FORCE_WRITER; } while (0) #define _NG_HOOK_FORCE_QUEUE(hook) do { hook->hk_flags |= HK_QUEUE; } while (0) +#define _NG_HOOK_SET_TO_INBOUND(hook) \ + do { hook->hk_flags |= HK_TO_INBOUND; } while (0) #define _NG_HOOK_HI_STACK(hook) do { hook->hk_flags |= HK_HI_STACK; } while (0) /* Some shortcuts */ @@ -176,8 +180,11 @@ static __inline node_p _ng_hook_node(hook_p hook, char * file, int line); static __inline hook_p _ng_hook_peer(hook_p hook, char * file, int line); static __inline void _ng_hook_force_writer(hook_p hook, char * file, - int line); -static __inline void _ng_hook_force_queue(hook_p hook, char * file, int line); + int line); +static __inline void _ng_hook_force_queue(hook_p hook, char * file, + int line); +static __inline void _ng_hook_set_to_inbound(hook_p hook, char * file, + int line); static __inline void _chkhook(hook_p hook, char *file, int line) @@ -282,6 +289,13 @@ } static __inline void +_ng_hook_set_to_inbound(hook_p hook, char * file, int line) +{ + _chkhook(hook, file, line); + _NG_HOOK_SET_TO_INBOUND(hook); +} + +static __inline void _ng_hook_hi_stack(hook_p hook, char * file, int line) { _chkhook(hook, file, line); @@ -302,6 +316,7 @@ #define NG_HOOK_PEER(hook) _ng_hook_peer(hook, _NN_) #define NG_HOOK_FORCE_WRITER(hook) _ng_hook_force_writer(hook, _NN_) #define NG_HOOK_FORCE_QUEUE(hook) _ng_hook_force_queue(hook, _NN_) +#define NG_HOOK_SET_TO_INBOUND(hook) _ng_hook_set_to_inbound(hook, _NN_) #define NG_HOOK_HI_STACK(hook) _ng_hook_hi_stack(hook, _NN_) #else /* NETGRAPH_DEBUG */ /*----------------------------------------------*/ @@ -319,6 +334,7 @@ #define NG_HOOK_PEER(hook) _NG_HOOK_PEER(hook) #define NG_HOOK_FORCE_WRITER(hook) _NG_HOOK_FORCE_WRITER(hook) #define NG_HOOK_FORCE_QUEUE(hook) _NG_HOOK_FORCE_QUEUE(hook) +#define NG_HOOK_SET_TO_INBOUND(hook) _NG_HOOK_SET_TO_INBOUND(hook) #define NG_HOOK_HI_STACK(hook) _NG_HOOK_HI_STACK(hook) #endif /* NETGRAPH_DEBUG */ /*----------------------------------------------*/ ==== //depot/projects/vimage-commit2/src/sys/netgraph/ng_base.c#33 (text+ko) ==== @@ -2213,11 +2213,16 @@ } /* - * If sender or receiver requests queued delivery or stack usage + * If sender or receiver requests queued delivery, or call graph + * loops back from outbound to inbound path, or stack usage * level is dangerous - enqueue message. */ if ((flags & NG_QUEUE) || (hook && (hook->hk_flags & HK_QUEUE))) { queue = 1; + } else if (hook && (hook->hk_flags & HK_TO_INBOUND) /* && + (curthread->td_flags & TDF_NG_OUTBOUND) */) { +printf("ng queuing: td_flags = %X\n", curthread->td_flags); + queue = 1; } else { queue = 0; #ifdef GET_STACK_USAGE ==== //depot/projects/vimage-commit2/src/sys/netgraph/ng_eiface.c#23 (text+ko) ==== @@ -95,6 +95,7 @@ static ng_rcvmsg_t ng_eiface_rcvmsg; static ng_shutdown_t ng_eiface_rmnode; static ng_newhook_t ng_eiface_newhook; +static ng_connect_t ng_eiface_connect; static ng_rcvdata_t ng_eiface_rcvdata; static ng_disconnect_t ng_eiface_disconnect; @@ -107,6 +108,7 @@ .rcvmsg = ng_eiface_rcvmsg, .shutdown = ng_eiface_rmnode, .newhook = ng_eiface_newhook, + .connect = ng_eiface_connect, .rcvdata = ng_eiface_rcvdata, .disconnect = ng_eiface_disconnect, .cmdlist = ng_eiface_cmdlist @@ -421,6 +423,19 @@ } /* + * Mark a hook as leading to inbound path of the network stack, so + * that framework can queue calls to us that arrived from the outbound + * path. + */ +static int +ng_eiface_connect(hook_p hook) +{ + + NG_HOOK_SET_TO_INBOUND(hook); + return (0); +} + +/* * Receive a control message */ static int ==== //depot/projects/vimage-commit2/src/sys/sys/proc.h#18 (text+ko) ==== @@ -319,7 +319,7 @@ #define TDF_BOUNDARY 0x00000400 /* Thread suspended at user boundary */ #define TDF_ASTPENDING 0x00000800 /* Thread has some asynchronous events. */ #define TDF_TIMOFAIL 0x00001000 /* Timeout from sleep after we were awake. */ -#define TDF_UNUSED2000 0x00002000 /* --available-- */ +#define TDF_NG_OUTBOUND 0x00002000 /* Thread called into ng from ntw stack. */ #define TDF_UPIBLOCKED 0x00004000 /* Thread blocked on user PI mutex. */ #define TDF_NEEDSUSPCHK 0x00008000 /* Thread may need to suspend. */ #define TDF_NEEDRESCHED 0x00010000 /* Thread needs to yield. */ From owner-p4-projects@FreeBSD.ORG Wed Jun 10 10:18:07 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 721471065675; Wed, 10 Jun 2009 10:18:07 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 2D8F31065670 for ; Wed, 10 Jun 2009 10:18:07 +0000 (UTC) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 108048FC08 for ; Wed, 10 Jun 2009 10:18:07 +0000 (UTC) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n5AAI6J4035780 for ; Wed, 10 Jun 2009 10:18:06 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n5AAI60V035778 for perforce@freebsd.org; Wed, 10 Jun 2009 10:18:06 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Date: Wed, 10 Jun 2009 10:18:06 GMT Message-Id: <200906101018.n5AAI60V035778@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to bb+lists.freebsd.perforce@cyrus.watson.org using -f From: Robert Watson To: Perforce Change Reviews Cc: Subject: PERFORCE change 163962 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 10 Jun 2009 10:18:08 -0000 http://perforce.freebsd.org/chv.cgi?CH=163962 Change 163962 by rwatson@rwatson_freebsd_capabilities on 2009/06/10 10:17:27 Significantly revise the libcapability API so that it does something, namely, support the creation of "agent" capability mode processes from a "host". Currently, this API isn't appropriate for nested sandboxes, as it relies on access to the global file system namespace to create agents. The agent portion of the API is not yet implemented. Affected files ... .. //depot/projects/trustedbsd/capabilities/src/lib/libcapability/Makefile#2 edit .. //depot/projects/trustedbsd/capabilities/src/lib/libcapability/capability.c#3 delete .. //depot/projects/trustedbsd/capabilities/src/lib/libcapability/libcap_consumer.c#2 delete .. //depot/projects/trustedbsd/capabilities/src/lib/libcapability/libcapability.3#2 edit .. //depot/projects/trustedbsd/capabilities/src/lib/libcapability/libcapability.c#1 add .. //depot/projects/trustedbsd/capabilities/src/lib/libcapability/libcapability.h#4 edit Differences ... ==== //depot/projects/trustedbsd/capabilities/src/lib/libcapability/Makefile#2 (text+ko) ==== @@ -3,7 +3,7 @@ LIB= capability SRCS= \ - capability.c + libcapability.c INCS= libcapability.h ==== //depot/projects/trustedbsd/capabilities/src/lib/libcapability/libcapability.3#2 (text+ko) ==== @@ -43,12 +43,71 @@ .Sh SYNOPSIS .In sys/types.h .In sys/capability.h -.In libcap.h +.In libcapability.h +.Ft int +.Fn lc_limitfd "int fd" "cap_rights_t rights" +.Ft int +.Fn lch_agent_start "const char *agent" "struct lc_agent **lcap" +.Ft void +.Fn lch_agent_stop "struct lc_agent *lcap" +.Ft int +.Fn lch_agent_getsock "struct lc_agent *lcap" "int *fdp" +.Ft int +.Fn lch_agent_getpid "struct lc_agent *lcap" "pid_t *pidp" +.Ft int +.Fn lch_agent_getprocdesc "struct lc_agent *lcap" "int *fdp" +.Ft ssize_t +.Fn lch_agent_recv "struct lc_agent *lcap, void *buf" "size_t len" "int flags" +.Ft ssize_t +.Fn lch_agent_send "struct lc_agent *lcap" "const void *msg" "size_t len" "int flags" .Sh DESCRIPTION The .Nm library routines provide services for processes hosting or running in capability mode. +.Sh HOST API +The +.Nm +host API allows processes to start, stop, and manage agents running in +capability mode. +Host API functions can be identified by their function name prefix, +.Dv lch_ . +.Pp +Each executing agent instance is described by an opaque +.Dt "struct lc_agent" , +which is returned by +.Fn lch_agent_start +for successfully started agents, and passed into other APIs to indicate which +agent should be acted on. +.Fn lch_agent_start +creates a new executing agent, given the name of the agent binary via +.Va agent . +Executing agents may be stopped (and state freed) using +.Fn lch_agent_stop . +.Pp +Properties of the agent, such as the socket used to communicate with it, +the proces descriptor for the agent process, and the pid, may be queried +using +.Fn lch_agent_getsock , +.Fn lch_agent_getprocdesc , +and +.Fn lch_agent_getpid . +.Pp +.Fn lch_agent_recv +and +.Fn lch_agent_send +provide simple wrappers around +.Xr recv 2 +and +.Xr send 2 +to avoid agent consumers from having to query agent socket file descriptors +before use. +.Sh AGENT API +The +.Nm +agent API allows agent processes to interact with their host process. +Agent API functions can be identified by their function name prefix, +.Dv lca_ . .Sh SEE ALSO .Xr cap_enter 2 .Xr cap_new 2 ==== //depot/projects/trustedbsd/capabilities/src/lib/libcapability/libcapability.h#4 (text+ko) ==== @@ -30,71 +30,38 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $P4: //depot/projects/trustedbsd/capabilities/src/lib/libcapability/libcapability.h#3 $ + * $P4: //depot/projects/trustedbsd/capabilities/src/lib/libcapability/libcapability.h#4 $ */ #ifndef _LIBCAPABILITY_H_ #define _LIBCAPABILITY_H_ -/* - * libcapability operation types are negative; positive request types are - * reserved for application use. - */ -#define LIBCAP_REQ_SHUTDOWN -1 +struct lc_agent; -struct lc_consumer { - void *lc_private; /* Private data. */ -}; - -struct lc_producer { - void *lp_private; /* Private data. */ -}; - /* - * Version of the header seen on the wire. + * Capability interfaces. */ -struct lc_wire_message { - uint32_t lwm_magic; /* Magic number. */ - uint32_t lwm_hdrlen; /* Length of this header. */ - uint64_t lwm_opseqnum; /* Unique ID of request. */ - int64_t lwm_optype; /* Operation type to perform. */ - uint64_t lwm_flags; /* Flags. */ - uint64_t lwm_immlen; /* Immediates length. */ - uint64_t lwm_datalen; /* Data length. */ -}; +int lc_limitfd(int fd, cap_rights_t rights); /* - * Version of the header exposed to applications. + * Interfaces to start and stop capability mode agents. */ -struct lc_message { - uint64_t lm_opseqnum; /* Unique ID of request. */ - int64_t lm_optype; /* Operation type to perform. */ - uint64_t lm_flags; /* Flags. */ - uint64_t lm_immlen; /* Immediates length. */ - uint64_t lm_datalen; /* Data length. */ - u_char *lm_immp; /* Immediates pointer. */ - u_char *l_datap; /* Data pointer. */ -}; +int lch_agent_start(const char *agent, struct lc_agent **lcap); +void lch_agent_stop(struct lc_agent *lcap); /* - * Allow a libcapability "consumer" to initialize its consumer state. + * Interfaces to query state about capability mode agents. */ -void lc_consumer_destroy(struct lc_consumer *lccp); -struct lc_consumer *lc_consumer_new(const char *service_name, - const char *library_name); -int lc_consumer_start(struct lc_consumer *lccp); +int lch_agent_getsock(struct lc_agent *lcap, int *fdp); +int lch_agent_getpid(struct lc_agent *lcap, pid_t *pidp); +int lch_agent_getprocdesc(struct lc_agent *lcap, int *fdp); /* - * Allow a libcapability "producer" to initialize its producer state. A - * service name is passed, and will be validated. + * I/O interfaces for capability mode agents. */ -struct lc_producer *lc_producer_register(const char *service_name); -void lc_producer_destroy(struct lc_producer *lcpp); - -struct lc_message *lc_producer_recvmessage(struct lc_producer *lcpp); -struct lc_message *lc_producer_allocmessage(struct lc_producer *lcpp); -void lc_producer_freemessage(struct lc_producer *lcpp, - struct lc_message *lmp); -int lc_producer_sendmessage(struct lc_producer *lcpp); +ssize_t lch_agent_recv(struct lc_agent *lcap, void *buf, size_t len, + int flags); +ssize_t lch_agent_send(struct lc_agent *lcap, const void *msg, size_t len, + int flags); #endif /* !_LIBCAPABILITY_H_ */ From owner-p4-projects@FreeBSD.ORG Wed Jun 10 10:33:22 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id B2F4F1065678; Wed, 10 Jun 2009 10:33:22 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 705C41065676 for ; Wed, 10 Jun 2009 10:33:22 +0000 (UTC) (envelope-from pgj@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 5ED968FC2B for ; Wed, 10 Jun 2009 10:33:22 +0000 (UTC) (envelope-from pgj@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n5AAXMp0036931 for ; Wed, 10 Jun 2009 10:33:22 GMT (envelope-from pgj@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n5AAXMC9036929 for perforce@freebsd.org; Wed, 10 Jun 2009 10:33:22 GMT (envelope-from pgj@FreeBSD.org) Date: Wed, 10 Jun 2009 10:33:22 GMT Message-Id: <200906101033.n5AAXMC9036929@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to pgj@FreeBSD.org using -f From: Gabor Pali To: Perforce Change Reviews Cc: Subject: PERFORCE change 163963 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 10 Jun 2009 10:33:23 -0000 http://perforce.freebsd.org/chv.cgi?CH=163963 Change 163963 by pgj@petymeg-current on 2009/06/10 10:32:31 Fix a small bug Affected files ... .. //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat.c#10 edit .. //depot/projects/soc2009/pgj_libstat/src/usr.bin/netstat/inet.c#4 edit .. //depot/projects/soc2009/pgj_libstat/src/usr.bin/netstat/unix.c#11 edit Differences ... ==== //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat.c#10 (text+ko) ==== @@ -250,7 +250,7 @@ kvm_t *kvm; int use_kvm; - use_kvm = flags & ~NETSTAT_SOCKET_KVM; + use_kvm = flags & NETSTAT_SOCKET_KVM; if (use_kvm) { /* Use KVM to retrieve data. */ kvm = (kvm_t *)kvm_handle; ==== //depot/projects/soc2009/pgj_libstat/src/usr.bin/netstat/inet.c#4 (text+ko) ==== @@ -579,7 +579,7 @@ } st_flags = 0; - if (live) + if (!live) st_flags |= NETSTAT_SOCKET_KVM; if (netstat_socket(PF_INET, 0, proto, stlp, st_flags, kvm) < 0) { ==== //depot/projects/soc2009/pgj_libstat/src/usr.bin/netstat/unix.c#11 (text+ko) ==== @@ -76,7 +76,7 @@ } st_flags = 0; - if (live) + if (!live) st_flags |= NETSTAT_SOCKET_KVM; /* Get all the local sockets, regardless their types. */ From owner-p4-projects@FreeBSD.ORG Wed Jun 10 10:37:27 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 223591065687; Wed, 10 Jun 2009 10:37:27 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id D0FEF10656A4 for ; Wed, 10 Jun 2009 10:37:26 +0000 (UTC) (envelope-from pgj@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id BEC878FC21 for ; Wed, 10 Jun 2009 10:37:26 +0000 (UTC) (envelope-from pgj@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n5AAbQLF037262 for ; Wed, 10 Jun 2009 10:37:26 GMT (envelope-from pgj@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n5AAbQfA037260 for perforce@freebsd.org; Wed, 10 Jun 2009 10:37:26 GMT (envelope-from pgj@FreeBSD.org) Date: Wed, 10 Jun 2009 10:37:26 GMT Message-Id: <200906101037.n5AAbQfA037260@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to pgj@FreeBSD.org using -f From: Gabor Pali To: Perforce Change Reviews Cc: Subject: PERFORCE change 163965 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 10 Jun 2009 10:37:28 -0000 http://perforce.freebsd.org/chv.cgi?CH=163965 Change 163965 by pgj@petymeg-current on 2009/06/10 10:37:14 Some code re-organization Affected files ... .. //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat.c#11 edit Differences ... ==== //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat.c#11 (text+ko) ==== @@ -99,6 +99,74 @@ } static int +net_inet_pcblist_sysctl(int protocol, struct socket_type_list *list) +{ + char *buf; + size_t len; + char mibvar[64]; + + struct xinpgen *xig, *oxig; + struct tcpcb *tp = NULL; + struct inpcb *inp; + struct xsocket *so; + + struct socket_type *stp; + + sprintf(mibvar, "net.inet.%s.pcblist", ipproto[protocol]); + + len = 0; + if (sysctlbyname(mibvar, 0, &len, 0, 0) < 0) { + if (errno != ENOENT) + warn("sysctl: %s", mibvar); + return (-1); + } + if ((buf = malloc(len)) == 0) { + warnx("malloc %lu bytes", (u_long)len); + return (-2); + } + if (sysctlbyname(mibvar, buf, &len, 0, 0) < 0) { + warn("sysctl: %s", mibvar); + free(buf); + return (-2); + } + + oxig = xig = (struct xinpgen *)buf; + for (xig = (struct xinpgen *)((char *)xig + xig->xig_len); + xig->xig_len > sizeof(struct xinpgen); + xig = (struct xinpgen *)((char *)xig + xig->xig_len)) { + if (protocol == IPPROTO_TCP) { + tp = &((struct xtcpcb *)xig)->xt_tp; + inp = &((struct xtcpcb *)xig)->xt_inp; + so = &((struct xtcpcb *)xig)->xt_socket; + } else { + inp = &((struct xinpcb *)xig)->xi_inp; + so = &((struct xinpcb *)xig)->xi_socket; + } + + /* Ignore sockets for protocols other than the desired one. + XXX: is this needed? */ + if (so->xso_protocol != protocol) + continue; + + if (inp->inp_gencnt <= oxig->xig_gen) { + stp = _netstat_st_allocate(list, PF_INET, protocol, + ipproto[protocol]); + extract_inet_data(tp, inp, so, stp); + } + } + + free(buf); + return (0); +} + +#define KREAD(off, buf, len) do { \ + if (kread(kvm, (uintptr_t)(off), (buf), (len)) != 0) { \ + list->stl_error = NETSTAT_ERROR_UNDEFINED; \ + return (-1); \ + } \ +} while (0); + +static int net_local_pcblist_kvm(int type, struct socket_type_list *list, kvm_t *kvm, struct nlist *nlistp) { @@ -131,13 +199,6 @@ return (-1); } -#define KREAD(off, buf, len) do { \ - if (kread(kvm, (uintptr_t)(off), (buf), (len)) != 0) { \ - list->stl_error = NETSTAT_ERROR_UNDEFINED; \ - return (-1); \ - } \ -} while (0); - KREAD(count_off, &unp_count, sizeof(unp_count)); KREAD(gencnt_off, &unp_gencnt, sizeof(unp_gencnt)); KREAD(head_off, &head, sizeof(head)); @@ -171,71 +232,9 @@ } return (0); -#undef KREAD } static int -net_inet_pcblist_sysctl(int protocol, struct socket_type_list *list) -{ - char *buf; - size_t len; - char mibvar[64]; - - struct xinpgen *xig, *oxig; - struct tcpcb *tp = NULL; - struct inpcb *inp; - struct xsocket *so; - - struct socket_type *stp; - - sprintf(mibvar, "net.inet.%s.pcblist", ipproto[protocol]); - - len = 0; - if (sysctlbyname(mibvar, 0, &len, 0, 0) < 0) { - if (errno != ENOENT) - warn("sysctl: %s", mibvar); - return (-1); - } - if ((buf = malloc(len)) == 0) { - warnx("malloc %lu bytes", (u_long)len); - return (-2); - } - if (sysctlbyname(mibvar, buf, &len, 0, 0) < 0) { - warn("sysctl: %s", mibvar); - free(buf); - return (-2); - } - - oxig = xig = (struct xinpgen *)buf; - for (xig = (struct xinpgen *)((char *)xig + xig->xig_len); - xig->xig_len > sizeof(struct xinpgen); - xig = (struct xinpgen *)((char *)xig + xig->xig_len)) { - if (protocol == IPPROTO_TCP) { - tp = &((struct xtcpcb *)xig)->xt_tp; - inp = &((struct xtcpcb *)xig)->xt_inp; - so = &((struct xtcpcb *)xig)->xt_socket; - } else { - inp = &((struct xinpcb *)xig)->xi_inp; - so = &((struct xinpcb *)xig)->xi_socket; - } - - /* Ignore sockets for protocols other than the desired one. - XXX: is this needed? */ - if (so->xso_protocol != protocol) - continue; - - if (inp->inp_gencnt <= oxig->xig_gen) { - stp = _netstat_st_allocate(list, PF_INET, protocol, - ipproto[protocol]); - extract_inet_data(tp, inp, so, stp); - } - } - - free(buf); - return (0); -} - -static int net_inet_pcblist_kvm(int protocol, struct socket_type_list *list, kvm_t *kvm, struct nlist *nlistp) { @@ -243,6 +242,8 @@ return (0); } +#undef KREAD + int netstat_socket(int domain, int type, int protocol, struct socket_type_list *list, int flags, void *kvm_handle) From owner-p4-projects@FreeBSD.ORG Wed Jun 10 11:00:51 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 7821C10656F0; Wed, 10 Jun 2009 11:00:51 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 1788610656D3 for ; Wed, 10 Jun 2009 11:00:51 +0000 (UTC) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 015208FC18 for ; Wed, 10 Jun 2009 11:00:51 +0000 (UTC) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n5AB0odn040528 for ; Wed, 10 Jun 2009 11:00:50 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n5AB0oQp040526 for perforce@freebsd.org; Wed, 10 Jun 2009 11:00:50 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Date: Wed, 10 Jun 2009 11:00:50 GMT Message-Id: <200906101100.n5AB0oQp040526@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to bb+lists.freebsd.perforce@cyrus.watson.org using -f From: Robert Watson To: Perforce Change Reviews Cc: Subject: PERFORCE change 163967 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 10 Jun 2009 11:00:54 -0000 http://perforce.freebsd.org/chv.cgi?CH=163967 Change 163967 by rwatson@rwatson_freebsd_capabilities on 2009/06/10 11:00:14 Start also implementing an agent API, simplify host API a bit. Affected files ... .. //depot/projects/trustedbsd/capabilities/src/lib/libcapability/Makefile#3 edit .. //depot/projects/trustedbsd/capabilities/src/lib/libcapability/libcapability.3#3 edit .. //depot/projects/trustedbsd/capabilities/src/lib/libcapability/libcapability.c#2 edit .. //depot/projects/trustedbsd/capabilities/src/lib/libcapability/libcapability.h#5 edit .. //depot/projects/trustedbsd/capabilities/src/lib/libcapability/libcapability_agent.c#1 add .. //depot/projects/trustedbsd/capabilities/src/lib/libcapability/libcapability_agent_api.h#1 add Differences ... ==== //depot/projects/trustedbsd/capabilities/src/lib/libcapability/Makefile#3 (text+ko) ==== @@ -3,7 +3,8 @@ LIB= capability SRCS= \ - libcapability.c + libcapability.c \ + libcapability_agent.c INCS= libcapability.h ==== //depot/projects/trustedbsd/capabilities/src/lib/libcapability/libcapability.3#3 (text+ko) ==== @@ -47,19 +47,27 @@ .Ft int .Fn lc_limitfd "int fd" "cap_rights_t rights" .Ft int -.Fn lch_agent_start "const char *agent" "struct lc_agent **lcap" +.Fn lch_start "const char *agent" "struct lc_agent **lcap" .Ft void -.Fn lch_agent_stop "struct lc_agent *lcap" +.Fn lch_stop "struct lc_agent *lcap" +.Ft int +.Fn lch_getsock "struct lc_agent *lcap" "int *fdp" +.Ft int +.Fn lch_getpid "struct lc_agent *lcap" "pid_t *pidp" .Ft int -.Fn lch_agent_getsock "struct lc_agent *lcap" "int *fdp" +.Fn lch_getprocdesc "struct lc_agent *lcap" "int *fdp" +.Ft ssize_t +.Fn lch_recv "struct lc_agent *lcap, void *buf" "size_t len" "int flags" +.Ft ssize_t +.Fn lch_send "struct lc_agent *lcap" "const void *msg" "size_t len" "int flags" .Ft int -.Fn lch_agent_getpid "struct lc_agent *lcap" "pid_t *pidp" +.Fn lca_get "struct lc_host **lchpp" .Ft int -.Fn lch_agent_getprocdesc "struct lc_agent *lcap" "int *fdp" +.Fn lca_getsock "struct lc_host *lchp" "int *fdp" .Ft ssize_t -.Fn lch_agent_recv "struct lc_agent *lcap, void *buf" "size_t len" "int flags" +.Fn lca_recv "struct lc_host *lchp" "void *buf" "size_t len" "int flags" .Ft ssize_t -.Fn lch_agent_send "struct lc_agent *lcap" "const void *msg" "size_t len" "int flags" +.Fn lca_send "struct lc_host *lchp" "const void *msg" "size_t len" "int flags" .Sh DESCRIPTION The .Nm @@ -76,26 +84,26 @@ Each executing agent instance is described by an opaque .Dt "struct lc_agent" , which is returned by -.Fn lch_agent_start +.Fn lch_start for successfully started agents, and passed into other APIs to indicate which agent should be acted on. -.Fn lch_agent_start +.Fn lch_start creates a new executing agent, given the name of the agent binary via .Va agent . Executing agents may be stopped (and state freed) using -.Fn lch_agent_stop . +.Fn lch_stop . .Pp Properties of the agent, such as the socket used to communicate with it, the proces descriptor for the agent process, and the pid, may be queried using -.Fn lch_agent_getsock , -.Fn lch_agent_getprocdesc , +.Fn lch_getsock , +.Fn lch_getprocdesc , and -.Fn lch_agent_getpid . +.Fn lch_getpid . .Pp -.Fn lch_agent_recv +.Fn lch_recv and -.Fn lch_agent_send +.Fn lch_send provide simple wrappers around .Xr recv 2 and @@ -108,6 +116,24 @@ agent API allows agent processes to interact with their host process. Agent API functions can be identified by their function name prefix, .Dv lca_ . +.Pp +Each executing agent will have a single corresponding host instance, +described by an opaque +.Dt "struct lc_host" , +which is returned by +.Fn lca_get . +.Pp +The socket for the host may be queried using +.Fn lca_getsock . +.Pp +.Fn lca_recv +and +.Fn lca_send +provide simple wrappers around +.Xr recv 2 +and +.Xr send 2 +to avoid agents having to query host socket file descriptors before use. .Sh SEE ALSO .Xr cap_enter 2 .Xr cap_new 2 ==== //depot/projects/trustedbsd/capabilities/src/lib/libcapability/libcapability.c#2 (text+ko) ==== @@ -30,7 +30,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $P4: //depot/projects/trustedbsd/capabilities/src/lib/libcapability/libcapability.c#1 $ + * $P4: //depot/projects/trustedbsd/capabilities/src/lib/libcapability/libcapability.c#2 $ */ #include @@ -47,6 +47,7 @@ #include #include "libcapability.h" +#include "libcapability_agent_api.h" #define LIBCAPABILITY_CAPMASK_DEVNULL (CAP_EVENT | CAP_READ | CAP_WRITE) #define LIBCAPABILITY_CAPMASK_SOCK (CAP_EVENT | CAP_READ | CAP_WRITE) @@ -143,7 +144,7 @@ static void lch_agent(int fd_sock, int fd_agent, int fd_ldso, int fd_libc, int fd_libz) { - char *env_caplibindex; + char *env_caplibindex, *env_libcapability_agent_api; int fd_array[8], fd_devnull; fd_devnull = open(_PATH_DEVNULL, O_RDWR); @@ -172,10 +173,27 @@ if (lch_installfds(7, fd_array) < 0) return; + /* + * Pass library list into rtld-elf-cap. + */ if (asprintf(&env_caplibindex, "%d:%s,%d:%s", fd_libc, LIBC_SO, fd_libz, LIBZ_SO) == -1) return; - setenv("LD_CAPLIBINDEX", env_caplibindex, 1); + if (setenv("LD_CAPLIBINDEX", env_caplibindex, 1) == -1) + return; + free(env_caplibindex); + + /* + * Make sure that libcapability in the sandbox knows that its API + * assumptions hold. + */ + if (asprintf(&env_libcapability_agent_api, "%s:%d", + LIBCAPABILITY_AGENT_API_SOCK, fd_sock) == -1) + return; + if (setenv(LIBCAPABILITY_AGENT_API_ENV, env_libcapability_agent_api, + 1) == -1) + return; + free(env_libcapability_agent_api); if (cap_enter() < 0) return; @@ -184,7 +202,7 @@ } int -lch_agent_start(const char *agent, struct lc_agent **lcapp) +lch_start(const char *agent, struct lc_agent **lcapp) { struct lc_agent *lcap; int fd_agent, fd_ldso, fd_libc, fd_libz, fd_procdesc, fd_sockpair[2]; @@ -270,7 +288,7 @@ } void -lch_agent_stop(struct lc_agent *lcap) +lch_stop(struct lc_agent *lcap) { close(lcap->lca_fd_sock); @@ -281,7 +299,7 @@ } int -lch_agent_getsock(struct lc_agent *lcap, int *fdp) +lch_getsock(struct lc_agent *lcap, int *fdp) { *fdp = lcap->lca_fd_sock; @@ -289,7 +307,7 @@ } int -lch_agent_getpid(struct lc_agent *lcap, pid_t *pidp) +lch_getpid(struct lc_agent *lcap, pid_t *pidp) { *pidp = lcap->lca_pid; @@ -297,7 +315,7 @@ } int -lch_agent_getprocdesc(struct lc_agent *lcap, int *fdp) +lch_getprocdesc(struct lc_agent *lcap, int *fdp) { *fdp = lcap->lca_fd_procdesc; @@ -309,7 +327,7 @@ * on the worker should take place here. */ ssize_t -lch_agent_send(struct lc_agent *lcap, const void *msg, size_t len, int flags) +lch_send(struct lc_agent *lcap, const void *msg, size_t len, int flags) { if (lcap->lca_fd_sock == -1 || @@ -321,7 +339,7 @@ } ssize_t -lch_agent_recv(struct lc_agent *lcap, void *buf, size_t len, int flags) +lch_recv(struct lc_agent *lcap, void *buf, size_t len, int flags) { if (lcap->lca_fd_sock == -1 || ==== //depot/projects/trustedbsd/capabilities/src/lib/libcapability/libcapability.h#5 (text+ko) ==== @@ -30,13 +30,14 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $P4: //depot/projects/trustedbsd/capabilities/src/lib/libcapability/libcapability.h#4 $ + * $P4: //depot/projects/trustedbsd/capabilities/src/lib/libcapability/libcapability.h#5 $ */ #ifndef _LIBCAPABILITY_H_ #define _LIBCAPABILITY_H_ struct lc_agent; +struct lc_host; /* * Capability interfaces. @@ -46,22 +47,30 @@ /* * Interfaces to start and stop capability mode agents. */ -int lch_agent_start(const char *agent, struct lc_agent **lcap); -void lch_agent_stop(struct lc_agent *lcap); +int lch_start(const char *agent, struct lc_agent **lcapp); +void lch_stop(struct lc_agent *lcap); /* * Interfaces to query state about capability mode agents. */ -int lch_agent_getsock(struct lc_agent *lcap, int *fdp); -int lch_agent_getpid(struct lc_agent *lcap, pid_t *pidp); -int lch_agent_getprocdesc(struct lc_agent *lcap, int *fdp); +int lch_getsock(struct lc_agent *lcap, int *fdp); +int lch_getpid(struct lc_agent *lcap, pid_t *pidp); +int lch_getprocdesc(struct lc_agent *lcap, int *fdp); /* * I/O interfaces for capability mode agents. */ -ssize_t lch_agent_recv(struct lc_agent *lcap, void *buf, size_t len, +ssize_t lch_recv(struct lc_agent *lcap, void *buf, size_t len, int flags); +ssize_t lch_send(struct lc_agent *lcap, const void *msg, size_t len, int flags); -ssize_t lch_agent_send(struct lc_agent *lcap, const void *msg, size_t len, + +/* + * Capability mode agent APIs. + */ +int lca_get(struct lc_host **lchpp); +int lca_getsock(struct lc_host *lchp, int *fdp); +ssize_t lca_recv(struct lc_host *lchp, void *buf, size_t len, int flags); +ssize_t lca_send(struct lc_host *lchp, const void *msg, size_t len, int flags); #endif /* !_LIBCAPABILITY_H_ */ From owner-p4-projects@FreeBSD.ORG Wed Jun 10 11:11:03 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id DAFD210657D9; Wed, 10 Jun 2009 11:11:01 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 7B80D10657D4 for ; Wed, 10 Jun 2009 11:11:01 +0000 (UTC) (envelope-from jona@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 67B128FC1E for ; Wed, 10 Jun 2009 11:11:01 +0000 (UTC) (envelope-from jona@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n5ABB1Cn042393 for ; Wed, 10 Jun 2009 11:11:01 GMT (envelope-from jona@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n5ABB1ER042391 for perforce@freebsd.org; Wed, 10 Jun 2009 11:11:01 GMT (envelope-from jona@FreeBSD.org) Date: Wed, 10 Jun 2009 11:11:01 GMT Message-Id: <200906101111.n5ABB1ER042391@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to jona@FreeBSD.org using -f From: Jonathan Anderson To: Perforce Change Reviews Cc: Subject: PERFORCE change 163968 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 10 Jun 2009 11:11:05 -0000 http://perforce.freebsd.org/chv.cgi?CH=163968 Change 163968 by jona@jona-trustedbsd-belle-vm on 2009/06/10 11:10:53 Added user_angel, a first attempt at the thing which will contain powerboxes (not very functional yet) Affected files ... .. //depot/projects/trustedbsd/capabilities/src/tools/cap/cap_exec/Makefile#3 edit .. //depot/projects/trustedbsd/capabilities/src/tools/cap/cap_exec/cap_exec.c#7 edit .. //depot/projects/trustedbsd/capabilities/src/tools/cap/cap_exec/main.c#2 edit .. //depot/projects/trustedbsd/capabilities/src/tools/cap/cap_exec/make-main.sh#2 edit .. //depot/projects/trustedbsd/capabilities/src/tools/cap/user_angel/Makefile#1 add .. //depot/projects/trustedbsd/capabilities/src/tools/cap/user_angel/cap.c#1 add .. //depot/projects/trustedbsd/capabilities/src/tools/cap/user_angel/cap.h#1 add .. //depot/projects/trustedbsd/capabilities/src/tools/cap/user_angel/fdcomm.c#1 add .. //depot/projects/trustedbsd/capabilities/src/tools/cap/user_angel/fdcomm.h#1 add .. //depot/projects/trustedbsd/capabilities/src/tools/cap/user_angel/protocol.c#1 add .. //depot/projects/trustedbsd/capabilities/src/tools/cap/user_angel/protocol.h#1 add .. //depot/projects/trustedbsd/capabilities/src/tools/cap/user_angel/server.c#1 add .. //depot/projects/trustedbsd/capabilities/src/tools/cap/user_angel/server.h#1 add .. //depot/projects/trustedbsd/capabilities/src/tools/cap/user_angel/test_client.c#1 add .. //depot/projects/trustedbsd/capabilities/src/tools/cap/user_angel/user_angel.c#1 add .. //depot/projects/trustedbsd/capabilities/src/tools/cap/user_angel/user_angel.h#1 add Differences ... ==== //depot/projects/trustedbsd/capabilities/src/tools/cap/cap_exec/Makefile#3 (text+ko) ==== ==== //depot/projects/trustedbsd/capabilities/src/tools/cap/cap_exec/cap_exec.c#7 (text+ko) ==== @@ -57,6 +57,7 @@ #define LIBEDIT_SO "libedit.so.6" #define LIBNCURSES_SO "libncurses.so.7" #define LIBCRYPT_SO "libcrypt.so.4" +#define LIBUTIL_SO "libutil.so.7" #define LIBPATH "/lib/" @@ -98,7 +99,7 @@ main(int argc, char *argv[]) { int fd_exec, fd_ldso, fd_procdesc; - int fd_libc, fd_libcrypt, fd_libedit, fd_libncurses; + int fd_libc, fd_libcrypt, fd_libedit, fd_libncurses, fd_libutil; char *env_caplibindex; struct pollfd pollfd; pid_t pid; @@ -137,12 +138,15 @@ BIN_CAPS); fd_libncurses = cap_open_limit(LIBPATH LIBNCURSES_SO, O_RDONLY, BIN_CAPS); + fd_libutil = cap_open_limit(LIBPATH LIBUTIL_SO, + O_RDONLY, BIN_CAPS); - if (asprintf(&env_caplibindex, "%d:%s,%d:%s,%d:%s,%d:%s", + if (asprintf(&env_caplibindex, "%d:%s,%d:%s,%d:%s,%d:%s,%d:%s", fd_libc, LIBC_SO, fd_libcrypt, LIBCRYPT_SO, fd_libedit, LIBEDIT_SO, - fd_libncurses, LIBNCURSES_SO + fd_libncurses, LIBNCURSES_SO, + fd_libutil, LIBUTIL_SO ) == -1) err(-1, "asprintf"); setenv("LD_CAPLIBINDEX", env_caplibindex, 1); ==== //depot/projects/trustedbsd/capabilities/src/tools/cap/cap_exec/main.c#2 (text+ko) ==== @@ -1,10 +1,21 @@ +#include + +#include #include + int main(int argc, char *argv[]) { + printf("pid %d main(%d, %p)\n", getpid(), argc, argv); - printf("pid %d main(%d, %p)\n", getpid(), argc, argv); + if(opendir("./") == NULL) + printf("Call to opendir() failed (good!) - errno %i (%s)\n", + errno, strerror(errno)); + else + fprintf(stderr, "Call to opendir() didn't fail!"); + + return 0; } int ==== //depot/projects/trustedbsd/capabilities/src/tools/cap/cap_exec/make-main.sh#2 (text+ko) ==== @@ -1,5 +1,6 @@ #!/bin/sh +gcc -o main main.c gcc -o main.dynamic main.c gcc -o main.so main.c -shared gcc -o main.static main.c -static From owner-p4-projects@FreeBSD.ORG Wed Jun 10 11:15:12 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id A43C8106581B; Wed, 10 Jun 2009 11:15:12 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 4B5F21065819 for ; Wed, 10 Jun 2009 11:15:12 +0000 (UTC) (envelope-from pgj@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 388518FC1A for ; Wed, 10 Jun 2009 11:15:12 +0000 (UTC) (envelope-from pgj@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n5ABF6Ql042660 for ; Wed, 10 Jun 2009 11:15:06 GMT (envelope-from pgj@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n5ABF5jI042656 for perforce@freebsd.org; Wed, 10 Jun 2009 11:15:05 GMT (envelope-from pgj@FreeBSD.org) Date: Wed, 10 Jun 2009 11:15:05 GMT Message-Id: <200906101115.n5ABF5jI042656@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to pgj@FreeBSD.org using -f From: Gabor Pali To: Perforce Change Reviews Cc: Subject: PERFORCE change 163969 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 10 Jun 2009 11:15:15 -0000 http://perforce.freebsd.org/chv.cgi?CH=163969 Change 163969 by pgj@petymeg-current on 2009/06/10 11:14:22 Fix ipproto Affected files ... .. //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat.c#12 edit Differences ... ==== //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat.c#12 (text+ko) ==== @@ -49,8 +49,8 @@ { "#0", "stream", "dgram", "raw", "rdm", "seqpacket" }; static const char *const ipproto[] = - { "hopopts", "igmp", "tcp", "ggp", "ipv4", "ipip", "st", "egp", "pgip", - "rccmon", "nvpii", "pup", "argus", "emcon", "xnet", "chaos", "udp" }; + { "#0", "#1", "#2", "#3", "#4", "#5", "tcp", "#7", "#8", "#9", "#10", + "#11", "#12", "#13", "#14", "#15", "#16", "udp" }; static int net_local_pcblist_sysctl(int type, struct socket_type_list *list) From owner-p4-projects@FreeBSD.ORG Wed Jun 10 11:31:30 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id ED64910656BB; Wed, 10 Jun 2009 11:31:29 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 97B52106568F for ; Wed, 10 Jun 2009 11:31:29 +0000 (UTC) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 8297A8FC0C for ; Wed, 10 Jun 2009 11:31:29 +0000 (UTC) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n5ABVT4c044048 for ; Wed, 10 Jun 2009 11:31:29 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n5ABVTGI044046 for perforce@freebsd.org; Wed, 10 Jun 2009 11:31:29 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Date: Wed, 10 Jun 2009 11:31:29 GMT Message-Id: <200906101131.n5ABVTGI044046@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to bb+lists.freebsd.perforce@cyrus.watson.org using -f From: Robert Watson To: Perforce Change Reviews Cc: Subject: PERFORCE change 163973 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 10 Jun 2009 11:31:32 -0000 http://perforce.freebsd.org/chv.cgi?CH=163973 Change 163973 by rwatson@rwatson_freebsd_capabilities on 2009/06/10 11:31:01 Break out host-specific portions of libcapability.c into libcapability_host.c. Affected files ... .. //depot/projects/trustedbsd/capabilities/src/lib/libcapability/Makefile#4 edit .. //depot/projects/trustedbsd/capabilities/src/lib/libcapability/libcapability.c#3 edit .. //depot/projects/trustedbsd/capabilities/src/lib/libcapability/libcapability_host.c#1 add Differences ... ==== //depot/projects/trustedbsd/capabilities/src/lib/libcapability/Makefile#4 (text+ko) ==== @@ -4,7 +4,8 @@ SRCS= \ libcapability.c \ - libcapability_agent.c + libcapability_agent.c \ + libcapability_host.c INCS= libcapability.h ==== //depot/projects/trustedbsd/capabilities/src/lib/libcapability/libcapability.c#3 (text+ko) ==== @@ -30,7 +30,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $P4: //depot/projects/trustedbsd/capabilities/src/lib/libcapability/libcapability.c#2 $ + * $P4: //depot/projects/trustedbsd/capabilities/src/lib/libcapability/libcapability.c#3 $ */ #include @@ -47,39 +47,7 @@ #include #include "libcapability.h" -#include "libcapability_agent_api.h" - -#define LIBCAPABILITY_CAPMASK_DEVNULL (CAP_EVENT | CAP_READ | CAP_WRITE) -#define LIBCAPABILITY_CAPMASK_SOCK (CAP_EVENT | CAP_READ | CAP_WRITE) -#define LIBCAPABILITY_CAPMASK_BIN (CAP_READ | CAP_EVENT | CAP_FSTAT | \ - CAP_SEEK | CAP_FSTATFS | \ - CAP_FEXECVE | CAP_MMAP | \ - CAP_MAPEXEC) -#define LIBCAPABILITY_CAPMASK_AGENT LIBCAPABILITY_CAPMASK_BIN -#define LIBCAPABILITY_CAPMASK_LDSO LIBCAPABILITY_CAPMASK_BIN -#define LIBCAPABILITY_CAPMASK_LIBC LIBCAPABILITY_CAPMASK_BIN -#define LIBCAPABILITY_CAPMASK_LIBZ LIBCAPABILITY_CAPMASK_BIN - -#define _PATH_LIB "/lib" -#define LIBC_SO "libc.so.7" -#define LIBZ_SO "libz.so.4" -extern char **environ; - -#define LD_ELF_CAP_SO "/libexec/ld-elf-cap.so.1" -char *ldso_argv[] = { - __DECONST(char *, LD_ELF_CAP_SO), - NULL, -}; - -int closefrom(int lowfd); - -struct lc_agent { - int lca_fd_sock; - int lca_fd_procdesc; - pid_t lca_pid; -}; - int lc_limitfd(int fd, cap_rights_t rights) { @@ -98,254 +66,3 @@ close(fd_cap); return (0); } - -/* - * Install an array of file descriptors using the array index of each - * descriptor in the array as its destination file descriptor number. All - * other existing file descriptors will be closed when this function returns, - * leaving a pristine vector. If calls fail, then we return (-1), but there - * are no guarantees about the state of the file descriptor array for the - * process, so it's a throw-away. - * - * It would be nice not to shuffle descriptors that already have the right - * number. - */ -static int -lch_installfds(int fd_count, int *fds) -{ - int i; - - /* - * First, move all our descriptors up the range. - */ - for (i = 0; i < fd_count; i++) { - if (dup2(fds[i], fd_count + i) < 0) - return (-1); - } - - /* - * Now put them back. - */ - for (i = 0; i < fd_count; i++) { - if (dup2(fd_count + i, fds[i]) < 0) - return (-1); - } - - /* - * Close the descriptors that we moved, as well as any others that - * were left open by the caller. - */ - if (closefrom(fd_count) < 0) - return (-1); - - return (0); -} - -static void -lch_agent(int fd_sock, int fd_agent, int fd_ldso, int fd_libc, int fd_libz) -{ - char *env_caplibindex, *env_libcapability_agent_api; - int fd_array[8], fd_devnull; - - fd_devnull = open(_PATH_DEVNULL, O_RDWR); - if (fd_devnull < 0) - return; - - if (lc_limitfd(fd_devnull, LIBCAPABILITY_CAPMASK_DEVNULL) < 0) - return; - if (lc_limitfd(fd_agent, LIBCAPABILITY_CAPMASK_AGENT) < 0) - return; - if (lc_limitfd(fd_sock, LIBCAPABILITY_CAPMASK_SOCK) < 0) - return; - if (lc_limitfd(fd_ldso, LIBCAPABILITY_CAPMASK_LDSO) < 0) - return; - if (lc_limitfd(fd_ldso, LIBCAPABILITY_CAPMASK_LIBC) < 0) - return; - - fd_array[0] = fd_devnull; - fd_array[1] = fd_devnull; - fd_array[2] = fd_devnull; - fd_array[3] = fd_agent; - fd_array[4] = fd_sock; - fd_array[5] = fd_ldso; - fd_array[6] = fd_libc; - - if (lch_installfds(7, fd_array) < 0) - return; - - /* - * Pass library list into rtld-elf-cap. - */ - if (asprintf(&env_caplibindex, "%d:%s,%d:%s", fd_libc, LIBC_SO, - fd_libz, LIBZ_SO) == -1) - return; - if (setenv("LD_CAPLIBINDEX", env_caplibindex, 1) == -1) - return; - free(env_caplibindex); - - /* - * Make sure that libcapability in the sandbox knows that its API - * assumptions hold. - */ - if (asprintf(&env_libcapability_agent_api, "%s:%d", - LIBCAPABILITY_AGENT_API_SOCK, fd_sock) == -1) - return; - if (setenv(LIBCAPABILITY_AGENT_API_ENV, env_libcapability_agent_api, - 1) == -1) - return; - free(env_libcapability_agent_api); - - if (cap_enter() < 0) - return; - - (void)fexecve(fd_ldso, ldso_argv, environ); -} - -int -lch_start(const char *agent, struct lc_agent **lcapp) -{ - struct lc_agent *lcap; - int fd_agent, fd_ldso, fd_libc, fd_libz, fd_procdesc, fd_sockpair[2]; - int error, val; - pid_t pid; - - fd_agent = fd_ldso = fd_libc = fd_libz = fd_procdesc = - fd_sockpair[0] = fd_sockpair[1] = -1; - - lcap = malloc(sizeof(*lcap)); - if (lcap == NULL) - return (-1); - bzero(lcap, sizeof(*lcap)); - - /* Try the agent first so that ENOENT most likely refers to it. */ - fd_agent = open(agent, O_RDONLY); - if (fd_agent < 0) - goto out_error; - - fd_ldso = open(LD_ELF_CAP_SO, O_RDONLY); - if (fd_ldso < 0) - goto out_error; - - fd_libc = open(_PATH_LIB "/" LIBC_SO, O_RDONLY); - if (fd_libc < 0) - goto out_error; - - fd_libz = open(_PATH_LIB "/" LIBZ_SO, O_RDONLY); - if (fd_libz < 0) - goto out_error; - - if (socketpair(PF_LOCAL, SOCK_STREAM, 0, fd_sockpair) < 0) - goto out_error; - - val = 1; - if (setsockopt(fd_sockpair[0], SOL_SOCKET, SO_NOSIGPIPE, &val, - sizeof(val)) < 0) { - fd_sockpair[0] = fd_sockpair[1] = -1; - goto out_error; - } - - pid = pdfork(&fd_procdesc); - if (pid < 0) { - fd_procdesc = -1; - goto out_error; - } - if (pid == 0) { - lch_agent(fd_sockpair[1], fd_agent, fd_ldso, fd_libc, - fd_libz); - exit(-1); - } - close(fd_libz); - close(fd_libc); - close(fd_ldso); - close(fd_agent); - close(fd_sockpair[1]); - - lcap->lca_fd_procdesc = fd_procdesc; - lcap->lca_fd_sock = fd_sockpair[0]; - lcap->lca_pid = pid; - *lcapp = lcap; - - return (0); - -out_error: - error = errno; - if (fd_sockpair[0] != -1) - close(fd_sockpair[0]); - if (fd_sockpair[1] != -1) - close(fd_sockpair[1]); - if (fd_libz != -1) - close(fd_libz); - if (fd_libc != -1) - close(fd_libc); - if (fd_ldso != -1) - close(fd_ldso); - if (fd_agent != -1) - close(fd_agent); - if (lcap != NULL) - free(lcap); - errno = error; - return (-1); -} - -void -lch_stop(struct lc_agent *lcap) -{ - - close(lcap->lca_fd_sock); - close(lcap->lca_fd_procdesc); - lcap->lca_fd_sock = -1; - lcap->lca_fd_procdesc = -1; - lcap->lca_pid = -1; -} - -int -lch_getsock(struct lc_agent *lcap, int *fdp) -{ - - *fdp = lcap->lca_fd_sock; - return (0); -} - -int -lch_getpid(struct lc_agent *lcap, pid_t *pidp) -{ - - *pidp = lcap->lca_pid; - return (0); -} - -int -lch_getprocdesc(struct lc_agent *lcap, int *fdp) -{ - - *fdp = lcap->lca_fd_procdesc; - return (0); -} - -/* - * Simple I/O wrappers for capability sockets. Possibly more keeping an eye - * on the worker should take place here. - */ -ssize_t -lch_send(struct lc_agent *lcap, const void *msg, size_t len, int flags) -{ - - if (lcap->lca_fd_sock == -1 || - lcap->lca_fd_sock == 0) { - errno = ESRCH; - return (-1); - } - return (send(lcap->lca_fd_sock, msg, len, flags)); -} - -ssize_t -lch_recv(struct lc_agent *lcap, void *buf, size_t len, int flags) -{ - - if (lcap->lca_fd_sock == -1 || - lcap->lca_fd_sock == 0) { - errno = ESRCH; - return (-1); - } - return (recv(lcap->lca_fd_sock, buf, len, flags)); -} From owner-p4-projects@FreeBSD.ORG Wed Jun 10 11:32:31 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 1BBDA1065677; Wed, 10 Jun 2009 11:32:31 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id C07BC106567B for ; Wed, 10 Jun 2009 11:32:30 +0000 (UTC) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id AC0BB8FC15 for ; Wed, 10 Jun 2009 11:32:30 +0000 (UTC) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n5ABWUA4044112 for ; Wed, 10 Jun 2009 11:32:30 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n5ABWUZU044110 for perforce@freebsd.org; Wed, 10 Jun 2009 11:32:30 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Date: Wed, 10 Jun 2009 11:32:30 GMT Message-Id: <200906101132.n5ABWUZU044110@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to bb+lists.freebsd.perforce@cyrus.watson.org using -f From: Robert Watson To: Perforce Change Reviews Cc: Subject: PERFORCE change 163974 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 10 Jun 2009 11:32:32 -0000 http://perforce.freebsd.org/chv.cgi?CH=163974 Change 163974 by rwatson@rwatson_freebsd_capabilities on 2009/06/10 11:31:58 Trim unneeded includes in libcapability.c. Affected files ... .. //depot/projects/trustedbsd/capabilities/src/lib/libcapability/libcapability.c#4 edit .. //depot/projects/trustedbsd/capabilities/src/lib/libcapability/libcapability_host.c#2 edit Differences ... ==== //depot/projects/trustedbsd/capabilities/src/lib/libcapability/libcapability.c#4 (text+ko) ==== @@ -30,20 +30,13 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $P4: //depot/projects/trustedbsd/capabilities/src/lib/libcapability/libcapability.c#3 $ + * $P4: //depot/projects/trustedbsd/capabilities/src/lib/libcapability/libcapability.c#4 $ */ #include #include -#include -#include #include -#include -#include -#include -#include -#include #include #include "libcapability.h" ==== //depot/projects/trustedbsd/capabilities/src/lib/libcapability/libcapability_host.c#2 (text+ko) ==== @@ -30,7 +30,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $P4: //depot/projects/trustedbsd/capabilities/src/lib/libcapability/libcapability_host.c#1 $ + * $P4: //depot/projects/trustedbsd/capabilities/src/lib/libcapability/libcapability_host.c#2 $ */ #include From owner-p4-projects@FreeBSD.ORG Wed Jun 10 11:35:34 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 643D7106568E; Wed, 10 Jun 2009 11:35:34 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 198DB1065692 for ; Wed, 10 Jun 2009 11:35:34 +0000 (UTC) (envelope-from pgj@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id E28038FC1D for ; Wed, 10 Jun 2009 11:35:33 +0000 (UTC) (envelope-from pgj@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n5ABZXBP044439 for ; Wed, 10 Jun 2009 11:35:33 GMT (envelope-from pgj@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n5ABZX4X044437 for perforce@freebsd.org; Wed, 10 Jun 2009 11:35:33 GMT (envelope-from pgj@FreeBSD.org) Date: Wed, 10 Jun 2009 11:35:33 GMT Message-Id: <200906101135.n5ABZX4X044437@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to pgj@FreeBSD.org using -f From: Gabor Pali To: Perforce Change Reviews Cc: Subject: PERFORCE change 163975 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 10 Jun 2009 11:35:35 -0000 http://perforce.freebsd.org/chv.cgi?CH=163975 Change 163975 by pgj@petymeg-current on 2009/06/10 11:34:59 Add missing parts for display tcp connections, fix output Affected files ... .. //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat.c#13 edit .. //depot/projects/soc2009/pgj_libstat/src/usr.bin/netstat/inet.c#5 edit Differences ... ==== //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat.c#13 (text+ko) ==== ==== //depot/projects/soc2009/pgj_libstat/src/usr.bin/netstat/inet.c#5 (text+ko) ==== @@ -624,29 +624,27 @@ tp = XXX_netstat_st_get_tcpcb(stp); istcp = 1; } -/* XXX: af1 */ -#if 0 - if ((af1 == AF_INET && (inp.inp_vflag & INP_IPV4) == 0) + if ((netstat_st_get_family(stp) == AF_INET && (inp.inp_vflag & INP_IPV4) == 0) #ifdef INET6 - || (af1 == AF_INET6 && (inp.inp_vflag & INP_IPV6) == 0) + || (netstat_st_get_family(stp) == AF_INET6 && (inp.inp_vflag & INP_IPV6) == 0) #endif /* INET6 */ - || (af1 == AF_UNSPEC && ((inp.inp_vflag & INP_IPV4) == 0 + || (netstat_st_get_family(stp) == AF_UNSPEC && ((inp.inp_vflag & INP_IPV4) == 0 #ifdef INET6 && (inp.inp_vflag & INP_IPV6) == 0 #endif /* INET6 */ )) ) - continue; + return; if (!aflag && ( (istcp && netstat_st_get_listening(stp)) - || (af1 == AF_INET && + || (netstat_st_get_family(stp) == AF_INET && inet_lnaof(inp.inp_laddr) == INADDR_ANY) #ifdef INET6 - || (af1 == AF_INET6 && + || (netstat_st_get_family(stp) == AF_INET6 && IN6_IS_ADDR_UNSPECIFIED(&inp.in6p_laddr)) #endif /* INET6 */ - || (af1 == AF_UNSPEC && + || (netstat_st_get_family(stp) == AF_UNSPEC && (((inp.inp_vflag & INP_IPV4) != 0 && inet_lnaof(inp.inp_laddr) == INADDR_ANY) #ifdef INET6 @@ -656,7 +654,7 @@ )) )) return; -#endif + if (first) { if (!Lflag) { printf("Active Internet connections"); @@ -679,11 +677,12 @@ "Local Address", "Foreign Address"); if (xflag) printf( - "%-6.6s %-6.6s %-6.6s %-6.6s %-6.6s %-6.6s %-6.6s %-6.6s %-6.6s %-6.6s %-6.6s %-6.6s\n", + "%-6.6s %-6.6s %-6.6s %-6.6s %-6.6s %-6.6s %-6.6s %-6.6s %-6.6s %-6.6s %-6.6s %-6.6s %s\n", "R-MBUF", "S-MBUF", "R-CLUS", "S-CLUS", "R-HIWA", "S-HIWA", "R-LOWA", "S-LOWA", "R-BCNT", - "S-BCNT", "R-BMAX", "S-BMAX"); + "S-BCNT", "R-BMAX", "S-BMAX", + "(state)"); else printf("(state)\n"); } @@ -701,13 +700,13 @@ #endif vchar = ((inp.inp_vflag & INP_IPV4) != 0) ? "4 " : " "; - printf("%-3.3s%-2.2s", netstat_st_get_name(stp), vchar); + printf("%-3.3s%-2.2s ", netstat_st_get_name(stp), vchar); if (Lflag) { snprintf(buf1, 15, "%d/%d/%d", netstat_st_get_qlen(stp), netstat_st_get_incqlen(stp), netstat_st_get_qlimit(stp)); printf("%-14.14s", buf1); } else { - printf("%6u %6u", netstat_st_get_rcv_cc(stp), + printf("%6u %6u ", netstat_st_get_rcv_cc(stp), netstat_st_get_snd_cc(stp)); } if (numeric_port) { From owner-p4-projects@FreeBSD.ORG Wed Jun 10 11:46:46 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 06CA81065678; Wed, 10 Jun 2009 11:46:46 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id B40C51065672 for ; Wed, 10 Jun 2009 11:46:45 +0000 (UTC) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id A0F558FC22 for ; Wed, 10 Jun 2009 11:46:45 +0000 (UTC) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n5ABkjKr045285 for ; Wed, 10 Jun 2009 11:46:45 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n5ABkjVt045283 for perforce@freebsd.org; Wed, 10 Jun 2009 11:46:45 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Date: Wed, 10 Jun 2009 11:46:45 GMT Message-Id: <200906101146.n5ABkjVt045283@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to bb+lists.freebsd.perforce@cyrus.watson.org using -f From: Robert Watson To: Perforce Change Reviews Cc: Subject: PERFORCE change 163978 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 10 Jun 2009 11:46:46 -0000 http://perforce.freebsd.org/chv.cgi?CH=163978 Change 163978 by rwatson@rwatson_freebsd_capabilities on 2009/06/10 11:46:38 Assymptotically approach correctness. Affected files ... .. //depot/projects/trustedbsd/capabilities/src/lib/libcapability/libcapability_host.c#3 edit Differences ... ==== //depot/projects/trustedbsd/capabilities/src/lib/libcapability/libcapability_host.c#3 (text+ko) ==== @@ -30,7 +30,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $P4: //depot/projects/trustedbsd/capabilities/src/lib/libcapability/libcapability_host.c#2 $ + * $P4: //depot/projects/trustedbsd/capabilities/src/lib/libcapability/libcapability_host.c#3 $ */ #include @@ -92,15 +92,31 @@ * number. */ static int -lch_installfds(int fd_count, int *fds) +lch_installfds(u_int fd_count, int *fds) { - int i; + u_int i; + int highestfd; + + if (fd_count == 0) + return (0); + + /* + * Identify the highest source file descriptor we care about so that + * when we play the dup2() rearranging game, we don't overwrite any + * we care about. + */ + highestfd = fds[0]; + for (i = 1; i < fd_count; i++) { + if (fds[i] > highestfd) + highestfd = fds[i]; + } + highestfd++; /* * First, move all our descriptors up the range. */ for (i = 0; i < fd_count; i++) { - if (dup2(fds[i], fd_count + i) < 0) + if (dup2(fds[i], highestfd + i) < 0) return (-1); } @@ -108,7 +124,7 @@ * Now put them back. */ for (i = 0; i < fd_count; i++) { - if (dup2(fd_count + i, fds[i]) < 0) + if (dup2(highestfd + i, i) < 0) return (-1); } From owner-p4-projects@FreeBSD.ORG Wed Jun 10 12:11:12 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 14F7D10656B6; Wed, 10 Jun 2009 12:11:11 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 83869106568A for ; Wed, 10 Jun 2009 12:11:10 +0000 (UTC) (envelope-from pgj@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 6F9B08FC08 for ; Wed, 10 Jun 2009 12:11:10 +0000 (UTC) (envelope-from pgj@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n5ACBAZg048134 for ; Wed, 10 Jun 2009 12:11:10 GMT (envelope-from pgj@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n5ACBA89048132 for perforce@freebsd.org; Wed, 10 Jun 2009 12:11:10 GMT (envelope-from pgj@FreeBSD.org) Date: Wed, 10 Jun 2009 12:11:10 GMT Message-Id: <200906101211.n5ACBA89048132@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to pgj@FreeBSD.org using -f From: Gabor Pali To: Perforce Change Reviews Cc: Subject: PERFORCE change 163979 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 10 Jun 2009 12:11:15 -0000 http://perforce.freebsd.org/chv.cgi?CH=163979 Change 163979 by pgj@petymeg-current on 2009/06/10 12:10:12 Add st_extname property for representing extended names for specific connections (e.g. tcp4, tcp46) Affected files ... .. //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat.c#14 edit .. //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat.h#13 edit .. //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat_internal.h#10 edit .. //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat_util.c#12 edit .. //depot/projects/soc2009/pgj_libstat/src/usr.bin/netstat/inet.c#6 edit Differences ... ==== //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat.c#14 (text+ko) ==== @@ -17,6 +17,7 @@ #include #include #include +#include #include "netstat.h" #include "netstat_internal.h" @@ -339,6 +340,7 @@ { struct sockaddr_un *sa; + strlcpy(stp->st_extname, stp->st_name, SOCKTYPE_MAXNAME); stp->st_qlen = xpcb->xu_socket.so_qlen; stp->st_incqlen = xpcb->xu_socket.so_incqlen; stp->st_qlimit = xpcb->xu_socket.so_qlimit; @@ -378,6 +380,8 @@ extract_inet_data(struct tcpcb *tp, struct inpcb *inp, struct xsocket *so, struct socket_type *stp) { + const char *vchar; + stp->st_qlen = so->so_qlen; stp->st_incqlen = so->so_incqlen; stp->st_qlimit = so->so_qlimit; @@ -422,4 +426,13 @@ } #endif /* defined(TF_NEEDSYN) && defined(TF_NEEDFIN) */ } +#ifdef INET6 + if ((inp->inp_vflag & INP_IPV6) != 0) + vchar = ((inp->inp_vflag & INP_IPV4) != 0) ? + "46" : "6 "; + else +#endif + vchar = ((inp->inp_vflag & INP_IPV4) != 0) ? + "4 " : " "; + sprintf(stp->st_extname, "%-3.3s%-2.2s", stp->st_name, vchar); } ==== //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat.h#13 (text+ko) ==== @@ -56,6 +56,7 @@ int netstat_st_get_family(const struct socket_type *stp); int netstat_st_get_protocol(const struct socket_type *stp); const char *netstat_st_get_name(const struct socket_type *stp); +const char *netstat_st_get_extname(const struct socket_type *stp); /* XXX: move snd/rcv-related properties into a new abstract type? */ u_int netstat_st_get_snd_cc(const struct socket_type *stp); u_int netstat_st_get_snd_hiwat(const struct socket_type *stp); ==== //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat_internal.h#10 (text+ko) ==== @@ -29,6 +29,7 @@ unsigned short st_protocol; int st_flags; char st_name[SOCKTYPE_MAXNAME]; + char st_extname[SOCKTYPE_MAXNAME]; #if 0 /* XXX: not used yet */ ==== //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat_util.c#12 (text+ko) ==== @@ -252,6 +252,12 @@ return (stp->st_name); } +const char * +netstat_st_get_extname(const struct socket_type *stp) +{ + return (stp->st_extname); +} + u_int netstat_st_get_rcv_cc(const struct socket_type *stp) { ==== //depot/projects/soc2009/pgj_libstat/src/usr.bin/netstat/inet.c#6 (text+ko) ==== @@ -611,7 +611,6 @@ { static int first = 1; char buf1[15]; - const char *vchar; struct tcpcb tp; struct inpcb inp; struct xsocket so; @@ -692,15 +691,7 @@ return; if (Aflag) printf("%8lx ", netstat_st_get_pcb(stp)); -#ifdef INET6 - if ((inp.inp_vflag & INP_IPV6) != 0) - vchar = ((inp.inp_vflag & INP_IPV4) != 0) ? - "46" : "6 "; - else -#endif - vchar = ((inp.inp_vflag & INP_IPV4) != 0) ? - "4 " : " "; - printf("%-3.3s%-2.2s ", netstat_st_get_name(stp), vchar); + printf("%-5.5s ", netstat_st_get_extname(stp)); if (Lflag) { snprintf(buf1, 15, "%d/%d/%d", netstat_st_get_qlen(stp), netstat_st_get_incqlen(stp), netstat_st_get_qlimit(stp)); From owner-p4-projects@FreeBSD.ORG Wed Jun 10 12:15:15 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 5D75B106566C; Wed, 10 Jun 2009 12:15:15 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 017DB1065679 for ; Wed, 10 Jun 2009 12:15:15 +0000 (UTC) (envelope-from jona@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id E33558FC22 for ; Wed, 10 Jun 2009 12:15:14 +0000 (UTC) (envelope-from jona@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n5ACFEww048463 for ; Wed, 10 Jun 2009 12:15:14 GMT (envelope-from jona@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n5ACFE4R048461 for perforce@freebsd.org; Wed, 10 Jun 2009 12:15:14 GMT (envelope-from jona@FreeBSD.org) Date: Wed, 10 Jun 2009 12:15:14 GMT Message-Id: <200906101215.n5ACFE4R048461@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to jona@FreeBSD.org using -f From: Jonathan Anderson To: Perforce Change Reviews Cc: Subject: PERFORCE change 163981 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 10 Jun 2009 12:15:16 -0000 http://perforce.freebsd.org/chv.cgi?CH=163981 Change 163981 by jona@jona-trustedbsd-belle-vm on 2009/06/10 12:14:24 user_angel can now handle multiple requests from multiple clients Affected files ... .. //depot/projects/trustedbsd/capabilities/src/tools/cap/cap_exec/Makefile#4 edit .. //depot/projects/trustedbsd/capabilities/src/tools/cap/cap_exec/cap_exec.c#8 edit .. //depot/projects/trustedbsd/capabilities/src/tools/cap/cap_exec/main.c#3 edit .. //depot/projects/trustedbsd/capabilities/src/tools/cap/cap_exec/make-main.sh#3 edit .. //depot/projects/trustedbsd/capabilities/src/tools/cap/user_angel/Makefile#2 edit .. //depot/projects/trustedbsd/capabilities/src/tools/cap/user_angel/cap.c#2 edit .. //depot/projects/trustedbsd/capabilities/src/tools/cap/user_angel/cap.h#2 edit .. //depot/projects/trustedbsd/capabilities/src/tools/cap/user_angel/fdcomm.c#2 edit .. //depot/projects/trustedbsd/capabilities/src/tools/cap/user_angel/fdcomm.h#2 edit .. //depot/projects/trustedbsd/capabilities/src/tools/cap/user_angel/protocol.c#2 edit .. //depot/projects/trustedbsd/capabilities/src/tools/cap/user_angel/protocol.h#2 edit .. //depot/projects/trustedbsd/capabilities/src/tools/cap/user_angel/server.c#2 edit .. //depot/projects/trustedbsd/capabilities/src/tools/cap/user_angel/server.h#2 edit .. //depot/projects/trustedbsd/capabilities/src/tools/cap/user_angel/test_client.c#2 edit .. //depot/projects/trustedbsd/capabilities/src/tools/cap/user_angel/user_angel.c#2 edit .. //depot/projects/trustedbsd/capabilities/src/tools/cap/user_angel/user_angel.h#2 edit Differences ... ==== //depot/projects/trustedbsd/capabilities/src/tools/cap/cap_exec/Makefile#4 (text+ko) ==== ==== //depot/projects/trustedbsd/capabilities/src/tools/cap/cap_exec/cap_exec.c#8 (text+ko) ==== ==== //depot/projects/trustedbsd/capabilities/src/tools/cap/cap_exec/main.c#3 (text+ko) ==== ==== //depot/projects/trustedbsd/capabilities/src/tools/cap/cap_exec/make-main.sh#3 (text+ko) ==== ==== //depot/projects/trustedbsd/capabilities/src/tools/cap/user_angel/Makefile#2 (text+ko) ==== ==== //depot/projects/trustedbsd/capabilities/src/tools/cap/user_angel/cap.c#2 (text+ko) ==== ==== //depot/projects/trustedbsd/capabilities/src/tools/cap/user_angel/cap.h#2 (text+ko) ==== ==== //depot/projects/trustedbsd/capabilities/src/tools/cap/user_angel/fdcomm.c#2 (text+ko) ==== @@ -119,7 +119,7 @@ } else if(bytes == 0) { - perror("Received 0 bytes"); + fprintf(stderr, "Socket closed\n"); return -1; } ==== //depot/projects/trustedbsd/capabilities/src/tools/cap/user_angel/fdcomm.h#2 (text+ko) ==== ==== //depot/projects/trustedbsd/capabilities/src/tools/cap/user_angel/protocol.c#2 (text+ko) ==== ==== //depot/projects/trustedbsd/capabilities/src/tools/cap/user_angel/protocol.h#2 (text+ko) ==== ==== //depot/projects/trustedbsd/capabilities/src/tools/cap/user_angel/server.c#2 (text+ko) ==== @@ -38,6 +38,7 @@ #include #include +#include #include #include #include @@ -54,33 +55,69 @@ int shutting_down = 0; char control_socket_name[256] = ""; +int *clients; +int clientslen; +int clientsmaxlen; + + void user_angel_server_shutdown(void) { shutting_down = 1; close(fd_control); unlink(control_socket_name); + + fd_control = 0; } int handle_request(int client, enum user_angel_request req); +int bind_to_path(const char *path); +void accept_client(int fd_server); +void service_clients(void); int run_server(const char* address) { + clientslen = 0; + clients = (int*) malloc (128 * sizeof(int)); + clientsmaxlen = 128; + strcpy(control_socket_name, address); printf("Creating control socket at %s...\n", control_socket_name); + fd_control = bind_to_path(control_socket_name); + if(fd_control < 0) + { + perror("Error binding control socket"); + return -1; + } + + + while(fd_control) + { + accept_client(fd_control); + service_clients(); + } + + user_angel_server_shutdown(); + + return 0; +} + + +int bind_to_path(const char *path) +{ struct sockaddr_un addr; addr.sun_family = AF_UNIX; strcpy(addr.sun_path, control_socket_name); - fd_control = socket(AF_UNIX, SOCK_STREAM, 0); - if(fd_control == 0) + int fd = socket(AF_UNIX, SOCK_STREAM, 0); + if(fd == 0) { if(shutting_down) return 0; @@ -89,7 +126,8 @@ return -1; } - if(bind(fd_control, (struct sockaddr*) &addr, sizeof(struct sockaddr_un))) + + if(bind(fd, (struct sockaddr*) &addr, sizeof(struct sockaddr_un))) { if(shutting_down) return 0; @@ -99,7 +137,7 @@ } - if(listen(fd_control, 10)) + if(listen(fd, 0)) { if(shutting_down) return 0; @@ -109,45 +147,84 @@ } - for(int i = 0; i < 3; i++) + // non-blocking socket I/O + int flags = fcntl(fd, F_GETFL, 0); + if(flags < 0) + { + perror("Error getting flags for control socket"); + return -1; + } + + if(fcntl(fd, F_SETFL, flags | O_NONBLOCK)) + { + perror("Error setting flags on control socket"); + return -1; + } + + + return fd; +} + + + +void accept_client(int fd_server) +{ + int client; + struct sockaddr_un clientaddr; + unsigned int clientaddrlen; + + client = accept(fd_server, (struct sockaddr*) &clientaddr, + &clientaddrlen); + + if(client < 0) + { + if(errno == EAGAIN) { usleep(1); return; } + if(shutting_down) return; + + perror("Error accepting client"); + return; + } + + printf("Accepted client: FD %i\n", client); + + clients[clientslen++] = client; + + if(clientslen == clientsmaxlen) { - int client; - struct sockaddr_un clientaddr; - unsigned int clientaddrlen; + int newsize = 2 * clientsmaxlen; + int *newclients = (int*) malloc(newsize * sizeof(int)); - client = accept(fd_control, (struct sockaddr*) &clientaddr, &clientaddrlen); - if(client <= 0) - { - if(shutting_down) return 0; + memcpy(newclients, clients, clientslen * sizeof(int)); + free(clients); + clients = newclients; + clientslen = newsize; + } +} - perror("Error accepting client"); - user_angel_server_shutdown(); - return -1; - } - printf("Accepted client: FD %i\n", client); +void service_clients(void) +{ + enum user_angel_request req; - enum user_angel_request req; + for(int i = 0; i < clientslen; i++) + { + int client = clients[i]; int bytes = get_int_from(client, (int*) &req); - if(bytes == 0) usleep(100); - else if(bytes > 0) + if(bytes > 0) { if(handle_request(client, req)) perror("Error handling client request"); } + else if((bytes == 0) && (errno == EAGAIN)) continue; else { - if(shutting_down) return 0; + if(shutting_down) return; - perror("Error recv()'ing from control pipe"); + perror("Error recv()'ing from client"); break; } } - - user_angel_server_shutdown(); - - return 0; } ==== //depot/projects/trustedbsd/capabilities/src/tools/cap/user_angel/server.h#2 (text+ko) ==== ==== //depot/projects/trustedbsd/capabilities/src/tools/cap/user_angel/test_client.c#2 (text+ko) ==== @@ -31,8 +31,8 @@ else if(pid == 0) return 0; // enter capability mode - if(cap_enter()) err(EX_SOFTWARE, "Failed to enter capability mode"); - else printf("Now operating in capability mode\n"); +// if(cap_enter()) err(EX_SOFTWARE, "Failed to enter capability mode"); +// else printf("Now operating in capability mode\n"); @@ -43,7 +43,7 @@ // make sure that we are, in fact, sandboxed if(open(path, O_RDONLY) < 0) printf("Sandbox is working\n"); - else err(EX_SOFTWARE, "Was able to open %s directly", path); + else fprintf(stderr, "Was able to open %s directly\n", path); // get the user angel to open the file for us @@ -60,7 +60,29 @@ // retrieve the file descriptor int fd = fd_recv(fd_control); - printf("Got file descriptor %i\n", fd); + if(fd >= 0) printf("Got file descriptor %i\n", fd); + else { fprintf(stderr, "Error receiving descriptor\n"); return 1; } + + + + path = "/etc/group"; + + // get the user angel to open the file for us + if(send(fd_control, &req, sizeof(int), 0) < 0) + err(EX_IOERR, "Error sending request type %i", req); + + if(send(fd_control, &len, sizeof(int), 0) < 0) + err(EX_IOERR, "Error sending path length %i", len); + + if(send(fd_control, path, len, 0) < 0) + err(EX_IOERR, "Error sending path '%s'", path); + + + + // retrieve the file descriptor + fd = fd_recv(fd_control); + if(fd >= 0) printf("Got file descriptor %i\n", fd); + else { fprintf(stderr, "Error receiving descriptor\n"); return 1; } char buf[40]; ==== //depot/projects/trustedbsd/capabilities/src/tools/cap/user_angel/user_angel.c#2 (text+ko) ==== ==== //depot/projects/trustedbsd/capabilities/src/tools/cap/user_angel/user_angel.h#2 (text+ko) ==== From owner-p4-projects@FreeBSD.ORG Wed Jun 10 12:36:37 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 3FD95106567B; Wed, 10 Jun 2009 12:36:37 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id D1E9D1065673 for ; Wed, 10 Jun 2009 12:36:36 +0000 (UTC) (envelope-from truncs@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id C042E8FC1C for ; Wed, 10 Jun 2009 12:36:36 +0000 (UTC) (envelope-from truncs@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n5ACaa2Y050162 for ; Wed, 10 Jun 2009 12:36:36 GMT (envelope-from truncs@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n5ACaaZ0050160 for perforce@freebsd.org; Wed, 10 Jun 2009 12:36:36 GMT (envelope-from truncs@FreeBSD.org) Date: Wed, 10 Jun 2009 12:36:36 GMT Message-Id: <200906101236.n5ACaaZ0050160@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to truncs@FreeBSD.org using -f From: Aditya Sarawgi To: Perforce Change Reviews Cc: Subject: PERFORCE change 163983 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 10 Jun 2009 12:36:38 -0000 http://perforce.freebsd.org/chv.cgi?CH=163983 Change 163983 by truncs@aditya on 2009/06/10 12:36:29 On disk superblock taken from NetBSD Affected files ... .. //depot/projects/soc2009/soc_ext2fs/src/sys/gnu/fs/ext2fs/COPYRIGHT.INFO#6 edit .. //depot/projects/soc2009/soc_ext2fs/src/sys/gnu/fs/ext2fs/ext2_fs.h#8 edit Differences ... ==== //depot/projects/soc2009/soc_ext2fs/src/sys/gnu/fs/ext2fs/COPYRIGHT.INFO#6 (text+ko) ==== @@ -13,13 +13,13 @@ ext2_bitmap.c (in the cvs attic) ext2_fs.h ext2_fs_i.h (in the cvs attic) - ext2_fs_sb.h + ext2_fs_sb.h ext2_linux_balloc.c ext2_linux_ialloc.c ext2_super.c (in the cvs attic) ext2_vfsops.c (has some GPL'ed code from ext2_super.c) i386-bitops.h - sparc64-bitops.h + sparc64-bitops.h (in the cvs attic) PS. THANKS GODMAR!!! ==== //depot/projects/soc2009/soc_ext2fs/src/sys/gnu/fs/ext2fs/ext2_fs.h#8 (text+ko) ==== @@ -390,66 +390,53 @@ /* * Structure of the super block */ -struct ext2_super_block { - __u32 s_inodes_count; /* Inodes count */ - __u32 s_blocks_count; /* Blocks count */ - __u32 s_r_blocks_count; /* Reserved blocks count */ - __u32 s_free_blocks_count; /* Free blocks count */ - __u32 s_free_inodes_count; /* Free inodes count */ - __u32 s_first_data_block; /* First Data Block */ - __u32 s_log_block_size; /* Block size */ - __s32 s_log_frag_size; /* Fragment size */ - __u32 s_blocks_per_group; /* # Blocks per group */ - __u32 s_frags_per_group; /* # Fragments per group */ - __u32 s_inodes_per_group; /* # Inodes per group */ - __u32 s_mtime; /* Mount time */ - __u32 s_wtime; /* Write time */ - __u16 s_mnt_count; /* Mount count */ - __s16 s_max_mnt_count; /* Maximal mount count */ - __u16 s_magic; /* Magic signature */ - __u16 s_state; /* File system state */ - __u16 s_errors; /* Behaviour when detecting errors */ - __u16 s_minor_rev_level; /* minor revision level */ - __u32 s_lastcheck; /* time of last check */ - __u32 s_checkinterval; /* max. time between checks */ - __u32 s_creator_os; /* OS */ - __u32 s_rev_level; /* Revision level */ - __u16 s_def_resuid; /* Default uid for reserved blocks */ - __u16 s_def_resgid; /* Default gid for reserved blocks */ - /* - * These fields are for EXT2_DYNAMIC_REV superblocks only. - * - * Note: the difference between the compatible feature set and - * the incompatible feature set is that if there is a bit set - * in the incompatible feature set that the kernel doesn't - * know about, it should refuse to mount the filesystem. - * - * e2fsck's requirements are more strict; if it doesn't know - * about a feature in either the compatible or incompatible - * feature set, it must abort and not try to meddle with - * things it doesn't understand... - */ - __u32 s_first_ino; /* First non-reserved inode */ - __u16 s_inode_size; /* size of inode structure */ - __u16 s_block_group_nr; /* block group # of this superblock */ - __u32 s_feature_compat; /* compatible feature set */ - __u32 s_feature_incompat; /* incompatible feature set */ - __u32 s_feature_ro_compat; /* readonly-compatible feature set */ - __u8 s_uuid[16]; /* 128-bit uuid for volume */ - char s_volume_name[16]; /* volume name */ - char s_last_mounted[64]; /* directory where last mounted */ - __u32 s_algorithm_usage_bitmap; /* For compression */ - /* - * Performance hints. Directory preallocation should only - * happen if the EXT2_COMPAT_PREALLOC flag is on. - */ - __u8 s_prealloc_blocks; /* Nr of blocks to try to preallocate*/ - __u8 s_prealloc_dir_blocks; /* Nr to preallocate for dirs */ - __u16 s_padding1; - __u32 s_reserved[204]; /* Padding to the end of the block */ + +/* + * Super block for an ext2fs file system. + */ +struct ext2fs { + u_int32_t e2fs_icount; /* Inode count */ + u_int32_t e2fs_bcount; /* blocks count */ + u_int32_t e2fs_rbcount; /* reserved blocks count */ + u_int32_t e2fs_fbcount; /* free blocks count */ + u_int32_t e2fs_ficount; /* free inodes count */ + u_int32_t e2fs_first_dblock; /* first data block */ + u_int32_t e2fs_log_bsize; /* block size = 1024*(2^e2fs_log_bsize) */ + u_int32_t e2fs_fsize; /* fragment size */ + u_int32_t e2fs_bpg; /* blocks per group */ + u_int32_t e2fs_fpg; /* frags per group */ + u_int32_t e2fs_ipg; /* inodes per group */ + u_int32_t e2fs_mtime; /* mount time */ + u_int32_t e2fs_wtime; /* write time */ + u_int16_t e2fs_mnt_count; /* mount count */ + u_int16_t e2fs_max_mnt_count; /* max mount count */ + u_int16_t e2fs_magic; /* magic number */ + u_int16_t e2fs_state; /* file system state */ + u_int16_t e2fs_beh; /* behavior on errors */ + u_int16_t e2fs_minrev; /* minor revision level */ + u_int32_t e2fs_lastfsck; /* time of last fsck */ + u_int32_t e2fs_fsckintv; /* max time between fscks */ + u_int32_t e2fs_creator; /* creator OS */ + u_int32_t e2fs_rev; /* revision level */ + u_int16_t e2fs_ruid; /* default uid for reserved blocks */ + u_int16_t e2fs_rgid; /* default gid for reserved blocks */ + /* EXT2_DYNAMIC_REV superblocks */ + u_int32_t e2fs_first_ino; /* first non-reserved inode */ + u_int16_t e2fs_inode_size; /* size of inode structure */ + u_int16_t e2fs_block_group_nr; /* block grp number of this sblk*/ + u_int32_t e2fs_features_compat; /* compatible feature set */ + u_int32_t e2fs_features_incompat; /* incompatible feature set */ + u_int32_t e2fs_features_rocompat; /* RO-compatible feature set */ + u_int8_t e2fs_uuid[16]; /* 128-bit uuid for volume */ + char e2fs_vname[16]; /* volume name */ + char e2fs_fsmnt[64]; /* name mounted on */ + u_int32_t e2fs_algo; /* For comcate for dir */ + u_int16_t e2fs_reserved_ngdb; /* # of reserved gd blocks for resize */ + u_int32_t reserved2[204]; }; + #ifdef __KERNEL__ #define EXT2_SB(sb) (&((sb)->u.ext2_sb)) #else From owner-p4-projects@FreeBSD.ORG Wed Jun 10 13:13:15 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id CBD4A1065670; Wed, 10 Jun 2009 13:13:14 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 8BA1C106564A for ; Wed, 10 Jun 2009 13:13:14 +0000 (UTC) (envelope-from mav@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 788528FC1A for ; Wed, 10 Jun 2009 13:13:14 +0000 (UTC) (envelope-from mav@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n5ADDE1T063937 for ; Wed, 10 Jun 2009 13:13:14 GMT (envelope-from mav@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n5ADDEvZ063935 for perforce@freebsd.org; Wed, 10 Jun 2009 13:13:14 GMT (envelope-from mav@freebsd.org) Date: Wed, 10 Jun 2009 13:13:14 GMT Message-Id: <200906101313.n5ADDEvZ063935@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to mav@freebsd.org using -f From: Alexander Motin To: Perforce Change Reviews Cc: Subject: PERFORCE change 163986 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 10 Jun 2009 13:13:15 -0000 http://perforce.freebsd.org/chv.cgi?CH=163986 Change 163986 by mav@mav_mavbook on 2009/06/10 13:13:05 Change controller DMA memory layout. This allows driver to adapt any defined MAXPHYS size. Separate receive FIS area to different busdma tag as it has different alignment requirements and access patterns. Affected files ... .. //depot/projects/scottl-camlock/src/sys/dev/ahci/ahci.c#22 edit .. //depot/projects/scottl-camlock/src/sys/dev/ahci/ahci.h#10 edit Differences ... ==== //depot/projects/scottl-camlock/src/sys/dev/ahci/ahci.c#22 (text+ko) ==== @@ -89,8 +89,6 @@ static void ahciaction(struct cam_sim *sim, union ccb *ccb); static void ahcipoll(struct cam_sim *sim); -#define MAXWSPCSZ PAGE_SIZE*11 - /* * AHCI v1.x compliant SATA chipset support functions */ @@ -631,7 +629,7 @@ work = ch->dma.work_bus + AHCI_CL_OFFSET; ATA_OUTL(ch->r_mem, AHCI_P_CLB, work & 0xffffffff); ATA_OUTL(ch->r_mem, AHCI_P_CLBU, work >> 32); - work = ch->dma.work_bus + AHCI_FB_OFFSET; + work = ch->dma.rfis_bus; ATA_OUTL(ch->r_mem, AHCI_P_FB, work & 0xffffffff); ATA_OUTL(ch->r_mem, AHCI_P_FBU, work >> 32); /* Activate the channel and power/spin up device */ @@ -671,38 +669,46 @@ struct ahci_channel *ch = device_get_softc(dev); struct ahci_dc_cb_args dcba; - ch->dma.alignment = 2; - ch->dma.boundary = 65536; - ch->dma.segsize = 65536; - ch->dma.max_iosize = AHCI_DMA_ENTRIES * PAGE_SIZE; if (ch->caps & AHCI_CAP_64BIT) ch->dma.max_address = BUS_SPACE_MAXADDR; else ch->dma.max_address = BUS_SPACE_MAXADDR_32BIT; - - if (bus_dma_tag_create(bus_get_dma_tag(dev), PAGE_SIZE, 64 * 1024, + /* Command area. */ + if (bus_dma_tag_create(bus_get_dma_tag(dev), 1024, 0, ch->dma.max_address, BUS_SPACE_MAXADDR, - NULL, NULL, MAXWSPCSZ, 1, MAXWSPCSZ, + NULL, NULL, AHCI_WORK_SIZE, 1, AHCI_WORK_SIZE, 0, NULL, NULL, &ch->dma.work_tag)) goto error; - if (bus_dmamem_alloc(ch->dma.work_tag, (void **)&ch->dma.work, 0, &ch->dma.work_map)) goto error; - if (bus_dmamap_load(ch->dma.work_tag, ch->dma.work_map, ch->dma.work, - MAXWSPCSZ, ahci_dmasetupc_cb, &dcba, 0) || dcba.error) { + AHCI_WORK_SIZE, ahci_dmasetupc_cb, &dcba, 0) || dcba.error) { bus_dmamem_free(ch->dma.work_tag, ch->dma.work, ch->dma.work_map); goto error; } ch->dma.work_bus = dcba.maddr; - - if (bus_dma_tag_create(bus_get_dma_tag(dev), - ch->dma.alignment, ch->dma.boundary, + /* FIS receive area. */ + if (bus_dma_tag_create(bus_get_dma_tag(dev), 4096, 0, + ch->dma.max_address, BUS_SPACE_MAXADDR, + NULL, NULL, 4096, 1, 4096, + 0, NULL, NULL, &ch->dma.rfis_tag)) + goto error; + if (bus_dmamem_alloc(ch->dma.rfis_tag, (void **)&ch->dma.rfis, 0, + &ch->dma.rfis_map)) + goto error; + if (bus_dmamap_load(ch->dma.rfis_tag, ch->dma.rfis_map, ch->dma.rfis, + 4096, ahci_dmasetupc_cb, &dcba, 0) || dcba.error) { + bus_dmamem_free(ch->dma.rfis_tag, ch->dma.rfis, ch->dma.rfis_map); + goto error; + } + ch->dma.rfis_bus = dcba.maddr; + /* Data area. */ + if (bus_dma_tag_create(bus_get_dma_tag(dev), 2, 0, ch->dma.max_address, BUS_SPACE_MAXADDR, NULL, NULL, - ch->dma.max_iosize * ch->numslots, - AHCI_DMA_ENTRIES, ch->dma.segsize, + AHCI_SG_ENTRIES * PAGE_SIZE * ch->numslots, + AHCI_SG_ENTRIES, AHCI_PRD_MAX, 0, busdma_lock_mutex, &ch->mtx, &ch->dma.data_tag)) { goto error; } @@ -731,6 +737,13 @@ bus_dma_tag_destroy(ch->dma.data_tag); ch->dma.data_tag = NULL; } + if (ch->dma.rfis_bus) { + bus_dmamap_unload(ch->dma.rfis_tag, ch->dma.rfis_map); + bus_dmamem_free(ch->dma.rfis_tag, ch->dma.rfis, ch->dma.rfis_map); + ch->dma.rfis_bus = 0; + ch->dma.rfis_map = NULL; + ch->dma.rfis = NULL; + } if (ch->dma.work_bus) { bus_dmamap_unload(ch->dma.work_tag, ch->dma.work_map); bus_dmamem_free(ch->dma.work_tag, ch->dma.work, ch->dma.work_map); @@ -748,7 +761,6 @@ ahci_slotsalloc(device_t dev) { struct ahci_channel *ch = device_get_softc(dev); - struct ahci_dc_cb_args dcba; int i; /* Alloc and setup command/dma slots */ @@ -762,22 +774,6 @@ slot->ccb = NULL; callout_init_mtx(&slot->timeout, &ch->mtx, 0); - if (bus_dma_tag_create(bus_get_dma_tag(dev), PAGE_SIZE, PAGE_SIZE, - ch->dma.max_address, BUS_SPACE_MAXADDR, - NULL, NULL, PAGE_SIZE, 1, PAGE_SIZE, - 0, NULL, NULL, &slot->dma.sg_tag)) { - device_printf(ch->dev, "FAILURE - create sg_tag\n"); - } - - if (bus_dmamem_alloc(slot->dma.sg_tag, (void **)&slot->dma.sg, - 0, &slot->dma.sg_map)) - device_printf(ch->dev, "FAILURE - alloc sg_map\n"); - - if (bus_dmamap_load(slot->dma.sg_tag, slot->dma.sg_map, slot->dma.sg, PAGE_SIZE, - ahci_dmasetupc_cb, &dcba, BUS_DMA_NOWAIT) || dcba.error) - device_printf(ch->dev, "FAILURE - load sg\n"); - slot->dma.sg_bus = dcba.maddr; - if (bus_dmamap_create(ch->dma.data_tag, 0, &slot->dma.data_map)) device_printf(ch->dev, "FAILURE - create data_map\n"); } @@ -793,20 +789,6 @@ for (i = 0; i < ch->numslots; i++) { struct ahci_slot *slot = &ch->slot[i]; - if (slot->dma.sg_tag) { - bus_dma_tag_destroy(slot->dma.sg_tag); - slot->dma.sg_tag = NULL; - } - if (slot->dma.sg_bus) { - bus_dmamap_unload(slot->dma.sg_tag, slot->dma.sg_map); - slot->dma.sg_bus = 0; - } - if (slot->dma.sg_map) { - bus_dmamem_free(slot->dma.sg_tag, slot->dma.sg, slot->dma.sg_map); - bus_dmamap_destroy(slot->dma.sg_tag, slot->dma.sg_map); - slot->dma.sg = NULL; - slot->dma.sg_map = NULL; - } if (slot->dma.data_map) { bus_dmamap_destroy(ch->dma.data_tag, slot->dma.data_map); slot->dma.data_map = NULL; @@ -1007,8 +989,6 @@ prd[i].dbc = htole32((segs[i].ds_len - 1) & AHCI_PRD_MASK); } slot->dma.nsegs = nsegs; - bus_dmamap_sync(slot->dma.sg_tag, slot->dma.sg_map, - BUS_DMASYNC_PREWRITE); bus_dmamap_sync(ch->dma.data_tag, slot->dma.data_map, ((slot->ccb->ccb_h.flags & CAM_DIR_IN) ? BUS_DMASYNC_PREREAD : BUS_DMASYNC_PREWRITE)); @@ -1055,6 +1035,10 @@ clp->bytecount = 0; clp->cmd_table_phys = htole64(ch->dma.work_bus + AHCI_CT_OFFSET + (AHCI_CT_SIZE * slot->slot)); + bus_dmamap_sync(ch->dma.work_tag, ch->dma.work_map, + BUS_DMASYNC_PREWRITE); + bus_dmamap_sync(ch->dma.rfis_tag, ch->dma.rfis_map, + BUS_DMASYNC_PREREAD); /* Set ACTIVE bit for NCQ commands. */ if ((ccb->ccb_h.func_code == XPT_ATA_IO) && (ccb->ataio.cmd.flags & CAM_ATAIO_FPDMA)) { @@ -1148,37 +1132,40 @@ device_t dev = slot->dev; struct ahci_channel *ch = device_get_softc(dev); union ccb *ccb = slot->ccb; -// struct ahci_cmd_list *clp; //device_printf(dev, "%s slot %d\n", __func__, slot->slot); /* Cancel command execution timeout */ callout_stop(&slot->timeout); - /* Read result registers to the result struct */ + bus_dmamap_sync(ch->dma.work_tag, ch->dma.work_map, + BUS_DMASYNC_POSTWRITE); + /* Read result registers to the result struct + * May be incorrect if several commands finished same time, + * so read only when sure. + */ if (ccb->ccb_h.func_code == XPT_ATA_IO) { struct ata_res *res = &ccb->ataio.res; - u_int8_t *fis = ch->dma.work + AHCI_FB_OFFSET + 0x40; + + if (et == AHCI_ERR_REAL || + ccb->ataio.cmd.flags & CAM_ATAIO_CONTROL) { + u_int8_t *fis = ch->dma.rfis + 0x40; - res->status = fis[2]; - res->error = fis[3]; - res->lba_low = fis[4]; - res->lba_mid = fis[5]; - res->lba_high = fis[6]; - res->device = fis[7]; - res->lba_low_exp = fis[8]; - res->lba_mid_exp = fis[9]; - res->lba_high_exp = fis[10]; - res->sector_count = fis[12]; - res->sector_count_exp = fis[13]; + bus_dmamap_sync(ch->dma.rfis_tag, ch->dma.rfis_map, + BUS_DMASYNC_POSTREAD); + res->status = fis[2]; + res->error = fis[3]; + res->lba_low = fis[4]; + res->lba_mid = fis[5]; + res->lba_high = fis[6]; + res->device = fis[7]; + res->lba_low_exp = fis[8]; + res->lba_mid_exp = fis[9]; + res->lba_high_exp = fis[10]; + res->sector_count = fis[12]; + res->sector_count_exp = fis[13]; + } else + bzero(res, sizeof(*res)); } -#if 0 - /* record how much data we actually moved */ - clp = (struct ahci_cmd_list *) - (ch->dma.work + AHCI_CL_OFFSET + (AHCI_CL_SIZE * slot->slot)); - request->donecount = clp->bytecount; -#endif if ((ccb->ccb_h.flags & CAM_DIR_MASK) != CAM_DIR_NONE) { - bus_dmamap_sync(slot->dma.sg_tag, slot->dma.sg_map, - BUS_DMASYNC_POSTWRITE); bus_dmamap_sync(ch->dma.data_tag, slot->dma.data_map, (ccb->ccb_h.flags & CAM_DIR_IN) ? BUS_DMASYNC_POSTREAD : BUS_DMASYNC_POSTWRITE); ==== //depot/projects/scottl-camlock/src/sys/dev/ahci/ahci.h#10 (text+ko) ==== @@ -240,26 +240,36 @@ #define AHCI_P_SNTF 0x3C #define AHCI_P_FBS 0x40 +/* Just to be sure, if building as module. */ +#if MAXPHYS < 512 * 1024 +#undef MAXPHYS +#define MAXPHYS 512 * 1024 +#endif +/* Pessimistic prognosis on number of required S/G entries */ +#define AHCI_SG_ENTRIES (roundup(btoc(MAXPHYS) + 1, 8)) +/* Command list. 32 commands. First, 1Kbyte aligned. */ +#define AHCI_CL_OFFSET 0 #define AHCI_CL_SIZE 32 -#define AHCI_CL_OFFSET 0 -#define AHCI_FB_OFFSET (AHCI_CL_SIZE * 32) -#define AHCI_CT_OFFSET (AHCI_FB_OFFSET + 4096) -#define AHCI_CT_SIZE (1024 + 128) +/* Command tables. Up to 32 commands, Each, 128byte aligned. */ +#define AHCI_CT_OFFSET (AHCI_CL_OFFSET + AHCI_CL_SIZE * AHCI_MAX_SLOTS) +#define AHCI_CT_SIZE (128 + AHCI_SG_ENTRIES * 16) +/* Total main work area. */ +#define AHCI_WORK_SIZE (AHCI_CT_OFFSET + AHCI_CT_SIZE * ch->numslots) struct ahci_dma_prd { u_int64_t dba; u_int32_t reserved; u_int32_t dbc; /* 0 based */ -#define AHCI_PRD_MASK 0x003fffff /* max 4MB */ -#define AHCI_PRD_IPC (1<<31) +#define AHCI_PRD_MASK 0x003fffff /* max 4MB */ +#define AHCI_PRD_MAX (AHCI_PRD_MASK + 1) +#define AHCI_PRD_IPC (1 << 31) } __packed; struct ahci_cmd_tab { u_int8_t cfis[64]; u_int8_t acmd[32]; u_int8_t reserved[32]; -#define AHCI_DMA_ENTRIES 64 - struct ahci_dma_prd prd_tab[AHCI_DMA_ENTRIES]; + struct ahci_dma_prd prd_tab[AHCI_SG_ENTRIES]; } __packed; struct ahci_cmd_list { @@ -276,24 +286,11 @@ u_int64_t cmd_table_phys; /* 128byte aligned */ } __packed; -/* DMA register defines */ -#define ATA_DMA_ENTRIES 256 - /* misc defines */ #define ATA_IRQ_RID 0 #define ATA_INTR_FLAGS (INTR_MPSAFE|INTR_TYPE_BIO|INTR_ENTROPY) -/* structure for holding DMA Physical Region Descriptors (PRD) entries */ -struct ata_dma_prdentry { - u_int32_t addr; - u_int32_t count; -}; - struct ata_dmaslot { - bus_dma_tag_t sg_tag; /* SG list DMA tag */ - bus_dmamap_t sg_map; /* SG list DMA map */ - void *sg; /* DMA transfer table */ - bus_addr_t sg_bus; /* bus address of dmatab */ bus_dmamap_t data_map; /* data DMA map */ int nsegs; /* Number of segs loaded */ }; @@ -302,22 +299,16 @@ struct ata_dma { bus_dma_tag_t work_tag; /* workspace DMA tag */ bus_dmamap_t work_map; /* workspace DMA map */ - u_int8_t *work; /* workspace */ - bus_addr_t work_bus; /* bus address of dmatab */ - + uint8_t *work; /* workspace */ + bus_addr_t work_bus; /* bus address of work */ + bus_dma_tag_t rfis_tag; /* RFIS list DMA tag */ + bus_dmamap_t rfis_map; /* RFIS list DMA map */ + uint8_t *rfis; /* FIS receive area */ + bus_addr_t rfis_bus; /* bus address of rfis */ bus_dma_tag_t data_tag; /* data DMA tag */ - - u_int32_t alignment; /* DMA SG list alignment */ - u_int32_t boundary; /* DMA SG list boundary */ - u_int32_t segsize; /* DMA SG list segment size */ - u_int32_t max_iosize; /* DMA data max IO size */ u_int64_t max_address; /* highest DMA'able address */ }; -#define ATA_MASTER 0x00 -#define ATA_SLAVE 0x01 -#define ATA_PM 0x0f - enum ahci_slot_states { AHCI_SLOT_EMPTY, AHCI_SLOT_LOADING, @@ -334,7 +325,6 @@ struct callout timeout; /* Execution timeout */ }; - /* structure describing an ATA channel */ struct ahci_channel { device_t dev; /* Device handle */ From owner-p4-projects@FreeBSD.ORG Wed Jun 10 13:16:18 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 1E30B1065670; Wed, 10 Jun 2009 13:16:18 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id D25F1106564A for ; Wed, 10 Jun 2009 13:16:17 +0000 (UTC) (envelope-from pgj@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id C10428FC15 for ; Wed, 10 Jun 2009 13:16:17 +0000 (UTC) (envelope-from pgj@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n5ADGH1I064176 for ; Wed, 10 Jun 2009 13:16:17 GMT (envelope-from pgj@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n5ADGHFw064174 for perforce@freebsd.org; Wed, 10 Jun 2009 13:16:17 GMT (envelope-from pgj@FreeBSD.org) Date: Wed, 10 Jun 2009 13:16:17 GMT Message-Id: <200906101316.n5ADGHFw064174@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to pgj@FreeBSD.org using -f From: Gabor Pali To: Perforce Change Reviews Cc: Subject: PERFORCE change 163987 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 10 Jun 2009 13:16:18 -0000 http://perforce.freebsd.org/chv.cgi?CH=163987 Change 163987 by pgj@petymeg-current on 2009/06/10 13:16:11 Add support for extracting only valid (properly flagged) tcp connections Affected files ... .. //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat.c#15 edit .. //depot/projects/soc2009/pgj_libstat/src/usr.bin/netstat/inet.c#7 edit Differences ... ==== //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat.c#15 (text+ko) ==== @@ -149,11 +149,21 @@ if (so->xso_protocol != protocol) continue; - if (inp->inp_gencnt <= oxig->xig_gen) { - stp = _netstat_st_allocate(list, PF_INET, protocol, - ipproto[protocol]); - extract_inet_data(tp, inp, so, stp); - } + /* Keep active PCBs only. */ + if (inp->inp_gencnt > oxig->xig_gen) + continue; + + /* Not a valid IPv4/IPv6 connection. */ + if (((inp->inp_vflag & INP_IPV4) == 0) +#ifdef INET6 + && ((inp->inp_vflag & INP_IPV6) == 0) +#endif + ) + continue; + + stp = _netstat_st_allocate(list, PF_INET, protocol, + ipproto[protocol]); + extract_inet_data(tp, inp, so, stp); } free(buf); ==== //depot/projects/soc2009/pgj_libstat/src/usr.bin/netstat/inet.c#7 (text+ko) ==== @@ -623,17 +623,6 @@ tp = XXX_netstat_st_get_tcpcb(stp); istcp = 1; } - if ((netstat_st_get_family(stp) == AF_INET && (inp.inp_vflag & INP_IPV4) == 0) -#ifdef INET6 - || (netstat_st_get_family(stp) == AF_INET6 && (inp.inp_vflag & INP_IPV6) == 0) -#endif /* INET6 */ - || (netstat_st_get_family(stp) == AF_UNSPEC && ((inp.inp_vflag & INP_IPV4) == 0 -#ifdef INET6 - && (inp.inp_vflag & INP_IPV6) == 0 -#endif /* INET6 */ - )) - ) - return; if (!aflag && ( (istcp && netstat_st_get_listening(stp)) From owner-p4-projects@FreeBSD.ORG Wed Jun 10 13:35:38 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id C44B41065678; Wed, 10 Jun 2009 13:35:37 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 842E4106564A for ; Wed, 10 Jun 2009 13:35:37 +0000 (UTC) (envelope-from mav@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 729658FC15 for ; Wed, 10 Jun 2009 13:35:37 +0000 (UTC) (envelope-from mav@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n5ADZbSU065689 for ; Wed, 10 Jun 2009 13:35:37 GMT (envelope-from mav@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n5ADZbxP065687 for perforce@freebsd.org; Wed, 10 Jun 2009 13:35:37 GMT (envelope-from mav@freebsd.org) Date: Wed, 10 Jun 2009 13:35:37 GMT Message-Id: <200906101335.n5ADZbxP065687@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to mav@freebsd.org using -f From: Alexander Motin To: Perforce Change Reviews Cc: Subject: PERFORCE change 163988 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 10 Jun 2009 13:35:39 -0000 http://perforce.freebsd.org/chv.cgi?CH=163988 Change 163988 by mav@mav_mavbook on 2009/06/10 13:35:18 Disable NCQ when device supports less then 32 tags. It allows to avoid tag collision on controller level when PM isused. Limit maximum transaction size if device does not have 48bit command support. Affected files ... .. //depot/projects/scottl-camlock/src/sys/cam/ata/ata_da.c#8 edit Differences ... ==== //depot/projects/scottl-camlock/src/sys/cam/ata/ata_da.c#8 (text+ko) ==== @@ -599,7 +599,8 @@ softc->flags |= DA_FLAG_CAN_48BIT; if (cgd->ident_data.support.command2 & ATA_SUPPORT_FLUSHCACHE) softc->flags |= DA_FLAG_CAN_FLUSHCACHE; - if (cgd->ident_data.satacapabilities & ATA_SUPPORT_NCQ) + if (cgd->ident_data.satacapabilities & ATA_SUPPORT_NCQ && + cgd->ident_data.queue >= 31) softc->flags |= DA_FLAG_CAN_NCQ; // if ((cgd->inq_data.flags & SID_CmdQue) != 0) // softc->flags |= DA_FLAG_TAGGED_QUEUING; @@ -641,7 +642,10 @@ // softc->disk->d_dump = dadump; softc->disk->d_name = "ada"; softc->disk->d_drv1 = periph; - softc->disk->d_maxsize = 256*1024; + if (cgd->ident_data.support.command2 & ATA_SUPPORT_ADDRESS48) + softc->disk->d_maxsize = MAXPHYS; /* ahci driver limit */ + else + softc->disk->d_maxsize = 255 * 512; /* 28bit ATA command limit */ softc->disk->d_unit = periph->unit_number; softc->disk->d_flags = 0; if (softc->flags & DA_FLAG_CAN_FLUSHCACHE) From owner-p4-projects@FreeBSD.ORG Wed Jun 10 13:39:43 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 4AA5C106567C; Wed, 10 Jun 2009 13:39:43 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 067D81065675 for ; Wed, 10 Jun 2009 13:39:43 +0000 (UTC) (envelope-from truncs@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id AF1DF8FC1B for ; Wed, 10 Jun 2009 13:39:41 +0000 (UTC) (envelope-from truncs@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n5ADdfGa065950 for ; Wed, 10 Jun 2009 13:39:41 GMT (envelope-from truncs@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n5ADdf9X065948 for perforce@freebsd.org; Wed, 10 Jun 2009 13:39:41 GMT (envelope-from truncs@FreeBSD.org) Date: Wed, 10 Jun 2009 13:39:41 GMT Message-Id: <200906101339.n5ADdf9X065948@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to truncs@FreeBSD.org using -f From: Aditya Sarawgi To: Perforce Change Reviews Cc: Subject: PERFORCE change 163989 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 10 Jun 2009 13:39:44 -0000 http://perforce.freebsd.org/chv.cgi?CH=163989 Change 163989 by truncs@aditya on 2009/06/10 13:39:28 -Renamed some memebers of the structure to sound it more logical -Migrated to the new on disk superblock Affected files ... .. //depot/projects/soc2009/soc_ext2fs/src/sys/gnu/fs/ext2fs/ext2_fs.h#9 edit Differences ... ==== //depot/projects/soc2009/soc_ext2fs/src/sys/gnu/fs/ext2fs/ext2_fs.h#9 (text+ko) ==== @@ -110,7 +110,7 @@ #ifdef __KERNEL__ #include -static inline struct ext2_sb_info *EXT2_SB(struct super_block *sb) +static inline struct ext2_sb_info *EXT2_SB(struct ext2fs *sb) { return sb->s_fs_info; } @@ -141,13 +141,13 @@ #if defined(__KERNEL__) || defined(_KERNEL) # define EXT2_BLOCK_SIZE(s) ((s)->e2fs_bsize) #else -# define EXT2_BLOCK_SIZE(s) (EXT2_MIN_BLOCK_SIZE << (s)->s_log_block_size) +# define EXT2_BLOCK_SIZE(s) (EXT2_MIN_BLOCK_SIZE << (s)->e2fs_log_bsize) #endif #define EXT2_ADDR_PER_BLOCK(s) (EXT2_BLOCK_SIZE(s) / sizeof (__u32)) #if defined(__KERNEL__) || defined(_KERNEL) # define EXT2_BLOCK_SIZE_BITS(s) ((s)->e2fs_blocksize_bits) #else -# define EXT2_BLOCK_SIZE_BITS(s) ((s)->s_log_block_size + 10) +# define EXT2_BLOCK_SIZE_BITS(s) ((s)->e2fs_log_bsize + 10) #endif #if defined(__KERNEL__) || defined(_KERNEL) #define EXT2_ADDR_PER_BLOCK_BITS(s) (EXT2_SB(s)->s_addr_per_block_bits) @@ -160,7 +160,7 @@ (s)->s_inode_size) #define EXT2_FIRST_INO(s) (((s)->s_rev_level == EXT2_GOOD_OLD_REV) ? \ EXT2_GOOD_OLD_FIRST_INO : \ - (s)->s_first_ino) + (s)->e2fs_first_ino) #endif /* @@ -173,7 +173,7 @@ # define EXT2_FRAG_SIZE(s) (EXT2_SB(s)->e2fs_fsize) # define EXT2_FRAGS_PER_BLOCK(s) (EXT2_SB(s)->e2fs_fpb) #else -# define EXT2_FRAG_SIZE(s) (EXT2_MIN_FRAG_SIZE << (s)->s_log_frag_size) +# define EXT2_FRAG_SIZE(s) (EXT2_MIN_FRAG_SIZE << (s)->e2fs_log_fsize) # define EXT2_FRAGS_PER_BLOCK(s) (EXT2_BLOCK_SIZE(s) / EXT2_FRAG_SIZE(s)) #endif @@ -387,9 +387,6 @@ #define EXT2_ERRORS_PANIC 3 /* Panic */ #define EXT2_ERRORS_DEFAULT EXT2_ERRORS_CONTINUE -/* - * Structure of the super block - */ /* * Super block for an ext2fs file system. @@ -402,7 +399,7 @@ u_int32_t e2fs_ficount; /* free inodes count */ u_int32_t e2fs_first_dblock; /* first data block */ u_int32_t e2fs_log_bsize; /* block size = 1024*(2^e2fs_log_bsize) */ - u_int32_t e2fs_fsize; /* fragment size */ + u_int32_t e2fs_log_fsize; /* fragment size */ u_int32_t e2fs_bpg; /* blocks per group */ u_int32_t e2fs_fpg; /* frags per group */ u_int32_t e2fs_ipg; /* inodes per group */ @@ -453,7 +450,7 @@ */ struct m_ext2fs { - struct ext2_super_block * e2fs; + struct ext2fs * e2fs; struct buf * e2fs_buf; struct buf ** e2fs_group_desc; char e2fs_fsmnt[MAXMNTLEN];/* name mounted on */ @@ -525,11 +522,11 @@ */ #define EXT2_HAS_COMPAT_FEATURE(sb,mask) \ - ( EXT2_SB(sb)->e2fs->s_feature_compat & cpu_to_le32(mask) ) + ( EXT2_SB(sb)->e2fs->e2fs_features_compat & cpu_to_le32(mask) ) #define EXT2_HAS_RO_COMPAT_FEATURE(sb,mask) \ - ( EXT2_SB(sb)->e2fs->s_feature_ro_compat & cpu_to_le32(mask) ) + ( EXT2_SB(sb)->e2fs->e2fs_features_rocompat & cpu_to_le32(mask) ) #define EXT2_HAS_INCOMPAT_FEATURE(sb,mask) \ - ( EXT2_SB(sb)->e2fs->s_feature_incompat & cpu_to_le32(mask) ) + ( EXT2_SB(sb)->e2fs->e2fs_feature_incompat & cpu_to_le32(mask) ) #define EXT2_FEATURE_COMPAT_DIR_PREALLOC 0x0001 From owner-p4-projects@FreeBSD.ORG Wed Jun 10 13:58:02 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id AB7801065672; Wed, 10 Jun 2009 13:58:02 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 69E06106566B for ; Wed, 10 Jun 2009 13:58:02 +0000 (UTC) (envelope-from truncs@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 583FC8FC26 for ; Wed, 10 Jun 2009 13:58:02 +0000 (UTC) (envelope-from truncs@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n5ADw2hm067523 for ; Wed, 10 Jun 2009 13:58:02 GMT (envelope-from truncs@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n5ADw21p067521 for perforce@freebsd.org; Wed, 10 Jun 2009 13:58:02 GMT (envelope-from truncs@FreeBSD.org) Date: Wed, 10 Jun 2009 13:58:02 GMT Message-Id: <200906101358.n5ADw21p067521@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to truncs@FreeBSD.org using -f From: Aditya Sarawgi To: Perforce Change Reviews Cc: Subject: PERFORCE change 163992 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 10 Jun 2009 13:58:03 -0000 http://perforce.freebsd.org/chv.cgi?CH=163992 Change 163992 by truncs@aditya on 2009/06/10 13:57:53 Migrated to the new on disk superblock Affected files ... .. //depot/projects/soc2009/soc_ext2fs/src/sys/gnu/fs/ext2fs/ext2_alloc.c#5 edit Differences ... ==== //depot/projects/soc2009/soc_ext2fs/src/sys/gnu/fs/ext2fs/ext2_alloc.c#5 (text+ko) ==== @@ -110,12 +110,12 @@ if (cred == NOCRED) panic("ext2_alloc: missing credential"); #endif /* DIAGNOSTIC */ - if (size == fs->e2fs_bsize && fs->e2fs->s_free_blocks_count == 0) + if (size == fs->e2fs_bsize && fs->e2fs->e2fs_fbcount == 0) goto nospace; if (cred->cr_uid != 0 && - fs->e2fs->s_free_blocks_count < fs->e2fs->s_r_blocks_count) + fs->e2fs->e2fs_fbcount < fs->e2fs->e2fs_rbcount) goto nospace; - if (bpref >= fs->e2fs->s_blocks_count) + if (bpref >= fs->e2fs->e2fs_bcount) bpref = 0; /* call the Linux code */ #ifdef EXT2_PREALLOCATE @@ -457,7 +457,7 @@ return blocknr ? blocknr : (int32_t)(ip->i_block_group * EXT2_BLOCKS_PER_GROUP(ip->i_e2fs)) + - ip->i_e2fs->e2fs->s_first_data_block; + ip->i_e2fs->e2fs->e2fs_first_dblock; } /* From owner-p4-projects@FreeBSD.ORG Wed Jun 10 14:17:23 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 39C0710656B1; Wed, 10 Jun 2009 14:17:23 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id EA47B1065670 for ; Wed, 10 Jun 2009 14:17:22 +0000 (UTC) (envelope-from pgj@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id D7BBD8FC20 for ; Wed, 10 Jun 2009 14:17:22 +0000 (UTC) (envelope-from pgj@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n5AEHM4S070204 for ; Wed, 10 Jun 2009 14:17:22 GMT (envelope-from pgj@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n5AEHMq5070202 for perforce@freebsd.org; Wed, 10 Jun 2009 14:17:22 GMT (envelope-from pgj@FreeBSD.org) Date: Wed, 10 Jun 2009 14:17:22 GMT Message-Id: <200906101417.n5AEHMq5070202@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to pgj@FreeBSD.org using -f From: Gabor Pali To: Perforce Change Reviews Cc: Subject: PERFORCE change 163997 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 10 Jun 2009 14:17:24 -0000 http://perforce.freebsd.org/chv.cgi?CH=163997 Change 163997 by pgj@petymeg-current on 2009/06/10 14:16:41 Replace st_listening for NETSTAT_SOCKET_ALL, so the application itself does not have to filter the received list (and it more abstract) Affected files ... .. //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat.c#16 edit .. //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat.h#14 edit .. //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat_internal.h#11 edit .. //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat_util.c#13 edit .. //depot/projects/soc2009/pgj_libstat/src/usr.bin/netstat/inet.c#8 edit Differences ... ==== //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat.c#16 (text+ko) ==== @@ -14,6 +14,7 @@ #include #define TCPSTATES #include +#include #include #include #include @@ -54,7 +55,7 @@ "#11", "#12", "#13", "#14", "#15", "#16", "udp" }; static int -net_local_pcblist_sysctl(int type, struct socket_type_list *list) +net_local_pcblist_sysctl(int type, struct socket_type_list *list, int flags) { char *buf; size_t len; @@ -100,7 +101,7 @@ } static int -net_inet_pcblist_sysctl(int protocol, struct socket_type_list *list) +net_inet_pcblist_sysctl(int protocol, struct socket_type_list *list, int flags) { char *buf; size_t len; @@ -161,6 +162,18 @@ ) continue; + if ((flags & NETSTAT_SOCKET_ALL) == 0 && + ( + (protocol == IPPROTO_TCP && tp->t_state == TCPS_LISTEN) + || ((inp->inp_vflag & INP_IPV4) != 0 && + inet_lnaof(inp->inp_laddr) == INADDR_ANY) +#ifdef INET6 + || ((inp->inp_vflag & INP_IPV6) != 0 && + IN6_IS_ADDR_UNSPECIFIED(&inp->in6p_laddr)) +#endif + )) + continue; + stp = _netstat_st_allocate(list, PF_INET, protocol, ipproto[protocol]); extract_inet_data(tp, inp, so, stp); @@ -179,7 +192,7 @@ static int net_local_pcblist_kvm(int type, struct socket_type_list *list, - kvm_t *kvm, struct nlist *nlistp) + kvm_t *kvm, struct nlist *nlistp, int flags) { struct unp_head head; struct unpcb *unp, unp_conn; @@ -247,7 +260,7 @@ static int net_inet_pcblist_kvm(int protocol, struct socket_type_list *list, - kvm_t *kvm, struct nlist *nlistp) + kvm_t *kvm, struct nlist *nlistp, int flags) { /* XXX: to be filled in. */ return (0); @@ -272,15 +285,16 @@ } } -#define NPCB_KVM(family, type, list, kvm, nl) do { \ - if (net_##family##_pcblist_kvm((type), (list), (kvm), (nl)) != 0) { \ +#define NPCB_KVM(family, type, list, kvm, nl, flags) do { \ + if (net_##family##_pcblist_kvm((type), (list), (kvm), (nl), \ + (flags)) != 0) { \ list->stl_error = NETSTAT_ERROR_UNDEFINED; \ return (-1); \ } \ } while (0) -#define NPCB_SCT(family, type, list) do { \ - if (net_##family##_pcblist_sysctl((type), (list)) != 0) { \ +#define NPCB_SCT(family, type, list, flags) do { \ + if (net_##family##_pcblist_sysctl((type), (list), (flags)) != 0) { \ list->stl_error = NETSTAT_ERROR_UNDEFINED; \ return (-1); \ } \ @@ -292,19 +306,21 @@ case SOCK_STREAM: case SOCK_DGRAM: if (use_kvm) - NPCB_KVM(local, type, list, kvm, nl); + NPCB_KVM(local, type, list, kvm, nl, flags); else /* Use sysctl (or something else). */ - NPCB_SCT(local, type, list); + NPCB_SCT(local, type, list, flags); break; /* All PF_LOCAL */ case 0: if (use_kvm) { - NPCB_KVM(local, SOCK_STREAM, list, kvm, nl); - NPCB_KVM(local, SOCK_DGRAM, list, kvm, nl); + NPCB_KVM(local, SOCK_STREAM, list, kvm, nl, + flags); + NPCB_KVM(local, SOCK_DGRAM, list, kvm, nl, + flags); } else { - NPCB_SCT(local, SOCK_STREAM, list); - NPCB_SCT(local, SOCK_DGRAM, list); + NPCB_SCT(local, SOCK_STREAM, list, flags); + NPCB_SCT(local, SOCK_DGRAM, list, flags); } break; default: @@ -317,18 +333,20 @@ case IPPROTO_TCP: case IPPROTO_UDP: if (use_kvm) - NPCB_KVM(inet, protocol, list, kvm, nl); + NPCB_KVM(inet, protocol, list, kvm, nl, flags); else - NPCB_SCT(inet, protocol, list); + NPCB_SCT(inet, protocol, list, flags); break; /* All PF_INET */ case 0: if (use_kvm) { - NPCB_KVM(inet, IPPROTO_TCP, list, kvm, nl); - NPCB_KVM(inet, IPPROTO_UDP, list, kvm, nl); + NPCB_KVM(inet, IPPROTO_TCP, list, kvm, nl, + flags); + NPCB_KVM(inet, IPPROTO_UDP, list, kvm, nl, + flags); } else { - NPCB_SCT(inet, IPPROTO_TCP, list); - NPCB_SCT(inet, IPPROTO_UDP, list); + NPCB_SCT(inet, IPPROTO_TCP, list, flags); + NPCB_SCT(inet, IPPROTO_UDP, list, flags); } break; default: @@ -382,7 +400,6 @@ } else { stp->st_address[0] = '\0'; } - stp->st_listening = 0; stp->st_tcpstate[0] = '\0'; } @@ -423,7 +440,6 @@ stp->XXX_xsocket = *so; /* XXX: address is missing. */ stp->st_address[0] = '\0'; - stp->st_listening = (tp->t_state == TCPS_LISTEN); if (tp->t_state < 0 || tp->t_state >= TCP_NSTATES) sprintf(stp->st_tcpstate, "%d", tp->t_state); else { ==== //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat.h#14 (text+ko) ==== @@ -19,7 +19,8 @@ #define NETSTAT_ERROR_UNSUPPORTED 6 /* Flags for netstat_socket(): */ -#define NETSTAT_SOCKET_KVM 1 /* Use KVM. */ +#define NETSTAT_SOCKET_KVM 0x01 /* Use KVM. */ +#define NETSTAT_SOCKET_ALL 0x02 /* Return all connections. */ struct socket_type; struct socket_type_list; @@ -81,7 +82,6 @@ u_long netstat_st_get_refs(const struct socket_type *stp); u_long netstat_st_get_reflink(const struct socket_type *stp); const char *netstat_st_get_address(const struct socket_type *stp); -int netstat_st_get_listening(const struct socket_type *stp); const char *netstat_st_get_tcpstate(const struct socket_type *stp); /* XXX: Remove this hacks. */ struct tcpcb XXX_netstat_st_get_tcpcb(const struct socket_type *stp); ==== //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat_internal.h#11 (text+ko) ==== @@ -62,7 +62,6 @@ u_long st_reflink; /* link in references list */ char st_address[SOCKTYPE_MAXADDR]; char st_tcpstate[16]; - int st_listening; /* XXX: Removables. */ struct tcpcb XXX_tcpcb; ==== //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat_util.c#13 (text+ko) ==== @@ -396,12 +396,6 @@ return (stp->st_address); } -int -netstat_st_get_listening(const struct socket_type *stp) -{ - return (stp->st_listening); -} - const char * netstat_st_get_tcpstate(const struct socket_type *stp) { ==== //depot/projects/soc2009/pgj_libstat/src/usr.bin/netstat/inet.c#8 (text+ko) ==== @@ -581,6 +581,8 @@ st_flags = 0; if (!live) st_flags |= NETSTAT_SOCKET_KVM; + if (aflag) + st_flags |= NETSTAT_SOCKET_ALL; if (netstat_socket(PF_INET, 0, proto, stlp, st_flags, kvm) < 0) { error = netstat_stl_geterror(stlp); @@ -623,26 +625,6 @@ tp = XXX_netstat_st_get_tcpcb(stp); istcp = 1; } - if (!aflag && - ( - (istcp && netstat_st_get_listening(stp)) - || (netstat_st_get_family(stp) == AF_INET && - inet_lnaof(inp.inp_laddr) == INADDR_ANY) -#ifdef INET6 - || (netstat_st_get_family(stp) == AF_INET6 && - IN6_IS_ADDR_UNSPECIFIED(&inp.in6p_laddr)) -#endif /* INET6 */ - || (netstat_st_get_family(stp) == AF_UNSPEC && - (((inp.inp_vflag & INP_IPV4) != 0 && - inet_lnaof(inp.inp_laddr) == INADDR_ANY) -#ifdef INET6 - || ((inp.inp_vflag & INP_IPV6) != 0 && - IN6_IS_ADDR_UNSPECIFIED(&inp.in6p_laddr)) -#endif - )) - )) - return; - if (first) { if (!Lflag) { printf("Active Internet connections"); From owner-p4-projects@FreeBSD.ORG Wed Jun 10 14:50:57 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 89C771065679; Wed, 10 Jun 2009 14:50:57 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 41A971065674 for ; Wed, 10 Jun 2009 14:50:57 +0000 (UTC) (envelope-from truncs@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 2EF148FC0A for ; Wed, 10 Jun 2009 14:50:57 +0000 (UTC) (envelope-from truncs@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n5AEovgO073246 for ; Wed, 10 Jun 2009 14:50:57 GMT (envelope-from truncs@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n5AEovA6073244 for perforce@freebsd.org; Wed, 10 Jun 2009 14:50:57 GMT (envelope-from truncs@FreeBSD.org) Date: Wed, 10 Jun 2009 14:50:57 GMT Message-Id: <200906101450.n5AEovA6073244@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to truncs@FreeBSD.org using -f From: Aditya Sarawgi To: Perforce Change Reviews Cc: Subject: PERFORCE change 164001 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 10 Jun 2009 14:50:58 -0000 http://perforce.freebsd.org/chv.cgi?CH=164001 Change 164001 by truncs@aditya on 2009/06/10 14:50:20 Migration to the new on disk superblock Affected files ... .. //depot/projects/soc2009/soc_ext2fs/src/sys/gnu/fs/ext2fs/ext2_linux_balloc.c#5 edit .. //depot/projects/soc2009/soc_ext2fs/src/sys/gnu/fs/ext2fs/ext2_linux_ialloc.c#5 edit Differences ... ==== //depot/projects/soc2009/soc_ext2fs/src/sys/gnu/fs/ext2fs/ext2_linux_balloc.c#5 (text+ko) ==== @@ -186,7 +186,7 @@ unsigned long i; int bitmap_nr; struct ext2_group_desc * gdp; - struct ext2_super_block * es; + struct ext2fs * es; if (!sb) { printf ("ext2_free_blocks: nonexistent device"); @@ -194,8 +194,8 @@ } es = sb->e2fs; lock_super (VFSTOEXT2(mp)->um_devvp); - if (block < es->s_first_data_block || - (block + count) > es->s_blocks_count) { + if (block < es->e2fs_first_dblock || + (block + count) > es->e2fs_bcount) { printf ( "ext2_free_blocks: " "Freeing blocks not in datazone - " "block = %lu, count = %lu", block, count); @@ -205,9 +205,9 @@ ext2_debug ("freeing blocks %lu to %lu\n", block, block+count-1); - block_group = (block - es->s_first_data_block) / + block_group = (block - es->e2fs_first_dblock) / EXT2_BLOCKS_PER_GROUP(sb); - bit = (block - es->s_first_data_block) % EXT2_BLOCKS_PER_GROUP(sb); + bit = (block - es->e2fs_first_dblock) % EXT2_BLOCKS_PER_GROUP(sb); if (bit + count > EXT2_BLOCKS_PER_GROUP(sb)) panic ( "ext2_free_blocks: " "Freeing blocks across group boundary - " @@ -236,7 +236,7 @@ block); else { gdp->bg_free_blocks_count++; - es->s_free_blocks_count++; + es->e2fs_fbcount++; } } @@ -271,7 +271,7 @@ int i, j, k, tmp; int bitmap_nr; struct ext2_group_desc * gdp; - struct ext2_super_block * es; + struct ext2fs * es; #ifdef EXT2FS_DEBUG static int goal_hits = 0, goal_attempts = 0; @@ -289,12 +289,12 @@ /* * First, test whether the goal block is free. */ - if (goal < es->s_first_data_block || goal >= es->s_blocks_count) - goal = es->s_first_data_block; - i = (goal - es->s_first_data_block) / EXT2_BLOCKS_PER_GROUP(sb); + if (goal < es->e2fs_first_dblock || goal >= es->e2fs_bcount) + goal = es->e2fs_first_dblock; + i = (goal - es->e2fs_first_dblock) / EXT2_BLOCKS_PER_GROUP(sb); gdp = get_group_desc (mp, i, &bh2); if (gdp->bg_free_blocks_count > 0) { - j = ((goal - es->s_first_data_block) % EXT2_BLOCKS_PER_GROUP(sb)); + j = ((goal - es->e2fs_first_dblock) % EXT2_BLOCKS_PER_GROUP(sb)); #ifdef EXT2FS_DEBUG if (j) goal_attempts++; @@ -400,7 +400,7 @@ ext2_debug ("using block group %d(%d)\n", i, gdp->bg_free_blocks_count); - tmp = j + i * EXT2_BLOCKS_PER_GROUP(sb) + es->s_first_data_block; + tmp = j + i * EXT2_BLOCKS_PER_GROUP(sb) + es->e2fs_first_dblock; if (/* test_opt (sb, CHECK_STRICT) && we are always strict. */ (tmp == gdp->bg_block_bitmap || @@ -432,7 +432,7 @@ (*prealloc_count)++; } gdp->bg_free_blocks_count -= *prealloc_count; - es->s_free_blocks_count -= *prealloc_count; + es->e2fs_fbcount -= *prealloc_count; ext2_debug ("Preallocated a further %lu bits.\n", *prealloc_count); } @@ -447,7 +447,7 @@ wait_on_buffer (bh); } ****/ - if (j >= es->s_blocks_count) { + if (j >= es->e2fs_bcount) { printf ( "ext2_new_block: " "block >= blocks count - " "block_group = %d, block=%d", i, j); @@ -460,7 +460,7 @@ gdp->bg_free_blocks_count--; mark_buffer_dirty(bh2); - es->s_free_blocks_count--; + es->e2fs_fbcount--; sb->e2fs_fmod = 1; unlock_super (VFSTOEXT2(mp)->um_devvp); return j; @@ -471,7 +471,7 @@ { struct m_ext2fs *sb = VFSTOEXT2(mp)->um_e2fs; #ifdef EXT2FS_DEBUG - struct ext2_super_block * es; + struct ext2fs * es; unsigned long desc_count, bitmap_count, x; int bitmap_nr; struct ext2_group_desc * gdp; @@ -493,11 +493,11 @@ bitmap_count += x; } ext2_debug( "stored = %lu, computed = %lu, %lu\n", - es->s_free_blocks_count, desc_count, bitmap_count); + es->e2fs_fbcount, desc_count, bitmap_count); unlock_super (VFSTOEXT2(mp)->um_devvp); return bitmap_count; #else - return sb->e2fs->s_free_blocks_count; + return sb->e2fs->e2fs_fbcount; #endif } #endif /* unused */ @@ -506,7 +506,7 @@ struct m_ext2fs * sb, unsigned char * map) { - return test_bit ((block - sb->e2fs->s_first_data_block) % + return test_bit ((block - sb->e2fs->e2fs_first_dblock) % EXT2_BLOCKS_PER_GROUP(sb), map); } @@ -534,7 +534,7 @@ { struct m_ext2fs *sb = VFSTOEXT2(mp)->um_e2fs; struct buffer_head * bh; - struct ext2_super_block * es; + struct ext2fs * es; unsigned long desc_count, bitmap_count, x; unsigned long desc_blocks; int bitmap_nr; @@ -554,7 +554,7 @@ bitmap_nr = load_block_bitmap (mp, i); bh = sb->e2fs_bb[bitmap_nr]; - if (!(es->s_feature_ro_compat & + if (!(es->e2fs_features_rocompat & EXT2_FEATURE_RO_COMPAT_SPARSE_SUPER) || ext2_group_sparse(i)) { if (!test_bit (0, bh->b_data)) @@ -579,13 +579,13 @@ "Inode bitmap for group %d is marked free", i); - for (j = 0; j < sb->s_itb_per_group; j++) + for (j = 0; j < sb->e2fs_itpg; j++) if (!block_in_use (gdp->bg_inode_table + j, sb, bh->b_data)) printf ("ext2_check_blocks_bitmap: " "Block #%d of the inode table in " "group %d is marked free", j, i); - x = ext2_count_free (bh, sb->s_blocksize); + x = ext2_count_free (bh, sb->e2fs_bsize); if (gdp->bg_free_blocks_count != x) printf ("ext2_check_blocks_bitmap: " "Wrong free blocks count for group %d, " @@ -593,11 +593,11 @@ gdp->bg_free_blocks_count, x); bitmap_count += x; } - if (es->s_free_blocks_count != bitmap_count) + if (es->e2fs_fbcount != bitmap_count) printf ("ext2_check_blocks_bitmap: " "Wrong free blocks count in super block, " "stored = %lu, counted = %lu", - (unsigned long) es->s_free_blocks_count, bitmap_count); + (unsigned long) es->e2fs_fbcount, bitmap_count); unlock_super (VFSTOEXT2(mp)->um_devvp); } #endif /* unused */ ==== //depot/projects/soc2009/soc_ext2fs/src/sys/gnu/fs/ext2fs/ext2_linux_ialloc.c#5 (text+ko) ==== @@ -209,7 +209,7 @@ unsigned long bit; int bitmap_nr; struct ext2_group_desc * gdp; - struct ext2_super_block * es; + struct ext2fs * es; if (!inode) return; @@ -225,7 +225,7 @@ sb = inode->i_e2fs; lock_super (DEVVP(inode)); if (inode->i_number < EXT2_FIRST_INO(sb) || - inode->i_number > sb->e2fs->s_inodes_count) { + inode->i_number > sb->e2fs->e2fs_icount) { printf ("free_inode reserved inode or nonexistent inode"); unlock_super (DEVVP(inode)); return; @@ -245,7 +245,7 @@ if (S_ISDIR(inode->i_mode)) gdp->bg_used_dirs_count--; mark_buffer_dirty(bh2); - es->s_free_inodes_count++; + es->e2fs_ficount++; } mark_buffer_dirty(bh); /*** XXX @@ -316,7 +316,7 @@ int bitmap_nr; struct ext2_group_desc * gdp; struct ext2_group_desc * tmp; - struct ext2_super_block * es; + struct ext2fs * es; if (!dir) return 0; @@ -328,7 +328,7 @@ gdp = NULL; i=0; if (S_ISDIR(mode)) { - avefreei = es->s_free_inodes_count / + avefreei = es->e2fs_ficount / sb->e2fs_gcount; /* I am not yet convinced that this next bit is necessary. i = dir->u.ext2_i.i_block_group; @@ -434,7 +434,7 @@ goto repeat; } j += i * EXT2_INODES_PER_GROUP(sb) + 1; - if (j < EXT2_FIRST_INO(sb) || j > es->s_inodes_count) { + if (j < EXT2_FIRST_INO(sb) || j > es->e2fs_icount) { printf ( "ext2_new_inode:" "reserved inode or inode > inodes count - " "block_group = %d,inode=%d", i, j); @@ -445,7 +445,7 @@ if (S_ISDIR(mode)) gdp->bg_used_dirs_count++; mark_buffer_dirty(bh2); - es->s_free_inodes_count--; + es->e2fs_ficount--; /* mark_buffer_dirty(sb->u.ext2_sb.s_sbh, 1); */ sb->e2fs_fmod = 1; unlock_super (DEVVP(dir)); @@ -457,7 +457,7 @@ { #ifdef EXT2FS_DEBUG struct m_ext2fs *sb = VFSTOEXT2(mp)->um_e2fs; - struct ext2_super_block * es; + struct ext2fs * es; unsigned long desc_count, bitmap_count, x; int bitmap_nr; struct ext2_group_desc * gdp; @@ -479,11 +479,11 @@ bitmap_count += x; } ext2_debug("stored = %lu, computed = %lu, %lu\n", - es->s_free_inodes_count, desc_count, bitmap_count); + es->e2fs_ficount, desc_count, bitmap_count); unlock_super (VFSTOEXT2(mp)->um_devvp); return desc_count; #else - return VFSTOEXT2(mp)->um_e2fsb->s_free_inodes_count; + return VFSTOEXT2(mp)->um_e2fsb->e2fs_ficount; #endif } #endif /* unused */ @@ -491,7 +491,7 @@ #ifdef LATER void ext2_check_inodes_bitmap (struct mount * mp) { - struct ext2_super_block * es; + struct ext2fs * es; unsigned long desc_count, bitmap_count, x; int bitmap_nr; struct ext2_group_desc * gdp; @@ -515,11 +515,11 @@ gdp->bg_free_inodes_count, x); bitmap_count += x; } - if (es->s_free_inodes_count != bitmap_count) + if (es->e2fs_ficount != bitmap_count) printf ( "ext2_check_inodes_bitmap:" "Wrong free inodes count in super block, " "stored = %lu, counted = %lu", - (unsigned long) es->s_free_inodes_count, bitmap_count); + (unsigned long) es->e2fs_ficount, bitmap_count); unlock_super (sb); } #endif From owner-p4-projects@FreeBSD.ORG Wed Jun 10 15:06:13 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 3C73B106567F; Wed, 10 Jun 2009 15:06:13 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id EB5E61065672 for ; Wed, 10 Jun 2009 15:06:12 +0000 (UTC) (envelope-from pgj@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id D972F8FC12 for ; Wed, 10 Jun 2009 15:06:12 +0000 (UTC) (envelope-from pgj@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n5AF6Cul085824 for ; Wed, 10 Jun 2009 15:06:12 GMT (envelope-from pgj@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n5AF6Cnu085822 for perforce@freebsd.org; Wed, 10 Jun 2009 15:06:12 GMT (envelope-from pgj@FreeBSD.org) Date: Wed, 10 Jun 2009 15:06:12 GMT Message-Id: <200906101506.n5AF6Cnu085822@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to pgj@FreeBSD.org using -f From: Gabor Pali To: Perforce Change Reviews Cc: Subject: PERFORCE change 164003 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 10 Jun 2009 15:06:15 -0000 http://perforce.freebsd.org/chv.cgi?CH=164003 Change 164003 by pgj@petymeg-current on 2009/06/10 15:05:55 Remove hacks for tcpcb, add a previously missed code snippet Affected files ... .. //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat.c#17 edit .. //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat.h#15 edit .. //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat_internal.h#12 edit .. //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat_util.c#14 edit .. //depot/projects/soc2009/pgj_libstat/src/usr.bin/netstat/inet.c#9 edit Differences ... ==== //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat.c#17 (text+ko) ==== @@ -434,8 +434,6 @@ stp->st_reflink = (u_long)0; stp->st_flags = SOCKTYPE_TCP; /* XXX: Remove this. */ - if (tp != NULL) - stp->XXX_tcpcb = *tp; stp->XXX_inpcb = *inp; stp->XXX_xsocket = *so; /* XXX: address is missing. */ ==== //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat.h#15 (text+ko) ==== @@ -84,7 +84,6 @@ const char *netstat_st_get_address(const struct socket_type *stp); const char *netstat_st_get_tcpstate(const struct socket_type *stp); /* XXX: Remove this hacks. */ -struct tcpcb XXX_netstat_st_get_tcpcb(const struct socket_type *stp); struct inpcb XXX_netstat_st_get_inpcb(const struct socket_type *stp); struct xsocket XXX_netstat_st_get_xsocket(const struct socket_type *stp); __END_DECLS ==== //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat_internal.h#12 (text+ko) ==== @@ -64,7 +64,6 @@ char st_tcpstate[16]; /* XXX: Removables. */ - struct tcpcb XXX_tcpcb; struct inpcb XXX_inpcb; struct xsocket XXX_xsocket; ==== //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat_util.c#14 (text+ko) ==== @@ -403,12 +403,6 @@ } /* XXX: Remove this hacks. */ -struct tcpcb -XXX_netstat_st_get_tcpcb(const struct socket_type *stp) -{ - return (stp->XXX_tcpcb); -} - struct inpcb XXX_netstat_st_get_inpcb(const struct socket_type *stp) { ==== //depot/projects/soc2009/pgj_libstat/src/usr.bin/netstat/inet.c#9 (text+ko) ==== @@ -613,18 +613,11 @@ { static int first = 1; char buf1[15]; - struct tcpcb tp; struct inpcb inp; struct xsocket so; - int istcp; - istcp = 0; inp = XXX_netstat_st_get_inpcb(stp); so = XXX_netstat_st_get_xsocket(stp); - if (netstat_st_get_protocol(stp) == IPPROTO_TCP) { - tp = XXX_netstat_st_get_tcpcb(stp); - istcp = 1; - } if (first) { if (!Lflag) { printf("Active Internet connections"); @@ -709,6 +702,17 @@ netstat_st_get_name(stp), 0); } /* else nothing printed now */ #endif /* INET6 */ + } else { + if (inp.inp_vflag & INP_IPV4) { + inetprint(&inp.inp_laddr, (int)inp.inp_lport, + netstat_st_get_name(stp), 0); + if (!Lflag) + inetprint(&inp.inp_faddr, + (int)inp.inp_fport, + netstat_st_get_name(stp), + inp.inp_lport != inp.inp_fport); + } +#ifdef INET6 else if (inp.inp_vflag & INP_IPV6) { inet6print(&inp.in6p_laddr, (int)inp.inp_lport, netstat_st_get_name(stp), 0); @@ -718,6 +722,7 @@ netstat_st_get_name(stp), inp.inp_lport != inp.inp_fport); } /* else nothing printed now */ +#endif /* INET6 */ } if (xflag) { if (Lflag) @@ -734,7 +739,7 @@ netstat_st_get_rcv_mbmax(stp), netstat_st_get_snd_mbmax(stp)); } - if (istcp && !Lflag) { + if (!Lflag) { printf("%s", netstat_st_get_tcpstate(stp)); } putchar('\n'); From owner-p4-projects@FreeBSD.ORG Wed Jun 10 15:21:31 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 5F85E1065674; Wed, 10 Jun 2009 15:21:31 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 1EB65106564A for ; Wed, 10 Jun 2009 15:21:31 +0000 (UTC) (envelope-from jhb@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 0AF468FC12 for ; Wed, 10 Jun 2009 15:21:31 +0000 (UTC) (envelope-from jhb@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n5AFLUjq087038 for ; Wed, 10 Jun 2009 15:21:30 GMT (envelope-from jhb@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n5AFLUIe087036 for perforce@freebsd.org; Wed, 10 Jun 2009 15:21:30 GMT (envelope-from jhb@freebsd.org) Date: Wed, 10 Jun 2009 15:21:30 GMT Message-Id: <200906101521.n5AFLUIe087036@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to jhb@freebsd.org using -f From: John Baldwin To: Perforce Change Reviews Cc: Subject: PERFORCE change 164007 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 10 Jun 2009 15:21:32 -0000 http://perforce.freebsd.org/chv.cgi?CH=164007 Change 164007 by jhb@jhb_jhbbsd on 2009/06/10 15:21:03 IFC @164004 Affected files ... .. //depot/projects/multipass/sys/amd64/amd64/local_apic.c#4 integrate .. //depot/projects/multipass/sys/amd64/amd64/machdep.c#4 integrate .. //depot/projects/multipass/sys/amd64/conf/DEFAULTS#4 integrate .. //depot/projects/multipass/sys/amd64/conf/GENERIC#5 integrate .. //depot/projects/multipass/sys/amd64/conf/NOTES#4 integrate .. //depot/projects/multipass/sys/amd64/isa/clock.c#3 integrate .. //depot/projects/multipass/sys/arm/arm/intr.c#2 integrate .. //depot/projects/multipass/sys/arm/arm/locore.S#3 integrate .. //depot/projects/multipass/sys/arm/at91/at91.c#4 integrate .. //depot/projects/multipass/sys/arm/include/intr.h#3 integrate .. //depot/projects/multipass/sys/arm/mv/ic.c#3 integrate .. //depot/projects/multipass/sys/arm/sa11x0/sa11x0_irqhandler.c#2 integrate .. //depot/projects/multipass/sys/arm/xscale/i80321/i80321.c#2 integrate .. //depot/projects/multipass/sys/arm/xscale/i8134x/i81342.c#2 integrate .. //depot/projects/multipass/sys/arm/xscale/ixp425/ixp425.c#3 integrate .. //depot/projects/multipass/sys/arm/xscale/pxa/pxa_icu.c#2 integrate .. //depot/projects/multipass/sys/boot/forth/loader.conf#4 integrate .. //depot/projects/multipass/sys/compat/freebsd32/freebsd32_proto.h#4 integrate .. //depot/projects/multipass/sys/compat/freebsd32/freebsd32_syscall.h#4 integrate .. //depot/projects/multipass/sys/compat/freebsd32/freebsd32_syscalls.c#4 integrate .. //depot/projects/multipass/sys/compat/freebsd32/freebsd32_sysent.c#5 integrate .. //depot/projects/multipass/sys/compat/freebsd32/syscalls.master#4 integrate .. //depot/projects/multipass/sys/compat/linprocfs/linprocfs.c#3 integrate .. //depot/projects/multipass/sys/compat/linux/linux_ioctl.c#5 integrate .. //depot/projects/multipass/sys/compat/svr4/svr4_sockio.c#3 integrate .. //depot/projects/multipass/sys/conf/NOTES#5 integrate .. //depot/projects/multipass/sys/conf/files#5 integrate .. //depot/projects/multipass/sys/conf/options#5 integrate .. //depot/projects/multipass/sys/contrib/altq/altq/altq_subr.c#4 integrate .. //depot/projects/multipass/sys/contrib/dev/acpica/include/platform/acfreebsd.h#2 integrate .. //depot/projects/multipass/sys/contrib/pf/net/if_pflog.c#3 integrate .. //depot/projects/multipass/sys/contrib/pf/net/pf_if.c#3 integrate .. //depot/projects/multipass/sys/contrib/pf/net/pf_ioctl.c#4 integrate .. //depot/projects/multipass/sys/dev/acpica/Osd/OsdSynch.c#3 integrate .. //depot/projects/multipass/sys/dev/acpica/acpi_pcib_acpi.c#5 integrate .. //depot/projects/multipass/sys/dev/alc/if_alc.c#1 branch .. //depot/projects/multipass/sys/dev/alc/if_alcreg.h#1 branch .. //depot/projects/multipass/sys/dev/alc/if_alcvar.h#1 branch .. //depot/projects/multipass/sys/dev/ata/chipsets/ata-acerlabs.c#3 integrate .. //depot/projects/multipass/sys/dev/ce/if_ce.c#3 integrate .. //depot/projects/multipass/sys/dev/cp/if_cp.c#3 integrate .. //depot/projects/multipass/sys/dev/ctau/if_ct.c#3 integrate .. //depot/projects/multipass/sys/dev/cx/if_cx.c#3 integrate .. //depot/projects/multipass/sys/dev/cxgb/cxgb_multiq.c#4 integrate .. //depot/projects/multipass/sys/dev/cxgb/cxgb_sge.c#4 integrate .. //depot/projects/multipass/sys/dev/cxgb/ulp/iw_cxgb/iw_cxgb.c#3 integrate .. //depot/projects/multipass/sys/dev/e1000/if_igb.c#4 integrate .. //depot/projects/multipass/sys/dev/fxp/if_fxp.c#4 integrate .. //depot/projects/multipass/sys/dev/if_ndis/if_ndis_usb.c#4 integrate .. //depot/projects/multipass/sys/dev/kbdmux/kbdmux.c#4 integrate .. //depot/projects/multipass/sys/dev/nmdm/nmdm.c#4 integrate .. //depot/projects/multipass/sys/dev/sound/pcm/sound.h#4 integrate .. //depot/projects/multipass/sys/dev/sound/sbus/cs4231.c#3 integrate .. //depot/projects/multipass/sys/dev/usb/wlan/if_zyd.c#4 integrate .. //depot/projects/multipass/sys/dev/usb/wlan/if_zydreg.h#4 integrate .. //depot/projects/multipass/sys/fs/cd9660/cd9660_vnops.c#3 integrate .. //depot/projects/multipass/sys/fs/devfs/devfs_vnops.c#5 integrate .. //depot/projects/multipass/sys/fs/fifofs/fifo_vnops.c#3 integrate .. //depot/projects/multipass/sys/fs/msdosfs/msdosfs_vnops.c#3 integrate .. //depot/projects/multipass/sys/fs/nfsclient/nfs_clstate.c#3 integrate .. //depot/projects/multipass/sys/fs/nfsclient/nfs_clvnops.c#3 integrate .. //depot/projects/multipass/sys/fs/pseudofs/pseudofs_vnops.c#4 integrate .. //depot/projects/multipass/sys/gnu/fs/xfs/FreeBSD/xfs_vnops.c#3 integrate .. //depot/projects/multipass/sys/i386/conf/DEFAULTS#4 integrate .. //depot/projects/multipass/sys/i386/conf/GENERIC#5 integrate .. //depot/projects/multipass/sys/i386/conf/NOTES#4 integrate .. //depot/projects/multipass/sys/i386/i386/local_apic.c#4 integrate .. //depot/projects/multipass/sys/i386/i386/machdep.c#4 integrate .. //depot/projects/multipass/sys/i386/isa/clock.c#3 integrate .. //depot/projects/multipass/sys/i386/isa/vesa.c#2 integrate .. //depot/projects/multipass/sys/kern/bus_if.m#3 integrate .. //depot/projects/multipass/sys/kern/kern_jail.c#5 integrate .. //depot/projects/multipass/sys/kern/kern_poll.c#4 integrate .. //depot/projects/multipass/sys/kern/kern_uuid.c#4 integrate .. //depot/projects/multipass/sys/kern/subr_acl_nfs4.c#1 branch .. //depot/projects/multipass/sys/kern/subr_bus.c#7 integrate .. //depot/projects/multipass/sys/kern/sys_pipe.c#4 integrate .. //depot/projects/multipass/sys/kern/sysv_shm.c#4 integrate .. //depot/projects/multipass/sys/kern/uipc_mqueue.c#4 integrate .. //depot/projects/multipass/sys/kern/uipc_syscalls.c#5 integrate .. //depot/projects/multipass/sys/kern/vfs_syscalls.c#5 integrate .. //depot/projects/multipass/sys/kern/vfs_vnops.c#5 integrate .. //depot/projects/multipass/sys/kern/vnode_if.src#4 integrate .. //depot/projects/multipass/sys/libkern/jenkins.h#1 branch .. //depot/projects/multipass/sys/modules/Makefile#5 integrate .. //depot/projects/multipass/sys/modules/alc/Makefile#1 branch .. //depot/projects/multipass/sys/modules/bridgestp/Makefile#3 integrate .. //depot/projects/multipass/sys/modules/cxgb/iw_cxgb/Makefile#3 integrate .. //depot/projects/multipass/sys/modules/if_ef/Makefile#3 integrate .. //depot/projects/multipass/sys/modules/if_vlan/Makefile#3 integrate .. //depot/projects/multipass/sys/modules/ip_mroute_mod/Makefile#4 integrate .. //depot/projects/multipass/sys/modules/ipfw/Makefile#4 integrate .. //depot/projects/multipass/sys/modules/linprocfs/Makefile#3 integrate .. //depot/projects/multipass/sys/modules/linux/Makefile#5 integrate .. //depot/projects/multipass/sys/modules/netgraph/atm/atm/Makefile#3 integrate .. //depot/projects/multipass/sys/modules/netgraph/ether/Makefile#3 integrate .. //depot/projects/multipass/sys/modules/netgraph/gif/Makefile#3 integrate .. //depot/projects/multipass/sys/modules/nfsclient/Makefile#4 integrate .. //depot/projects/multipass/sys/modules/pf/Makefile#4 integrate .. //depot/projects/multipass/sys/modules/sound/sound/Makefile#4 integrate .. //depot/projects/multipass/sys/modules/svr4/Makefile#5 integrate .. //depot/projects/multipass/sys/modules/wlan/Makefile#4 integrate .. //depot/projects/multipass/sys/net/bridgestp.c#4 integrate .. //depot/projects/multipass/sys/net/flowtable.c#2 integrate .. //depot/projects/multipass/sys/net/flowtable.h#2 integrate .. //depot/projects/multipass/sys/net/if.c#5 integrate .. //depot/projects/multipass/sys/net/if_arcsubr.c#4 integrate .. //depot/projects/multipass/sys/net/if_bridge.c#5 integrate .. //depot/projects/multipass/sys/net/if_ef.c#4 integrate .. //depot/projects/multipass/sys/net/if_ethersubr.c#5 integrate .. //depot/projects/multipass/sys/net/if_fddisubr.c#5 integrate .. //depot/projects/multipass/sys/net/if_fwsubr.c#5 integrate .. //depot/projects/multipass/sys/net/if_gif.c#5 integrate .. //depot/projects/multipass/sys/net/if_gif.h#5 integrate .. //depot/projects/multipass/sys/net/if_iso88025subr.c#5 integrate .. //depot/projects/multipass/sys/net/if_loop.c#5 integrate .. //depot/projects/multipass/sys/net/if_mib.c#4 integrate .. //depot/projects/multipass/sys/net/if_var.h#5 integrate .. //depot/projects/multipass/sys/net/if_vlan.c#4 integrate .. //depot/projects/multipass/sys/net/raw_cb.c#3 integrate .. //depot/projects/multipass/sys/net/raw_usrreq.c#3 integrate .. //depot/projects/multipass/sys/net/rtsock.c#5 integrate .. //depot/projects/multipass/sys/net80211/ieee80211.c#5 integrate .. //depot/projects/multipass/sys/net80211/ieee80211.h#5 integrate .. //depot/projects/multipass/sys/net80211/ieee80211_crypto_ccmp.c#4 integrate .. //depot/projects/multipass/sys/net80211/ieee80211_ddb.c#5 integrate .. //depot/projects/multipass/sys/net80211/ieee80211_dfs.c#3 integrate .. //depot/projects/multipass/sys/net80211/ieee80211_ht.c#4 integrate .. //depot/projects/multipass/sys/net80211/ieee80211_proto.h#5 integrate .. //depot/projects/multipass/sys/net80211/ieee80211_radiotap.c#2 integrate .. //depot/projects/multipass/sys/netgraph/atm/ng_atm.c#3 integrate .. //depot/projects/multipass/sys/netgraph/ng_ether.c#4 integrate .. //depot/projects/multipass/sys/netgraph/ng_gif.c#3 integrate .. //depot/projects/multipass/sys/netgraph/ng_ipfw.c#3 integrate .. //depot/projects/multipass/sys/netgraph/ng_ipfw.h#2 integrate .. //depot/projects/multipass/sys/netgraph/ng_message.h#2 integrate .. //depot/projects/multipass/sys/netinet/if_ether.c#5 integrate .. //depot/projects/multipass/sys/netinet/igmp.c#5 integrate .. //depot/projects/multipass/sys/netinet/in.c#5 integrate .. //depot/projects/multipass/sys/netinet/in_mcast.c#4 integrate .. //depot/projects/multipass/sys/netinet/in_proto.c#4 integrate .. //depot/projects/multipass/sys/netinet/in_rmx.c#5 integrate .. //depot/projects/multipass/sys/netinet/ip_dummynet.h#4 integrate .. //depot/projects/multipass/sys/netinet/ip_fw.h#5 integrate .. //depot/projects/multipass/sys/netinet/ipfw/ip_dummynet.c#2 integrate .. //depot/projects/multipass/sys/netinet/ipfw/ip_fw2.c#2 integrate .. //depot/projects/multipass/sys/netinet/ipfw/ip_fw_pfil.c#2 integrate .. //depot/projects/multipass/sys/netinet/raw_ip.c#5 integrate .. //depot/projects/multipass/sys/netinet/sctp_os_bsd.h#4 integrate .. //depot/projects/multipass/sys/netinet/tcp_debug.c#2 integrate .. //depot/projects/multipass/sys/netinet6/icmp6.c#5 integrate .. //depot/projects/multipass/sys/netinet6/in6.c#5 integrate .. //depot/projects/multipass/sys/netinet6/in6_ifattach.c#5 integrate .. //depot/projects/multipass/sys/netinet6/in6_mcast.c#3 integrate .. //depot/projects/multipass/sys/netinet6/in6_proto.c#5 integrate .. //depot/projects/multipass/sys/netinet6/in6_rmx.c#5 integrate .. //depot/projects/multipass/sys/netinet6/ip6_input.c#5 integrate .. //depot/projects/multipass/sys/netinet6/ip6_mroute.c#4 integrate .. //depot/projects/multipass/sys/netinet6/ip6_output.c#5 integrate .. //depot/projects/multipass/sys/netinet6/nd6.c#5 integrate .. //depot/projects/multipass/sys/netinet6/nd6_rtr.c#5 integrate .. //depot/projects/multipass/sys/netinet6/raw_ip6.c#4 integrate .. //depot/projects/multipass/sys/netinet6/scope6.c#3 integrate .. //depot/projects/multipass/sys/netipsec/keysock.c#4 integrate .. //depot/projects/multipass/sys/netipsec/xform_ipip.c#3 integrate .. //depot/projects/multipass/sys/netipx/spx_debug.c#2 integrate .. //depot/projects/multipass/sys/nfsclient/bootp_subr.c#4 integrate .. //depot/projects/multipass/sys/nfsclient/nfs_diskless.c#4 integrate .. //depot/projects/multipass/sys/powerpc/aim/machdep.c#5 integrate .. //depot/projects/multipass/sys/powerpc/aim/platform_chrp.c#2 integrate .. //depot/projects/multipass/sys/powerpc/powerpc/openpic.c#3 integrate .. //depot/projects/multipass/sys/sys/buf_ring.h#3 integrate .. //depot/projects/multipass/sys/sys/bus.h#4 integrate .. //depot/projects/multipass/sys/sys/mount.h#5 integrate .. //depot/projects/multipass/sys/sys/soundcard.h#4 integrate .. //depot/projects/multipass/sys/sys/vimage.h#5 integrate .. //depot/projects/multipass/sys/tools/emu10k1-mkalsa.sh#2 delete .. //depot/projects/multipass/sys/tools/feeder_eq_mkfilter.awk#2 delete .. //depot/projects/multipass/sys/tools/feeder_rate_mkfilter.awk#2 delete .. //depot/projects/multipass/sys/tools/snd_fxdiv_gen.awk#2 delete .. //depot/projects/multipass/sys/tools/sound/emu10k1-mkalsa.sh#1 branch .. //depot/projects/multipass/sys/tools/sound/feeder_eq_mkfilter.awk#1 branch .. //depot/projects/multipass/sys/tools/sound/feeder_rate_mkfilter.awk#1 branch .. //depot/projects/multipass/sys/tools/sound/snd_fxdiv_gen.awk#1 branch .. //depot/projects/multipass/sys/vm/vm_map.c#5 integrate Differences ... ==== //depot/projects/multipass/sys/amd64/amd64/local_apic.c#4 (text+ko) ==== @@ -32,7 +32,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/amd64/amd64/local_apic.c,v 1.55 2009/05/05 01:13:20 mav Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/amd64/local_apic.c,v 1.56 2009/06/09 04:17:36 ariff Exp $"); #include "opt_hwpmc_hooks.h" #include "opt_kdtrace.h" @@ -329,29 +329,6 @@ /* XXX: Error and thermal LVTs */ - if (cpu_vendor_id == CPU_VENDOR_AMD) { - /* - * Detect the presence of C1E capability mostly on latest - * dual-cores (or future) k8 family. This feature renders - * the local APIC timer dead, so we disable it by reading - * the Interrupt Pending Message register and clearing both - * C1eOnCmpHalt (bit 28) and SmiOnCmpHalt (bit 27). - * - * Reference: - * "BIOS and Kernel Developer's Guide for AMD NPT - * Family 0Fh Processors" - * #32559 revision 3.00 - */ - if ((cpu_id & 0x00000f00) == 0x00000f00 && - (cpu_id & 0x0fff0000) >= 0x00040000) { - uint64_t msr; - - msr = rdmsr(0xc0010055); - if (msr & 0x18000000) - wrmsr(0xc0010055, msr & ~0x18000000ULL); - } - } - intr_restore(eflags); } ==== //depot/projects/multipass/sys/amd64/amd64/machdep.c#4 (text+ko) ==== @@ -39,7 +39,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/amd64/amd64/machdep.c,v 1.701 2009/05/18 18:37:18 marcel Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/amd64/machdep.c,v 1.702 2009/06/09 04:17:36 ariff Exp $"); #include "opt_atalk.h" #include "opt_atpic.h" @@ -600,7 +600,70 @@ __asm __volatile("sti; hlt"); } +static int cpu_ident_amdc1e = 0; + +static int +cpu_probe_amdc1e(void) +{ + int i; + + /* + * Forget it, if we're not using local APIC timer. + */ + if (resource_disabled("apic", 0) || + (resource_int_value("apic", 0, "clock", &i) == 0 && i == 0)) + return (0); + + /* + * Detect the presence of C1E capability mostly on latest + * dual-cores (or future) k8 family. + */ + if (cpu_vendor_id == CPU_VENDOR_AMD && + (cpu_id & 0x00000f00) == 0x00000f00 && + (cpu_id & 0x0fff0000) >= 0x00040000) { + cpu_ident_amdc1e = 1; + return (1); + } + + return (0); +} + +/* + * C1E renders the local APIC timer dead, so we disable it by + * reading the Interrupt Pending Message register and clearing + * both C1eOnCmpHalt (bit 28) and SmiOnCmpHalt (bit 27). + * + * Reference: + * "BIOS and Kernel Developer's Guide for AMD NPT Family 0Fh Processors" + * #32559 revision 3.00+ + */ +#define MSR_AMDK8_IPM 0xc0010055 +#define AMDK8_SMIONCMPHALT (1ULL << 27) +#define AMDK8_C1EONCMPHALT (1ULL << 28) +#define AMDK8_CMPHALT (AMDK8_SMIONCMPHALT | AMDK8_C1EONCMPHALT) + static void +cpu_idle_amdc1e(int busy) +{ + + disable_intr(); + if (sched_runnable()) + enable_intr(); + else { + uint64_t msr; + + msr = rdmsr(MSR_AMDK8_IPM); + if (msr & AMDK8_CMPHALT) + wrmsr(MSR_AMDK8_IPM, msr & ~AMDK8_CMPHALT); + + if (cpu_idle_hook) + cpu_idle_hook(); + else + __asm __volatile("sti; hlt"); + } +} + +static void cpu_idle_spin(int busy) { return; @@ -697,6 +760,7 @@ { cpu_idle_spin, "spin" }, { cpu_idle_mwait, "mwait" }, { cpu_idle_mwait_hlt, "mwait_hlt" }, + { cpu_idle_amdc1e, "amdc1e" }, { cpu_idle_hlt, "hlt" }, { cpu_idle_acpi, "acpi" }, { NULL, NULL } @@ -715,6 +779,9 @@ if (strstr(idle_tbl[i].id_name, "mwait") && (cpu_feature2 & CPUID2_MON) == 0) continue; + if (strcmp(idle_tbl[i].id_name, "amdc1e") == 0 && + cpu_ident_amdc1e == 0) + continue; p += sprintf(p, "%s, ", idle_tbl[i].id_name); } error = sysctl_handle_string(oidp, avail, 0, req); @@ -745,6 +812,9 @@ if (strstr(idle_tbl[i].id_name, "mwait") && (cpu_feature2 & CPUID2_MON) == 0) continue; + if (strcmp(idle_tbl[i].id_name, "amdc1e") == 0 && + cpu_ident_amdc1e == 0) + continue; if (strcmp(idle_tbl[i].id_name, buf)) continue; cpu_idle_fn = idle_tbl[i].id_fn; @@ -1593,6 +1663,9 @@ } #endif + if (cpu_probe_amdc1e()) + cpu_idle_fn = cpu_idle_amdc1e; + /* Location of kernel stack for locore */ return ((u_int64_t)thread0.td_pcb); } ==== //depot/projects/multipass/sys/amd64/conf/DEFAULTS#4 (text+ko) ==== @@ -1,7 +1,7 @@ # # DEFAULTS -- Default kernel configuration file for FreeBSD/amd64 # -# $FreeBSD: src/sys/amd64/conf/DEFAULTS,v 1.18 2009/05/10 00:00:25 kuriyama Exp $ +# $FreeBSD: src/sys/amd64/conf/DEFAULTS,v 1.19 2009/06/09 20:26:52 kmacy Exp $ machine amd64 @@ -21,4 +21,3 @@ options GEOM_PART_EBR_COMPAT options GEOM_PART_MBR -options FLOWTABLE ==== //depot/projects/multipass/sys/amd64/conf/GENERIC#5 (text+ko) ==== @@ -16,7 +16,7 @@ # If you are in doubt as to the purpose or necessity of a line, check first # in NOTES. # -# $FreeBSD: src/sys/amd64/conf/GENERIC,v 1.526 2009/06/02 18:31:08 rwatson Exp $ +# $FreeBSD: src/sys/amd64/conf/GENERIC,v 1.528 2009/06/10 02:07:58 yongari Exp $ cpu HAMMER ident GENERIC @@ -71,6 +71,7 @@ options HWPMC_HOOKS # Necessary kernel hooks for hwpmc(4) options AUDIT # Security event auditing options MAC # TrustedBSD MAC Framework +options FLOWTABLE # per-cpu routing cache #options KDTRACE_FRAME # Ensure frames are compiled in #options KDTRACE_HOOKS # Kernel DTrace hooks @@ -212,6 +213,7 @@ device miibus # MII bus support device ae # Attansic/Atheros L2 FastEthernet device age # Attansic/Atheros L1 Gigabit Ethernet +device alc # Atheros AR8131/AR8132 Ethernet device ale # Atheros AR8121/AR8113/AR8114 Ethernet device bce # Broadcom BCM5706/BCM5708 Gigabit Ethernet device bfe # Broadcom BCM440x 10/100 Ethernet ==== //depot/projects/multipass/sys/amd64/conf/NOTES#4 (text+ko) ==== @@ -4,7 +4,7 @@ # This file contains machine dependent kernel configuration notes. For # machine independent notes, look in /sys/conf/NOTES. # -# $FreeBSD: src/sys/amd64/conf/NOTES,v 1.90 2009/05/10 00:00:25 kuriyama Exp $ +# $FreeBSD: src/sys/amd64/conf/NOTES,v 1.91 2009/06/08 20:07:16 jkim Exp $ # # @@ -237,12 +237,9 @@ # kernel environment variables to select initial debugging levels for the # Intel ACPICA code. (Note that the Intel code must also have USE_DEBUGGER # defined when it is built). -# -# ACPI_NO_SEMAPHORES makes the AcpiOs*Semaphore routines a no-op. device acpi options ACPI_DEBUG -#!options ACPI_NO_SEMAPHORES # The cpufreq(4) driver provides support for non-ACPI CPU frequency control device cpufreq ==== //depot/projects/multipass/sys/amd64/isa/clock.c#3 (text+ko) ==== @@ -33,7 +33,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/amd64/isa/clock.c,v 1.246 2009/05/03 17:47:21 mav Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/isa/clock.c,v 1.248 2009/06/09 09:47:02 bz Exp $"); /* * Routines to handle clock hardware. @@ -93,6 +93,9 @@ static int using_atrtc_timer; static int using_lapic_timer; +static u_int stat_ticks = 0; +static u_int prof_ticks = 0; + /* Values for timerX_state: */ #define RELEASED 0 #define RELEASE_PENDING 1 @@ -122,8 +125,6 @@ hardclock(TRAPF_USERMODE(frame), TRAPF_PC(frame)); else hardclock_cpu(TRAPF_USERMODE(frame)); - if (!using_atrtc_timer) - statclockintr(frame); return (FILTER_HANDLED); } @@ -131,8 +132,6 @@ statclockintr(struct trapframe *frame) { - if (profprocs != 0) - profclock(TRAPF_USERMODE(frame), TRAPF_PC(frame)); statclock(TRAPF_USERMODE(frame)); return (FILTER_HANDLED); } @@ -166,6 +165,30 @@ ipi_all_but_self(IPI_HARDCLOCK); #endif hardclockintr(frame); + + if (!using_atrtc_timer) { + prof_ticks += profhz; + if (prof_ticks >= hz) { + prof_ticks -= hz; + if (profprocs != 0) { +#ifdef SMP + if (smp_started) + ipi_all_but_self(IPI_PROFCLOCK); +#endif + profclockintr(frame); + } + } + stat_ticks += stathz; + if (stat_ticks >= hz) { + stat_ticks -= hz; +#ifdef SMP + if (smp_started) + ipi_all_but_self(IPI_STATCLOCK); +#endif + statclockintr(frame); + } + } + return (FILTER_HANDLED); } @@ -500,7 +523,8 @@ INTR_TYPE_CLK, NULL); atrtc_enable_intr(); } else { - profhz = stathz = hz; + profhz = min(RTC_PROFRATE, hz); + stathz = min(RTC_NOPROFRATE, hz); } } @@ -511,7 +535,7 @@ cpu_startprofclock(void) { - if (using_lapic_timer) + if (using_lapic_timer || !using_atrtc_timer) return; atrtc_rate(RTCSA_PROF); psdiv = pscnt = psratio; @@ -521,7 +545,7 @@ cpu_stopprofclock(void) { - if (using_lapic_timer) + if (using_lapic_timer || !using_atrtc_timer) return; atrtc_rate(RTCSA_NOPROF); psdiv = pscnt = 1; ==== //depot/projects/multipass/sys/arm/arm/intr.c#2 (text+ko) ==== @@ -37,7 +37,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/arm/arm/intr.c,v 1.24 2008/09/11 12:36:13 raj Exp $"); +__FBSDID("$FreeBSD: src/sys/arm/arm/intr.c,v 1.25 2009/06/09 18:18:41 marcel Exp $"); #include #include #include @@ -120,7 +120,8 @@ int i; PCPU_INC(cnt.v_intr); - while ((i = arm_get_next_irq()) != -1) { + i = -1; + while ((i = arm_get_next_irq(i)) != -1) { intrcnt[intrcnt_tab[i]]++; event = intr_events[i]; if (intr_event_handle(event, frame) != 0) { ==== //depot/projects/multipass/sys/arm/arm/locore.S#3 (text+ko) ==== @@ -37,7 +37,7 @@ #include #include #include -__FBSDID("$FreeBSD: src/sys/arm/arm/locore.S,v 1.22 2009/03/31 23:06:20 cognet Exp $"); +__FBSDID("$FreeBSD: src/sys/arm/arm/locore.S,v 1.23 2009/06/09 17:21:47 marcel Exp $"); /* What size should this really be ? It is only used by initarm() */ #define INIT_ARM_STACK_SIZE 2048 @@ -73,6 +73,11 @@ mov ip, r0 + /* Make sure interrupts are disabled. */ + mrs r7, cpsr + orr r7, r7, #(I32_bit|F32_bit) + msr cpsr_c, r7 + #if defined (FLASHADDR) && defined(LOADERRAMADDR) /* Check if we're running from flash. */ ldr r7, =FLASHADDR ==== //depot/projects/multipass/sys/arm/at91/at91.c#4 (text) ==== @@ -24,7 +24,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/arm/at91/at91.c,v 1.24 2009/05/15 04:49:20 imp Exp $"); +__FBSDID("$FreeBSD: src/sys/arm/at91/at91.c,v 1.25 2009/06/09 18:18:41 marcel Exp $"); #include #include @@ -702,9 +702,8 @@ } int -arm_get_next_irq() +arm_get_next_irq(int last __unused) { - int status; int irq; ==== //depot/projects/multipass/sys/arm/include/intr.h#3 (text+ko) ==== @@ -32,7 +32,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $FreeBSD: src/sys/arm/include/intr.h,v 1.12 2008/12/20 03:26:09 sam Exp $ + * $FreeBSD: src/sys/arm/include/intr.h,v 1.13 2009/06/09 18:18:41 marcel Exp $ * */ @@ -56,7 +56,7 @@ #include -int arm_get_next_irq(void); +int arm_get_next_irq(int); void arm_mask_irq(uintptr_t); void arm_unmask_irq(uintptr_t); void arm_setup_irqhandler(const char *, int (*)(void*), void (*)(void*), ==== //depot/projects/multipass/sys/arm/mv/ic.c#3 (text+ko) ==== @@ -29,7 +29,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/arm/mv/ic.c,v 1.2 2009/04/16 11:20:18 raj Exp $"); +__FBSDID("$FreeBSD: src/sys/arm/mv/ic.c,v 1.3 2009/06/09 18:18:41 marcel Exp $"); #include #include @@ -137,7 +137,7 @@ DRIVER_MODULE(ic, mbus, mv_ic_driver, mv_ic_devclass, 0, 0); int -arm_get_next_irq(void) +arm_get_next_irq(int last __unused) { int irq; ==== //depot/projects/multipass/sys/arm/sa11x0/sa11x0_irqhandler.c#2 (text+ko) ==== @@ -76,7 +76,7 @@ #include -__FBSDID("$FreeBSD: src/sys/arm/sa11x0/sa11x0_irqhandler.c,v 1.6 2006/10/21 04:25:00 kevlo Exp $"); +__FBSDID("$FreeBSD: src/sys/arm/sa11x0/sa11x0_irqhandler.c,v 1.7 2009/06/09 18:18:41 marcel Exp $"); #include #include @@ -108,7 +108,7 @@ extern vm_offset_t saipic_base; int -arm_get_next_irq() +arm_get_next_irq(int last __unused) { int irq; ==== //depot/projects/multipass/sys/arm/xscale/i80321/i80321.c#2 (text+ko) ==== @@ -40,7 +40,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/arm/xscale/i80321/i80321.c,v 1.7 2007/09/04 18:45:27 cognet Exp $"); +__FBSDID("$FreeBSD: src/sys/arm/xscale/i80321/i80321.c,v 1.8 2009/06/09 18:18:41 marcel Exp $"); #include #include @@ -240,7 +240,7 @@ } int -arm_get_next_irq() +arm_get_next_irq(int last __unused) { int irq; ==== //depot/projects/multipass/sys/arm/xscale/i8134x/i81342.c#2 (text+ko) ==== @@ -25,7 +25,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/arm/xscale/i8134x/i81342.c,v 1.2 2007/09/22 16:25:43 cognet Exp $"); +__FBSDID("$FreeBSD: src/sys/arm/xscale/i8134x/i81342.c,v 1.3 2009/06/09 18:18:41 marcel Exp $"); #include #include @@ -295,7 +295,7 @@ } int -arm_get_next_irq(void) +arm_get_next_irq(int last __unused) { uint32_t val; val = intpnd0_read() & intr_enabled0; ==== //depot/projects/multipass/sys/arm/xscale/ixp425/ixp425.c#3 (text+ko) ==== @@ -34,7 +34,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/arm/xscale/ixp425/ixp425.c,v 1.17 2009/03/10 19:15:35 sam Exp $"); +__FBSDID("$FreeBSD: src/sys/arm/xscale/ixp425/ixp425.c,v 1.18 2009/06/09 18:18:41 marcel Exp $"); #include "opt_ddb.h" @@ -202,7 +202,7 @@ } int -arm_get_next_irq(void) +arm_get_next_irq(int last __unused) { uint32_t irq; ==== //depot/projects/multipass/sys/arm/xscale/pxa/pxa_icu.c#2 (text+ko) ==== @@ -23,7 +23,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/arm/xscale/pxa/pxa_icu.c,v 1.1 2008/06/06 05:08:09 benno Exp $"); +__FBSDID("$FreeBSD: src/sys/arm/xscale/pxa/pxa_icu.c,v 1.2 2009/06/09 18:18:41 marcel Exp $"); #include #include @@ -128,7 +128,7 @@ DRIVER_MODULE(pxaicu, pxa, pxa_icu_driver, pxa_icu_devclass, 0, 0); int -arm_get_next_irq() +arm_get_next_irq(int last __unused) { int irq; ==== //depot/projects/multipass/sys/boot/forth/loader.conf#4 (text+ko) ==== @@ -6,7 +6,7 @@ # # All arguments must be in double quotes. # -# $FreeBSD: src/sys/boot/forth/loader.conf,v 1.140 2009/05/17 10:58:50 brueffer Exp $ +# $FreeBSD: src/sys/boot/forth/loader.conf,v 1.141 2009/06/10 02:07:58 yongari Exp $ ############################################################## ### Basic configuration options ############################ @@ -210,6 +210,7 @@ miibus_load="NO" # miibus support, needed for some drivers if_ae_load="NO" # Attansic/Atheros L2 FastEthernet if_age_load="NO" # Attansic/Atheros L1 Gigabit Ethernet +if_alc_load="NO" # Atheros AR8131/AR8132 Ethernet if_ale_load="NO" # Atheros AR8121/AR8113/AR8114 Ethernet if_an_load="NO" # Aironet 4500/4800 802.11 wireless NICs if_ar_load="NO" # Digi SYNC/570i ==== //depot/projects/multipass/sys/compat/freebsd32/freebsd32_proto.h#4 (text+ko) ==== @@ -2,8 +2,8 @@ * System call prototypes. * * DO NOT EDIT-- this file is automatically generated. - * $FreeBSD: src/sys/compat/freebsd32/freebsd32_proto.h,v 1.100 2009/04/29 21:50:13 jamie Exp $ - * created from FreeBSD: head/sys/compat/freebsd32/syscalls.master 191673 2009-04-29 21:14:15Z jamie + * $FreeBSD: src/sys/compat/freebsd32/freebsd32_proto.h,v 1.101 2009/06/10 13:48:43 kib Exp $ + * created from FreeBSD: head/sys/compat/freebsd32/syscalls.master 193916 2009-06-10 13:48:13Z kib */ #ifndef _FREEBSD32_SYSPROTO_H_ ==== //depot/projects/multipass/sys/compat/freebsd32/freebsd32_syscall.h#4 (text+ko) ==== @@ -2,8 +2,8 @@ * System call numbers. * * DO NOT EDIT-- this file is automatically generated. - * $FreeBSD: src/sys/compat/freebsd32/freebsd32_syscall.h,v 1.99 2009/04/29 21:50:13 jamie Exp $ - * created from FreeBSD: head/sys/compat/freebsd32/syscalls.master 191673 2009-04-29 21:14:15Z jamie + * $FreeBSD: src/sys/compat/freebsd32/freebsd32_syscall.h,v 1.100 2009/06/10 13:48:43 kib Exp $ + * created from FreeBSD: head/sys/compat/freebsd32/syscalls.master 193916 2009-06-10 13:48:13Z kib */ #define FREEBSD32_SYS_syscall 0 @@ -303,6 +303,9 @@ #define FREEBSD32_SYS_statfs 396 #define FREEBSD32_SYS_fstatfs 397 #define FREEBSD32_SYS_fhstatfs 398 +#define FREEBSD32_SYS_extattr_set_link 412 +#define FREEBSD32_SYS_extattr_get_link 413 +#define FREEBSD32_SYS_extattr_delete_link 414 #define FREEBSD32_SYS_freebsd32_sigaction 416 #define FREEBSD32_SYS_freebsd32_sigreturn 417 #define FREEBSD32_SYS_freebsd32_getcontext 421 @@ -315,6 +318,9 @@ #define FREEBSD32_SYS_freebsd32_umtx_lock 434 #define FREEBSD32_SYS_freebsd32_umtx_unlock 435 #define FREEBSD32_SYS_jail_attach 436 +#define FREEBSD32_SYS_extattr_list_fd 437 +#define FREEBSD32_SYS_extattr_list_file 438 +#define FREEBSD32_SYS_extattr_list_link 439 #define FREEBSD32_SYS_freebsd32_thr_suspend 442 #define FREEBSD32_SYS_thr_wake 443 #define FREEBSD32_SYS_kldunloadf 444 ==== //depot/projects/multipass/sys/compat/freebsd32/freebsd32_syscalls.c#4 (text+ko) ==== @@ -2,8 +2,8 @@ * System call names. * * DO NOT EDIT-- this file is automatically generated. - * $FreeBSD: src/sys/compat/freebsd32/freebsd32_syscalls.c,v 1.90 2009/04/29 21:50:13 jamie Exp $ - * created from FreeBSD: head/sys/compat/freebsd32/syscalls.master 191673 2009-04-29 21:14:15Z jamie + * $FreeBSD: src/sys/compat/freebsd32/freebsd32_syscalls.c,v 1.91 2009/06/10 13:48:43 kib Exp $ + * created from FreeBSD: head/sys/compat/freebsd32/syscalls.master 193916 2009-06-10 13:48:13Z kib */ const char *freebsd32_syscallnames[] = { @@ -419,9 +419,9 @@ "#409", /* 409 = __mac_get_pid */ "#410", /* 410 = __mac_get_link */ "#411", /* 411 = __mac_set_link */ - "#412", /* 412 = extattr_set_link */ - "#413", /* 413 = extattr_get_link */ - "#414", /* 414 = extattr_delete_link */ + "extattr_set_link", /* 412 = extattr_set_link */ + "extattr_get_link", /* 413 = extattr_get_link */ + "extattr_delete_link", /* 414 = extattr_delete_link */ "#415", /* 415 = __mac_execve */ "freebsd32_sigaction", /* 416 = freebsd32_sigaction */ "freebsd32_sigreturn", /* 417 = freebsd32_sigreturn */ @@ -444,9 +444,9 @@ "freebsd32_umtx_lock", /* 434 = freebsd32_umtx_lock */ "freebsd32_umtx_unlock", /* 435 = freebsd32_umtx_unlock */ "jail_attach", /* 436 = jail_attach */ - "#437", /* 437 = extattr_list_fd */ - "#438", /* 438 = extattr_list_file */ - "#439", /* 439 = extattr_list_link */ + "extattr_list_fd", /* 437 = extattr_list_fd */ + "extattr_list_file", /* 438 = extattr_list_file */ + "extattr_list_link", /* 439 = extattr_list_link */ "#440", /* 440 = kse_switchin */ "#441", /* 441 = ksem_timedwait */ "freebsd32_thr_suspend", /* 442 = freebsd32_thr_suspend */ ==== //depot/projects/multipass/sys/compat/freebsd32/freebsd32_sysent.c#5 (text+ko) ==== @@ -2,8 +2,8 @@ * System call switch table. * * DO NOT EDIT-- this file is automatically generated. - * $FreeBSD: src/sys/compat/freebsd32/freebsd32_sysent.c,v 1.101 2009/06/01 16:14:38 rwatson Exp $ - * created from FreeBSD: head/sys/compat/freebsd32/syscalls.master 191673 2009-04-29 21:14:15Z jamie + * $FreeBSD: src/sys/compat/freebsd32/freebsd32_sysent.c,v 1.102 2009/06/10 13:48:43 kib Exp $ + * created from FreeBSD: head/sys/compat/freebsd32/syscalls.master 193916 2009-06-10 13:48:13Z kib */ #include "opt_compat.h" @@ -450,9 +450,9 @@ { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0 }, /* 409 = __mac_get_pid */ { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0 }, /* 410 = __mac_get_link */ { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0 }, /* 411 = __mac_set_link */ - { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0 }, /* 412 = extattr_set_link */ - { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0 }, /* 413 = extattr_get_link */ - { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0 }, /* 414 = extattr_delete_link */ + { AS(extattr_set_link_args), (sy_call_t *)extattr_set_link, AUE_EXTATTR_SET_LINK, NULL, 0, 0, 0 }, /* 412 = extattr_set_link */ + { AS(extattr_get_link_args), (sy_call_t *)extattr_get_link, AUE_EXTATTR_GET_LINK, NULL, 0, 0, 0 }, /* 413 = extattr_get_link */ + { AS(extattr_delete_link_args), (sy_call_t *)extattr_delete_link, AUE_EXTATTR_DELETE_LINK, NULL, 0, 0, 0 }, /* 414 = extattr_delete_link */ { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0 }, /* 415 = __mac_execve */ { AS(freebsd32_sigaction_args), (sy_call_t *)freebsd32_sigaction, AUE_SIGACTION, NULL, 0, 0, 0 }, /* 416 = freebsd32_sigaction */ { AS(freebsd32_sigreturn_args), (sy_call_t *)freebsd32_sigreturn, AUE_SIGRETURN, NULL, 0, 0, 0 }, /* 417 = freebsd32_sigreturn */ @@ -475,9 +475,9 @@ { AS(freebsd32_umtx_lock_args), (sy_call_t *)freebsd32_umtx_lock, AUE_NULL, NULL, 0, 0, 0 }, /* 434 = freebsd32_umtx_lock */ { AS(freebsd32_umtx_unlock_args), (sy_call_t *)freebsd32_umtx_unlock, AUE_NULL, NULL, 0, 0, 0 }, /* 435 = freebsd32_umtx_unlock */ { AS(jail_attach_args), (sy_call_t *)jail_attach, AUE_NULL, NULL, 0, 0, 0 }, /* 436 = jail_attach */ - { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0 }, /* 437 = extattr_list_fd */ - { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0 }, /* 438 = extattr_list_file */ - { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0 }, /* 439 = extattr_list_link */ + { AS(extattr_list_fd_args), (sy_call_t *)extattr_list_fd, AUE_EXTATTR_LIST_FD, NULL, 0, 0, 0 }, /* 437 = extattr_list_fd */ + { AS(extattr_list_file_args), (sy_call_t *)extattr_list_file, AUE_EXTATTR_LIST_FILE, NULL, 0, 0, 0 }, /* 438 = extattr_list_file */ + { AS(extattr_list_link_args), (sy_call_t *)extattr_list_link, AUE_EXTATTR_LIST_LINK, NULL, 0, 0, 0 }, /* 439 = extattr_list_link */ { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0 }, /* 440 = kse_switchin */ { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0 }, /* 441 = ksem_timedwait */ { AS(freebsd32_thr_suspend_args), (sy_call_t *)freebsd32_thr_suspend, AUE_NULL, NULL, 0, 0, 0 }, /* 442 = freebsd32_thr_suspend */ ==== //depot/projects/multipass/sys/compat/freebsd32/syscalls.master#4 (text+ko) ==== @@ -1,4 +1,4 @@ - $FreeBSD: src/sys/compat/freebsd32/syscalls.master,v 1.115 2009/04/29 21:14:15 jamie Exp $ + $FreeBSD: src/sys/compat/freebsd32/syscalls.master,v 1.116 2009/06/10 13:48:13 kib Exp $ ; from: @(#)syscalls.master 8.2 (Berkeley) 1/13/94 ; from: src/sys/kern/syscalls.master 1.107 ; @@ -708,9 +708,17 @@ 409 AUE_NULL UNIMPL __mac_get_pid 410 AUE_NULL UNIMPL __mac_get_link 411 AUE_NULL UNIMPL __mac_set_link -412 AUE_EXTATTR_SET_LINK UNIMPL extattr_set_link -413 AUE_EXTATTR_GET_LINK UNIMPL extattr_get_link -414 AUE_EXTATTR_DELETE_LINK UNIMPL extattr_delete_link +412 AUE_EXTATTR_SET_LINK NOPROTO { int extattr_set_link( \ + const char *path, int attrnamespace, \ + const char *attrname, void *data, \ + size_t nbytes); } +413 AUE_EXTATTR_GET_LINK NOPROTO { ssize_t extattr_get_link( \ + const char *path, int attrnamespace, \ + const char *attrname, void *data, \ + size_t nbytes); } +414 AUE_EXTATTR_DELETE_LINK NOPROTO { int extattr_delete_link( \ + const char *path, int attrnamespace, \ + const char *attrname); } 415 AUE_NULL UNIMPL __mac_execve 416 AUE_SIGACTION STD { int freebsd32_sigaction(int sig, \ struct sigaction32 *act, \ @@ -741,9 +749,15 @@ 434 AUE_NULL STD { int freebsd32_umtx_lock(struct umtx *umtx); } 435 AUE_NULL STD { int freebsd32_umtx_unlock(struct umtx *umtx); } 436 AUE_NULL NOPROTO { int jail_attach(int jid); } -437 AUE_EXTATTR_LIST_FD UNIMPL extattr_list_fd -438 AUE_EXTATTR_LIST_FILE UNIMPL extattr_list_file -439 AUE_EXTATTR_LIST_LINK UNIMPL extattr_list_link +437 AUE_EXTATTR_LIST_FD NOPROTO { ssize_t extattr_list_fd(int fd, \ + int attrnamespace, void *data, \ + size_t nbytes); } +438 AUE_EXTATTR_LIST_FILE NOPROTO { ssize_t extattr_list_file( \ + const char *path, int attrnamespace, \ + void *data, size_t nbytes); } +439 AUE_EXTATTR_LIST_LINK NOPROTO { ssize_t extattr_list_link( \ + const char *path, int attrnamespace, \ + void *data, size_t nbytes); } 440 AUE_NULL UNIMPL kse_switchin 441 AUE_NULL UNIMPL ksem_timedwait 442 AUE_NULL STD { int freebsd32_thr_suspend( \ ==== //depot/projects/multipass/sys/compat/linprocfs/linprocfs.c#3 (text+ko) ==== @@ -39,11 +39,10 @@ * @(#)procfs_status.c 8.4 (Berkeley) 6/15/94 */ -#include "opt_route.h" #include "opt_compat.h" #include -__FBSDID("$FreeBSD: src/sys/compat/linprocfs/linprocfs.c,v 1.137 2009/03/26 17:14:22 ambrisko Exp $"); +__FBSDID("$FreeBSD: src/sys/compat/linprocfs/linprocfs.c,v 1.138 2009/06/08 19:57:35 bz Exp $"); #include #include ==== //depot/projects/multipass/sys/compat/linux/linux_ioctl.c#5 (text+ko) ==== @@ -26,11 +26,10 @@ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -#include "opt_route.h" #include "opt_compat.h" #include -__FBSDID("$FreeBSD: src/sys/compat/linux/linux_ioctl.c,v 1.149 2009/05/27 15:23:12 avg Exp $"); +__FBSDID("$FreeBSD: src/sys/compat/linux/linux_ioctl.c,v 1.150 2009/06/08 19:57:35 bz Exp $"); #include #include ==== //depot/projects/multipass/sys/compat/svr4/svr4_sockio.c#3 (text+ko) ==== @@ -27,9 +27,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/compat/svr4/svr4_sockio.c,v 1.23 2009/02/27 14:12:05 bz Exp $"); - -#include "opt_route.h" +__FBSDID("$FreeBSD: src/sys/compat/svr4/svr4_sockio.c,v 1.24 2009/06/08 19:57:35 bz Exp $"); #include #include ==== //depot/projects/multipass/sys/conf/NOTES#5 (text+ko) ==== @@ -1,4 +1,4 @@ -# $FreeBSD: src/sys/conf/NOTES,v 1.1544 2009/06/08 04:39:48 svn Exp $ +# $FreeBSD: src/sys/conf/NOTES,v 1.1545 2009/06/10 02:07:58 yongari Exp $ # # NOTES -- Lines that can be cut/pasted into kernel and hints configs. # @@ -1754,6 +1754,7 @@ # L2 PCI-Express FastEthernet controllers. # age: Support for gigabit ethernet adapters based on the Attansic/Atheros # L1 PCI express gigabit ethernet controllers. +# alc: Support for Atheros AR8131/AR8132 PCIe ethernet controllers. # ale: Support for Atheros AR8121/AR8113/AR8114 PCIe ethernet controllers. # bce: Broadcom NetXtreme II (BCM5706/BCM5708) PCI/PCIe Gigabit Ethernet >>> TRUNCATED FOR MAIL (1000 lines) <<< From owner-p4-projects@FreeBSD.ORG Wed Jun 10 15:27:38 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id B57121065675; Wed, 10 Jun 2009 15:27:37 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 699F5106568A for ; Wed, 10 Jun 2009 15:27:37 +0000 (UTC) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 555608FC08 for ; Wed, 10 Jun 2009 15:27:37 +0000 (UTC) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n5AFRbwl087489 for ; Wed, 10 Jun 2009 15:27:37 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n5AFRb7H087487 for perforce@freebsd.org; Wed, 10 Jun 2009 15:27:37 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Date: Wed, 10 Jun 2009 15:27:37 GMT Message-Id: <200906101527.n5AFRb7H087487@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to bb+lists.freebsd.perforce@cyrus.watson.org using -f From: Robert Watson To: Perforce Change Reviews Cc: Subject: PERFORCE change 164008 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 10 Jun 2009 15:27:39 -0000 http://perforce.freebsd.org/chv.cgi?CH=164008 Change 164008 by rwatson@rwatson_freebsd_capabilities on 2009/06/10 15:27:00 Pass in libz properly. Don't use original file descriptor numbers after doing lch_installfds. Affected files ... .. //depot/projects/trustedbsd/capabilities/src/lib/libcapability/libcapability_host.c#4 edit Differences ... ==== //depot/projects/trustedbsd/capabilities/src/lib/libcapability/libcapability_host.c#4 (text+ko) ==== @@ -30,7 +30,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $P4: //depot/projects/trustedbsd/capabilities/src/lib/libcapability/libcapability_host.c#3 $ + * $P4: //depot/projects/trustedbsd/capabilities/src/lib/libcapability/libcapability_host.c#4 $ */ #include @@ -110,7 +110,7 @@ if (fds[i] > highestfd) highestfd = fds[i]; } - highestfd++; + highestfd++; /* Don't tread on the highest */ /* * First, move all our descriptors up the range. @@ -156,7 +156,7 @@ return; if (lc_limitfd(fd_ldso, LIBCAPABILITY_CAPMASK_LDSO) < 0) return; - if (lc_limitfd(fd_ldso, LIBCAPABILITY_CAPMASK_LIBC) < 0) + if (lc_limitfd(fd_libc, LIBCAPABILITY_CAPMASK_LIBC) < 0) return; fd_array[0] = fd_devnull; @@ -166,15 +166,16 @@ fd_array[4] = fd_sock; fd_array[5] = fd_ldso; fd_array[6] = fd_libc; + fd_array[7] = fd_libz; - if (lch_installfds(7, fd_array) < 0) + if (lch_installfds(8, fd_array) < 0) return; /* * Pass library list into rtld-elf-cap. */ - if (asprintf(&env_caplibindex, "%d:%s,%d:%s", fd_libc, LIBC_SO, - fd_libz, LIBZ_SO) == -1) + if (asprintf(&env_caplibindex, "%d:%s,%d:%s", 6, LIBC_SO, 7, + LIBZ_SO) == -1) return; if (setenv("LD_CAPLIBINDEX", env_caplibindex, 1) == -1) return; @@ -185,7 +186,7 @@ * assumptions hold. */ if (asprintf(&env_libcapability_agent_api, "%s:%d", - LIBCAPABILITY_AGENT_API_SOCK, fd_sock) == -1) + LIBCAPABILITY_AGENT_API_SOCK, 4) == -1) return; if (setenv(LIBCAPABILITY_AGENT_API_ENV, env_libcapability_agent_api, 1) == -1) @@ -195,7 +196,7 @@ if (cap_enter() < 0) return; - (void)fexecve(fd_ldso, ldso_argv, environ); + (void)fexecve(5, ldso_argv, environ); } int From owner-p4-projects@FreeBSD.ORG Wed Jun 10 15:28:39 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id EDCE41065672; Wed, 10 Jun 2009 15:28:38 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id AC053106564A for ; Wed, 10 Jun 2009 15:28:38 +0000 (UTC) (envelope-from pgj@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 7FDC88FC16 for ; Wed, 10 Jun 2009 15:28:38 +0000 (UTC) (envelope-from pgj@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n5AFScIF087551 for ; Wed, 10 Jun 2009 15:28:38 GMT (envelope-from pgj@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n5AFScdQ087549 for perforce@freebsd.org; Wed, 10 Jun 2009 15:28:38 GMT (envelope-from pgj@FreeBSD.org) Date: Wed, 10 Jun 2009 15:28:38 GMT Message-Id: <200906101528.n5AFScdQ087549@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to pgj@FreeBSD.org using -f From: Gabor Pali To: Perforce Change Reviews Cc: Subject: PERFORCE change 164009 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 10 Jun 2009 15:28:39 -0000 http://perforce.freebsd.org/chv.cgi?CH=164009 Change 164009 by pgj@petymeg-current on 2009/06/10 15:28:25 Remove need for xsocket Affected files ... .. //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat.c#18 edit .. //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat.h#16 edit .. //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat_internal.h#13 edit .. //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat_util.c#15 edit .. //depot/projects/soc2009/pgj_libstat/src/usr.bin/netstat/inet.c#10 edit Differences ... ==== //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat.c#18 (text+ko) ==== @@ -435,7 +435,6 @@ stp->st_flags = SOCKTYPE_TCP; /* XXX: Remove this. */ stp->XXX_inpcb = *inp; - stp->XXX_xsocket = *so; /* XXX: address is missing. */ stp->st_address[0] = '\0'; if (tp->t_state < 0 || tp->t_state >= TCP_NSTATES) ==== //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat.h#16 (text+ko) ==== @@ -85,7 +85,6 @@ const char *netstat_st_get_tcpstate(const struct socket_type *stp); /* XXX: Remove this hacks. */ struct inpcb XXX_netstat_st_get_inpcb(const struct socket_type *stp); -struct xsocket XXX_netstat_st_get_xsocket(const struct socket_type *stp); __END_DECLS #endif /* !_NETSTAT_H_ */ ==== //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat_internal.h#13 (text+ko) ==== @@ -65,7 +65,6 @@ /* XXX: Removables. */ struct inpcb XXX_inpcb; - struct xsocket XXX_xsocket; /* list of types */ LIST_ENTRY(socket_type) st_list; ==== //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat_util.c#15 (text+ko) ==== @@ -408,9 +408,3 @@ { return (stp->XXX_inpcb); } - -struct xsocket -XXX_netstat_st_get_xsocket(const struct socket_type *stp) -{ - return (stp->XXX_xsocket); -} ==== //depot/projects/soc2009/pgj_libstat/src/usr.bin/netstat/inet.c#10 (text+ko) ==== @@ -614,10 +614,8 @@ static int first = 1; char buf1[15]; struct inpcb inp; - struct xsocket so; inp = XXX_netstat_st_get_inpcb(stp); - so = XXX_netstat_st_get_xsocket(stp); if (first) { if (!Lflag) { printf("Active Internet connections"); @@ -651,7 +649,7 @@ } first = 0; } - if (Lflag && so.so_qlimit == 0) + if (Lflag && netstat_st_get_qlimit(stp) == 0) return; if (Aflag) printf("%8lx ", netstat_st_get_pcb(stp)); From owner-p4-projects@FreeBSD.ORG Wed Jun 10 15:30:41 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 18EA91065672; Wed, 10 Jun 2009 15:30:41 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id CC0FA106564A for ; Wed, 10 Jun 2009 15:30:40 +0000 (UTC) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id AF7238FC19 for ; Wed, 10 Jun 2009 15:30:40 +0000 (UTC) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n5AFUeOn087737 for ; Wed, 10 Jun 2009 15:30:40 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n5AFUeEO087735 for perforce@freebsd.org; Wed, 10 Jun 2009 15:30:40 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Date: Wed, 10 Jun 2009 15:30:40 GMT Message-Id: <200906101530.n5AFUeEO087735@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to bb+lists.freebsd.perforce@cyrus.watson.org using -f From: Robert Watson To: Perforce Change Reviews Cc: Subject: PERFORCE change 164010 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 10 Jun 2009 15:30:43 -0000 http://perforce.freebsd.org/chv.cgi?CH=164010 Change 164010 by rwatson@rwatson_freebsd_capabilities on 2009/06/10 15:29:51 Provide an argv[] argument fo lch_start() so that arguments can be passed to the agent. Properly set up capability for libz.zo. Affected files ... .. //depot/projects/trustedbsd/capabilities/src/lib/libcapability/libcapability.3#4 edit .. //depot/projects/trustedbsd/capabilities/src/lib/libcapability/libcapability.h#6 edit .. //depot/projects/trustedbsd/capabilities/src/lib/libcapability/libcapability_host.c#5 edit Differences ... ==== //depot/projects/trustedbsd/capabilities/src/lib/libcapability/libcapability.3#4 (text+ko) ==== @@ -47,7 +47,7 @@ .Ft int .Fn lc_limitfd "int fd" "cap_rights_t rights" .Ft int -.Fn lch_start "const char *agent" "struct lc_agent **lcap" +.Fn lch_start "const char *agent" "char *const argv[]" "struct lc_agent **lcap" .Ft void .Fn lch_stop "struct lc_agent *lcap" .Ft int ==== //depot/projects/trustedbsd/capabilities/src/lib/libcapability/libcapability.h#6 (text+ko) ==== @@ -30,7 +30,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $P4: //depot/projects/trustedbsd/capabilities/src/lib/libcapability/libcapability.h#5 $ + * $P4: //depot/projects/trustedbsd/capabilities/src/lib/libcapability/libcapability.h#6 $ */ #ifndef _LIBCAPABILITY_H_ @@ -47,7 +47,8 @@ /* * Interfaces to start and stop capability mode agents. */ -int lch_start(const char *agent, struct lc_agent **lcapp); +int lch_start(const char *agent, char *const argv[], + struct lc_agent **lcapp); void lch_stop(struct lc_agent *lcap); /* ==== //depot/projects/trustedbsd/capabilities/src/lib/libcapability/libcapability_host.c#5 (text+ko) ==== @@ -30,7 +30,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $P4: //depot/projects/trustedbsd/capabilities/src/lib/libcapability/libcapability_host.c#4 $ + * $P4: //depot/projects/trustedbsd/capabilities/src/lib/libcapability/libcapability_host.c#5 $ */ #include @@ -139,7 +139,8 @@ } static void -lch_agent(int fd_sock, int fd_agent, int fd_ldso, int fd_libc, int fd_libz) +lch_agent(int fd_sock, int fd_agent, int fd_ldso, int fd_libc, int fd_libz, + char *const argv[]) { char *env_caplibindex, *env_libcapability_agent_api; int fd_array[8], fd_devnull; @@ -158,6 +159,8 @@ return; if (lc_limitfd(fd_libc, LIBCAPABILITY_CAPMASK_LIBC) < 0) return; + if (lc_limitfd(fd_libz, LIBCAPABILITY_CAPMASK_LIBZ) < 0) + return; fd_array[0] = fd_devnull; fd_array[1] = fd_devnull; @@ -196,11 +199,11 @@ if (cap_enter() < 0) return; - (void)fexecve(5, ldso_argv, environ); + (void)fexecve(5, argv, environ); } int -lch_start(const char *agent, struct lc_agent **lcapp) +lch_start(const char *agent, char *const argv[], struct lc_agent **lcapp) { struct lc_agent *lcap; int fd_agent, fd_ldso, fd_libc, fd_libz, fd_procdesc, fd_sockpair[2]; @@ -249,7 +252,7 @@ } if (pid == 0) { lch_agent(fd_sockpair[1], fd_agent, fd_ldso, fd_libc, - fd_libz); + fd_libz, argv); exit(-1); } close(fd_libz); From owner-p4-projects@FreeBSD.ORG Wed Jun 10 16:09:21 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 2C6DB106567D; Wed, 10 Jun 2009 16:09:21 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id C6348106567C for ; Wed, 10 Jun 2009 16:09:20 +0000 (UTC) (envelope-from truncs@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id B33AC8FC14 for ; Wed, 10 Jun 2009 16:09:20 +0000 (UTC) (envelope-from truncs@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n5AG9K5i096109 for ; Wed, 10 Jun 2009 16:09:20 GMT (envelope-from truncs@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n5AG9KmD096107 for perforce@freebsd.org; Wed, 10 Jun 2009 16:09:20 GMT (envelope-from truncs@FreeBSD.org) Date: Wed, 10 Jun 2009 16:09:20 GMT Message-Id: <200906101609.n5AG9KmD096107@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to truncs@FreeBSD.org using -f From: Aditya Sarawgi To: Perforce Change Reviews Cc: Subject: PERFORCE change 164014 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 10 Jun 2009 16:09:21 -0000 http://perforce.freebsd.org/chv.cgi?CH=164014 Change 164014 by truncs@aditya on 2009/06/10 16:09:08 Migration to new on disk superblock completed. Affected files ... .. //depot/projects/soc2009/soc_ext2fs/src/sys/gnu/fs/ext2fs/ext2_readwrite.c#5 edit .. //depot/projects/soc2009/soc_ext2fs/src/sys/gnu/fs/ext2fs/ext2_vfsops.c#7 edit .. //depot/projects/soc2009/soc_ext2fs/src/sys/gnu/fs/ext2fs/fs.h#5 edit Differences ... ==== //depot/projects/soc2009/soc_ext2fs/src/sys/gnu/fs/ext2fs/ext2_readwrite.c#5 (text+ko) ==== @@ -242,7 +242,7 @@ */ flags |= B_CLRBUF; #if 0 - if (fs->s_frag_size > xfersize) + if (fs->e2fs_fsize > xfersize) flags |= B_CLRBUF; else flags &= ~B_CLRBUF; ==== //depot/projects/soc2009/soc_ext2fs/src/sys/gnu/fs/ext2fs/ext2_vfsops.c#7 (text+ko) ==== @@ -108,10 +108,10 @@ VFS_SET(ext2fs_vfsops, ext2fs, 0); -static int ext2_check_sb_compat(struct ext2_super_block *es, struct cdev *dev, +static int ext2_check_sb_compat(struct ext2fs *es, struct cdev *dev, int ronly); static int compute_sb_data(struct vnode * devvp, - struct ext2_super_block * es, struct m_ext2fs * fs); + struct ext2fs * es, struct m_ext2fs * fs); static const char *ext2_opts[] = { "from", "export", "acls", "noexec", "noatime", "union", "suiddir", "multilabel", "nosymfollow", @@ -172,7 +172,7 @@ error = ext2_flushfiles(mp, flags, td); vfs_unbusy(mp); if (!error && fs->e2fs_wasvalid) { - fs->e2fs->s_state |= EXT2_VALID_FS; + fs->e2fs->e2fs_state |= EXT2_VALID_FS; ext2_sbupdate(ump, MNT_WAIT); } fs->e2fs_ronly = 1; @@ -214,11 +214,11 @@ if (error) return (error); - if ((fs->e2fs->s_state & EXT2_VALID_FS) == 0 || - (fs->e2fs->s_state & EXT2_ERROR_FS)) { + if ((fs->e2fs->e2fs_state & EXT2_VALID_FS) == 0 || + (fs->e2fs->e2fs_state & EXT2_ERROR_FS)) { if (mp->mnt_flag & MNT_FORCE) { printf( -"WARNING: %s was not properly "dismounted\n", fs->e2fs_fsmnt); +"WARNING: %s was not properly dismounted\n", fs->e2fs_fsmnt); } else { printf( "WARNING: R/W mount of %s denied. Filesystem is not clean - run fsck\n", @@ -226,7 +226,7 @@ return (EPERM); } } - fs->e2fs->s_state &= ~EXT2_VALID_FS; + fs->e2fs->e2fs_state &= ~EXT2_VALID_FS; ext2_sbupdate(ump, MNT_WAIT); fs->e2fs_ronly = 0; MNT_ILOCK(mp); @@ -307,7 +307,7 @@ ext2_check_descriptors(struct m_ext2fs *sb) { struct ext2_group_desc *gdp = NULL; - unsigned long block = sb->e2fs->s_first_data_block; + unsigned long block = sb->e2fs->e2fs_first_dblock; int desc_block = 0; int i; @@ -348,23 +348,23 @@ } static int -ext2_check_sb_compat(struct ext2_super_block *es, struct cdev *dev, int ronly) +ext2_check_sb_compat(struct ext2fs *es, struct cdev *dev, int ronly) { - if (es->s_magic != EXT2_SUPER_MAGIC) { + if (es->e2fs_magic != EXT2_SUPER_MAGIC) { printf("ext2fs: %s: wrong magic number %#x (expected %#x)\n", - devtoname(dev), es->s_magic, EXT2_SUPER_MAGIC); + devtoname(dev), es->e2fs_magic, EXT2_SUPER_MAGIC); return (1); } if (es->s_rev_level > EXT2_GOOD_OLD_REV) { - if (es->s_feature_incompat & ~EXT2_FEATURE_INCOMPAT_SUPP) { + if (es->e2fs_features_incompat & ~EXT2_FEATURE_INCOMPAT_SUPP) { printf( "WARNING: mount of %s denied due to unsupported optional features\n", devtoname(dev)); return (1); } if (!ronly && - (es->s_feature_ro_compat & ~EXT2_FEATURE_RO_COMPAT_SUPP)) { + (es->e2fs_features_rocompat & ~EXT2_FEATURE_RO_COMPAT_SUPP)) { printf("WARNING: R/W mount of %s denied due to " "unsupported optional features\n", devtoname(dev)); return (1); @@ -378,30 +378,30 @@ * data in the ext2_super_block structure read in. */ static int -compute_sb_data(struct vnode *devvp, struct ext2_super_block *es, +compute_sb_data(struct vnode *devvp, struct ext2fs *es, struct m_ext2fs *fs) { int db_count, error; int i, j; int logic_sb_block = 1; /* XXX for now */ - fs->e2fs_bsize = EXT2_MIN_BLOCK_SIZE << es->s_log_block_size; - fs->e2fs_bshift = EXT2_MIN_BLOCK_LOG_SIZE + es->s_log_block_size; - fs->e2fs_fsbtodb = es->s_log_block_size + 1; + fs->e2fs_bsize = EXT2_MIN_BLOCK_SIZE << es->e2fs_log_bsize; + fs->e2fs_bshift = EXT2_MIN_BLOCK_LOG_SIZE + es->e2fs_log_bsize; + fs->e2fs_fsbtodb = es->e2fs_log_bsize + 1; fs->e2fs_qbmask = fs->e2fs_bsize - 1; - fs->e2fs_blocksize_bits = es->s_log_block_size + 10; - fs->e2fs_fsize = EXT2_MIN_FRAG_SIZE << es->s_log_frag_size; + fs->e2fs_blocksize_bits = es->e2fs_log_bsize + 10; + fs->e2fs_fsize = EXT2_MIN_FRAG_SIZE << es->e2fs_log_fsize; if (fs->e2fs_fsize) fs->e2fs_fpb = fs->e2fs_bsize / fs->e2fs_fsize; - fs->e2fs_bpg = es->s_blocks_per_group; - fs->e2fs_fpg = es->s_frags_per_group; - fs->e2fs_ipg = es->s_inodes_per_group; - if (es->s_rev_level == EXT2_GOOD_OLD_REV) { + fs->e2fs_bpg = es->e2fs_bpg; + fs->e2fs_fpg = es->e2fs_fpg; + fs->e2fs_ipg = es->e2fs_ipg; + if (es->e2fs_rev == EXT2_GOOD_OLD_REV) { fs->e2fs_first_inode = EXT2_GOOD_OLD_FIRST_INO; fs->e2fs_isize = EXT2_GOOD_OLD_INODE_SIZE; } else { - fs->e2fs_first_inode = es->s_first_ino; - fs->e2fs_isize = es->s_inode_size; + fs->e2fs_first_inode = es->e2fs_first_ino; + fs->e2fs_isize = es->e2fs_inode_size; /* * Simple sanity check for superblock inode size value. @@ -418,7 +418,7 @@ fs->e2fs_itpg = fs->e2fs_ipg /fs->e2fs_ipb; fs->e2fs_descpb = fs->e2fs_bsize / sizeof (struct ext2_group_desc); /* s_resuid / s_resgid ? */ - fs->e2fs_gcount = (es->s_blocks_count - es->s_first_data_block + + fs->e2fs_gcount = (es->e2fs_bcount - es->e2fs_first_dblock + EXT2_BLOCKS_PER_GROUP(fs) - 1) / EXT2_BLOCKS_PER_GROUP(fs); db_count = (fs->e2fs_gcount + EXT2_DESC_PER_BLOCK(fs) - 1) / EXT2_DESC_PER_BLOCK(fs); @@ -464,7 +464,7 @@ fs->e2fs_lib = 0; fs->e2fs_lbb = 0; if (es->s_rev_level == EXT2_GOOD_OLD_REV || - (es->s_feature_ro_compat & EXT2_FEATURE_RO_COMPAT_LARGE_FILE) == 0) + (es->e2fs_features_rocompat & EXT2_FEATURE_RO_COMPAT_LARGE_FILE) == 0) fs->e2fs_maxfilesize = 0x7fffffff; else fs->e2fs_maxfilesize = 0x7fffffffffffffff; @@ -490,7 +490,7 @@ struct vnode *vp, *mvp, *devvp; struct inode *ip; struct buf *bp; - struct ext2_super_block *es; + struct ext2fs *es; struct m_ext2fs *fs; int error; @@ -511,13 +511,13 @@ */ if ((error = bread(devvp, SBLOCK, SBSIZE, NOCRED, &bp)) != 0) return (error); - es = (struct ext2_super_block *)bp->b_data; + es = (struct ext2fs *)bp->b_data; if (ext2_check_sb_compat(es, devvp->v_rdev, 0) != 0) { brelse(bp); return (EIO); /* XXX needs translation */ } fs = VFSTOEXT2(mp)->um_e2fs; - bcopy(bp->b_data, fs->e2fs, sizeof(struct ext2_super_block)); + bcopy(bp->b_data, fs->e2fs, sizeof(struct ext2fs)); if((error = compute_sb_data(devvp, es, fs)) != 0) { brelse(bp); @@ -621,13 +621,13 @@ ump = NULL; if ((error = bread(devvp, SBLOCK, SBSIZE, NOCRED, &bp)) != 0) goto out; - es = (struct ext2_super_block *)bp->b_data; + es = (struct ext2fs *)bp->b_data; if (ext2_check_sb_compat(es, dev, ronly) != 0) { error = EINVAL; /* XXX needs translation */ goto out; } - if ((es->s_state & EXT2_VALID_FS) == 0 || - (es->s_state & EXT2_ERROR_FS)) { + if ((es->e2fs_state & EXT2_VALID_FS) == 0 || + (es->e2fs_state & EXT2_ERROR_FS)) { if (ronly || (mp->mnt_flag & MNT_FORCE)) { printf( "WARNING: Filesystem was not properly dismounted\n"); @@ -648,9 +648,9 @@ */ ump->um_e2fs = malloc(sizeof(struct m_ext2fs), M_EXT2MNT, M_WAITOK); - ump->um_e2fs->e2fs = malloc(sizeof(struct ext2_super_block), + ump->um_e2fs->e2fs = malloc(sizeof(struct ext2fs), M_EXT2MNT, M_WAITOK); - bcopy(es, ump->um_e2fs->e2fs, (u_int)sizeof(struct ext2_super_block)); + bcopy(es, ump->um_e2fs->e2fs, (u_int)sizeof(struct ext2fs)); if ((error = compute_sb_data(devvp, ump->um_e2fs->e2fs, ump->um_e2fs))) goto out; @@ -667,10 +667,10 @@ * If the fs is not mounted read-only, make sure the super block is * always written back on a sync(). */ - fs->e2fs_wasvalid = fs->e2fs->s_state & EXT2_VALID_FS ? 1 : 0; + fs->e2fs_wasvalid = fs->e2fs->e2fs_state & EXT2_VALID_FS ? 1 : 0; if (ronly == 0) { fs->e2fs_fmod = 1; /* mark it modified */ - fs->e2fs->s_state &= ~EXT2_VALID_FS; /* set fs invalid */ + fs->e2fs->e2fs_state &= ~EXT2_VALID_FS; /* set fs invalid */ } mp->mnt_data = ump; mp->mnt_stat.f_fsid.val[0] = dev2udev(dev); @@ -690,7 +690,7 @@ * ufs_bmap w/o changse! */ ump->um_nindir = EXT2_ADDR_PER_BLOCK(fs); - ump->um_bptrtodb = fs->e2fs->s_log_block_size + 1; + ump->um_bptrtodb = fs->e2fs->e2fs_log_bsize + 1; ump->um_seqinc = EXT2_FRAGS_PER_BLOCK(fs); if (ronly == 0) ext2_sbupdate(ump, MNT_WAIT); @@ -737,7 +737,7 @@ ronly = fs->e2fs_ronly; if (ronly == 0) { if (fs->e2fs_wasvalid) - fs->e2fs->s_state |= EXT2_VALID_FS; + fs->e2fs->e2fs_state |= EXT2_VALID_FS; ext2_sbupdate(ump, MNT_WAIT); } @@ -791,7 +791,7 @@ { struct ext2mount *ump; struct m_ext2fs *fs; - struct ext2_super_block *es; + struct ext2fs *es; unsigned long overhead; int i, nsb; @@ -799,20 +799,20 @@ fs = ump->um_e2fs; es = fs->e2fs; - if (es->s_magic != EXT2_SUPER_MAGIC) + if (es->e2fs_magic != EXT2_SUPER_MAGIC) panic("ext2_statfs - magic number spoiled"); /* * Compute the overhead (FS structures) */ - if (es->s_feature_ro_compat & EXT2_FEATURE_RO_COMPAT_SPARSE_SUPER) { + if (es->e2fs_features_rocompat & EXT2_FEATURE_RO_COMPAT_SPARSE_SUPER) { nsb = 0; for (i = 0 ; i < fs->e2fs_gcount; i++) if (ext2_group_sparse(i)) nsb++; } else nsb = fs->e2fs_gcount; - overhead = es->s_first_data_block + + overhead = es->e2fs_first_dblock + /* Superblocks and block group descriptors: */ nsb * (1 + fs->e2fs_gdbcount) + /* Inode bitmap, block bitmap, and inode table: */ @@ -820,11 +820,11 @@ sbp->f_bsize = EXT2_FRAG_SIZE(fs); sbp->f_iosize = EXT2_BLOCK_SIZE(fs); - sbp->f_blocks = es->s_blocks_count - overhead; - sbp->f_bfree = es->s_free_blocks_count; - sbp->f_bavail = sbp->f_bfree - es->s_r_blocks_count; - sbp->f_files = es->s_inodes_count; - sbp->f_ffree = es->s_free_inodes_count; + sbp->f_blocks = es->e2fs_bcount - overhead; + sbp->f_bfree = es->e2fs_fbcount; + sbp->f_bavail = sbp->f_bfree - es->e2fs_rbcount; + sbp->f_files = es->e2fs_icount; + sbp->f_ffree = es->e2fs_ficount; return (0); } @@ -905,7 +905,7 @@ */ if (fs->e2fs_fmod != 0) { fs->e2fs_fmod = 0; - fs->e2fs->s_wtime = time_second; + fs->e2fs->e2fs_wtime = time_second; if ((error = ext2_sbupdate(ump, waitfor)) != 0) allerror = error; } @@ -1058,7 +1058,7 @@ ufhp = (struct ufid *)fhp; fs = VFSTOEXT2(mp)->um_e2fs; if (ufhp->ufid_ino < ROOTINO || - ufhp->ufid_ino > fs->e2fs_gcount * fs->e2fs->s_inodes_per_group) + ufhp->ufid_ino > fs->e2fs_gcount * fs->e2fs->e2fs_ipg) return (ESTALE); error = VFS_VGET(mp, ufhp->ufid_ino, LK_EXCLUSIVE, &nvp); @@ -1085,12 +1085,12 @@ ext2_sbupdate(struct ext2mount *mp, int waitfor) { struct m_ext2fs *fs = mp->um_e2fs; - struct ext2_super_block *es = fs->e2fs; + struct ext2fs *es = fs->e2fs; struct buf *bp; int error = 0; bp = getblk(mp->um_devvp, SBLOCK, SBSIZE, 0, 0, 0); - bcopy((caddr_t)es, bp->b_data, (u_int)sizeof(struct ext2_super_block)); + bcopy((caddr_t)es, bp->b_data, (u_int)sizeof(struct ext2fs)); if (waitfor == MNT_WAIT) error = bwrite(bp); else ==== //depot/projects/soc2009/soc_ext2fs/src/sys/gnu/fs/ext2fs/fs.h#5 (text+ko) ==== @@ -93,9 +93,9 @@ * Give cylinder group number for a file system block. * Give cylinder group block number for a file system block. */ -#define dtog(fs, d) (((d) - fs->e2fs->s_first_data_block) / \ +#define dtog(fs, d) (((d) - fs->e2fs->e2fs_first_dblock) / \ EXT2_BLOCKS_PER_GROUP(fs)) -#define dtogd(fs, d) (((d) - fs->e2fs->s_first_data_block) % \ +#define dtogd(fs, d) (((d) - fs->e2fs->e2fs_first_dblock) % \ EXT2_BLOCKS_PER_GROUP(fs)) /* From owner-p4-projects@FreeBSD.ORG Wed Jun 10 16:50:02 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id A65471065673; Wed, 10 Jun 2009 16:50:02 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 66E4A1065670 for ; Wed, 10 Jun 2009 16:50:02 +0000 (UTC) (envelope-from truncs@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 3A65D8FC17 for ; Wed, 10 Jun 2009 16:50:02 +0000 (UTC) (envelope-from truncs@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n5AGo2Kb009382 for ; Wed, 10 Jun 2009 16:50:02 GMT (envelope-from truncs@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n5AGo2fF009380 for perforce@freebsd.org; Wed, 10 Jun 2009 16:50:02 GMT (envelope-from truncs@FreeBSD.org) Date: Wed, 10 Jun 2009 16:50:02 GMT Message-Id: <200906101650.n5AGo2fF009380@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to truncs@FreeBSD.org using -f From: Aditya Sarawgi To: Perforce Change Reviews Cc: Subject: PERFORCE change 164017 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 10 Jun 2009 16:50:03 -0000 http://perforce.freebsd.org/chv.cgi?CH=164017 Change 164017 by truncs@aditya on 2009/06/10 16:49:50 Fixed typos and other migration issues. Affected files ... .. //depot/projects/soc2009/soc_ext2fs/src/sys/gnu/fs/ext2fs/ext2_alloc.c#6 edit .. //depot/projects/soc2009/soc_ext2fs/src/sys/gnu/fs/ext2fs/ext2_fs.h#10 edit .. //depot/projects/soc2009/soc_ext2fs/src/sys/gnu/fs/ext2fs/ext2_vfsops.c#8 edit Differences ... ==== //depot/projects/soc2009/soc_ext2fs/src/sys/gnu/fs/ext2fs/ext2_alloc.c#6 (text+ko) ==== @@ -368,7 +368,7 @@ *vpp = NULL; pip = VTOI(pvp); fs = pip->i_e2fs; - if (fs->e2fs->s_free_inodes_count == 0) + if (fs->e2fs->e2fs_ficount == 0) goto noinodes; /* call the Linux routine - it returns the inode number only */ ==== //depot/projects/soc2009/soc_ext2fs/src/sys/gnu/fs/ext2fs/ext2_fs.h#10 (text+ko) ==== @@ -526,7 +526,7 @@ #define EXT2_HAS_RO_COMPAT_FEATURE(sb,mask) \ ( EXT2_SB(sb)->e2fs->e2fs_features_rocompat & cpu_to_le32(mask) ) #define EXT2_HAS_INCOMPAT_FEATURE(sb,mask) \ - ( EXT2_SB(sb)->e2fs->e2fs_feature_incompat & cpu_to_le32(mask) ) + ( EXT2_SB(sb)->e2fs->e2fs_features_incompat & cpu_to_le32(mask) ) #define EXT2_FEATURE_COMPAT_DIR_PREALLOC 0x0001 ==== //depot/projects/soc2009/soc_ext2fs/src/sys/gnu/fs/ext2fs/ext2_vfsops.c#8 (text+ko) ==== @@ -356,7 +356,7 @@ devtoname(dev), es->e2fs_magic, EXT2_SUPER_MAGIC); return (1); } - if (es->s_rev_level > EXT2_GOOD_OLD_REV) { + if (es->e2fs_rev > EXT2_GOOD_OLD_REV) { if (es->e2fs_features_incompat & ~EXT2_FEATURE_INCOMPAT_SUPP) { printf( "WARNING: mount of %s denied due to unsupported optional features\n", @@ -463,7 +463,7 @@ } fs->e2fs_lib = 0; fs->e2fs_lbb = 0; - if (es->s_rev_level == EXT2_GOOD_OLD_REV || + if (es->e2fs_rev == EXT2_GOOD_OLD_REV || (es->e2fs_features_rocompat & EXT2_FEATURE_RO_COMPAT_LARGE_FILE) == 0) fs->e2fs_maxfilesize = 0x7fffffff; else @@ -580,7 +580,7 @@ struct ext2mount *ump; struct buf *bp; struct m_ext2fs *fs; - struct ext2_super_block *es; + struct ext2fs *es; struct cdev *dev = devvp->v_rdev; struct g_consumer *cp; struct bufobj *bo; From owner-p4-projects@FreeBSD.ORG Wed Jun 10 17:09:22 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 45126106579F; Wed, 10 Jun 2009 17:09:22 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id DD6A71065784 for ; Wed, 10 Jun 2009 17:09:21 +0000 (UTC) (envelope-from pgj@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id C709A8FC1F for ; Wed, 10 Jun 2009 17:09:21 +0000 (UTC) (envelope-from pgj@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n5AH9LhW011748 for ; Wed, 10 Jun 2009 17:09:21 GMT (envelope-from pgj@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n5AH9Lma011746 for perforce@freebsd.org; Wed, 10 Jun 2009 17:09:21 GMT (envelope-from pgj@FreeBSD.org) Date: Wed, 10 Jun 2009 17:09:21 GMT Message-Id: <200906101709.n5AH9Lma011746@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to pgj@FreeBSD.org using -f From: Gabor Pali To: Perforce Change Reviews Cc: Subject: PERFORCE change 164018 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 10 Jun 2009 17:09:23 -0000 http://perforce.freebsd.org/chv.cgi?CH=164018 Change 164018 by pgj@petymeg-current on 2009/06/10 17:09:21 - Move sotoxsocket(), sbtoxsockbuf() from netstat to libnetstat - Remove protopr() from netstat finally Affected files ... .. //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat.c#19 edit .. //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat_internal.h#14 edit .. //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat_util.c#16 edit .. //depot/projects/soc2009/pgj_libstat/src/usr.bin/netstat/extern.h#3 edit .. //depot/projects/soc2009/pgj_libstat/src/usr.bin/netstat/inet.c#11 edit .. //depot/projects/soc2009/pgj_libstat/src/usr.bin/netstat/main.c#6 edit Differences ... ==== //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat.c#19 (text+ko) ==== @@ -249,7 +249,10 @@ } } KREAD(unp->unp_socket, &so, sizeof(so)); - sotoxsocket(&so, &xu.xu_socket); + if (sotoxsocket(kvm, &so, &xu.xu_socket) != 0) { + list->stl_error = NETSTAT_ERROR_UNDEFINED; + return (-1); + } stp = _netstat_st_allocate(list, PF_LOCAL, type, socktype[type]); extract_xunpcb_data(&xu, stp); ==== //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat_internal.h#14 (text+ko) ==== @@ -96,5 +96,5 @@ const char *name); void _netstat_st_reset_stats(struct socket_type *list); -void sotoxsocket(struct socket *so, struct xsocket *xso); +int sotoxsocket(kvm_t * kvm, struct socket *so, struct xsocket *xso); #endif /* !_NETSTAT_INTERNAL_H_ */ ==== //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat_util.c#16 (text+ko) ==== @@ -2,6 +2,8 @@ #include #include #include +#include +#include #include #include #include @@ -42,6 +44,56 @@ return (0); } +/* + * Copied directly from uip_socket2.c. We leave out some fields that are in + * nested structures that aren't used to avoid extra work. + */ +static void +sbtoxsockbuf(struct sockbuf *sb, struct xsockbuf *xsb) +{ + xsb->sb_cc = sb->sb_cc; + xsb->sb_hiwat = sb->sb_hiwat; + xsb->sb_mbcnt = sb->sb_mbcnt; + xsb->sb_mcnt = sb->sb_mcnt; + xsb->sb_ccnt = sb->sb_ccnt; + xsb->sb_mbmax = sb->sb_mbmax; + xsb->sb_lowat = sb->sb_lowat; + xsb->sb_flags = sb->sb_flags; + xsb->sb_timeo = sb->sb_timeo; +} + +int +sotoxsocket(kvm_t *kvm, struct socket *so, struct xsocket *xso) +{ + struct protosw proto; + struct domain domain; + + bzero(xso, sizeof *xso); + xso->xso_len = sizeof *xso; + xso->xso_so = so; + xso->so_type = so->so_type; + xso->so_options = so->so_options; + xso->so_linger = so->so_linger; + xso->so_state = so->so_state; + xso->so_pcb = so->so_pcb; + if (kread(kvm, (uintptr_t)so->so_proto, &proto, sizeof(proto)) != 0) + return (-1); + xso->xso_protocol = proto.pr_protocol; + if (kread(kvm, (uintptr_t)proto.pr_domain, &domain, + sizeof(domain)) != 0) + return (-1); + xso->xso_family = domain.dom_family; + xso->so_qlen = so->so_qlen; + xso->so_incqlen = so->so_incqlen; + xso->so_qlimit = so->so_qlimit; + xso->so_timeo = so->so_timeo; + xso->so_error = so->so_error; + xso->so_oobmark = so->so_oobmark; + sbtoxsockbuf(&so->so_snd, &xso->so_snd); + sbtoxsockbuf(&so->so_rcv, &xso->so_rcv); + return (0); +} + const char * netstat_strerror(int error) { ==== //depot/projects/soc2009/pgj_libstat/src/usr.bin/netstat/extern.h#3 (text+ko) ==== @@ -68,7 +68,6 @@ const char *pluralies(uintmax_t); int sotoxsocket(struct socket *, struct xsocket *); -void protopr(u_long, const char *, int, int); void inetpr(void *, int); void tcp_stats(u_long, const char *, int, int); void udp_stats(u_long, const char *, int, int); ==== //depot/projects/soc2009/pgj_libstat/src/usr.bin/netstat/inet.c#11 (text+ko) ==== @@ -97,470 +97,13 @@ #endif /* INET6 */ static void inetppr(struct socket_type *); -static int -pcblist_sysctl(int proto, char **bufp, int istcp) -{ - const char *mibvar; - char *buf; - size_t len; - - switch (proto) { - case IPPROTO_TCP: - mibvar = "net.inet.tcp.pcblist"; - break; - case IPPROTO_UDP: - mibvar = "net.inet.udp.pcblist"; - break; - case IPPROTO_DIVERT: - mibvar = "net.inet.divert.pcblist"; - break; - default: - mibvar = "net.inet.raw.pcblist"; - break; - } - - len = 0; - if (sysctlbyname(mibvar, 0, &len, 0, 0) < 0) { - if (errno != ENOENT) - warn("sysctl: %s", mibvar); - return (0); - } - if ((buf = malloc(len)) == 0) { - warnx("malloc %lu bytes", (u_long)len); - return (0); - } - if (sysctlbyname(mibvar, buf, &len, 0, 0) < 0) { - warn("sysctl: %s", mibvar); - free(buf); - return (0); - } - *bufp = buf; - return (1); -} - /* - * Copied directly from uipc_socket2.c. We leave out some fields that are in - * nested structures that aren't used to avoid extra work. - */ -static void -sbtoxsockbuf(struct sockbuf *sb, struct xsockbuf *xsb) -{ - xsb->sb_cc = sb->sb_cc; - xsb->sb_hiwat = sb->sb_hiwat; - xsb->sb_mbcnt = sb->sb_mbcnt; - xsb->sb_mcnt = sb->sb_mcnt; - xsb->sb_ccnt = sb->sb_ccnt; - xsb->sb_mbmax = sb->sb_mbmax; - xsb->sb_lowat = sb->sb_lowat; - xsb->sb_flags = sb->sb_flags; - xsb->sb_timeo = sb->sb_timeo; -} - -int -sotoxsocket(struct socket *so, struct xsocket *xso) -{ - struct protosw proto; - struct domain domain; - - bzero(xso, sizeof *xso); - xso->xso_len = sizeof *xso; - xso->xso_so = so; - xso->so_type = so->so_type; - xso->so_options = so->so_options; - xso->so_linger = so->so_linger; - xso->so_state = so->so_state; - xso->so_pcb = so->so_pcb; - if (kread((uintptr_t)so->so_proto, &proto, sizeof(proto)) != 0) - return (-1); - xso->xso_protocol = proto.pr_protocol; - if (kread((uintptr_t)proto.pr_domain, &domain, sizeof(domain)) != 0) - return (-1); - xso->xso_family = domain.dom_family; - xso->so_qlen = so->so_qlen; - xso->so_incqlen = so->so_incqlen; - xso->so_qlimit = so->so_qlimit; - xso->so_timeo = so->so_timeo; - xso->so_error = so->so_error; - xso->so_oobmark = so->so_oobmark; - sbtoxsockbuf(&so->so_snd, &xso->so_snd); - sbtoxsockbuf(&so->so_rcv, &xso->so_rcv); - return (0); -} - -static int -pcblist_kvm(u_long off, char **bufp, int istcp) -{ - struct inpcbinfo pcbinfo; - struct inpcbhead listhead; - struct inpcb *inp; - struct xinpcb xi; - struct xinpgen xig; - struct xtcpcb xt; - struct socket so; - struct xsocket *xso; - char *buf, *p; - size_t len; - - if (off == 0) - return (0); - kread(off, &pcbinfo, sizeof(pcbinfo)); - if (istcp) - len = 2 * sizeof(xig) + - (pcbinfo.ipi_count + pcbinfo.ipi_count / 8) * - sizeof(struct xtcpcb); - else - len = 2 * sizeof(xig) + - (pcbinfo.ipi_count + pcbinfo.ipi_count / 8) * - sizeof(struct xinpcb); - if ((buf = malloc(len)) == 0) { - warnx("malloc %lu bytes", (u_long)len); - return (0); - } - p = buf; - -#define COPYOUT(obj, size) do { \ - if (len < (size)) { \ - warnx("buffer size exceeded"); \ - goto fail; \ - } \ - bcopy((obj), p, (size)); \ - len -= (size); \ - p += (size); \ -} while (0) - -#define KREAD(off, buf, len) do { \ - if (kread((uintptr_t)(off), (buf), (len)) != 0) \ - goto fail; \ -} while (0) - - /* Write out header. */ - xig.xig_len = sizeof xig; - xig.xig_count = pcbinfo.ipi_count; - xig.xig_gen = pcbinfo.ipi_gencnt; - xig.xig_sogen = 0; - COPYOUT(&xig, sizeof xig); - - /* Walk the PCB list. */ - xt.xt_len = sizeof xt; - xi.xi_len = sizeof xi; - if (istcp) - xso = &xt.xt_socket; - else - xso = &xi.xi_socket; - KREAD(pcbinfo.ipi_listhead, &listhead, sizeof(listhead)); - LIST_FOREACH(inp, &listhead, inp_list) { - if (istcp) { - KREAD(inp, &xt.xt_inp, sizeof(*inp)); - inp = &xt.xt_inp; - } else { - KREAD(inp, &xi.xi_inp, sizeof(*inp)); - inp = &xi.xi_inp; - } - - if (inp->inp_gencnt > pcbinfo.ipi_gencnt) - continue; - - if (istcp) { - if (inp->inp_ppcb == NULL) - bzero(&xt.xt_tp, sizeof xt.xt_tp); - else if (inp->inp_flags & INP_TIMEWAIT) { - bzero(&xt.xt_tp, sizeof xt.xt_tp); - xt.xt_tp.t_state = TCPS_TIME_WAIT; - } else - KREAD(inp->inp_ppcb, &xt.xt_tp, - sizeof xt.xt_tp); - } - if (inp->inp_socket) { - KREAD(inp->inp_socket, &so, sizeof(so)); - if (sotoxsocket(&so, xso) != 0) - goto fail; - } else { - bzero(xso, sizeof(*xso)); - if (istcp) - xso->xso_protocol = IPPROTO_TCP; - } - if (istcp) - COPYOUT(&xt, sizeof xt); - else - COPYOUT(&xi, sizeof xi); - } - - /* Reread the pcbinfo and write out the footer. */ - kread(off, &pcbinfo, sizeof(pcbinfo)); - xig.xig_count = pcbinfo.ipi_count; - xig.xig_gen = pcbinfo.ipi_gencnt; - COPYOUT(&xig, sizeof xig); - - *bufp = buf; - return (1); - -fail: - free(buf); - return (0); -#undef COPYOUT -#undef KREAD -} - -/* * Print a summary of connections related to an Internet * protocol. For TCP, also give state of connection. * Listening processes (aflag) are suppressed unless the * -a (all) flag is specified. */ void -protopr(u_long off, const char *name, int af1, int proto) -{ - int istcp; - static int first = 1; - char *buf; - const char *vchar; - struct tcpcb *tp = NULL; - struct inpcb *inp; - struct xinpgen *xig, *oxig; - struct xsocket *so; - - istcp = 0; - switch (proto) { - case IPPROTO_TCP: -#ifdef INET6 - if (tcp_done != 0) - return; - else - tcp_done = 1; -#endif - istcp = 1; - break; - case IPPROTO_UDP: -#ifdef INET6 - if (udp_done != 0) - return; - else - udp_done = 1; -#endif - break; - } - if (live) { - if (!pcblist_sysctl(proto, &buf, istcp)) - return; - } else { - if (!pcblist_kvm(off, &buf, istcp)) - return; - } - - oxig = xig = (struct xinpgen *)buf; - for (xig = (struct xinpgen *)((char *)xig + xig->xig_len); - xig->xig_len > sizeof(struct xinpgen); - xig = (struct xinpgen *)((char *)xig + xig->xig_len)) { - if (istcp) { - tp = &((struct xtcpcb *)xig)->xt_tp; - inp = &((struct xtcpcb *)xig)->xt_inp; - so = &((struct xtcpcb *)xig)->xt_socket; - } else { - inp = &((struct xinpcb *)xig)->xi_inp; - so = &((struct xinpcb *)xig)->xi_socket; - } - - /* Ignore sockets for protocols other than the desired one. */ - if (so->xso_protocol != proto) - continue; - - /* Ignore PCBs which were freed during copyout. */ - if (inp->inp_gencnt > oxig->xig_gen) - continue; - - if ((af1 == AF_INET && (inp->inp_vflag & INP_IPV4) == 0) -#ifdef INET6 - || (af1 == AF_INET6 && (inp->inp_vflag & INP_IPV6) == 0) -#endif /* INET6 */ - || (af1 == AF_UNSPEC && ((inp->inp_vflag & INP_IPV4) == 0 -#ifdef INET6 - && (inp->inp_vflag & INP_IPV6) == 0 -#endif /* INET6 */ - )) - ) - continue; - if (!aflag && - ( - (istcp && tp->t_state == TCPS_LISTEN) - || (af1 == AF_INET && - inet_lnaof(inp->inp_laddr) == INADDR_ANY) -#ifdef INET6 - || (af1 == AF_INET6 && - IN6_IS_ADDR_UNSPECIFIED(&inp->in6p_laddr)) -#endif /* INET6 */ - || (af1 == AF_UNSPEC && - (((inp->inp_vflag & INP_IPV4) != 0 && - inet_lnaof(inp->inp_laddr) == INADDR_ANY) -#ifdef INET6 - || ((inp->inp_vflag & INP_IPV6) != 0 && - IN6_IS_ADDR_UNSPECIFIED(&inp->in6p_laddr)) -#endif - )) - )) - continue; - - if (first) { - if (!Lflag) { - printf("Active Internet connections"); - if (aflag) - printf(" (including servers)"); - } else - printf( - "Current listen queue sizes (qlen/incqlen/maxqlen)"); - putchar('\n'); - if (Aflag) - printf("%-8.8s ", "Tcpcb"); - if (Lflag) - printf("%-5.5s %-14.14s %-22.22s\n", - "Proto", "Listen", "Local Address"); - else { - printf((Aflag && !Wflag) ? - "%-5.5s %-6.6s %-6.6s %-18.18s %-18.18s" : - "%-5.5s %-6.6s %-6.6s %-22.22s %-22.22s", - "Proto", "Recv-Q", "Send-Q", - "Local Address", "Foreign Address"); - if (xflag) - printf("%-6.6s %-6.6s %-6.6s %-6.6s %-6.6s %-6.6s %-6.6s %-6.6s %-6.6s %-6.6s %-6.6s %-6.6s %s\n", - "R-MBUF", "S-MBUF", "R-CLUS", - "S-CLUS", "R-HIWA", "S-HIWA", - "R-LOWA", "S-LOWA", "R-BCNT", - "S-BCNT", "R-BMAX", "S-BMAX", - "(state)"); - else - printf("(state)\n"); - } - first = 0; - } - if (Lflag && so->so_qlimit == 0) - continue; - if (Aflag) { - if (istcp) - printf("%8lx ", (u_long)inp->inp_ppcb); - else - printf("%8lx ", (u_long)so->so_pcb); - } -#ifdef INET6 - if ((inp->inp_vflag & INP_IPV6) != 0) - vchar = ((inp->inp_vflag & INP_IPV4) != 0) ? - "46" : "6 "; - else -#endif - vchar = ((inp->inp_vflag & INP_IPV4) != 0) ? - "4 " : " "; - printf("%-3.3s%-2.2s ", name, vchar); - if (Lflag) { - char buf1[15]; - - snprintf(buf1, 15, "%d/%d/%d", so->so_qlen, - so->so_incqlen, so->so_qlimit); - printf("%-14.14s ", buf1); - } else { - printf("%6u %6u ", so->so_rcv.sb_cc, so->so_snd.sb_cc); - } - if (numeric_port) { - if (inp->inp_vflag & INP_IPV4) { - inetprint(&inp->inp_laddr, (int)inp->inp_lport, - name, 1); - if (!Lflag) - inetprint(&inp->inp_faddr, - (int)inp->inp_fport, name, 1); - } -#ifdef INET6 - else if (inp->inp_vflag & INP_IPV6) { - inet6print(&inp->in6p_laddr, - (int)inp->inp_lport, name, 1); - if (!Lflag) - inet6print(&inp->in6p_faddr, - (int)inp->inp_fport, name, 1); - } /* else nothing printed now */ -#endif /* INET6 */ - } else if (inp->inp_flags & INP_ANONPORT) { - if (inp->inp_vflag & INP_IPV4) { - inetprint(&inp->inp_laddr, (int)inp->inp_lport, - name, 1); - if (!Lflag) - inetprint(&inp->inp_faddr, - (int)inp->inp_fport, name, 0); - } -#ifdef INET6 - else if (inp->inp_vflag & INP_IPV6) { - inet6print(&inp->in6p_laddr, - (int)inp->inp_lport, name, 1); - if (!Lflag) - inet6print(&inp->in6p_faddr, - (int)inp->inp_fport, name, 0); - } /* else nothing printed now */ -#endif /* INET6 */ - } else { - if (inp->inp_vflag & INP_IPV4) { - inetprint(&inp->inp_laddr, (int)inp->inp_lport, - name, 0); - if (!Lflag) - inetprint(&inp->inp_faddr, - (int)inp->inp_fport, name, - inp->inp_lport != inp->inp_fport); - } -#ifdef INET6 - else if (inp->inp_vflag & INP_IPV6) { - inet6print(&inp->in6p_laddr, - (int)inp->inp_lport, name, 0); - if (!Lflag) - inet6print(&inp->in6p_faddr, - (int)inp->inp_fport, name, - inp->inp_lport != inp->inp_fport); - } /* else nothing printed now */ -#endif /* INET6 */ - } - if (xflag) { - if (Lflag) - printf("%21s %6u %6u %6u %6u %6u %6u %6u %6u %6u %6u %6u %6u ", - " ", - so->so_rcv.sb_mcnt, so->so_snd.sb_mcnt, - so->so_rcv.sb_ccnt, so->so_snd.sb_ccnt, - so->so_rcv.sb_hiwat, so->so_snd.sb_hiwat, - so->so_rcv.sb_lowat, so->so_snd.sb_lowat, - so->so_rcv.sb_mbcnt, so->so_snd.sb_mbcnt, - so->so_rcv.sb_mbmax, so->so_snd.sb_mbmax); - else - printf("%6u %6u %6u %6u %6u %6u %6u %6u %6u %6u %6u %6u ", - so->so_rcv.sb_mcnt, so->so_snd.sb_mcnt, - so->so_rcv.sb_ccnt, so->so_snd.sb_ccnt, - so->so_rcv.sb_hiwat, so->so_snd.sb_hiwat, - so->so_rcv.sb_lowat, so->so_snd.sb_lowat, - so->so_rcv.sb_mbcnt, so->so_snd.sb_mbcnt, - so->so_rcv.sb_mbmax, so->so_snd.sb_mbmax); - } - if (istcp && !Lflag) { - if (tp->t_state < 0 || tp->t_state >= TCP_NSTATES) - printf("%d", tp->t_state); - else { - printf("%s", tcpstates[tp->t_state]); -#if defined(TF_NEEDSYN) && defined(TF_NEEDFIN) - /* Show T/TCP `hidden state' */ - if (tp->t_flags & (TF_NEEDSYN|TF_NEEDFIN)) - putchar('*'); -#endif /* defined(TF_NEEDSYN) && defined(TF_NEEDFIN) */ - } - } - putchar('\n'); - } - if (xig != oxig && xig->xig_gen != oxig->xig_gen) { - if (oxig->xig_count > xig->xig_count) { - printf("Some %s sockets may have been deleted.\n", - name); - } else if (oxig->xig_count < xig->xig_count) { - printf("Some %s sockets may have been created.\n", - name); - } else { - printf( - "Some %s sockets may have been created or deleted.\n", - name); - } - } - free(buf); -} - -void inetpr(void *kvmd, int proto) { struct socket_type_list *stlp; ==== //depot/projects/soc2009/pgj_libstat/src/usr.bin/netstat/main.c#6 (text+ko) ==== @@ -192,21 +192,21 @@ int pr_usesysctl; /* non-zero if we use sysctl, not kvm */ int pr_protocol; } protox[] = { - { N_TCBINFO, N_TCPSTAT, 1, protopr, + { N_TCBINFO, N_TCPSTAT, 1, NULL, tcp_stats, NULL, "tcp", 1, IPPROTO_TCP }, - { N_UDBINFO, N_UDPSTAT, 1, protopr, + { N_UDBINFO, N_UDPSTAT, 1, NULL, udp_stats, NULL, "udp", 1, IPPROTO_UDP }, #ifdef SCTP { -1, N_SCTPSTAT, 1, sctp_protopr, sctp_stats, NULL, "sctp", 1, IPPROTO_SCTP }, #endif - { N_DIVCBINFO, -1, 1, protopr, + { N_DIVCBINFO, -1, 1, NULL, NULL, NULL, "divert", 1, IPPROTO_DIVERT }, - { N_RIPCBINFO, N_IPSTAT, 1, protopr, + { N_RIPCBINFO, N_IPSTAT, 1, NULL, ip_stats, NULL, "ip", 1, IPPROTO_RAW }, - { N_RIPCBINFO, N_ICMPSTAT, 1, protopr, + { N_RIPCBINFO, N_ICMPSTAT, 1, NULL, icmp_stats, NULL, "icmp", 1, IPPROTO_ICMP }, - { N_RIPCBINFO, N_IGMPSTAT, 1, protopr, + { N_RIPCBINFO, N_IGMPSTAT, 1, NULL, igmp_stats, NULL, "igmp", 1, IPPROTO_IGMP }, #ifdef IPSEC { -1, N_IPSECSTAT, 1, NULL, /* keep as compat */ @@ -218,7 +218,7 @@ { -1, N_IPCOMPSTAT, 1, NULL, ipcomp_stats, NULL, "ipcomp", 0, 0}, #endif - { N_RIPCBINFO, N_PIMSTAT, 1, protopr, + { N_RIPCBINFO, N_PIMSTAT, 1, NULL, pim_stats, NULL, "pim", 1, IPPROTO_PIM }, { -1, N_CARPSTAT, 1, NULL, carp_stats, NULL, "carp", 1, 0 }, @@ -230,13 +230,13 @@ #ifdef INET6 struct protox ip6protox[] = { - { N_TCBINFO, N_TCPSTAT, 1, protopr, + { N_TCBINFO, N_TCPSTAT, 1, NULL, tcp_stats, NULL, "tcp", 1, IPPROTO_TCP }, - { N_UDBINFO, N_UDPSTAT, 1, protopr, + { N_UDBINFO, N_UDPSTAT, 1, NULL, udp_stats, NULL, "udp", 1, IPPROTO_UDP }, - { N_RIPCBINFO, N_IP6STAT, 1, protopr, + { N_RIPCBINFO, N_IP6STAT, 1, NULL, ip6_stats, ip6_ifstats, "ip6", 1, IPPROTO_RAW }, - { N_RIPCBINFO, N_ICMP6STAT, 1, protopr, + { N_RIPCBINFO, N_ICMP6STAT, 1, NULL, icmp6_stats, icmp6_ifstats, "icmp6", 1, IPPROTO_ICMPV6 }, #ifdef IPSEC { -1, N_IPSEC6STAT, 1, NULL, @@ -635,11 +635,6 @@ } } else { pr = tp->pr_cblocks; - if (!pr) { - if (pflag) - printf("%s: no PCB routine\n", tp->pr_name); - return; - } if (tp->pr_usesysctl && live) off = 0; else if (tp->pr_index < 0) { @@ -651,13 +646,27 @@ } else off = nl[tp->pr_index].n_value; } - if (pr != NULL && (off || (live && tp->pr_usesysctl) || + if ((off || (live && tp->pr_usesysctl) || af != AF_UNSPEC)) { /* XXX: temp. hack */ - if (tp->pr_index == N_TCBINFO) - inetpr(kvmd, IPPROTO_TCP); - else - (*pr)(off, name, af, tp->pr_protocol); + switch (tp->pr_protocol) { + case IPPROTO_TCP: + case IPPROTO_UDP: + case IPPROTO_DIVERT: + case IPPROTO_RAW: + case IPPROTO_ICMP: + case IPPROTO_IGMP: + case IPPROTO_PIM: + case IPPROTO_ICMPV6: + inetpr(kvmd, tp->pr_protocol); + break; + default: + if (pr != NULL) + (*pr)(off, name, af, tp->pr_protocol); + else if (pflag) + printf("%s: no PCB routine\n", tp->pr_name); + break; + } } } From owner-p4-projects@FreeBSD.ORG Wed Jun 10 17:38:53 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id E84781065673; Wed, 10 Jun 2009 17:38:52 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id A79BC1065672 for ; Wed, 10 Jun 2009 17:38:52 +0000 (UTC) (envelope-from zec@fer.hr) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 956758FC13 for ; Wed, 10 Jun 2009 17:38:52 +0000 (UTC) (envelope-from zec@fer.hr) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n5AHcqj3017799 for ; Wed, 10 Jun 2009 17:38:52 GMT (envelope-from zec@fer.hr) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n5AHcpYP017797 for perforce@freebsd.org; Wed, 10 Jun 2009 17:38:51 GMT (envelope-from zec@fer.hr) Date: Wed, 10 Jun 2009 17:38:51 GMT Message-Id: <200906101738.n5AHcpYP017797@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to zec@fer.hr using -f From: Marko Zec To: Perforce Change Reviews Cc: Subject: PERFORCE change 164019 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 10 Jun 2009 17:38:54 -0000 http://perforce.freebsd.org/chv.cgi?CH=164019 Change 164019 by zec@zec_tpx32 on 2009/06/10 17:38:06 Detect calls from outbound path of the network stack when reentering the inbound path from netgraph, and in such cases queue netisrs, instead of direct dispatching them. Affected files ... .. //depot/projects/vimage-commit2/src/sys/netgraph/netgraph.h#26 edit .. //depot/projects/vimage-commit2/src/sys/netgraph/ng_base.c#34 edit .. //depot/projects/vimage-commit2/src/sys/netgraph/ng_eiface.c#24 edit .. //depot/projects/vimage-commit2/src/sys/netgraph/ng_ether.c#16 edit .. //depot/projects/vimage-commit2/src/sys/netgraph/ng_iface.c#22 edit .. //depot/projects/vimage-commit2/src/sys/netgraph/ng_ip_input.c#3 edit .. //depot/projects/vimage-commit2/src/sys/sys/proc.h#19 edit Differences ... ==== //depot/projects/vimage-commit2/src/sys/netgraph/netgraph.h#26 (text+ko) ==== @@ -1205,6 +1205,20 @@ #define NG_ID_HASH_SIZE 128 /* most systems wont need even this many */ #define NG_NAME_HASH_SIZE 128 /* most systems wont need even this many */ +/* + * Mark the current thread when called from the outbound path of the + * network stack, in order to enforce queuing on ng nodes calling into + * the inbound network stack path.. + */ +#define NG_OUTBOUND_THREAD_REF() \ + curthread->td_ng_outbound++; +#define NG_OUTBOUND_THREAD_UNREF() \ + do { \ + curthread->td_ng_outbound--; \ + KASSERT(curthread->td_ng_outbound >= 0, \ + ("%s: negative td_ng_outbound", __func__)); \ + } while (0); + /* Virtualization macros */ #define INIT_VNET_NETGRAPH(vnet) \ INIT_FROM_VNET(vnet, VNET_MOD_NETGRAPH, \ ==== //depot/projects/vimage-commit2/src/sys/netgraph/ng_base.c#34 (text+ko) ==== @@ -2219,9 +2219,8 @@ */ if ((flags & NG_QUEUE) || (hook && (hook->hk_flags & HK_QUEUE))) { queue = 1; - } else if (hook && (hook->hk_flags & HK_TO_INBOUND) /* && - (curthread->td_flags & TDF_NG_OUTBOUND) */) { -printf("ng queuing: td_flags = %X\n", curthread->td_flags); + } else if (hook && (hook->hk_flags & HK_TO_INBOUND) && + curthread->td_ng_outbound) { queue = 1; } else { queue = 0; ==== //depot/projects/vimage-commit2/src/sys/netgraph/ng_eiface.c#24 (text+ko) ==== @@ -95,7 +95,6 @@ static ng_rcvmsg_t ng_eiface_rcvmsg; static ng_shutdown_t ng_eiface_rmnode; static ng_newhook_t ng_eiface_newhook; -static ng_connect_t ng_eiface_connect; static ng_rcvdata_t ng_eiface_rcvdata; static ng_disconnect_t ng_eiface_disconnect; @@ -108,7 +107,6 @@ .rcvmsg = ng_eiface_rcvmsg, .shutdown = ng_eiface_rmnode, .newhook = ng_eiface_newhook, - .connect = ng_eiface_connect, .rcvdata = ng_eiface_rcvdata, .disconnect = ng_eiface_disconnect, .cmdlist = ng_eiface_cmdlist @@ -263,7 +261,9 @@ * Send packet; if hook is not connected, mbuf will get * freed. */ + NG_OUTBOUND_THREAD_REF(); NG_SEND_DATA_ONLY(error, priv->ether, m); + NG_OUTBOUND_THREAD_UNREF(); /* Update stats */ if (error == 0) @@ -416,6 +416,7 @@ return (EISCONN); priv->ether = hook; NG_HOOK_SET_PRIVATE(hook, &priv->ether); + NG_HOOK_SET_TO_INBOUND(hook); if_link_state_change(ifp, LINK_STATE_UP); @@ -423,19 +424,6 @@ } /* - * Mark a hook as leading to inbound path of the network stack, so - * that framework can queue calls to us that arrived from the outbound - * path. - */ -static int -ng_eiface_connect(hook_p hook) -{ - - NG_HOOK_SET_TO_INBOUND(hook); - return (0); -} - -/* * Receive a control message */ static int ==== //depot/projects/vimage-commit2/src/sys/netgraph/ng_ether.c#16 (text+ko) ==== @@ -263,7 +263,9 @@ m_freem(m); return; } + NG_OUTBOUND_THREAD_REF(); NG_SEND_DATA_ONLY(error, priv->orphan, m); + NG_OUTBOUND_THREAD_UNREF(); } /* @@ -282,7 +284,9 @@ return (0); /* Send it out "upper" hook */ + NG_OUTBOUND_THREAD_REF(); NG_SEND_DATA_ONLY(error, priv->upper, *mp); + NG_OUTBOUND_THREAD_UNREF(); return (error); } @@ -416,6 +420,7 @@ if (strcmp(name, NG_ETHER_HOOK_UPPER) == 0) { hookptr = &priv->upper; NG_HOOK_SET_RCVDATA(hook, ng_ether_rcv_upper); + NG_HOOK_SET_TO_INBOUND(hook); } else if (strcmp(name, NG_ETHER_HOOK_LOWER) == 0) { hookptr = &priv->lower; NG_HOOK_SET_RCVDATA(hook, ng_ether_rcv_lower); ==== //depot/projects/vimage-commit2/src/sys/netgraph/ng_iface.c#22 (text+ko) ==== @@ -482,9 +482,10 @@ /* Copy length before the mbuf gets invalidated. */ len = m->m_pkthdr.len; - /* Send packet. If hook is not connected, - mbuf will get freed. */ + /* Send packet. If hook is not connected, mbuf will get freed. */ + NG_OUTBOUND_THREAD_REF(); NG_SEND_DATA_ONLY(error, *get_hook_from_iffam(priv, iffam), m); + NG_OUTBOUND_THREAD_UNREF(); /* Update stats. */ if (error == 0) { @@ -610,6 +611,7 @@ return (EISCONN); *hookptr = hook; NG_HOOK_HI_STACK(hook); + NG_HOOK_SET_TO_INBOUND(hook); return (0); } ==== //depot/projects/vimage-commit2/src/sys/netgraph/ng_ip_input.c#3 (text+ko) ==== @@ -77,6 +77,7 @@ #include #include #include +#include #include #include #include @@ -120,7 +121,10 @@ NGI_GET_M(item, m); NG_FREE_ITEM(item); - netisr_dispatch(NETISR_IP, m); + if (curthread->td_ng_outbound) + netisr_queue(NETISR_IP, m); + else + netisr_dispatch(NETISR_IP, m); return 0; } ==== //depot/projects/vimage-commit2/src/sys/sys/proc.h#19 (text+ko) ==== @@ -235,6 +235,7 @@ char td_name[MAXCOMLEN + 1]; /* (*) Thread name. */ struct file *td_fpop; /* (k) file referencing cdev under op */ int td_dbgflags; /* (c) Userland debugger flags */ + int td_ng_outbound; /* (k) Thread entered ng from above. */ struct osd td_osd; /* (k) Object specific data. */ #define td_endzero td_base_pri @@ -277,8 +278,8 @@ struct lpohead td_lprof[2]; /* (a) lock profiling objects. */ struct kdtrace_thread *td_dtrace; /* (*) DTrace-specific data. */ int td_errno; /* Error returned by last syscall. */ - struct vnet *td_vnet; /* (*) Effective vnet. */ - const char *td_vnet_lpush; /* (*) Debugging vnet push / pop. */ + struct vnet *td_vnet; /* (k) Effective vnet. */ + const char *td_vnet_lpush; /* (k) Debugging vnet push / pop. */ }; struct mtx *thread_lock_block(struct thread *); @@ -319,7 +320,7 @@ #define TDF_BOUNDARY 0x00000400 /* Thread suspended at user boundary */ #define TDF_ASTPENDING 0x00000800 /* Thread has some asynchronous events. */ #define TDF_TIMOFAIL 0x00001000 /* Timeout from sleep after we were awake. */ -#define TDF_NG_OUTBOUND 0x00002000 /* Thread called into ng from ntw stack. */ +#define TDF_UNUSED2000 0x00002000 /* --available-- */ #define TDF_UPIBLOCKED 0x00004000 /* Thread blocked on user PI mutex. */ #define TDF_NEEDSUSPCHK 0x00008000 /* Thread may need to suspend. */ #define TDF_NEEDRESCHED 0x00010000 /* Thread needs to yield. */ From owner-p4-projects@FreeBSD.ORG Wed Jun 10 17:43:03 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id BDCA6106571F; Wed, 10 Jun 2009 17:43:02 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 635EA106571C for ; Wed, 10 Jun 2009 17:43:02 +0000 (UTC) (envelope-from zec@fer.hr) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 361678FC19 for ; Wed, 10 Jun 2009 17:43:02 +0000 (UTC) (envelope-from zec@fer.hr) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n5AHh2Kk018864 for ; Wed, 10 Jun 2009 17:43:02 GMT (envelope-from zec@fer.hr) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n5AHh2GM018862 for perforce@freebsd.org; Wed, 10 Jun 2009 17:43:02 GMT (envelope-from zec@fer.hr) Date: Wed, 10 Jun 2009 17:43:02 GMT Message-Id: <200906101743.n5AHh2GM018862@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to zec@fer.hr using -f From: Marko Zec To: Perforce Change Reviews Cc: Subject: PERFORCE change 164021 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 10 Jun 2009 17:43:05 -0000 http://perforce.freebsd.org/chv.cgi?CH=164021 Change 164021 by zec@zec_tpx32 on 2009/06/10 17:42:22 WS trim. Affected files ... .. //depot/projects/vimage-commit2/src/sys/netgraph/ng_eiface.c#25 edit Differences ... ==== //depot/projects/vimage-commit2/src/sys/netgraph/ng_eiface.c#25 (text+ko) ==== @@ -416,7 +416,7 @@ return (EISCONN); priv->ether = hook; NG_HOOK_SET_PRIVATE(hook, &priv->ether); - NG_HOOK_SET_TO_INBOUND(hook); + NG_HOOK_SET_TO_INBOUND(hook); if_link_state_change(ifp, LINK_STATE_UP); From owner-p4-projects@FreeBSD.ORG Wed Jun 10 17:45:05 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id DA2F3106567A; Wed, 10 Jun 2009 17:45:04 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 91FE61065677 for ; Wed, 10 Jun 2009 17:45:04 +0000 (UTC) (envelope-from zec@fer.hr) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 65DA78FC16 for ; Wed, 10 Jun 2009 17:45:04 +0000 (UTC) (envelope-from zec@fer.hr) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n5AHj4UF019669 for ; Wed, 10 Jun 2009 17:45:04 GMT (envelope-from zec@fer.hr) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n5AHj40I019667 for perforce@freebsd.org; Wed, 10 Jun 2009 17:45:04 GMT (envelope-from zec@fer.hr) Date: Wed, 10 Jun 2009 17:45:04 GMT Message-Id: <200906101745.n5AHj40I019667@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to zec@fer.hr using -f From: Marko Zec To: Perforce Change Reviews Cc: Subject: PERFORCE change 164022 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 10 Jun 2009 17:45:06 -0000 http://perforce.freebsd.org/chv.cgi?CH=164022 Change 164022 by zec@zec_tpx32 on 2009/06/10 17:44:17 Don't mark inbound path as outbound. Affected files ... .. //depot/projects/vimage-commit2/src/sys/netgraph/ng_ether.c#17 edit Differences ... ==== //depot/projects/vimage-commit2/src/sys/netgraph/ng_ether.c#17 (text+ko) ==== @@ -263,9 +263,7 @@ m_freem(m); return; } - NG_OUTBOUND_THREAD_REF(); NG_SEND_DATA_ONLY(error, priv->orphan, m); - NG_OUTBOUND_THREAD_UNREF(); } /* From owner-p4-projects@FreeBSD.ORG Wed Jun 10 17:49:00 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 4039E1065672; Wed, 10 Jun 2009 17:49:00 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id F245A106564A for ; Wed, 10 Jun 2009 17:48:59 +0000 (UTC) (envelope-from julian@elischer.org) Received: from outP.internet-mail-service.net (outp.internet-mail-service.net [216.240.47.239]) by mx1.freebsd.org (Postfix) with ESMTP id D6A308FC1E for ; Wed, 10 Jun 2009 17:48:59 +0000 (UTC) (envelope-from julian@elischer.org) Received: from idiom.com (mx0.idiom.com [216.240.32.160]) by out.internet-mail-service.net (Postfix) with ESMTP id 2AE11C03DC; Wed, 10 Jun 2009 10:49:00 -0700 (PDT) X-Client-Authorized: MaGic Cook1e X-Client-Authorized: MaGic Cook1e Received: from julian-mac.elischer.org (home.elischer.org [216.240.48.38]) by idiom.com (Postfix) with ESMTP id 49B052D6016; Wed, 10 Jun 2009 10:48:59 -0700 (PDT) Message-ID: <4A2FF20B.9080200@elischer.org> Date: Wed, 10 Jun 2009 10:48:59 -0700 From: Julian Elischer User-Agent: Thunderbird 2.0.0.21 (Macintosh/20090302) MIME-Version: 1.0 To: Marko Zec References: <200906101745.n5AHj40I019667@repoman.freebsd.org> In-Reply-To: <200906101745.n5AHj40I019667@repoman.freebsd.org> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Cc: Perforce Change Reviews Subject: Re: PERFORCE change 164022 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 10 Jun 2009 17:49:01 -0000 Marko Zec wrote: > http://perforce.freebsd.org/chv.cgi?CH=164022 > > Change 164022 by zec@zec_tpx32 on 2009/06/10 17:44:17 > > Don't mark inbound path as outbound. > > Affected files ... > > .. //depot/projects/vimage-commit2/src/sys/netgraph/ng_ether.c#17 edit > > Differences ... > > ==== //depot/projects/vimage-commit2/src/sys/netgraph/ng_ether.c#17 (text+ko) ==== > > @@ -263,9 +263,7 @@ > m_freem(m); > return; > } > - NG_OUTBOUND_THREAD_REF(); > NG_SEND_DATA_ONLY(error, priv->orphan, m); > - NG_OUTBOUND_THREAD_UNREF(); > } > > /* oooh didn't notice that in the diff From owner-p4-projects@FreeBSD.ORG Wed Jun 10 18:10:42 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id F367610656ED; Wed, 10 Jun 2009 18:10:41 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id AF3DD10656C3 for ; Wed, 10 Jun 2009 18:10:41 +0000 (UTC) (envelope-from truncs@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 836298FC25 for ; Wed, 10 Jun 2009 18:10:41 +0000 (UTC) (envelope-from truncs@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n5AIAWLD032258 for ; Wed, 10 Jun 2009 18:10:32 GMT (envelope-from truncs@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n5AIAUee032253 for perforce@freebsd.org; Wed, 10 Jun 2009 18:10:30 GMT (envelope-from truncs@FreeBSD.org) Date: Wed, 10 Jun 2009 18:10:30 GMT Message-Id: <200906101810.n5AIAUee032253@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to truncs@FreeBSD.org using -f From: Aditya Sarawgi To: Perforce Change Reviews Cc: Subject: PERFORCE change 164025 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 10 Jun 2009 18:10:43 -0000 http://perforce.freebsd.org/chv.cgi?CH=164025 Change 164025 by truncs@aditya on 2009/06/10 18:09:54 New defintions from NetBSD and cleanup. Affected files ... .. //depot/projects/soc2009/soc_ext2fs/src/sys/gnu/fs/ext2fs/ext2_fs.h#11 edit Differences ... ==== //depot/projects/soc2009/soc_ext2fs/src/sys/gnu/fs/ext2fs/ext2_fs.h#11 (text+ko) ==== @@ -500,22 +500,22 @@ /* * Codes for operating systems */ -#define EXT2_OS_LINUX 0 -#define EXT2_OS_HURD 1 -#define EXT2_OS_MASIX 2 -#define EXT2_OS_FREEBSD 3 -#define EXT2_OS_LITES 4 +#define E2FS_OS_LINUX 0 +#define E2FS_OS_HURD 1 +#define E2FS_OS_MASIX 2 +#define E2FS_OS_FREEBSD 3 +#define E2FS_OS_LITES 4 /* * Revision levels */ -#define EXT2_GOOD_OLD_REV 0 /* The good old (original) format */ -#define EXT2_DYNAMIC_REV 1 /* V2 format w/ dynamic inode sizes */ +#define E2FS_REV0 0 /* The good old (original) format */ +#define E2FS_REV1 1 /* V2 format w/ dynamic inode sizes */ -#define EXT2_CURRENT_REV EXT2_GOOD_OLD_REV -#define EXT2_MAX_SUPP_REV EXT2_DYNAMIC_REV +#define E2FS_CURRENT_REV E2FS_REV0 +#define E2FS_MAX_SUPP_REV E2FS_REV1 -#define EXT2_GOOD_OLD_INODE_SIZE 128 +#define E2FS_REV0_INODE_SIZE 128 /* * Feature set definitions @@ -528,31 +528,33 @@ #define EXT2_HAS_INCOMPAT_FEATURE(sb,mask) \ ( EXT2_SB(sb)->e2fs->e2fs_features_incompat & cpu_to_le32(mask) ) -#define EXT2_FEATURE_COMPAT_DIR_PREALLOC 0x0001 -#define EXT2_FEATURE_RO_COMPAT_SPARSE_SUPER 0x0001 -#define EXT2_FEATURE_RO_COMPAT_LARGE_FILE 0x0002 -#define EXT2_FEATURE_RO_COMPAT_BTREE_DIR 0x0004 +/* + * compatible/incompatible features + */ +#define EXT2F_COMPAT_PREALLOC 0x0001 +#define EXT2F_COMPAT_RESIZE 0x0010 -#define EXT2_FEATURE_INCOMPAT_COMPRESSION 0x0001 -#define EXT2_FEATURE_INCOMPAT_FILETYPE 0x0002 +#define EXT2F_ROCOMPAT_SPARSESUPER 0x0001 +#define EXT2F_ROCOMPAT_LARGEFILE 0x0002 +#define EXT2F_ROCOMPAT_BTREE_DIR 0x0004 -#define EXT2_FEATURE_COMPAT_SUPP 0 -#define EXT2_FEATURE_INCOMPAT_SUPP EXT2_FEATURE_INCOMPAT_FILETYPE -#ifdef notyet -#define EXT2_FEATURE_RO_COMPAT_SUPP (EXT2_FEATURE_RO_COMPAT_SPARSE_SUPER| \ - EXT2_FEATURE_RO_COMPAT_LARGE_FILE| \ - EXT2_FEATURE_RO_COMPAT_BTREE_DIR) -#else -#define EXT2_FEATURE_RO_COMPAT_SUPP (EXT2_FEATURE_RO_COMPAT_SPARSE_SUPER| \ - EXT2_FEATURE_RO_COMPAT_LARGE_FILE) -#endif +#define EXT2F_INCOMPAT_COMP 0x0001 +#define EXT2F_INCOMPAT_FTYPE 0x0002 /* - * Default values for user and/or group using reserved blocks + * Features supported in this implementation + * + * We support the following REV1 features: + * - EXT2F_ROCOMPAT_SPARSESUPER + * - EXT2F_ROCOMPAT_LARGEFILE + * - EXT2F_INCOMPAT_FTYPE */ -#define EXT2_DEF_RESUID 0 -#define EXT2_DEF_RESGID 0 +#define EXT2F_COMPAT_SUPP 0x0000 +#define EXT2F_ROCOMPAT_SUPP (EXT2F_ROCOMPAT_SPARSESUPER \ + | EXT2F_ROCOMPAT_LARGEFILE) +#define EXT2F_INCOMPAT_SUPP EXT2F_INCOMPAT_FTYPE + /* * Structure of a directory entry From owner-p4-projects@FreeBSD.ORG Wed Jun 10 18:31:03 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id E835A1065676; Wed, 10 Jun 2009 18:31:02 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id A62BF106566C for ; Wed, 10 Jun 2009 18:31:02 +0000 (UTC) (envelope-from truncs@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 79FA48FC0C for ; Wed, 10 Jun 2009 18:31:02 +0000 (UTC) (envelope-from truncs@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n5AIV2h0042187 for ; Wed, 10 Jun 2009 18:31:02 GMT (envelope-from truncs@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n5AIV2EF042185 for perforce@freebsd.org; Wed, 10 Jun 2009 18:31:02 GMT (envelope-from truncs@FreeBSD.org) Date: Wed, 10 Jun 2009 18:31:02 GMT Message-Id: <200906101831.n5AIV2EF042185@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to truncs@FreeBSD.org using -f From: Aditya Sarawgi To: Perforce Change Reviews Cc: Subject: PERFORCE change 164028 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 10 Jun 2009 18:31:03 -0000 http://perforce.freebsd.org/chv.cgi?CH=164028 Change 164028 by truncs@aditya on 2009/06/10 18:30:02 New macro-instruction and cleanup The Mount flags are never used in FreeBSD's implementation they are just to maintain the compatibility between linux sources the same applies to blocks defined by #ifdef notyet. Affected files ... .. //depot/projects/soc2009/soc_ext2fs/src/sys/gnu/fs/ext2fs/ext2_fs.h#12 edit Differences ... ==== //depot/projects/soc2009/soc_ext2fs/src/sys/gnu/fs/ext2fs/ext2_fs.h#12 (text+ko) ==== @@ -106,7 +106,7 @@ /* * The second extended file system magic number */ -#define EXT2_SUPER_MAGIC 0xEF53 +#define E2FS_MAGIC 0xEF53 #ifdef __KERNEL__ #include @@ -350,43 +350,19 @@ #endif /* - * File system states + * File clean flags */ -#define EXT2_VALID_FS 0x0001 /* Unmounted cleanly */ -#define EXT2_ERROR_FS 0x0002 /* Errors detected */ +#define E2FS_ISCLEAN 0x0001 /* Unmounted cleanly */ +#define E2FS_ERRORS 0x0002 /* Errors detected */ /* - * Mount flags + * Definitions of behavior on errors */ -#define EXT2_MOUNT_CHECK_NORMAL 0x0001 /* Do some more checks */ -#define EXT2_MOUNT_CHECK_STRICT 0x0002 /* Do again more checks */ -#define EXT2_MOUNT_CHECK (EXT2_MOUNT_CHECK_NORMAL | \ - EXT2_MOUNT_CHECK_STRICT) -#define EXT2_MOUNT_GRPID 0x0004 /* Create files with directory's group */ -#define EXT2_MOUNT_DEBUG 0x0008 /* Some debugging messages */ -#define EXT2_MOUNT_ERRORS_CONT 0x0010 /* Continue on errors */ -#define EXT2_MOUNT_ERRORS_RO 0x0020 /* Remount fs ro on errors */ -#define EXT2_MOUNT_ERRORS_PANIC 0x0040 /* Panic on errors */ -#define EXT2_MOUNT_MINIX_DF 0x0080 /* Mimics the Minix statfs */ - -#define clear_opt(o, opt) o &= ~EXT2_MOUNT_##opt -#define set_opt(o, opt) o |= EXT2_MOUNT_##opt -#define test_opt(sb, opt) (EXT2_SB(sb)->e2fs_mount_opt & \ - EXT2_MOUNT_##opt) -/* - * Maximal mount counts between two filesystem checks - */ -#define EXT2_DFL_MAX_MNT_COUNT 20 /* Allow 20 mounts */ -#define EXT2_DFL_CHECKINTERVAL 0 /* Don't use interval check */ +#define E2FS_BEH_CONTINUE 1 /* continue operation */ +#define E2FS_BEH_READONLY 2 /* remount fs read only */ +#define E2FS_BEH_PANIC 3 /* cause panic */ +#define E2FS_BEH_DEFAULT E2FS_BEH_CONTINUE -/* - * Behaviour when detecting errors - */ -#define EXT2_ERRORS_CONTINUE 1 /* Continue execution */ -#define EXT2_ERRORS_RO 2 /* Remount fs read-only */ -#define EXT2_ERRORS_PANIC 3 /* Panic */ -#define EXT2_ERRORS_DEFAULT EXT2_ERRORS_CONTINUE - /* * Super block for an ext2fs file system. @@ -498,7 +474,7 @@ /* - * Codes for operating systems + * OS identification */ #define E2FS_OS_LINUX 0 #define E2FS_OS_HURD 1 From owner-p4-projects@FreeBSD.ORG Wed Jun 10 18:57:30 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 000341065670; Wed, 10 Jun 2009 18:57:29 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id B3E7E106566B for ; Wed, 10 Jun 2009 18:57:29 +0000 (UTC) (envelope-from truncs@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id A237F8FC0C for ; Wed, 10 Jun 2009 18:57:29 +0000 (UTC) (envelope-from truncs@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n5AIvTnt051970 for ; Wed, 10 Jun 2009 18:57:29 GMT (envelope-from truncs@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n5AIvTIN051968 for perforce@freebsd.org; Wed, 10 Jun 2009 18:57:29 GMT (envelope-from truncs@FreeBSD.org) Date: Wed, 10 Jun 2009 18:57:29 GMT Message-Id: <200906101857.n5AIvTIN051968@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to truncs@FreeBSD.org using -f From: Aditya Sarawgi To: Perforce Change Reviews Cc: Subject: PERFORCE change 164031 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 10 Jun 2009 18:57:31 -0000 http://perforce.freebsd.org/chv.cgi?CH=164031 Change 164031 by truncs@aditya on 2009/06/10 18:56:42 Ioctl commands are never used and other cleanups. Affected files ... .. //depot/projects/soc2009/soc_ext2fs/src/sys/gnu/fs/ext2fs/ext2_fs.h#13 edit Differences ... ==== //depot/projects/soc2009/soc_ext2fs/src/sys/gnu/fs/ext2fs/ext2_fs.h#13 (text+ko) ==== @@ -76,8 +76,8 @@ /* * The second extended file system version */ -#define EXT2FS_DATE "95/08/09" -#define EXT2FS_VERSION "0.5b" +#define E2FS_DATE "95/08/09" +#define E2FS_VERSION "0.5b" /* * Debug code @@ -155,12 +155,10 @@ #define EXT2_FIRST_INO(s) (EXT2_SB(s)->e2fs_first_inode) #define EXT2_INODES_PER_BLOCK(s) ((s)->e2fs_ipb) #else -#define EXT2_INODE_SIZE(s) (((s)->s_rev_level == EXT2_GOOD_OLD_REV) ? \ - EXT2_GOOD_OLD_INODE_SIZE : \ - (s)->s_inode_size) -#define EXT2_FIRST_INO(s) (((s)->s_rev_level == EXT2_GOOD_OLD_REV) ? \ - EXT2_GOOD_OLD_FIRST_INO : \ - (s)->e2fs_first_ino) +#define EXT2_INODE_SIZE(s) (((s)->s_rev_level == E2FS_REV0) ? \ + E2FS_REV0 : (s)->s_inode_size) +#define EXT2_FIRST_INO(s) (((s)->s_rev_level == E2FS_REV0) ? \ + E2FS_REV0 : (s)->e2fs_first_ino) #endif /* @@ -261,13 +259,6 @@ #define EXT2_FL_USER_VISIBLE 0x00001FFF /* User visible flags */ #define EXT2_FL_USER_MODIFIABLE 0x000000FF /* User modifiable flags */ -/* - * ioctl commands - */ -#define EXT2_IOC_GETFLAGS _IOR('f', 1, long) -#define EXT2_IOC_SETFLAGS _IOW('f', 2, long) -#define EXT2_IOC_GETVERSION _IOR('v', 1, long) -#define EXT2_IOC_SETVERSION _IOW('v', 2, long) /* * Structure of an inode on the disk From owner-p4-projects@FreeBSD.ORG Wed Jun 10 19:12:46 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id D73A11065698; Wed, 10 Jun 2009 19:12:45 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 9378A1065691 for ; Wed, 10 Jun 2009 19:12:45 +0000 (UTC) (envelope-from pgj@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 676148FC15 for ; Wed, 10 Jun 2009 19:12:45 +0000 (UTC) (envelope-from pgj@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n5AJCjIa059377 for ; Wed, 10 Jun 2009 19:12:45 GMT (envelope-from pgj@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n5AJCjre059375 for perforce@freebsd.org; Wed, 10 Jun 2009 19:12:45 GMT (envelope-from pgj@FreeBSD.org) Date: Wed, 10 Jun 2009 19:12:45 GMT Message-Id: <200906101912.n5AJCjre059375@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to pgj@FreeBSD.org using -f From: Gabor Pali To: Perforce Change Reviews Cc: Subject: PERFORCE change 164033 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 10 Jun 2009 19:12:47 -0000 http://perforce.freebsd.org/chv.cgi?CH=164033 Change 164033 by pgj@petymeg-current on 2009/06/10 19:12:40 Add support for more protocols in netstat_socket() Affected files ... .. //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat.c#20 edit Differences ... ==== //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat.c#20 (text+ko) ==== @@ -39,6 +39,10 @@ { .n_name = "_tcbinfo" }, #define X_UDBINFO 6 { .n_name = "_udbinfo" }, +#define X_DIVCBINFO 7 + { .n_name = "_divcbinfo" }, +#define X_RIPCBINFO 8 + { .n_name = "_ripcbinfo" }, { .n_name = NULL }, }; @@ -50,10 +54,6 @@ static const char *const socktype[] = { "#0", "stream", "dgram", "raw", "rdm", "seqpacket" }; -static const char *const ipproto[] = - { "#0", "#1", "#2", "#3", "#4", "#5", "tcp", "#7", "#8", "#9", "#10", - "#11", "#12", "#13", "#14", "#15", "#16", "udp" }; - static int net_local_pcblist_sysctl(int type, struct socket_type_list *list, int flags) { @@ -106,6 +106,7 @@ char *buf; size_t len; char mibvar[64]; + const char *ipproto; struct xinpgen *xig, *oxig; struct tcpcb *tp = NULL; @@ -114,7 +115,23 @@ struct socket_type *stp; - sprintf(mibvar, "net.inet.%s.pcblist", ipproto[protocol]); + switch (protocol) { + case IPPROTO_TCP: + ipproto = "tcp"; + break; + case IPPROTO_UDP: + ipproto = "udp"; + break; + case IPPROTO_DIVERT: + ipproto = "divert"; + break; + default: + case IPPROTO_RAW: + ipproto = "raw"; + break; + } + + sprintf(mibvar, "net.inet.%s.pcblist", ipproto); len = 0; if (sysctlbyname(mibvar, 0, &len, 0, 0) < 0) { @@ -175,7 +192,7 @@ continue; stp = _netstat_st_allocate(list, PF_INET, protocol, - ipproto[protocol]); + ipproto); extract_inet_data(tp, inp, so, stp); } @@ -332,9 +349,16 @@ } break; case PF_INET: + case PF_INET6: switch (protocol) { case IPPROTO_TCP: case IPPROTO_UDP: + case IPPROTO_DIVERT: + case IPPROTO_RAW: + case IPPROTO_ICMP: + case IPPROTO_IGMP: + case IPPROTO_PIM: + case IPPROTO_ICMPV6: if (use_kvm) NPCB_KVM(inet, protocol, list, kvm, nl, flags); else @@ -347,9 +371,15 @@ flags); NPCB_KVM(inet, IPPROTO_UDP, list, kvm, nl, flags); + NPCB_KVM(inet, IPPROTO_DIVERT, list, kvm, nl, + flags); + NPCB_KVM(inet, IPPROTO_RAW, list, kvm, nl, + flags); } else { NPCB_SCT(inet, IPPROTO_TCP, list, flags); NPCB_SCT(inet, IPPROTO_UDP, list, flags); + NPCB_SCT(inet, IPPROTO_DIVERT, list, flags); + NPCB_SCT(inet, IPPROTO_RAW, list, flags); } break; default: From owner-p4-projects@FreeBSD.ORG Wed Jun 10 19:22:56 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 2E2091065679; Wed, 10 Jun 2009 19:22:56 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id E1A971065676 for ; Wed, 10 Jun 2009 19:22:55 +0000 (UTC) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id CEB0C8FC1A for ; Wed, 10 Jun 2009 19:22:55 +0000 (UTC) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n5AJMt1i063053 for ; Wed, 10 Jun 2009 19:22:55 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n5AJMtsi063050 for perforce@freebsd.org; Wed, 10 Jun 2009 19:22:55 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Date: Wed, 10 Jun 2009 19:22:55 GMT Message-Id: <200906101922.n5AJMtsi063050@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to bb+lists.freebsd.perforce@cyrus.watson.org using -f From: Robert Watson To: Perforce Change Reviews Cc: Subject: PERFORCE change 164034 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 10 Jun 2009 19:22:57 -0000 http://perforce.freebsd.org/chv.cgi?CH=164034 Change 164034 by rwatson@rwatson_freebsd_capabilities on 2009/06/10 19:22:50 Rename 'agent' to 'sandbox'. Affected files ... .. //depot/projects/trustedbsd/capabilities/src/lib/libcapability/Makefile#5 edit .. //depot/projects/trustedbsd/capabilities/src/lib/libcapability/libcapability_agent.c#2 delete .. //depot/projects/trustedbsd/capabilities/src/lib/libcapability/libcapability_agent_api.h#2 delete .. //depot/projects/trustedbsd/capabilities/src/lib/libcapability/libcapability_sandbox.c#1 branch .. //depot/projects/trustedbsd/capabilities/src/lib/libcapability/libcapability_sandbox_api.h#1 branch Differences ... ==== //depot/projects/trustedbsd/capabilities/src/lib/libcapability/Makefile#5 (text+ko) ==== @@ -4,7 +4,7 @@ SRCS= \ libcapability.c \ - libcapability_agent.c \ + libcapability_sandbox.c \ libcapability_host.c INCS= libcapability.h From owner-p4-projects@FreeBSD.ORG Wed Jun 10 19:30:04 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 960E6106566C; Wed, 10 Jun 2009 19:30:03 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 5761E106564A for ; Wed, 10 Jun 2009 19:30:03 +0000 (UTC) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 4289D8FC13 for ; Wed, 10 Jun 2009 19:30:03 +0000 (UTC) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n5AJU3pQ066597 for ; Wed, 10 Jun 2009 19:30:03 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n5AJU3GX066579 for perforce@freebsd.org; Wed, 10 Jun 2009 19:30:03 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Date: Wed, 10 Jun 2009 19:30:03 GMT Message-Id: <200906101930.n5AJU3GX066579@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to bb+lists.freebsd.perforce@cyrus.watson.org using -f From: Robert Watson To: Perforce Change Reviews Cc: Subject: PERFORCE change 164035 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 10 Jun 2009 19:30:04 -0000 http://perforce.freebsd.org/chv.cgi?CH=164035 Change 164035 by rwatson@rwatson_freebsd_capabilities on 2009/06/10 19:29:57 Continue agent -> sandbox rename. Affected files ... .. //depot/projects/trustedbsd/capabilities/src/lib/libcapability/Makefile#6 edit .. //depot/projects/trustedbsd/capabilities/src/lib/libcapability/libcapability.3#5 edit .. //depot/projects/trustedbsd/capabilities/src/lib/libcapability/libcapability.c#5 edit .. //depot/projects/trustedbsd/capabilities/src/lib/libcapability/libcapability.h#7 edit .. //depot/projects/trustedbsd/capabilities/src/lib/libcapability/libcapability_host.c#6 edit .. //depot/projects/trustedbsd/capabilities/src/lib/libcapability/libcapability_sandbox.c#2 edit .. //depot/projects/trustedbsd/capabilities/src/lib/libcapability/libcapability_sandbox_api.h#2 edit Differences ... ==== //depot/projects/trustedbsd/capabilities/src/lib/libcapability/Makefile#6 (text+ko) ==== ==== //depot/projects/trustedbsd/capabilities/src/lib/libcapability/libcapability.3#5 (text+ko) ==== @@ -47,27 +47,27 @@ .Ft int .Fn lc_limitfd "int fd" "cap_rights_t rights" .Ft int -.Fn lch_start "const char *agent" "char *const argv[]" "struct lc_agent **lcap" +.Fn lch_start "const char *sandbox" "char *const argv[]" "struct lc_sandbox **lcap" .Ft void -.Fn lch_stop "struct lc_agent *lcap" +.Fn lch_stop "struct lc_sandbox *lcap" .Ft int -.Fn lch_getsock "struct lc_agent *lcap" "int *fdp" +.Fn lch_getsock "struct lc_sandbox *lcap" "int *fdp" .Ft int -.Fn lch_getpid "struct lc_agent *lcap" "pid_t *pidp" +.Fn lch_getpid "struct lc_sandbox *lcap" "pid_t *pidp" .Ft int -.Fn lch_getprocdesc "struct lc_agent *lcap" "int *fdp" +.Fn lch_getprocdesc "struct lc_sandbox *lcap" "int *fdp" .Ft ssize_t -.Fn lch_recv "struct lc_agent *lcap, void *buf" "size_t len" "int flags" +.Fn lch_recv "struct lc_sandbox *lcap, void *buf" "size_t len" "int flags" .Ft ssize_t -.Fn lch_send "struct lc_agent *lcap" "const void *msg" "size_t len" "int flags" +.Fn lch_send "struct lc_sandbox *lcap" "const void *msg" "size_t len" "int flags" .Ft int -.Fn lca_get "struct lc_host **lchpp" +.Fn lcs_get "struct lc_host **lchpp" .Ft int -.Fn lca_getsock "struct lc_host *lchp" "int *fdp" +.Fn lcs_getsock "struct lc_host *lchp" "int *fdp" .Ft ssize_t -.Fn lca_recv "struct lc_host *lchp" "void *buf" "size_t len" "int flags" +.Fn lcs_recv "struct lc_host *lchp" "void *buf" "size_t len" "int flags" .Ft ssize_t -.Fn lca_send "struct lc_host *lchp" "const void *msg" "size_t len" "int flags" +.Fn lcs_send "struct lc_host *lchp" "const void *msg" "size_t len" "int flags" .Sh DESCRIPTION The .Nm @@ -76,25 +76,25 @@ .Sh HOST API The .Nm -host API allows processes to start, stop, and manage agents running in +host API allows processes to start, stop, and manage sandboxs running in capability mode. Host API functions can be identified by their function name prefix, .Dv lch_ . .Pp -Each executing agent instance is described by an opaque -.Dt "struct lc_agent" , +Each executing sandbox instance is described by an opaque +.Dt "struct lc_sandbox" , which is returned by .Fn lch_start -for successfully started agents, and passed into other APIs to indicate which -agent should be acted on. +for successfully started sandboxs, and passed into other APIs to indicate which +sandbox should be acted on. .Fn lch_start -creates a new executing agent, given the name of the agent binary via -.Va agent . -Executing agents may be stopped (and state freed) using +creates a new executing sandbox, given the name of the sandbox binary via +.Va sandbox . +Executing sandboxs may be stopped (and state freed) using .Fn lch_stop . .Pp -Properties of the agent, such as the socket used to communicate with it, -the proces descriptor for the agent process, and the pid, may be queried +Properties of the sandbox, such as the socket used to communicate with it, +the proces descriptor for the sandbox process, and the pid, may be queried using .Fn lch_getsock , .Fn lch_getprocdesc , @@ -108,32 +108,32 @@ .Xr recv 2 and .Xr send 2 -to avoid agent consumers from having to query agent socket file descriptors +to avoid sandbox consumers from having to query sandbox socket file descriptors before use. -.Sh AGENT API +.Sh SANDBOX API The .Nm -agent API allows agent processes to interact with their host process. -Agent API functions can be identified by their function name prefix, -.Dv lca_ . +sandbox API allows sandbox processes to interact with their host process. +Sandbox API functions can be identified by their function name prefix, +.Dv lcs_ . .Pp -Each executing agent will have a single corresponding host instance, +Each executing sandbox will have a single corresponding host instance, described by an opaque .Dt "struct lc_host" , which is returned by -.Fn lca_get . +.Fn lcs_get . .Pp The socket for the host may be queried using -.Fn lca_getsock . +.Fn lcs_getsock . .Pp -.Fn lca_recv +.Fn lcs_recv and -.Fn lca_send +.Fn lcs_send provide simple wrappers around .Xr recv 2 and .Xr send 2 -to avoid agents having to query host socket file descriptors before use. +to avoid sandboxs having to query host socket file descriptors before use. .Sh SEE ALSO .Xr cap_enter 2 .Xr cap_new 2 ==== //depot/projects/trustedbsd/capabilities/src/lib/libcapability/libcapability.c#5 (text+ko) ==== @@ -30,7 +30,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $P4: //depot/projects/trustedbsd/capabilities/src/lib/libcapability/libcapability.c#4 $ + * $P4: //depot/projects/trustedbsd/capabilities/src/lib/libcapability/libcapability.c#5 $ */ #include ==== //depot/projects/trustedbsd/capabilities/src/lib/libcapability/libcapability.h#7 (text+ko) ==== @@ -30,13 +30,13 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $P4: //depot/projects/trustedbsd/capabilities/src/lib/libcapability/libcapability.h#6 $ + * $P4: //depot/projects/trustedbsd/capabilities/src/lib/libcapability/libcapability.h#7 $ */ #ifndef _LIBCAPABILITY_H_ #define _LIBCAPABILITY_H_ -struct lc_agent; +struct lc_sandbox; struct lc_host; /* @@ -45,33 +45,33 @@ int lc_limitfd(int fd, cap_rights_t rights); /* - * Interfaces to start and stop capability mode agents. + * Interfaces to start and stop capability mode sandboxs. */ -int lch_start(const char *agent, char *const argv[], - struct lc_agent **lcapp); -void lch_stop(struct lc_agent *lcap); +int lch_start(const char *sandbox, char *const argv[], + struct lc_sandbox **lcapp); +void lch_stop(struct lc_sandbox *lcap); /* - * Interfaces to query state about capability mode agents. + * Interfaces to query state about capability mode sandboxs. */ -int lch_getsock(struct lc_agent *lcap, int *fdp); -int lch_getpid(struct lc_agent *lcap, pid_t *pidp); -int lch_getprocdesc(struct lc_agent *lcap, int *fdp); +int lch_getsock(struct lc_sandbox *lcap, int *fdp); +int lch_getpid(struct lc_sandbox *lcap, pid_t *pidp); +int lch_getprocdesc(struct lc_sandbox *lcap, int *fdp); /* - * I/O interfaces for capability mode agents. + * I/O interfaces for capability mode sandboxs. */ -ssize_t lch_recv(struct lc_agent *lcap, void *buf, size_t len, int flags); -ssize_t lch_send(struct lc_agent *lcap, const void *msg, size_t len, +ssize_t lch_recv(struct lc_sandbox *lcap, void *buf, size_t len, int flags); +ssize_t lch_send(struct lc_sandbox *lcap, const void *msg, size_t len, int flags); /* - * Capability mode agent APIs. + * Capability mode sandbox APIs. */ -int lca_get(struct lc_host **lchpp); -int lca_getsock(struct lc_host *lchp, int *fdp); -ssize_t lca_recv(struct lc_host *lchp, void *buf, size_t len, int flags); -ssize_t lca_send(struct lc_host *lchp, const void *msg, size_t len, +int lcs_get(struct lc_host **lchpp); +int lcs_getsock(struct lc_host *lchp, int *fdp); +ssize_t lcs_recv(struct lc_host *lchp, void *buf, size_t len, int flags); +ssize_t lcs_send(struct lc_host *lchp, const void *msg, size_t len, int flags); #endif /* !_LIBCAPABILITY_H_ */ ==== //depot/projects/trustedbsd/capabilities/src/lib/libcapability/libcapability_host.c#6 (text+ko) ==== @@ -30,7 +30,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $P4: //depot/projects/trustedbsd/capabilities/src/lib/libcapability/libcapability_host.c#5 $ + * $P4: //depot/projects/trustedbsd/capabilities/src/lib/libcapability/libcapability_host.c#6 $ */ #include @@ -47,7 +47,7 @@ #include #include "libcapability.h" -#include "libcapability_agent_api.h" +#include "libcapability_sandbox_api.h" #define LIBCAPABILITY_CAPMASK_DEVNULL (CAP_EVENT | CAP_READ | CAP_WRITE) #define LIBCAPABILITY_CAPMASK_SOCK (CAP_EVENT | CAP_READ | CAP_WRITE) @@ -55,7 +55,7 @@ CAP_SEEK | CAP_FSTATFS | \ CAP_FEXECVE | CAP_MMAP | \ CAP_MAPEXEC) -#define LIBCAPABILITY_CAPMASK_AGENT LIBCAPABILITY_CAPMASK_BIN +#define LIBCAPABILITY_CAPMASK_SANDBOX LIBCAPABILITY_CAPMASK_BIN #define LIBCAPABILITY_CAPMASK_LDSO LIBCAPABILITY_CAPMASK_BIN #define LIBCAPABILITY_CAPMASK_LIBC LIBCAPABILITY_CAPMASK_BIN #define LIBCAPABILITY_CAPMASK_LIBZ LIBCAPABILITY_CAPMASK_BIN @@ -74,10 +74,10 @@ int closefrom(int lowfd); -struct lc_agent { - int lca_fd_sock; - int lca_fd_procdesc; - pid_t lca_pid; +struct lc_sandbox { + int lcs_fd_sock; + int lcs_fd_procdesc; + pid_t lcs_pid; }; /* @@ -139,10 +139,10 @@ } static void -lch_agent(int fd_sock, int fd_agent, int fd_ldso, int fd_libc, int fd_libz, - char *const argv[]) +lch_sandbox(int fd_sock, int fd_sandbox, int fd_ldso, int fd_libc, + int fd_libz, char *const argv[]) { - char *env_caplibindex, *env_libcapability_agent_api; + char *env_caplibindex, *env_libcapability_sandbox_api; int fd_array[8], fd_devnull; fd_devnull = open(_PATH_DEVNULL, O_RDWR); @@ -151,7 +151,7 @@ if (lc_limitfd(fd_devnull, LIBCAPABILITY_CAPMASK_DEVNULL) < 0) return; - if (lc_limitfd(fd_agent, LIBCAPABILITY_CAPMASK_AGENT) < 0) + if (lc_limitfd(fd_sandbox, LIBCAPABILITY_CAPMASK_SANDBOX) < 0) return; if (lc_limitfd(fd_sock, LIBCAPABILITY_CAPMASK_SOCK) < 0) return; @@ -165,7 +165,7 @@ fd_array[0] = fd_devnull; fd_array[1] = fd_devnull; fd_array[2] = fd_devnull; - fd_array[3] = fd_agent; + fd_array[3] = fd_sandbox; fd_array[4] = fd_sock; fd_array[5] = fd_ldso; fd_array[6] = fd_libc; @@ -188,13 +188,13 @@ * Make sure that libcapability in the sandbox knows that its API * assumptions hold. */ - if (asprintf(&env_libcapability_agent_api, "%s:%d", - LIBCAPABILITY_AGENT_API_SOCK, 4) == -1) + if (asprintf(&env_libcapability_sandbox_api, "%s:%d", + LIBCAPABILITY_SANDBOX_API_SOCK, 4) == -1) return; - if (setenv(LIBCAPABILITY_AGENT_API_ENV, env_libcapability_agent_api, - 1) == -1) + if (setenv(LIBCAPABILITY_SANDBOX_API_ENV, + env_libcapability_sandbox_api, 1) == -1) return; - free(env_libcapability_agent_api); + free(env_libcapability_sandbox_api); if (cap_enter() < 0) return; @@ -203,14 +203,15 @@ } int -lch_start(const char *agent, char *const argv[], struct lc_agent **lcapp) +lch_start(const char *sandbox, char *const argv[], struct lc_sandbox **lcapp) { - struct lc_agent *lcap; - int fd_agent, fd_ldso, fd_libc, fd_libz, fd_procdesc, fd_sockpair[2]; + struct lc_sandbox *lcap; + int fd_sandbox, fd_ldso, fd_libc, fd_libz, fd_procdesc; + int fd_sockpair[2]; int error, val; pid_t pid; - fd_agent = fd_ldso = fd_libc = fd_libz = fd_procdesc = + fd_sandbox = fd_ldso = fd_libc = fd_libz = fd_procdesc = fd_sockpair[0] = fd_sockpair[1] = -1; lcap = malloc(sizeof(*lcap)); @@ -218,9 +219,9 @@ return (-1); bzero(lcap, sizeof(*lcap)); - /* Try the agent first so that ENOENT most likely refers to it. */ - fd_agent = open(agent, O_RDONLY); - if (fd_agent < 0) + /* Try the sandbox first so that ENOENT most likely refers to it. */ + fd_sandbox = open(sandbox, O_RDONLY); + if (fd_sandbox < 0) goto out_error; fd_ldso = open(LD_ELF_CAP_SO, O_RDONLY); @@ -251,19 +252,19 @@ goto out_error; } if (pid == 0) { - lch_agent(fd_sockpair[1], fd_agent, fd_ldso, fd_libc, + lch_sandbox(fd_sockpair[1], fd_sandbox, fd_ldso, fd_libc, fd_libz, argv); exit(-1); } close(fd_libz); close(fd_libc); close(fd_ldso); - close(fd_agent); + close(fd_sandbox); close(fd_sockpair[1]); - lcap->lca_fd_procdesc = fd_procdesc; - lcap->lca_fd_sock = fd_sockpair[0]; - lcap->lca_pid = pid; + lcap->lcs_fd_procdesc = fd_procdesc; + lcap->lcs_fd_sock = fd_sockpair[0]; + lcap->lcs_pid = pid; *lcapp = lcap; return (0); @@ -280,8 +281,8 @@ close(fd_libc); if (fd_ldso != -1) close(fd_ldso); - if (fd_agent != -1) - close(fd_agent); + if (fd_sandbox != -1) + close(fd_sandbox); if (lcap != NULL) free(lcap); errno = error; @@ -289,37 +290,37 @@ } void -lch_stop(struct lc_agent *lcap) +lch_stop(struct lc_sandbox *lcap) { - close(lcap->lca_fd_sock); - close(lcap->lca_fd_procdesc); - lcap->lca_fd_sock = -1; - lcap->lca_fd_procdesc = -1; - lcap->lca_pid = -1; + close(lcap->lcs_fd_sock); + close(lcap->lcs_fd_procdesc); + lcap->lcs_fd_sock = -1; + lcap->lcs_fd_procdesc = -1; + lcap->lcs_pid = -1; } int -lch_getsock(struct lc_agent *lcap, int *fdp) +lch_getsock(struct lc_sandbox *lcap, int *fdp) { - *fdp = lcap->lca_fd_sock; + *fdp = lcap->lcs_fd_sock; return (0); } int -lch_getpid(struct lc_agent *lcap, pid_t *pidp) +lch_getpid(struct lc_sandbox *lcap, pid_t *pidp) { - *pidp = lcap->lca_pid; + *pidp = lcap->lcs_pid; return (0); } int -lch_getprocdesc(struct lc_agent *lcap, int *fdp) +lch_getprocdesc(struct lc_sandbox *lcap, int *fdp) { - *fdp = lcap->lca_fd_procdesc; + *fdp = lcap->lcs_fd_procdesc; return (0); } @@ -328,25 +329,25 @@ * on the worker should take place here. */ ssize_t -lch_send(struct lc_agent *lcap, const void *msg, size_t len, int flags) +lch_send(struct lc_sandbox *lcap, const void *msg, size_t len, int flags) { - if (lcap->lca_fd_sock == -1 || - lcap->lca_fd_sock == 0) { + if (lcap->lcs_fd_sock == -1 || + lcap->lcs_fd_sock == 0) { errno = ESRCH; return (-1); } - return (send(lcap->lca_fd_sock, msg, len, flags)); + return (send(lcap->lcs_fd_sock, msg, len, flags)); } ssize_t -lch_recv(struct lc_agent *lcap, void *buf, size_t len, int flags) +lch_recv(struct lc_sandbox *lcap, void *buf, size_t len, int flags) { - if (lcap->lca_fd_sock == -1 || - lcap->lca_fd_sock == 0) { + if (lcap->lcs_fd_sock == -1 || + lcap->lcs_fd_sock == 0) { errno = ESRCH; return (-1); } - return (recv(lcap->lca_fd_sock, buf, len, flags)); + return (recv(lcap->lcs_fd_sock, buf, len, flags)); } ==== //depot/projects/trustedbsd/capabilities/src/lib/libcapability/libcapability_sandbox.c#2 (text+ko) ==== @@ -44,7 +44,7 @@ #include #include "libcapability.h" -#include "libcapability_agent_api.h" +#include "libcapability_sandbox_api.h" struct lc_host { int lch_fd_sock; @@ -54,7 +54,7 @@ static struct lc_host lch_global; int -lca_get(struct lc_host **lchpp) +lcs_get(struct lc_host **lchpp) { char *endp, *env, *env_dup, *env_dup_free, *name, *token, *value; long long ll; @@ -65,7 +65,7 @@ return (0); } - env = getenv(LIBCAPABILITY_AGENT_API_ENV); + env = getenv(LIBCAPABILITY_SANDBOX_API_ENV); if (env == NULL) { errno = EINVAL; /* XXXRW: Better errno? */ return (-1); @@ -81,7 +81,7 @@ value = strsep(&token, ":"); if (value == NULL) continue; - if (strcmp(name, LIBCAPABILITY_AGENT_API_SOCK) == 0) { + if (strcmp(name, LIBCAPABILITY_SANDBOX_API_SOCK) == 0) { ll = strtoll(value, &endp, 10); if (*endp != '\0' || ll < 0 || ll > INT_MAX) continue; @@ -96,7 +96,7 @@ } int -lca_getsock(struct lc_host *lchp, int *fdp) +lcs_getsock(struct lc_host *lchp, int *fdp) { *fdp = lchp->lch_fd_sock; @@ -104,14 +104,14 @@ } ssize_t -lca_recv(struct lc_host *lchp, void *buf, size_t len, int flags) +lcs_recv(struct lc_host *lchp, void *buf, size_t len, int flags) { return (recv(lchp->lch_fd_sock, buf, len, flags)); } ssize_t -lca_send(struct lc_host *lchp, const void *msg, size_t len, int flags) +lcs_send(struct lc_host *lchp, const void *msg, size_t len, int flags) { return (send(lchp->lch_fd_sock, msg, len, flags)); ==== //depot/projects/trustedbsd/capabilities/src/lib/libcapability/libcapability_sandbox_api.h#2 (text+ko) ==== @@ -30,17 +30,17 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $P4: //depot/projects/trustedbsd/capabilities/src/lib/libcapability/libcapability_sandbox_api.h#1 $ + * $P4: //depot/projects/trustedbsd/capabilities/src/lib/libcapability/libcapability_sandbox_api.h#2 $ */ -#ifndef _LIBCAPABILITY_AGENT_API_H_ -#define _LIBCAPABILITY_AGENT_API_H_ +#ifndef _LIBCAPABILITY_SANDBOX_API_H_ +#define _LIBCAPABILITY_SANDBOX_API_H_ /* - * This include file captures the assumptions libcapability agents will make - * about the runtime environment set up by libcapability hosts. + * This include file captures the assumptions libcapability sandboxs will + * make about the runtime environment set up by libcapability hosts. */ -#define LIBCAPABILITY_AGENT_API_ENV "LIBCAPABILITY_AGENT" -#define LIBCAPABILITY_AGENT_API_SOCK "sock" +#define LIBCAPABILITY_SANDBOX_API_ENV "LIBCAPABILITY_SANDBOX" +#define LIBCAPABILITY_SANDBOX_API_SOCK "sock" #endif /* !_LIBCAPABILITY_H_ */ From owner-p4-projects@FreeBSD.ORG Wed Jun 10 19:33:07 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id EF2F51065679; Wed, 10 Jun 2009 19:33:06 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id AF30F1065675 for ; Wed, 10 Jun 2009 19:33:06 +0000 (UTC) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 9BF088FC0C for ; Wed, 10 Jun 2009 19:33:06 +0000 (UTC) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n5AJX6nQ069209 for ; Wed, 10 Jun 2009 19:33:06 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n5AJX6jM069207 for perforce@freebsd.org; Wed, 10 Jun 2009 19:33:06 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Date: Wed, 10 Jun 2009 19:33:06 GMT Message-Id: <200906101933.n5AJX6jM069207@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to bb+lists.freebsd.perforce@cyrus.watson.org using -f From: Robert Watson To: Perforce Change Reviews Cc: Subject: PERFORCE change 164037 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 10 Jun 2009 19:33:08 -0000 http://perforce.freebsd.org/chv.cgi?CH=164037 Change 164037 by rwatson@rwatson_freebsd_capabilities on 2009/06/10 19:33:00 Sandbox rename-related fixes to man page. Affected files ... .. //depot/projects/trustedbsd/capabilities/src/lib/libcapability/libcapability.3#6 edit Differences ... ==== //depot/projects/trustedbsd/capabilities/src/lib/libcapability/libcapability.3#6 (text+ko) ==== @@ -76,7 +76,7 @@ .Sh HOST API The .Nm -host API allows processes to start, stop, and manage sandboxs running in +host API allows processes to start, stop, and manage sandboxes running in capability mode. Host API functions can be identified by their function name prefix, .Dv lch_ . @@ -85,12 +85,12 @@ .Dt "struct lc_sandbox" , which is returned by .Fn lch_start -for successfully started sandboxs, and passed into other APIs to indicate which -sandbox should be acted on. +for successfully started sandboxes, and passed into other APIs to indicate +which sandbox should be acted on. .Fn lch_start creates a new executing sandbox, given the name of the sandbox binary via .Va sandbox . -Executing sandboxs may be stopped (and state freed) using +Executing sandboxes may be stopped (and state freed) using .Fn lch_stop . .Pp Properties of the sandbox, such as the socket used to communicate with it, @@ -108,8 +108,8 @@ .Xr recv 2 and .Xr send 2 -to avoid sandbox consumers from having to query sandbox socket file descriptors -before use. +to avoid sandbox consumers from having to query sandbox socket file +descriptors before use. .Sh SANDBOX API The .Nm @@ -133,7 +133,7 @@ .Xr recv 2 and .Xr send 2 -to avoid sandboxs having to query host socket file descriptors before use. +to avoid sandboxes having to query host socket file descriptors before use. .Sh SEE ALSO .Xr cap_enter 2 .Xr cap_new 2 From owner-p4-projects@FreeBSD.ORG Wed Jun 10 19:44:18 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 909D31065670; Wed, 10 Jun 2009 19:44:18 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 4FADF106566C for ; Wed, 10 Jun 2009 19:44:18 +0000 (UTC) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 3CA868FC15 for ; Wed, 10 Jun 2009 19:44:18 +0000 (UTC) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n5AJiIef083871 for ; Wed, 10 Jun 2009 19:44:18 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n5AJiIr5083864 for perforce@freebsd.org; Wed, 10 Jun 2009 19:44:18 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Date: Wed, 10 Jun 2009 19:44:18 GMT Message-Id: <200906101944.n5AJiIr5083864@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to bb+lists.freebsd.perforce@cyrus.watson.org using -f From: Robert Watson To: Perforce Change Reviews Cc: Subject: PERFORCE change 164039 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 10 Jun 2009 19:44:19 -0000 http://perforce.freebsd.org/chv.cgi?CH=164039 Change 164039 by rwatson@rwatson_freebsd_capabilities on 2009/06/10 19:44:09 Tweak man page. Affected files ... .. //depot/projects/trustedbsd/capabilities/src/lib/libcapability/libcapability.3#7 edit Differences ... ==== //depot/projects/trustedbsd/capabilities/src/lib/libcapability/libcapability.3#7 (text+ko) ==== @@ -135,7 +135,7 @@ .Xr send 2 to avoid sandboxes having to query host socket file descriptors before use. .Sh SEE ALSO -.Xr cap_enter 2 +.Xr cap_enter 2 , .Xr cap_new 2 .Sh HISTORY Support for capabilities and capabilities mode was developed as part of the From owner-p4-projects@FreeBSD.ORG Wed Jun 10 19:45:20 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id B8D7E1065674; Wed, 10 Jun 2009 19:45:19 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 79339106566C for ; Wed, 10 Jun 2009 19:45:19 +0000 (UTC) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 6626C8FC08 for ; Wed, 10 Jun 2009 19:45:19 +0000 (UTC) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n5AJjJhr085577 for ; Wed, 10 Jun 2009 19:45:19 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n5AJjJlw085575 for perforce@freebsd.org; Wed, 10 Jun 2009 19:45:19 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Date: Wed, 10 Jun 2009 19:45:19 GMT Message-Id: <200906101945.n5AJjJlw085575@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to bb+lists.freebsd.perforce@cyrus.watson.org using -f From: Robert Watson To: Perforce Change Reviews Cc: Subject: PERFORCE change 164040 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 10 Jun 2009 19:45:20 -0000 http://perforce.freebsd.org/chv.cgi?CH=164040 Change 164040 by rwatson@rwatson_freebsd_capabilities on 2009/06/10 19:44:57 Definitely libcapability and not libcap now. Affected files ... .. //depot/projects/trustedbsd/capabilities/src/lib/libcapability/libcapability.3#8 edit Differences ... ==== //depot/projects/trustedbsd/capabilities/src/lib/libcapability/libcapability.3#8 (text+ko) ==== @@ -36,10 +36,10 @@ .Os .Dt LIBCAP 3 .Sh NAME -.Nm libcap +.Nm libcapability .Nd "library interface to capability-mode services" .Sh LIBRARY -.Lb libcap +.Lb libcapability .Sh SYNOPSIS .In sys/types.h .In sys/capability.h From owner-p4-projects@FreeBSD.ORG Wed Jun 10 19:55:30 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 336001065675; Wed, 10 Jun 2009 19:55:30 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id E5713106566B for ; Wed, 10 Jun 2009 19:55:29 +0000 (UTC) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id D1D638FC12 for ; Wed, 10 Jun 2009 19:55:29 +0000 (UTC) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n5AJtTEB020610 for ; Wed, 10 Jun 2009 19:55:29 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n5AJtT7o020608 for perforce@freebsd.org; Wed, 10 Jun 2009 19:55:29 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Date: Wed, 10 Jun 2009 19:55:29 GMT Message-Id: <200906101955.n5AJtT7o020608@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to bb+lists.freebsd.perforce@cyrus.watson.org using -f From: Robert Watson To: Perforce Change Reviews Cc: Subject: PERFORCE change 164041 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 10 Jun 2009 19:55:31 -0000 http://perforce.freebsd.org/chv.cgi?CH=164041 Change 164041 by rwatson@rwatson_freebsd_capabilities on 2009/06/10 19:55:11 More loose ends in agent -> sandbox rename. Affected files ... .. //depot/projects/trustedbsd/capabilities/src/lib/libcapability/libcapability.3#9 edit .. //depot/projects/trustedbsd/capabilities/src/lib/libcapability/libcapability.h#8 edit Differences ... ==== //depot/projects/trustedbsd/capabilities/src/lib/libcapability/libcapability.3#9 (text+ko) ==== @@ -47,19 +47,19 @@ .Ft int .Fn lc_limitfd "int fd" "cap_rights_t rights" .Ft int -.Fn lch_start "const char *sandbox" "char *const argv[]" "struct lc_sandbox **lcap" +.Fn lch_start "const char *sandbox" "char *const argv[]" "struct lc_sandbox **lcsp" .Ft void -.Fn lch_stop "struct lc_sandbox *lcap" +.Fn lch_stop "struct lc_sandbox *lcsp" .Ft int -.Fn lch_getsock "struct lc_sandbox *lcap" "int *fdp" +.Fn lch_getsock "struct lc_sandbox *lcsp" "int *fdp" .Ft int -.Fn lch_getpid "struct lc_sandbox *lcap" "pid_t *pidp" +.Fn lch_getpid "struct lc_sandbox *lcsp" "pid_t *pidp" .Ft int -.Fn lch_getprocdesc "struct lc_sandbox *lcap" "int *fdp" +.Fn lch_getprocdesc "struct lc_sandbox *lcsp" "int *fdp" .Ft ssize_t -.Fn lch_recv "struct lc_sandbox *lcap, void *buf" "size_t len" "int flags" +.Fn lch_recv "struct lc_sandbox *lcsp, void *buf" "size_t len" "int flags" .Ft ssize_t -.Fn lch_send "struct lc_sandbox *lcap" "const void *msg" "size_t len" "int flags" +.Fn lch_send "struct lc_sandbox *lcsp" "const void *msg" "size_t len" "int flags" .Ft int .Fn lcs_get "struct lc_host **lchpp" .Ft int ==== //depot/projects/trustedbsd/capabilities/src/lib/libcapability/libcapability.h#8 (text+ko) ==== @@ -30,7 +30,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $P4: //depot/projects/trustedbsd/capabilities/src/lib/libcapability/libcapability.h#7 $ + * $P4: //depot/projects/trustedbsd/capabilities/src/lib/libcapability/libcapability.h#8 $ */ #ifndef _LIBCAPABILITY_H_ @@ -48,21 +48,21 @@ * Interfaces to start and stop capability mode sandboxs. */ int lch_start(const char *sandbox, char *const argv[], - struct lc_sandbox **lcapp); -void lch_stop(struct lc_sandbox *lcap); + struct lc_sandbox **lcspp); +void lch_stop(struct lc_sandbox *lcsp); /* * Interfaces to query state about capability mode sandboxs. */ -int lch_getsock(struct lc_sandbox *lcap, int *fdp); -int lch_getpid(struct lc_sandbox *lcap, pid_t *pidp); -int lch_getprocdesc(struct lc_sandbox *lcap, int *fdp); +int lch_getsock(struct lc_sandbox *lcsp, int *fdp); +int lch_getpid(struct lc_sandbox *lcsp, pid_t *pidp); +int lch_getprocdesc(struct lc_sandbox *lcsp, int *fdp); /* * I/O interfaces for capability mode sandboxs. */ -ssize_t lch_recv(struct lc_sandbox *lcap, void *buf, size_t len, int flags); -ssize_t lch_send(struct lc_sandbox *lcap, const void *msg, size_t len, +ssize_t lch_recv(struct lc_sandbox *lcsp, void *buf, size_t len, int flags); +ssize_t lch_send(struct lc_sandbox *lcsp, const void *msg, size_t len, int flags); /* From owner-p4-projects@FreeBSD.ORG Wed Jun 10 20:34:10 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 15D111065678; Wed, 10 Jun 2009 20:34:10 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id C7ECF1065672 for ; Wed, 10 Jun 2009 20:34:09 +0000 (UTC) (envelope-from dforsyth@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 9C01D8FC0C for ; Wed, 10 Jun 2009 20:34:09 +0000 (UTC) (envelope-from dforsyth@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n5AKY9bj088029 for ; Wed, 10 Jun 2009 20:34:09 GMT (envelope-from dforsyth@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n5AKY9eg088021 for perforce@freebsd.org; Wed, 10 Jun 2009 20:34:09 GMT (envelope-from dforsyth@FreeBSD.org) Date: Wed, 10 Jun 2009 20:34:09 GMT Message-Id: <200906102034.n5AKY9eg088021@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to dforsyth@FreeBSD.org using -f From: David Forsythe To: Perforce Change Reviews Cc: Subject: PERFORCE change 164043 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 10 Jun 2009 20:34:11 -0000 http://perforce.freebsd.org/chv.cgi?CH=164043 Change 164043 by dforsyth@squirrel on 2009/06/10 20:33:20 Starting to move around some files before pkgdb overhaul. Affected files ... .. //depot/projects/soc2009/dforsyth_libpkg/libpkg/pkgdb.c#14 delete .. //depot/projects/soc2009/dforsyth_libpkg/libpkg/pkgdb.h#9 delete .. //depot/projects/soc2009/dforsyth_libpkg/libpkg/pkgdb_old.c#1 branch .. //depot/projects/soc2009/dforsyth_libpkg/libpkg/pkgdb_old.h#1 branch Differences ... From owner-p4-projects@FreeBSD.ORG Wed Jun 10 21:01:38 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 4776E106567B; Wed, 10 Jun 2009 21:01:38 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id B3D3D1065673 for ; Wed, 10 Jun 2009 21:01:37 +0000 (UTC) (envelope-from rene@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id A07698FC20 for ; Wed, 10 Jun 2009 21:01:37 +0000 (UTC) (envelope-from rene@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n5AL1bsT026246 for ; Wed, 10 Jun 2009 21:01:37 GMT (envelope-from rene@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n5AL1bCR026244 for perforce@freebsd.org; Wed, 10 Jun 2009 21:01:37 GMT (envelope-from rene@FreeBSD.org) Date: Wed, 10 Jun 2009 21:01:37 GMT Message-Id: <200906102101.n5AL1bCR026244@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to rene@FreeBSD.org using -f From: Rene Ladan To: Perforce Change Reviews Cc: Subject: PERFORCE change 164046 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 10 Jun 2009 21:01:39 -0000 http://perforce.freebsd.org/chv.cgi?CH=164046 Change 164046 by rene@rene_self on 2009/06/10 21:01:13 [website] finish translation of publish.sgml Affected files ... .. //depot/projects/docproj_nl/www/nl/publish.sgml#6 edit Differences ... ==== //depot/projects/docproj_nl/www/nl/publish.sgml#6 (text+ko) ==== @@ -27,7 +27,7 @@ - Hier vindt u de omslagen van vele aan &os; gerelateerde pubicaties. Als u + Hier vindt u de omslagen van vele aan &os; gerelateerde publicaties. Als u nog meer publicaties of CD-ROMs over &os; kent, laat het ons dan weten op www@FreeBSD.org, zodat ze aan deze site kunnen worden toegevoegd. @@ -76,7 +76,7 @@ width="150" height="228" alt="boekomslag"> Dit is "The Complete &os;" van BSDi met installatiegids, - handleidingspagina's en ingesloten CD's. + handleidingpagina's en ingesloten CD's. @@ -124,7 +124,7 @@ Dit is het "Installatie- en gebruikershandboek voor &os;" van Mainichi Communications. Algemene introductie tot &os; van - installatie to gebruik met probleemoplossing onder het toeziend oog + installatie tot gebruik met probleemoplossing onder het toeziend oog van de gebruikersgroep in Japan. 2.2.7-RELEASE &os;(98)2.2.7-Rev01 PAO en distributiebestanden op CD-ROM. 472 pagina's, 3.600 yen. @@ -184,7 +184,7 @@ boekomslag The Complete &os; met CD's, 3de 3ditie, &os; 4.2. Alles wat u altijd al wilde weten over hoe uw computer &os; te laten draaien. - Bevat 4 CD's met het besturingssysteem &os;. Uigegeven: november + Bevat 4 CD's met het besturingssysteem &os;. Uitgegeven: november 2000, ISBN: 1-57176-246-9 @@ -204,7 +204,7 @@ Er zijn twee drukken: de eerste heeft disk 1 van &os; 4.2, de tweede heeft disk 1 van &os; 4.4. 400 pagina's. De Japanse vertaling werd gepubliceerd in 2001.
    - The Networker's Guide behandel de integratie van &os; in typische + The Networker's Guide behandelt de integratie van &os; in typische bedrijfsnetwerken met speciale nadruk op de samenwerking met Windows 95/98/ME/NT/2K.
    Engelse versie: 2000, Addison Wesley. ISBN 0-201-70481-1
    @@ -227,7 +227,7 @@ Absolute BSD boekomslag Absolute BSD. Dit boek bespreekt het beheer van servers die op - &os; zijn gebaseerd in hoog-presterende bedrijfsomgevingen. Juni + &os; zijn gebaseerd in hoog presterende bedrijfsomgevingen. Juni 2002, No Starch Press. ISBN 1-886411-74-3 @@ -264,7 +264,7 @@ gids die nieuwe en ervaren gebruikers van &os; helpt om de nieuwste Internet-serverapplicaties in een mum van tijd te configureren en te installeren. De gids bevat beschrijvingen van vele populaire en - wijdverspreide open-source projecten van het Internet, gedetailleerde + wijdverbreide open-source projecten van het Internet, gedetailleerde instructies om elk ervan te implementeren, en onderhoudstaken die belangrijk zijn voor een Internet-server. Mei 2006, Lulu Press, ISBN 1411695747, 228 pagina's. @@ -278,7 +278,7 @@ gepubliceerd door acikkod Publicaties. Het boek is te koop via deze pagina. - Details van het boek:
    + Details van het boek:

    ISBN: 975-98990-0-0
    Gepubliceerd: februari 2004
    @@ -302,8 +302,8 @@ Les cahiers de l'Admin: BSD (het schrift voor BSD-systeembeheerders) van Emmanuel Dreyfus, behandelt verschillende administratieve &unix;-onderwerpen voor BSD-systemen. Gericht op beginners en - enigszins ervarenen in BSD-systeembeheer. Boek in het Frans, Eyrolles, 2004. ISBN + enigszins ervaren gebruikers in BSD-systeembeheer. Boek in het Frans, + Eyrolles, 2004. ISBN 2-212-11463-X @@ -338,7 +338,7 @@ alt="Het &os; 6.0 Boek" width="150" height="202"> - (Traditioneel Chinees &os;-boek with 6.0) + (Traditioneel Chinees &os;-boek met 6.0) December 2005, Drmaster. ISBN 9-575-27878-X @@ -377,7 +377,7 @@ height="190" width="145"> - The Best of &os; Basics by Dru Lavigne + The Best of &os; Basics by Dru Lavigne biedt bijna 100 tutorials die een groot aantal onderwerpen met betrekking tot &os; en open-source Unix behandelen. December 2007. Reed Media Services. @@ -389,9 +389,9 @@

    CDROMs

    - For more about recent releases go to &os; release information page. - + Ga voor meer informatie over recente uitgaven naar de pagina met &os; + uitgave-informatie.

    @@ -399,297 +399,279 @@ - + - + - + - + - + - + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + + - + + - + + - + + - + + - + + - + + - + + - + + - - - + +
    CD-hoesThis is InfoMagic's BSDisc, containing &os; 2.0 and NetBSD 1.0 - on a single CD. This is the only example I have which had cover - art.Dit is BSDisc van InfoMagic, dat &os; 2.0 en NetBSD 1.0 op een + enkele CD bevat. Dit is het enige voorbeeld met omslagkunst.
    CD-hoesThis is the original 4.4 BSD Lite2 release from UC Berkeley, the - core technology behind much of &os;.Dit is de originele 4.4 BSD Lite2-uitgave van UC Berkeley, de kerntechnologie + achter veel van &os;.
    CD-hoesThe first of Laser5's "BSD" series. Contains &os;-2.0.5R, - NetBSD-1.0, XFree86-3.1.1 and &os;(98) kernel.De eerste van de "BSD"-series van Laser5. Bevat &os;-2.0.5R, + NetBSD-1.0, XFree86-3.1.1 en een &os;(98)-kernel.
    CD-hoesThe second of Laser5's "BSD" series. From this version, the CDs - come in a standard jewel box. Contains &os;-2.1R, NetBSD-1.1, - XFree86-3.1.2 and 3.1.2A, and &os;(98) kernel (2.0.5).De tweede uit de "BSD"-serie van Laser5. Vanaf deze versie verschijnen de CD's + in een standaard juwelendoos. Bevat &os;-2.1R, NetBSD-1.1, + XFree86-3.1.2 en 3.1.2A, en een &os;(98)-kernel (2.0.5).
    CD-hoesThis is the Laser5 Japanese edition of the &os; CDROM. It is a - 4 CD set.Dit is de Japanse Laser5-editie van de &os;-CD-ROM. Het is een verzameling van + 4 CD's.
    CD-hoesThis is the only &os; CD Pacific Hitech produced before merging - their product line with that of Walnut Creek CDROM. PHT now also - produces the &os;/J (Japanese) CD product.
    Dit is de enige CD die Pacific Hitech heeft geproduceerd voordat ze + hun productlijn samenvoegden met die van Walnut Creek CDROM. PHT + produceert nu ook het &os;/J (Japanse) CD-product.
    CD-hoesThis is the cover disc from the Korean magazine. Note the creative cover art! The - CD contains the &os; 2.2.1 release with some local - additions.Dit is de omslagschijf van het Koreaanse tijdschrift. Let op de creatieve omslagkunst! De + CD bevat de &os; 2.2.1-uitgave met wat eigen + toevoegingen.
    CD-hoesThis is it - the very first &os; CD published! Both the - &os; Project and Walnut Creek CDROM were fairly young back then, - and you'll probably have little difficulty in spotting the - differences in production quality between then and now. - Dit is het dan - de allereerste &os;-CD die gepubliceerd werd! Zowel + het &os; Project als Walnut Creek CDROM waren toen behoorlijk jong, + en het is waarschijnlijk niet moeilijk om de verschillen in + productiekwaliteit tussen toen en nu te zien.
    CD-hoesThis was the second &os; CD published by Walnut Creek CDROM and - also the very last on the 1.x branch (ref USL/Novell lawsuit and - settlement). The next release, &os; 1.1.5, was only available on - the net. - Dit is de tweede &os;-CD die gepubliceerd werd door Walnut Creek CDROM en + tevens de laatste van de 1.x-tak (ref. rechtszaak USL/Novell en schikking). + De volgende uitgave, &os; 1.1.5, was alleen beschikbaar op het net.
    CD-hoesThis unusual CD is something of a collector's item now given that - almost all existing examples were systematically tracked down and - destroyed. An artwork mishap has this CD dated for the wrong year, - and on the spine "January" is also misspelled as "Jaunary", just to - increase the embarrassment factor. Ah, the perils of turning in - one's artwork just hours before leaving for a trade show. - Deze ongebruikelijke CD is nu een verzamelaarsitem aangezien bijna alle + bestaande exemplaren systematisch opgespoord en vernietigd zijn. + Een fout in de artwork zorgde voor een verkeerd jaartal op de CD, en aan + de zijkant was "January" ook nog verkeerd gespeld als "Jaunary" om de + schaamtefactor te verhogen. Ach, de gevaren van het inleveren van artwork + enkele uren voor het vertrekken naar een beurs.
    CD-hoesThis is the fixed-up version of the &os; 2.0 CD. Note that the - color scheme has even been changed in the corrected version, - something unusual for a fixup and perhaps done to distance it from - the earlier mistake.Dit is de gerepareerde versie van de &os; 2.0-CD. Merk op dat zelfs + het kleurschema is veranderd in de gecorrigeerde versie, iets ongebruikelijks + voor een reparatie en wellicht gedaan om afstand te doen van de eerdere + fout.
    CD-hoesThe &os; 2.0.5 release CD. This was the first CD to feature - Tatsumi Hosokawa's daemon artwork.De &os; 2.0.5-RELEASE CD. Dit was de eerste CD die het daemon-artwork + van Tatsumi Hosokawa liet zien.
    CD-hoesThe &os; 2.1 release CD. This was the first CD release on the - 2.1 branch (the last being 2.1.7).De &os; 2.1-RELEASE CD. Dit was de eerste CD-uitgave van de + 2.1-tak (de laatste was 2.1.7).
    CD-hoesThe &os; 2.1.5 release CD.De &os; 2.1.5-RELEASE CD.
    CD-hoesThe &os; 2.1.6 release CD.De &os; 2.1.6-RELEASE CD.
    CD-hoesThe Japanese version of 2.1.6. This was the first and last - Japanese localized version published by WC, responsibility for that - product then transitioning to a team led by Tatsumi Hosokawa and - sponsored by Pacific Hitech and Laser5. - De Japanse versie van 2.1.6. Dit was de eerste en laatste in het Japans + gelokaliseerde versie die door Walnut Creek was gepubliceerd, wat + verantwoordelijk was voor het product en daarna overging naar een team + geleidt door Tatsumi Hosokawa en gesponsord werd door Pacific Hitech + en Laser5.
    CD-hoesThe &os; 2.1.7 release CD. Also the last CD released on the - 2.1.x branch. Done primarily as a security fixup for 2.1.6De &os; 2.1.7-RELEASE CD. Tevens de laatste CD van de 2.1.x-tak die + werd uitgegeven, ten eerste als een beveiligingsreparatie voor 2.1.6.
    CD-hoesAn early release SNAPshot of 2.2 (done before 2.2.1 was - released).Een vroege SNAPshot-uitgave van 2.2 (gemaakt voordat 2.2.1 werd + uitgegeven).
    CD-hoesThe &os; 2.2.1 release CD. This was the first CD on the 2.2 - branch.De &os; 2.2.1-RELEASE CD. Dit was de eerste CD van de 2.2-tak.
    CD-hoesThe &os; 2.2.2 release CD.De &os; 2.2.2-RELEASE CD.
    CD-hoesThe &os; 3.0 snapshot CD.De &os; 3.0-snapshot CD.
    CD-hoesThe &os; mailing list and newsgroup archives, turned into HTML - and semi-indexed by thread. This product ran for 2 releases and - then stopped with a thud once it became obvious that there was - simply too much data to deal with on one CD. Perhaps when DVD - becomes more popular... -
    De archieven van de mailinglijsten en nieuwsgroepen van &os;, omgezet + in HTML en min of meer geïndexeerd op discussie. Dit product + liep 2 uitgaven en stopte toen plots wanneer het duidelijk werd dat + er gewoon te veel gegevens waren om op één CD te zetten. + Misschien als DVD's populairder worden...
    CD-hoes - &os; Toolkit: Six disc set of resources to make your - &os; experience more enriching. -
    &os; Toolkit: Verzameling van zes schijven met middelen om uw &os;-ervaring + te verbeteren.
    CD-hoes - &os; Alpha 4.2 - The full version of the DEC Alpha 64-bit - UNIX operating system. -
    &os; Alpha 4.2 - De volledige versie van het DEC Alpha 64-bit + UNIX-besturingssysteem.
    CD-hoes - &os; 4.2: The full version of the PC 32-bit UNIX operating system. -
    &os; 4.2: De volledige versie van het PC 32-bit + UNIX-besturingssysteem.
    CD-hoes - &os; 4.2 CD-ROM. Lehmanns CD-ROM Edition. - January 2001, 4 CD-ROMs. Lehmanns Fachbuchhandlung. Germany. - ISBN 3-931253-72-4. -
    &os; 4.2 CD-ROM. Lehmanns CD-ROM Editie. + Januari 2001, 4 CD-ROMs. Lehmanns Fachbuchhandlung, Duitsland. + ISBN 3-931253-72-4.
    CD-hoes - &os; 4.3 RELEASE CDROM. - April 2001, Wind River Systems. ISBN 1-57176-300-7. -
    &os; 4.3-RELEASE CD-ROM. + April 2001, Wind River Systems. ISBN 1-57176-300-7.
    CD-hoes - &os; Toolkit: Six disc set of resources to make your - &os; experience more enriching. - - June 2001, Wind River Systems. ISBN 1-57176-301-5. -
    &os; Toolkit: Verzameling van zes schijven met middelen om uw &os;-ervaring + te verbeteren. Juni 2001, Wind River Systems. ISBN 1-57176-301-5.
    CD-hoes - &os; 4.4 CD-ROM. Lehmanns CD-ROM Edition. - November 2001, 6 CD-ROMs in Jewelcase. - Lehmanns Fachbuchhandlung. - Germany. - ISBN 3-931253-84-8. -
    &os; 4.4 CD-ROM. Lehmanns CD-ROM Editie. + November 2001, 6 CD-ROMs in juwelendoos. + Lehmanns Fachbuchhandlung. + Duitsland. ISBN 3-931253-84-8.
    CD-hoes - &os; 4.4 RELEASE CDROM. Wind River Systems. September 2001. - ISBN 1-57176-304-X. -
    &os; 4.4-RELEASE CD-ROM. Wind River Systems. September 2001. + ISBN 1-57176-304-X.
    CD-hoes - &os; 4.5 RELEASE CDROM. - February 2002, &os; Mall Inc. ISBN 1-57176-306-6. -
    &os; 4.5-RELEASE CD-ROM. + Februari 2002, &os; Mall Inc. ISBN 1-57176-306-6.
    -

    Magazines

    +

    Tijdschriften

    - + - + - + @@ -699,7 +681,7 @@ @@ -708,12 +690,12 @@ - +
    omslag van tijdschriftCover of Korean UNIX magazine, May 1997 issue. Also included &os; 2.2.1 with cover CDs.Omslag van een Koreaans UNIX-tijdschrift, uitgave uit mei 1997. Bevatte + ook &os; 2.2.1 met omslag-CDs.
    omslag van tijdschriftUNIX User Magazine November 1996 issue. Also included &os; - 2.1.5 on cover CD.Uitgave van UNIX User Magazine uit november 1996. Bevatte ook + &os; 2.1.5 op omslag-CD.
    omslag van tijdschriftThis is the "&os; Full Course" special in April 1997's Software - Design (published by Gijutsu Hyoron Sha). There are 80 pages of - &os; articles covering everything from installation to tracking - -current.Dit is de special "&os; Full Course" in Software Design uit april 1997 + (gepubliceerd door Gijutsu Hyoron Sha). Er zijn 80 pagina's aan + &os;-artikelen die alles behandelen van installatie tot het volgen van + -CURRENT.
    Quality - Unix for FREE, by Brett Glass in , door Brett Glass in Sm@rt Reseller Online September 1998
    omslag van tijdschriftThis is the "BSD magazine" published by ASCII corporation, - the world's first publication specialized in BSD. - BSD magazine covers &os;, NetBSD, OpenBSD and BSD/OS. - The premiere issue features articles on the history of BSD, - installation, and Ports/Packages; it also includes 4 CD-ROMs - containing &os; 3.2-RELEASE, NetBSD 1.4.1 and OpenBSD 2.5.Dit is het "BSD magazine" gepubliceerd door ASCII corporation, + 's werelds eerste publicatie gespecialiseerd in BSD. BSD + magazine behandelt &os;, NetBSD, OpenBSD en BSD/OS. De eerste + uitgave bevat artikelen over de geschiedenis van BSD, installatie + en ports/pakketten; het bevat ook 4 CD-ROMs met &os; 3.2-RELEASE, + NetBSD 1.4.1 en OpenBSD 2.5.
    From owner-p4-projects@FreeBSD.ORG Wed Jun 10 21:34:12 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 3E9AB1065702; Wed, 10 Jun 2009 21:34:12 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id EF1301065700 for ; Wed, 10 Jun 2009 21:34:11 +0000 (UTC) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id D2A748FC12 for ; Wed, 10 Jun 2009 21:34:11 +0000 (UTC) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n5ALYBEW078286 for ; Wed, 10 Jun 2009 21:34:11 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n5ALYBa9078284 for perforce@freebsd.org; Wed, 10 Jun 2009 21:34:11 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Date: Wed, 10 Jun 2009 21:34:11 GMT Message-Id: <200906102134.n5ALYBa9078284@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to bb+lists.freebsd.perforce@cyrus.watson.org using -f From: Robert Watson To: Perforce Change Reviews Cc: Subject: PERFORCE change 164051 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 10 Jun 2009 21:34:13 -0000 http://perforce.freebsd.org/chv.cgi?CH=164051 Change 164051 by rwatson@rwatson_freebsd_capabilities on 2009/06/10 21:34:04 Add lch_start_flags(), a version of lch_start() that accepts a flags field. Define flag LCH_PERMIT_STDERR, which allows the sandboxed process to write to stderr (normally STERR_FILENO is hooked up to /dev/null for sandboxes). Pass libcapability.so.1 into sandboxes. Fix parsing of socket number from LIBCAPABILITY_SANDBOX_API_ENV so that host<->sandbox communications work. Affected files ... .. //depot/projects/trustedbsd/capabilities/src/lib/libcapability/libcapability.h#9 edit .. //depot/projects/trustedbsd/capabilities/src/lib/libcapability/libcapability_host.c#7 edit .. //depot/projects/trustedbsd/capabilities/src/lib/libcapability/libcapability_sandbox.c#3 edit Differences ... ==== //depot/projects/trustedbsd/capabilities/src/lib/libcapability/libcapability.h#9 (text+ko) ==== @@ -30,7 +30,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $P4: //depot/projects/trustedbsd/capabilities/src/lib/libcapability/libcapability.h#8 $ + * $P4: //depot/projects/trustedbsd/capabilities/src/lib/libcapability/libcapability.h#9 $ */ #ifndef _LIBCAPABILITY_H_ @@ -49,9 +49,16 @@ */ int lch_start(const char *sandbox, char *const argv[], struct lc_sandbox **lcspp); +int lch_start_flags(const char *sandbox, char *const argv[], u_int flags, + struct lc_sandbox **lcspp); void lch_stop(struct lc_sandbox *lcsp); /* + * Flags to lch_start_flags: + */ +#define LCH_PERMIT_STDERR 0x00000001 + +/* * Interfaces to query state about capability mode sandboxs. */ int lch_getsock(struct lc_sandbox *lcsp, int *fdp); ==== //depot/projects/trustedbsd/capabilities/src/lib/libcapability/libcapability_host.c#7 (text+ko) ==== @@ -30,7 +30,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $P4: //depot/projects/trustedbsd/capabilities/src/lib/libcapability/libcapability_host.c#6 $ + * $P4: //depot/projects/trustedbsd/capabilities/src/lib/libcapability/libcapability_host.c#7 $ */ #include @@ -58,11 +58,14 @@ #define LIBCAPABILITY_CAPMASK_SANDBOX LIBCAPABILITY_CAPMASK_BIN #define LIBCAPABILITY_CAPMASK_LDSO LIBCAPABILITY_CAPMASK_BIN #define LIBCAPABILITY_CAPMASK_LIBC LIBCAPABILITY_CAPMASK_BIN +#define LIBCAPABILITY_CAPMASK_LIBCAPABILITY LIBCAPABILITY_CAPMASK_BIN #define LIBCAPABILITY_CAPMASK_LIBZ LIBCAPABILITY_CAPMASK_BIN #define _PATH_LIB "/lib" +#define _PATH_USR_LIB "/usr/lib" #define LIBC_SO "libc.so.7" #define LIBZ_SO "libz.so.4" +#define LIBCAPABILITY_SO "libcapability.so.1" extern char **environ; @@ -140,7 +143,7 @@ static void lch_sandbox(int fd_sock, int fd_sandbox, int fd_ldso, int fd_libc, - int fd_libz, char *const argv[]) + int fd_libz, int fd_libcapability, u_int flags, char *const argv[]) { char *env_caplibindex, *env_libcapability_sandbox_api; int fd_array[8], fd_devnull; @@ -161,24 +164,33 @@ return; if (lc_limitfd(fd_libz, LIBCAPABILITY_CAPMASK_LIBZ) < 0) return; + if (lc_limitfd(fd_libcapability, LIBCAPABILITY_CAPMASK_LIBCAPABILITY) + < 0) + return; fd_array[0] = fd_devnull; fd_array[1] = fd_devnull; - fd_array[2] = fd_devnull; + if (flags & LCH_PERMIT_STDERR) { + if (lc_limitfd(STDERR_FILENO, CAP_SEEK | CAP_WRITE) < 0) + return; + fd_array[2] = STDERR_FILENO; + } else + fd_array[2] = fd_devnull; fd_array[3] = fd_sandbox; fd_array[4] = fd_sock; fd_array[5] = fd_ldso; fd_array[6] = fd_libc; fd_array[7] = fd_libz; + fd_array[8] = fd_libcapability; - if (lch_installfds(8, fd_array) < 0) + if (lch_installfds(9, fd_array) < 0) return; /* * Pass library list into rtld-elf-cap. */ - if (asprintf(&env_caplibindex, "%d:%s,%d:%s", 6, LIBC_SO, 7, - LIBZ_SO) == -1) + if (asprintf(&env_caplibindex, "%d:%s,%d:%s,%d:%s", 6, LIBC_SO, 7, + LIBZ_SO, 8, LIBCAPABILITY_SO) == -1) return; if (setenv("LD_CAPLIBINDEX", env_caplibindex, 1) == -1) return; @@ -203,16 +215,17 @@ } int -lch_start(const char *sandbox, char *const argv[], struct lc_sandbox **lcapp) +lch_start_flags(const char *sandbox, char *const argv[], u_int flags, + struct lc_sandbox **lcapp) { struct lc_sandbox *lcap; - int fd_sandbox, fd_ldso, fd_libc, fd_libz, fd_procdesc; - int fd_sockpair[2]; + int fd_sandbox, fd_ldso, fd_libc, fd_libcapability, fd_libz; + int fd_procdesc, fd_sockpair[2]; int error, val; pid_t pid; - fd_sandbox = fd_ldso = fd_libc = fd_libz = fd_procdesc = - fd_sockpair[0] = fd_sockpair[1] = -1; + fd_sandbox = fd_ldso = fd_libc = fd_libz = fd_libcapability = + fd_procdesc = fd_sockpair[0] = fd_sockpair[1] = -1; lcap = malloc(sizeof(*lcap)); if (lcap == NULL) @@ -236,6 +249,11 @@ if (fd_libz < 0) goto out_error; + fd_libcapability = open(_PATH_USR_LIB "/" LIBCAPABILITY_SO, + O_RDONLY); + if (fd_libcapability < 0) + goto out_error; + if (socketpair(PF_LOCAL, SOCK_STREAM, 0, fd_sockpair) < 0) goto out_error; @@ -253,9 +271,10 @@ } if (pid == 0) { lch_sandbox(fd_sockpair[1], fd_sandbox, fd_ldso, fd_libc, - fd_libz, argv); + fd_libz, fd_libcapability, flags, argv); exit(-1); } + close(fd_libcapability); close(fd_libz); close(fd_libc); close(fd_ldso); @@ -275,6 +294,8 @@ close(fd_sockpair[0]); if (fd_sockpair[1] != -1) close(fd_sockpair[1]); + if (fd_libcapability != -1) + close(fd_libcapability); if (fd_libz != -1) close(fd_libz); if (fd_libc != -1) @@ -289,6 +310,13 @@ return (-1); } +int +lch_start(const char *sandbox, char *const argv[], struct lc_sandbox **lcapp) +{ + + return (lch_start_flags(sandbox, argv, 0, lcapp)); +} + void lch_stop(struct lc_sandbox *lcap) { ==== //depot/projects/trustedbsd/capabilities/src/lib/libcapability/libcapability_sandbox.c#3 (text+ko) ==== @@ -57,8 +57,8 @@ lcs_get(struct lc_host **lchpp) { char *endp, *env, *env_dup, *env_dup_free, *name, *token, *value; + int error, fd_sock; long long ll; - int fd_sock; if (lch_initialized) { *lchpp = &lch_global; @@ -77,10 +77,10 @@ fd_sock = -1; while ((token = strsep(&env_dup, ",")) != NULL) { - name = token; - value = strsep(&token, ":"); - if (value == NULL) + name = strsep(&token, ":"); + if (name == NULL) continue; + value = token; if (strcmp(name, LIBCAPABILITY_SANDBOX_API_SOCK) == 0) { ll = strtoll(value, &endp, 10); if (*endp != '\0' || ll < 0 || ll > INT_MAX) @@ -88,6 +88,12 @@ fd_sock = ll; } } + if (fd_sock == -1) { + error = errno; + free(env_dup_free); + errno = error; + return (-1); + } lch_global.lch_fd_sock = fd_sock; lch_initialized = 1; *lchpp = &lch_global; From owner-p4-projects@FreeBSD.ORG Wed Jun 10 21:40:18 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id A7DAA1065679; Wed, 10 Jun 2009 21:40:18 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 66C4E106564A for ; Wed, 10 Jun 2009 21:40:18 +0000 (UTC) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 53C378FC24 for ; Wed, 10 Jun 2009 21:40:18 +0000 (UTC) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n5ALeIhI005144 for ; Wed, 10 Jun 2009 21:40:18 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n5ALeIMd005139 for perforce@freebsd.org; Wed, 10 Jun 2009 21:40:18 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Date: Wed, 10 Jun 2009 21:40:18 GMT Message-Id: <200906102140.n5ALeIMd005139@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to bb+lists.freebsd.perforce@cyrus.watson.org using -f From: Robert Watson To: Perforce Change Reviews Cc: Subject: PERFORCE change 164053 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 10 Jun 2009 21:40:19 -0000 http://perforce.freebsd.org/chv.cgi?CH=164053 Change 164053 by rwatson@rwatson_freebsd_capabilities on 2009/06/10 21:39:26 Trim warnings copied and pasted from another man page. Affected files ... .. //depot/projects/trustedbsd/capabilities/src/lib/libcapability/libcapability.3#10 edit Differences ... ==== //depot/projects/trustedbsd/capabilities/src/lib/libcapability/libcapability.3#10 (text+ko) ==== @@ -142,12 +142,6 @@ .Tn TrustedBSD Project. .Sh BUGS -This man page should list the set of permitted system calls more specifically -for each capability right. -.Pp -Capability rights sometimes have unclear indirect impacts, which should be -documented, or at least hinted at. -.Pp WARNING: THIS IS EXPERIMENTAL SECURITY SOFTWARE THAT MUST NOT BE RELIED ON IN PRODUCTION SYSTEMS. IT WILL BREAK YOUR SOFTWARE IN NEW AND UNEXPECTED WAYS. .Sh AUTHORS From owner-p4-projects@FreeBSD.ORG Wed Jun 10 21:49:28 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 1A4AE1065687; Wed, 10 Jun 2009 21:49:28 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id CAE201065676 for ; Wed, 10 Jun 2009 21:49:27 +0000 (UTC) (envelope-from rene@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id B9B328FC13 for ; Wed, 10 Jun 2009 21:49:27 +0000 (UTC) (envelope-from rene@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n5ALnRM8048718 for ; Wed, 10 Jun 2009 21:49:27 GMT (envelope-from rene@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n5ALnR42048716 for perforce@freebsd.org; Wed, 10 Jun 2009 21:49:27 GMT (envelope-from rene@FreeBSD.org) Date: Wed, 10 Jun 2009 21:49:27 GMT Message-Id: <200906102149.n5ALnR42048716@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to rene@FreeBSD.org using -f From: Rene Ladan To: Perforce Change Reviews Cc: Subject: PERFORCE change 164054 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 10 Jun 2009 21:49:29 -0000 http://perforce.freebsd.org/chv.cgi?CH=164054 Change 164054 by rene@rene_self on 2009/06/10 21:48:27 [website] refer to the Dutch version of publish.sgml Affected files ... .. //depot/projects/docproj_nl/www/nl/share/sgml/navibar.l10n.ent#7 edit Differences ... ==== //depot/projects/docproj_nl/www/nl/share/sgml/navibar.l10n.ent#7 (text+ko) ==== @@ -80,7 +80,7 @@
  • Handboek
  • Handleidingpagina's
  • Boeken en artikelen online
  • -
  • Publicaties
  • +
  • Publicaties
  • Bronnen op het web
  • Voor nieuwelingen
  • Documentatieproject
  • From owner-p4-projects@FreeBSD.ORG Wed Jun 10 21:57:36 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id BD17B1065670; Wed, 10 Jun 2009 21:57:36 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 7CF3C106564A for ; Wed, 10 Jun 2009 21:57:36 +0000 (UTC) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 69F3E8FC0A for ; Wed, 10 Jun 2009 21:57:36 +0000 (UTC) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n5ALvaLN090786 for ; Wed, 10 Jun 2009 21:57:36 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n5ALva7Y090784 for perforce@freebsd.org; Wed, 10 Jun 2009 21:57:36 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Date: Wed, 10 Jun 2009 21:57:36 GMT Message-Id: <200906102157.n5ALva7Y090784@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to bb+lists.freebsd.perforce@cyrus.watson.org using -f From: Robert Watson To: Perforce Change Reviews Cc: Subject: PERFORCE change 164057 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 10 Jun 2009 21:57:37 -0000 http://perforce.freebsd.org/chv.cgi?CH=164057 Change 164057 by rwatson@rwatson_freebsd_capabilities on 2009/06/10 21:56:57 libcap -> libcapability Affected files ... .. //depot/projects/trustedbsd/capabilities/src/share/mk/bsd.libnames.mk#6 edit Differences ... ==== //depot/projects/trustedbsd/capabilities/src/share/mk/bsd.libnames.mk#6 (text+ko) ==== @@ -30,7 +30,7 @@ LIBC_PIC?= ${DESTDIR}${LIBDIR}/libc_pic.a LIBCALENDAR?= ${DESTDIR}${LIBDIR}/libcalendar.a LIBCAM?= ${DESTDIR}${LIBDIR}/libcam.a -LIBCAP?= ${DESTDIR}${LIBDIR}/libcap.a +LIBCAPABILITY?= ${DESTDIR}${LIBDIR}/libcapability.a LIBCOM_ERR?= ${DESTDIR}${LIBDIR}/libcom_err.a LIBCOMPAT?= ${DESTDIR}${LIBDIR}/libcompat.a LIBCRYPT?= ${DESTDIR}${LIBDIR}/libcrypt.a From owner-p4-projects@FreeBSD.ORG Wed Jun 10 22:20:00 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id ACD481065673; Wed, 10 Jun 2009 22:19:59 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 679C0106567E for ; Wed, 10 Jun 2009 22:19:59 +0000 (UTC) (envelope-from pgj@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 553AB8FC0A for ; Wed, 10 Jun 2009 22:19:59 +0000 (UTC) (envelope-from pgj@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n5AMJxY1001025 for ; Wed, 10 Jun 2009 22:19:59 GMT (envelope-from pgj@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n5AMJx8Q001000 for perforce@freebsd.org; Wed, 10 Jun 2009 22:19:59 GMT (envelope-from pgj@FreeBSD.org) Date: Wed, 10 Jun 2009 22:19:59 GMT Message-Id: <200906102219.n5AMJx8Q001000@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to pgj@FreeBSD.org using -f From: Gabor Pali To: Perforce Change Reviews Cc: Subject: PERFORCE change 164058 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 10 Jun 2009 22:20:00 -0000 http://perforce.freebsd.org/chv.cgi?CH=164058 Change 164058 by pgj@petymeg on 2009/06/10 22:19:15 IFC Affected files ... .. //depot/projects/docproj_hu/doc/en_US.ISO8859-1/share/sgml/authors.ent#34 integrate .. //depot/projects/docproj_hu/doc/hu_HU.ISO8859-2/articles/explaining-bsd/article.sgml#6 integrate .. //depot/projects/docproj_hu/doc/hu_HU.ISO8859-2/books/handbook/introduction/chapter.sgml#23 integrate .. //depot/projects/docproj_hu/doc/hu_HU.ISO8859-2/share/sgml/trademarks.ent#10 integrate .. //depot/projects/docproj_hu/doc/share/pgpkeys/des.key#3 integrate .. //depot/projects/docproj_hu/doc/share/pgpkeys/np.key#1 branch .. //depot/projects/docproj_hu/doc/share/pgpkeys/pgpkeys-developers.sgml#27 integrate .. //depot/projects/docproj_hu/doc/share/pgpkeys/pgpkeys.ent#26 integrate .. //depot/projects/docproj_hu/doc/share/pgpkeys/tuexen.key#1 branch .. //depot/projects/docproj_hu/src_7/release/doc/en_US.ISO8859-1/errata/article.sgml#8 integrate .. //depot/projects/docproj_hu/www/en/developers.sgml#29 integrate .. //depot/projects/docproj_hu/www/en/releases/7.2R/errata.html#5 integrate .. //depot/projects/docproj_hu/www/share/sgml/advisories.xml#12 integrate .. //depot/projects/docproj_hu/www/share/sgml/events.xml#17 integrate .. //depot/projects/docproj_hu/www/share/sgml/news.xml#61 integrate .. //depot/projects/docproj_hu/www/share/sgml/usergroups.xml#8 integrate Differences ... ==== //depot/projects/docproj_hu/doc/en_US.ISO8859-1/share/sgml/authors.ent#34 (text+ko) ==== @@ -13,7 +13,7 @@ builds for the other languages, and we will poke fun of you in public. - $FreeBSD: doc/en_US.ISO8859-1/share/sgml/authors.ent,v 1.485 2009/06/05 15:43:38 np Exp $ + $FreeBSD: doc/en_US.ISO8859-1/share/sgml/authors.ent,v 1.486 2009/06/07 19:14:05 tuexen Exp $ --> aaron@FreeBSD.org"> @@ -1110,6 +1110,8 @@ tshiozak@FreeBSD.org"> +tuexen@FreeBSD.org"> + twinterg@FreeBSD.org"> uch@FreeBSD.org"> ==== //depot/projects/docproj_hu/doc/hu_HU.ISO8859-2/articles/explaining-bsd/article.sgml#6 (text+ko) ==== @@ -1,4 +1,4 @@ - + + @@ -7,9 +7,7 @@ Key fingerprint = 3A1C 8E68 952C 3305 6984 6486 30D4 3A6E 64EB E220 uid Dag-Erling Smørgrav uid Dag-Erling Smørgrav -uid Dag-Erling Smørgrav uid [jpeg image of size 3315] -sub 2048g/920C3313 2006-11-11 [expires: 2008-11-10] ]]> ==== //depot/projects/docproj_hu/doc/share/pgpkeys/pgpkeys-developers.sgml#27 (text+ko) ==== @@ -1,7 +1,7 @@ @@ -626,6 +626,11 @@ &pgpkey.kuriyama; + + &a.rene; + &pgpkey.rene; + + &a.clement; &pgpkey.clement; @@ -756,11 +761,6 @@ &pgpkey.remko; - - &a.rene; - &pgpkey.rene; - - &a.avl; &pgpkey.avl; @@ -961,6 +961,11 @@ &pgpkey.sat; + + &a.np; + &pgpkey.np; + + &a.rpaulo; &pgpkey.rpaulo; @@ -1336,6 +1341,11 @@ &pgpkey.ganbold; + + &a.tuexen; + &pgpkey.tuexen; + + &a.ume; &pgpkey.ume; ==== //depot/projects/docproj_hu/doc/share/pgpkeys/pgpkeys.ent#26 (text+ko) ==== @@ -1,5 +1,5 @@ - + @@ -215,6 +215,7 @@ + @@ -292,6 +293,7 @@ + ==== //depot/projects/docproj_hu/src_7/release/doc/en_US.ISO8859-1/errata/article.sgml#8 (text+ko) ==== @@ -37,7 +37,7 @@ The &os; Project - $FreeBSD: src/release/doc/en_US.ISO8859-1/errata/article.sgml,v 1.73.4.14 2009/05/20 00:55:26 hrs Exp $ + $FreeBSD: src/release/doc/en_US.ISO8859-1/errata/article.sgml,v 1.73.4.15 2009/06/08 05:11:35 hrs Exp $ 2008 @@ -192,6 +192,10 @@ 0 (globally on the system). An Errata Notice to fix this problem is planned after the release. + [20090608] An issue was found in the &man.bge.4; driver that + it can cause a system panic upon reboot with heavy network + traffic. A fix has been committed to RELENG_7 (r192127). + Late-Breaking News and Corrections ==== //depot/projects/docproj_hu/www/en/developers.sgml#29 (text+ko) ==== @@ -6,7 +6,7 @@ us to update author names, or the representation of those names (such as adding email addresses), by just editing a single file. -$FreeBSD: www/en/developers.sgml,v 1.226 2009/06/04 16:22:32 linimon Exp $ +$FreeBSD: www/en/developers.sgml,v 1.228 2009/06/08 16:03:29 np Exp $ --> @@ -404,6 +404,7 @@ + @@ -552,6 +553,7 @@ + ==== //depot/projects/docproj_hu/www/en/releases/7.2R/errata.html#5 (text+ko) ==== @@ -19,7 +19,7 @@

    $FreeBSD: stable/7/release/doc/en_US.ISO8859-1/errata/article.sgml -192411 2009-05-20 00:55:26Z hrs $
    +193687 2009-06-08 05:11:35Z hrs $

    @@ -133,6 +133,12 @@ -tso parameter (per interface basis) or setting net.inet.tcp.tso to 0 (globally on the system). An Errata Notice to fix this problem is planned after the release.

    + +

    [20090608] An issue was found in the bge(4) driver that it +can cause a system panic upon reboot with heavy network traffic. A fix has been committed +to RELENG_7 (r192127).

    ==== //depot/projects/docproj_hu/www/share/sgml/advisories.xml#12 (text+ko) ==== @@ -2,7 +2,7 @@ - $FreeBSD: www/share/sgml/advisories.xml,v 1.229 2009/04/22 14:20:33 cperciva Exp $ + $FreeBSD: www/share/sgml/advisories.xml,v 1.230 2009/06/10 10:43:06 cperciva Exp $ @@ -10,6 +10,26 @@ 2009 + 6 + + + 10 + + + FreeBSD-SA-09:11.ntpd + + + + FreeBSD-SA-09:10.ipv6 + + + + FreeBSD-SA-09:09.pipe + + + + + 4 ==== //depot/projects/docproj_hu/www/share/sgml/events.xml#17 (text+ko) ==== @@ -10,7 +10,7 @@ - $FreeBSD: www/share/sgml/events.xml,v 1.72 2009/05/18 12:53:22 brueffer Exp $ + $FreeBSD: www/share/sgml/events.xml,v 1.73 2009/06/08 17:56:30 delphij Exp $ @@ -89,6 +89,29 @@ OSI-approved license. + + 10th Libre Software Meeting + http://2009.rmll.info/?lang=en + + 2009 + 7 + 7 + + + 2009 + 7 + 11 + + + France + Nantes + Nantes University + + The Libre Software Meeting has occurred each year + since July 2000. This year there will again be a FreeBSD boot + camp to introduce new users to the Operating System. + + BSDday Argentina 2009 http://www.bsdday.com.ar/ ==== //depot/projects/docproj_hu/www/share/sgml/news.xml#61 (text+ko) ==== @@ -25,7 +25,7 @@ - $FreeBSD: www/share/sgml/news.xml,v 1.260 2009/06/04 10:43:56 erwin Exp $ + $FreeBSD: www/share/sgml/news.xml,v 1.262 2009/06/08 16:03:29 np Exp $ @@ -36,6 +36,20 @@ 6 + 8 + + +

    New committer: Navdeep + Parhar (src)

    +
    + + +

    New committer: Michael + Tuexen (src)

    +
    +
    + + 4 ==== //depot/projects/docproj_hu/www/share/sgml/usergroups.xml#8 (text+ko) ==== @@ -5,7 +5,7 @@ - $FreeBSD: www/share/sgml/usergroups.xml,v 1.78 2009/04/30 06:24:53 murray Exp $ + $FreeBSD: www/share/sgml/usergroups.xml,v 1.80 2009/06/09 20:45:27 marius Exp $ @@ -224,6 +224,16 @@ + + HappaBSD Regensburg + http://www.HappaBSD.de/ + + HappaBSD is a regulars' table taking place every + month in Regensburg, Bavaria, Germany. For more information + see the HappaBSD website. + + + Unix Users Group Rhein-Neckar e.V. (UUGRN e.V.) http://www.uugrn.org/ From owner-p4-projects@FreeBSD.ORG Wed Jun 10 22:21:01 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 24B82106567B; Wed, 10 Jun 2009 22:21:01 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id B3395106566C for ; Wed, 10 Jun 2009 22:21:00 +0000 (UTC) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 9FCCA8FC24 for ; Wed, 10 Jun 2009 22:21:00 +0000 (UTC) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n5AML0uH005539 for ; Wed, 10 Jun 2009 22:21:00 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n5AML0Mo005537 for perforce@freebsd.org; Wed, 10 Jun 2009 22:21:00 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Date: Wed, 10 Jun 2009 22:21:00 GMT Message-Id: <200906102221.n5AML0Mo005537@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to bb+lists.freebsd.perforce@cyrus.watson.org using -f From: Robert Watson To: Perforce Change Reviews Cc: Subject: PERFORCE change 164060 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 10 Jun 2009 22:21:02 -0000 http://perforce.freebsd.org/chv.cgi?CH=164060 Change 164060 by rwatson@rwatson_freebsd_capabilities on 2009/06/10 22:20:47 Sample libcapability program-launching tool, which expects to run sandbox_echo, which simply bounces a character from the parent to the sandbox and back. Affected files ... .. //depot/projects/trustedbsd/capabilities/src/tools/cap/libcapability_exec/Makefile#1 add .. //depot/projects/trustedbsd/capabilities/src/tools/cap/libcapability_exec/libcapability_exec.c#1 add .. //depot/projects/trustedbsd/capabilities/src/tools/cap/sandbox_echo/Makefile#1 add .. //depot/projects/trustedbsd/capabilities/src/tools/cap/sandbox_echo/sandbox_echo.c#1 add Differences ... From owner-p4-projects@FreeBSD.ORG Wed Jun 10 22:25:05 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 5F78E1065670; Wed, 10 Jun 2009 22:25:05 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 1F85E106566B for ; Wed, 10 Jun 2009 22:25:05 +0000 (UTC) (envelope-from pgj@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id E7EDF8FC1D for ; Wed, 10 Jun 2009 22:25:04 +0000 (UTC) (envelope-from pgj@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n5AMP4gB024028 for ; Wed, 10 Jun 2009 22:25:04 GMT (envelope-from pgj@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n5AMP4CP024026 for perforce@freebsd.org; Wed, 10 Jun 2009 22:25:04 GMT (envelope-from pgj@FreeBSD.org) Date: Wed, 10 Jun 2009 22:25:04 GMT Message-Id: <200906102225.n5AMP4CP024026@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to pgj@FreeBSD.org using -f From: Gabor Pali To: Perforce Change Reviews Cc: Subject: PERFORCE change 164061 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 10 Jun 2009 22:25:06 -0000 http://perforce.freebsd.org/chv.cgi?CH=164061 Change 164061 by pgj@petymeg on 2009/06/10 22:24:46 MFen (www): 1.72 -> 1.73 hu/share/sgml/events.xml 1.260 -> 1.262 hu/share/sgml/news.xml Affected files ... .. //depot/projects/docproj_hu/www/hu/share/sgml/events.xml#9 edit .. //depot/projects/docproj_hu/www/hu/share/sgml/news.xml#36 edit Differences ... ==== //depot/projects/docproj_hu/www/hu/share/sgml/events.xml#9 (text+ko) ==== @@ -11,7 +11,7 @@ @@ -109,6 +109,32 @@ licensz alapján történjen. + + 10. Libre Software Meeting + http://2009.rmll.info/?lang=en + + 2009 + 7 + 7 + + + 2009 + 7 + 11 + + + Franciaország + Nantes + Nantes Egyetem + + A Libre Software Meeting 2000 júliusa óta + minden évben rendszeresen megrendezésre kerül. + Idén ismét lesz &os; + kiképzõtábor, ahol bevezetik az + érdeklõdõ újoncokat az + operációs rendszer rejtelmeibe. + + BSDday Argentina 2009 http://www.bsdday.com.ar/ ==== //depot/projects/docproj_hu/www/hu/share/sgml/news.xml#36 (text+ko) ==== @@ -5,7 +5,7 @@ @@ -22,6 +22,20 @@ 6 + 8 + + +

    Új tag: Navdeep + Parhar (src)

    +
    + + +

    Új tag: Michael + Tuexen (src)

    +
    +
    + + 4 From owner-p4-projects@FreeBSD.ORG Thu Jun 11 01:06:50 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id C24391065677; Thu, 11 Jun 2009 01:06:49 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 808AA106566B for ; Thu, 11 Jun 2009 01:06:49 +0000 (UTC) (envelope-from alepulver@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 5420D8FC14 for ; Thu, 11 Jun 2009 01:06:49 +0000 (UTC) (envelope-from alepulver@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n5B16nRX031453 for ; Thu, 11 Jun 2009 01:06:49 GMT (envelope-from alepulver@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n5B16nps031447 for perforce@freebsd.org; Thu, 11 Jun 2009 01:06:49 GMT (envelope-from alepulver@freebsd.org) Date: Thu, 11 Jun 2009 01:06:49 GMT Message-Id: <200906110106.n5B16nps031447@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to alepulver@freebsd.org using -f From: Alejandro Pulver To: Perforce Change Reviews Cc: Subject: PERFORCE change 164065 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 11 Jun 2009 01:06:51 -0000 http://perforce.freebsd.org/chv.cgi?CH=164065 Change 164065 by alepulver@alepulver_deimos on 2009/06/11 01:06:35 Manually add some common licenses to be able to convert some ports and test the license framework. Affected files ... .. //depot/projects/soc2008/alepulver-portslicense/ports/Mk/bsd.licenses.db.mk#2 edit Differences ... ==== //depot/projects/soc2008/alepulver-portslicense/ports/Mk/bsd.licenses.db.mk#2 (text+ko) ==== @@ -27,8 +27,8 @@ # _LICENSE_LIST_GROUPS - List of defined license groups # -_LICENSE_LIST= GPLv2 -_LICENSE_LIST_GROUPS= FSF +_LICENSE_LIST= ASL BSD BSL CDDL GPLv2 GPLv3 LGPL MIT MPL +_LICENSE_LIST_GROUPS= FSF GPL OSI # Properties of license/group "xxx" (similar to port's variables, but single) # _LICENSE_NAME_xxx - Full name/description of license/group @@ -38,24 +38,45 @@ # List of licenses +_LICENSE_NAME_ASL= Apache License + +_LICENSE_NAME_BSD= BSD license + +_LICENSE_NAME_BSL= Boost Software License + +_LICENSE_NAME_CDDL= Common Development and Distribution License + _LICENSE_NAME_GPLv2= GNU General Public License version 2 -_LICENSE_PERMS_GPLv2= dist-redist dist-sell pkg-redist pkg-sell auto-accept -_LICENSE_COMPAT_GPLv2= # -_LICENSE_INCOMPAT_GPLv2=# + +_LICENSE_NAME_GPLv3= GNU General Public License version 3 + +_LICENSE_NAME_LGPL= GNU Lesser General Public License + +_LICENSE_NAME_MIT= MIT license / X11 license + +_LICENSE_NAME_MPL= Mozilla Public License # List of groups -_LICENSE_NAME_FSF= Free Software Foundation approved -_LICENSE_PERMS_FSF= # -_LICENSE_COMPAT_FSF= # -_LICENSE_INCOMPAT_FSF= # +_LICENSE_NAME_FSF= Free Software Foundation Approved +_LICENSE_PERMS_FSF= pkg-redist dist-redist pkg-sell dist-sell auto-accept + +_LICENSE_NAME_GPL= GPL Compatible +_LICENSE_PERMS_GPL= pkg-redist dist-redist pkg-sell dist-sell auto-accept + +_LICENSE_NAME_OSI= OSI Approved +_LICENSE_PERMS_OSI= pkg-redist dist-redist pkg-sell dist-sell auto-accept # Grouping # # - Method 1: # _LICENSE_LIST_GROUP_xxx - List of licenses under the "xxx" group -_LICENSE_LIST_GROUP_FSF= GPLv2 +_LICENSE_LIST_GROUP_FSF= ASL BSD BSL CDDL GPLv2 GPLv3 LGPL MIT MPL + +_LICENSE_LIST_GROUP_GPL= GPLv2 GPLv3 LGPL MIT + +_LICENSE_LIST_GROUP_OSI= ASL BSD BSL CDDL GPLv2 GPLv3 LGPL MIT MPL # - Method 2: # _LICENSE_GROUPS_xxx - Groups the license/group belongs to From owner-p4-projects@FreeBSD.ORG Thu Jun 11 02:46:31 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 896DF1065670; Thu, 11 Jun 2009 02:46:31 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 4980B106564A for ; Thu, 11 Jun 2009 02:46:31 +0000 (UTC) (envelope-from alepulver@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 1C8868FC0C for ; Thu, 11 Jun 2009 02:46:31 +0000 (UTC) (envelope-from alepulver@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n5B2kUOg096626 for ; Thu, 11 Jun 2009 02:46:30 GMT (envelope-from alepulver@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n5B2kUv4096624 for perforce@freebsd.org; Thu, 11 Jun 2009 02:46:30 GMT (envelope-from alepulver@freebsd.org) Date: Thu, 11 Jun 2009 02:46:30 GMT Message-Id: <200906110246.n5B2kUv4096624@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to alepulver@freebsd.org using -f From: Alejandro Pulver To: Perforce Change Reviews Cc: Subject: PERFORCE change 164067 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 11 Jun 2009 02:46:32 -0000 http://perforce.freebsd.org/chv.cgi?CH=164067 Change 164067 by alepulver@alepulver_deimos on 2009/06/11 02:46:11 - Handle .conf files properly. - Fix non-standard "%" in printf() string (a literal '%' should be "%%" to avoid confusion with other placeholders), which generated invalid configuration files. - Write temporary file to /var/tmp instead of root directory. Affected files ... .. //depot/projects/soc2008/alepulver-portslicense/ports/devel/fossology/Makefile#3 edit .. //depot/projects/soc2008/alepulver-portslicense/ports/devel/fossology/files/patch-common__Makefile#1 add .. //depot/projects/soc2008/alepulver-portslicense/ports/devel/fossology/files/patch-scheduler__lockfs.c#1 add .. //depot/projects/soc2008/alepulver-portslicense/ports/devel/fossology/files/patch-scheduler__mkschedconf.c#1 add .. //depot/projects/soc2008/alepulver-portslicense/ports/devel/fossology/pkg-plist#3 edit Differences ... ==== //depot/projects/soc2008/alepulver-portslicense/ports/devel/fossology/Makefile#3 (text+ko) ==== @@ -11,7 +11,6 @@ # archivers/rpm4 -> archivers/rpm2cpio # # TODO: -# - Handle .conf files properly. (**WARNING**: now deletes .conf files) # - Investigate scheduler problem when starting some agents. # ==== //depot/projects/soc2008/alepulver-portslicense/ports/devel/fossology/pkg-plist#3 (text+ko) ==== @@ -3,11 +3,21 @@ bin/fossinit bin/fossjobs bin/fosslic -%%ETCDIR%%/Db.conf -%%ETCDIR%%/Depth.conf -%%ETCDIR%%/Hosts.conf -%%ETCDIR%%/Proxy.conf -%%ETCDIR%%/RepPath.conf +@unexec if cmp -s %D/etc/fossology/Db.conf %D/etc/fossology/Db.conf.sample; then rm -f %D/etc/fossology/Db.conf; fi +etc/fossology/Db.conf.sample +@exec [ -f %D/etc/fossology/Db.conf ] || cp %D/etc/fossology/Db.conf.sample %D/etc/fossology/Db.conf +@unexec if cmp -s %D/etc/fossology/Depth.conf %D/etc/fossology/Depth.conf.sample; then rm -f %D/etc/fossology/Depth.conf; fi +etc/fossology/Depth.conf.sample +@exec [ -f %D/etc/fossology/Depth.conf ] || cp %D/etc/fossology/Depth.conf.sample %D/etc/fossology/Depth.conf +@unexec if cmp -s %D/etc/fossology/Hosts.conf %D/etc/fossology/Hosts.conf.sample; then rm -f %D/etc/fossology/Hosts.conf; fi +etc/fossology/Hosts.conf.sample +@exec [ -f %D/etc/fossology/Hosts.conf ] || cp %D/etc/fossology/Hosts.conf.sample %D/etc/fossology/Hosts.conf +@unexec if cmp -s %D/etc/fossology/Proxy.conf %D/etc/fossology/Proxy.conf.sample; then rm -f %D/etc/fossology/Proxy.conf; fi +etc/fossology/Proxy.conf.sample +@exec [ -f %D/etc/fossology/Proxy.conf ] || cp %D/etc/fossology/Proxy.conf.sample %D/etc/fossology/Proxy.conf +@unexec if cmp -s %D/etc/fossology/RepPath.conf %D/etc/fossology/RepPath.conf.sample; then rm -f %D/etc/fossology/RepPath.conf; fi +etc/fossology/RepPath.conf.sample +@exec [ -f %D/etc/fossology/RepPath.conf ] || cp %D/etc/fossology/RepPath.conf.sample %D/etc/fossology/RepPath.conf include/libfossdb.h include/libfossrepo.h lib/fossology/agents/Filter_License From owner-p4-projects@FreeBSD.ORG Thu Jun 11 05:17:05 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id ED65E1065672; Thu, 11 Jun 2009 05:17:04 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id ADC80106564A for ; Thu, 11 Jun 2009 05:17:04 +0000 (UTC) (envelope-from dforsyth@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 656C08FC20 for ; Thu, 11 Jun 2009 05:17:04 +0000 (UTC) (envelope-from dforsyth@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n5B5H46V055877 for ; Thu, 11 Jun 2009 05:17:04 GMT (envelope-from dforsyth@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n5B5H4Or055869 for perforce@freebsd.org; Thu, 11 Jun 2009 05:17:04 GMT (envelope-from dforsyth@FreeBSD.org) Date: Thu, 11 Jun 2009 05:17:04 GMT Message-Id: <200906110517.n5B5H4Or055869@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to dforsyth@FreeBSD.org using -f From: David Forsythe To: Perforce Change Reviews Cc: Subject: PERFORCE change 164069 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 11 Jun 2009 05:17:06 -0000 http://perforce.freebsd.org/chv.cgi?CH=164069 Change 164069 by dforsyth@squirrel on 2009/06/11 05:16:06 Working on pkgdb overhaul. Affected files ... .. //depot/projects/soc2009/dforsyth_libpkg/libpkg/pkg.c#13 edit .. //depot/projects/soc2009/dforsyth_libpkg/libpkg/pkg_plist.c#8 edit .. //depot/projects/soc2009/dforsyth_libpkg/libpkg/pkg_private.h#8 edit .. //depot/projects/soc2009/dforsyth_libpkg/libpkg/pkg_util.c#5 edit .. //depot/projects/soc2009/dforsyth_libpkg/libpkg/pkg_util.h#5 edit .. //depot/projects/soc2009/dforsyth_libpkg/libpkg/pkgdb_hierdb.c#1 add .. //depot/projects/soc2009/dforsyth_libpkg/libpkg/pkgdb_hierdb.h#1 add .. //depot/projects/soc2009/dforsyth_libpkg/libpkg/pkgdb_hierdb_pkgdb_sub.c#1 add .. //depot/projects/soc2009/dforsyth_libpkg/libpkg/pkgdb_hierdb_pkgdb_sub.h#1 add .. //depot/projects/soc2009/dforsyth_libpkg/libpkg/pkgdb_old.h#2 edit .. //depot/projects/soc2009/dforsyth_libpkg/pkg_info/main.c#8 edit .. //depot/projects/soc2009/dforsyth_libpkg/pkg_info/pkg_info.h#4 edit Differences ... ==== //depot/projects/soc2009/dforsyth_libpkg/libpkg/pkg.c#13 (text+ko) ==== @@ -13,6 +13,16 @@ /* Create a new pkg. */ struct pkg * +pkg_new() +{ + struct pkg *p; + + p = calloc(1, sizeof(*p)); + return (p); +} + +#if 0 +struct pkg * pkg_new(const char *ident) { struct pkg *p; @@ -34,6 +44,7 @@ return (p); } +#endif /* TODO: Can't copy string for some _set_ functions and then just point to * the passed pkg_plist for _set_pkg_plist. */ ==== //depot/projects/soc2009/dforsyth_libpkg/libpkg/pkg_plist.c#8 (text+ko) ==== @@ -100,6 +100,7 @@ pl->text = textp; + /* XXX: Use fgets(), dummy. */ pkg_plist_pkg_file_list_init(pl); set_parse_state_default(&st); for (p = textp; *p != '\0'; p++) { ==== //depot/projects/soc2009/dforsyth_libpkg/libpkg/pkg_private.h#8 (text+ko) ==== @@ -13,8 +13,6 @@ char *comment; /* Mmmmm, should be 70 or less, right? */ struct pkg_plist *plist; - int legal; /* Soon to be used for pkg verification. */ - TAILQ_ENTRY(pkg) next; }; ==== //depot/projects/soc2009/dforsyth_libpkg/libpkg/pkg_util.c#5 (text+ko) ==== @@ -10,7 +10,8 @@ int subdir_sel(struct dirent *ent) { - if (strcmp(ent->d_name, ".") != 0 && strcmp(ent->d_name, "..") != 0) + if (strcmp(ent->d_name, ".") != 0 && strcmp(ent->d_name, "..") != 0 && + (ent->d_type & DT_DIR) && !(ent->d_type & DT_LNK)) return (1); return (0); } @@ -18,7 +19,7 @@ char * path_strdup(const char *path) { - int l; + size_t l; char *new_path; l = strlen(path); @@ -35,6 +36,29 @@ return (new_path); } +char * +path_build(const char *prefix, const char *suffix) +{ + size_t l; + int slash; + char *new_path; + + slash = 0; + l = strlen(prefix); + if (prefix[l - 1] != '/') + slash = 1; + l += strlen(suffix) + slash; + new_path = malloc(l + 1); + if (new_path == NULL) + return (NULL); + strcpy(new_path, prefix); + if (slash) + strcat(new_path, '/'); + strcat(new_path, suffix); + + return (new_path); +} + void argument_rage_quit(const char *function, const char *message, int ret) { ==== //depot/projects/soc2009/dforsyth_libpkg/libpkg/pkg_util.h#5 (text+ko) ==== @@ -6,7 +6,6 @@ int subdir_sel(struct dirent *ent); char *path_strdup(const char *name); -void argument_rage_quit(const char *function, const char *message, - int ret); +void arg_rage_quit(const char *function, const char *message, int ret); #endif ==== //depot/projects/soc2009/dforsyth_libpkg/libpkg/pkgdb_old.h#2 (text+ko) ==== @@ -1,5 +1,5 @@ -#ifndef __PKGDB_H__ -#define __PKGDB_H__ +#ifndef __PKGDB_OLD_H__ +#define __PKGDB_OLD_H__ #include "pkg_plist.h" #include ==== //depot/projects/soc2009/dforsyth_libpkg/pkg_info/main.c#8 (text+ko) ==== @@ -5,9 +5,6 @@ #include "pkg.h" #include "pkg_info.h" -#define PKG_DBDIR_DEFAULT "/var/db/pkg" /* Move this. */ -#define BAD_OR_UNKNOWN_VALUE "???" - short opt_all = 0; short opt_glob = 0; short opt_show_all_info = 0; ==== //depot/projects/soc2009/dforsyth_libpkg/pkg_info/pkg_info.h#4 (text+ko) ==== @@ -1,6 +1,9 @@ #ifndef __PKG_INFO_H__ #define __PKG_INFO_H__ +#define PKG_DBDIR_DEFAULT "/var/db/pkg" /* Move this. */ +#define BAD_OR_UNKNOWN_VALUE "???" + void perform_on_db(struct pkgdb *db); void print_pkg_information(struct pkg *p); void parse_opts(int argc, char **argv); From owner-p4-projects@FreeBSD.ORG Thu Jun 11 07:12:02 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id B72371065674; Thu, 11 Jun 2009 07:12:01 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 77C611065672 for ; Thu, 11 Jun 2009 07:12:01 +0000 (UTC) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 6457E8FC08 for ; Thu, 11 Jun 2009 07:12:01 +0000 (UTC) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n5B7C1gS061249 for ; Thu, 11 Jun 2009 07:12:01 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n5B7C1Ux061243 for perforce@freebsd.org; Thu, 11 Jun 2009 07:12:01 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Date: Thu, 11 Jun 2009 07:12:01 GMT Message-Id: <200906110712.n5B7C1Ux061243@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to bb+lists.freebsd.perforce@cyrus.watson.org using -f From: Robert Watson To: Perforce Change Reviews Cc: Subject: PERFORCE change 164072 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 11 Jun 2009 07:12:02 -0000 http://perforce.freebsd.org/chv.cgi?CH=164072 Change 164072 by rwatson@rwatson_freebsd_capabilities on 2009/06/11 07:11:08 Document lch_start_flags(). Affected files ... .. //depot/projects/trustedbsd/capabilities/src/lib/libcapability/libcapability.3#11 edit Differences ... ==== //depot/projects/trustedbsd/capabilities/src/lib/libcapability/libcapability.3#11 (text+ko) ==== @@ -48,6 +48,8 @@ .Fn lc_limitfd "int fd" "cap_rights_t rights" .Ft int .Fn lch_start "const char *sandbox" "char *const argv[]" "struct lc_sandbox **lcsp" +.Ft int +.Fn lch_start_flags "const char *sandbox" "char *const argv[]" "u_int flags" "struct lc_sandbox **lcsp" .Ft void .Fn lch_stop "struct lc_sandbox *lcsp" .Ft int @@ -85,13 +87,31 @@ .Dt "struct lc_sandbox" , which is returned by .Fn lch_start +and +.Fn lch_start_flags for successfully started sandboxes, and passed into other APIs to indicate which sandbox should be acted on. -.Fn lch_start -creates a new executing sandbox, given the name of the sandbox binary via -.Va sandbox . -Executing sandboxes may be stopped (and state freed) using +Both calls create new executing sandboxes, given the name of the sandbox +binary via +.Va sandbox , +and command line arguments +.Va argv . +.Pp +.Fn lch_start_flags +accepts an optional flags field to fine-tune aspects of sandbox operation; +the only currently defined flag is +.Dv LCH_PERMIT_STDERR , +which allows the sandbox to write to the current process's +.Dv stderr . +By default, this is not permitted. +.Pp +Executing sandboxes may be stopped (and all state freed) using .Fn lch_stop . +Following a call to +.Fn lch_stop , +the +.Va lchp +argument will no longer be valid. .Pp Properties of the sandbox, such as the socket used to communicate with it, the proces descriptor for the sandbox process, and the pid, may be queried From owner-p4-projects@FreeBSD.ORG Thu Jun 11 07:37:28 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 04197106567B; Thu, 11 Jun 2009 07:37:28 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id B25511065677 for ; Thu, 11 Jun 2009 07:37:27 +0000 (UTC) (envelope-from dforsyth@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 860738FC15 for ; Thu, 11 Jun 2009 07:37:27 +0000 (UTC) (envelope-from dforsyth@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n5B7bRq8033910 for ; Thu, 11 Jun 2009 07:37:27 GMT (envelope-from dforsyth@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n5B7bRQB033908 for perforce@freebsd.org; Thu, 11 Jun 2009 07:37:27 GMT (envelope-from dforsyth@FreeBSD.org) Date: Thu, 11 Jun 2009 07:37:27 GMT Message-Id: <200906110737.n5B7bRQB033908@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to dforsyth@FreeBSD.org using -f From: David Forsythe To: Perforce Change Reviews Cc: Subject: PERFORCE change 164074 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 11 Jun 2009 07:37:29 -0000 http://perforce.freebsd.org/chv.cgi?CH=164074 Change 164074 by dforsyth@squirrel on 2009/06/11 07:36:38 Committing changes to prevent data loss. Still overhauling pkgdb. Affected files ... .. //depot/projects/soc2009/dforsyth_libpkg/libpkg/pkg.h#13 edit .. //depot/projects/soc2009/dforsyth_libpkg/libpkg/pkg_util.h#6 edit .. //depot/projects/soc2009/dforsyth_libpkg/libpkg/pkgdb_hierdb.c#2 edit .. //depot/projects/soc2009/dforsyth_libpkg/libpkg/pkgdb_hierdb.h#2 edit .. //depot/projects/soc2009/dforsyth_libpkg/libpkg/pkgdb_hierdb_pkgdb_sub.c#2 edit Differences ... ==== //depot/projects/soc2009/dforsyth_libpkg/libpkg/pkg.h#13 (text+ko) ==== @@ -1,6 +1,9 @@ #ifndef __PKG_H__ #define __PKG_H__ +/* When I get more than one, I'll plop it into an enum type. */ +#define HIERDB 0 + /* TODO: Error codes. */ /* pkg_file */ ==== //depot/projects/soc2009/dforsyth_libpkg/libpkg/pkg_util.h#6 (text+ko) ==== @@ -4,8 +4,11 @@ #include int subdir_sel(struct dirent *ent); + char *path_strdup(const char *name); +char *path_build(const char *prefix, const char *suffix); + void arg_rage_quit(const char *function, const char *message, int ret); #endif ==== //depot/projects/soc2009/dforsyth_libpkg/libpkg/pkgdb_hierdb.c#2 (text+ko) ==== @@ -9,13 +9,15 @@ #include "pkgdb.h" int -pkgdb_hierdb_dbopen(struct pkgdb *db, const char *db_root) +pkgdb_hierdb_db_open(struct pkgdb *db, const char *db_root) { int s; struct stat sb; char *new_db_root; - - if (!VALID_DB(db)) +#if 0 + if (!VALID_DB(db))a +#endif + if (db == NULL) arg_rage_quit(__func__, "Not a valid database.", RAGE_AT_CLIENT); if (db_root == NULL) arg_rage_quit(__func__, "Not a valid root directory for @@ -48,8 +50,10 @@ int status; struct pkgdb_sub *dbs; struct dirent **ents; - +#if 0 if (!VALID_DB(db)) +#endif + if (db == NULL); arg_rage_quit(__func__, "Not a valid database.", RAGE_AT_CLIENT); /* TODO: Add dirty check. */ @@ -134,3 +138,8 @@ return (status); } +int +pkgdb_hierdb_db_close(struct pkgdb *db) +{ + return (0); +} ==== //depot/projects/soc2009/dforsyth_libpkg/libpkg/pkgdb_hierdb.h#2 (text+ko) ==== @@ -1,0 +1,14 @@ +#ifndef __PKGDB_HIERDB_H__ +#define __PKGDB_HIERDB_H__ + +int pkgdb_hierdb_db_open(struct pkgdb *db, const char *db_root); + +int pkgdb_hier_db_init(struct pkgdb *db); + + +int pkgdb_hierdb_read_pkgdb_sub(struct pkgdb *db, struct pkgdb_sur *dbs, + const char *ident); + +int pkgdb_hierdb_db_close(struct pkgdb *db); + +#endif ==== //depot/projects/soc2009/dforsyth_libpkg/libpkg/pkgdb_hierdb_pkgdb_sub.c#2 (text+ko) ==== @@ -45,7 +45,10 @@ struct stat sb; /* Only called internally, this should never be an issue. */ +#if 0 if (!VALID_DB(owner)) +#endif + if (db == NULL) arg_rage_quit(__func__, "Owner must be a valid database.", RAGE_AT_LIB); if (dbs == NULL) From owner-p4-projects@FreeBSD.ORG Thu Jun 11 10:33:32 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 8F2E81065697; Thu, 11 Jun 2009 10:33:32 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 4675C1065686 for ; Thu, 11 Jun 2009 10:33:32 +0000 (UTC) (envelope-from zec@fer.hr) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 33C808FC20 for ; Thu, 11 Jun 2009 10:33:32 +0000 (UTC) (envelope-from zec@fer.hr) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n5BAXWV2035761 for ; Thu, 11 Jun 2009 10:33:32 GMT (envelope-from zec@fer.hr) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n5BAXV3x035759 for perforce@freebsd.org; Thu, 11 Jun 2009 10:33:31 GMT (envelope-from zec@fer.hr) Date: Thu, 11 Jun 2009 10:33:31 GMT Message-Id: <200906111033.n5BAXV3x035759@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to zec@fer.hr using -f From: Marko Zec To: Perforce Change Reviews Cc: Subject: PERFORCE change 164085 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 11 Jun 2009 10:33:34 -0000 http://perforce.freebsd.org/chv.cgi?CH=164085 Change 164085 by zec@zec_tpx32 on 2009/06/11 10:33:31 Improve style. Pointed out by: bz Affected files ... .. //depot/projects/vimage-commit2/src/sys/netgraph/netgraph.h#27 edit .. //depot/projects/vimage-commit2/src/sys/sys/proc.h#20 edit Differences ... ==== //depot/projects/vimage-commit2/src/sys/netgraph/netgraph.h#27 (text+ko) ==== @@ -130,8 +130,7 @@ #define HK_FORCE_WRITER 0x0004 /* Incoming data queued as a writer */ #define HK_DEAD 0x0008 /* This is the dead hook.. don't free */ #define HK_HI_STACK 0x0010 /* Hook has hi stack usage */ -#define HK_TO_INBOUND 0x0020 /* Hook calls into the inbound path - of the network stack. */ +#define HK_TO_INBOUND 0x0020 /* Hook on ntw. stack inbound path. */ /* * Public Methods for hook @@ -1208,16 +1207,16 @@ /* * Mark the current thread when called from the outbound path of the * network stack, in order to enforce queuing on ng nodes calling into - * the inbound network stack path.. + * the inbound network stack path. */ #define NG_OUTBOUND_THREAD_REF() \ - curthread->td_ng_outbound++; + curthread->td_ng_outbound++ #define NG_OUTBOUND_THREAD_UNREF() \ do { \ curthread->td_ng_outbound--; \ KASSERT(curthread->td_ng_outbound >= 0, \ ("%s: negative td_ng_outbound", __func__)); \ - } while (0); + } while (0) /* Virtualization macros */ #define INIT_VNET_NETGRAPH(vnet) \ ==== //depot/projects/vimage-commit2/src/sys/sys/proc.h#20 (text+ko) ==== @@ -278,8 +278,8 @@ struct lpohead td_lprof[2]; /* (a) lock profiling objects. */ struct kdtrace_thread *td_dtrace; /* (*) DTrace-specific data. */ int td_errno; /* Error returned by last syscall. */ - struct vnet *td_vnet; /* (k) Effective vnet. */ - const char *td_vnet_lpush; /* (k) Debugging vnet push / pop. */ + struct vnet *td_vnet; /* (*) Effective vnet. */ + const char *td_vnet_lpush; /* (*) Debugging vnet push / pop. */ }; struct mtx *thread_lock_block(struct thread *); From owner-p4-projects@FreeBSD.ORG Thu Jun 11 11:15:15 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 9CCC01065670; Thu, 11 Jun 2009 11:15:15 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 5B187106564A for ; Thu, 11 Jun 2009 11:15:15 +0000 (UTC) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 4581E8FC1D for ; Thu, 11 Jun 2009 11:15:15 +0000 (UTC) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n5BBFF0N042215 for ; Thu, 11 Jun 2009 11:15:15 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n5BBFFjb042213 for perforce@freebsd.org; Thu, 11 Jun 2009 11:15:15 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Date: Thu, 11 Jun 2009 11:15:15 GMT Message-Id: <200906111115.n5BBFFjb042213@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to bb+lists.freebsd.perforce@cyrus.watson.org using -f From: Robert Watson To: Perforce Change Reviews Cc: Subject: PERFORCE change 164089 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 11 Jun 2009 11:15:16 -0000 http://perforce.freebsd.org/chv.cgi?CH=164089 Change 164089 by rwatson@rwatson_freebsd_capabilities on 2009/06/11 11:15:13 Implement a simple and not entirely complete libcapability PRC (lcrpc) scheme to allow sandboxes to offer services and hosts to consume them. There's further socket/signal/etc work to do here, and no marshalling is implemented (so rpcgen could be used or the like if desired). Affected files ... .. //depot/projects/trustedbsd/capabilities/src/lib/libcapability/libcapability.h#10 edit .. //depot/projects/trustedbsd/capabilities/src/lib/libcapability/libcapability_host.c#8 edit .. //depot/projects/trustedbsd/capabilities/src/lib/libcapability/libcapability_sandbox.c#4 edit .. //depot/projects/trustedbsd/capabilities/src/lib/libcapability/libcapability_sandbox_api.h#3 edit Differences ... ==== //depot/projects/trustedbsd/capabilities/src/lib/libcapability/libcapability.h#10 (text+ko) ==== @@ -30,7 +30,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $P4: //depot/projects/trustedbsd/capabilities/src/lib/libcapability/libcapability.h#9 $ + * $P4: //depot/projects/trustedbsd/capabilities/src/lib/libcapability/libcapability.h#10 $ */ #ifndef _LIBCAPABILITY_H_ @@ -66,9 +66,12 @@ int lch_getprocdesc(struct lc_sandbox *lcsp, int *fdp); /* - * I/O interfaces for capability mode sandboxs. + * I/O interfaces for the host environment. */ +struct iovec; ssize_t lch_recv(struct lc_sandbox *lcsp, void *buf, size_t len, int flags); +int lch_rpc(struct lc_sandbox *lcsp, u_int32_t opno, struct iovec *req, + int reqcount, struct iovec *rep, int repcount, size_t *replenp); ssize_t lch_send(struct lc_sandbox *lcsp, const void *msg, size_t len, int flags); @@ -78,7 +81,11 @@ int lcs_get(struct lc_host **lchpp); int lcs_getsock(struct lc_host *lchp, int *fdp); ssize_t lcs_recv(struct lc_host *lchp, void *buf, size_t len, int flags); +int lcs_recvrpc(struct lc_host *lchp, u_int32_t *opnop, + u_int32_t *seqnop, u_char **bufferp, size_t *lenp); ssize_t lcs_send(struct lc_host *lchp, const void *msg, size_t len, int flags); +int lcs_sendrpc(struct lc_host *lchp, u_int32_t opno, u_int32_t seqno, + struct iovec *rep, int repcount); #endif /* !_LIBCAPABILITY_H_ */ ==== //depot/projects/trustedbsd/capabilities/src/lib/libcapability/libcapability_host.c#8 (text+ko) ==== @@ -30,13 +30,14 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $P4: //depot/projects/trustedbsd/capabilities/src/lib/libcapability/libcapability_host.c#7 $ + * $P4: //depot/projects/trustedbsd/capabilities/src/lib/libcapability/libcapability_host.c#8 $ */ #include #include #include #include +#include #include #include @@ -362,7 +363,7 @@ if (lcap->lcs_fd_sock == -1 || lcap->lcs_fd_sock == 0) { - errno = ESRCH; + errno = ECHILD; return (-1); } return (send(lcap->lcs_fd_sock, msg, len, flags)); @@ -379,3 +380,106 @@ } return (recv(lcap->lcs_fd_sock, buf, len, flags)); } + +/* + * Simple libcapability RPC facility (lcrpc): send a request, get back a + * reply (up to the size bound of the buffers passed in). The caller is + * responsible for retransmitting if the sandbox fails. + * + * Right now sequence numbers are unimplemented -- that's fine because we + * don't need retransmission, and are synchronous. However, it might not be + * a bad idea to use them anyway. + */ +int +lch_rpc(struct lc_sandbox *lcap, u_int32_t opno, struct iovec *req, + int reqcount, struct iovec *rep, int repcount, size_t *replenp) +{ + struct lcrpc_request_hdr req_hdr; + struct lcrpc_reply_hdr rep_hdr; + size_t left, off, space, totlen, want; + ssize_t len; + int i; + + bzero(&req_hdr, sizeof(req_hdr)); + req_hdr.lcrpc_reqhdr_magic = LCRPC_REQUEST_HDR_MAGIC; + req_hdr.lcrpc_reqhdr_seqno = 0; + req_hdr.lcrpc_reqhdr_opno = opno; + for (i = 0; i < reqcount; i++) + req_hdr.lcrpc_reqhdr_datalen += req[i].iov_len; + for (i = 0; i < repcount; i++) + req_hdr.lcrpc_reqhdr_maxrepdatalen += rep[i].iov_len; + + /* + * Send our header. + */ + len = lch_send(lcap, &req_hdr, sizeof(req_hdr), 0); + if (len < 0) + return (-1); + if (len != sizeof(req_hdr)) { + errno = ECHILD; + return (-1); + } + + /* + * Send the user request. + */ + for (i = 0; i < reqcount; i++) { + len = lch_send(lcap, req[i].iov_base, req[i].iov_len, 0); + if (len < 0) + return (-1); + if ((size_t)len != req[i].iov_len) { + errno = ECHILD; + return (-1); + } + } + + /* + * Receive our header and validate. + */ + len = lch_recv(lcap, &rep_hdr, sizeof(rep_hdr), MSG_WAITALL); + if (len < 0) + return (-1); + if (len != sizeof(rep_hdr)) { + errno = ECHILD; + return (-1); + } + + if (rep_hdr.lcrpc_rephdr_magic != LCRPC_REPLY_HDR_MAGIC || + rep_hdr.lcrpc_rephdr_seqno != 0 || + rep_hdr.lcrpc_rephdr_opno != opno || + rep_hdr.lcrpc_rephdr_datalen > req_hdr.lcrpc_reqhdr_maxrepdatalen) { + errno = EBADRPC; + return (-1); + } + + /* + * Receive the user data. Notice that we can partially overwrite the + * user buffer but still receive an error. + */ + totlen = 0; + for (i = 0; i < repcount; i++) { + off = 0; + while (totlen < rep_hdr.lcrpc_rephdr_datalen) { + space = rep[i].iov_len - off; + left = rep_hdr.lcrpc_rephdr_datalen - totlen; + want = (space > left) ? space : left; + len = lch_recv(lcap, + (u_char *)((uintptr_t)rep[i].iov_base + off), + want, MSG_WAITALL); + if (len < 0) + return (-1); + if ((size_t)len != want) { + errno = ECHILD; + return (-1); + } + off += len; + totlen += len; + if (rep[i].iov_len == off) + break; + } + if (totlen == rep_hdr.lcrpc_rephdr_datalen) + break; + } + *replenp = totlen; + return (0); +} ==== //depot/projects/trustedbsd/capabilities/src/lib/libcapability/libcapability_sandbox.c#4 (text+ko) ==== @@ -37,6 +37,7 @@ #include #include #include +#include #include #include @@ -122,3 +123,107 @@ return (send(lchp->lch_fd_sock, msg, len, flags)); } + +/* + * libcapability RPC facility (lcrpc) sandbox routines. Since arguments are + * variable size, space is allocated by the RPC code rather than the caller, + * who is expected to free it with free(3) if desired. + */ +int +lcs_recvrpc(struct lc_host *lchp, u_int32_t *opnop, u_int32_t *seqnop, + u_char **bufferp, size_t *lenp) +{ + struct lcrpc_request_hdr req_hdr; + size_t totlen; + ssize_t len; + u_char *buffer; + int error; + + len = lcs_recv(lchp, &req_hdr, sizeof(req_hdr), MSG_WAITALL); + if (len < 0) + return (-1); + if (len != sizeof(req_hdr)) { + errno = EBADMSG; + return (-1); + } + + if (req_hdr.lcrpc_reqhdr_magic != LCRPC_REQUEST_HDR_MAGIC) { + errno = EBADMSG; + return (-1); + } + + /* + * XXXRW: Should we check that the receive data fits in the address + * space of the sandbox? + * + * XXXRW: If malloc() fails, we should drain the right amount of data + * from the socket so that the next RPC will succeed. Possibly we + * should also reply with an error from this layer to the sender? + * What about if there are other socket errors, such as EINTR? + */ + buffer = malloc(req_hdr.lcrpc_reqhdr_datalen); + if (buffer == NULL) + return (-1); + + /* + * XXXRW: Likewise, how to handle failure at this stage? + */ + totlen = 0; + while (totlen < req_hdr.lcrpc_reqhdr_datalen) { + len = lcs_recv(lchp, buffer + totlen, + req_hdr.lcrpc_reqhdr_datalen - totlen, MSG_WAITALL); + if (len < 0) { + error = errno; + free(buffer); + return (-1); + } + totlen += len; + } + *bufferp = buffer; + *lenp = totlen; + *opnop = req_hdr.lcrpc_reqhdr_opno; + *seqnop = req_hdr.lcrpc_reqhdr_seqno; + return (0); +} + +int +lcs_sendrpc(struct lc_host *lchp, u_int32_t opno, u_int32_t seqno, + struct iovec *rep, int repcount) +{ + struct lcrpc_reply_hdr rep_hdr; + ssize_t len; + int i; + + bzero(&rep_hdr, sizeof(rep_hdr)); + rep_hdr.lcrpc_rephdr_magic = LCRPC_REPLY_HDR_MAGIC; + rep_hdr.lcrpc_rephdr_seqno = seqno; + rep_hdr.lcrpc_rephdr_opno = opno; + rep_hdr.lcrpc_rephdr_datalen = 0; + for (i = 0; i < repcount; i++) + rep_hdr.lcrpc_rephdr_datalen += rep[i].iov_len; + + /* + * Send our header. + */ + len = lcs_send(lchp, &rep_hdr, sizeof(rep_hdr), 0); + if (len < 0) + return (-1); + if (len != sizeof(rep_hdr)) { + errno = EPIPE; + return (-1); + } + + /* + * Send user data. + */ + for (i = 0; i < repcount; i++) { + len = lcs_send(lchp, rep[i].iov_base, rep[i].iov_len, 0); + if (len < 0) + return (-1); + if ((size_t)len != rep[i].iov_len) { + errno = EPIPE; + return (-1); + } + } + return (0); +} ==== //depot/projects/trustedbsd/capabilities/src/lib/libcapability/libcapability_sandbox_api.h#3 (text+ko) ==== @@ -30,7 +30,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $P4: //depot/projects/trustedbsd/capabilities/src/lib/libcapability/libcapability_sandbox_api.h#2 $ + * $P4: //depot/projects/trustedbsd/capabilities/src/lib/libcapability/libcapability_sandbox_api.h#3 $ */ #ifndef _LIBCAPABILITY_SANDBOX_API_H_ @@ -43,4 +43,33 @@ #define LIBCAPABILITY_SANDBOX_API_ENV "LIBCAPABILITY_SANDBOX" #define LIBCAPABILITY_SANDBOX_API_SOCK "sock" +/* + * Simple libcapability RPC facility (lcrpc) definitions. + */ +#define LCRPC_REQUEST_HDR_MAGIC 0x29ee2d7eb9143d98 +struct lcrpc_request_hdr { + u_int64_t lcrpc_reqhdr_magic; + u_int32_t lcrpc_reqhdr_seqno; + u_int32_t lcrpc_reqhdr_opno; + u_int64_t lcrpc_reqhdr_datalen; + u_int64_t lcrpc_reqhdr_maxrepdatalen; + u_int64_t _lcrpc_reqhdr_spare3; + u_int64_t _lcrpc_reqhdr_spare2; + u_int64_t _lcrpc_reqhdr_spare1; + u_int64_t _lcrpc_reqhdr_spare0; +} __packed; + +#define LCRPC_REPLY_HDR_MAGIC 0x37cc2e29f5cce29b +struct lcrpc_reply_hdr { + u_int64_t lcrpc_rephdr_magic; + u_int32_t lcrpc_rephdr_seqno; + u_int32_t lcrpc_rephdr_opno; + u_int64_t lcrpc_rephdr_datalen; + u_int64_t _lcrpc_rephdr_spare4; + u_int64_t _lcrpc_rephdr_spare3; + u_int64_t _lcrpc_rephdr_spare2; + u_int64_t _lcrpc_rephdr_spare1; + u_int64_t _lcrpc_rephdr_spare0; +} __packed; + #endif /* !_LIBCAPABILITY_H_ */ From owner-p4-projects@FreeBSD.ORG Thu Jun 11 11:28:29 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 838AC10656C8; Thu, 11 Jun 2009 11:28:29 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 3F16E10656C6 for ; Thu, 11 Jun 2009 11:28:29 +0000 (UTC) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 2A8BE8FC1E for ; Thu, 11 Jun 2009 11:28:29 +0000 (UTC) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n5BBST1N043199 for ; Thu, 11 Jun 2009 11:28:29 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n5BBSS9t043197 for perforce@freebsd.org; Thu, 11 Jun 2009 11:28:28 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Date: Thu, 11 Jun 2009 11:28:28 GMT Message-Id: <200906111128.n5BBSS9t043197@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to bb+lists.freebsd.perforce@cyrus.watson.org using -f From: Robert Watson To: Perforce Change Reviews Cc: Subject: PERFORCE change 164092 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 11 Jun 2009 11:28:30 -0000 http://perforce.freebsd.org/chv.cgi?CH=164092 Change 164092 by rwatson@rwatson_freebsd_capabilities on 2009/06/11 11:28:10 Document RPC functions, as well as their rather serious limitations. Affected files ... .. //depot/projects/trustedbsd/capabilities/src/lib/libcapability/libcapability.3#12 edit Differences ... ==== //depot/projects/trustedbsd/capabilities/src/lib/libcapability/libcapability.3#12 (text+ko) ==== @@ -60,6 +60,8 @@ .Fn lch_getprocdesc "struct lc_sandbox *lcsp" "int *fdp" .Ft ssize_t .Fn lch_recv "struct lc_sandbox *lcsp, void *buf" "size_t len" "int flags" +.Ft int +.Fn lch_rpc "struct lc_sandbox *lcsp" "u_int32_t opno" "struct iovec *req" "int reqcount" "struct iovec *rep" "int repcount" "size_t *replenp" .Ft ssize_t .Fn lch_send "struct lc_sandbox *lcsp" "const void *msg" "size_t len" "int flags" .Ft int @@ -68,13 +70,22 @@ .Fn lcs_getsock "struct lc_host *lchp" "int *fdp" .Ft ssize_t .Fn lcs_recv "struct lc_host *lchp" "void *buf" "size_t len" "int flags" +.Ft int +.Fn lcs_recvrpc "struct lc_host *lchp" "u_int32_t *opnop" "u_int32_t *seqnop" "u_char **bufferp" "size_t *lenp" .Ft ssize_t .Fn lcs_send "struct lc_host *lchp" "const void *msg" "size_t len" "int flags" +.Ft int +.Fn lcs_sendrpc "struct lc_host *lchp" "u_int32_t opno" "u_int32_t seqno" "struct iovec *rep" "int repcount" .Sh DESCRIPTION The .Nm library routines provide services for processes hosting or running in capability mode. +Depending on the requirements of the host and sandbox, the API can simply be +used to set up and stop sandboxes, used to manage I/O using a +.Xr unix 4 +domain socket connection to the sandbox, or can provide a basic remote +procedure call (RPC) facility. .Sh HOST API The .Nm @@ -130,6 +141,31 @@ .Xr send 2 to avoid sandbox consumers from having to query sandbox socket file descriptors before use. +.Pp +.Fn lch_rpc +provides a simple synchronous RPC facility, and is intended to be used in +coordination with the +.Fn lcs_recvrpc +and +.Fn lcs_sendrpc +sandbox APIs. +The host provides an operation number meaningful to th sandbox, +.Va opno, +RPC arguments represented by +.Va req +and +.Va reqcount +using an +.Vt iovec +in the style of +.Xr writev 2 , +and similar receive buffers passed via +.Va rep +and +.Va repcount . +If the RPC fails, -1 will be returned, or 0 and the size of any reply will be +returned by reference using +.Va replenp . .Sh SANDBOX API The .Nm @@ -154,6 +190,36 @@ and .Xr send 2 to avoid sandboxes having to query host socket file descriptors before use. +.Pp +.Fn lcs_recvrpc +and +.Fn lcs_sendrpc +may be used to implement a simple RPC system, in coordination with a host +using +.Fn lch_rpc . +.Fn lcs_recvrpc +blocks awaiting the receipt of an RPC request, which will be returned in a +buffer allocated using +.Xr malloc 3 , +.Va bufferp , +and with a data size returned via +.Va lenp . +The caller will also receive an operation number and a sequence number via +.Va opnop +and +.Va seqnop . +.Pp +When an RPC is complete, it should be returned to the host via +.Xr lcs_sendrpc , +which accepts the same operation and sequence number as arguments, as well as +reply data via the +.Vt iovec +.Va rep +and +.Va repcount . +When the sandbox is done with the request data, it should free the memory +using +.Xr free 3 . .Sh SEE ALSO .Xr cap_enter 2 , .Xr cap_new 2 @@ -164,6 +230,16 @@ .Sh BUGS WARNING: THIS IS EXPERIMENTAL SECURITY SOFTWARE THAT MUST NOT BE RELIED ON IN PRODUCTION SYSTEMS. IT WILL BREAK YOUR SOFTWARE IN NEW AND UNEXPECTED WAYS. +.Pp +The socket calls used by the simple RPC system are not robust in the presence +of signal delivery, which should be fixed. +.Pp +All sequence numbers will always have the value 0. +This is fine from a retransmission perspective, as generally no +retransmission should be required, but consumers should serialize use of the +RPC service when consuming it from concurrent callers (such as multiple +threads or multiple processes) to prevent I/O interlacing from corrupting the +RPC stream. .Sh AUTHORS These functions and the capability facility were created by .An "Robert N. M. Watson" From owner-p4-projects@FreeBSD.ORG Thu Jun 11 11:29:31 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id CBB3F1065679; Thu, 11 Jun 2009 11:29:30 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 7FE241065676 for ; Thu, 11 Jun 2009 11:29:30 +0000 (UTC) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 6AF918FC1A for ; Thu, 11 Jun 2009 11:29:30 +0000 (UTC) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n5BBTUBN043260 for ; Thu, 11 Jun 2009 11:29:30 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n5BBTU3K043258 for perforce@freebsd.org; Thu, 11 Jun 2009 11:29:30 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Date: Thu, 11 Jun 2009 11:29:30 GMT Message-Id: <200906111129.n5BBTU3K043258@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to bb+lists.freebsd.perforce@cyrus.watson.org using -f From: Robert Watson To: Perforce Change Reviews Cc: Subject: PERFORCE change 164093 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 11 Jun 2009 11:29:32 -0000 http://perforce.freebsd.org/chv.cgi?CH=164093 Change 164093 by rwatson@rwatson_freebsd_capabilities on 2009/06/11 11:28:40 Implement ping-ping test host/sandbox using lcrpc. Affected files ... .. //depot/projects/trustedbsd/capabilities/src/tools/cap/libcapability_exec/libcapability_exec.c#2 edit .. //depot/projects/trustedbsd/capabilities/src/tools/cap/sandbox_echo/sandbox_echo.c#2 edit Differences ... ==== //depot/projects/trustedbsd/capabilities/src/tools/cap/libcapability_exec/libcapability_exec.c#2 (text+ko) ==== @@ -35,6 +35,7 @@ __FBSDID("$FreeBSD$"); #include +#include #include #include @@ -48,8 +49,10 @@ { struct lc_sandbox *lcsp; char *sandbox_argv[2] = { argv[1], NULL }; - ssize_t len; + struct iovec iov; + size_t len; char ch; + int i; if (argc != 2) errx(-1, "usage: libcapability_exec sandbox"); @@ -58,17 +61,21 @@ < 0) err(-1, "lch_start %s", argv[1]); - ch = 'X'; - len = lch_send(lcsp, &ch, sizeof(ch), 0); - if (len != sizeof(ch)) - err(-1, "lch_send: returned len %d not expected", len); - - ch = 'Y'; - len = lch_recv(lcsp, &ch, sizeof(ch), 0); - if (len != sizeof(ch)) - errx(-1, "lch_recv: returned len %d not expected", len); - if (ch != 'X') - errx(-1, "lch_recv: expected X and got %c", ch); + for (i = 0; i < 10; i++) { + ch = i; + iov.iov_base = &ch; + iov.iov_len = sizeof(ch); + if (lch_rpc(lcsp, 0, &iov, 1, &iov, 1, &len) < 0) + err(-1, "lch_rpc"); + if (len != sizeof(ch)) + errx(-1, "lch_rpc returned size %d not %d", len, + sizeof(ch)); + if (ch != i) + errx(-1, "lch_recv: expected %d and got %d", i, ch); + printf("."); + fflush(stdout); + } + printf(" OK\n"); lch_stop(lcsp); } ==== //depot/projects/trustedbsd/capabilities/src/tools/cap/sandbox_echo/sandbox_echo.c#2 (text+ko) ==== @@ -1,20 +1,67 @@ +/*- + * Copyright (c) 2009 Robert N. M. Watson + * All rights reserved. + * + * WARNING: THIS IS EXPERIMENTAL SECURITY SOFTWARE THAT MUST NOT BE RELIED + * ON IN PRODUCTION SYSTEMS. IT WILL BREAK YOUR SOFTWARE IN NEW AND + * UNEXPECTED WAYS. + * + * This software was developed at the University of Cambridge Computer + * Laboratory with support from a grant from Google, Inc. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 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. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * 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. + */ + +#include +__FBSDID("$FreeBSD$"); + #include +#include + +#include #include +#include int main(int argc, char *argv[]) { struct lc_host *lchp; - ssize_t len; - char ch; + u_int32_t opno, seqno; + struct iovec iov; + u_char *buffer; + size_t len; if (lcs_get(&lchp) < 0) - return (-1); - len = lcs_recv(lchp, &ch, sizeof(ch), 0); - if (len != sizeof(ch)) - return (-2); - len = lcs_send(lchp, &ch, sizeof(ch), 0); - if (len != sizeof(ch)) - return (-3); - return (0); + errx(-1, "libcapability sandbox binary"); + + while (1) { + if (lcs_recvrpc(lchp, &opno, &seqno, &buffer, &len) < 0) + return (-2); + if (len != 1) + return (-3); + iov.iov_base = buffer; + iov.iov_len = 1; + if (lcs_sendrpc(lchp, opno, seqno, &iov, 1) < 0) + return (-4); + free(buffer); + } } From owner-p4-projects@FreeBSD.ORG Thu Jun 11 12:01:07 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 2453B10656CF; Thu, 11 Jun 2009 12:01:06 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 5952C10656F1 for ; Thu, 11 Jun 2009 12:01:05 +0000 (UTC) (envelope-from jona@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 39AEC8FC2E for ; Thu, 11 Jun 2009 12:01:05 +0000 (UTC) (envelope-from jona@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n5BC15tZ045658 for ; Thu, 11 Jun 2009 12:01:05 GMT (envelope-from jona@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n5BC15Fe045656 for perforce@freebsd.org; Thu, 11 Jun 2009 12:01:05 GMT (envelope-from jona@FreeBSD.org) Date: Thu, 11 Jun 2009 12:01:05 GMT Message-Id: <200906111201.n5BC15Fe045656@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to jona@FreeBSD.org using -f From: Jonathan Anderson To: Perforce Change Reviews Cc: Subject: PERFORCE change 164095 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 11 Jun 2009 12:01:15 -0000 http://perforce.freebsd.org/chv.cgi?CH=164095 Change 164095 by jona@jona-trustedbsd-belle-vm on 2009/06/11 12:00:09 user_angel can now handle requests for powerboxes (although the powerbox isn't actually implemented yet) Affected files ... .. //depot/projects/trustedbsd/capabilities/src/tools/cap/user_angel/Makefile#3 edit .. //depot/projects/trustedbsd/capabilities/src/tools/cap/user_angel/fdcomm.c#3 edit .. //depot/projects/trustedbsd/capabilities/src/tools/cap/user_angel/protocol.c#3 edit .. //depot/projects/trustedbsd/capabilities/src/tools/cap/user_angel/protocol.h#3 edit .. //depot/projects/trustedbsd/capabilities/src/tools/cap/user_angel/server.c#3 edit .. //depot/projects/trustedbsd/capabilities/src/tools/cap/user_angel/test_client.c#3 edit .. //depot/projects/trustedbsd/capabilities/src/tools/cap/user_angel/user_angel.c#3 edit Differences ... ==== //depot/projects/trustedbsd/capabilities/src/tools/cap/user_angel/Makefile#3 (text+ko) ==== @@ -1,7 +1,7 @@ CFLAGS=-g -ggdb --std=c99 -Wall -Werror -pedantic-errors BIN=user_angel test_client -AGENT_OBJ = user_angel.o server.o cap.o protocol.o fdcomm.o +AGENT_OBJ = user_angel.o server.o cap.o protocol.o fdcomm.o powerbox.o CLIENT_OBJ = test_client.o protocol.o fdcomm.o @@ -16,7 +16,8 @@ cap.o: cap.c cap.h fdcomm.o: fdcomm.c fdcomm.h -protocol.o: protocol.c protocol.h +powerbox.o: powerbox.c powerbox.h +protocol.o: protocol.c protocol.h powerbox.h server.o: server.c protocol.h server.h user_angel.o: user_angel.c protocol.h server.h ==== //depot/projects/trustedbsd/capabilities/src/tools/cap/user_angel/fdcomm.c#3 (text+ko) ==== @@ -100,6 +100,7 @@ anc_data.hdr.cmsg_len = sizeof(struct fdhdr); anc_data.hdr.cmsg_level = SOL_SOCKET; anc_data.hdr.cmsg_type = SCM_RIGHTS; + anc_data.fd = -1; struct msghdr header; header.msg_name = NULL; ==== //depot/projects/trustedbsd/capabilities/src/tools/cap/user_angel/protocol.c#3 (text+ko) ==== @@ -33,32 +33,152 @@ #include +#include +#include +#include +#include + #include "protocol.h" -int get_int_from(int client, int *value) + +int cap_send_int(int client, int value) +{ + return send(client, &value, sizeof(int), 0); +} + +int cap_recv_int(int client, int *value) +{ + int bytes = -1; + while(bytes < 0) + { + bytes = recv(client, value, sizeof(int), 0); + + if((bytes < 0) && (errno == EAGAIN)) continue; + else break; + } + + return bytes; +} + + +int cap_send_string(int client, char *str, int len) { - return recv(client, value, sizeof(int), 0); + int total_bytes; + int bytes = cap_send_int(client, len); + if(bytes < 0) return bytes; + else total_bytes = bytes; + + if(len > 0) + { + bytes = send(client, str, len, 0); + if(bytes < 0) { perror("Error sending string"); return bytes; } + else total_bytes += bytes; + } + + return total_bytes; } -int get_string_from(int client, char *value, int maxlen) +int cap_recv_string(int client, char **value) { - int len; - int bytes = get_int_from(client, &len); - if(bytes <= 0) return bytes; + int len, total_bytes; + int bytes = cap_recv_int(client, &len); + if(bytes<= 0) return bytes; + else total_bytes = bytes; + + *value = (char*) malloc(len + 1); bytes = 0; while(bytes < len) { - int new_bytes = recv(client, value + bytes, maxlen - bytes, 0); + int new_bytes = recv(client, *value + bytes, len - bytes, 0); if(new_bytes < 0) return new_bytes; - bytes = bytes + new_bytes; + bytes += new_bytes; } - return bytes; + (*value)[len] = '\0'; + total_bytes += bytes; + + return total_bytes; +} + + +int cap_send_capbox_options(int client, struct capbox_options *options) +{ + int bytes, total_bytes = 0; + + bytes = cap_send_int(client, options->ui); + if(bytes <= 0) return bytes; + total_bytes += bytes; + + bytes = cap_send_int(client, options->operation); + if(bytes <= 0) return bytes; + total_bytes += bytes; + + bytes = cap_send_int(client, options->parent_window); + if(bytes <= 0) return bytes; + total_bytes += bytes; + + bytes = cap_send_string(client, options->start_path, options->pathlen); + if(bytes <= 0) return bytes; + total_bytes += bytes; +/* TODO: need to do a sendmsg with SCM_RIGHTS + bytes = cap_send_int(client, options->start_fd); + if(bytes <= 0) return bytes; + total_bytes += bytes; +*/ + bytes = cap_send_int(client, options->mult); + if(bytes <= 0) return bytes; + total_bytes += bytes; + + bytes = cap_send_string(client, options->filter, options->filterlen); + if(bytes <= 0) return bytes; + total_bytes += bytes; + + return total_bytes; } +int cap_recv_capbox_options(int client, struct capbox_options *options) +{ + int bytes, total_bytes = 0; + + bytes = cap_recv_int(client, (int*) &options->ui); + if(bytes <= 0) { perror("Error receiving UI option"); return bytes; } + total_bytes += bytes; + + bytes = cap_recv_int(client, (int*) &options->operation); + if(bytes <= 0) { perror("Error receiving operation"); return bytes; } + total_bytes += bytes; + + bytes = cap_recv_int(client, &options->parent_window); + if(bytes <= 0) { perror("Error receiving parent winid"); return bytes; } + total_bytes += bytes; + + bytes = cap_recv_string(client, &options->start_path); + if(bytes < 0) { perror("Error receiving start path"); return bytes; } + total_bytes += bytes; + + options->pathlen = bytes; +/* TODO: need to do a sendmsg with SCM_RIGHTS + bytes = cap_recv_int(client, &options->start_fd); + if(bytes <= 0) { perror("Error receiving path FD"); return bytes; } + total_bytes += bytes; +*/ + options->start_fd = -1; + + bytes = cap_recv_int(client, &options->mult); + if(bytes <= 0) { perror("Error receiving multiple option"); return bytes; } + total_bytes += bytes; + + bytes = cap_recv_string(client, &options->filter); + if(bytes <= 0) { perror("Error receiving filter"); return bytes; } + total_bytes += bytes; + + options->filterlen = bytes; + + return total_bytes; +} ==== //depot/projects/trustedbsd/capabilities/src/tools/cap/user_angel/protocol.h#3 (text+ko) ==== @@ -34,27 +34,24 @@ #include __FBSDID("$FreeBSD$"); +#include "powerbox.h" + /** Requests that clients can make */ -enum user_angel_request +enum capangel_req_t { FD_FROM_PATH, - FD_POWERBOX, - FD_POWERBOX_RELATIVE_PATH, - FD_POWERBOX_RELATIVE_FD + FD_POWERBOX }; -typedef int user_angel_powerbox_options; -#define POWERBOX_KDE 0x01 -#define POWERBOX_GNOME 0x02 /* currently no support */ +int cap_send_int(int client, int value); +int cap_recv_int(int client, int *value); +int cap_send_string(int client, char *value, int len); +int cap_recv_string(int client, char **value); - - - -int get_int_from(int client, int *value); -int get_string_from(int client, char *value, int maxlen); - +int cap_send_capbox_options(int client, struct capbox_options *options); +int cap_recv_capbox_options(int client, struct capbox_options *options); ==== //depot/projects/trustedbsd/capabilities/src/tools/cap/user_angel/server.c#3 (text+ko) ==== @@ -72,7 +72,7 @@ -int handle_request(int client, enum user_angel_request req); +int handle_request(int client, enum capangel_req_t req); int bind_to_path(const char *path); void accept_client(int fd_server); void service_clients(void); @@ -204,19 +204,25 @@ void service_clients(void) { - enum user_angel_request req; + enum capangel_req_t req; for(int i = 0; i < clientslen; i++) { int client = clients[i]; - int bytes = get_int_from(client, (int*) &req); + if(client == -1) continue; + + int bytes = cap_recv_int(client, (int*) &req); if(bytes > 0) { if(handle_request(client, req)) + { perror("Error handling client request"); + close(client); + clients[i] = -1; + } } - else if((bytes == 0) && (errno == EAGAIN)) continue; + else if(errno == EAGAIN) continue; else { if(shutting_down) return; @@ -229,7 +235,7 @@ -int handle_request(int client, enum user_angel_request req) +int handle_request(int client, enum capangel_req_t req) { printf("Client %i requests ", client); @@ -237,33 +243,57 @@ { case FD_FROM_PATH: ; - char path[256]; - int bytes = get_string_from(client, path, sizeof(path) - 1); + char *path; + int bytes = cap_recv_string(client, &path); if(bytes < 0) { perror("Error getting string from client"); return -1; } - path[bytes] = '\0'; printf("FD_FROM_PATH: %s\n", path); int cap = cap_open(path, O_RDONLY, CAP_SET_FILE_READ); if(fd_send(client, cap)) + { perror("Error sending file descriptor"); - - break; + return -1; + } + else return 0; case FD_POWERBOX: puts("FD_POWERBOX"); - break; + + struct capbox_options options; + if(cap_recv_capbox_options(client, &options) < 0) + { + perror("Error receiving capbox_options"); + return -1; + } + + // TODO: some more sophisticated per-client state (eg name) + options.window_title = (char*) malloc(80); + sprintf(options.window_title, + "Powerbox for user_angel client %i", client); + + int fd = capbox_display(&options); + if(fd < 0) + { + perror("Error in powerbox"); + cap_send_string(client, "error in powerbox", 17); + return 0; + } + + free(options.window_title); + free(options.start_path); - case FD_POWERBOX_RELATIVE_PATH: - puts("FD_POWERBOX_RELATIVE_PATH"); - break; + if(fd_send(client, cap)) + { + perror("Error sending file descriptor"); + return -1; + } + else return 0; - case FD_POWERBOX_RELATIVE_FD: - puts("FD_POWERBOX_RELATIVE_FD"); break; default: ==== //depot/projects/trustedbsd/capabilities/src/tools/cap/user_angel/test_client.c#3 (text+ko) ==== @@ -18,10 +18,13 @@ int connect_to_user_angel(void); -int -main(int argc, char *argv[]) +int main(int argc, char *argv[]) { - int fd_control = connect_to_user_angel(); + int fd_angel = connect_to_user_angel(); + printf("angel FD: %i\n", fd_angel); + + fd_angel = cap_new(fd_angel, CAP_CONNECT | CAP_READ | CAP_WRITE); + printf("angel cap: %i\n", fd_angel); int proc; pid_t pid = pdfork(&proc); @@ -31,64 +34,69 @@ else if(pid == 0) return 0; // enter capability mode -// if(cap_enter()) err(EX_SOFTWARE, "Failed to enter capability mode"); -// else printf("Now operating in capability mode\n"); + if(cap_enter()) err(EX_SOFTWARE, "Failed to enter capability mode"); + else printf("Now operating in capability mode\n"); + // make sure that we are, in fact, sandboxed + char *path = "/etc/passwd"; + if(open(path, O_RDONLY) < 0) printf("Sandbox is working\n"); + else fprintf(stderr, "Was able to open %s directly\n", path); - enum user_angel_request req = FD_FROM_PATH; - char *path = "/etc/passwd"; - int len = strlen(path); - // make sure that we are, in fact, sandboxed - if(open(path, O_RDONLY) < 0) printf("Sandbox is working\n"); - else fprintf(stderr, "Was able to open %s directly\n", path); + enum capangel_req_t req = FD_FROM_PATH; +// char *path = "/etc/passwd"; + int len = strlen(path); // get the user angel to open the file for us - if(send(fd_control, &req, sizeof(int), 0) < 0) + if(cap_send_int(fd_angel, req) < 0) err(EX_IOERR, "Error sending request type %i", req); - if(send(fd_control, &len, sizeof(int), 0) < 0) - err(EX_IOERR, "Error sending path length %i", len); - - if(send(fd_control, path, len, 0) < 0) + if(cap_send_string(fd_angel, path, len) < 0) err(EX_IOERR, "Error sending path '%s'", path); // retrieve the file descriptor - int fd = fd_recv(fd_control); + int fd = fd_recv(fd_angel); if(fd >= 0) printf("Got file descriptor %i\n", fd); - else { fprintf(stderr, "Error receiving descriptor\n"); return 1; } + else err(EX_IOERR, "Error receiving file descriptor"); + // do some reading + char buf[40]; + read(fd, buf, 40); + printf("Data from %s: %s\n", path, buf); - - path = "/etc/group"; - // get the user angel to open the file for us - if(send(fd_control, &req, sizeof(int), 0) < 0) - err(EX_IOERR, "Error sending request type %i", req); - if(send(fd_control, &len, sizeof(int), 0) < 0) - err(EX_IOERR, "Error sending path length %i", len); + // now, let's try a powerbox! + req = FD_POWERBOX; - if(send(fd_control, path, len, 0) < 0) - err(EX_IOERR, "Error sending path '%s'", path); + struct capbox_options options; + options.ui = KDE; + options.operation = OPEN_FILE; + options.parent_window = 0; + options.start_path = NULL; + options.pathlen = 0; + options.start_fd = -1; + options.mult = 1; + options.filter = "*.c"; + options.filterlen = strlen(options.filter); + if(cap_send_int(fd_angel, req) < 0) + err(EX_IOERR, "Error sending powerbox request"); + int bytes = cap_send_capbox_options(fd_angel, &options); + if(bytes < 0) + err(EX_IOERR, "Error sending capbox_options"); - // retrieve the file descriptor - fd = fd_recv(fd_control); + fd = fd_recv(fd_angel); if(fd >= 0) printf("Got file descriptor %i\n", fd); - else { fprintf(stderr, "Error receiving descriptor\n"); return 1; } + else err(EX_IOERR, "Error receiving file descriptor"); - char buf[40]; - read(fd, buf, 40); - printf("Data from %s: %s\n", path, buf); - return 0; } @@ -109,10 +117,10 @@ addr.sun_family = AF_UNIX; strcpy(addr.sun_path, control_socket_name); - int fd_control = socket(AF_UNIX, SOCK_STREAM, 0); - if(connect(fd_control, (struct sockaddr*) &addr, sizeof(addr))) + int fd_angel = socket(AF_UNIX, SOCK_STREAM, 0); + if(connect(fd_angel, (struct sockaddr*) &addr, sizeof(addr))) err(EX_IOERR, "Error connecting to angel at '%s'", addr.sun_path); - return fd_control; + return fd_angel; } ==== //depot/projects/trustedbsd/capabilities/src/tools/cap/user_angel/user_angel.c#3 (text+ko) ==== @@ -45,6 +45,7 @@ #include #include #include +#include #include #include "server.h" @@ -59,18 +60,22 @@ void sighandle(int sig) { - fprintf(stderr, "Caught signal %i\n", sig); - switch(sig) { case SIGINT: fprintf(stderr, "Caught SIGINT, shutting down...\n"); user_angel_server_shutdown(); - break; + exit(0); + + case SIGSEGV: + fprintf(stderr, "Caught SIGSEGV, shutting down...\n"); + user_angel_server_shutdown(); + exit(EX_SOFTWARE); default: fprintf(stderr, "Unexpected signal %i; panic!\n", sig); user_angel_server_shutdown(); + exit(EX_SOFTWARE); } } @@ -81,6 +86,7 @@ char *homedir = getenv("HOME"); signal(SIGINT, sighandle); + signal(SIGSEGV, sighandle); if(strlen(homedir) >= 80) { From owner-p4-projects@FreeBSD.ORG Thu Jun 11 12:51:02 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id EA7321065676; Thu, 11 Jun 2009 12:51:01 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id A78311065673 for ; Thu, 11 Jun 2009 12:51:01 +0000 (UTC) (envelope-from zhaoshuai@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 94E338FC17 for ; Thu, 11 Jun 2009 12:51:01 +0000 (UTC) (envelope-from zhaoshuai@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n5BCp1Lr062213 for ; Thu, 11 Jun 2009 12:51:01 GMT (envelope-from zhaoshuai@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n5BCp17R062211 for perforce@freebsd.org; Thu, 11 Jun 2009 12:51:01 GMT (envelope-from zhaoshuai@FreeBSD.org) Date: Thu, 11 Jun 2009 12:51:01 GMT Message-Id: <200906111251.n5BCp17R062211@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to zhaoshuai@FreeBSD.org using -f From: Zhao Shuai To: Perforce Change Reviews Cc: Subject: PERFORCE change 164100 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 11 Jun 2009 12:51:02 -0000 http://perforce.freebsd.org/chv.cgi?CH=164100 Change 164100 by zhaoshuai@zhaoshuai on 2009/06/11 12:50:07 add fifo_kqfilter_f() Affected files ... .. //depot/projects/soc2009/fifo/sys/fs/fifofs/fifo_vnops.c#13 edit Differences ... ==== //depot/projects/soc2009/fifo/sys/fs/fifofs/fifo_vnops.c#13 (text+ko) ==== @@ -91,6 +91,12 @@ static vop_pathconf_t fifo_pathconf; static vop_advlock_t fifo_advlock; +static void filt_fifodetach_notsup(struct knote *kn); +static int filt_fifo_notsup(struct knote *kn, long hint); + +static struct filterops fifo_notsup_filtops = + { 1, NULL, filt_fifodetach_notsup, filt_fifo_notsup }; + struct vop_vector fifo_specops = { .vop_default = &default_vnodeops, .vop_access = VOP_EBADF, @@ -484,9 +490,54 @@ } } +/* + * Because fifos are now a file descriptor layer object, EVFILT_VNODE is not + * implemented. Likely, fifo_kqfilter() should be removed, and + * fifo_kqfilter_f() should know how to forward the request to the underling + * vnode using f_vnode in the file descriptor here. + */ static int fifo_kqfilter_f(struct file *fp, struct knote *kn) { + struct fifoinfo *fip = fp->f_data; + + /* + * If a filter is requested that is not supported by this file + * descriptor, don't return an error, but also don't ever generate an + * event. + */ + if ((kn->kn_filter == EVFILT_READ) && !(fp->f_flag & FREAD)) { + kn->kn_fop = &fifo_notsup_filtops; + return (0); + } + if ((kn->kn_filter == EVFILT_WRITE) && !(fp->f_flag & FWRITE)) { + kn->kn_fop = &fifo_notsup_filtops; + return (0); + } + + switch (kn->kn_filter) { + case EVFILT_READ: + return (generic_pipe_kqfilter(fip->fi_rpipe, kn)); + + case EVFILT_WRITE: + return (generic_pipe_kqfilter(fip->fi_wpipe, kn)); + + default: + return (EINVAL); + } + + return (0); +} + +static void +filt_fifodetach_notsup(struct knote *kn) +{ + +} + +static int +filt_fifo_notsup(struct knote *kn, long hint) +{ return (0); } From owner-p4-projects@FreeBSD.ORG Thu Jun 11 14:47:00 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id A4FA01065687; Thu, 11 Jun 2009 14:47:00 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 5FF8710656A7 for ; Thu, 11 Jun 2009 14:47:00 +0000 (UTC) (envelope-from jona@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 339A58FC1C for ; Thu, 11 Jun 2009 14:47:00 +0000 (UTC) (envelope-from jona@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n5BEl05Y077905 for ; Thu, 11 Jun 2009 14:47:00 GMT (envelope-from jona@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n5BEl0LH077903 for perforce@freebsd.org; Thu, 11 Jun 2009 14:47:00 GMT (envelope-from jona@FreeBSD.org) Date: Thu, 11 Jun 2009 14:47:00 GMT Message-Id: <200906111447.n5BEl0LH077903@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to jona@FreeBSD.org using -f From: Jonathan Anderson To: Perforce Change Reviews Cc: Subject: PERFORCE change 164109 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 11 Jun 2009 14:47:02 -0000 http://perforce.freebsd.org/chv.cgi?CH=164109 Change 164109 by jona@jona-trustedbsd-belle-vm on 2009/06/11 14:46:48 Forgot to add these new files; it doesn't compile without 'em Affected files ... .. //depot/projects/trustedbsd/capabilities/src/tools/cap/user_angel/powerbox.c#1 add .. //depot/projects/trustedbsd/capabilities/src/tools/cap/user_angel/powerbox.h#1 add Differences ... From owner-p4-projects@FreeBSD.ORG Thu Jun 11 14:53:07 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id D22F51065673; Thu, 11 Jun 2009 14:53:06 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 8F62D1065672 for ; Thu, 11 Jun 2009 14:53:06 +0000 (UTC) (envelope-from jona@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 7D4758FC08 for ; Thu, 11 Jun 2009 14:53:06 +0000 (UTC) (envelope-from jona@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n5BEr67X078329 for ; Thu, 11 Jun 2009 14:53:06 GMT (envelope-from jona@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n5BEr636078327 for perforce@freebsd.org; Thu, 11 Jun 2009 14:53:06 GMT (envelope-from jona@FreeBSD.org) Date: Thu, 11 Jun 2009 14:53:06 GMT Message-Id: <200906111453.n5BEr636078327@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to jona@FreeBSD.org using -f From: Jonathan Anderson To: Perforce Change Reviews Cc: Subject: PERFORCE change 164110 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 11 Jun 2009 14:53:07 -0000 http://perforce.freebsd.org/chv.cgi?CH=164110 Change 164110 by jona@jona-trustedbsd-kentvm on 2009/06/11 14:52:32 Start small: don't include things we're not likely to implement very soon Affected files ... .. //depot/projects/trustedbsd/capabilities/src/tools/cap/user_angel/powerbox.h#2 edit Differences ... ==== //depot/projects/trustedbsd/capabilities/src/tools/cap/user_angel/powerbox.h#2 (text+ko) ==== @@ -31,21 +31,15 @@ * SUCH DAMAGE. */ -#include -__FBSDID("$FreeBSD$"); - enum capbox_ui_t { KDE /* TODO, GNOME, NCURSES*/ }; enum capbox_op_t { OPEN_FILE, - OPEN_URL, SAVE_FILE, - SAVE_URL, - SELECT_DIR, - GET_ICON + SELECT_DIR }; struct capbox_options From owner-p4-projects@FreeBSD.ORG Thu Jun 11 15:34:49 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 6447C1065672; Thu, 11 Jun 2009 15:34:49 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 234BC106564A for ; Thu, 11 Jun 2009 15:34:49 +0000 (UTC) (envelope-from jona@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 11DE48FC0C for ; Thu, 11 Jun 2009 15:34:49 +0000 (UTC) (envelope-from jona@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n5BFYm14082509 for ; Thu, 11 Jun 2009 15:34:48 GMT (envelope-from jona@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n5BFYmj6082507 for perforce@freebsd.org; Thu, 11 Jun 2009 15:34:48 GMT (envelope-from jona@FreeBSD.org) Date: Thu, 11 Jun 2009 15:34:48 GMT Message-Id: <200906111534.n5BFYmj6082507@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to jona@FreeBSD.org using -f From: Jonathan Anderson To: Perforce Change Reviews Cc: Subject: PERFORCE change 164113 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 11 Jun 2009 15:34:50 -0000 http://perforce.freebsd.org/chv.cgi?CH=164113 Change 164113 by jona@jona-trustedbsd-kentvm on 2009/06/11 15:34:31 didn't modify powerbox.c to match new powerbox.h Affected files ... .. //depot/projects/trustedbsd/capabilities/src/tools/cap/user_angel/powerbox.c#2 edit Differences ... ==== //depot/projects/trustedbsd/capabilities/src/tools/cap/user_angel/powerbox.c#2 (text+ko) ==== @@ -55,11 +55,8 @@ switch(options->operation) { case OPEN_FILE: printf("OPEN_FILE"); break; - case OPEN_URL: printf("OPEN_URL"); break; case SAVE_FILE: printf("SAVE_FILE"); break; - case SAVE_URL: printf("SAVE_URL"); break; case SELECT_DIR: printf("SELECT_DIR"); break; - case GET_ICON: printf("GET_ICON"); break; default: printf("", options->operation); } printf("\n"); From owner-p4-projects@FreeBSD.ORG Thu Jun 11 16:06:22 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 458A01065676; Thu, 11 Jun 2009 16:06:22 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id F310F106566B for ; Thu, 11 Jun 2009 16:06:21 +0000 (UTC) (envelope-from dforsyth@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id E03EC8FC15 for ; Thu, 11 Jun 2009 16:06:21 +0000 (UTC) (envelope-from dforsyth@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n5BG6LWj088824 for ; Thu, 11 Jun 2009 16:06:21 GMT (envelope-from dforsyth@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n5BG6LhT088822 for perforce@freebsd.org; Thu, 11 Jun 2009 16:06:21 GMT (envelope-from dforsyth@FreeBSD.org) Date: Thu, 11 Jun 2009 16:06:21 GMT Message-Id: <200906111606.n5BG6LhT088822@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to dforsyth@FreeBSD.org using -f From: David Forsythe To: Perforce Change Reviews Cc: Subject: PERFORCE change 164116 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 11 Jun 2009 16:06:23 -0000 http://perforce.freebsd.org/chv.cgi?CH=164116 Change 164116 by dforsyth@squirrel on 2009/06/11 16:05:42 Changed pkg.h to reflect current API design. Moving pkgdb_sub into pkg. Affected files ... .. //depot/projects/soc2009/dforsyth_libpkg/libpkg/pkg.c#14 edit .. //depot/projects/soc2009/dforsyth_libpkg/libpkg/pkg.h#14 edit .. //depot/projects/soc2009/dforsyth_libpkg/libpkg/pkg_private.h#9 edit .. //depot/projects/soc2009/dforsyth_libpkg/libpkg/pkgdb_hierdb_pkgdb_sub.c#3 edit Differences ... ==== //depot/projects/soc2009/dforsyth_libpkg/libpkg/pkg.c#14 (text+ko) ==== @@ -10,6 +10,22 @@ #include "pkg_private.h" #include "pkg.h" +struct pkg { + char *ident; /* User given name for this pkg. */ + char *comment_text; + char *contents_text; + char *desc_text; + char *display_text; + char *mtree_dirs_text; + char *required_by_text; + + struct pkg_plist plist; + + TAILQ_ENTRY(pkg) next; + short dirty; + /* Add an owner field? */ +}; + /* Create a new pkg. */ struct pkg * @@ -50,46 +66,15 @@ * the passed pkg_plist for _set_pkg_plist. */ /* Set the short comment for this package */ -struct pkg * +int pkg_set_comment(struct pkg *p, const char *comment) { - int c; - char *f; - if (p == NULL) - return (p); + arg_rage_quit(__func__, "Not a valid package.", RAGE_AT_CLIENT); - if (comment == NULL) { - /* embrace it... */ - p->comment = NULL; - return (p); - } + p->comment_text = comment; - p->comment = strdup(comment); - if (p->comment == NULL) { - /* Something bad happened... I should probably let people know - * about it... */ - return (p); - } - - /* Blot out a trailing '\n'. */ - c = (int) '\n'; - f = strrchr(p->comment, c); - if (f != NULL) - *f = '\0'; - - return (p); -} - -struct pkg * -pkg_set_pkg_plist(struct pkg *p, struct pkg_plist *pl) -{ - if (p == NULL) - return (NULL); - - p->plist = pl; - - return (p); + return (PKG_OK); } /* ident and name are different, even though they might be the same. */ @@ -97,7 +82,7 @@ pkg_ident(struct pkg *p) { if (p == NULL) - return (NULL); + arg_rage_quit(__func__, "Not a valid package.", RAGE_AT_CLIENT); return (p->ident); } @@ -106,61 +91,52 @@ pkg_comment(struct pkg *p) { if (p == NULL) - return (NULL); + arg_rage_quit(__func__, "Not a valid package.", RAGE_AT_CLIENT); return (p->comment); } -/* Function to access information stored in the pkg_plist. */ +/* Functions to access information stored in the pkg_plist. */ char * pkg_name(struct pkg *p) { - char *name; - - name = pkg_plist_name(p->plist); - - return (name); + return (pkg_plist_name(&p->plist)); } char * pkg_cwd(struct pkg *p) { - char *cwd; - - cwd = pkg_plist_cwd(p->plist); - - return (cwd); + if (p == NULL) + arg_rage_quit(__func__, "Not a valid package.", RAGE_AT_CLIENT); + + return (pkg_plist_cwd(p->plist)); } -/* Doesn't work correctly yet. */ char * pkg_origin(struct pkg *p) { - char *origin; - - origin = pkg_plist_origin(p->plist); - - return (origin); + if (p == NULL) + arg_rage_quit(__func__, "Not a valid package.", RAGE_AT_CLIENT); + + return (pkg_plist_origin(p->plist)) } -/* Temporarily void. */ void pkg_file_list_init(struct pkg *p) { if (p == NULL) - return; + arg_rage_quit(__func__, "Not a valid package.", RAGE_AT_CLIENT); pkg_plist_pkg_file_list_reset(p->plist); } -/* Temporarily char. */ struct pkg_file * pkg_file_list_next(struct pkg *p) { struct pkg_file *pf; if (p == NULL) - return (NULL); + arg_rage_quit(__func__, "Not a valid package.", RAGE_AT_CLIENT); pf = pkg_plist_pkg_file_list_next(p->plist); ==== //depot/projects/soc2009/dforsyth_libpkg/libpkg/pkg.h#14 (text+ko) ==== @@ -10,40 +10,32 @@ struct pkg_file; +struct pkg_file *pkg_file_new(); + const char *pkg_file_path(struct pkg_file *pf); const char *pkg_file_md5(struct pkg_file *pf); -/* These might not be client accessible since they're really only useful - * when reading a plist. A client creating a plist should already have - * this information. */ const char *pkg_file_owner(struct pkg_file *pf); const char *pkg_file_group(struct pkg_file *pf); +int pkg_file_set_path(struct pkg_file *pf, const char *path); -/* TODO: Get pkg_plist out of here. */ +int pkg_file_set_md5(struct pkg_file *pf, const char *md5); -/* pkg_plist */ +int pkg_file_set_owner(struct pkg_file *pf, const char *owner); -struct pkg_plist; +int pkg_file_set_group(struct pkg_file *pf, const char *group); -struct pkg_plist *pkg_plist_new(void); +/* pkg */ -struct pkg_plist *pkg_plist_new_from_text(const char *text); - -/* pkg */ +/* Add mtree stuff later. */ struct pkg; struct pkg *pkg_new(const char *ident); -struct pkg *pkg_set_path(struct pkg *p, const char *path); - -struct pkg *pkg_set_comment(struct pkg *p, const char *comment); - -struct pkg *pkg_set_pkg_plist(struct pkg *p, struct pkg_plist *pl); - char *pkg_ident(struct pkg *p); char *pkg_name(struct pkg *p); @@ -54,30 +46,58 @@ char *pkg_comment(struct pkg *p); -void pkg_file_list_init(struct pkg *p); +char *pkg_description(struct pkg *p); + +char *pkg_display(struct pkg *p); + +int pkg_set_ident(struct pkg *p, const char *ident); + +int pkg_set_name(struct pkg *p, const char *name); + +int pkg_set_cwd(struct pkg *p, const char *cwd); + +int pkg_set_orgin(struct pkg *p, const char *orgin); + +int pkg_set_comment(struct pkg *p, const char *comment); + +int pkg_set_description(struct pkg *p, const char *description); + +int pkg_set_display(struct pkg *p, const char *display); + +int pkg_parse_plist(struct pkg *p); + +int pkg_pkg_file_list_next(struct pkg *p, struct pkg_file *pf); + +int pkg_pkg_file_list_reset(struct pkg *p); + +int pkg_pkg_file_add(struct pkg *p, struct pkg_file *pf); -struct pkg_file *pkg_file_list_next(struct pkg *p); +int pkg_pkg_file_remove(struct pkg *p, struct pkg_file *pf); -void pkg_free(struct pkg *p); +void pkg_delete(struct pkg *p); /* pkgdb */ struct pkgdb; -struct pkgdb *pkgdb_read_db_hierdb(const char *db_root); +struct pkgdb *pkgdb_new(); /* Should eventually take a type argument. */ + +int pkgdb *pkgdb_db_open(struct pkgdb *db, const char *db_root); -int pkgdb_init_db_hierdb(struct pkgdb *db); +int pkgdb *pkgdb_db_init(struct pkgdb *db); -struct pkg *pkgdb_read_pkg_hierdb(struct pkgdb *db, const char *ident); +int pkgdb *pkgdb_db_close(struct pkgdb *db); -struct pkg *pkgdb_next_pkg(struct pkgdb *db); +int pkgdb_pkg_next(struct pkgdb *db, struct pkg *p); -struct pkg *pkgdb_curr_pkg(struct pkgdb *db); +int pkgdb_pkg_get(struct pkgdb *db, struct pkg *p, const char *ident); -struct pkg *pkgdb_query_pkg(struct pkgdb *db, const char *ident); +#if 0 +int pkgdb_pkg_put(struct pkgdb *db, struct pkg *p); -char *pkgdb_pkg_path(struct pkgdb *db, struct pkg *p); +int pkgdb_db_sync(struct pkgdb *db); +#endif -void pkgdb_free_hierdb(struct pkgdb *db); +void pkgdb_delete(struct pkgdb *db); #endif ==== //depot/projects/soc2009/dforsyth_libpkg/libpkg/pkg_private.h#9 (text+ko) ==== @@ -8,12 +8,5 @@ #define MTREE_DIRS_FILE "+MTREE_DIRS" #define REQUIRED_BY_FILE "+REQUIRED_BY" -struct pkg { - char *ident; /* User given name for this pkg. */ - char *comment; /* Mmmmm, should be 70 or less, right? */ - struct pkg_plist *plist; - - TAILQ_ENTRY(pkg) next; -}; #endif ==== //depot/projects/soc2009/dforsyth_libpkg/libpkg/pkgdb_hierdb_pkgdb_sub.c#3 (text+ko) ==== @@ -138,6 +138,7 @@ return; free(dbs->ident); + free(dbs->path); free(dbs->comment_text); free(dbs->contents_text); free(dbs->desc_text); @@ -145,6 +146,7 @@ free(dbs->mtree_dirs_text); free(dbs->required_by_text); dbs->ident = NULL; + dbs->path = NULL; dbs->comment_text = NULL; dbs->contents_text = NULL; dbs->desc_text = NULL; From owner-p4-projects@FreeBSD.ORG Thu Jun 11 17:03:27 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id E9D6A1065700; Thu, 11 Jun 2009 17:03:26 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id A09A2106573A for ; Thu, 11 Jun 2009 17:03:22 +0000 (UTC) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 19ED08FC19 for ; Thu, 11 Jun 2009 17:03:22 +0000 (UTC) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n5BH3LZM004436 for ; Thu, 11 Jun 2009 17:03:21 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n5BH3Ldh004434 for perforce@freebsd.org; Thu, 11 Jun 2009 17:03:21 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Date: Thu, 11 Jun 2009 17:03:21 GMT Message-Id: <200906111703.n5BH3Ldh004434@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to bb+lists.freebsd.perforce@cyrus.watson.org using -f From: Robert Watson To: Perforce Change Reviews Cc: Subject: PERFORCE change 164121 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 11 Jun 2009 17:03:28 -0000 http://perforce.freebsd.org/chv.cgi?CH=164121 Change 164121 by rwatson@rwatson_freebsd_capabilities on 2009/06/11 17:02:44 Update man page. Affected files ... .. //depot/projects/trustedbsd/capabilities/src/libexec/rtld-elf-cap/rtld-elf-cap.1#4 edit Differences ... ==== //depot/projects/trustedbsd/capabilities/src/libexec/rtld-elf-cap/rtld-elf-cap.1#4 (text+ko) ==== @@ -32,7 +32,7 @@ .\" .\" $FreeBSD$ .\" -.Dd January 30, 2009 +.Dd June 11, 2009 .Os .Dt RTLD-ELF-CAP 1 .Sh NAME @@ -50,11 +50,14 @@ is intended to be directly executed using the .Xr fexeve 2 system call, and expects the binary to be passed as file descriptor -.Dv 3 . +.Dv 3 , +as well as additional libraries described by the +.Dv LD_CAPLIBINDEX +environmental variable. .Pp -Binaries for the sandbox environment are relocatable shared objects with the -addition of C start-up code (CSU) normally linked only into binaries -intended for direct execution. +Binaries for the sandbox environment are normal, dynamically linked binaries +as created by +.Xr gcc 1 . As with traditional .Fx binaries, the C run-time expects to begin execution with a @@ -62,28 +65,20 @@ function which will be passed execution-time arguments explicitly, as well as having access to inherited environmental variables. .Pp -A typical -.Xr gcc 1 -command line to build a sandbox-mode binary might be: -.Bd -literal -offset indent -gcc -o main.so main.c -shared /usr/lib/crt1.o -.Ed +Most capability-mode applications will be started using the APIs defined in +.Xr libcapability 3 , +which properly set up the run-time environment for +.Nm . .Sh IMPLEMENTATION NOTES Linking sandbox binaries as relocatable shared objects rather than linking them with a fixed virtual address allows them to be directly linked into consumers, if desired, for debugging or performance analysis purposes. -.Pp -The C run-time start-up code (CSU) is included to provide an ELF brand as -well as -.Dv _start -function sufficient to properly align the stack, start C run-time services -such as profiling and thread-local storage, and to provide and pass command -line arguments and environmental variables to the executing binary. .Sh SEE ALSO .Xr gcc 1 , .Xr ld-elf.so.1 1 , .Xr cap_enter 2 , -.Xr fexecve 2 +.Xr fexecve 2 , +.Xr libcapability 3 .Sh HISTORY Support for capabilities and capabilities mode was developed as part of the .Tn TrustedBSD @@ -91,6 +86,10 @@ .Sh BUGS WARNING: THIS IS EXPERIMENTAL SECURITY SOFTWARE THAT MUST NOT BE RELIED ON IN PRODUCTION SYSTEMS. IT WILL BREAK YOUR SOFTWARE IN NEW AND UNEXPECTED WAYS. +.Pp +The format of +.Dv LD_CAPLIBINDEX +is not documented, and may change. .Sh AUTHORS .Nm is derived from From owner-p4-projects@FreeBSD.ORG Thu Jun 11 17:05:25 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id E84061065710; Thu, 11 Jun 2009 17:05:24 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id A3D711065765 for ; Thu, 11 Jun 2009 17:05:24 +0000 (UTC) (envelope-from zec@fer.hr) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 906BA8FC1A for ; Thu, 11 Jun 2009 17:05:24 +0000 (UTC) (envelope-from zec@fer.hr) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n5BH5OeN004699 for ; Thu, 11 Jun 2009 17:05:24 GMT (envelope-from zec@fer.hr) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n5BH5Ojs004696 for perforce@freebsd.org; Thu, 11 Jun 2009 17:05:24 GMT (envelope-from zec@fer.hr) Date: Thu, 11 Jun 2009 17:05:24 GMT Message-Id: <200906111705.n5BH5Ojs004696@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to zec@fer.hr using -f From: Marko Zec To: Perforce Change Reviews Cc: Subject: PERFORCE change 164122 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 11 Jun 2009 17:05:25 -0000 http://perforce.freebsd.org/chv.cgi?CH=164122 Change 164122 by zec@zec_amdx4 on 2009/06/11 17:05:14 IFC @ 164119 Affected files ... .. //depot/projects/vimage-commit2/src/sys/amd64/conf/DEFAULTS#6 integrate .. //depot/projects/vimage-commit2/src/sys/amd64/conf/GENERIC#16 integrate .. //depot/projects/vimage-commit2/src/sys/arm/arm/intr.c#4 integrate .. //depot/projects/vimage-commit2/src/sys/arm/arm/locore.S#4 integrate .. //depot/projects/vimage-commit2/src/sys/arm/at91/at91.c#9 integrate .. //depot/projects/vimage-commit2/src/sys/arm/at91/at91_cfata.c#3 integrate .. //depot/projects/vimage-commit2/src/sys/arm/include/intr.h#5 integrate .. //depot/projects/vimage-commit2/src/sys/arm/mv/ic.c#3 integrate .. //depot/projects/vimage-commit2/src/sys/arm/sa11x0/sa11x0_irqhandler.c#2 integrate .. //depot/projects/vimage-commit2/src/sys/arm/xscale/i80321/i80321.c#2 integrate .. //depot/projects/vimage-commit2/src/sys/arm/xscale/i8134x/i81342.c#2 integrate .. //depot/projects/vimage-commit2/src/sys/arm/xscale/ixp425/ixp425.c#5 integrate .. //depot/projects/vimage-commit2/src/sys/arm/xscale/pxa/pxa_icu.c#2 integrate .. //depot/projects/vimage-commit2/src/sys/boot/forth/loader.conf#13 integrate .. //depot/projects/vimage-commit2/src/sys/cam/scsi/scsi_target.c#4 integrate .. //depot/projects/vimage-commit2/src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu.c#4 integrate .. //depot/projects/vimage-commit2/src/sys/compat/freebsd32/freebsd32_proto.h#14 integrate .. //depot/projects/vimage-commit2/src/sys/compat/freebsd32/freebsd32_syscall.h#14 integrate .. //depot/projects/vimage-commit2/src/sys/compat/freebsd32/freebsd32_syscalls.c#14 integrate .. //depot/projects/vimage-commit2/src/sys/compat/freebsd32/freebsd32_sysent.c#15 integrate .. //depot/projects/vimage-commit2/src/sys/compat/freebsd32/syscalls.master#14 integrate .. //depot/projects/vimage-commit2/src/sys/conf/NOTES#29 integrate .. //depot/projects/vimage-commit2/src/sys/conf/files#42 integrate .. //depot/projects/vimage-commit2/src/sys/conf/options#32 integrate .. //depot/projects/vimage-commit2/src/sys/contrib/pf/net/if_pflog.c#3 integrate .. //depot/projects/vimage-commit2/src/sys/dev/acpica/Osd/OsdSchedule.c#4 integrate .. //depot/projects/vimage-commit2/src/sys/dev/acpica/acpi_pcib_acpi.c#4 integrate .. //depot/projects/vimage-commit2/src/sys/dev/acpica/acpivar.h#3 integrate .. //depot/projects/vimage-commit2/src/sys/dev/alc/if_alc.c#1 branch .. //depot/projects/vimage-commit2/src/sys/dev/alc/if_alcreg.h#1 branch .. //depot/projects/vimage-commit2/src/sys/dev/alc/if_alcvar.h#1 branch .. //depot/projects/vimage-commit2/src/sys/dev/ata/chipsets/ata-acerlabs.c#4 integrate .. //depot/projects/vimage-commit2/src/sys/dev/cfi/cfi_core.c#4 integrate .. //depot/projects/vimage-commit2/src/sys/dev/cxgb/cxgb_multiq.c#8 integrate .. //depot/projects/vimage-commit2/src/sys/dev/cxgb/cxgb_sge.c#14 integrate .. //depot/projects/vimage-commit2/src/sys/dev/e1000/if_igb.c#9 integrate .. //depot/projects/vimage-commit2/src/sys/dev/fxp/if_fxp.c#11 integrate .. //depot/projects/vimage-commit2/src/sys/dev/if_ndis/if_ndis.c#15 integrate .. //depot/projects/vimage-commit2/src/sys/dev/nmdm/nmdm.c#6 integrate .. //depot/projects/vimage-commit2/src/sys/dev/sound/midi/midi.c#4 integrate .. //depot/projects/vimage-commit2/src/sys/dev/sound/midi/mpu401.c#3 integrate .. //depot/projects/vimage-commit2/src/sys/dev/sound/pcm/channel.h#4 integrate .. //depot/projects/vimage-commit2/src/sys/dev/sound/pcm/mixer.h#4 integrate .. //depot/projects/vimage-commit2/src/sys/dev/sound/pcm/sound.h#6 integrate .. //depot/projects/vimage-commit2/src/sys/dev/syscons/teken/teken_demo.c#2 integrate .. //depot/projects/vimage-commit2/src/sys/dev/syscons/teken/teken_stress.c#2 integrate .. //depot/projects/vimage-commit2/src/sys/fs/cd9660/cd9660_vnops.c#7 integrate .. //depot/projects/vimage-commit2/src/sys/fs/devfs/devfs_vnops.c#16 integrate .. //depot/projects/vimage-commit2/src/sys/fs/fifofs/fifo_vnops.c#5 integrate .. //depot/projects/vimage-commit2/src/sys/fs/msdosfs/msdosfs_vnops.c#8 integrate .. //depot/projects/vimage-commit2/src/sys/fs/nfsclient/nfs_clbio.c#5 integrate .. //depot/projects/vimage-commit2/src/sys/fs/nfsclient/nfs_clvnops.c#4 integrate .. //depot/projects/vimage-commit2/src/sys/fs/pseudofs/pseudofs_vnops.c#9 integrate .. //depot/projects/vimage-commit2/src/sys/geom/geom.h#5 integrate .. //depot/projects/vimage-commit2/src/sys/geom/geom_io.c#3 integrate .. //depot/projects/vimage-commit2/src/sys/gnu/fs/xfs/FreeBSD/xfs_vnops.c#6 integrate .. //depot/projects/vimage-commit2/src/sys/i386/acpica/acpi_machdep.c#6 integrate .. //depot/projects/vimage-commit2/src/sys/i386/conf/DEFAULTS#7 integrate .. //depot/projects/vimage-commit2/src/sys/i386/conf/GENERIC#16 integrate .. //depot/projects/vimage-commit2/src/sys/kern/bus_if.m#3 integrate .. //depot/projects/vimage-commit2/src/sys/kern/init_main.c#14 integrate .. //depot/projects/vimage-commit2/src/sys/kern/kern_event.c#4 integrate .. //depot/projects/vimage-commit2/src/sys/kern/kern_fork.c#13 integrate .. //depot/projects/vimage-commit2/src/sys/kern/kern_jail.c#25 integrate .. //depot/projects/vimage-commit2/src/sys/kern/kern_lockf.c#6 integrate .. //depot/projects/vimage-commit2/src/sys/kern/subr_acl_nfs4.c#1 branch .. //depot/projects/vimage-commit2/src/sys/kern/subr_bus.c#10 integrate .. //depot/projects/vimage-commit2/src/sys/kern/sys_pipe.c#5 integrate .. //depot/projects/vimage-commit2/src/sys/kern/sysv_shm.c#6 integrate .. //depot/projects/vimage-commit2/src/sys/kern/tty.c#25 integrate .. //depot/projects/vimage-commit2/src/sys/kern/tty_pts.c#12 integrate .. //depot/projects/vimage-commit2/src/sys/kern/uipc_mqueue.c#8 integrate .. //depot/projects/vimage-commit2/src/sys/kern/uipc_socket.c#23 integrate .. //depot/projects/vimage-commit2/src/sys/kern/uipc_syscalls.c#12 integrate .. //depot/projects/vimage-commit2/src/sys/kern/vfs_aio.c#6 integrate .. //depot/projects/vimage-commit2/src/sys/kern/vfs_subr.c#18 integrate .. //depot/projects/vimage-commit2/src/sys/libkern/jenkins.h#1 branch .. //depot/projects/vimage-commit2/src/sys/modules/Makefile#25 integrate .. //depot/projects/vimage-commit2/src/sys/modules/alc/Makefile#1 branch .. //depot/projects/vimage-commit2/src/sys/modules/sound/sound/Makefile#5 integrate .. //depot/projects/vimage-commit2/src/sys/net/bpf.c#20 integrate .. //depot/projects/vimage-commit2/src/sys/net/flowtable.c#4 integrate .. //depot/projects/vimage-commit2/src/sys/net/flowtable.h#3 integrate .. //depot/projects/vimage-commit2/src/sys/net/if.c#76 integrate .. //depot/projects/vimage-commit2/src/sys/net/if_arcsubr.c#8 integrate .. //depot/projects/vimage-commit2/src/sys/net/if_bridge.c#20 integrate .. //depot/projects/vimage-commit2/src/sys/net/if_ethersubr.c#30 integrate .. //depot/projects/vimage-commit2/src/sys/net/if_fddisubr.c#9 integrate .. //depot/projects/vimage-commit2/src/sys/net/if_fwsubr.c#9 integrate .. //depot/projects/vimage-commit2/src/sys/net/if_gif.c#31 integrate .. //depot/projects/vimage-commit2/src/sys/net/if_iso88025subr.c#9 integrate .. //depot/projects/vimage-commit2/src/sys/net/if_tap.c#7 integrate .. //depot/projects/vimage-commit2/src/sys/net/if_tun.c#14 integrate .. //depot/projects/vimage-commit2/src/sys/net/if_var.h#31 integrate .. //depot/projects/vimage-commit2/src/sys/net/rtsock.c#30 integrate .. //depot/projects/vimage-commit2/src/sys/net80211/ieee80211.c#19 integrate .. //depot/projects/vimage-commit2/src/sys/net80211/ieee80211.h#11 integrate .. //depot/projects/vimage-commit2/src/sys/net80211/ieee80211_crypto_ccmp.c#5 integrate .. //depot/projects/vimage-commit2/src/sys/net80211/ieee80211_dfs.c#5 integrate .. //depot/projects/vimage-commit2/src/sys/net80211/ieee80211_ht.c#11 integrate .. //depot/projects/vimage-commit2/src/sys/net80211/ieee80211_node.c#12 integrate .. //depot/projects/vimage-commit2/src/sys/net80211/ieee80211_node.h#12 integrate .. //depot/projects/vimage-commit2/src/sys/net80211/ieee80211_proto.h#10 integrate .. //depot/projects/vimage-commit2/src/sys/net80211/ieee80211_sta.c#15 integrate .. //depot/projects/vimage-commit2/src/sys/netgraph/ng_ipfw.c#10 integrate .. //depot/projects/vimage-commit2/src/sys/netgraph/ng_ipfw.h#2 integrate .. //depot/projects/vimage-commit2/src/sys/netinet/igmp.h#4 integrate .. //depot/projects/vimage-commit2/src/sys/netinet/ip_dummynet.h#5 integrate .. //depot/projects/vimage-commit2/src/sys/netinet/ip_fw.h#27 integrate .. //depot/projects/vimage-commit2/src/sys/netinet/ipfw/ip_dummynet.c#2 integrate .. //depot/projects/vimage-commit2/src/sys/netinet/ipfw/ip_fw2.c#3 integrate .. //depot/projects/vimage-commit2/src/sys/netinet/ipfw/ip_fw_pfil.c#2 integrate .. //depot/projects/vimage-commit2/src/sys/netinet/tcp_debug.c#7 integrate .. //depot/projects/vimage-commit2/src/sys/netinet/tcp_input.c#38 integrate .. //depot/projects/vimage-commit2/src/sys/netinet/tcp_usrreq.c#19 integrate .. //depot/projects/vimage-commit2/src/sys/netinet/tcp_var.h#17 integrate .. //depot/projects/vimage-commit2/src/sys/netinet6/in6.c#21 integrate .. //depot/projects/vimage-commit2/src/sys/netipsec/ipsec.c#35 integrate .. //depot/projects/vimage-commit2/src/sys/netipsec/ipsec_input.c#11 integrate .. //depot/projects/vimage-commit2/src/sys/netipsec/xform_ipip.c#19 integrate .. //depot/projects/vimage-commit2/src/sys/netipx/spx_debug.c#2 integrate .. //depot/projects/vimage-commit2/src/sys/nfsclient/nfs_bio.c#9 integrate .. //depot/projects/vimage-commit2/src/sys/powerpc/aim/machdep.c#11 integrate .. //depot/projects/vimage-commit2/src/sys/powerpc/aim/platform_chrp.c#2 integrate .. //depot/projects/vimage-commit2/src/sys/powerpc/powerpc/openpic.c#4 integrate .. //depot/projects/vimage-commit2/src/sys/powerpc/psim/ata_iobus.c#2 integrate .. //depot/projects/vimage-commit2/src/sys/rpc/clnt_rc.c#6 integrate .. //depot/projects/vimage-commit2/src/sys/security/audit/audit_pipe.c#8 integrate .. //depot/projects/vimage-commit2/src/sys/sys/bio.h#2 integrate .. //depot/projects/vimage-commit2/src/sys/sys/buf_ring.h#5 integrate .. //depot/projects/vimage-commit2/src/sys/sys/bus.h#3 integrate .. //depot/projects/vimage-commit2/src/sys/sys/event.h#3 integrate .. //depot/projects/vimage-commit2/src/sys/sys/soundcard.h#4 integrate .. //depot/projects/vimage-commit2/src/sys/sys/vimage.h#72 integrate .. //depot/projects/vimage-commit2/src/sys/tools/emu10k1-mkalsa.sh#2 delete .. //depot/projects/vimage-commit2/src/sys/tools/feeder_eq_mkfilter.awk#2 delete .. //depot/projects/vimage-commit2/src/sys/tools/feeder_rate_mkfilter.awk#2 delete .. //depot/projects/vimage-commit2/src/sys/tools/snd_fxdiv_gen.awk#2 delete .. //depot/projects/vimage-commit2/src/sys/tools/sound/emu10k1-mkalsa.sh#1 branch .. //depot/projects/vimage-commit2/src/sys/tools/sound/feeder_eq_mkfilter.awk#1 branch .. //depot/projects/vimage-commit2/src/sys/tools/sound/feeder_rate_mkfilter.awk#1 branch .. //depot/projects/vimage-commit2/src/sys/tools/sound/snd_fxdiv_gen.awk#1 branch .. //depot/projects/vimage-commit2/src/sys/vm/vm_map.c#8 integrate Differences ... ==== //depot/projects/vimage-commit2/src/sys/amd64/conf/DEFAULTS#6 (text+ko) ==== @@ -1,7 +1,7 @@ # # DEFAULTS -- Default kernel configuration file for FreeBSD/amd64 # -# $FreeBSD: src/sys/amd64/conf/DEFAULTS,v 1.18 2009/05/10 00:00:25 kuriyama Exp $ +# $FreeBSD: src/sys/amd64/conf/DEFAULTS,v 1.19 2009/06/09 20:26:52 kmacy Exp $ machine amd64 @@ -21,4 +21,3 @@ options GEOM_PART_EBR_COMPAT options GEOM_PART_MBR -options FLOWTABLE ==== //depot/projects/vimage-commit2/src/sys/amd64/conf/GENERIC#16 (text+ko) ==== @@ -16,7 +16,7 @@ # If you are in doubt as to the purpose or necessity of a line, check first # in NOTES. # -# $FreeBSD: src/sys/amd64/conf/GENERIC,v 1.526 2009/06/02 18:31:08 rwatson Exp $ +# $FreeBSD: src/sys/amd64/conf/GENERIC,v 1.528 2009/06/10 02:07:58 yongari Exp $ cpu HAMMER ident GENERIC @@ -71,6 +71,7 @@ options HWPMC_HOOKS # Necessary kernel hooks for hwpmc(4) options AUDIT # Security event auditing options MAC # TrustedBSD MAC Framework +options FLOWTABLE # per-cpu routing cache #options KDTRACE_FRAME # Ensure frames are compiled in #options KDTRACE_HOOKS # Kernel DTrace hooks @@ -212,6 +213,7 @@ device miibus # MII bus support device ae # Attansic/Atheros L2 FastEthernet device age # Attansic/Atheros L1 Gigabit Ethernet +device alc # Atheros AR8131/AR8132 Ethernet device ale # Atheros AR8121/AR8113/AR8114 Ethernet device bce # Broadcom BCM5706/BCM5708 Gigabit Ethernet device bfe # Broadcom BCM440x 10/100 Ethernet ==== //depot/projects/vimage-commit2/src/sys/arm/arm/intr.c#4 (text+ko) ==== @@ -37,7 +37,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/arm/arm/intr.c,v 1.24 2008/09/11 12:36:13 raj Exp $"); +__FBSDID("$FreeBSD: src/sys/arm/arm/intr.c,v 1.25 2009/06/09 18:18:41 marcel Exp $"); #include #include #include @@ -120,7 +120,8 @@ int i; PCPU_INC(cnt.v_intr); - while ((i = arm_get_next_irq()) != -1) { + i = -1; + while ((i = arm_get_next_irq(i)) != -1) { intrcnt[intrcnt_tab[i]]++; event = intr_events[i]; if (intr_event_handle(event, frame) != 0) { ==== //depot/projects/vimage-commit2/src/sys/arm/arm/locore.S#4 (text+ko) ==== @@ -37,7 +37,7 @@ #include #include #include -__FBSDID("$FreeBSD: src/sys/arm/arm/locore.S,v 1.22 2009/03/31 23:06:20 cognet Exp $"); +__FBSDID("$FreeBSD: src/sys/arm/arm/locore.S,v 1.23 2009/06/09 17:21:47 marcel Exp $"); /* What size should this really be ? It is only used by initarm() */ #define INIT_ARM_STACK_SIZE 2048 @@ -73,6 +73,11 @@ mov ip, r0 + /* Make sure interrupts are disabled. */ + mrs r7, cpsr + orr r7, r7, #(I32_bit|F32_bit) + msr cpsr_c, r7 + #if defined (FLASHADDR) && defined(LOADERRAMADDR) /* Check if we're running from flash. */ ldr r7, =FLASHADDR ==== //depot/projects/vimage-commit2/src/sys/arm/at91/at91.c#9 (text) ==== @@ -24,7 +24,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/arm/at91/at91.c,v 1.24 2009/05/15 04:49:20 imp Exp $"); +__FBSDID("$FreeBSD: src/sys/arm/at91/at91.c,v 1.25 2009/06/09 18:18:41 marcel Exp $"); #include #include @@ -702,9 +702,8 @@ } int -arm_get_next_irq() +arm_get_next_irq(int last __unused) { - int status; int irq; ==== //depot/projects/vimage-commit2/src/sys/arm/at91/at91_cfata.c#3 (text+ko) ==== @@ -32,7 +32,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/arm/at91/at91_cfata.c,v 1.3 2009/05/10 11:05:22 stas Exp $"); +__FBSDID("$FreeBSD: src/sys/arm/at91/at91_cfata.c,v 1.4 2009/06/10 17:39:19 imp Exp $"); #include #include @@ -94,7 +94,7 @@ /* XXX: init CF controller? */ callout_init(&sc->tick, 1); /* Callout to poll the device. */ - device_add_child(dev, "ata", devclass_find_free_unit(ata_devclass, 0)); + device_add_child(dev, "ata", -1); bus_generic_attach(dev); return (0); } ==== //depot/projects/vimage-commit2/src/sys/arm/include/intr.h#5 (text+ko) ==== @@ -32,7 +32,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $FreeBSD: src/sys/arm/include/intr.h,v 1.12 2008/12/20 03:26:09 sam Exp $ + * $FreeBSD: src/sys/arm/include/intr.h,v 1.13 2009/06/09 18:18:41 marcel Exp $ * */ @@ -56,7 +56,7 @@ #include -int arm_get_next_irq(void); +int arm_get_next_irq(int); void arm_mask_irq(uintptr_t); void arm_unmask_irq(uintptr_t); void arm_setup_irqhandler(const char *, int (*)(void*), void (*)(void*), ==== //depot/projects/vimage-commit2/src/sys/arm/mv/ic.c#3 (text+ko) ==== @@ -29,7 +29,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/arm/mv/ic.c,v 1.2 2009/04/16 11:20:18 raj Exp $"); +__FBSDID("$FreeBSD: src/sys/arm/mv/ic.c,v 1.3 2009/06/09 18:18:41 marcel Exp $"); #include #include @@ -137,7 +137,7 @@ DRIVER_MODULE(ic, mbus, mv_ic_driver, mv_ic_devclass, 0, 0); int -arm_get_next_irq(void) +arm_get_next_irq(int last __unused) { int irq; ==== //depot/projects/vimage-commit2/src/sys/arm/sa11x0/sa11x0_irqhandler.c#2 (text+ko) ==== @@ -76,7 +76,7 @@ #include -__FBSDID("$FreeBSD: src/sys/arm/sa11x0/sa11x0_irqhandler.c,v 1.6 2006/10/21 04:25:00 kevlo Exp $"); +__FBSDID("$FreeBSD: src/sys/arm/sa11x0/sa11x0_irqhandler.c,v 1.7 2009/06/09 18:18:41 marcel Exp $"); #include #include @@ -108,7 +108,7 @@ extern vm_offset_t saipic_base; int -arm_get_next_irq() +arm_get_next_irq(int last __unused) { int irq; ==== //depot/projects/vimage-commit2/src/sys/arm/xscale/i80321/i80321.c#2 (text+ko) ==== @@ -40,7 +40,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/arm/xscale/i80321/i80321.c,v 1.7 2007/09/04 18:45:27 cognet Exp $"); +__FBSDID("$FreeBSD: src/sys/arm/xscale/i80321/i80321.c,v 1.8 2009/06/09 18:18:41 marcel Exp $"); #include #include @@ -240,7 +240,7 @@ } int -arm_get_next_irq() +arm_get_next_irq(int last __unused) { int irq; ==== //depot/projects/vimage-commit2/src/sys/arm/xscale/i8134x/i81342.c#2 (text+ko) ==== @@ -25,7 +25,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/arm/xscale/i8134x/i81342.c,v 1.2 2007/09/22 16:25:43 cognet Exp $"); +__FBSDID("$FreeBSD: src/sys/arm/xscale/i8134x/i81342.c,v 1.3 2009/06/09 18:18:41 marcel Exp $"); #include #include @@ -295,7 +295,7 @@ } int -arm_get_next_irq(void) +arm_get_next_irq(int last __unused) { uint32_t val; val = intpnd0_read() & intr_enabled0; ==== //depot/projects/vimage-commit2/src/sys/arm/xscale/ixp425/ixp425.c#5 (text+ko) ==== @@ -34,7 +34,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/arm/xscale/ixp425/ixp425.c,v 1.17 2009/03/10 19:15:35 sam Exp $"); +__FBSDID("$FreeBSD: src/sys/arm/xscale/ixp425/ixp425.c,v 1.18 2009/06/09 18:18:41 marcel Exp $"); #include "opt_ddb.h" @@ -202,7 +202,7 @@ } int -arm_get_next_irq(void) +arm_get_next_irq(int last __unused) { uint32_t irq; ==== //depot/projects/vimage-commit2/src/sys/arm/xscale/pxa/pxa_icu.c#2 (text+ko) ==== @@ -23,7 +23,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/arm/xscale/pxa/pxa_icu.c,v 1.1 2008/06/06 05:08:09 benno Exp $"); +__FBSDID("$FreeBSD: src/sys/arm/xscale/pxa/pxa_icu.c,v 1.2 2009/06/09 18:18:41 marcel Exp $"); #include #include @@ -128,7 +128,7 @@ DRIVER_MODULE(pxaicu, pxa, pxa_icu_driver, pxa_icu_devclass, 0, 0); int -arm_get_next_irq() +arm_get_next_irq(int last __unused) { int irq; ==== //depot/projects/vimage-commit2/src/sys/boot/forth/loader.conf#13 (text+ko) ==== @@ -6,7 +6,7 @@ # # All arguments must be in double quotes. # -# $FreeBSD: src/sys/boot/forth/loader.conf,v 1.140 2009/05/17 10:58:50 brueffer Exp $ +# $FreeBSD: src/sys/boot/forth/loader.conf,v 1.141 2009/06/10 02:07:58 yongari Exp $ ############################################################## ### Basic configuration options ############################ @@ -210,6 +210,7 @@ miibus_load="NO" # miibus support, needed for some drivers if_ae_load="NO" # Attansic/Atheros L2 FastEthernet if_age_load="NO" # Attansic/Atheros L1 Gigabit Ethernet +if_alc_load="NO" # Atheros AR8131/AR8132 Ethernet if_ale_load="NO" # Atheros AR8121/AR8113/AR8114 Ethernet if_an_load="NO" # Aironet 4500/4800 802.11 wireless NICs if_ar_load="NO" # Digi SYNC/570i ==== //depot/projects/vimage-commit2/src/sys/cam/scsi/scsi_target.c#4 (text+ko) ==== @@ -28,7 +28,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/cam/scsi/scsi_target.c,v 1.76 2008/10/23 15:53:51 des Exp $"); +__FBSDID("$FreeBSD: src/sys/cam/scsi/scsi_target.c,v 1.77 2009/06/10 20:59:32 kib Exp $"); #include @@ -194,7 +194,7 @@ TAILQ_INIT(&softc->work_queue); TAILQ_INIT(&softc->abort_queue); TAILQ_INIT(&softc->user_ccb_queue); - knlist_init(&softc->read_select.si_note, NULL, NULL, NULL, NULL); + knlist_init_mtx(&softc->read_select.si_note, NULL); return (0); } ==== //depot/projects/vimage-commit2/src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu.c#4 (text+ko) ==== @@ -326,7 +326,7 @@ uint64_t blkid; int nblks, i, err; - if (zfs_prefetch_disable) + if (zfs_prefetch_enable == 0) return; if (len == 0) { /* they're interested in the bonus buffer */ ==== //depot/projects/vimage-commit2/src/sys/compat/freebsd32/freebsd32_proto.h#14 (text+ko) ==== @@ -2,8 +2,8 @@ * System call prototypes. * * DO NOT EDIT-- this file is automatically generated. - * $FreeBSD: src/sys/compat/freebsd32/freebsd32_proto.h,v 1.100 2009/04/29 21:50:13 jamie Exp $ - * created from FreeBSD: head/sys/compat/freebsd32/syscalls.master 191673 2009-04-29 21:14:15Z jamie + * $FreeBSD: src/sys/compat/freebsd32/freebsd32_proto.h,v 1.101 2009/06/10 13:48:43 kib Exp $ + * created from FreeBSD: head/sys/compat/freebsd32/syscalls.master 193916 2009-06-10 13:48:13Z kib */ #ifndef _FREEBSD32_SYSPROTO_H_ ==== //depot/projects/vimage-commit2/src/sys/compat/freebsd32/freebsd32_syscall.h#14 (text+ko) ==== @@ -2,8 +2,8 @@ * System call numbers. * * DO NOT EDIT-- this file is automatically generated. - * $FreeBSD: src/sys/compat/freebsd32/freebsd32_syscall.h,v 1.99 2009/04/29 21:50:13 jamie Exp $ - * created from FreeBSD: head/sys/compat/freebsd32/syscalls.master 191673 2009-04-29 21:14:15Z jamie + * $FreeBSD: src/sys/compat/freebsd32/freebsd32_syscall.h,v 1.100 2009/06/10 13:48:43 kib Exp $ + * created from FreeBSD: head/sys/compat/freebsd32/syscalls.master 193916 2009-06-10 13:48:13Z kib */ #define FREEBSD32_SYS_syscall 0 @@ -303,6 +303,9 @@ #define FREEBSD32_SYS_statfs 396 #define FREEBSD32_SYS_fstatfs 397 #define FREEBSD32_SYS_fhstatfs 398 +#define FREEBSD32_SYS_extattr_set_link 412 +#define FREEBSD32_SYS_extattr_get_link 413 +#define FREEBSD32_SYS_extattr_delete_link 414 #define FREEBSD32_SYS_freebsd32_sigaction 416 #define FREEBSD32_SYS_freebsd32_sigreturn 417 #define FREEBSD32_SYS_freebsd32_getcontext 421 @@ -315,6 +318,9 @@ #define FREEBSD32_SYS_freebsd32_umtx_lock 434 #define FREEBSD32_SYS_freebsd32_umtx_unlock 435 #define FREEBSD32_SYS_jail_attach 436 +#define FREEBSD32_SYS_extattr_list_fd 437 +#define FREEBSD32_SYS_extattr_list_file 438 +#define FREEBSD32_SYS_extattr_list_link 439 #define FREEBSD32_SYS_freebsd32_thr_suspend 442 #define FREEBSD32_SYS_thr_wake 443 #define FREEBSD32_SYS_kldunloadf 444 ==== //depot/projects/vimage-commit2/src/sys/compat/freebsd32/freebsd32_syscalls.c#14 (text+ko) ==== @@ -2,8 +2,8 @@ * System call names. * * DO NOT EDIT-- this file is automatically generated. - * $FreeBSD: src/sys/compat/freebsd32/freebsd32_syscalls.c,v 1.90 2009/04/29 21:50:13 jamie Exp $ - * created from FreeBSD: head/sys/compat/freebsd32/syscalls.master 191673 2009-04-29 21:14:15Z jamie + * $FreeBSD: src/sys/compat/freebsd32/freebsd32_syscalls.c,v 1.91 2009/06/10 13:48:43 kib Exp $ + * created from FreeBSD: head/sys/compat/freebsd32/syscalls.master 193916 2009-06-10 13:48:13Z kib */ const char *freebsd32_syscallnames[] = { @@ -419,9 +419,9 @@ "#409", /* 409 = __mac_get_pid */ "#410", /* 410 = __mac_get_link */ "#411", /* 411 = __mac_set_link */ - "#412", /* 412 = extattr_set_link */ - "#413", /* 413 = extattr_get_link */ - "#414", /* 414 = extattr_delete_link */ + "extattr_set_link", /* 412 = extattr_set_link */ + "extattr_get_link", /* 413 = extattr_get_link */ + "extattr_delete_link", /* 414 = extattr_delete_link */ "#415", /* 415 = __mac_execve */ "freebsd32_sigaction", /* 416 = freebsd32_sigaction */ "freebsd32_sigreturn", /* 417 = freebsd32_sigreturn */ @@ -444,9 +444,9 @@ "freebsd32_umtx_lock", /* 434 = freebsd32_umtx_lock */ "freebsd32_umtx_unlock", /* 435 = freebsd32_umtx_unlock */ "jail_attach", /* 436 = jail_attach */ - "#437", /* 437 = extattr_list_fd */ - "#438", /* 438 = extattr_list_file */ - "#439", /* 439 = extattr_list_link */ + "extattr_list_fd", /* 437 = extattr_list_fd */ + "extattr_list_file", /* 438 = extattr_list_file */ + "extattr_list_link", /* 439 = extattr_list_link */ "#440", /* 440 = kse_switchin */ "#441", /* 441 = ksem_timedwait */ "freebsd32_thr_suspend", /* 442 = freebsd32_thr_suspend */ ==== //depot/projects/vimage-commit2/src/sys/compat/freebsd32/freebsd32_sysent.c#15 (text+ko) ==== @@ -2,8 +2,8 @@ * System call switch table. * * DO NOT EDIT-- this file is automatically generated. - * $FreeBSD: src/sys/compat/freebsd32/freebsd32_sysent.c,v 1.101 2009/06/01 16:14:38 rwatson Exp $ - * created from FreeBSD: head/sys/compat/freebsd32/syscalls.master 191673 2009-04-29 21:14:15Z jamie + * $FreeBSD: src/sys/compat/freebsd32/freebsd32_sysent.c,v 1.102 2009/06/10 13:48:43 kib Exp $ + * created from FreeBSD: head/sys/compat/freebsd32/syscalls.master 193916 2009-06-10 13:48:13Z kib */ #include "opt_compat.h" @@ -450,9 +450,9 @@ { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0 }, /* 409 = __mac_get_pid */ { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0 }, /* 410 = __mac_get_link */ { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0 }, /* 411 = __mac_set_link */ - { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0 }, /* 412 = extattr_set_link */ - { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0 }, /* 413 = extattr_get_link */ - { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0 }, /* 414 = extattr_delete_link */ + { AS(extattr_set_link_args), (sy_call_t *)extattr_set_link, AUE_EXTATTR_SET_LINK, NULL, 0, 0, 0 }, /* 412 = extattr_set_link */ + { AS(extattr_get_link_args), (sy_call_t *)extattr_get_link, AUE_EXTATTR_GET_LINK, NULL, 0, 0, 0 }, /* 413 = extattr_get_link */ + { AS(extattr_delete_link_args), (sy_call_t *)extattr_delete_link, AUE_EXTATTR_DELETE_LINK, NULL, 0, 0, 0 }, /* 414 = extattr_delete_link */ { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0 }, /* 415 = __mac_execve */ { AS(freebsd32_sigaction_args), (sy_call_t *)freebsd32_sigaction, AUE_SIGACTION, NULL, 0, 0, 0 }, /* 416 = freebsd32_sigaction */ { AS(freebsd32_sigreturn_args), (sy_call_t *)freebsd32_sigreturn, AUE_SIGRETURN, NULL, 0, 0, 0 }, /* 417 = freebsd32_sigreturn */ @@ -475,9 +475,9 @@ { AS(freebsd32_umtx_lock_args), (sy_call_t *)freebsd32_umtx_lock, AUE_NULL, NULL, 0, 0, 0 }, /* 434 = freebsd32_umtx_lock */ { AS(freebsd32_umtx_unlock_args), (sy_call_t *)freebsd32_umtx_unlock, AUE_NULL, NULL, 0, 0, 0 }, /* 435 = freebsd32_umtx_unlock */ { AS(jail_attach_args), (sy_call_t *)jail_attach, AUE_NULL, NULL, 0, 0, 0 }, /* 436 = jail_attach */ - { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0 }, /* 437 = extattr_list_fd */ - { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0 }, /* 438 = extattr_list_file */ - { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0 }, /* 439 = extattr_list_link */ + { AS(extattr_list_fd_args), (sy_call_t *)extattr_list_fd, AUE_EXTATTR_LIST_FD, NULL, 0, 0, 0 }, /* 437 = extattr_list_fd */ + { AS(extattr_list_file_args), (sy_call_t *)extattr_list_file, AUE_EXTATTR_LIST_FILE, NULL, 0, 0, 0 }, /* 438 = extattr_list_file */ + { AS(extattr_list_link_args), (sy_call_t *)extattr_list_link, AUE_EXTATTR_LIST_LINK, NULL, 0, 0, 0 }, /* 439 = extattr_list_link */ { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0 }, /* 440 = kse_switchin */ { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0 }, /* 441 = ksem_timedwait */ { AS(freebsd32_thr_suspend_args), (sy_call_t *)freebsd32_thr_suspend, AUE_NULL, NULL, 0, 0, 0 }, /* 442 = freebsd32_thr_suspend */ ==== //depot/projects/vimage-commit2/src/sys/compat/freebsd32/syscalls.master#14 (text+ko) ==== @@ -1,4 +1,4 @@ - $FreeBSD: src/sys/compat/freebsd32/syscalls.master,v 1.115 2009/04/29 21:14:15 jamie Exp $ + $FreeBSD: src/sys/compat/freebsd32/syscalls.master,v 1.116 2009/06/10 13:48:13 kib Exp $ ; from: @(#)syscalls.master 8.2 (Berkeley) 1/13/94 ; from: src/sys/kern/syscalls.master 1.107 ; @@ -708,9 +708,17 @@ 409 AUE_NULL UNIMPL __mac_get_pid 410 AUE_NULL UNIMPL __mac_get_link 411 AUE_NULL UNIMPL __mac_set_link -412 AUE_EXTATTR_SET_LINK UNIMPL extattr_set_link -413 AUE_EXTATTR_GET_LINK UNIMPL extattr_get_link -414 AUE_EXTATTR_DELETE_LINK UNIMPL extattr_delete_link +412 AUE_EXTATTR_SET_LINK NOPROTO { int extattr_set_link( \ + const char *path, int attrnamespace, \ + const char *attrname, void *data, \ + size_t nbytes); } +413 AUE_EXTATTR_GET_LINK NOPROTO { ssize_t extattr_get_link( \ + const char *path, int attrnamespace, \ + const char *attrname, void *data, \ + size_t nbytes); } +414 AUE_EXTATTR_DELETE_LINK NOPROTO { int extattr_delete_link( \ + const char *path, int attrnamespace, \ + const char *attrname); } 415 AUE_NULL UNIMPL __mac_execve 416 AUE_SIGACTION STD { int freebsd32_sigaction(int sig, \ struct sigaction32 *act, \ @@ -741,9 +749,15 @@ 434 AUE_NULL STD { int freebsd32_umtx_lock(struct umtx *umtx); } 435 AUE_NULL STD { int freebsd32_umtx_unlock(struct umtx *umtx); } 436 AUE_NULL NOPROTO { int jail_attach(int jid); } -437 AUE_EXTATTR_LIST_FD UNIMPL extattr_list_fd -438 AUE_EXTATTR_LIST_FILE UNIMPL extattr_list_file -439 AUE_EXTATTR_LIST_LINK UNIMPL extattr_list_link +437 AUE_EXTATTR_LIST_FD NOPROTO { ssize_t extattr_list_fd(int fd, \ + int attrnamespace, void *data, \ + size_t nbytes); } +438 AUE_EXTATTR_LIST_FILE NOPROTO { ssize_t extattr_list_file( \ + const char *path, int attrnamespace, \ + void *data, size_t nbytes); } +439 AUE_EXTATTR_LIST_LINK NOPROTO { ssize_t extattr_list_link( \ + const char *path, int attrnamespace, \ + void *data, size_t nbytes); } 440 AUE_NULL UNIMPL kse_switchin 441 AUE_NULL UNIMPL ksem_timedwait 442 AUE_NULL STD { int freebsd32_thr_suspend( \ ==== //depot/projects/vimage-commit2/src/sys/conf/NOTES#29 (text+ko) ==== @@ -1,4 +1,4 @@ -# $FreeBSD: src/sys/conf/NOTES,v 1.1544 2009/06/08 04:39:48 svn Exp $ +# $FreeBSD: src/sys/conf/NOTES,v 1.1545 2009/06/10 02:07:58 yongari Exp $ # # NOTES -- Lines that can be cut/pasted into kernel and hints configs. # @@ -1754,6 +1754,7 @@ # L2 PCI-Express FastEthernet controllers. # age: Support for gigabit ethernet adapters based on the Attansic/Atheros # L1 PCI express gigabit ethernet controllers. +# alc: Support for Atheros AR8131/AR8132 PCIe ethernet controllers. # ale: Support for Atheros AR8121/AR8113/AR8114 PCIe ethernet controllers. # bce: Broadcom NetXtreme II (BCM5706/BCM5708) PCI/PCIe Gigabit Ethernet # adapters. @@ -1896,6 +1897,7 @@ # PCI Ethernet NICs that use the common MII bus controller code. device ae # Attansic/Atheros L2 FastEthernet device age # Attansic/Atheros L1 Gigabit Ethernet +device alc # Atheros AR8131/AR8132 Ethernet device ale # Atheros AR8121/AR8113/AR8114 Ethernet device bce # Broadcom BCM5706/BCM5708 Gigabit Ethernet device bfe # Broadcom BCM440x 10/100 Ethernet ==== //depot/projects/vimage-commit2/src/sys/conf/files#42 (text+ko) ==== @@ -1,4 +1,4 @@ -# $FreeBSD: src/sys/conf/files,v 1.1415 2009/06/07 19:12:08 ariff Exp $ +# $FreeBSD: src/sys/conf/files,v 1.1437 2009/06/11 12:56:14 bz Exp $ # # The long compile-with and dependency lines are required because of # limitations in config: backslash-newline doesn't work in strings, and @@ -51,33 +51,33 @@ compile-with "${NORMAL_C}" \ no-implicit-rule local emu10k1-alsa%diked.h optional snd_emu10k1 | snd_emu10kx \ - dependency "$S/tools/emu10k1-mkalsa.sh $S/gnu/dev/sound/pci/emu10k1-alsa.h" \ - compile-with "CC='${CC}' AWK=${AWK} sh $S/tools/emu10k1-mkalsa.sh $S/gnu/dev/sound/pci/emu10k1-alsa.h emu10k1-alsa%diked.h" \ + dependency "$S/tools/sound/emu10k1-mkalsa.sh $S/gnu/dev/sound/pci/emu10k1-alsa.h" \ + compile-with "CC='${CC}' AWK=${AWK} sh $S/tools/sound/emu10k1-mkalsa.sh $S/gnu/dev/sound/pci/emu10k1-alsa.h emu10k1-alsa%diked.h" \ no-obj no-implicit-rule before-depend \ clean "emu10k1-alsa%diked.h" p16v-alsa%diked.h optional snd_emu10kx pci \ - dependency "$S/tools/emu10k1-mkalsa.sh $S/gnu/dev/sound/pci/p16v-alsa.h" \ - compile-with "CC='${CC}' AWK=${AWK} sh $S/tools/emu10k1-mkalsa.sh $S/gnu/dev/sound/pci/p16v-alsa.h p16v-alsa%diked.h" \ + dependency "$S/tools/sound/emu10k1-mkalsa.sh $S/gnu/dev/sound/pci/p16v-alsa.h" \ + compile-with "CC='${CC}' AWK=${AWK} sh $S/tools/sound/emu10k1-mkalsa.sh $S/gnu/dev/sound/pci/p16v-alsa.h p16v-alsa%diked.h" \ no-obj no-implicit-rule before-depend \ clean "p16v-alsa%diked.h" p17v-alsa%diked.h optional snd_emu10kx pci \ - dependency "$S/tools/emu10k1-mkalsa.sh $S/gnu/dev/sound/pci/p17v-alsa.h" \ - compile-with "CC='${CC}' AWK=${AWK} sh $S/tools/emu10k1-mkalsa.sh $S/gnu/dev/sound/pci/p17v-alsa.h p17v-alsa%diked.h" \ + dependency "$S/tools/sound/emu10k1-mkalsa.sh $S/gnu/dev/sound/pci/p17v-alsa.h" \ + compile-with "CC='${CC}' AWK=${AWK} sh $S/tools/sound/emu10k1-mkalsa.sh $S/gnu/dev/sound/pci/p17v-alsa.h p17v-alsa%diked.h" \ no-obj no-implicit-rule before-depend \ clean "p17v-alsa%diked.h" feeder_eq_gen.h optional sound \ - dependency "$S/tools/feeder_eq_mkfilter.awk" \ - compile-with "${AWK} -f $S/tools/feeder_eq_mkfilter.awk -- ${FEEDER_EQ_PRESETS} > feeder_eq_gen.h" \ + dependency "$S/tools/sound/feeder_eq_mkfilter.awk" \ + compile-with "${AWK} -f $S/tools/sound/feeder_eq_mkfilter.awk -- ${FEEDER_EQ_PRESETS} > feeder_eq_gen.h" \ no-obj no-implicit-rule before-depend \ clean "feeder_eq_gen.h" feeder_rate_gen.h optional sound \ - dependency "$S/tools/feeder_rate_mkfilter.awk" \ - compile-with "${AWK} -f $S/tools/feeder_rate_mkfilter.awk -- ${FEEDER_RATE_PRESETS} > feeder_rate_gen.h" \ + dependency "$S/tools/sound/feeder_rate_mkfilter.awk" \ + compile-with "${AWK} -f $S/tools/sound/feeder_rate_mkfilter.awk -- ${FEEDER_RATE_PRESETS} > feeder_rate_gen.h" \ no-obj no-implicit-rule before-depend \ clean "feeder_rate_gen.h" snd_fxdiv_gen.h optional sound \ - dependency "$S/tools/snd_fxdiv_gen.awk" \ - compile-with "${AWK} -f $S/tools/snd_fxdiv_gen.awk -- > snd_fxdiv_gen.h" \ + dependency "$S/tools/sound/snd_fxdiv_gen.awk" \ + compile-with "${AWK} -f $S/tools/sound/snd_fxdiv_gen.awk -- > snd_fxdiv_gen.h" \ no-obj no-implicit-rule before-depend \ clean "snd_fxdiv_gen.h" miidevs.h optional miibus | mii \ @@ -335,25 +335,25 @@ compile-with "${NORMAL_C} -I$S/contrib/ngatm" contrib/ngatm/netnatm/sig/sig_verify.c optional ngatm_uni \ compile-with "${NORMAL_C} -I$S/contrib/ngatm" -contrib/pf/net/if_pflog.c optional pflog \ +contrib/pf/net/if_pflog.c optional pflog pf inet \ compile-with "${NORMAL_C} -I$S/contrib/pf" -contrib/pf/net/if_pfsync.c optional pfsync \ +contrib/pf/net/if_pfsync.c optional pfsync pf inet \ compile-with "${NORMAL_C} -I$S/contrib/pf" -contrib/pf/net/pf.c optional pf \ +contrib/pf/net/pf.c optional pf inet \ compile-with "${NORMAL_C} -I$S/contrib/pf" -contrib/pf/net/pf_if.c optional pf \ +contrib/pf/net/pf_if.c optional pf inet \ compile-with "${NORMAL_C} -I$S/contrib/pf" -contrib/pf/net/pf_ioctl.c optional pf \ +contrib/pf/net/pf_ioctl.c optional pf inet \ compile-with "${NORMAL_C} -I$S/contrib/pf" -contrib/pf/net/pf_norm.c optional pf \ +contrib/pf/net/pf_norm.c optional pf inet \ compile-with "${NORMAL_C} -I$S/contrib/pf" -contrib/pf/net/pf_osfp.c optional pf \ +contrib/pf/net/pf_osfp.c optional pf inet \ compile-with "${NORMAL_C} -I$S/contrib/pf" -contrib/pf/net/pf_ruleset.c optional pf \ +contrib/pf/net/pf_ruleset.c optional pf inet \ compile-with "${NORMAL_C} -I$S/contrib/pf" -contrib/pf/net/pf_subr.c optional pf \ +contrib/pf/net/pf_subr.c optional pf inet \ compile-with "${NORMAL_C} -I$S/contrib/pf" -contrib/pf/net/pf_table.c optional pf \ +contrib/pf/net/pf_table.c optional pf inet \ compile-with "${NORMAL_C} -I$S/contrib/pf" contrib/pf/netinet/in4_cksum.c optional pf inet crypto/blowfish/bf_ecb.c optional ipsec @@ -450,7 +450,7 @@ dev/advansys/adwlib.c optional adw dev/advansys/adwmcode.c optional adw dev/ae/if_ae.c optional ae pci -dev/age/if_age.c optional age pci +dev/age/if_age.c optional age pci inet dev/agp/agp.c optional agp pci dev/agp/agp_if.m optional agp pci dev/aha/aha.c optional aha @@ -471,7 +471,8 @@ dev/aic7xxx/aic7xxx_93cx6.c optional ahc dev/aic7xxx/aic7xxx_osm.c optional ahc dev/aic7xxx/aic7xxx_pci.c optional ahc pci -dev/ale/if_ale.c optional ale pci +dev/alc/if_alc.c optional alc pci inet +dev/ale/if_ale.c optional ale pci inet dev/amd/amd.c optional amd dev/amr/amr.c optional amr dev/amr/amr_cam.c optional amrp amr @@ -859,9 +860,9 @@ dev/ed/if_ed_pci.c optional ed pci dev/eisa/eisa_if.m standard dev/eisa/eisaconf.c optional eisa -dev/e1000/if_em.c optional em \ +dev/e1000/if_em.c optional em inet \ compile-with "${NORMAL_C} -I$S/dev/e1000" -dev/e1000/if_igb.c optional igb \ +dev/e1000/if_igb.c optional igb inet \ compile-with "${NORMAL_C} -I$S/dev/e1000" dev/e1000/e1000_80003es2lan.c optional em | igb \ compile-with "${NORMAL_C} -I$S/dev/e1000" @@ -920,7 +921,7 @@ dev/firewire/sbp.c optional sbp dev/firewire/sbp_targ.c optional sbp_targ dev/flash/at45d.c optional at45d -dev/fxp/if_fxp.c optional fxp +dev/fxp/if_fxp.c optional fxp inet dev/gem/if_gem.c optional gem dev/gem/if_gem_pci.c optional gem pci dev/hatm/if_hatm.c optional hatm pci @@ -1085,19 +1086,19 @@ dev/ixgb/if_ixgb.c optional ixgb dev/ixgb/ixgb_ee.c optional ixgb dev/ixgb/ixgb_hw.c optional ixgb -dev/ixgbe/ixgbe.c optional ixgbe \ +dev/ixgbe/ixgbe.c optional ixgbe inet \ compile-with "${NORMAL_C} -I$S/dev/ixgbe" -dev/ixgbe/ixgbe_phy.c optional ixgbe \ +dev/ixgbe/ixgbe_phy.c optional ixgbe inet \ compile-with "${NORMAL_C} -I$S/dev/ixgbe" -dev/ixgbe/ixgbe_api.c optional ixgbe \ +dev/ixgbe/ixgbe_api.c optional ixgbe inet \ compile-with "${NORMAL_C} -I$S/dev/ixgbe" -dev/ixgbe/ixgbe_common.c optional ixgbe \ +dev/ixgbe/ixgbe_common.c optional ixgbe inet \ compile-with "${NORMAL_C} -I$S/dev/ixgbe" -dev/ixgbe/ixgbe_82598.c optional ixgbe \ +dev/ixgbe/ixgbe_82598.c optional ixgbe inet \ compile-with "${NORMAL_C} -I$S/dev/ixgbe" -dev/ixgbe/ixgbe_82599.c optional ixgbe \ +dev/ixgbe/ixgbe_82599.c optional ixgbe inet \ compile-with "${NORMAL_C} -I$S/dev/ixgbe" -dev/jme/if_jme.c optional jme pci +dev/jme/if_jme.c optional jme pci inet dev/joy/joy.c optional joy dev/joy/joy_isa.c optional joy isa dev/joy/joy_pccard.c optional joy pccard @@ -1179,7 +1180,7 @@ dev/mpt/mpt_pci.c optional mpt pci dev/mpt/mpt_raid.c optional mpt dev/mpt/mpt_user.c optional mpt -dev/msk/if_msk.c optional msk +dev/msk/if_msk.c optional msk inet dev/mwl/if_mwl.c optional mwl dev/mwl/if_mwl_pci.c optional mwl pci dev/mwl/mwlhal.c optional mwl @@ -1207,12 +1208,12 @@ compile-with "uudecode -o ${.TARGET} $S/contrib/dev/mwl/mwlboot.fw.uu" \ no-obj no-implicit-rule \ clean "mwlboot.fw" -dev/mxge/if_mxge.c optional mxge pci -dev/mxge/mxge_lro.c optional mxge pci -dev/mxge/mxge_eth_z8e.c optional mxge pci -dev/mxge/mxge_ethp_z8e.c optional mxge pci -dev/mxge/mxge_rss_eth_z8e.c optional mxge pci -dev/mxge/mxge_rss_ethp_z8e.c optional mxge pci +dev/mxge/if_mxge.c optional mxge pci inet +dev/mxge/mxge_lro.c optional mxge pci inet +dev/mxge/mxge_eth_z8e.c optional mxge pci inet +dev/mxge/mxge_ethp_z8e.c optional mxge pci inet +dev/mxge/mxge_rss_eth_z8e.c optional mxge pci inet +dev/mxge/mxge_rss_ethp_z8e.c optional mxge pci inet dev/my/if_my.c optional my dev/ncv/ncr53c500.c optional ncv dev/ncv/ncr53c500_pccard.c optional ncv pccard @@ -1385,7 +1386,7 @@ dev/si/si_isa.c optional si isa dev/si/si_pci.c optional si pci dev/sis/if_sis.c optional sis pci -dev/sk/if_sk.c optional sk pci +dev/sk/if_sk.c optional sk pci inet dev/smbus/smb.c optional smb dev/smbus/smbconf.c optional smbus dev/smbus/smbus.c optional smbus @@ -1534,7 +1535,7 @@ dev/twe/twe.c optional twe dev/twe/twe_freebsd.c optional twe dev/tx/if_tx.c optional tx -dev/txp/if_txp.c optional txp +dev/txp/if_txp.c optional txp inet dev/uart/uart_bus_acpi.c optional uart acpi #dev/uart/uart_bus_cbus.c optional uart cbus dev/uart/uart_bus_ebus.c optional uart ebus @@ -1745,13 +1746,13 @@ fs/nfsclient/nfs_clport.c optional nfscl fs/nfsclient/nfs_clbio.c optional nfscl fs/nfsclient/nfs_clnfsiod.c optional nfscl -fs/nfsserver/nfs_nfsdsocket.c optional nfsd -fs/nfsserver/nfs_nfsdsubs.c optional nfsd -fs/nfsserver/nfs_nfsdstate.c optional nfsd -fs/nfsserver/nfs_nfsdkrpc.c optional nfsd -fs/nfsserver/nfs_nfsdserv.c optional nfsd -fs/nfsserver/nfs_nfsdport.c optional nfsd -fs/nfsserver/nfs_nfsdcache.c optional nfsd +fs/nfsserver/nfs_nfsdsocket.c optional nfsd inet +fs/nfsserver/nfs_nfsdsubs.c optional nfsd inet +fs/nfsserver/nfs_nfsdstate.c optional nfsd inet +fs/nfsserver/nfs_nfsdkrpc.c optional nfsd inet +fs/nfsserver/nfs_nfsdserv.c optional nfsd inet +fs/nfsserver/nfs_nfsdport.c optional nfsd inet +fs/nfsserver/nfs_nfsdcache.c optional nfsd inet fs/ntfs/ntfs_compr.c optional ntfs fs/ntfs/ntfs_iconv.c optional ntfs_iconv fs/ntfs/ntfs_ihash.c optional ntfs @@ -2180,25 +2181,25 @@ net/bpf_filter.c optional bpf | netgraph_bpf net/bpf_zerocopy.c optional bpf net/bridgestp.c optional bridge | if_bridge -net/flowtable.c optional flowtable +net/flowtable.c optional flowtable inet net/ieee8023ad_lacp.c optional lagg net/if.c standard net/if_arcsubr.c optional arcnet net/if_atmsubr.c optional atm -net/if_bridge.c optional bridge | if_bridge +net/if_bridge.c optional bridge inet | if_bridge inet net/if_clone.c standard net/if_dead.c standard net/if_disc.c optional disc net/if_edsc.c optional edsc net/if_ef.c optional ef -net/if_enc.c optional enc +net/if_enc.c optional enc ipsec inet | enc ipsec inet6 net/if_ethersubr.c optional ether \ compile-with "${NORMAL_C} -I$S/contrib/pf" net/if_faith.c optional faith net/if_fddisubr.c optional fddi net/if_fwsubr.c optional fwip net/if_gif.c optional gif -net/if_gre.c optional gre +net/if_gre.c optional gre inet net/if_iso88025subr.c optional token net/if_lagg.c optional lagg net/if_loop.c optional loop @@ -2207,7 +2208,7 @@ net/if_mib.c standard net/if_spppfr.c optional sppp | netgraph_sppp net/if_spppsubr.c optional sppp | netgraph_sppp -net/if_stf.c optional stf +net/if_stf.c optional stf inet inet6 net/if_tun.c optional tun net/if_tap.c optional tap net/if_vlan.c optional vlan @@ -2322,13 +2323,13 @@ netgraph/ng_hole.c optional netgraph_hole netgraph/ng_iface.c optional netgraph_iface netgraph/ng_ip_input.c optional netgraph_ip_input -netgraph/ng_ipfw.c optional netgraph_ipfw +netgraph/ng_ipfw.c optional netgraph_ipfw inet ipfirewall netgraph/ng_ksocket.c optional netgraph_ksocket netgraph/ng_l2tp.c optional netgraph_l2tp netgraph/ng_lmi.c optional netgraph_lmi netgraph/ng_mppc.c optional netgraph_mppc_compression | \ netgraph_mppc_encryption -netgraph/ng_nat.c optional netgraph_nat +netgraph/ng_nat.c optional netgraph_nat inet libalias netgraph/ng_one2many.c optional netgraph_one2many netgraph/ng_parse.c optional netgraph netgraph/ng_ppp.c optional netgraph_ppp @@ -2344,14 +2345,14 @@ netgraph/ng_tee.c optional netgraph_tee netgraph/ng_tty.c optional netgraph_tty netgraph/ng_vjc.c optional netgraph_vjc -netinet/accf_data.c optional accept_filter_data -netinet/accf_dns.c optional accept_filter_dns -netinet/accf_http.c optional accept_filter_http +netinet/accf_data.c optional accept_filter_data inet +netinet/accf_dns.c optional accept_filter_dns inet +netinet/accf_http.c optional accept_filter_http inet netinet/if_atm.c optional atm -netinet/if_ether.c optional ether +netinet/if_ether.c optional inet ether netinet/igmp.c optional inet netinet/in.c optional inet -netinet/ip_carp.c optional carp +netinet/ip_carp.c optional inet carp | inet6 carp netinet/in_gif.c optional gif inet netinet/ip_gre.c optional gre inet netinet/ip_id.c optional inet @@ -2360,18 +2361,18 @@ netinet/in_proto.c optional inet \ compile-with "${NORMAL_C} -I$S/contrib/pf" netinet/in_rmx.c optional inet -netinet/ip_divert.c optional ipdivert -netinet/ipfw/ip_dummynet.c optional dummynet +netinet/ip_divert.c optional inet ipdivert ipfirewall +netinet/ipfw/ip_dummynet.c optional inet dummynet netinet/ip_ecn.c optional inet | inet6 netinet/ip_encap.c optional inet | inet6 netinet/ip_fastfwd.c optional inet -netinet/ipfw/ip_fw2.c optional ipfirewall \ >>> TRUNCATED FOR MAIL (1000 lines) <<< From owner-p4-projects@FreeBSD.ORG Thu Jun 11 17:27:57 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id A32FC1065673; Thu, 11 Jun 2009 17:27:57 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 6205E1065670 for ; Thu, 11 Jun 2009 17:27:57 +0000 (UTC) (envelope-from zec@fer.hr) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 4F0458FC1A for ; Thu, 11 Jun 2009 17:27:57 +0000 (UTC) (envelope-from zec@fer.hr) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n5BHRvFB007715 for ; Thu, 11 Jun 2009 17:27:57 GMT (envelope-from zec@fer.hr) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n5BHRu5X007713 for perforce@freebsd.org; Thu, 11 Jun 2009 17:27:56 GMT (envelope-from zec@fer.hr) Date: Thu, 11 Jun 2009 17:27:56 GMT Message-Id: <200906111727.n5BHRu5X007713@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to zec@fer.hr using -f From: Marko Zec To: Perforce Change Reviews Cc: Subject: PERFORCE change 164129 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 11 Jun 2009 17:27:58 -0000 http://perforce.freebsd.org/chv.cgi?CH=164129 Change 164129 by zec@zec_amdx4 on 2009/06/11 17:27:31 IFC @ 164119 Affected files ... .. //depot/projects/vimage/src/share/man/man4/Makefile#11 integrate .. //depot/projects/vimage/src/share/man/man4/alc.4#1 branch .. //depot/projects/vimage/src/share/man/man4/altq.4#6 integrate .. //depot/projects/vimage/src/share/man/man4/iwn.4#3 integrate .. //depot/projects/vimage/src/share/man/man4/miibus.4#2 integrate .. //depot/projects/vimage/src/share/man/man4/mwl.4#1 branch .. //depot/projects/vimage/src/share/man/man4/mwlfw.4#1 branch .. //depot/projects/vimage/src/share/man/man4/ng_ipfw.4#2 integrate .. //depot/projects/vimage/src/share/man/man4/vlan.4#3 integrate .. //depot/projects/vimage/src/share/man/man9/BUS_NEW_PASS.9#1 branch .. //depot/projects/vimage/src/share/man/man9/Makefile#9 integrate .. //depot/projects/vimage/src/share/man/man9/bus_generic_new_pass.9#1 branch .. //depot/projects/vimage/src/share/man/man9/bus_set_pass.9#1 branch .. //depot/projects/vimage/src/share/man/man9/devclass_add_driver.9#2 delete .. //depot/projects/vimage/src/sys/amd64/conf/DEFAULTS#10 integrate .. //depot/projects/vimage/src/sys/amd64/conf/GENERIC#32 integrate .. //depot/projects/vimage/src/sys/arm/arm/intr.c#8 integrate .. //depot/projects/vimage/src/sys/arm/arm/locore.S#8 integrate .. //depot/projects/vimage/src/sys/arm/at91/at91.c#12 integrate .. //depot/projects/vimage/src/sys/arm/at91/at91_cfata.c#3 integrate .. //depot/projects/vimage/src/sys/arm/include/intr.h#9 integrate .. //depot/projects/vimage/src/sys/arm/mv/ic.c#3 integrate .. //depot/projects/vimage/src/sys/arm/sa11x0/sa11x0_irqhandler.c#2 integrate .. //depot/projects/vimage/src/sys/arm/xscale/i80321/i80321.c#3 integrate .. //depot/projects/vimage/src/sys/arm/xscale/i8134x/i81342.c#3 integrate .. //depot/projects/vimage/src/sys/arm/xscale/ixp425/ixp425.c#10 integrate .. //depot/projects/vimage/src/sys/arm/xscale/pxa/pxa_icu.c#2 integrate .. //depot/projects/vimage/src/sys/boot/forth/loader.conf#21 integrate .. //depot/projects/vimage/src/sys/cam/scsi/scsi_target.c#7 integrate .. //depot/projects/vimage/src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu.c#4 integrate .. //depot/projects/vimage/src/sys/compat/freebsd32/freebsd32_proto.h#21 integrate .. //depot/projects/vimage/src/sys/compat/freebsd32/freebsd32_syscall.h#21 integrate .. //depot/projects/vimage/src/sys/compat/freebsd32/freebsd32_syscalls.c#21 integrate .. //depot/projects/vimage/src/sys/compat/freebsd32/freebsd32_sysent.c#22 integrate .. //depot/projects/vimage/src/sys/compat/freebsd32/syscalls.master#22 integrate .. //depot/projects/vimage/src/sys/conf/NOTES#55 integrate .. //depot/projects/vimage/src/sys/conf/files#72 integrate .. //depot/projects/vimage/src/sys/conf/options#53 integrate .. //depot/projects/vimage/src/sys/contrib/pf/net/if_pflog.c#6 integrate .. //depot/projects/vimage/src/sys/dev/acpica/Osd/OsdSchedule.c#6 integrate .. //depot/projects/vimage/src/sys/dev/acpica/acpi_pcib_acpi.c#8 integrate .. //depot/projects/vimage/src/sys/dev/acpica/acpivar.h#10 integrate .. //depot/projects/vimage/src/sys/dev/alc/if_alc.c#1 branch .. //depot/projects/vimage/src/sys/dev/alc/if_alcreg.h#1 branch .. //depot/projects/vimage/src/sys/dev/alc/if_alcvar.h#1 branch .. //depot/projects/vimage/src/sys/dev/ata/chipsets/ata-acerlabs.c#4 integrate .. //depot/projects/vimage/src/sys/dev/cfi/cfi_core.c#5 integrate .. //depot/projects/vimage/src/sys/dev/cxgb/cxgb_multiq.c#8 integrate .. //depot/projects/vimage/src/sys/dev/cxgb/cxgb_sge.c#24 integrate .. //depot/projects/vimage/src/sys/dev/e1000/if_igb.c#9 integrate .. //depot/projects/vimage/src/sys/dev/fxp/if_fxp.c#16 integrate .. //depot/projects/vimage/src/sys/dev/if_ndis/if_ndis.c#28 integrate .. //depot/projects/vimage/src/sys/dev/nmdm/nmdm.c#7 integrate .. //depot/projects/vimage/src/sys/dev/sound/midi/midi.c#5 integrate .. //depot/projects/vimage/src/sys/dev/sound/midi/mpu401.c#5 integrate .. //depot/projects/vimage/src/sys/dev/sound/pcm/channel.h#5 integrate .. //depot/projects/vimage/src/sys/dev/sound/pcm/mixer.h#5 integrate .. //depot/projects/vimage/src/sys/dev/sound/pcm/sound.h#10 integrate .. //depot/projects/vimage/src/sys/dev/syscons/teken/teken_demo.c#2 integrate .. //depot/projects/vimage/src/sys/dev/syscons/teken/teken_stress.c#2 integrate .. //depot/projects/vimage/src/sys/fs/cd9660/cd9660_vnops.c#7 integrate .. //depot/projects/vimage/src/sys/fs/devfs/devfs_vnops.c#29 integrate .. //depot/projects/vimage/src/sys/fs/fifofs/fifo_vnops.c#13 integrate .. //depot/projects/vimage/src/sys/fs/msdosfs/msdosfs_vnops.c#17 integrate .. //depot/projects/vimage/src/sys/fs/nfsclient/nfs_clbio.c#5 integrate .. //depot/projects/vimage/src/sys/fs/nfsclient/nfs_clvnops.c#4 integrate .. //depot/projects/vimage/src/sys/fs/pseudofs/pseudofs_vnops.c#13 integrate .. //depot/projects/vimage/src/sys/geom/geom.h#7 integrate .. //depot/projects/vimage/src/sys/geom/geom_io.c#7 integrate .. //depot/projects/vimage/src/sys/gnu/fs/xfs/FreeBSD/xfs_vnops.c#9 integrate .. //depot/projects/vimage/src/sys/i386/acpica/acpi_machdep.c#10 integrate .. //depot/projects/vimage/src/sys/i386/conf/DEFAULTS#14 integrate .. //depot/projects/vimage/src/sys/i386/conf/GENERIC#35 integrate .. //depot/projects/vimage/src/sys/kern/bus_if.m#5 integrate .. //depot/projects/vimage/src/sys/kern/init_main.c#29 integrate .. //depot/projects/vimage/src/sys/kern/kern_event.c#11 integrate .. //depot/projects/vimage/src/sys/kern/kern_fork.c#28 integrate .. //depot/projects/vimage/src/sys/kern/kern_jail.c#30 integrate .. //depot/projects/vimage/src/sys/kern/kern_lockf.c#10 integrate .. //depot/projects/vimage/src/sys/kern/subr_acl_nfs4.c#1 branch .. //depot/projects/vimage/src/sys/kern/subr_bus.c#19 integrate .. //depot/projects/vimage/src/sys/kern/sys_pipe.c#12 integrate .. //depot/projects/vimage/src/sys/kern/sysv_shm.c#9 integrate .. //depot/projects/vimage/src/sys/kern/tty.c#38 integrate .. //depot/projects/vimage/src/sys/kern/tty_pts.c#16 integrate .. //depot/projects/vimage/src/sys/kern/uipc_mqueue.c#14 integrate .. //depot/projects/vimage/src/sys/kern/uipc_socket.c#38 integrate .. //depot/projects/vimage/src/sys/kern/uipc_syscalls.c#30 integrate .. //depot/projects/vimage/src/sys/kern/vfs_aio.c#11 integrate .. //depot/projects/vimage/src/sys/kern/vfs_subr.c#31 integrate .. //depot/projects/vimage/src/sys/libkern/jenkins.h#1 branch .. //depot/projects/vimage/src/sys/modules/Makefile#50 integrate .. //depot/projects/vimage/src/sys/modules/alc/Makefile#1 branch .. //depot/projects/vimage/src/sys/modules/sound/sound/Makefile#6 integrate .. //depot/projects/vimage/src/sys/net/bpf.c#38 integrate .. //depot/projects/vimage/src/sys/net/flowtable.c#4 integrate .. //depot/projects/vimage/src/sys/net/flowtable.h#3 integrate .. //depot/projects/vimage/src/sys/net/if.c#86 integrate .. //depot/projects/vimage/src/sys/net/if_arcsubr.c#8 integrate .. //depot/projects/vimage/src/sys/net/if_bridge.c#31 integrate .. //depot/projects/vimage/src/sys/net/if_ethersubr.c#44 integrate .. //depot/projects/vimage/src/sys/net/if_fddisubr.c#11 integrate .. //depot/projects/vimage/src/sys/net/if_fwsubr.c#13 integrate .. //depot/projects/vimage/src/sys/net/if_gif.c#33 integrate .. //depot/projects/vimage/src/sys/net/if_iso88025subr.c#11 integrate .. //depot/projects/vimage/src/sys/net/if_tap.c#13 integrate .. //depot/projects/vimage/src/sys/net/if_tun.c#18 integrate .. //depot/projects/vimage/src/sys/net/if_var.h#40 integrate .. //depot/projects/vimage/src/sys/net/rtsock.c#38 integrate .. //depot/projects/vimage/src/sys/net80211/ieee80211.c#37 integrate .. //depot/projects/vimage/src/sys/net80211/ieee80211.h#18 integrate .. //depot/projects/vimage/src/sys/net80211/ieee80211_crypto_ccmp.c#8 integrate .. //depot/projects/vimage/src/sys/net80211/ieee80211_dfs.c#5 integrate .. //depot/projects/vimage/src/sys/net80211/ieee80211_ht.c#17 integrate .. //depot/projects/vimage/src/sys/net80211/ieee80211_node.c#25 integrate .. //depot/projects/vimage/src/sys/net80211/ieee80211_node.h#18 integrate .. //depot/projects/vimage/src/sys/net80211/ieee80211_proto.h#20 integrate .. //depot/projects/vimage/src/sys/net80211/ieee80211_sta.c#15 integrate .. //depot/projects/vimage/src/sys/netgraph/ng_ipfw.c#5 integrate .. //depot/projects/vimage/src/sys/netgraph/ng_ipfw.h#2 integrate .. //depot/projects/vimage/src/sys/netinet/igmp.h#5 integrate .. //depot/projects/vimage/src/sys/netinet/ip_dummynet.h#7 integrate .. //depot/projects/vimage/src/sys/netinet/ip_fw.h#33 integrate .. //depot/projects/vimage/src/sys/netinet/ipfw/ip_dummynet.c#2 integrate .. //depot/projects/vimage/src/sys/netinet/ipfw/ip_fw2.c#3 integrate .. //depot/projects/vimage/src/sys/netinet/ipfw/ip_fw_pfil.c#2 integrate .. //depot/projects/vimage/src/sys/netinet/tcp_debug.c#6 integrate .. //depot/projects/vimage/src/sys/netinet/tcp_input.c#55 integrate .. //depot/projects/vimage/src/sys/netinet/tcp_usrreq.c#35 integrate .. //depot/projects/vimage/src/sys/netinet/tcp_var.h#36 integrate .. //depot/projects/vimage/src/sys/netinet6/in6.c#37 integrate .. //depot/projects/vimage/src/sys/netipsec/ipsec.c#50 integrate .. //depot/projects/vimage/src/sys/netipsec/ipsec_input.c#21 integrate .. //depot/projects/vimage/src/sys/netipsec/xform_ipip.c#32 integrate .. //depot/projects/vimage/src/sys/netipx/spx_debug.c#5 integrate .. //depot/projects/vimage/src/sys/nfsclient/nfs_bio.c#15 integrate .. //depot/projects/vimage/src/sys/powerpc/aim/machdep.c#14 integrate .. //depot/projects/vimage/src/sys/powerpc/aim/platform_chrp.c#2 integrate .. //depot/projects/vimage/src/sys/powerpc/powerpc/openpic.c#8 integrate .. //depot/projects/vimage/src/sys/powerpc/psim/ata_iobus.c#2 integrate .. //depot/projects/vimage/src/sys/rpc/clnt_rc.c#6 integrate .. //depot/projects/vimage/src/sys/security/audit/audit_pipe.c#14 integrate .. //depot/projects/vimage/src/sys/sys/bio.h#2 integrate .. //depot/projects/vimage/src/sys/sys/buf_ring.h#5 integrate .. //depot/projects/vimage/src/sys/sys/bus.h#6 integrate .. //depot/projects/vimage/src/sys/sys/event.h#4 integrate .. //depot/projects/vimage/src/sys/sys/soundcard.h#4 integrate .. //depot/projects/vimage/src/sys/sys/vimage.h#99 integrate .. //depot/projects/vimage/src/sys/tools/emu10k1-mkalsa.sh#2 delete .. //depot/projects/vimage/src/sys/tools/feeder_eq_mkfilter.awk#2 delete .. //depot/projects/vimage/src/sys/tools/feeder_rate_mkfilter.awk#2 delete .. //depot/projects/vimage/src/sys/tools/snd_fxdiv_gen.awk#2 delete .. //depot/projects/vimage/src/sys/tools/sound/emu10k1-mkalsa.sh#1 branch .. //depot/projects/vimage/src/sys/tools/sound/feeder_eq_mkfilter.awk#1 branch .. //depot/projects/vimage/src/sys/tools/sound/feeder_rate_mkfilter.awk#1 branch .. //depot/projects/vimage/src/sys/tools/sound/snd_fxdiv_gen.awk#1 branch .. //depot/projects/vimage/src/sys/vm/vm_map.c#18 integrate Differences ... ==== //depot/projects/vimage/src/share/man/man4/Makefile#11 (text+ko) ==== @@ -1,5 +1,5 @@ # @(#)Makefile 8.1 (Berkeley) 6/18/93 -# $FreeBSD: src/share/man/man4/Makefile,v 1.451 2009/05/27 18:57:13 bms Exp $ +# $FreeBSD: src/share/man/man4/Makefile,v 1.453 2009/06/10 03:35:40 sam Exp $ MAN= aac.4 \ acpi.4 \ @@ -23,6 +23,7 @@ ahc.4 \ ahd.4 \ aio.4 \ + alc.4 \ ale.4 \ altq.4 \ amd.4 \ @@ -203,6 +204,8 @@ msk.4 \ mtio.4 \ multicast.4 \ + mwl.4 \ + mwlfw.4 \ mxge.4 \ my.4 \ natm.4 \ ==== //depot/projects/vimage/src/share/man/man4/altq.4#6 (text+ko) ==== @@ -23,9 +23,9 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.\" $FreeBSD: src/share/man/man4/altq.4,v 1.39 2009/05/21 02:47:46 yongari Exp $ +.\" $FreeBSD: src/share/man/man4/altq.4,v 1.40 2009/06/10 02:19:54 yongari Exp $ .\" -.Dd May 21, 2009 +.Dd June 10, 2009 .Dt ALTQ 4 .Os .Sh NAME @@ -116,6 +116,7 @@ .Nm . They have been applied to the following hardware drivers: .Xr age 4 , +.Xr alc 4 , .Xr ale 4 , .Xr an 4 , .Xr ath 4 , ==== //depot/projects/vimage/src/share/man/man4/iwn.4#3 (text+ko) ==== @@ -23,7 +23,7 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.\" $FreeBSD: src/share/man/man4/iwn.4,v 1.4 2009/05/09 19:19:30 sam Exp $ +.\" $FreeBSD: src/share/man/man4/iwn.4,v 1.5 2009/06/10 03:28:34 sam Exp $ .\" .Dd April 13, 2008 .Os @@ -49,13 +49,6 @@ .Bd -literal -offset indent if_iwn_load="YES" .Ed -.Pp -In both cases, place the following line in -.Xr loader.conf 5 -to acknowledge the firmware license (see below): -.Bd -literal -offset indent -legal.intel_iwn.license_ack=1 -.Ed .Sh DESCRIPTION The .Nm @@ -76,18 +69,6 @@ This driver requires the firmware built with the .Nm iwnfw module to work. -For the loaded firmware to be enabled for use the license at -.Pa /usr/share/doc/legal/intel_iwn/LICENSE -must be agreed by adding the following line to -.Xr loader.conf 5 : -.Pp -.Dl "legal.intel_iwn.license_ack=1" -.Sh FILES -.Bl -tag -width ".Pa /usr/share/doc/legal/intel_iwn/LICENSE" -compact -.It Pa /usr/share/doc/legal/intel_iwn/LICENSE -.Nm -firmware license -.El .Sh EXAMPLES Join an existing BSS network (i.e., connect to an access point): .Pp @@ -130,9 +111,7 @@ subsystem. Verify the .Xr iwnfw 4 -firmware module is installed and the license agreement -.Xr loader 8 -tunable has been set. +firmware module is present. .It "iwn%d: could not load boot firmware" An attempt to upload the boot firmware image to the onboard microcontroller failed. ==== //depot/projects/vimage/src/share/man/man4/miibus.4#2 (text+ko) ==== @@ -6,9 +6,9 @@ .\" Originally this file looked much like the NetBSD mii(4) manual page, but .\" I doubt you would ever notice due to large differences. .\" -.\" $FreeBSD: src/share/man/man4/miibus.4,v 1.26 2008/11/12 10:31:06 yongari Exp $ +.\" $FreeBSD: src/share/man/man4/miibus.4,v 1.27 2009/06/10 02:19:54 yongari Exp $ .\" -.Dd November 12, 2008 +.Dd June 10, 2009 .Dt MIIBUS 4 .Os .Sh NAME @@ -47,6 +47,8 @@ .Bl -tag -compact -width ".Xr fxp 4" .It Xr age 4 Attansic/Atheros L1 Gigabit Ethernet +.It Xr alc 4 +Atheros AR8131/AR8132 PCIe Ethernet .It Xr ale 4 Atheros AR8121/AR8113/AR8114 PCIe Ethernet .It Xr aue 4 @@ -127,6 +129,7 @@ but as a result are not well behaved newbus device drivers. .Sh SEE ALSO .Xr age 4 , +.Xr alc 4 , .Xr ale 4 , .Xr arp 4 , .Xr aue 4 , ==== //depot/projects/vimage/src/share/man/man4/ng_ipfw.4#2 (text+ko) ==== @@ -22,9 +22,9 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.\" $FreeBSD: src/share/man/man4/ng_ipfw.4,v 1.2 2005/02/07 08:17:51 glebius Exp $ +.\" $FreeBSD: src/share/man/man4/ng_ipfw.4,v 1.3 2009/06/09 21:35:42 oleg Exp $ .\" -.Dd February 5, 2005 +.Dd June 10, 2009 .Dt NG_IPFW 4 .Os .Sh NAME @@ -84,11 +84,12 @@ struct ng_ipfw_tag { struct m_tag mt; /* tag header */ struct ip_fw *rule; /* matching rule */ + uint32_t rule_id; /* matching rule id */ + uint32_t chain_id; /* ruleset id */ struct ifnet *ifp; /* interface, for ip_output */ int dir; /* packet direction */ #define NG_IPFW_OUT 0 #define NG_IPFW_IN 1 - int flags; /* flags, for ip_output() */ }; .Ed .Pp ==== //depot/projects/vimage/src/share/man/man4/vlan.4#3 (text+ko) ==== @@ -23,9 +23,9 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.\" $FreeBSD: src/share/man/man4/vlan.4,v 1.51 2009/04/20 15:01:45 antoine Exp $ +.\" $FreeBSD: src/share/man/man4/vlan.4,v 1.52 2009/06/10 02:19:54 yongari Exp $ .\" -.Dd November 12, 2008 +.Dd June 10, 2009 .Dt VLAN 4 .Os .Sh NAME @@ -123,6 +123,7 @@ in the hardware is limited to the following devices: .Xr ae 4 , .Xr age 4 , +.Xr alc 4 , .Xr ale 4 , .Xr bce 4 , .Xr bge 4 , ==== //depot/projects/vimage/src/share/man/man9/Makefile#9 (text+ko) ==== @@ -1,4 +1,4 @@ -# $FreeBSD: src/share/man/man9/Makefile,v 1.353 2009/06/07 21:31:06 rwatson Exp $ +# $FreeBSD: src/share/man/man9/Makefile,v 1.355 2009/06/09 23:38:19 imp Exp $ MAN= accept_filter.9 \ accf_data.9 \ @@ -28,12 +28,15 @@ bus_dma.9 \ bus_generic_attach.9 \ bus_generic_detach.9 \ + bus_generic_new_pass.9 \ bus_generic_print_child.9 \ bus_generic_read_ivar.9 \ bus_generic_shutdown.9 \ + BUS_NEW_PASS.9 \ BUS_PRINT_CHILD.9 \ BUS_READ_IVAR.9 \ bus_release_resource.9 \ + bus_set_pass.9 \ bus_set_resource.9 \ BUS_SETUP_INTR.9 \ bus_space.9 \ @@ -54,7 +57,6 @@ DECLARE_MODULE.9 \ DELAY.9 \ devclass.9 \ - devclass_add_driver.9 \ devclass_find.9 \ devclass_get_device.9 \ devclass_get_devices.9 \ @@ -552,8 +554,6 @@ crypto.9 crypto_unregister_all.9 MLINKS+=DB_COMMAND.9 DB_SHOW_COMMAND.9 \ DB_COMMAND.9 DB_SHOW_ALL_COMMAND.9 -MLINKS+=devclass_add_driver.9 devclass_delete_driver.9 \ - devclass_add_driver.9 devclass_find_driver.9 MLINKS+=dev_clone.9 drain_dev_clone_events.9 MLINKS+=devfs_set_cdevpriv.9 devfs_get_cdevpriv.9 \ devfs_set_cdevpriv.9 devfs_clear_cdevpriv.9 ==== //depot/projects/vimage/src/sys/amd64/conf/DEFAULTS#10 (text+ko) ==== @@ -1,7 +1,7 @@ # # DEFAULTS -- Default kernel configuration file for FreeBSD/amd64 # -# $FreeBSD: src/sys/amd64/conf/DEFAULTS,v 1.18 2009/05/10 00:00:25 kuriyama Exp $ +# $FreeBSD: src/sys/amd64/conf/DEFAULTS,v 1.19 2009/06/09 20:26:52 kmacy Exp $ machine amd64 @@ -21,4 +21,3 @@ options GEOM_PART_EBR_COMPAT options GEOM_PART_MBR -options FLOWTABLE ==== //depot/projects/vimage/src/sys/amd64/conf/GENERIC#32 (text+ko) ==== @@ -16,7 +16,7 @@ # If you are in doubt as to the purpose or necessity of a line, check first # in NOTES. # -# $FreeBSD: src/sys/amd64/conf/GENERIC,v 1.526 2009/06/02 18:31:08 rwatson Exp $ +# $FreeBSD: src/sys/amd64/conf/GENERIC,v 1.528 2009/06/10 02:07:58 yongari Exp $ cpu HAMMER ident GENERIC @@ -71,6 +71,7 @@ options HWPMC_HOOKS # Necessary kernel hooks for hwpmc(4) options AUDIT # Security event auditing options MAC # TrustedBSD MAC Framework +options FLOWTABLE # per-cpu routing cache #options KDTRACE_FRAME # Ensure frames are compiled in #options KDTRACE_HOOKS # Kernel DTrace hooks @@ -212,6 +213,7 @@ device miibus # MII bus support device ae # Attansic/Atheros L2 FastEthernet device age # Attansic/Atheros L1 Gigabit Ethernet +device alc # Atheros AR8131/AR8132 Ethernet device ale # Atheros AR8121/AR8113/AR8114 Ethernet device bce # Broadcom BCM5706/BCM5708 Gigabit Ethernet device bfe # Broadcom BCM440x 10/100 Ethernet ==== //depot/projects/vimage/src/sys/arm/arm/intr.c#8 (text+ko) ==== @@ -37,7 +37,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/arm/arm/intr.c,v 1.24 2008/09/11 12:36:13 raj Exp $"); +__FBSDID("$FreeBSD: src/sys/arm/arm/intr.c,v 1.25 2009/06/09 18:18:41 marcel Exp $"); #include #include #include @@ -120,7 +120,8 @@ int i; PCPU_INC(cnt.v_intr); - while ((i = arm_get_next_irq()) != -1) { + i = -1; + while ((i = arm_get_next_irq(i)) != -1) { intrcnt[intrcnt_tab[i]]++; event = intr_events[i]; if (intr_event_handle(event, frame) != 0) { ==== //depot/projects/vimage/src/sys/arm/arm/locore.S#8 (text+ko) ==== @@ -37,7 +37,7 @@ #include #include #include -__FBSDID("$FreeBSD: src/sys/arm/arm/locore.S,v 1.22 2009/03/31 23:06:20 cognet Exp $"); +__FBSDID("$FreeBSD: src/sys/arm/arm/locore.S,v 1.23 2009/06/09 17:21:47 marcel Exp $"); /* What size should this really be ? It is only used by initarm() */ #define INIT_ARM_STACK_SIZE 2048 @@ -73,6 +73,11 @@ mov ip, r0 + /* Make sure interrupts are disabled. */ + mrs r7, cpsr + orr r7, r7, #(I32_bit|F32_bit) + msr cpsr_c, r7 + #if defined (FLASHADDR) && defined(LOADERRAMADDR) /* Check if we're running from flash. */ ldr r7, =FLASHADDR ==== //depot/projects/vimage/src/sys/arm/at91/at91.c#12 (text) ==== @@ -24,7 +24,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/arm/at91/at91.c,v 1.24 2009/05/15 04:49:20 imp Exp $"); +__FBSDID("$FreeBSD: src/sys/arm/at91/at91.c,v 1.25 2009/06/09 18:18:41 marcel Exp $"); #include #include @@ -702,9 +702,8 @@ } int -arm_get_next_irq() +arm_get_next_irq(int last __unused) { - int status; int irq; ==== //depot/projects/vimage/src/sys/arm/at91/at91_cfata.c#3 (text+ko) ==== @@ -32,7 +32,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/arm/at91/at91_cfata.c,v 1.3 2009/05/10 11:05:22 stas Exp $"); +__FBSDID("$FreeBSD: src/sys/arm/at91/at91_cfata.c,v 1.4 2009/06/10 17:39:19 imp Exp $"); #include #include @@ -94,7 +94,7 @@ /* XXX: init CF controller? */ callout_init(&sc->tick, 1); /* Callout to poll the device. */ - device_add_child(dev, "ata", devclass_find_free_unit(ata_devclass, 0)); + device_add_child(dev, "ata", -1); bus_generic_attach(dev); return (0); } ==== //depot/projects/vimage/src/sys/arm/include/intr.h#9 (text+ko) ==== @@ -32,7 +32,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $FreeBSD: src/sys/arm/include/intr.h,v 1.12 2008/12/20 03:26:09 sam Exp $ + * $FreeBSD: src/sys/arm/include/intr.h,v 1.13 2009/06/09 18:18:41 marcel Exp $ * */ @@ -56,7 +56,7 @@ #include -int arm_get_next_irq(void); +int arm_get_next_irq(int); void arm_mask_irq(uintptr_t); void arm_unmask_irq(uintptr_t); void arm_setup_irqhandler(const char *, int (*)(void*), void (*)(void*), ==== //depot/projects/vimage/src/sys/arm/mv/ic.c#3 (text+ko) ==== @@ -29,7 +29,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/arm/mv/ic.c,v 1.2 2009/04/16 11:20:18 raj Exp $"); +__FBSDID("$FreeBSD: src/sys/arm/mv/ic.c,v 1.3 2009/06/09 18:18:41 marcel Exp $"); #include #include @@ -137,7 +137,7 @@ DRIVER_MODULE(ic, mbus, mv_ic_driver, mv_ic_devclass, 0, 0); int -arm_get_next_irq(void) +arm_get_next_irq(int last __unused) { int irq; ==== //depot/projects/vimage/src/sys/arm/sa11x0/sa11x0_irqhandler.c#2 (text+ko) ==== @@ -76,7 +76,7 @@ #include -__FBSDID("$FreeBSD: src/sys/arm/sa11x0/sa11x0_irqhandler.c,v 1.6 2006/10/21 04:25:00 kevlo Exp $"); +__FBSDID("$FreeBSD: src/sys/arm/sa11x0/sa11x0_irqhandler.c,v 1.7 2009/06/09 18:18:41 marcel Exp $"); #include #include @@ -108,7 +108,7 @@ extern vm_offset_t saipic_base; int -arm_get_next_irq() +arm_get_next_irq(int last __unused) { int irq; ==== //depot/projects/vimage/src/sys/arm/xscale/i80321/i80321.c#3 (text+ko) ==== @@ -40,7 +40,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/arm/xscale/i80321/i80321.c,v 1.7 2007/09/04 18:45:27 cognet Exp $"); +__FBSDID("$FreeBSD: src/sys/arm/xscale/i80321/i80321.c,v 1.8 2009/06/09 18:18:41 marcel Exp $"); #include #include @@ -240,7 +240,7 @@ } int -arm_get_next_irq() +arm_get_next_irq(int last __unused) { int irq; ==== //depot/projects/vimage/src/sys/arm/xscale/i8134x/i81342.c#3 (text+ko) ==== @@ -25,7 +25,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/arm/xscale/i8134x/i81342.c,v 1.2 2007/09/22 16:25:43 cognet Exp $"); +__FBSDID("$FreeBSD: src/sys/arm/xscale/i8134x/i81342.c,v 1.3 2009/06/09 18:18:41 marcel Exp $"); #include #include @@ -295,7 +295,7 @@ } int -arm_get_next_irq(void) +arm_get_next_irq(int last __unused) { uint32_t val; val = intpnd0_read() & intr_enabled0; ==== //depot/projects/vimage/src/sys/arm/xscale/ixp425/ixp425.c#10 (text+ko) ==== @@ -34,7 +34,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/arm/xscale/ixp425/ixp425.c,v 1.17 2009/03/10 19:15:35 sam Exp $"); +__FBSDID("$FreeBSD: src/sys/arm/xscale/ixp425/ixp425.c,v 1.18 2009/06/09 18:18:41 marcel Exp $"); #include "opt_ddb.h" @@ -202,7 +202,7 @@ } int -arm_get_next_irq(void) +arm_get_next_irq(int last __unused) { uint32_t irq; ==== //depot/projects/vimage/src/sys/arm/xscale/pxa/pxa_icu.c#2 (text+ko) ==== @@ -23,7 +23,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/arm/xscale/pxa/pxa_icu.c,v 1.1 2008/06/06 05:08:09 benno Exp $"); +__FBSDID("$FreeBSD: src/sys/arm/xscale/pxa/pxa_icu.c,v 1.2 2009/06/09 18:18:41 marcel Exp $"); #include #include @@ -128,7 +128,7 @@ DRIVER_MODULE(pxaicu, pxa, pxa_icu_driver, pxa_icu_devclass, 0, 0); int -arm_get_next_irq() +arm_get_next_irq(int last __unused) { int irq; ==== //depot/projects/vimage/src/sys/boot/forth/loader.conf#21 (text+ko) ==== @@ -6,7 +6,7 @@ # # All arguments must be in double quotes. # -# $FreeBSD: src/sys/boot/forth/loader.conf,v 1.140 2009/05/17 10:58:50 brueffer Exp $ +# $FreeBSD: src/sys/boot/forth/loader.conf,v 1.141 2009/06/10 02:07:58 yongari Exp $ ############################################################## ### Basic configuration options ############################ @@ -210,6 +210,7 @@ miibus_load="NO" # miibus support, needed for some drivers if_ae_load="NO" # Attansic/Atheros L2 FastEthernet if_age_load="NO" # Attansic/Atheros L1 Gigabit Ethernet +if_alc_load="NO" # Atheros AR8131/AR8132 Ethernet if_ale_load="NO" # Atheros AR8121/AR8113/AR8114 Ethernet if_an_load="NO" # Aironet 4500/4800 802.11 wireless NICs if_ar_load="NO" # Digi SYNC/570i ==== //depot/projects/vimage/src/sys/cam/scsi/scsi_target.c#7 (text+ko) ==== @@ -28,7 +28,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/cam/scsi/scsi_target.c,v 1.76 2008/10/23 15:53:51 des Exp $"); +__FBSDID("$FreeBSD: src/sys/cam/scsi/scsi_target.c,v 1.77 2009/06/10 20:59:32 kib Exp $"); #include @@ -194,7 +194,7 @@ TAILQ_INIT(&softc->work_queue); TAILQ_INIT(&softc->abort_queue); TAILQ_INIT(&softc->user_ccb_queue); - knlist_init(&softc->read_select.si_note, NULL, NULL, NULL, NULL); + knlist_init_mtx(&softc->read_select.si_note, NULL); return (0); } ==== //depot/projects/vimage/src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu.c#4 (text+ko) ==== @@ -326,7 +326,7 @@ uint64_t blkid; int nblks, i, err; - if (zfs_prefetch_disable) + if (zfs_prefetch_enable == 0) return; if (len == 0) { /* they're interested in the bonus buffer */ ==== //depot/projects/vimage/src/sys/compat/freebsd32/freebsd32_proto.h#21 (text+ko) ==== @@ -2,8 +2,8 @@ * System call prototypes. * * DO NOT EDIT-- this file is automatically generated. - * $FreeBSD: src/sys/compat/freebsd32/freebsd32_proto.h,v 1.100 2009/04/29 21:50:13 jamie Exp $ - * created from FreeBSD: head/sys/compat/freebsd32/syscalls.master 191673 2009-04-29 21:14:15Z jamie + * $FreeBSD: src/sys/compat/freebsd32/freebsd32_proto.h,v 1.101 2009/06/10 13:48:43 kib Exp $ + * created from FreeBSD: head/sys/compat/freebsd32/syscalls.master 193916 2009-06-10 13:48:13Z kib */ #ifndef _FREEBSD32_SYSPROTO_H_ ==== //depot/projects/vimage/src/sys/compat/freebsd32/freebsd32_syscall.h#21 (text+ko) ==== @@ -2,8 +2,8 @@ * System call numbers. * * DO NOT EDIT-- this file is automatically generated. - * $FreeBSD: src/sys/compat/freebsd32/freebsd32_syscall.h,v 1.99 2009/04/29 21:50:13 jamie Exp $ - * created from FreeBSD: head/sys/compat/freebsd32/syscalls.master 191673 2009-04-29 21:14:15Z jamie + * $FreeBSD: src/sys/compat/freebsd32/freebsd32_syscall.h,v 1.100 2009/06/10 13:48:43 kib Exp $ + * created from FreeBSD: head/sys/compat/freebsd32/syscalls.master 193916 2009-06-10 13:48:13Z kib */ #define FREEBSD32_SYS_syscall 0 @@ -303,6 +303,9 @@ #define FREEBSD32_SYS_statfs 396 #define FREEBSD32_SYS_fstatfs 397 #define FREEBSD32_SYS_fhstatfs 398 +#define FREEBSD32_SYS_extattr_set_link 412 +#define FREEBSD32_SYS_extattr_get_link 413 +#define FREEBSD32_SYS_extattr_delete_link 414 #define FREEBSD32_SYS_freebsd32_sigaction 416 #define FREEBSD32_SYS_freebsd32_sigreturn 417 #define FREEBSD32_SYS_freebsd32_getcontext 421 @@ -315,6 +318,9 @@ #define FREEBSD32_SYS_freebsd32_umtx_lock 434 #define FREEBSD32_SYS_freebsd32_umtx_unlock 435 #define FREEBSD32_SYS_jail_attach 436 +#define FREEBSD32_SYS_extattr_list_fd 437 +#define FREEBSD32_SYS_extattr_list_file 438 +#define FREEBSD32_SYS_extattr_list_link 439 #define FREEBSD32_SYS_freebsd32_thr_suspend 442 #define FREEBSD32_SYS_thr_wake 443 #define FREEBSD32_SYS_kldunloadf 444 ==== //depot/projects/vimage/src/sys/compat/freebsd32/freebsd32_syscalls.c#21 (text+ko) ==== @@ -2,8 +2,8 @@ * System call names. * * DO NOT EDIT-- this file is automatically generated. - * $FreeBSD: src/sys/compat/freebsd32/freebsd32_syscalls.c,v 1.90 2009/04/29 21:50:13 jamie Exp $ - * created from FreeBSD: head/sys/compat/freebsd32/syscalls.master 191673 2009-04-29 21:14:15Z jamie + * $FreeBSD: src/sys/compat/freebsd32/freebsd32_syscalls.c,v 1.91 2009/06/10 13:48:43 kib Exp $ + * created from FreeBSD: head/sys/compat/freebsd32/syscalls.master 193916 2009-06-10 13:48:13Z kib */ const char *freebsd32_syscallnames[] = { @@ -419,9 +419,9 @@ "#409", /* 409 = __mac_get_pid */ "#410", /* 410 = __mac_get_link */ "#411", /* 411 = __mac_set_link */ - "#412", /* 412 = extattr_set_link */ - "#413", /* 413 = extattr_get_link */ - "#414", /* 414 = extattr_delete_link */ + "extattr_set_link", /* 412 = extattr_set_link */ + "extattr_get_link", /* 413 = extattr_get_link */ + "extattr_delete_link", /* 414 = extattr_delete_link */ "#415", /* 415 = __mac_execve */ "freebsd32_sigaction", /* 416 = freebsd32_sigaction */ "freebsd32_sigreturn", /* 417 = freebsd32_sigreturn */ @@ -444,9 +444,9 @@ "freebsd32_umtx_lock", /* 434 = freebsd32_umtx_lock */ "freebsd32_umtx_unlock", /* 435 = freebsd32_umtx_unlock */ "jail_attach", /* 436 = jail_attach */ - "#437", /* 437 = extattr_list_fd */ - "#438", /* 438 = extattr_list_file */ - "#439", /* 439 = extattr_list_link */ + "extattr_list_fd", /* 437 = extattr_list_fd */ + "extattr_list_file", /* 438 = extattr_list_file */ + "extattr_list_link", /* 439 = extattr_list_link */ "#440", /* 440 = kse_switchin */ "#441", /* 441 = ksem_timedwait */ "freebsd32_thr_suspend", /* 442 = freebsd32_thr_suspend */ ==== //depot/projects/vimage/src/sys/compat/freebsd32/freebsd32_sysent.c#22 (text+ko) ==== @@ -2,8 +2,8 @@ * System call switch table. * * DO NOT EDIT-- this file is automatically generated. - * $FreeBSD: src/sys/compat/freebsd32/freebsd32_sysent.c,v 1.101 2009/06/01 16:14:38 rwatson Exp $ - * created from FreeBSD: head/sys/compat/freebsd32/syscalls.master 191673 2009-04-29 21:14:15Z jamie + * $FreeBSD: src/sys/compat/freebsd32/freebsd32_sysent.c,v 1.102 2009/06/10 13:48:43 kib Exp $ + * created from FreeBSD: head/sys/compat/freebsd32/syscalls.master 193916 2009-06-10 13:48:13Z kib */ #include "opt_compat.h" @@ -450,9 +450,9 @@ { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0 }, /* 409 = __mac_get_pid */ { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0 }, /* 410 = __mac_get_link */ { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0 }, /* 411 = __mac_set_link */ - { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0 }, /* 412 = extattr_set_link */ - { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0 }, /* 413 = extattr_get_link */ - { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0 }, /* 414 = extattr_delete_link */ + { AS(extattr_set_link_args), (sy_call_t *)extattr_set_link, AUE_EXTATTR_SET_LINK, NULL, 0, 0, 0 }, /* 412 = extattr_set_link */ + { AS(extattr_get_link_args), (sy_call_t *)extattr_get_link, AUE_EXTATTR_GET_LINK, NULL, 0, 0, 0 }, /* 413 = extattr_get_link */ + { AS(extattr_delete_link_args), (sy_call_t *)extattr_delete_link, AUE_EXTATTR_DELETE_LINK, NULL, 0, 0, 0 }, /* 414 = extattr_delete_link */ { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0 }, /* 415 = __mac_execve */ { AS(freebsd32_sigaction_args), (sy_call_t *)freebsd32_sigaction, AUE_SIGACTION, NULL, 0, 0, 0 }, /* 416 = freebsd32_sigaction */ { AS(freebsd32_sigreturn_args), (sy_call_t *)freebsd32_sigreturn, AUE_SIGRETURN, NULL, 0, 0, 0 }, /* 417 = freebsd32_sigreturn */ @@ -475,9 +475,9 @@ { AS(freebsd32_umtx_lock_args), (sy_call_t *)freebsd32_umtx_lock, AUE_NULL, NULL, 0, 0, 0 }, /* 434 = freebsd32_umtx_lock */ { AS(freebsd32_umtx_unlock_args), (sy_call_t *)freebsd32_umtx_unlock, AUE_NULL, NULL, 0, 0, 0 }, /* 435 = freebsd32_umtx_unlock */ { AS(jail_attach_args), (sy_call_t *)jail_attach, AUE_NULL, NULL, 0, 0, 0 }, /* 436 = jail_attach */ - { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0 }, /* 437 = extattr_list_fd */ - { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0 }, /* 438 = extattr_list_file */ - { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0 }, /* 439 = extattr_list_link */ + { AS(extattr_list_fd_args), (sy_call_t *)extattr_list_fd, AUE_EXTATTR_LIST_FD, NULL, 0, 0, 0 }, /* 437 = extattr_list_fd */ + { AS(extattr_list_file_args), (sy_call_t *)extattr_list_file, AUE_EXTATTR_LIST_FILE, NULL, 0, 0, 0 }, /* 438 = extattr_list_file */ + { AS(extattr_list_link_args), (sy_call_t *)extattr_list_link, AUE_EXTATTR_LIST_LINK, NULL, 0, 0, 0 }, /* 439 = extattr_list_link */ { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0 }, /* 440 = kse_switchin */ { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0 }, /* 441 = ksem_timedwait */ { AS(freebsd32_thr_suspend_args), (sy_call_t *)freebsd32_thr_suspend, AUE_NULL, NULL, 0, 0, 0 }, /* 442 = freebsd32_thr_suspend */ ==== //depot/projects/vimage/src/sys/compat/freebsd32/syscalls.master#22 (text+ko) ==== @@ -1,4 +1,4 @@ - $FreeBSD: src/sys/compat/freebsd32/syscalls.master,v 1.115 2009/04/29 21:14:15 jamie Exp $ + $FreeBSD: src/sys/compat/freebsd32/syscalls.master,v 1.116 2009/06/10 13:48:13 kib Exp $ ; from: @(#)syscalls.master 8.2 (Berkeley) 1/13/94 ; from: src/sys/kern/syscalls.master 1.107 ; @@ -708,9 +708,17 @@ 409 AUE_NULL UNIMPL __mac_get_pid 410 AUE_NULL UNIMPL __mac_get_link 411 AUE_NULL UNIMPL __mac_set_link -412 AUE_EXTATTR_SET_LINK UNIMPL extattr_set_link -413 AUE_EXTATTR_GET_LINK UNIMPL extattr_get_link -414 AUE_EXTATTR_DELETE_LINK UNIMPL extattr_delete_link +412 AUE_EXTATTR_SET_LINK NOPROTO { int extattr_set_link( \ + const char *path, int attrnamespace, \ + const char *attrname, void *data, \ + size_t nbytes); } +413 AUE_EXTATTR_GET_LINK NOPROTO { ssize_t extattr_get_link( \ + const char *path, int attrnamespace, \ + const char *attrname, void *data, \ + size_t nbytes); } +414 AUE_EXTATTR_DELETE_LINK NOPROTO { int extattr_delete_link( \ + const char *path, int attrnamespace, \ + const char *attrname); } 415 AUE_NULL UNIMPL __mac_execve 416 AUE_SIGACTION STD { int freebsd32_sigaction(int sig, \ struct sigaction32 *act, \ @@ -741,9 +749,15 @@ 434 AUE_NULL STD { int freebsd32_umtx_lock(struct umtx *umtx); } 435 AUE_NULL STD { int freebsd32_umtx_unlock(struct umtx *umtx); } 436 AUE_NULL NOPROTO { int jail_attach(int jid); } -437 AUE_EXTATTR_LIST_FD UNIMPL extattr_list_fd -438 AUE_EXTATTR_LIST_FILE UNIMPL extattr_list_file -439 AUE_EXTATTR_LIST_LINK UNIMPL extattr_list_link +437 AUE_EXTATTR_LIST_FD NOPROTO { ssize_t extattr_list_fd(int fd, \ + int attrnamespace, void *data, \ + size_t nbytes); } +438 AUE_EXTATTR_LIST_FILE NOPROTO { ssize_t extattr_list_file( \ + const char *path, int attrnamespace, \ + void *data, size_t nbytes); } +439 AUE_EXTATTR_LIST_LINK NOPROTO { ssize_t extattr_list_link( \ + const char *path, int attrnamespace, \ + void *data, size_t nbytes); } 440 AUE_NULL UNIMPL kse_switchin 441 AUE_NULL UNIMPL ksem_timedwait 442 AUE_NULL STD { int freebsd32_thr_suspend( \ ==== //depot/projects/vimage/src/sys/conf/NOTES#55 (text+ko) ==== @@ -1,4 +1,4 @@ -# $FreeBSD: src/sys/conf/NOTES,v 1.1544 2009/06/08 04:39:48 svn Exp $ +# $FreeBSD: src/sys/conf/NOTES,v 1.1545 2009/06/10 02:07:58 yongari Exp $ # # NOTES -- Lines that can be cut/pasted into kernel and hints configs. # @@ -1756,6 +1756,7 @@ # L2 PCI-Express FastEthernet controllers. # age: Support for gigabit ethernet adapters based on the Attansic/Atheros # L1 PCI express gigabit ethernet controllers. +# alc: Support for Atheros AR8131/AR8132 PCIe ethernet controllers. # ale: Support for Atheros AR8121/AR8113/AR8114 PCIe ethernet controllers. # bce: Broadcom NetXtreme II (BCM5706/BCM5708) PCI/PCIe Gigabit Ethernet # adapters. @@ -1898,6 +1899,7 @@ # PCI Ethernet NICs that use the common MII bus controller code. device ae # Attansic/Atheros L2 FastEthernet device age # Attansic/Atheros L1 Gigabit Ethernet +device alc # Atheros AR8131/AR8132 Ethernet device ale # Atheros AR8121/AR8113/AR8114 Ethernet device bce # Broadcom BCM5706/BCM5708 Gigabit Ethernet device bfe # Broadcom BCM440x 10/100 Ethernet ==== //depot/projects/vimage/src/sys/conf/files#72 (text+ko) ==== @@ -1,4 +1,4 @@ -# $FreeBSD: src/sys/conf/files,v 1.1415 2009/06/07 19:12:08 ariff Exp $ +# $FreeBSD: src/sys/conf/files,v 1.1437 2009/06/11 12:56:14 bz Exp $ # # The long compile-with and dependency lines are required because of # limitations in config: backslash-newline doesn't work in strings, and @@ -51,33 +51,33 @@ compile-with "${NORMAL_C}" \ no-implicit-rule local emu10k1-alsa%diked.h optional snd_emu10k1 | snd_emu10kx \ - dependency "$S/tools/emu10k1-mkalsa.sh $S/gnu/dev/sound/pci/emu10k1-alsa.h" \ - compile-with "CC='${CC}' AWK=${AWK} sh $S/tools/emu10k1-mkalsa.sh $S/gnu/dev/sound/pci/emu10k1-alsa.h emu10k1-alsa%diked.h" \ + dependency "$S/tools/sound/emu10k1-mkalsa.sh $S/gnu/dev/sound/pci/emu10k1-alsa.h" \ + compile-with "CC='${CC}' AWK=${AWK} sh $S/tools/sound/emu10k1-mkalsa.sh $S/gnu/dev/sound/pci/emu10k1-alsa.h emu10k1-alsa%diked.h" \ no-obj no-implicit-rule before-depend \ clean "emu10k1-alsa%diked.h" p16v-alsa%diked.h optional snd_emu10kx pci \ - dependency "$S/tools/emu10k1-mkalsa.sh $S/gnu/dev/sound/pci/p16v-alsa.h" \ - compile-with "CC='${CC}' AWK=${AWK} sh $S/tools/emu10k1-mkalsa.sh $S/gnu/dev/sound/pci/p16v-alsa.h p16v-alsa%diked.h" \ + dependency "$S/tools/sound/emu10k1-mkalsa.sh $S/gnu/dev/sound/pci/p16v-alsa.h" \ + compile-with "CC='${CC}' AWK=${AWK} sh $S/tools/sound/emu10k1-mkalsa.sh $S/gnu/dev/sound/pci/p16v-alsa.h p16v-alsa%diked.h" \ no-obj no-implicit-rule before-depend \ clean "p16v-alsa%diked.h" p17v-alsa%diked.h optional snd_emu10kx pci \ - dependency "$S/tools/emu10k1-mkalsa.sh $S/gnu/dev/sound/pci/p17v-alsa.h" \ - compile-with "CC='${CC}' AWK=${AWK} sh $S/tools/emu10k1-mkalsa.sh $S/gnu/dev/sound/pci/p17v-alsa.h p17v-alsa%diked.h" \ + dependency "$S/tools/sound/emu10k1-mkalsa.sh $S/gnu/dev/sound/pci/p17v-alsa.h" \ + compile-with "CC='${CC}' AWK=${AWK} sh $S/tools/sound/emu10k1-mkalsa.sh $S/gnu/dev/sound/pci/p17v-alsa.h p17v-alsa%diked.h" \ no-obj no-implicit-rule before-depend \ clean "p17v-alsa%diked.h" feeder_eq_gen.h optional sound \ - dependency "$S/tools/feeder_eq_mkfilter.awk" \ - compile-with "${AWK} -f $S/tools/feeder_eq_mkfilter.awk -- ${FEEDER_EQ_PRESETS} > feeder_eq_gen.h" \ + dependency "$S/tools/sound/feeder_eq_mkfilter.awk" \ + compile-with "${AWK} -f $S/tools/sound/feeder_eq_mkfilter.awk -- ${FEEDER_EQ_PRESETS} > feeder_eq_gen.h" \ no-obj no-implicit-rule before-depend \ clean "feeder_eq_gen.h" feeder_rate_gen.h optional sound \ - dependency "$S/tools/feeder_rate_mkfilter.awk" \ - compile-with "${AWK} -f $S/tools/feeder_rate_mkfilter.awk -- ${FEEDER_RATE_PRESETS} > feeder_rate_gen.h" \ + dependency "$S/tools/sound/feeder_rate_mkfilter.awk" \ + compile-with "${AWK} -f $S/tools/sound/feeder_rate_mkfilter.awk -- ${FEEDER_RATE_PRESETS} > feeder_rate_gen.h" \ no-obj no-implicit-rule before-depend \ clean "feeder_rate_gen.h" snd_fxdiv_gen.h optional sound \ - dependency "$S/tools/snd_fxdiv_gen.awk" \ - compile-with "${AWK} -f $S/tools/snd_fxdiv_gen.awk -- > snd_fxdiv_gen.h" \ + dependency "$S/tools/sound/snd_fxdiv_gen.awk" \ + compile-with "${AWK} -f $S/tools/sound/snd_fxdiv_gen.awk -- > snd_fxdiv_gen.h" \ no-obj no-implicit-rule before-depend \ clean "snd_fxdiv_gen.h" miidevs.h optional miibus | mii \ @@ -335,25 +335,25 @@ compile-with "${NORMAL_C} -I$S/contrib/ngatm" contrib/ngatm/netnatm/sig/sig_verify.c optional ngatm_uni \ compile-with "${NORMAL_C} -I$S/contrib/ngatm" -contrib/pf/net/if_pflog.c optional pflog \ +contrib/pf/net/if_pflog.c optional pflog pf inet \ compile-with "${NORMAL_C} -I$S/contrib/pf" -contrib/pf/net/if_pfsync.c optional pfsync \ +contrib/pf/net/if_pfsync.c optional pfsync pf inet \ compile-with "${NORMAL_C} -I$S/contrib/pf" -contrib/pf/net/pf.c optional pf \ >>> TRUNCATED FOR MAIL (1000 lines) <<< From owner-p4-projects@FreeBSD.ORG Thu Jun 11 17:48:19 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id B691110656A4; Thu, 11 Jun 2009 17:48:18 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 6B08F1065673 for ; Thu, 11 Jun 2009 17:48:18 +0000 (UTC) (envelope-from zec@fer.hr) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 57EB28FC28 for ; Thu, 11 Jun 2009 17:48:18 +0000 (UTC) (envelope-from zec@fer.hr) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n5BHmIic009832 for ; Thu, 11 Jun 2009 17:48:18 GMT (envelope-from zec@fer.hr) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n5BHmIVa009830 for perforce@freebsd.org; Thu, 11 Jun 2009 17:48:18 GMT (envelope-from zec@fer.hr) Date: Thu, 11 Jun 2009 17:48:18 GMT Message-Id: <200906111748.n5BHmIVa009830@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to zec@fer.hr using -f From: Marko Zec To: Perforce Change Reviews Cc: Subject: PERFORCE change 164131 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 11 Jun 2009 17:48:20 -0000 http://perforce.freebsd.org/chv.cgi?CH=164131 Change 164131 by zec@zec_amdx4 on 2009/06/11 17:48:03 IFC @ 164130 Affected files ... .. //depot/projects/vimage-commit2/src/sys/arm/at91/at91_mci.c#10 integrate .. //depot/projects/vimage-commit2/src/sys/arm/at91/at91_twi.c#5 integrate .. //depot/projects/vimage-commit2/src/sys/arm/at91/if_ate.c#7 integrate .. //depot/projects/vimage-commit2/src/sys/arm/mv/twsi.c#2 integrate .. //depot/projects/vimage-commit2/src/sys/arm/xscale/i80321/i80321_pci.c#2 integrate .. //depot/projects/vimage-commit2/src/sys/arm/xscale/ixp425/avila_led.c#3 integrate .. //depot/projects/vimage-commit2/src/sys/arm/xscale/ixp425/cambria_led.c#2 integrate .. //depot/projects/vimage-commit2/src/sys/arm/xscale/ixp425/if_npe.c#7 integrate .. //depot/projects/vimage-commit2/src/sys/arm/xscale/ixp425/ixp425.c#6 integrate .. //depot/projects/vimage-commit2/src/sys/arm/xscale/ixp425/ixp425_iic.c#4 integrate .. //depot/projects/vimage-commit2/src/sys/dev/agp/agp_ali.c#2 integrate .. //depot/projects/vimage-commit2/src/sys/dev/agp/agp_amd.c#2 integrate .. //depot/projects/vimage-commit2/src/sys/dev/agp/agp_ati.c#2 integrate .. //depot/projects/vimage-commit2/src/sys/dev/agp/agp_nvidia.c#2 integrate .. //depot/projects/vimage-commit2/src/sys/dev/agp/agp_sis.c#2 integrate .. //depot/projects/vimage-commit2/src/sys/dev/eisa/eisaconf.c#2 integrate .. //depot/projects/vimage-commit2/src/sys/dev/ksyms/ksyms.c#3 integrate .. //depot/projects/vimage-commit2/src/sys/dev/mca/mca_bus.c#3 integrate .. //depot/projects/vimage-commit2/src/sys/dev/mge/if_mge.c#5 integrate .. //depot/projects/vimage-commit2/src/sys/dev/ncv/ncr53c500_pccard.c#2 integrate .. //depot/projects/vimage-commit2/src/sys/dev/nsp/nsp_pccard.c#2 integrate .. //depot/projects/vimage-commit2/src/sys/dev/ofw/ofw_standard.c#3 integrate .. //depot/projects/vimage-commit2/src/sys/dev/pcf/pcf.c#3 integrate .. //depot/projects/vimage-commit2/src/sys/dev/pcf/pcfvar.h#3 integrate .. //depot/projects/vimage-commit2/src/sys/dev/pdq/if_fpa.c#2 integrate .. //depot/projects/vimage-commit2/src/sys/dev/smc/if_smc.c#7 integrate .. //depot/projects/vimage-commit2/src/sys/dev/smc/if_smcvar.h#5 integrate .. //depot/projects/vimage-commit2/src/sys/dev/snc/if_snc.c#3 integrate .. //depot/projects/vimage-commit2/src/sys/dev/snc/if_sncvar.h#2 integrate .. //depot/projects/vimage-commit2/src/sys/dev/spibus/spibus.c#3 integrate .. //depot/projects/vimage-commit2/src/sys/dev/stg/tmc18c30.h#2 integrate .. //depot/projects/vimage-commit2/src/sys/dev/stg/tmc18c30_subr.c#2 integrate .. //depot/projects/vimage-commit2/src/sys/dev/ubsec/ubsec.c#3 integrate .. //depot/projects/vimage-commit2/src/sys/dev/wb/if_wb.c#2 integrate .. //depot/projects/vimage-commit2/src/sys/dev/wi/if_wi.c#6 integrate .. //depot/projects/vimage-commit2/src/sys/dev/wi/if_wivar.h#5 integrate .. //depot/projects/vimage-commit2/src/sys/i386/include/legacyvar.h#2 integrate .. //depot/projects/vimage-commit2/src/sys/i386/pci/pci_bus.c#2 integrate .. //depot/projects/vimage-commit2/src/sys/kern/link_elf_obj.c#8 integrate .. //depot/projects/vimage-commit2/src/sys/kern/linker_if.m#3 integrate .. //depot/projects/vimage-commit2/src/sys/kern/vnode_if.src#10 integrate .. //depot/projects/vimage-commit2/src/sys/net80211/_ieee80211.h#5 integrate .. //depot/projects/vimage-commit2/src/sys/net80211/ieee80211_ioctl.c#15 integrate .. //depot/projects/vimage-commit2/src/sys/netgraph/netgraph.h#28 integrate .. //depot/projects/vimage-commit2/src/sys/netgraph/ng_base.c#35 integrate .. //depot/projects/vimage-commit2/src/sys/netgraph/ng_eiface.c#26 integrate .. //depot/projects/vimage-commit2/src/sys/netgraph/ng_ether.c#18 integrate .. //depot/projects/vimage-commit2/src/sys/netgraph/ng_iface.c#23 integrate .. //depot/projects/vimage-commit2/src/sys/netgraph/ng_ip_input.c#4 integrate .. //depot/projects/vimage-commit2/src/sys/powerpc/ofw/ofw_real.c#2 integrate .. //depot/projects/vimage-commit2/src/sys/powerpc/powermac/cuda.c#5 integrate .. //depot/projects/vimage-commit2/src/sys/powerpc/powermac/pmu.c#5 integrate .. //depot/projects/vimage-commit2/src/sys/sys/kobj.h#3 integrate .. //depot/projects/vimage-commit2/src/sys/sys/proc.h#21 integrate Differences ... ==== //depot/projects/vimage-commit2/src/sys/arm/at91/at91_mci.c#10 (text+ko) ==== @@ -25,7 +25,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/arm/at91/at91_mci.c,v 1.16 2009/01/23 00:51:25 imp Exp $"); +__FBSDID("$FreeBSD: src/sys/arm/at91/at91_mci.c,v 1.17 2009/06/11 17:05:13 avg Exp $"); #include #include @@ -612,7 +612,7 @@ } static int -at91_mci_read_ivar(device_t bus, device_t child, int which, u_char *result) +at91_mci_read_ivar(device_t bus, device_t child, int which, uintptr_t *result) { struct at91_mci_softc *sc = device_get_softc(bus); ==== //depot/projects/vimage-commit2/src/sys/arm/at91/at91_twi.c#5 (text) ==== @@ -24,7 +24,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/arm/at91/at91_twi.c,v 1.14 2009/01/22 21:55:37 imp Exp $"); +__FBSDID("$FreeBSD: src/sys/arm/at91/at91_twi.c,v 1.15 2009/06/11 17:05:13 avg Exp $"); #include #include @@ -289,7 +289,7 @@ } static int -at91_twi_callback(device_t dev, int index, caddr_t *data) +at91_twi_callback(device_t dev, int index, caddr_t data) { int error = 0; ==== //depot/projects/vimage-commit2/src/sys/arm/at91/if_ate.c#7 (text) ==== @@ -30,7 +30,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/arm/at91/if_ate.c,v 1.37 2009/05/13 21:01:10 stas Exp $"); +__FBSDID("$FreeBSD: src/sys/arm/at91/if_ate.c,v 1.38 2009/06/11 17:05:13 avg Exp $"); #include #include @@ -1190,7 +1190,7 @@ return (val); } -static void +static int ate_miibus_writereg(device_t dev, int phy, int reg, int data) { struct ate_softc *sc; @@ -1204,7 +1204,7 @@ WR4(sc, ETH_MAN, ETH_MAN_REG_WR(phy, reg, data)); while ((RD4(sc, ETH_SR) & ETH_SR_IDLE) == 0) continue; - return; + return (0); } static device_method_t ate_methods[] = { ==== //depot/projects/vimage-commit2/src/sys/arm/mv/twsi.c#2 (text+ko) ==== @@ -38,7 +38,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/arm/mv/twsi.c,v 1.1 2008/10/13 20:07:13 raj Exp $"); +__FBSDID("$FreeBSD: src/sys/arm/mv/twsi.c,v 1.2 2009/06/11 17:05:13 avg Exp $"); #include #include @@ -117,7 +117,7 @@ static int mv_twsi_stop(device_t dev); static int mv_twsi_read(device_t dev, char *buf, int len, int *read, int last, int delay); -static int mv_twsi_write(device_t dev, char *buf, int len, int *sent, +static int mv_twsi_write(device_t dev, const char *buf, int len, int *sent, int timeout); static struct resource_spec res_spec[] = { @@ -488,7 +488,7 @@ } static int -mv_twsi_write(device_t dev, char *buf, int len, int *sent, int timeout) +mv_twsi_write(device_t dev, const char *buf, int len, int *sent, int timeout) { struct mv_twsi_softc *sc; uint32_t status; ==== //depot/projects/vimage-commit2/src/sys/arm/xscale/i80321/i80321_pci.c#2 (text+ko) ==== @@ -40,7 +40,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/arm/xscale/i80321/i80321_pci.c,v 1.12 2007/09/30 11:05:13 marius Exp $"); +__FBSDID("$FreeBSD: src/sys/arm/xscale/i80321/i80321_pci.c,v 1.13 2009/06/11 17:05:13 avg Exp $"); #include #include @@ -174,8 +174,8 @@ } static u_int32_t -i80321_pci_read_config(device_t dev, int bus, int slot, int func, int reg, - int bytes) +i80321_pci_read_config(device_t dev, u_int bus, u_int slot, u_int func, + u_int reg, int bytes) { struct i80321_pci_softc *sc = device_get_softc(dev); uint32_t isr; @@ -215,8 +215,8 @@ } static void -i80321_pci_write_config(device_t dev, int bus, int slot, int func, int reg, - u_int32_t data, int bytes) +i80321_pci_write_config(device_t dev, u_int bus, u_int slot, u_int func, + u_int reg, u_int32_t data, int bytes) { struct i80321_pci_softc *sc = device_get_softc(dev); uint32_t addr; ==== //depot/projects/vimage-commit2/src/sys/arm/xscale/ixp425/avila_led.c#3 (text+ko) ==== @@ -23,7 +23,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/arm/xscale/ixp425/avila_led.c,v 1.2 2008/12/20 03:26:09 sam Exp $"); +__FBSDID("$FreeBSD: src/sys/arm/xscale/ixp425/avila_led.c,v 1.3 2009/06/11 17:05:13 avg Exp $"); #include #include @@ -88,13 +88,14 @@ return (0); } -static void +static int led_avila_detach(device_t dev) { struct led_avila_softc *sc = device_get_softc(dev); if (sc->sc_led != NULL) led_destroy(sc->sc_led); + return (0); } static device_method_t led_avila_methods[] = { ==== //depot/projects/vimage-commit2/src/sys/arm/xscale/ixp425/cambria_led.c#2 (text+ko) ==== @@ -23,7 +23,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/arm/xscale/ixp425/cambria_led.c,v 1.1 2008/12/20 03:26:09 sam Exp $"); +__FBSDID("$FreeBSD: src/sys/arm/xscale/ixp425/cambria_led.c,v 1.2 2009/06/11 17:05:13 avg Exp $"); /* * Gateworks Cambria Octal LED Latch driver. @@ -102,7 +102,7 @@ return 0; } -static void +static int led_detach(device_t dev) { struct led_softc *sc = device_get_softc(dev); @@ -113,12 +113,13 @@ if (led != NULL) led_destroy(led); } + return (0); } static device_method_t led_methods[] = { DEVMETHOD(device_probe, led_probe), DEVMETHOD(device_attach, led_attach), - DEVMETHOD(device_attach, led_detach), + DEVMETHOD(device_detach, led_detach), {0, 0}, }; ==== //depot/projects/vimage-commit2/src/sys/arm/xscale/ixp425/if_npe.c#7 (text+ko) ==== @@ -23,7 +23,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/arm/xscale/ixp425/if_npe.c,v 1.17 2009/05/30 18:23:55 sam Exp $"); +__FBSDID("$FreeBSD: src/sys/arm/xscale/ixp425/if_npe.c,v 1.18 2009/06/11 17:05:13 avg Exp $"); /* * Intel XScale NPE Ethernet driver. @@ -1691,20 +1691,21 @@ return (v & NPE_MII_READ_FAIL) ? 0xffff : (v & 0xffff); } -static void +static int npe_miibus_writereg(device_t dev, int phy, int reg, int data) { struct npe_softc *sc = device_get_softc(dev); uint32_t v; if (phy != sc->sc_phy) /* XXX */ - return; + return (0); v = (phy << NPE_MII_ADDR_SHL) | (reg << NPE_MII_REG_SHL) | data | NPE_MII_WRITE | NPE_MII_GO; npe_mii_mdio_write(sc, NPE_MAC_MDIO_CMD, v); /* XXX complain about timeout */ (void) npe_mii_mdio_wait(sc); + return (0); } static void ==== //depot/projects/vimage-commit2/src/sys/arm/xscale/ixp425/ixp425.c#6 (text+ko) ==== @@ -34,7 +34,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/arm/xscale/ixp425/ixp425.c,v 1.18 2009/06/09 18:18:41 marcel Exp $"); +__FBSDID("$FreeBSD: src/sys/arm/xscale/ixp425/ixp425.c,v 1.19 2009/06/11 17:05:13 avg Exp $"); #include "opt_ddb.h" @@ -334,7 +334,7 @@ } static int -ixp425_read_ivar(device_t bus, device_t child, int which, u_char *result) +ixp425_read_ivar(device_t bus, device_t child, int which, uintptr_t *result) { struct ixp425_ivar *ivar = IXP425_IVAR(child); ==== //depot/projects/vimage-commit2/src/sys/arm/xscale/ixp425/ixp425_iic.c#4 (text+ko) ==== @@ -24,7 +24,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/arm/xscale/ixp425/ixp425_iic.c,v 1.4 2008/12/20 03:26:09 sam Exp $"); +__FBSDID("$FreeBSD: src/sys/arm/xscale/ixp425/ixp425_iic.c,v 1.5 2009/06/11 17:05:13 avg Exp $"); #include #include @@ -95,7 +95,7 @@ } static int -ixpiic_callback(device_t dev, int index, caddr_t *data) +ixpiic_callback(device_t dev, int index, caddr_t data) { return (0); } @@ -129,7 +129,7 @@ } static void -ixpiic_setsda(device_t dev, char val) +ixpiic_setsda(device_t dev, int val) { struct ixpiic_softc *sc = ixpiic_sc; @@ -144,7 +144,7 @@ } static void -ixpiic_setscl(device_t dev, char val) +ixpiic_setscl(device_t dev, int val) { struct ixpiic_softc *sc = ixpiic_sc; ==== //depot/projects/vimage-commit2/src/sys/dev/agp/agp_ali.c#2 (text+ko) ==== @@ -25,7 +25,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/agp/agp_ali.c,v 1.20 2007/11/12 21:51:36 jhb Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/agp/agp_ali.c,v 1.21 2009/06/11 17:06:07 avg Exp $"); #include "opt_bus.h" @@ -206,11 +206,11 @@ } static int -agp_ali_bind_page(device_t dev, int offset, vm_offset_t physical) +agp_ali_bind_page(device_t dev, vm_offset_t offset, vm_offset_t physical) { struct agp_ali_softc *sc = device_get_softc(dev); - if (offset < 0 || offset >= (sc->gatt->ag_entries << AGP_PAGE_SHIFT)) + if (offset >= (sc->gatt->ag_entries << AGP_PAGE_SHIFT)) return EINVAL; sc->gatt->ag_virtual[offset >> AGP_PAGE_SHIFT] = physical; @@ -218,11 +218,11 @@ } static int -agp_ali_unbind_page(device_t dev, int offset) +agp_ali_unbind_page(device_t dev, vm_offset_t offset) { struct agp_ali_softc *sc = device_get_softc(dev); - if (offset < 0 || offset >= (sc->gatt->ag_entries << AGP_PAGE_SHIFT)) + if (offset >= (sc->gatt->ag_entries << AGP_PAGE_SHIFT)) return EINVAL; sc->gatt->ag_virtual[offset >> AGP_PAGE_SHIFT] = 0; ==== //depot/projects/vimage-commit2/src/sys/dev/agp/agp_amd.c#2 (text+ko) ==== @@ -25,7 +25,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/agp/agp_amd.c,v 1.25 2007/11/12 21:51:36 jhb Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/agp/agp_amd.c,v 1.26 2009/06/11 17:06:07 avg Exp $"); #include "opt_bus.h" @@ -342,11 +342,11 @@ } static int -agp_amd_bind_page(device_t dev, int offset, vm_offset_t physical) +agp_amd_bind_page(device_t dev, vm_offset_t offset, vm_offset_t physical) { struct agp_amd_softc *sc = device_get_softc(dev); - if (offset < 0 || offset >= (sc->gatt->ag_entries << AGP_PAGE_SHIFT)) + if (offset >= (sc->gatt->ag_entries << AGP_PAGE_SHIFT)) return EINVAL; sc->gatt->ag_virtual[offset >> AGP_PAGE_SHIFT] = physical | 1; @@ -357,11 +357,11 @@ } static int -agp_amd_unbind_page(device_t dev, int offset) +agp_amd_unbind_page(device_t dev, vm_offset_t offset) { struct agp_amd_softc *sc = device_get_softc(dev); - if (offset < 0 || offset >= (sc->gatt->ag_entries << AGP_PAGE_SHIFT)) + if (offset >= (sc->gatt->ag_entries << AGP_PAGE_SHIFT)) return EINVAL; sc->gatt->ag_virtual[offset >> AGP_PAGE_SHIFT] = 0; ==== //depot/projects/vimage-commit2/src/sys/dev/agp/agp_ati.c#2 (text+ko) ==== @@ -27,7 +27,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/agp/agp_ati.c,v 1.5 2007/11/12 21:51:36 jhb Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/agp/agp_ati.c,v 1.6 2009/06/11 17:06:07 avg Exp $"); #include "opt_bus.h" @@ -315,11 +315,11 @@ } static int -agp_ati_bind_page(device_t dev, int offset, vm_offset_t physical) +agp_ati_bind_page(device_t dev, vm_offset_t offset, vm_offset_t physical) { struct agp_ati_softc *sc = device_get_softc(dev); - if (offset < 0 || offset >= (sc->ag_entries << AGP_PAGE_SHIFT)) + if (offset >= (sc->ag_entries << AGP_PAGE_SHIFT)) return EINVAL; sc->ag_virtual[offset >> AGP_PAGE_SHIFT] = physical | 1; @@ -328,11 +328,11 @@ } static int -agp_ati_unbind_page(device_t dev, int offset) +agp_ati_unbind_page(device_t dev, vm_offset_t offset) { struct agp_ati_softc *sc = device_get_softc(dev); - if (offset < 0 || offset >= (sc->ag_entries << AGP_PAGE_SHIFT)) + if (offset >= (sc->ag_entries << AGP_PAGE_SHIFT)) return EINVAL; sc->ag_virtual[offset >> AGP_PAGE_SHIFT] = 0; ==== //depot/projects/vimage-commit2/src/sys/dev/agp/agp_nvidia.c#2 (text+ko) ==== @@ -25,7 +25,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/agp/agp_nvidia.c,v 1.14 2008/03/07 13:36:38 jhb Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/agp/agp_nvidia.c,v 1.15 2009/06/11 17:06:07 avg Exp $"); /* * Written using information gleaned from the @@ -90,8 +90,8 @@ static int agp_nvidia_detach(device_t); static u_int32_t agp_nvidia_get_aperture(device_t); static int agp_nvidia_set_aperture(device_t, u_int32_t); -static int agp_nvidia_bind_page(device_t, int, vm_offset_t); -static int agp_nvidia_unbind_page(device_t, int); +static int agp_nvidia_bind_page(device_t, vm_offset_t, vm_offset_t); +static int agp_nvidia_unbind_page(device_t, vm_offset_t); static int nvidia_init_iorr(u_int32_t, u_int32_t); @@ -312,12 +312,12 @@ } static int -agp_nvidia_bind_page(device_t dev, int offset, vm_offset_t physical) +agp_nvidia_bind_page(device_t dev, vm_offset_t offset, vm_offset_t physical) { struct agp_nvidia_softc *sc = device_get_softc(dev); u_int32_t index; - if (offset < 0 || offset >= (sc->gatt->ag_entries << AGP_PAGE_SHIFT)) + if (offset >= (sc->gatt->ag_entries << AGP_PAGE_SHIFT)) return (EINVAL); index = (sc->pg_offset + offset) >> AGP_PAGE_SHIFT; @@ -327,12 +327,12 @@ } static int -agp_nvidia_unbind_page(device_t dev, int offset) +agp_nvidia_unbind_page(device_t dev, vm_offset_t offset) { struct agp_nvidia_softc *sc = device_get_softc(dev); u_int32_t index; - if (offset < 0 || offset >= (sc->gatt->ag_entries << AGP_PAGE_SHIFT)) + if (offset >= (sc->gatt->ag_entries << AGP_PAGE_SHIFT)) return (EINVAL); index = (sc->pg_offset + offset) >> AGP_PAGE_SHIFT; @@ -341,8 +341,8 @@ return (0); } -static int -agp_nvidia_flush_tlb (device_t dev, int offset) +static void +agp_nvidia_flush_tlb (device_t dev) { struct agp_nvidia_softc *sc; u_int32_t wbc_reg, temp; @@ -378,8 +378,6 @@ temp = ag_virtual[i * PAGE_SIZE / sizeof(u_int32_t)]; for(i = 0; i < pages; i++) temp = ag_virtual[i * PAGE_SIZE / sizeof(u_int32_t)]; - - return (0); } #define SYSCFG 0xC0010010 ==== //depot/projects/vimage-commit2/src/sys/dev/agp/agp_sis.c#2 (text+ko) ==== @@ -25,7 +25,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/agp/agp_sis.c,v 1.22 2007/11/12 21:51:37 jhb Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/agp/agp_sis.c,v 1.23 2009/06/11 17:06:07 avg Exp $"); #include "opt_bus.h" @@ -227,11 +227,11 @@ } static int -agp_sis_bind_page(device_t dev, int offset, vm_offset_t physical) +agp_sis_bind_page(device_t dev, vm_offset_t offset, vm_offset_t physical) { struct agp_sis_softc *sc = device_get_softc(dev); - if (offset < 0 || offset >= (sc->gatt->ag_entries << AGP_PAGE_SHIFT)) + if (offset >= (sc->gatt->ag_entries << AGP_PAGE_SHIFT)) return EINVAL; sc->gatt->ag_virtual[offset >> AGP_PAGE_SHIFT] = physical; @@ -239,11 +239,11 @@ } static int -agp_sis_unbind_page(device_t dev, int offset) +agp_sis_unbind_page(device_t dev, vm_offset_t offset) { struct agp_sis_softc *sc = device_get_softc(dev); - if (offset < 0 || offset >= (sc->gatt->ag_entries << AGP_PAGE_SHIFT)) + if (offset >= (sc->gatt->ag_entries << AGP_PAGE_SHIFT)) return EINVAL; sc->gatt->ag_virtual[offset >> AGP_PAGE_SHIFT] = 0; ==== //depot/projects/vimage-commit2/src/sys/dev/eisa/eisaconf.c#2 (text+ko) ==== @@ -31,7 +31,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/eisa/eisaconf.c,v 1.73 2005/08/01 07:09:15 imp Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/eisa/eisaconf.c,v 1.74 2009/06/11 17:06:58 avg Exp $"); #include "opt_eisa.h" @@ -315,7 +315,7 @@ } static int -eisa_read_ivar(device_t dev, device_t child, int which, u_long *result) +eisa_read_ivar(device_t dev, device_t child, int which, uintptr_t *result) { struct eisa_device *e_dev = device_get_ivars(child); struct irq_node *irq; ==== //depot/projects/vimage-commit2/src/sys/dev/ksyms/ksyms.c#3 (text+ko) ==== @@ -23,7 +23,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $FreeBSD: src/sys/dev/ksyms/ksyms.c,v 1.3 2009/06/01 21:54:22 jhb Exp $ + * $FreeBSD: src/sys/dev/ksyms/ksyms.c,v 1.4 2009/06/11 17:05:45 avg Exp $ */ #include @@ -129,7 +129,7 @@ ksyms_size_permod(linker_file_t lf, void *arg) { struct tsizes *ts; - Elf_Sym *symtab; + const Elf_Sym *symtab; caddr_t strtab; long syms; @@ -170,7 +170,8 @@ ksyms_add(linker_file_t lf, void *arg) { struct toffsets *to; - Elf_Sym *symtab, *symp; + const Elf_Sym *symtab; + Elf_Sym *symp; caddr_t strtab; long symsz; size_t strsz, numsyms; ==== //depot/projects/vimage-commit2/src/sys/dev/mca/mca_bus.c#3 (text+ko) ==== @@ -26,7 +26,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/mca/mca_bus.c,v 1.14 2009/02/24 18:09:31 rdivacky Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/mca/mca_bus.c,v 1.15 2009/06/11 17:06:58 avg Exp $"); /* * References: @@ -432,7 +432,7 @@ } static int -mca_read_ivar (device_t dev, device_t child, int which, u_long * result) +mca_read_ivar (device_t dev, device_t child, int which, uintptr_t * result) { struct mca_device * m_dev = device_get_ivars(child); ==== //depot/projects/vimage-commit2/src/sys/dev/mge/if_mge.c#5 (text+ko) ==== @@ -34,7 +34,7 @@ #endif #include -__FBSDID("$FreeBSD: src/sys/dev/mge/if_mge.c,v 1.5 2009/05/30 15:14:44 attilio Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/mge/if_mge.c,v 1.6 2009/06/11 17:14:54 avg Exp $"); #include #include @@ -88,7 +88,7 @@ static int mge_resume(device_t dev); static int mge_miibus_readreg(device_t dev, int phy, int reg); -static void mge_miibus_writereg(device_t dev, int phy, int reg, int value); +static int mge_miibus_writereg(device_t dev, int phy, int reg, int value); static int mge_ifmedia_upd(struct ifnet *ifp); static void mge_ifmedia_sts(struct ifnet *ifp, struct ifmediareq *ifmr); @@ -1287,13 +1287,13 @@ return (MGE_READ(sc_mge0, MGE_REG_SMI) & 0xffff); } -static void +static int mge_miibus_writereg(device_t dev, int phy, int reg, int value) { uint32_t retries; if ((MV_PHY_ADDR_BASE + device_get_unit(dev)) != phy) - return; + return (0); MGE_WRITE(sc_mge0, MGE_REG_SMI, 0x1fffffff & (MGE_SMI_WRITE | (reg << 21) | (phy << 16) | (value & 0xffff))); @@ -1304,6 +1304,7 @@ if (retries == 0) device_printf(dev, "Timeout while writing to PHY\n"); + return (0); } static int ==== //depot/projects/vimage-commit2/src/sys/dev/ncv/ncr53c500_pccard.c#2 (text+ko) ==== @@ -37,7 +37,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/ncv/ncr53c500_pccard.c,v 1.29 2007/02/23 12:18:47 piso Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/ncv/ncr53c500_pccard.c,v 1.30 2009/06/11 17:14:28 avg Exp $"); #include #include @@ -260,11 +260,13 @@ return(0); } -static void +static int ncv_pccard_detach(device_t dev) { ncv_card_unload(dev); ncv_release_resource(dev); + + return (0); } static device_method_t ncv_pccard_methods[] = { ==== //depot/projects/vimage-commit2/src/sys/dev/nsp/nsp_pccard.c#2 (text+ko) ==== @@ -35,7 +35,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/nsp/nsp_pccard.c,v 1.25 2007/02/23 12:18:48 piso Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/nsp/nsp_pccard.c,v 1.26 2009/06/11 17:14:28 avg Exp $"); #include #include @@ -200,11 +200,13 @@ return(0); } -static void +static int nsp_pccard_detach(device_t dev) { nsp_card_unload(dev); nsp_release_resource(dev); + + return (0); } static device_method_t nsp_pccard_methods[] = { ==== //depot/projects/vimage-commit2/src/sys/dev/ofw/ofw_standard.c#3 (text+ko) ==== @@ -56,7 +56,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/ofw/ofw_standard.c,v 1.2 2009/03/29 15:10:49 marius Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/ofw/ofw_standard.c,v 1.3 2009/06/11 17:15:20 avg Exp $"); #include #include @@ -83,8 +83,8 @@ const char *propname, void *buf, size_t buflen); static int ofw_std_nextprop(ofw_t ofw, phandle_t package, const char *previous, char *buf, size_t); -static int ofw_std_setprop(ofw_t ofw, phandle_t package, char *propname, - void *buf, size_t len); +static int ofw_std_setprop(ofw_t ofw, phandle_t package, const char *propname, + const void *buf, size_t len); static ssize_t ofw_std_canon(ofw_t ofw, const char *device, char *buf, size_t len); static phandle_t ofw_std_finddevice(ofw_t ofw, const char *device); @@ -383,8 +383,8 @@ /* Set the value of a property of a package. */ /* XXX Has a bug on FirePower */ static int -ofw_std_setprop(ofw_t ofw, phandle_t package, char *propname, void *buf, - size_t len) +ofw_std_setprop(ofw_t ofw, phandle_t package, const char *propname, + const void *buf, size_t len) { static struct { cell_t name; ==== //depot/projects/vimage-commit2/src/sys/dev/pcf/pcf.c#3 (text+ko) ==== @@ -26,7 +26,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/pcf/pcf.c,v 1.27 2008/08/05 17:39:37 jhb Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/pcf/pcf.c,v 1.28 2009/06/11 17:15:44 avg Exp $"); #include #include @@ -378,7 +378,7 @@ } int -pcf_write(device_t dev, char *buf, int len, int *sent, int timeout /* us */) +pcf_write(device_t dev, const char *buf, int len, int *sent, int timeout /* us */) { struct pcf_softc *sc = DEVTOSOFTC(dev); int bytes, error = 0; ==== //depot/projects/vimage-commit2/src/sys/dev/pcf/pcfvar.h#3 (text+ko) ==== @@ -24,7 +24,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $FreeBSD: src/sys/dev/pcf/pcfvar.h,v 1.4 2008/08/04 20:46:15 jhb Exp $ + * $FreeBSD: src/sys/dev/pcf/pcfvar.h,v 1.5 2009/06/11 17:15:44 avg Exp $ */ #ifndef __PCFVAR_H__ @@ -135,7 +135,7 @@ extern int pcf_repeated_start(device_t, u_char, int); extern int pcf_start(device_t, u_char, int); extern int pcf_stop(device_t); -extern int pcf_write(device_t, char *, int, int *, int); +extern int pcf_write(device_t, const char *, int, int *, int); extern int pcf_read(device_t, char *, int, int *, int, int); extern int pcf_rst_card(device_t, u_char, u_char, u_char *); extern driver_intr_t pcf_intr; ==== //depot/projects/vimage-commit2/src/sys/dev/pdq/if_fpa.c#2 (text+ko) ==== @@ -25,7 +25,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/pdq/if_fpa.c,v 1.27 2007/02/23 19:31:44 imp Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/pdq/if_fpa.c,v 1.28 2009/06/11 17:14:28 avg Exp $"); /* * DEC PDQ FDDI Controller; code for BSD derived operating systems @@ -67,7 +67,7 @@ static int pdq_pci_probe (device_t); static int pdq_pci_attach (device_t); static int pdq_pci_detach (device_t); -static void pdq_pci_shutdown (device_t); +static int pdq_pci_shutdown (device_t); static void pdq_pci_ifintr (void *); static void @@ -185,7 +185,7 @@ return (0); } -static void +static int pdq_pci_shutdown(device_t dev) { pdq_softc_t *sc; @@ -193,7 +193,7 @@ sc = device_get_softc(dev); pdq_hwreset(sc->sc_pdq); - return; + return (0); } static device_method_t pdq_pci_methods[] = { ==== //depot/projects/vimage-commit2/src/sys/dev/smc/if_smc.c#7 (text+ko) ==== @@ -23,7 +23,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/smc/if_smc.c,v 1.7 2009/05/30 15:14:44 attilio Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/smc/if_smc.c,v 1.8 2009/06/11 17:14:54 avg Exp $"); /* * Driver for SMSC LAN91C111, may work for older variants. @@ -999,7 +999,7 @@ return (val); } -void +int smc_miibus_writereg(device_t dev, int phy, int reg, int data) { struct smc_softc *sc; @@ -1029,6 +1029,7 @@ smc_read_2(sc, MGMT) & ~(MGMT_MCLK | MGMT_MDOE | MGMT_MDO)); SMC_UNLOCK(sc); + return (0); } void ==== //depot/projects/vimage-commit2/src/sys/dev/smc/if_smcvar.h#5 (text+ko) ==== @@ -21,7 +21,7 @@ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * - * $FreeBSD: src/sys/dev/smc/if_smcvar.h,v 1.5 2008/06/13 00:48:09 benno Exp $ + * $FreeBSD: src/sys/dev/smc/if_smcvar.h,v 1.6 2009/06/11 17:14:54 avg Exp $ * */ @@ -71,7 +71,7 @@ int smc_detach(device_t); int smc_miibus_readreg(device_t, int, int); -void smc_miibus_writereg(device_t, int, int, int); +int smc_miibus_writereg(device_t, int, int, int); void smc_miibus_statchg(device_t); #endif /* _IF_SMCVAR_H_ */ ==== //depot/projects/vimage-commit2/src/sys/dev/snc/if_snc.c#3 (text+ko) ==== @@ -27,7 +27,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/snc/if_snc.c,v 1.8 2008/08/04 19:19:18 jhb Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/snc/if_snc.c,v 1.9 2009/06/11 17:14:28 avg Exp $"); /* * National Semiconductor DP8393X SONIC Driver @@ -252,7 +252,7 @@ Shutdown routine ****************************************************************/ -void +int snc_shutdown(dev) device_t dev; { @@ -261,4 +261,6 @@ SNC_LOCK(sc); sncshutdown(sc); SNC_UNLOCK(sc); + + return (0); } ==== //depot/projects/vimage-commit2/src/sys/dev/snc/if_sncvar.h#2 (text+ko) ==== @@ -24,7 +24,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $FreeBSD: src/sys/dev/snc/if_sncvar.h,v 1.3 2005/01/06 01:43:15 imp Exp $ + * $FreeBSD: src/sys/dev/snc/if_sncvar.h,v 1.4 2009/06/11 17:14:28 avg Exp $ */ /* @@ -44,4 +44,4 @@ int snc_probe (device_t, int); int snc_attach (device_t); -void snc_shutdown (device_t); +int snc_shutdown (device_t); ==== //depot/projects/vimage-commit2/src/sys/dev/spibus/spibus.c#3 (text+ko) ==== @@ -1,5 +1,5 @@ #include -__FBSDID("$FreeBSD: src/sys/dev/spibus/spibus.c,v 1.3 2009/05/13 18:42:49 gonzo Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/spibus/spibus.c,v 1.4 2009/06/11 17:06:58 avg Exp $"); #include #include @@ -112,7 +112,7 @@ } static int -spibus_read_ivar(device_t bus, device_t child, int which, u_char *result) +spibus_read_ivar(device_t bus, device_t child, int which, u_int *result) { struct spibus_ivar *devi = SPIBUS_IVAR(child); ==== //depot/projects/vimage-commit2/src/sys/dev/stg/tmc18c30.h#2 (text+ko) ==== @@ -1,5 +1,5 @@ /* - * $FreeBSD: src/sys/dev/stg/tmc18c30.h,v 1.1 2003/04/07 10:13:25 mdodd Exp $ + * $FreeBSD: src/sys/dev/stg/tmc18c30.h,v 1.2 2009/06/11 17:14:28 avg Exp $ >>> TRUNCATED FOR MAIL (1000 lines) <<< From owner-p4-projects@FreeBSD.ORG Thu Jun 11 17:51:22 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 07F831065673; Thu, 11 Jun 2009 17:51:22 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id BB5BA106564A for ; Thu, 11 Jun 2009 17:51:21 +0000 (UTC) (envelope-from zec@fer.hr) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id A89038FC12 for ; Thu, 11 Jun 2009 17:51:21 +0000 (UTC) (envelope-from zec@fer.hr) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n5BHpLKf010070 for ; Thu, 11 Jun 2009 17:51:21 GMT (envelope-from zec@fer.hr) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n5BHpLVe010068 for perforce@freebsd.org; Thu, 11 Jun 2009 17:51:21 GMT (envelope-from zec@fer.hr) Date: Thu, 11 Jun 2009 17:51:21 GMT Message-Id: <200906111751.n5BHpLVe010068@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to zec@fer.hr using -f From: Marko Zec To: Perforce Change Reviews Cc: Subject: PERFORCE change 164132 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 11 Jun 2009 17:51:23 -0000 http://perforce.freebsd.org/chv.cgi?CH=164132 Change 164132 by zec@zec_amdx4 on 2009/06/11 17:50:30 IFC @ 164130 Affected files ... .. //depot/projects/vimage/src/sys/arm/at91/at91_mci.c#13 integrate .. //depot/projects/vimage/src/sys/arm/at91/at91_twi.c#7 integrate .. //depot/projects/vimage/src/sys/arm/at91/if_ate.c#14 integrate .. //depot/projects/vimage/src/sys/arm/mv/twsi.c#2 integrate .. //depot/projects/vimage/src/sys/arm/xscale/i80321/i80321_pci.c#5 integrate .. //depot/projects/vimage/src/sys/arm/xscale/ixp425/avila_led.c#3 integrate .. //depot/projects/vimage/src/sys/arm/xscale/ixp425/cambria_led.c#2 integrate .. //depot/projects/vimage/src/sys/arm/xscale/ixp425/if_npe.c#13 integrate .. //depot/projects/vimage/src/sys/arm/xscale/ixp425/ixp425.c#11 integrate .. //depot/projects/vimage/src/sys/arm/xscale/ixp425/ixp425_iic.c#5 integrate .. //depot/projects/vimage/src/sys/dev/agp/agp_ali.c#2 integrate .. //depot/projects/vimage/src/sys/dev/agp/agp_amd.c#2 integrate .. //depot/projects/vimage/src/sys/dev/agp/agp_ati.c#2 integrate .. //depot/projects/vimage/src/sys/dev/agp/agp_nvidia.c#3 integrate .. //depot/projects/vimage/src/sys/dev/agp/agp_sis.c#2 integrate .. //depot/projects/vimage/src/sys/dev/eisa/eisaconf.c#2 integrate .. //depot/projects/vimage/src/sys/dev/ksyms/ksyms.c#3 integrate .. //depot/projects/vimage/src/sys/dev/mca/mca_bus.c#3 integrate .. //depot/projects/vimage/src/sys/dev/mge/if_mge.c#5 integrate .. //depot/projects/vimage/src/sys/dev/ncv/ncr53c500_pccard.c#3 integrate .. //depot/projects/vimage/src/sys/dev/nsp/nsp_pccard.c#3 integrate .. //depot/projects/vimage/src/sys/dev/ofw/ofw_standard.c#3 integrate .. //depot/projects/vimage/src/sys/dev/pcf/pcf.c#3 integrate .. //depot/projects/vimage/src/sys/dev/pcf/pcfvar.h#3 integrate .. //depot/projects/vimage/src/sys/dev/pdq/if_fpa.c#3 integrate .. //depot/projects/vimage/src/sys/dev/smc/if_smc.c#7 integrate .. //depot/projects/vimage/src/sys/dev/smc/if_smcvar.h#5 integrate .. //depot/projects/vimage/src/sys/dev/snc/if_snc.c#3 integrate .. //depot/projects/vimage/src/sys/dev/snc/if_sncvar.h#2 integrate .. //depot/projects/vimage/src/sys/dev/spibus/spibus.c#3 integrate .. //depot/projects/vimage/src/sys/dev/stg/tmc18c30.h#2 integrate .. //depot/projects/vimage/src/sys/dev/stg/tmc18c30_subr.c#2 integrate .. //depot/projects/vimage/src/sys/dev/ubsec/ubsec.c#4 integrate .. //depot/projects/vimage/src/sys/dev/wb/if_wb.c#2 integrate .. //depot/projects/vimage/src/sys/dev/wi/if_wi.c#17 integrate .. //depot/projects/vimage/src/sys/dev/wi/if_wivar.h#8 integrate .. //depot/projects/vimage/src/sys/i386/include/legacyvar.h#3 integrate .. //depot/projects/vimage/src/sys/i386/pci/pci_bus.c#6 integrate .. //depot/projects/vimage/src/sys/kern/link_elf_obj.c#13 integrate .. //depot/projects/vimage/src/sys/kern/linker_if.m#5 integrate .. //depot/projects/vimage/src/sys/kern/vnode_if.src#15 integrate .. //depot/projects/vimage/src/sys/net80211/_ieee80211.h#14 integrate .. //depot/projects/vimage/src/sys/net80211/ieee80211_ioctl.c#28 integrate .. //depot/projects/vimage/src/sys/netgraph/netgraph.h#22 integrate .. //depot/projects/vimage/src/sys/netgraph/ng_base.c#61 integrate .. //depot/projects/vimage/src/sys/netgraph/ng_eiface.c#29 integrate .. //depot/projects/vimage/src/sys/netgraph/ng_ether.c#27 integrate .. //depot/projects/vimage/src/sys/netgraph/ng_iface.c#28 integrate .. //depot/projects/vimage/src/sys/netgraph/ng_ip_input.c#3 integrate .. //depot/projects/vimage/src/sys/powerpc/ofw/ofw_real.c#2 integrate .. //depot/projects/vimage/src/sys/powerpc/powermac/cuda.c#5 integrate .. //depot/projects/vimage/src/sys/powerpc/powermac/pmu.c#5 integrate .. //depot/projects/vimage/src/sys/sys/kobj.h#5 integrate .. //depot/projects/vimage/src/sys/sys/proc.h#34 integrate Differences ... ==== //depot/projects/vimage/src/sys/arm/at91/at91_mci.c#13 (text+ko) ==== @@ -25,7 +25,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/arm/at91/at91_mci.c,v 1.16 2009/01/23 00:51:25 imp Exp $"); +__FBSDID("$FreeBSD: src/sys/arm/at91/at91_mci.c,v 1.17 2009/06/11 17:05:13 avg Exp $"); #include #include @@ -612,7 +612,7 @@ } static int -at91_mci_read_ivar(device_t bus, device_t child, int which, u_char *result) +at91_mci_read_ivar(device_t bus, device_t child, int which, uintptr_t *result) { struct at91_mci_softc *sc = device_get_softc(bus); ==== //depot/projects/vimage/src/sys/arm/at91/at91_twi.c#7 (text) ==== @@ -24,7 +24,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/arm/at91/at91_twi.c,v 1.14 2009/01/22 21:55:37 imp Exp $"); +__FBSDID("$FreeBSD: src/sys/arm/at91/at91_twi.c,v 1.15 2009/06/11 17:05:13 avg Exp $"); #include #include @@ -289,7 +289,7 @@ } static int -at91_twi_callback(device_t dev, int index, caddr_t *data) +at91_twi_callback(device_t dev, int index, caddr_t data) { int error = 0; ==== //depot/projects/vimage/src/sys/arm/at91/if_ate.c#14 (text) ==== @@ -30,7 +30,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/arm/at91/if_ate.c,v 1.37 2009/05/13 21:01:10 stas Exp $"); +__FBSDID("$FreeBSD: src/sys/arm/at91/if_ate.c,v 1.38 2009/06/11 17:05:13 avg Exp $"); #include #include @@ -1190,7 +1190,7 @@ return (val); } -static void +static int ate_miibus_writereg(device_t dev, int phy, int reg, int data) { struct ate_softc *sc; @@ -1204,7 +1204,7 @@ WR4(sc, ETH_MAN, ETH_MAN_REG_WR(phy, reg, data)); while ((RD4(sc, ETH_SR) & ETH_SR_IDLE) == 0) continue; - return; + return (0); } static device_method_t ate_methods[] = { ==== //depot/projects/vimage/src/sys/arm/mv/twsi.c#2 (text+ko) ==== @@ -38,7 +38,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/arm/mv/twsi.c,v 1.1 2008/10/13 20:07:13 raj Exp $"); +__FBSDID("$FreeBSD: src/sys/arm/mv/twsi.c,v 1.2 2009/06/11 17:05:13 avg Exp $"); #include #include @@ -117,7 +117,7 @@ static int mv_twsi_stop(device_t dev); static int mv_twsi_read(device_t dev, char *buf, int len, int *read, int last, int delay); -static int mv_twsi_write(device_t dev, char *buf, int len, int *sent, +static int mv_twsi_write(device_t dev, const char *buf, int len, int *sent, int timeout); static struct resource_spec res_spec[] = { @@ -488,7 +488,7 @@ } static int -mv_twsi_write(device_t dev, char *buf, int len, int *sent, int timeout) +mv_twsi_write(device_t dev, const char *buf, int len, int *sent, int timeout) { struct mv_twsi_softc *sc; uint32_t status; ==== //depot/projects/vimage/src/sys/arm/xscale/i80321/i80321_pci.c#5 (text+ko) ==== @@ -40,7 +40,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/arm/xscale/i80321/i80321_pci.c,v 1.12 2007/09/30 11:05:13 marius Exp $"); +__FBSDID("$FreeBSD: src/sys/arm/xscale/i80321/i80321_pci.c,v 1.13 2009/06/11 17:05:13 avg Exp $"); #include #include @@ -174,8 +174,8 @@ } static u_int32_t -i80321_pci_read_config(device_t dev, int bus, int slot, int func, int reg, - int bytes) +i80321_pci_read_config(device_t dev, u_int bus, u_int slot, u_int func, + u_int reg, int bytes) { struct i80321_pci_softc *sc = device_get_softc(dev); uint32_t isr; @@ -215,8 +215,8 @@ } static void -i80321_pci_write_config(device_t dev, int bus, int slot, int func, int reg, - u_int32_t data, int bytes) +i80321_pci_write_config(device_t dev, u_int bus, u_int slot, u_int func, + u_int reg, u_int32_t data, int bytes) { struct i80321_pci_softc *sc = device_get_softc(dev); uint32_t addr; ==== //depot/projects/vimage/src/sys/arm/xscale/ixp425/avila_led.c#3 (text+ko) ==== @@ -23,7 +23,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/arm/xscale/ixp425/avila_led.c,v 1.2 2008/12/20 03:26:09 sam Exp $"); +__FBSDID("$FreeBSD: src/sys/arm/xscale/ixp425/avila_led.c,v 1.3 2009/06/11 17:05:13 avg Exp $"); #include #include @@ -88,13 +88,14 @@ return (0); } -static void +static int led_avila_detach(device_t dev) { struct led_avila_softc *sc = device_get_softc(dev); if (sc->sc_led != NULL) led_destroy(sc->sc_led); + return (0); } static device_method_t led_avila_methods[] = { ==== //depot/projects/vimage/src/sys/arm/xscale/ixp425/cambria_led.c#2 (text+ko) ==== @@ -23,7 +23,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/arm/xscale/ixp425/cambria_led.c,v 1.1 2008/12/20 03:26:09 sam Exp $"); +__FBSDID("$FreeBSD: src/sys/arm/xscale/ixp425/cambria_led.c,v 1.2 2009/06/11 17:05:13 avg Exp $"); /* * Gateworks Cambria Octal LED Latch driver. @@ -102,7 +102,7 @@ return 0; } -static void +static int led_detach(device_t dev) { struct led_softc *sc = device_get_softc(dev); @@ -113,12 +113,13 @@ if (led != NULL) led_destroy(led); } + return (0); } static device_method_t led_methods[] = { DEVMETHOD(device_probe, led_probe), DEVMETHOD(device_attach, led_attach), - DEVMETHOD(device_attach, led_detach), + DEVMETHOD(device_detach, led_detach), {0, 0}, }; ==== //depot/projects/vimage/src/sys/arm/xscale/ixp425/if_npe.c#13 (text+ko) ==== @@ -23,7 +23,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/arm/xscale/ixp425/if_npe.c,v 1.17 2009/05/30 18:23:55 sam Exp $"); +__FBSDID("$FreeBSD: src/sys/arm/xscale/ixp425/if_npe.c,v 1.18 2009/06/11 17:05:13 avg Exp $"); /* * Intel XScale NPE Ethernet driver. @@ -1691,20 +1691,21 @@ return (v & NPE_MII_READ_FAIL) ? 0xffff : (v & 0xffff); } -static void +static int npe_miibus_writereg(device_t dev, int phy, int reg, int data) { struct npe_softc *sc = device_get_softc(dev); uint32_t v; if (phy != sc->sc_phy) /* XXX */ - return; + return (0); v = (phy << NPE_MII_ADDR_SHL) | (reg << NPE_MII_REG_SHL) | data | NPE_MII_WRITE | NPE_MII_GO; npe_mii_mdio_write(sc, NPE_MAC_MDIO_CMD, v); /* XXX complain about timeout */ (void) npe_mii_mdio_wait(sc); + return (0); } static void ==== //depot/projects/vimage/src/sys/arm/xscale/ixp425/ixp425.c#11 (text+ko) ==== @@ -34,7 +34,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/arm/xscale/ixp425/ixp425.c,v 1.18 2009/06/09 18:18:41 marcel Exp $"); +__FBSDID("$FreeBSD: src/sys/arm/xscale/ixp425/ixp425.c,v 1.19 2009/06/11 17:05:13 avg Exp $"); #include "opt_ddb.h" @@ -334,7 +334,7 @@ } static int -ixp425_read_ivar(device_t bus, device_t child, int which, u_char *result) +ixp425_read_ivar(device_t bus, device_t child, int which, uintptr_t *result) { struct ixp425_ivar *ivar = IXP425_IVAR(child); ==== //depot/projects/vimage/src/sys/arm/xscale/ixp425/ixp425_iic.c#5 (text+ko) ==== @@ -24,7 +24,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/arm/xscale/ixp425/ixp425_iic.c,v 1.4 2008/12/20 03:26:09 sam Exp $"); +__FBSDID("$FreeBSD: src/sys/arm/xscale/ixp425/ixp425_iic.c,v 1.5 2009/06/11 17:05:13 avg Exp $"); #include #include @@ -95,7 +95,7 @@ } static int -ixpiic_callback(device_t dev, int index, caddr_t *data) +ixpiic_callback(device_t dev, int index, caddr_t data) { return (0); } @@ -129,7 +129,7 @@ } static void -ixpiic_setsda(device_t dev, char val) +ixpiic_setsda(device_t dev, int val) { struct ixpiic_softc *sc = ixpiic_sc; @@ -144,7 +144,7 @@ } static void -ixpiic_setscl(device_t dev, char val) +ixpiic_setscl(device_t dev, int val) { struct ixpiic_softc *sc = ixpiic_sc; ==== //depot/projects/vimage/src/sys/dev/agp/agp_ali.c#2 (text+ko) ==== @@ -25,7 +25,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/agp/agp_ali.c,v 1.20 2007/11/12 21:51:36 jhb Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/agp/agp_ali.c,v 1.21 2009/06/11 17:06:07 avg Exp $"); #include "opt_bus.h" @@ -206,11 +206,11 @@ } static int -agp_ali_bind_page(device_t dev, int offset, vm_offset_t physical) +agp_ali_bind_page(device_t dev, vm_offset_t offset, vm_offset_t physical) { struct agp_ali_softc *sc = device_get_softc(dev); - if (offset < 0 || offset >= (sc->gatt->ag_entries << AGP_PAGE_SHIFT)) + if (offset >= (sc->gatt->ag_entries << AGP_PAGE_SHIFT)) return EINVAL; sc->gatt->ag_virtual[offset >> AGP_PAGE_SHIFT] = physical; @@ -218,11 +218,11 @@ } static int -agp_ali_unbind_page(device_t dev, int offset) +agp_ali_unbind_page(device_t dev, vm_offset_t offset) { struct agp_ali_softc *sc = device_get_softc(dev); - if (offset < 0 || offset >= (sc->gatt->ag_entries << AGP_PAGE_SHIFT)) + if (offset >= (sc->gatt->ag_entries << AGP_PAGE_SHIFT)) return EINVAL; sc->gatt->ag_virtual[offset >> AGP_PAGE_SHIFT] = 0; ==== //depot/projects/vimage/src/sys/dev/agp/agp_amd.c#2 (text+ko) ==== @@ -25,7 +25,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/agp/agp_amd.c,v 1.25 2007/11/12 21:51:36 jhb Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/agp/agp_amd.c,v 1.26 2009/06/11 17:06:07 avg Exp $"); #include "opt_bus.h" @@ -342,11 +342,11 @@ } static int -agp_amd_bind_page(device_t dev, int offset, vm_offset_t physical) +agp_amd_bind_page(device_t dev, vm_offset_t offset, vm_offset_t physical) { struct agp_amd_softc *sc = device_get_softc(dev); - if (offset < 0 || offset >= (sc->gatt->ag_entries << AGP_PAGE_SHIFT)) + if (offset >= (sc->gatt->ag_entries << AGP_PAGE_SHIFT)) return EINVAL; sc->gatt->ag_virtual[offset >> AGP_PAGE_SHIFT] = physical | 1; @@ -357,11 +357,11 @@ } static int -agp_amd_unbind_page(device_t dev, int offset) +agp_amd_unbind_page(device_t dev, vm_offset_t offset) { struct agp_amd_softc *sc = device_get_softc(dev); - if (offset < 0 || offset >= (sc->gatt->ag_entries << AGP_PAGE_SHIFT)) + if (offset >= (sc->gatt->ag_entries << AGP_PAGE_SHIFT)) return EINVAL; sc->gatt->ag_virtual[offset >> AGP_PAGE_SHIFT] = 0; ==== //depot/projects/vimage/src/sys/dev/agp/agp_ati.c#2 (text+ko) ==== @@ -27,7 +27,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/agp/agp_ati.c,v 1.5 2007/11/12 21:51:36 jhb Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/agp/agp_ati.c,v 1.6 2009/06/11 17:06:07 avg Exp $"); #include "opt_bus.h" @@ -315,11 +315,11 @@ } static int -agp_ati_bind_page(device_t dev, int offset, vm_offset_t physical) +agp_ati_bind_page(device_t dev, vm_offset_t offset, vm_offset_t physical) { struct agp_ati_softc *sc = device_get_softc(dev); - if (offset < 0 || offset >= (sc->ag_entries << AGP_PAGE_SHIFT)) + if (offset >= (sc->ag_entries << AGP_PAGE_SHIFT)) return EINVAL; sc->ag_virtual[offset >> AGP_PAGE_SHIFT] = physical | 1; @@ -328,11 +328,11 @@ } static int -agp_ati_unbind_page(device_t dev, int offset) +agp_ati_unbind_page(device_t dev, vm_offset_t offset) { struct agp_ati_softc *sc = device_get_softc(dev); - if (offset < 0 || offset >= (sc->ag_entries << AGP_PAGE_SHIFT)) + if (offset >= (sc->ag_entries << AGP_PAGE_SHIFT)) return EINVAL; sc->ag_virtual[offset >> AGP_PAGE_SHIFT] = 0; ==== //depot/projects/vimage/src/sys/dev/agp/agp_nvidia.c#3 (text+ko) ==== @@ -25,7 +25,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/agp/agp_nvidia.c,v 1.14 2008/03/07 13:36:38 jhb Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/agp/agp_nvidia.c,v 1.15 2009/06/11 17:06:07 avg Exp $"); /* * Written using information gleaned from the @@ -90,8 +90,8 @@ static int agp_nvidia_detach(device_t); static u_int32_t agp_nvidia_get_aperture(device_t); static int agp_nvidia_set_aperture(device_t, u_int32_t); -static int agp_nvidia_bind_page(device_t, int, vm_offset_t); -static int agp_nvidia_unbind_page(device_t, int); +static int agp_nvidia_bind_page(device_t, vm_offset_t, vm_offset_t); +static int agp_nvidia_unbind_page(device_t, vm_offset_t); static int nvidia_init_iorr(u_int32_t, u_int32_t); @@ -312,12 +312,12 @@ } static int -agp_nvidia_bind_page(device_t dev, int offset, vm_offset_t physical) +agp_nvidia_bind_page(device_t dev, vm_offset_t offset, vm_offset_t physical) { struct agp_nvidia_softc *sc = device_get_softc(dev); u_int32_t index; - if (offset < 0 || offset >= (sc->gatt->ag_entries << AGP_PAGE_SHIFT)) + if (offset >= (sc->gatt->ag_entries << AGP_PAGE_SHIFT)) return (EINVAL); index = (sc->pg_offset + offset) >> AGP_PAGE_SHIFT; @@ -327,12 +327,12 @@ } static int -agp_nvidia_unbind_page(device_t dev, int offset) +agp_nvidia_unbind_page(device_t dev, vm_offset_t offset) { struct agp_nvidia_softc *sc = device_get_softc(dev); u_int32_t index; - if (offset < 0 || offset >= (sc->gatt->ag_entries << AGP_PAGE_SHIFT)) + if (offset >= (sc->gatt->ag_entries << AGP_PAGE_SHIFT)) return (EINVAL); index = (sc->pg_offset + offset) >> AGP_PAGE_SHIFT; @@ -341,8 +341,8 @@ return (0); } -static int -agp_nvidia_flush_tlb (device_t dev, int offset) +static void +agp_nvidia_flush_tlb (device_t dev) { struct agp_nvidia_softc *sc; u_int32_t wbc_reg, temp; @@ -378,8 +378,6 @@ temp = ag_virtual[i * PAGE_SIZE / sizeof(u_int32_t)]; for(i = 0; i < pages; i++) temp = ag_virtual[i * PAGE_SIZE / sizeof(u_int32_t)]; - - return (0); } #define SYSCFG 0xC0010010 ==== //depot/projects/vimage/src/sys/dev/agp/agp_sis.c#2 (text+ko) ==== @@ -25,7 +25,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/agp/agp_sis.c,v 1.22 2007/11/12 21:51:37 jhb Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/agp/agp_sis.c,v 1.23 2009/06/11 17:06:07 avg Exp $"); #include "opt_bus.h" @@ -227,11 +227,11 @@ } static int -agp_sis_bind_page(device_t dev, int offset, vm_offset_t physical) +agp_sis_bind_page(device_t dev, vm_offset_t offset, vm_offset_t physical) { struct agp_sis_softc *sc = device_get_softc(dev); - if (offset < 0 || offset >= (sc->gatt->ag_entries << AGP_PAGE_SHIFT)) + if (offset >= (sc->gatt->ag_entries << AGP_PAGE_SHIFT)) return EINVAL; sc->gatt->ag_virtual[offset >> AGP_PAGE_SHIFT] = physical; @@ -239,11 +239,11 @@ } static int -agp_sis_unbind_page(device_t dev, int offset) +agp_sis_unbind_page(device_t dev, vm_offset_t offset) { struct agp_sis_softc *sc = device_get_softc(dev); - if (offset < 0 || offset >= (sc->gatt->ag_entries << AGP_PAGE_SHIFT)) + if (offset >= (sc->gatt->ag_entries << AGP_PAGE_SHIFT)) return EINVAL; sc->gatt->ag_virtual[offset >> AGP_PAGE_SHIFT] = 0; ==== //depot/projects/vimage/src/sys/dev/eisa/eisaconf.c#2 (text+ko) ==== @@ -31,7 +31,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/eisa/eisaconf.c,v 1.73 2005/08/01 07:09:15 imp Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/eisa/eisaconf.c,v 1.74 2009/06/11 17:06:58 avg Exp $"); #include "opt_eisa.h" @@ -315,7 +315,7 @@ } static int -eisa_read_ivar(device_t dev, device_t child, int which, u_long *result) +eisa_read_ivar(device_t dev, device_t child, int which, uintptr_t *result) { struct eisa_device *e_dev = device_get_ivars(child); struct irq_node *irq; ==== //depot/projects/vimage/src/sys/dev/ksyms/ksyms.c#3 (text+ko) ==== @@ -23,7 +23,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $FreeBSD: src/sys/dev/ksyms/ksyms.c,v 1.3 2009/06/01 21:54:22 jhb Exp $ + * $FreeBSD: src/sys/dev/ksyms/ksyms.c,v 1.4 2009/06/11 17:05:45 avg Exp $ */ #include @@ -129,7 +129,7 @@ ksyms_size_permod(linker_file_t lf, void *arg) { struct tsizes *ts; - Elf_Sym *symtab; + const Elf_Sym *symtab; caddr_t strtab; long syms; @@ -170,7 +170,8 @@ ksyms_add(linker_file_t lf, void *arg) { struct toffsets *to; - Elf_Sym *symtab, *symp; + const Elf_Sym *symtab; + Elf_Sym *symp; caddr_t strtab; long symsz; size_t strsz, numsyms; ==== //depot/projects/vimage/src/sys/dev/mca/mca_bus.c#3 (text+ko) ==== @@ -26,7 +26,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/mca/mca_bus.c,v 1.14 2009/02/24 18:09:31 rdivacky Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/mca/mca_bus.c,v 1.15 2009/06/11 17:06:58 avg Exp $"); /* * References: @@ -432,7 +432,7 @@ } static int -mca_read_ivar (device_t dev, device_t child, int which, u_long * result) +mca_read_ivar (device_t dev, device_t child, int which, uintptr_t * result) { struct mca_device * m_dev = device_get_ivars(child); ==== //depot/projects/vimage/src/sys/dev/mge/if_mge.c#5 (text+ko) ==== @@ -34,7 +34,7 @@ #endif #include -__FBSDID("$FreeBSD: src/sys/dev/mge/if_mge.c,v 1.5 2009/05/30 15:14:44 attilio Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/mge/if_mge.c,v 1.6 2009/06/11 17:14:54 avg Exp $"); #include #include @@ -88,7 +88,7 @@ static int mge_resume(device_t dev); static int mge_miibus_readreg(device_t dev, int phy, int reg); -static void mge_miibus_writereg(device_t dev, int phy, int reg, int value); +static int mge_miibus_writereg(device_t dev, int phy, int reg, int value); static int mge_ifmedia_upd(struct ifnet *ifp); static void mge_ifmedia_sts(struct ifnet *ifp, struct ifmediareq *ifmr); @@ -1287,13 +1287,13 @@ return (MGE_READ(sc_mge0, MGE_REG_SMI) & 0xffff); } -static void +static int mge_miibus_writereg(device_t dev, int phy, int reg, int value) { uint32_t retries; if ((MV_PHY_ADDR_BASE + device_get_unit(dev)) != phy) - return; + return (0); MGE_WRITE(sc_mge0, MGE_REG_SMI, 0x1fffffff & (MGE_SMI_WRITE | (reg << 21) | (phy << 16) | (value & 0xffff))); @@ -1304,6 +1304,7 @@ if (retries == 0) device_printf(dev, "Timeout while writing to PHY\n"); + return (0); } static int ==== //depot/projects/vimage/src/sys/dev/ncv/ncr53c500_pccard.c#3 (text+ko) ==== @@ -37,7 +37,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/ncv/ncr53c500_pccard.c,v 1.29 2007/02/23 12:18:47 piso Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/ncv/ncr53c500_pccard.c,v 1.30 2009/06/11 17:14:28 avg Exp $"); #include #include @@ -260,11 +260,13 @@ return(0); } -static void +static int ncv_pccard_detach(device_t dev) { ncv_card_unload(dev); ncv_release_resource(dev); + + return (0); } static device_method_t ncv_pccard_methods[] = { ==== //depot/projects/vimage/src/sys/dev/nsp/nsp_pccard.c#3 (text+ko) ==== @@ -35,7 +35,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/nsp/nsp_pccard.c,v 1.25 2007/02/23 12:18:48 piso Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/nsp/nsp_pccard.c,v 1.26 2009/06/11 17:14:28 avg Exp $"); #include #include @@ -200,11 +200,13 @@ return(0); } -static void +static int nsp_pccard_detach(device_t dev) { nsp_card_unload(dev); nsp_release_resource(dev); + + return (0); } static device_method_t nsp_pccard_methods[] = { ==== //depot/projects/vimage/src/sys/dev/ofw/ofw_standard.c#3 (text+ko) ==== @@ -56,7 +56,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/ofw/ofw_standard.c,v 1.2 2009/03/29 15:10:49 marius Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/ofw/ofw_standard.c,v 1.3 2009/06/11 17:15:20 avg Exp $"); #include #include @@ -83,8 +83,8 @@ const char *propname, void *buf, size_t buflen); static int ofw_std_nextprop(ofw_t ofw, phandle_t package, const char *previous, char *buf, size_t); -static int ofw_std_setprop(ofw_t ofw, phandle_t package, char *propname, - void *buf, size_t len); +static int ofw_std_setprop(ofw_t ofw, phandle_t package, const char *propname, + const void *buf, size_t len); static ssize_t ofw_std_canon(ofw_t ofw, const char *device, char *buf, size_t len); static phandle_t ofw_std_finddevice(ofw_t ofw, const char *device); @@ -383,8 +383,8 @@ /* Set the value of a property of a package. */ /* XXX Has a bug on FirePower */ static int -ofw_std_setprop(ofw_t ofw, phandle_t package, char *propname, void *buf, - size_t len) +ofw_std_setprop(ofw_t ofw, phandle_t package, const char *propname, + const void *buf, size_t len) { static struct { cell_t name; ==== //depot/projects/vimage/src/sys/dev/pcf/pcf.c#3 (text+ko) ==== @@ -26,7 +26,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/pcf/pcf.c,v 1.27 2008/08/05 17:39:37 jhb Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/pcf/pcf.c,v 1.28 2009/06/11 17:15:44 avg Exp $"); #include #include @@ -378,7 +378,7 @@ } int -pcf_write(device_t dev, char *buf, int len, int *sent, int timeout /* us */) +pcf_write(device_t dev, const char *buf, int len, int *sent, int timeout /* us */) { struct pcf_softc *sc = DEVTOSOFTC(dev); int bytes, error = 0; ==== //depot/projects/vimage/src/sys/dev/pcf/pcfvar.h#3 (text+ko) ==== @@ -24,7 +24,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $FreeBSD: src/sys/dev/pcf/pcfvar.h,v 1.4 2008/08/04 20:46:15 jhb Exp $ + * $FreeBSD: src/sys/dev/pcf/pcfvar.h,v 1.5 2009/06/11 17:15:44 avg Exp $ */ #ifndef __PCFVAR_H__ @@ -135,7 +135,7 @@ extern int pcf_repeated_start(device_t, u_char, int); extern int pcf_start(device_t, u_char, int); extern int pcf_stop(device_t); -extern int pcf_write(device_t, char *, int, int *, int); +extern int pcf_write(device_t, const char *, int, int *, int); extern int pcf_read(device_t, char *, int, int *, int, int); extern int pcf_rst_card(device_t, u_char, u_char, u_char *); extern driver_intr_t pcf_intr; ==== //depot/projects/vimage/src/sys/dev/pdq/if_fpa.c#3 (text+ko) ==== @@ -25,7 +25,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/pdq/if_fpa.c,v 1.27 2007/02/23 19:31:44 imp Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/pdq/if_fpa.c,v 1.28 2009/06/11 17:14:28 avg Exp $"); /* * DEC PDQ FDDI Controller; code for BSD derived operating systems @@ -67,7 +67,7 @@ static int pdq_pci_probe (device_t); static int pdq_pci_attach (device_t); static int pdq_pci_detach (device_t); -static void pdq_pci_shutdown (device_t); +static int pdq_pci_shutdown (device_t); static void pdq_pci_ifintr (void *); static void @@ -185,7 +185,7 @@ return (0); } -static void +static int pdq_pci_shutdown(device_t dev) { pdq_softc_t *sc; @@ -193,7 +193,7 @@ sc = device_get_softc(dev); pdq_hwreset(sc->sc_pdq); - return; + return (0); } static device_method_t pdq_pci_methods[] = { ==== //depot/projects/vimage/src/sys/dev/smc/if_smc.c#7 (text+ko) ==== @@ -23,7 +23,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/smc/if_smc.c,v 1.7 2009/05/30 15:14:44 attilio Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/smc/if_smc.c,v 1.8 2009/06/11 17:14:54 avg Exp $"); /* * Driver for SMSC LAN91C111, may work for older variants. @@ -999,7 +999,7 @@ return (val); } -void +int smc_miibus_writereg(device_t dev, int phy, int reg, int data) { struct smc_softc *sc; @@ -1029,6 +1029,7 @@ smc_read_2(sc, MGMT) & ~(MGMT_MCLK | MGMT_MDOE | MGMT_MDO)); SMC_UNLOCK(sc); + return (0); } void ==== //depot/projects/vimage/src/sys/dev/smc/if_smcvar.h#5 (text+ko) ==== @@ -21,7 +21,7 @@ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * - * $FreeBSD: src/sys/dev/smc/if_smcvar.h,v 1.5 2008/06/13 00:48:09 benno Exp $ + * $FreeBSD: src/sys/dev/smc/if_smcvar.h,v 1.6 2009/06/11 17:14:54 avg Exp $ * */ @@ -71,7 +71,7 @@ int smc_detach(device_t); int smc_miibus_readreg(device_t, int, int); -void smc_miibus_writereg(device_t, int, int, int); +int smc_miibus_writereg(device_t, int, int, int); void smc_miibus_statchg(device_t); #endif /* _IF_SMCVAR_H_ */ ==== //depot/projects/vimage/src/sys/dev/snc/if_snc.c#3 (text+ko) ==== @@ -27,7 +27,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/snc/if_snc.c,v 1.8 2008/08/04 19:19:18 jhb Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/snc/if_snc.c,v 1.9 2009/06/11 17:14:28 avg Exp $"); /* * National Semiconductor DP8393X SONIC Driver @@ -252,7 +252,7 @@ Shutdown routine ****************************************************************/ -void +int snc_shutdown(dev) device_t dev; { @@ -261,4 +261,6 @@ SNC_LOCK(sc); sncshutdown(sc); SNC_UNLOCK(sc); + + return (0); } ==== //depot/projects/vimage/src/sys/dev/snc/if_sncvar.h#2 (text+ko) ==== @@ -24,7 +24,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $FreeBSD: src/sys/dev/snc/if_sncvar.h,v 1.3 2005/01/06 01:43:15 imp Exp $ + * $FreeBSD: src/sys/dev/snc/if_sncvar.h,v 1.4 2009/06/11 17:14:28 avg Exp $ */ /* @@ -44,4 +44,4 @@ int snc_probe (device_t, int); int snc_attach (device_t); -void snc_shutdown (device_t); +int snc_shutdown (device_t); ==== //depot/projects/vimage/src/sys/dev/spibus/spibus.c#3 (text+ko) ==== @@ -1,5 +1,5 @@ #include -__FBSDID("$FreeBSD: src/sys/dev/spibus/spibus.c,v 1.3 2009/05/13 18:42:49 gonzo Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/spibus/spibus.c,v 1.4 2009/06/11 17:06:58 avg Exp $"); #include #include @@ -112,7 +112,7 @@ } static int -spibus_read_ivar(device_t bus, device_t child, int which, u_char *result) +spibus_read_ivar(device_t bus, device_t child, int which, u_int *result) { struct spibus_ivar *devi = SPIBUS_IVAR(child); ==== //depot/projects/vimage/src/sys/dev/stg/tmc18c30.h#2 (text+ko) ==== @@ -1,5 +1,5 @@ /* - * $FreeBSD: src/sys/dev/stg/tmc18c30.h,v 1.1 2003/04/07 10:13:25 mdodd Exp $ + * $FreeBSD: src/sys/dev/stg/tmc18c30.h,v 1.2 2009/06/11 17:14:28 avg Exp $ >>> TRUNCATED FOR MAIL (1000 lines) <<< From owner-p4-projects@FreeBSD.ORG Thu Jun 11 18:06:38 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 0FCDC1065670; Thu, 11 Jun 2009 18:06:38 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id C22EF106566B for ; Thu, 11 Jun 2009 18:06:37 +0000 (UTC) (envelope-from zec@fer.hr) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 96DE98FC13 for ; Thu, 11 Jun 2009 18:06:37 +0000 (UTC) (envelope-from zec@fer.hr) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n5BI6bNo012208 for ; Thu, 11 Jun 2009 18:06:37 GMT (envelope-from zec@fer.hr) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n5BI6b94012206 for perforce@freebsd.org; Thu, 11 Jun 2009 18:06:37 GMT (envelope-from zec@fer.hr) Date: Thu, 11 Jun 2009 18:06:37 GMT Message-Id: <200906111806.n5BI6b94012206@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to zec@fer.hr using -f From: Marko Zec To: Perforce Change Reviews Cc: Subject: PERFORCE change 164133 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 11 Jun 2009 18:06:38 -0000 http://perforce.freebsd.org/chv.cgi?CH=164133 Change 164133 by zec@zec_tpx32 on 2009/06/11 18:05:52 Reduce diff against head / back out an older ng inbound to outbound direct dispatch prevention hack. Affected files ... .. //depot/projects/vimage/src/sys/net/netisr.c#19 edit .. //depot/projects/vimage/src/sys/netgraph/ng_bridge.c#9 edit .. //depot/projects/vimage/src/sys/netgraph/ng_ether.c#28 edit .. //depot/projects/vimage/src/sys/sys/proc.h#35 edit Differences ... ==== //depot/projects/vimage/src/sys/net/netisr.c#19 (text+ko) ==== @@ -872,7 +872,7 @@ /* * If direct dispatch is entirely disabled, fall back on queueing. */ - if (!netisr_direct || curthread->td_flags & TDF_NODIRNETISR) + if (!netisr_direct) return (netisr_queue_src(proto, source, m)); KASSERT(proto < NETISR_MAXPROT, ==== //depot/projects/vimage/src/sys/netgraph/ng_bridge.c#9 (text+ko) ==== @@ -98,7 +98,7 @@ /* Per-node private data */ struct ng_bridge_private { struct ng_bridge_bucket *tab; /* hash table bucket array */ - struct ng_bridge_link *links[NG_BRIDGE_MAX_LINKS + 1]; + struct ng_bridge_link *links[NG_BRIDGE_MAX_LINKS]; struct ng_bridge_config conf; /* node configuration */ node_p node; /* netgraph node */ u_int numHosts; /* num entries in table */ @@ -361,9 +361,7 @@ if (*eptr != '\0' || linkNum >= NG_BRIDGE_MAX_LINKS) return (EINVAL); } else if (strcmp(name, "anchor") == 0) { - linkNum = NG_BRIDGE_MAX_LINKS; - if (priv->persistent) - return (EISCONN); + linkNum = 0; priv->persistent = 1; } @@ -794,7 +792,7 @@ /* Get link number */ linkNum = (intptr_t)NG_HOOK_PRIVATE(hook); - KASSERT(linkNum >= 0 && linkNum <= NG_BRIDGE_MAX_LINKS, + KASSERT(linkNum >= 0 && linkNum < NG_BRIDGE_MAX_LINKS, ("%s: linkNum=%u", __func__, linkNum)); /* Remove all hosts associated with this link */ ==== //depot/projects/vimage/src/sys/netgraph/ng_ether.c#28 (text+ko) ==== @@ -242,9 +242,7 @@ /* If "lower" hook not connected, let packet continue */ if (priv->lower == NULL) return; - curthread->td_flags |= TDF_NODIRNETISR; NG_SEND_DATA_ONLY(error, priv->lower, *mp); /* sets *mp = NULL */ - curthread->td_flags &= ~TDF_NODIRNETISR; } /* ==== //depot/projects/vimage/src/sys/sys/proc.h#35 (text+ko) ==== @@ -320,7 +320,7 @@ #define TDF_BOUNDARY 0x00000400 /* Thread suspended at user boundary */ #define TDF_ASTPENDING 0x00000800 /* Thread has some asynchronous events. */ #define TDF_TIMOFAIL 0x00001000 /* Timeout from sleep after we were awake. */ -#define TDF_NODIRNETISR 0x00002000 /* Do not direct dispatch netisr handlers. */ +#define TDF_UNUSED2000 0x00002000 /* --available-- */ #define TDF_UPIBLOCKED 0x00004000 /* Thread blocked on user PI mutex. */ #define TDF_NEEDSUSPCHK 0x00008000 /* Thread may need to suspend. */ #define TDF_NEEDRESCHED 0x00010000 /* Thread needs to yield. */ From owner-p4-projects@FreeBSD.ORG Thu Jun 11 18:13:45 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 803B51065670; Thu, 11 Jun 2009 18:13:45 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 40120106564A for ; Thu, 11 Jun 2009 18:13:45 +0000 (UTC) (envelope-from jona@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 2EC1F8FC0A for ; Thu, 11 Jun 2009 18:13:45 +0000 (UTC) (envelope-from jona@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n5BIDi8B012757 for ; Thu, 11 Jun 2009 18:13:44 GMT (envelope-from jona@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n5BIDiK7012755 for perforce@freebsd.org; Thu, 11 Jun 2009 18:13:44 GMT (envelope-from jona@FreeBSD.org) Date: Thu, 11 Jun 2009 18:13:44 GMT Message-Id: <200906111813.n5BIDiK7012755@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to jona@FreeBSD.org using -f From: Jonathan Anderson To: Perforce Change Reviews Cc: Subject: PERFORCE change 164134 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 11 Jun 2009 18:13:46 -0000 http://perforce.freebsd.org/chv.cgi?CH=164134 Change 164134 by jona@jona-trustedbsd-kent on 2009/06/11 18:12:44 The beginnings of a powerbox server for KDE Affected files ... .. //depot/projects/trustedbsd/capabilities/cap-support/kpowerboxserver/CMakeLists.txt#1 add .. //depot/projects/trustedbsd/capabilities/cap-support/kpowerboxserver/kpowerboxserver.cpp#1 add .. //depot/projects/trustedbsd/capabilities/cap-support/kpowerboxserver/kpowerboxserver.h#1 add .. //depot/projects/trustedbsd/capabilities/cap-support/kpowerboxserver/kpowerboxtest.cpp#1 add .. //depot/projects/trustedbsd/capabilities/cap-support/kpowerboxserver/powerbox.h#1 add Differences ... From owner-p4-projects@FreeBSD.ORG Thu Jun 11 18:44:16 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 8BBA91065675; Thu, 11 Jun 2009 18:44:16 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 4937A106566C for ; Thu, 11 Jun 2009 18:44:16 +0000 (UTC) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 35D2E8FC16 for ; Thu, 11 Jun 2009 18:44:16 +0000 (UTC) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n5BIiGpL015433 for ; Thu, 11 Jun 2009 18:44:16 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n5BIiGmv015431 for perforce@freebsd.org; Thu, 11 Jun 2009 18:44:16 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Date: Thu, 11 Jun 2009 18:44:16 GMT Message-Id: <200906111844.n5BIiGmv015431@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to bb+lists.freebsd.perforce@cyrus.watson.org using -f From: Robert Watson To: Perforce Change Reviews Cc: Subject: PERFORCE change 164137 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 11 Jun 2009 18:44:17 -0000 http://perforce.freebsd.org/chv.cgi?CH=164137 Change 164137 by rwatson@rwatson_freebsd_capabilities on 2009/06/11 18:43:51 Cross-reference with libcapability.3. Affected files ... .. //depot/projects/trustedbsd/capabilities/src/lib/libc/sys/cap_enter.2#4 edit .. //depot/projects/trustedbsd/capabilities/src/lib/libc/sys/cap_new.2#9 edit Differences ... ==== //depot/projects/trustedbsd/capabilities/src/lib/libc/sys/cap_enter.2#4 (text+ko) ==== @@ -1,5 +1,5 @@ .\" -.\" Copyright (c) 2008 Robert N. M. Watson +.\" Copyright (c) 2008-2009 Robert N. M. Watson .\" All rights reserved. .\" .\" WARNING: THIS IS EXPERIMENTAL SECURITY SOFTWARE THAT MUST NOT BE RELIED @@ -32,7 +32,7 @@ .\" .\" $FreeBSD$ .\" -.Dd February 3, 2008 +.Dd June 11, 2009 .Dt CAP_ENTER 2 .Os .Sh NAME @@ -58,6 +58,8 @@ no-op. Future process descendents create with .Xr fork 2 +or +.Xr pdfork 2 will be placed in capability mode from inception. .Pp When combined with capabilities created with @@ -65,6 +67,9 @@ .Fn cap_enter may be used to create kernel-enforced sandboxes in which appropriately-crafted applications or application components may be run. +Most sandboxes will be created and managed using the +.Xr libcapability +library, rather than using system calls directly. .Pp .Fn cap_getmode returns a flag indicating whether or not the process is in a capability mode @@ -91,7 +96,8 @@ .Rv -std cap_enter cap_getmode .Sh SEE ALSO .Xr cap_new 2 , -.Xr fexecve 2 +.Xr fexecve 2 , +.Xr libcapability 3 .Sh HISTORY Support for capabilities and capabilities mode was developed as part of the .Tn TrustedBSD ==== //depot/projects/trustedbsd/capabilities/src/lib/libc/sys/cap_new.2#9 (text+ko) ==== @@ -32,7 +32,7 @@ .\" .\" $FreeBSD$ .\" -.Dd June 7, 2009 +.Dd June 11, 2009 .Dt CAP_NEW 2 .Os .Sh NAME @@ -85,6 +85,11 @@ .Xr dup2 2 , many properties are shared between the new capability and the existing file descriptor, including open file flags, blocking disposition, and file offset. +Many applications will prefer to use the +.Xr cap_limitfd 3 +library call, part of +.Xr libcapability 3 , +as it offers a more convenient interface. .Pp .Fn cap_getrights queries the rights associated with the capability referred to by file @@ -449,6 +454,8 @@ .Xr socketpair 2 , .Xr unlinkat 2 , .Xr write 2 , +.Xr cap_limitfd 3 , +.Xr libcapability 3 , .Xr sem_getvalue 3 , .Xr sem_post 3 , .Xr sem_trywait 3 , From owner-p4-projects@FreeBSD.ORG Thu Jun 11 19:07:40 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 4E7661065673; Thu, 11 Jun 2009 19:07:40 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 0E06A106564A for ; Thu, 11 Jun 2009 19:07:40 +0000 (UTC) (envelope-from anchie@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id EFEC18FC20 for ; Thu, 11 Jun 2009 19:07:39 +0000 (UTC) (envelope-from anchie@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n5BJ7dcA018198 for ; Thu, 11 Jun 2009 19:07:39 GMT (envelope-from anchie@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n5BJ7d1O018196 for perforce@freebsd.org; Thu, 11 Jun 2009 19:07:39 GMT (envelope-from anchie@FreeBSD.org) Date: Thu, 11 Jun 2009 19:07:39 GMT Message-Id: <200906111907.n5BJ7d1O018196@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to anchie@FreeBSD.org using -f From: Ana Kukec To: Perforce Change Reviews Cc: Subject: PERFORCE change 164138 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 11 Jun 2009 19:07:41 -0000 http://perforce.freebsd.org/chv.cgi?CH=164138 Change 164138 by anchie@anchie_malimis on 2009/06/11 19:06:53 Introducing the routing socket to handle the incoming ND/SeND traffic that used to be handled by the netgraph subsystem. Affected files ... .. //depot/projects/soc2009/anchie_send/send_0.2/sendd/net.c#5 edit .. //depot/projects/soc2009/anchie_send/send_0.2/sendd/proto.c#3 edit .. //depot/projects/soc2009/anchie_send/send_0.2/sendd/sendd.c#3 edit .. //depot/projects/soc2009/anchie_send/send_0.2/sendd/sendd_local.h#2 edit Differences ... ==== //depot/projects/soc2009/anchie_send/send_0.2/sendd/net.c#5 (text+ko) ==== @@ -127,6 +127,7 @@ snd_recv_pkt() and snd_icmp_sock_read() */ } +} void snd_put_buf(struct sbuff *b) @@ -169,6 +170,62 @@ return (0); } +void +snd_sock_read(void) +{ + struct sockaddr_in6 sin[1]; + struct sbuff *b; + uint8_t *type; + socklen_t slen; + + if (b = snd_get_buf()) == NULL) { + return; + } + + slen = sizeof(*sin); + if ((r = recvfrom(snds, b->hread, b->rem, 0, (void *)sin, &slen)) + < 0) { + applog(LOG_ERR, "%s: recvfrom: %s", __FUNCTION__, + strerror(errno)); + goto done; + } + b->len = r; + + DBG(&dbg, "%d bytes from %s on IF %d", r, + inet_ntop(AF_INET6, &sin->sin6_addr, abuf, sizeof (abuf)), + sin->sin6_scope_id); + + if (IN6_IS_ADDR_LOOPBACK(&sin->sin6_addr)) { + DBG(&dbg, "Dropping request from loopback"); + goto done; + + /* Further processing should be done according to snd_recv_pkt(). */ + type = sbuff_data(b); + switch (*type) { + case ND_NEIGHBOR_SOLICIT: + snd_handle_ns(b, sin, sin->sin6_scope_id); + break; + case ND_NEIGHBOR_ADVERT: + snd_handle_na(b, sin); + break; + case ND_ROUTER_SOLICIT: + snd_handle_rs(b, sin, sin->sin6_scope_id); + break; + case ND_ROUTER_ADVERT: + snd_process_ra(sbuff_data(b), r, sin->sin6_scope_id, + &sin->sin6_addr); + break; + case ND_REDIRECT: + break; + default: + DBG(&dbg_snd, "Unhandled ICMP6 type %d", *type); + break; + } + +done: + snd_put_buf(b); +} + /* * TODO: Linux is not yet up-to-date with rfc3542, specifically in that * it uses the socket option IPV6_PKTINFO instead of IPV6_RECVPKTINFO. @@ -234,11 +291,12 @@ snd_put_buf(b); } -int -snd_net_init(void) +void +snd_net_init(int *icmp6sock, int *sndsock) { int v; struct icmp6_filter filter; + struct icmp6_filter snd_filter; #ifdef DEBUG struct dlog_desc *dbgs[] = { &dbg, @@ -256,6 +314,12 @@ return (-1); } + if ((sndsock = socket(PF_ROUTE, SOCK_RAW, 0)) < 0) { + applog(LOG_ERR, "%s: socket: %s", __FUNCTION__, + strerror(errno)); + return(-1); + } + v = 255; if (setsockopt(icmp6sock, IPPROTO_IPV6, IPV6_UNICAST_HOPS, &v, sizeof (v)) < 0) { @@ -270,12 +334,18 @@ __FUNCTION__, strerror(errno)); return (-1); } - + ICMP6_FILTER_SETBLOCKALL(&filter); ICMP6_FILTER_SETPASS(ICMP6_SND_CPS, &filter); ICMP6_FILTER_SETPASS(ICMP6_SND_CPA, &filter); ICMP6_FILTER_SETPASS(ND_ROUTER_ADVERT, &filter); + ICMP6_FILTER_SETBLOCKALL(&snd_filter); + ICMP6_FILTER_SETPASS(ND_ROUTER_SOLICIT, &snd_filter); + ICMP6_FILTER_SETPASS(ND_ROUTER_ADVERT, &snd_filter); + ICMP6_FILTER_SETPASS(ND_NEIGHBOR_SOLICIT, &snd_filter); + ICMP6_FILTER_SETPASS(ND_NEIGHBOR_ADVERT, &snd_filter); + if (setsockopt(icmp6sock, IPPROTO_ICMPV6, ICMP6_FILTER, &filter, sizeof (filter)) < 0) { applog(LOG_ERR, "%s: setsockopt(ICMP6_FILTER): %s", @@ -283,5 +353,10 @@ return (-1); } - return (icmp6sock); + if (setsockopt(sndsock, IPPROTO_ICMPV6, ICMP6_FILTER, &snd_filter, + sizeof (snd_filter)) < 0) { + applog(LOG_ERR, "%s: setsockopt(ICMP6_FILTER): %s", + __FUNCTION__, strerror(errno)); + return (-1); + } } ==== //depot/projects/soc2009/anchie_send/send_0.2/sendd/proto.c#3 (text+ko) ==== @@ -664,6 +664,9 @@ void *start; struct ip6_hdr *iph; + if (!snd_iface_ok_(ifidx)) { + return; + } start = sbuff_data(b); DBG(&dbg, "%s", in ? "<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<" : ==== //depot/projects/soc2009/anchie_send/send_0.2/sendd/sendd.c#3 (text+ko) ==== @@ -93,7 +93,9 @@ FD_SET(icmps, fds); FD_SET(ctlfd, fds); /* os_specific_add_fds(fds, &maxfd); */ - snd_add_fds(fds, &maxfd); + /* snd_add_fds(fds, &maxfd); */ + /* Routing socket instead of using netgraph for ND/SeND */ + FD_SET(snds, fds); tv = get_next_wait(tvb); if (select(maxfd + 1, fds, NULL, NULL, tv) < 0) { @@ -120,7 +122,10 @@ if (FD_ISSET(ctlfd, fds)) { snd_ctl_read(ctlfd); } - snd_dispatch_fds(fds); + if (FD_ISSET(snds, fds)) { + snd_sock_read(); + } + /* snd_dispatch_fds(fds); */ /* os_specific_dispatch_fds(fds); */ snd_replace_non_cga_linklocals(); } @@ -168,7 +173,7 @@ int main(int argc, char **argv) { - int r, c, icmps, ctlfd, do_daemon = 1; + int r, c, icmps, snds, ctlfd, do_daemon = 1; char *cfile = SNDD_CONF_FILE; #ifdef DEBUG @@ -235,6 +240,8 @@ exit(1); } + snd_net_init(&icmps, &snds); + thrpool_init(); if (timer_init() < 0 || pkixip_init() < 0 || @@ -242,7 +249,8 @@ snd_ssl_init() < 0 || snd_cga_init() < 0 || snd_params_init() < 0 || - (icmps = snd_net_init()) < 0 || + icmps < 0 || + snds < 0 || snd_init_cert() < 0 || snd_pkixip_config() < 0 || snd_proto_init() < 0 || ==== //depot/projects/soc2009/anchie_send/send_0.2/sendd/sendd_local.h#2 (text+ko) ==== @@ -130,7 +130,8 @@ /* net.c */ extern void snd_icmp_sock_read(void); -extern int snd_net_init(void); +extern void snd_sock_read(void); +extern void snd_net_init(void); extern struct sbuff *snd_get_buf(void); extern void snd_put_buf(struct sbuff *); extern int snd_send_icmp(struct sbuff *, struct sockaddr_in6 *, int); From owner-p4-projects@FreeBSD.ORG Thu Jun 11 20:04:39 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 00A6110656FF; Thu, 11 Jun 2009 20:04:39 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id B169910656F1 for ; Thu, 11 Jun 2009 20:04:38 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 9F3ED8FC2B for ; Thu, 11 Jun 2009 20:04:38 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n5BK4cvX023363 for ; Thu, 11 Jun 2009 20:04:38 GMT (envelope-from hselasky@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n5BK4c0I023361 for perforce@freebsd.org; Thu, 11 Jun 2009 20:04:38 GMT (envelope-from hselasky@FreeBSD.org) Date: Thu, 11 Jun 2009 20:04:38 GMT Message-Id: <200906112004.n5BK4c0I023361@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to hselasky@FreeBSD.org using -f From: Hans Petter Selasky To: Perforce Change Reviews Cc: Subject: PERFORCE change 164141 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 11 Jun 2009 20:04:40 -0000 http://perforce.freebsd.org/chv.cgi?CH=164141 Change 164141 by hselasky@hselasky_laptop001 on 2009/06/11 20:03:57 USB input: - add support for Yubikey - reported by Jeremy Faulkner - improve mouse probe routine Affected files ... .. //depot/projects/usb/src/sys/dev/usb/input/ukbd.c#18 edit .. //depot/projects/usb/src/sys/dev/usb/input/ums.c#16 edit Differences ... ==== //depot/projects/usb/src/sys/dev/usb/input/ukbd.c#18 (text+ko) ==== @@ -659,6 +659,9 @@ { keyboard_switch_t *sw = kbd_get_switch(UKBD_DRIVER_NAME); struct usb_attach_arg *uaa = device_get_ivars(dev); + void *d_ptr; + int error; + uint16_t d_len; DPRINTFN(11, "\n"); @@ -668,16 +671,35 @@ if (uaa->usb_mode != USB_MODE_HOST) { return (ENXIO); } - /* check that the keyboard speaks the boot protocol: */ - if ((uaa->info.bInterfaceClass == UICLASS_HID) - && (uaa->info.bInterfaceSubClass == UISUBCLASS_BOOT) - && (uaa->info.bInterfaceProtocol == UPROTO_BOOT_KEYBOARD)) { + + if (uaa->info.bInterfaceClass != UICLASS_HID) + return (ENXIO); + + if ((uaa->info.bInterfaceSubClass == UISUBCLASS_BOOT) && + (uaa->info.bInterfaceProtocol == UPROTO_BOOT_KEYBOARD)) { if (usb2_test_quirk(uaa, UQ_KBD_IGNORE)) return (ENXIO); else return (0); } - return (ENXIO); + + error = usb2_req_get_hid_desc(uaa->device, NULL, + &d_ptr, &d_len, M_TEMP, uaa->info.bIfaceIndex); + + if (error) + return (ENXIO); + + if (hid_is_collection(d_ptr, d_len, + HID_USAGE2(HUP_GENERIC_DESKTOP, HUG_KEYBOARD))) { + if (usb2_test_quirk(uaa, UQ_KBD_IGNORE)) + error = ENXIO; + else + error = 0; + } else + error = ENXIO; + + free(d_ptr, M_TEMP); + return (error); } static int ==== //depot/projects/usb/src/sys/dev/usb/input/ums.c#16 (text+ko) ==== @@ -332,7 +332,6 @@ ums_probe(device_t dev) { struct usb_attach_arg *uaa = device_get_ivars(dev); - struct usb_interface_descriptor *id; void *d_ptr; int error; uint16_t d_len; @@ -342,11 +341,12 @@ if (uaa->usb_mode != USB_MODE_HOST) return (ENXIO); - id = usb2_get_interface_descriptor(uaa->iface); + if (uaa->info.bInterfaceClass != UICLASS_HID) + return (ENXIO); - if ((id == NULL) || - (id->bInterfaceClass != UICLASS_HID)) - return (ENXIO); + if ((uaa->info.bInterfaceSubClass == UISUBCLASS_BOOT) && + (uaa->info.bInterfaceProtocol == UIPROTO_MOUSE)) + return (0); error = usb2_req_get_hid_desc(uaa->device, NULL, &d_ptr, &d_len, M_TEMP, uaa->info.bIfaceIndex); @@ -357,9 +357,6 @@ if (hid_is_collection(d_ptr, d_len, HID_USAGE2(HUP_GENERIC_DESKTOP, HUG_MOUSE))) error = 0; - else if ((id->bInterfaceSubClass == UISUBCLASS_BOOT) && - (id->bInterfaceProtocol == UIPROTO_MOUSE)) - error = 0; else error = ENXIO; From owner-p4-projects@FreeBSD.ORG Thu Jun 11 20:46:21 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id AD74F1065672; Thu, 11 Jun 2009 20:46:21 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 6D66F106564A for ; Thu, 11 Jun 2009 20:46:21 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 5A31E8FC16 for ; Thu, 11 Jun 2009 20:46:21 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n5BKkLrL027024 for ; Thu, 11 Jun 2009 20:46:21 GMT (envelope-from hselasky@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n5BKkLmw027022 for perforce@freebsd.org; Thu, 11 Jun 2009 20:46:21 GMT (envelope-from hselasky@FreeBSD.org) Date: Thu, 11 Jun 2009 20:46:21 GMT Message-Id: <200906112046.n5BKkLmw027022@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to hselasky@FreeBSD.org using -f From: Hans Petter Selasky To: Perforce Change Reviews Cc: Subject: PERFORCE change 164142 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 11 Jun 2009 20:46:22 -0000 http://perforce.freebsd.org/chv.cgi?CH=164142 Change 164142 by hselasky@hselasky_laptop001 on 2009/06/11 20:45:54 LibUSB: Cleanup claim/release interface code, which is specific to libusb v0.1. Remove claim and release interface support from libusb v2.0, because it is not useful. - Indirectly reported by: MIHIRA Sanpei Yoshiro Affected files ... .. //depot/projects/usb/src/lib/libusb/libusb.3#14 edit .. //depot/projects/usb/src/lib/libusb/libusb20.c#5 edit .. //depot/projects/usb/src/lib/libusb/libusb20.h#5 edit .. //depot/projects/usb/src/lib/libusb/libusb20_compat01.c#3 edit .. //depot/projects/usb/src/lib/libusb/libusb20_int.h#4 edit .. //depot/projects/usb/src/lib/libusb/libusb20_ugen20.c#4 edit Differences ... ==== //depot/projects/usb/src/lib/libusb/libusb.3#14 (text+ko) ==== @@ -117,8 +117,6 @@ .Ft const char * .Fn libusb20_dev_get_desc "struct libusb20_device *pdev" .Ft int -.Fn libusb20_dev_claim_interface "struct libusb20_device *pdev" "uint8_t iface_index" -.Ft int .Fn libusb20_dev_close "struct libusb20_device *pdev" .Ft int .Fn libusb20_dev_detach_kernel_driver "struct libusb20_device *pdev" "uint8_t iface_index" @@ -135,8 +133,6 @@ .Ft int .Fn libusb20_dev_process "struct libusb20_device *pdev" .Ft int -.Fn libusb20_dev_release_interface "struct libusb20_device *pdev" "uint8_t iface_index" -.Ft int .Fn libusb20_dev_request_sync "struct libusb20_device *pdev" "struct LIBUSB20_CONTROL_SETUP_DECODED *setup" "void *data" "uint16_t *pactlen" "uint32_t timeout" "uint8_t flags" .Ft int .Fn libusb20_dev_req_string_sync "struct libusb20_device *pdev" "uint8_t index" "uint16_t langid" "void *ptr" "uint16_t len" @@ -517,14 +513,6 @@ . .Pp . -.Fn libusb20_dev_claim_interface -This function will try to claim the given USB interface given by -.Fa iface_index . -This function returns zero on success else a LIBUSB20_ERROR value is -returned. -. -.Pp -. .Fn libusb20_dev_close will close the given USB device. . @@ -601,14 +589,6 @@ . .Pp . -.Fn libusb20_dev_release_interface -will try to release a claimed USB interface for the specified USB device. -. -This function returns zero on success else a LIBUSB20_ERROR value is -returned. -. -.Pp -. .Fn libusb20_dev_request_sync will perform a synchronous control request on the given USB device. ==== //depot/projects/usb/src/lib/libusb/libusb20.c#5 (text+ko) ==== @@ -65,8 +65,6 @@ #define dummy_get_config_desc_full (void *)dummy_int #define dummy_get_config_index (void *)dummy_int #define dummy_set_config_index (void *)dummy_int -#define dummy_claim_interface (void *)dummy_int -#define dummy_release_interface (void *)dummy_int #define dummy_set_alt_index (void *)dummy_int #define dummy_reset_device (void *)dummy_int #define dummy_set_power_mode (void *)dummy_int @@ -451,24 +449,6 @@ /* USB device operations */ int -libusb20_dev_claim_interface(struct libusb20_device *pdev, uint8_t ifaceIndex) -{ - int error; - - if (ifaceIndex >= 32) { - error = LIBUSB20_ERROR_INVALID_PARAM; - } else if (pdev->claimed_interfaces & (1 << ifaceIndex)) { - error = LIBUSB20_ERROR_NOT_FOUND; - } else { - error = pdev->methods->claim_interface(pdev, ifaceIndex); - } - if (!error) { - pdev->claimed_interfaces |= (1 << ifaceIndex); - } - return (error); -} - -int libusb20_dev_close(struct libusb20_device *pdev) { struct libusb20_transfer *xfer; @@ -494,7 +474,11 @@ pdev->is_opened = 0; - pdev->claimed_interfaces = 0; + /* + * The following variable is only used by the libusb v0.1 + * compat layer: + */ + pdev->claimed_interface = 0; return (error); } @@ -580,24 +564,6 @@ } int -libusb20_dev_release_interface(struct libusb20_device *pdev, uint8_t ifaceIndex) -{ - int error; - - if (ifaceIndex >= 32) { - error = LIBUSB20_ERROR_INVALID_PARAM; - } else if (!(pdev->claimed_interfaces & (1 << ifaceIndex))) { - error = LIBUSB20_ERROR_NOT_FOUND; - } else { - error = pdev->methods->release_interface(pdev, ifaceIndex); - } - if (!error) { - pdev->claimed_interfaces &= ~(1 << ifaceIndex); - } - return (error); -} - -int libusb20_dev_reset(struct libusb20_device *pdev) { int error; ==== //depot/projects/usb/src/lib/libusb/libusb20.h#5 (text+ko) ==== @@ -237,7 +237,6 @@ const char *libusb20_dev_get_backend_name(struct libusb20_device *pdev); const char *libusb20_dev_get_desc(struct libusb20_device *pdev); -int libusb20_dev_claim_interface(struct libusb20_device *pdev, uint8_t iface_index); int libusb20_dev_close(struct libusb20_device *pdev); int libusb20_dev_detach_kernel_driver(struct libusb20_device *pdev, uint8_t iface_index); int libusb20_dev_set_config_index(struct libusb20_device *pdev, uint8_t configIndex); @@ -246,7 +245,6 @@ int libusb20_dev_kernel_driver_active(struct libusb20_device *pdev, uint8_t iface_index); int libusb20_dev_open(struct libusb20_device *pdev, uint16_t transfer_max); int libusb20_dev_process(struct libusb20_device *pdev); -int libusb20_dev_release_interface(struct libusb20_device *pdev, uint8_t iface_index); int libusb20_dev_request_sync(struct libusb20_device *pdev, struct LIBUSB20_CONTROL_SETUP_DECODED *setup, void *data, uint16_t *pactlen, uint32_t timeout, uint8_t flags); int libusb20_dev_req_string_sync(struct libusb20_device *pdev, uint8_t index, uint16_t langid, void *ptr, uint16_t len); int libusb20_dev_req_string_simple_sync(struct libusb20_device *pdev, uint8_t index, void *ptr, uint16_t len); ==== //depot/projects/usb/src/lib/libusb/libusb20_compat01.c#3 (text+ko) ==== @@ -99,26 +99,6 @@ uint8_t preparse; }; -static uint8_t -usb_get_first_claimed_interface(usb_dev_handle * dev) -{ - struct libusb20_device *pdev = (void *)dev; - uint32_t x; - uint8_t y; - - x = pdev->claimed_interfaces; - - for (y = 0; y != 32; y++) { - if (x & (1 << y)) - break; - } - - if (y == 32) - y = 0xFF; /* dummy */ - - return (y); -} - static struct libusb20_transfer * usb_get_transfer_by_ep_no(usb_dev_handle * dev, uint8_t ep_no) { @@ -746,36 +726,28 @@ int usb_claim_interface(usb_dev_handle * dev, int interface) { - int err; + struct libusb20_device *pdev = (void *)dev; - err = libusb20_dev_claim_interface((void *)dev, interface); + pdev->claimed_interface = interface; - if (err) - return (-1); - return (0); } int usb_release_interface(usb_dev_handle * dev, int interface) { - int err; - - err = libusb20_dev_release_interface((void *)dev, interface); - - if (err) - return (-1); - + /* do nothing */ return (0); } int usb_set_altinterface(usb_dev_handle * dev, int alternate) { + struct libusb20_device *pdev = (void *)dev; int err; uint8_t iface; - iface = usb_get_first_claimed_interface(dev); + iface = pdev->claimed_interface; err = libusb20_dev_set_alt_index((void *)dev, iface, alternate); ==== //depot/projects/usb/src/lib/libusb/libusb20_int.h#4 (text+ko) ==== @@ -90,14 +90,12 @@ typedef void (libusb20_dummy_void_t)(void); /* USB device specific */ -typedef int (libusb20_claim_interface_t)(struct libusb20_device *pdev, uint8_t iface_index); typedef int (libusb20_detach_kernel_driver_t)(struct libusb20_device *pdev, uint8_t iface_index); typedef int (libusb20_do_request_sync_t)(struct libusb20_device *pdev, struct LIBUSB20_CONTROL_SETUP_DECODED *setup, void *data, uint16_t *pactlen, uint32_t timeout, uint8_t flags); typedef int (libusb20_get_config_desc_full_t)(struct libusb20_device *pdev, uint8_t **ppbuf, uint16_t *plen, uint8_t index); typedef int (libusb20_get_config_index_t)(struct libusb20_device *pdev, uint8_t *pindex); typedef int (libusb20_kernel_driver_active_t)(struct libusb20_device *pdev, uint8_t iface_index); typedef int (libusb20_process_t)(struct libusb20_device *pdev); -typedef int (libusb20_release_interface_t)(struct libusb20_device *pdev, uint8_t iface_index); typedef int (libusb20_reset_device_t)(struct libusb20_device *pdev); typedef int (libusb20_set_power_mode_t)(struct libusb20_device *pdev, uint8_t power_mode); typedef int (libusb20_get_power_mode_t)(struct libusb20_device *pdev, uint8_t *power_mode); @@ -112,14 +110,12 @@ typedef void (libusb20_tr_cancel_async_t)(struct libusb20_transfer *xfer); #define LIBUSB20_DEVICE(m,n) \ - m(n, claim_interface) \ m(n, detach_kernel_driver) \ m(n, do_request_sync) \ m(n, get_config_desc_full) \ m(n, get_config_index) \ m(n, kernel_driver_active) \ m(n, process) \ - m(n, release_interface) \ m(n, reset_device) \ m(n, set_power_mode) \ m(n, get_power_mode) \ @@ -198,8 +194,8 @@ /* libUSB v0.1 compat data */ void *priv01Data; - /* claimed interfaces */ - uint32_t claimed_interfaces; + /* claimed interface */ + uint8_t claimed_interface; /* device file handle */ int file; ==== //depot/projects/usb/src/lib/libusb/libusb20_ugen20.c#4 (text+ko) ==== @@ -67,8 +67,6 @@ static libusb20_get_config_desc_full_t ugen20_get_config_desc_full; static libusb20_get_config_index_t ugen20_get_config_index; static libusb20_set_config_index_t ugen20_set_config_index; -static libusb20_claim_interface_t ugen20_claim_interface; -static libusb20_release_interface_t ugen20_release_interface; static libusb20_set_alt_index_t ugen20_set_alt_index; static libusb20_reset_device_t ugen20_reset_device; static libusb20_set_power_mode_t ugen20_set_power_mode; @@ -517,28 +515,6 @@ } static int -ugen20_claim_interface(struct libusb20_device *pdev, uint8_t iface_index) -{ - int temp = iface_index; - - if (ioctl(pdev->file_ctrl, USB_CLAIM_INTERFACE, &temp)) { - return (LIBUSB20_ERROR_OTHER); - } - return (0); -} - -static int -ugen20_release_interface(struct libusb20_device *pdev, uint8_t iface_index) -{ - int temp = iface_index; - - if (ioctl(pdev->file_ctrl, USB_RELEASE_INTERFACE, &temp)) { - return (LIBUSB20_ERROR_OTHER); - } - return (0); -} - -static int ugen20_set_alt_index(struct libusb20_device *pdev, uint8_t iface_index, uint8_t alt_index) { From owner-p4-projects@FreeBSD.ORG Thu Jun 11 20:51:27 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id BCFB51065673; Thu, 11 Jun 2009 20:51:26 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 7AF521065670 for ; Thu, 11 Jun 2009 20:51:26 +0000 (UTC) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 6792A8FC14 for ; Thu, 11 Jun 2009 20:51:26 +0000 (UTC) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n5BKpQ5l037392 for ; Thu, 11 Jun 2009 20:51:26 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n5BKpQst037390 for perforce@freebsd.org; Thu, 11 Jun 2009 20:51:26 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Date: Thu, 11 Jun 2009 20:51:26 GMT Message-Id: <200906112051.n5BKpQst037390@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to bb+lists.freebsd.perforce@cyrus.watson.org using -f From: Robert Watson To: Perforce Change Reviews Cc: Subject: PERFORCE change 164143 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 11 Jun 2009 20:51:27 -0000 http://perforce.freebsd.org/chv.cgi?CH=164143 Change 164143 by rwatson@rwatson_freebsd_capabilities on 2009/06/11 20:50:46 Update date, fix xrefs. Affected files ... .. //depot/projects/trustedbsd/capabilities/src/lib/libcapability/libcapability.3#13 edit Differences ... ==== //depot/projects/trustedbsd/capabilities/src/lib/libcapability/libcapability.3#13 (text+ko) ==== @@ -32,7 +32,7 @@ .\" .\" $FreeBSD$ .\" -.Dd January 25, 2009 +.Dd June 11, 2009 .Os .Dt LIBCAP 3 .Sh NAME @@ -86,6 +86,9 @@ .Xr unix 4 domain socket connection to the sandbox, or can provide a basic remote procedure call (RPC) facility. +Applications may also use RPC generators such as +.Xr rpcgen 1 +to build event handling and marshaling code. .Sh HOST API The .Nm @@ -210,7 +213,7 @@ .Va seqnop . .Pp When an RPC is complete, it should be returned to the host via -.Xr lcs_sendrpc , +.Fn lcs_sendrpc , which accepts the same operation and sequence number as arguments, as well as reply data via the .Vt iovec @@ -221,8 +224,15 @@ using .Xr free 3 . .Sh SEE ALSO +.Xr rpcgen 1 , .Xr cap_enter 2 , -.Xr cap_new 2 +.Xr cap_new 2 , +.Xr recv 2 , +.Xr send 2 , +.Xr writev 2 , +.Xr free 3 , +.Xr malloc 3 , +.Xr unix 4 .Sh HISTORY Support for capabilities and capabilities mode was developed as part of the .Tn TrustedBSD From owner-p4-projects@FreeBSD.ORG Thu Jun 11 20:59:35 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 3BF8210656A5; Thu, 11 Jun 2009 20:59:35 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id EA6D2106568F for ; Thu, 11 Jun 2009 20:59:34 +0000 (UTC) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id D2D6D8FC08 for ; Thu, 11 Jun 2009 20:59:34 +0000 (UTC) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n5BKxYE2037949 for ; Thu, 11 Jun 2009 20:59:34 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n5BKxYwL037947 for perforce@freebsd.org; Thu, 11 Jun 2009 20:59:34 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Date: Thu, 11 Jun 2009 20:59:34 GMT Message-Id: <200906112059.n5BKxYwL037947@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to bb+lists.freebsd.perforce@cyrus.watson.org using -f From: Robert Watson To: Perforce Change Reviews Cc: Subject: PERFORCE change 164144 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 11 Jun 2009 20:59:36 -0000 http://perforce.freebsd.org/chv.cgi?CH=164144 Change 164144 by rwatson@rwatson_freebsd_capabilities on 2009/06/11 20:59:01 Define ld_caplibindex_lookup() prototype in libcapability.h -- even though it's implemented by the linker, it's libcapability consumers that will be using it. Affected files ... .. //depot/projects/trustedbsd/capabilities/src/lib/libcapability/libcapability.h#11 edit Differences ... ==== //depot/projects/trustedbsd/capabilities/src/lib/libcapability/libcapability.h#11 (text+ko) ==== @@ -30,7 +30,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $P4: //depot/projects/trustedbsd/capabilities/src/lib/libcapability/libcapability.h#10 $ + * $P4: //depot/projects/trustedbsd/capabilities/src/lib/libcapability/libcapability.h#11 $ */ #ifndef _LIBCAPABILITY_H_ @@ -88,4 +88,10 @@ int lcs_sendrpc(struct lc_host *lchp, u_int32_t opno, u_int32_t seqno, struct iovec *rep, int repcount); +/* + * Actually an rtld-elf-cap symbol, but declared here so it is available to + * applications. + */ +int ld_caplibindex_lookup(const char *libname, int *fdp); + #endif /* !_LIBCAPABILITY_H_ */ From owner-p4-projects@FreeBSD.ORG Thu Jun 11 20:59:37 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id A11F010657C1; Thu, 11 Jun 2009 20:59:35 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 13B551065691 for ; Thu, 11 Jun 2009 20:59:35 +0000 (UTC) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 0050F8FC0A for ; Thu, 11 Jun 2009 20:59:35 +0000 (UTC) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n5BKxY3p037954 for ; Thu, 11 Jun 2009 20:59:34 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n5BKxYkM037952 for perforce@freebsd.org; Thu, 11 Jun 2009 20:59:34 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Date: Thu, 11 Jun 2009 20:59:34 GMT Message-Id: <200906112059.n5BKxYkM037952@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to bb+lists.freebsd.perforce@cyrus.watson.org using -f From: Robert Watson To: Perforce Change Reviews Cc: Subject: PERFORCE change 164145 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 11 Jun 2009 20:59:37 -0000 http://perforce.freebsd.org/chv.cgi?CH=164145 Change 164145 by rwatson@rwatson_freebsd_capabilities on 2009/06/11 20:59:20 Document lc_limitfd(). Affected files ... .. //depot/projects/trustedbsd/capabilities/src/lib/libcapability/libcapability.3#14 edit Differences ... ==== //depot/projects/trustedbsd/capabilities/src/lib/libcapability/libcapability.3#14 (text+ko) ==== @@ -89,6 +89,14 @@ Applications may also use RPC generators such as .Xr rpcgen 1 to build event handling and marshaling code. +.Sh CAPABILITY API +.Fn lc_limitfd +is a wrapper around +.Xr cap_new 2 +and +.Xr dup2 2 +which takes an existing file descriptor and replaces it with a capability +with the requested rights mask. .Sh HOST API The .Nm @@ -227,6 +235,7 @@ .Xr rpcgen 1 , .Xr cap_enter 2 , .Xr cap_new 2 , +.Xr dup2 2 , .Xr recv 2 , .Xr send 2 , .Xr writev 2 , From owner-p4-projects@FreeBSD.ORG Thu Jun 11 21:19:03 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id E68DA1065675; Thu, 11 Jun 2009 21:19:02 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id A2674106566B for ; Thu, 11 Jun 2009 21:19:02 +0000 (UTC) (envelope-from zec@fer.hr) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 76A758FC14 for ; Thu, 11 Jun 2009 21:19:02 +0000 (UTC) (envelope-from zec@fer.hr) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n5BLIwDY040597 for ; Thu, 11 Jun 2009 21:18:58 GMT (envelope-from zec@fer.hr) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n5BLItiP040592 for perforce@freebsd.org; Thu, 11 Jun 2009 21:18:55 GMT (envelope-from zec@fer.hr) Date: Thu, 11 Jun 2009 21:18:55 GMT Message-Id: <200906112118.n5BLItiP040592@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to zec@fer.hr using -f From: Marko Zec To: Perforce Change Reviews Cc: Subject: PERFORCE change 164147 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 11 Jun 2009 21:19:04 -0000 http://perforce.freebsd.org/chv.cgi?CH=164147 Change 164147 by zec@zec_amdx4 on 2009/06/11 21:18:49 Fix a misintegration. Affected files ... .. //depot/projects/vimage/src/sys/netinet/ip_fw.h#34 edit Differences ... ==== //depot/projects/vimage/src/sys/netinet/ip_fw.h#34 (text+ko) ==== @@ -601,6 +601,7 @@ LIST_HEAD(, cfg_nat) nat; /* list of nat entries */ struct radix_node_head *tables[IPFW_TABLES_MAX]; struct rwlock rwmtx; + uint32_t id; /* ruleset id */ }; struct table_entry { @@ -688,9 +689,6 @@ #endif #endif - uint32_t id; /* ruleset id */ -}; - #ifdef IPFW_INTERNAL #define IPFW_LOCK_INIT(_chain) \ From owner-p4-projects@FreeBSD.ORG Thu Jun 11 21:31:16 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 4E9031065674; Thu, 11 Jun 2009 21:31:15 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 0BE381065672 for ; Thu, 11 Jun 2009 21:31:15 +0000 (UTC) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id EC5D68FC08 for ; Thu, 11 Jun 2009 21:31:14 +0000 (UTC) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n5BLVEoa041530 for ; Thu, 11 Jun 2009 21:31:14 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n5BLVE6q041528 for perforce@freebsd.org; Thu, 11 Jun 2009 21:31:14 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Date: Thu, 11 Jun 2009 21:31:14 GMT Message-Id: <200906112131.n5BLVE6q041528@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to bb+lists.freebsd.perforce@cyrus.watson.org using -f From: Robert Watson To: Perforce Change Reviews Cc: Subject: PERFORCE change 164148 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 11 Jun 2009 21:31:16 -0000 http://perforce.freebsd.org/chv.cgi?CH=164148 Change 164148 by rwatson@rwatson_freebsd_capabilities on 2009/06/11 21:30:52 Export caplibindex lookup symbol so that applications running under rtld-elf-cap can query the current library descriptor cache. Affected files ... .. //depot/projects/trustedbsd/capabilities/src/libexec/rtld-elf/rtld.c#15 edit Differences ... ==== //depot/projects/trustedbsd/capabilities/src/libexec/rtld-elf/rtld.c#15 (text+ko) ==== @@ -242,6 +242,9 @@ (func_ptr_type) &dl_iterate_phdr, (func_ptr_type) &_rtld_atfork_pre, (func_ptr_type) &_rtld_atfork_post, +#ifdef IN_RTLD_CAP + (func_ptr_type) &ld_caplibindex_lookup, +#endif NULL }; From owner-p4-projects@FreeBSD.ORG Fri Jun 12 00:41:29 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 16C2D1065670; Fri, 12 Jun 2009 00:41:29 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id CB219106564A for ; Fri, 12 Jun 2009 00:41:28 +0000 (UTC) (envelope-from jona@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 6B8718FC12 for ; Fri, 12 Jun 2009 00:41:28 +0000 (UTC) (envelope-from jona@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n5C0fSss061964 for ; Fri, 12 Jun 2009 00:41:28 GMT (envelope-from jona@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n5C0fSj6061962 for perforce@freebsd.org; Fri, 12 Jun 2009 00:41:28 GMT (envelope-from jona@FreeBSD.org) Date: Fri, 12 Jun 2009 00:41:28 GMT Message-Id: <200906120041.n5C0fSj6061962@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to jona@FreeBSD.org using -f From: Jonathan Anderson To: Perforce Change Reviews Cc: Subject: PERFORCE change 164155 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 12 Jun 2009 00:41:29 -0000 http://perforce.freebsd.org/chv.cgi?CH=164155 Change 164155 by jona@jona-trustedbsd-belle-vm on 2009/06/12 00:41:19 CMake seems pickier about directive order on FreeBSD (or this version, or ...) Affected files ... .. //depot/projects/trustedbsd/capabilities/cap-support/kpowerboxserver/CMakeLists.txt#2 edit Differences ... ==== //depot/projects/trustedbsd/capabilities/cap-support/kpowerboxserver/CMakeLists.txt#2 (text+ko) ==== @@ -1,12 +1,12 @@ cmake_minimum_required(VERSION 2.6) +project(kpowerboxtest) + find_package(KDE4 REQUIRED) find_package(Qt4 REQUIRED) include(${QT_USE_FILE}) -project(kpowerboxtest) - set(test_SRC kpowerboxtest.cpp kpowerboxserver.cpp) qt4_automoc(${source}) From owner-p4-projects@FreeBSD.ORG Fri Jun 12 10:35:05 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id B1AE81065673; Fri, 12 Jun 2009 10:35:05 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 71920106566B for ; Fri, 12 Jun 2009 10:35:05 +0000 (UTC) (envelope-from tsel@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 5E4188FC0C for ; Fri, 12 Jun 2009 10:35:05 +0000 (UTC) (envelope-from tsel@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n5CAZ5Pg047609 for ; Fri, 12 Jun 2009 10:35:05 GMT (envelope-from tsel@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n5CAZ55e047607 for perforce@freebsd.org; Fri, 12 Jun 2009 10:35:05 GMT (envelope-from tsel@FreeBSD.org) Date: Fri, 12 Jun 2009 10:35:05 GMT Message-Id: <200906121035.n5CAZ55e047607@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to tsel@FreeBSD.org using -f From: Tatsiana Elavaya To: Perforce Change Reviews Cc: Subject: PERFORCE change 164163 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 12 Jun 2009 10:35:06 -0000 http://perforce.freebsd.org/chv.cgi?CH=164163 Change 164163 by tsel@tsel_mz on 2009/06/12 10:34:47 Add kernel support for optimization (by inserting O_OPTMIZE instruction before real one) Use O_ALIAS instruction to specify rule alias Use list implementation from sys/queue.h Affected files ... .. //depot/projects/soc2009/tsel_ipfw/sbin/ipfw/ipfw2.c#5 edit .. //depot/projects/soc2009/tsel_ipfw/sys/netinet/ip_fw.h#3 edit .. //depot/projects/soc2009/tsel_ipfw/sys/netinet/ip_fw2.c#2 edit Differences ... ==== //depot/projects/soc2009/tsel_ipfw/sbin/ipfw/ipfw2.c#5 (text+ko) ==== @@ -24,6 +24,7 @@ #include #include #include +#include #include "ipfw2.h" @@ -470,19 +471,20 @@ } static struct ip_fw** -get_rules_cached(void) +get_rules_cached(int *len) { static struct ip_fw *raw_rules = NULL; static struct ip_fw **rules = NULL; - int i, rules_len; + static rules_len = 0; + int i, sz; if (raw_rules == NULL || rules == NULL) { char *r, *end; - raw_rules = (struct ip_fw*) ipfw_get_all(IP_FW_GET, &rules_len); - rules = safe_calloc(rules_len / sizeof(struct ip_fw) + 1, sizeof(void*)); + raw_rules = (struct ip_fw*) ipfw_get_all(IP_FW_GET, &sz); + rules = safe_calloc(sz / sizeof(struct ip_fw) + 1, sizeof(void*)); r = (char*)raw_rules; - end = r + rules_len; + end = r + sz; for (i = 0; ; i++) { if (r + RULESIZE(r) > end) { rules[i] = NULL; @@ -491,20 +493,39 @@ rules[i] = (struct ip_fw *)r; r += RULESIZE(r); } + rules_len = i; } + if (len) + *len = rules_len; return rules; } +static char* +get_rule_alias(struct ip_fw *rule) +{ + ipfw_insn *cmd; + int l; + + for (l = rule->cmd_len - rule->act_ofs, cmd = ACTION_PTR(rule); + l > 0 ; l -= F_LEN(cmd), cmd += F_LEN(cmd)) { + if (cmd->opcode == O_ALIAS) + return ((ipfw_insn_alias*) cmd)->alias; + } + return NULL; +} + static int alias_lookup_rulenum(const char *alias) { struct ip_fw **rules; + char *rule_alias; int i; - rules = get_rules_cached(); + rules = get_rules_cached(NULL); for (i = 0; rules[i]; i++) { - if (!strcmp(rules[i]->alias, alias)) + rule_alias = get_rule_alias(rules[i]); + if (rule_alias && !strcmp(rule_alias, alias)) return rules[i]->rulenum; } return -1; @@ -516,10 +537,10 @@ struct ip_fw **rules; int i; - rules = get_rules_cached(); + rules = get_rules_cached(NULL); for (i = 0; rules[i]; i++) { if (rules[i]->rulenum == rulenum) - return rules[i]->alias[0] ? rules[i]->alias : NULL; + return get_rule_alias(rules[i]); } return NULL; } @@ -1005,6 +1026,7 @@ int l; ipfw_insn *cmd, *tagptr = NULL; const char *comment = NULL; /* ptr to comment if we have one */ + const char *alias = NULL; /* ptr to alias if we have one */ int proto = 0; /* default */ int flags = 0; /* prerequisites */ ipfw_insn_log *logptr = NULL; /* set if we find an O_LOG */ @@ -1048,8 +1070,9 @@ } } - if (rule->alias[0]) - printf("alias %s ", rule->alias); + alias = get_rule_alias(rule); + if (alias) + printf("alias %s ", alias); if (co.show_sets) printf("set %d ", rule->set); @@ -1174,6 +1197,9 @@ PRINT_UINT_ARG("setfib ", cmd->arg1); break; + case O_ALIAS: /* O_ALIAS is printed first */ + break; + case O_REASS: printf("reass"); break; @@ -1590,6 +1616,11 @@ O_TAGGED); break; + case O_OPTIMIZE: + if (co.verbose) + printf(" [optimize %d %u]", cmd->arg1, ((ipfw_insn_u32*)cmd)->d[0]); + break; + default: printf(" [opcode %d len %d]", cmd->opcode, cmd->len); @@ -1798,20 +1829,6 @@ } } -static void -ipfw_list_aliases(void *data, uint nbytes, int ac, char *av[]) -{ - struct ip_fw *rules; - int len, i; - - rules = (struct ip_fw*) data; - len = nbytes / sizeof(struct ip_fw); - for (i = 0; i < len; i++) { - if (rules[i].alias[0] != '\0') - printf("%-5d %s\n", rules[i].rulenum, rules[i].alias); - } -} - void ipfw_list(int ac, char *av[], int show_counters) { @@ -1848,7 +1865,13 @@ } if (ac && !strcmp(*av, "alias")) { - ipfw_list_aliases(data, nbytes, ac, av); + char *alias; + + for (r = data; r->rulenum < IPFW_DEFAULT_RULE; r = NEXT(r)) { + alias = get_rule_alias(r); + if (alias) + printf("%-5d %s\n", r, alias); + } ac--; av++; goto done; } @@ -2002,16 +2025,29 @@ #undef NEXT } +struct insn_match_rule { + LIST_HEAD(_match_rule, insn_match) rule_head; + struct ip_fw *rule; +}; + struct insn_match { + LIST_ENTRY(insn_match) match_entries; + LIST_ENTRY(insn_match) rule_entries; + struct insn_match_rule *match_rule; ipfw_insn *cmd; + struct insn_match_group *group; +}; + +struct insn_match_group { + LIST_ENTRY(insn_match_group) group_entries; + LIST_HEAD(_match_head, insn_match) match_head; int match_count; - int list_size; - struct insn_match *next; - struct insn_match *next_match; - struct ip_fw *rule; int rank; + int label; }; +LIST_HEAD(insn_match_group_head, insn_match_group); + int insn_eq(ipfw_insn *a, ipfw_insn *b) { @@ -2078,48 +2114,57 @@ } if (F_LEN(a) != F_LEN(b)) return(0); - if (memcmp(a, b, F_LEN(a)) == 0) + if (memcmp(a, b, F_LEN(a) * 4) == 0) return(1); return(0); } int -insn_match_insert(struct insn_match **m_head, ipfw_insn *cmd, struct ip_fw *rule) +insn_match_insert(struct insn_match_group_head *group_head, ipfw_insn *cmd, + struct insn_match_rule *rule, int *group_count) { + struct insn_match_group *g; struct insn_match *m, *new_m; new_m = safe_calloc(1, sizeof(struct insn_match)); new_m->cmd = cmd; - new_m->rule = rule; - - if (!*m_head) { - *m_head = new_m; - return (0); - } + new_m->match_rule = rule; + LIST_INSERT_HEAD(&rule->rule_head, new_m, rule_entries); - for (m = *m_head; m; m = m->next) { + LIST_FOREACH(g, group_head, group_entries) { + m = LIST_FIRST(&g->match_head); if (insn_eq(m->cmd, cmd)) { - /* preserve first element in list */ - new_m->next_match = m->next_match; - m->next_match = new_m; - m->match_count++; - printf("m->cmd %d: count = %d\n", cmd->opcode, m->match_count); + new_m->group = g; + LIST_INSERT_HEAD(&g->match_head, new_m, match_entries); + g->match_count++; return(1); } } - new_m->list_size = (*m_head)->list_size + 1; - (*m_head)->list_size = 0; - new_m->next = *m_head; - *m_head = new_m; + + g = safe_calloc(1, sizeof(struct insn_match_group)); + new_m->group = g; + LIST_INSERT_HEAD(&g->match_head, new_m, match_entries); + LIST_INSERT_HEAD(group_head, g, group_entries); + (*group_count)++; + return(0); } +void +insn_match_remove(struct insn_match *m) +{ + // printf("remove match: cmd = %d, rule = %d\n", m->cmd->opcode, m->match_rule->rule->rulenum); + LIST_REMOVE(m, rule_entries); + LIST_REMOVE(m, match_entries); + free(m); +} + int -insn_match_cmp(const void *_a, const void *_b) +insn_match_group_cmp(const void *_a, const void *_b) { - struct insn_match *a[2] = { - *((struct insn_match **) _a), - *((struct insn_match **) _b), + struct insn_match_group *a[2] = { + *((struct insn_match_group **) _a), + *((struct insn_match_group **) _b), }; int i; @@ -2133,13 +2178,20 @@ if (a[i]->rank || a[i]->match_count == 0) continue; - for (m = a[i], min_r = max_r = m->rule->rulenum; m; m = m->next_match) - if (m->rule->rulenum < min_r) - min_r = m->rule->rulenum; - else if (m->rule->rulenum > max_r) - max_r = m->rule->rulenum; - printf("rank %d: match_count: %d, dist: %d\n", a[i]->cmd->opcode, a[i]->match_count, max_r - min_r); + min_r = max_r = LIST_FIRST(&a[i]->match_head)->match_rule->rule->rulenum; + LIST_FOREACH(m, &a[i]->match_head, match_entries) { + int rulenum = m->match_rule->rule->rulenum; + if (rulenum < min_r) + min_r = rulenum; + else if (rulenum > max_r) + max_r = rulenum; + } a[i]->rank = ((a[i]->match_count & 0x7fff) << 16) - (max_r - min_r); + /* + printf("rank %d: match_count: %d, dist: %d\n", + LIST_FIRST(&a[i]->match_head)->cmd->opcode, + a[i]->match_count, max_r - min_r); + */ } return a[1]->rank - a[0]->rank; @@ -2148,59 +2200,119 @@ void ipfw_optimize(int argc, char **argv) { + struct insn_match_group_head groups[O_LAST_OPCODE]; + struct insn_match_group **groups_sort; + struct insn_match_rule *match_rules; struct ip_fw **rules; - struct insn_match **cmds, **cmds_sort; - int c, i; + struct ip_fw *orule; + int c, i, group_count, rules_count; if (co.test_only) { fprintf(stderr, "Testing only, optimization disabled\n"); return; } - cmds = (struct insn_match**) safe_calloc(O_LAST_OPCODE, sizeof(void*)); + for (i = 0; i < O_LAST_OPCODE; i++) { + LIST_INIT(&groups[i]); + } + + rules = get_rules_cached(&rules_count); + match_rules = safe_calloc(rules_count, sizeof(struct insn_match_rule)); + + for (i = 0, group_count = 0; i < rules_count; i++) { + ipfw_insn *cmd; + int l; + - rules = get_rules_cached(); - for (i = 0; rules[i]; i++) { - for (c = 0; c < rules[i]->cmd_len; c++) { - int match; + if (i > 0 && rules[i]->rulenum == rules[i - 1]->rulenum) + errx(EX_DATAERR, "rule number is not unique: %d", rules[i]->rulenum); - ipfw_insn *cmd = &rules[i]->cmd[c]; - match = insn_match_insert(&cmds[cmd->opcode], cmd, rules[i]); - if (match) - printf("rule %d: op_code %d; match = %d\n", rules[i]->rulenum, cmd->opcode, match); - } - } + l = RULESIZE(rules[i]); + rules[i] = memcpy(safe_calloc(1, l), rules[i], l); + match_rules[i].rule = rules[i]; - for (c = 0, i = 0; i < O_LAST_OPCODE; i++) { - if (!cmds[i]) - continue; - if (cmds[i]->list_size) { - printf("list size: %d; opcode %d\n", cmds[i]->list_size, cmds[i]->cmd->opcode); + for (l = rules[i]->cmd_len, cmd = rules[i]->cmd; l > 0;) { + l -= F_LEN(cmd); + /* remove old optimization labels */ + if (cmd->opcode == O_OPTIMIZE) { + rules[i]->cmd_len -= F_LEN(cmd); + rules[i]->act_ofs -= F_LEN(cmd); + memcpy(cmd, cmd + F_LEN(cmd), l * 4); + } else { + insn_match_insert(&groups[cmd->opcode], cmd, &match_rules[i], &group_count); + cmd += F_LEN(cmd); + } } - c += 1 + cmds[i]->list_size; } - cmds_sort = (struct insn_match**) safe_calloc(c, sizeof(void*)); - for (c = 0, i = 0; i < O_LAST_OPCODE; i++) { - struct insn_match *cmd; + groups_sort = (struct insn_match_group**) safe_calloc(group_count, sizeof(void*)); + for (i = 0, c = 0; i < O_LAST_OPCODE; i++) { + struct insn_match_group *g; - if (!cmds[i]) - continue; - for (cmd = cmds[i]; cmd; cmd = cmd->next) - cmds_sort[c++] = cmd; + LIST_FOREACH(g, &groups[i], group_entries) { + groups_sort[c++] = g; + } } - qsort(cmds_sort, c, sizeof(void*), insn_match_cmp); - for (i = 0; i < c && cmds_sort[i]->rank; i++) { - printf("sorted: %d; match_count %d; rank %d\n", cmds_sort[i]->cmd->opcode, cmds_sort[i]->match_count, cmds_sort[i]->rank); + qsort(groups_sort, group_count, sizeof(void*), insn_match_group_cmp); + for (i = 0; i < group_count && i < IPFW_OPTIMIZE_LABEL_MAX && groups_sort[i]->rank; i++) { + struct insn_match *m = LIST_FIRST(&groups_sort[i]->match_head); + groups_sort[i]->label = i; + printf("sorted: %d; opcode %d; match_count %d; rank %d\n", + groups_sort[i]->label, + m->cmd->opcode, groups_sort[i]->match_count, groups_sort[i]->rank); } c = i; + for (; i < group_count; i++) { + while (!LIST_EMPTY(&groups_sort[i]->match_head)) { + insn_match_remove(LIST_FIRST(&groups_sort[i]->match_head)); + } + } + group_count = c; + + orule = (struct ip_fw*)safe_calloc(1, sizeof(struct ip_fw) + 255*4); + for (i = 0; rules[i]; i++) { + struct insn_match *m, *m_tmp; + + memcpy(orule, rules[i], RULESIZE(rules[i])); + + LIST_FOREACH_SAFE(m, &match_rules[i].rule_head, rule_entries, m_tmp) { + ipfw_insn_u32 optimize_cmd; + int cmd_offset = ((int32_t*) m->cmd) - ((int32_t*) rules[i]->cmd); + + optimize_cmd.o.len = F_INSN_SIZE(ipfw_insn_u32); + optimize_cmd.o.opcode = O_OPTIMIZE; + optimize_cmd.o.arg1 = m->cmd->opcode; + optimize_cmd.d[0] = m->group->label; - free(cmds); - free(cmds_sort); + if (cmd_offset >= orule->act_ofs) + errx(EX_DATAERR, "optimizing action: rule %d\n", orule->rulenum); + if (orule->cmd_len + F_LEN(&optimize_cmd.o) > 255) + errx(EX_DATAERR, "option list is too long: rule %d", orule->rulenum); + memcpy(orule->cmd + cmd_offset + F_LEN(&optimize_cmd.o), + orule->cmd + cmd_offset, + (orule->cmd_len - cmd_offset) * 4); + memcpy(orule->cmd + cmd_offset, &optimize_cmd, F_LEN(&optimize_cmd.o) * 4); + orule->cmd_len += F_LEN(&optimize_cmd.o); + orule->act_ofs += F_LEN(&optimize_cmd.o); + // printf("rule %d; cmd %d; offset %d\n", orule->rulenum, m->cmd->opcode, cmd_offset); + } + if (!LIST_EMPTY(&match_rules[i].rule_head)) { + int x; + + x = orule->rulenum & 0xffff; + if (do_cmd(IP_FW_DEL, &x, sizeof(x))) + errx(EX_DATAERR, "rule %u: setsockopt(IP_FW_DEL)", orule->rulenum); + + x = RULESIZE(orule); + if (do_cmd(IP_FW_ADD, orule, (uintptr_t)&x)) + errx(EX_DATAERR, "rule %u: setsockopt(IP_FW_ADD)", orule->rulenum); + if (co.verbose) + show_ipfw(orule, 0, 0); + } + } } - static int lookup_host (char *host, struct in_addr *ipaddr) { @@ -2902,13 +3014,17 @@ /* [alias ALIAS] */ if (ac > 1 && _substrcmp(*av, "alias") == 0) { int alias_rule; + ipfw_insn_alias *alias_cmd = (ipfw_insn_alias *) action; NEED1("missing alias name"); alias_rule = alias_lookup_rulenum(av[1]); if (alias_rule > 0) errx(EX_DATAERR, "rule %d already has alias %s", alias_rule, av[1]); - strlcpy(rule->alias, av[1], IPFW_ALIAS_NAME_SIZE); + alias_cmd->o.opcode = O_ALIAS; + alias_cmd->o.len = F_INSN_SIZE(ipfw_insn_alias); + strlcpy(alias_cmd->alias, av[1], IPFW_ALIAS_NAME_SIZE); av += 2; ac -= 2; + action = next_cmd(action); } /* [set N] -- set number (0..RESVD_SET), optional */ ==== //depot/projects/soc2009/tsel_ipfw/sys/netinet/ip_fw.h#3 (text+ko) ==== @@ -42,6 +42,8 @@ */ #define IPFW_TABLES_MAX 128 +#define IPFW_OPTIMIZE_LABEL_MAX 128 + /* * The kernel representation of ipfw rules is made of a list of * 'instructions' (for all practical purposes equivalent to BPF @@ -179,6 +181,9 @@ O_SETFIB, /* arg1=FIB number */ O_FIB, /* arg1=FIB desired fib number */ + O_ALIAS, + O_OPTIMIZE, /* u32 position in bitset */ + O_LAST_OPCODE /* not an opcode! */ }; @@ -305,6 +310,15 @@ } ipfw_insn_altq; /* + * This is used to store rule alias. + */ +typedef struct _ipfw_insn_alias { + ipfw_insn o; +#define IPFW_ALIAS_NAME_SIZE (4*6) + char alias[IPFW_ALIAS_NAME_SIZE]; +} ipfw_insn_alias; + +/* * This is used for limit rules. */ typedef struct _ipfw_insn_limit { @@ -421,8 +435,6 @@ */ } ipfw_insn_icmp6; -#define IPFW_ALIAS_NAME_SIZE 32 - /* * Here we have the structure representing an ipfw rule. * @@ -466,7 +478,6 @@ u_int64_t pcnt; /* Packet counter */ u_int64_t bcnt; /* Byte counter */ u_int32_t timestamp; /* tv_sec of last match */ - char alias[IPFW_ALIAS_NAME_SIZE]; ipfw_insn cmd[1]; /* storage for commands */ }; ==== //depot/projects/soc2009/tsel_ipfw/sys/netinet/ip_fw2.c#2 (text+ko) ==== @@ -917,6 +917,10 @@ case O_REASS: action = "Reass"; break; + case O_ALIAS: + snprintf(SNPARGS(action2, 0), "Alias %s", + ((ipfw_insn_alias *)cmd)->alias); + break; default: action = "UNKNOWN"; break; @@ -2262,6 +2266,10 @@ /* end of ipv6 variables */ int is_ipv4 = 0; +#define GET_OPTIMIZE_LABEL(a) optimize_state[(a) / 32] & (1 << ((a) % 32)) +#define SET_OPTIMIZE_LABEL(a) optimize_state[(a) / 32] |= (1 << ((a) % 32)) + uint32_t optimize_state[IPFW_OPTIMIZE_LABEL_MAX/32]; + if (m->m_flags & M_SKIP_FIREWALL) return (IP_FW_PASS); /* accept */ @@ -2555,6 +2563,9 @@ m_tag_delete(m, mtag); } + /* reset optimization state */ + bzero(optimize_state, sizeof(optimize_state)); + /* * Now scan the rules, and parse microinstructions for each rule. */ @@ -2562,6 +2573,7 @@ ipfw_insn *cmd; uint32_t tablearg = 0; int l, cmdlen, skip_or; /* skip rest of OR block */ + int optimize_match = 0; again: if (V_set_disable & (1 << f->set) ) @@ -2594,7 +2606,11 @@ } match = 0; /* set to 1 if we succeed */ - switch (cmd->opcode) { + if (optimize_match > 0) { + printf("IPFW: optimize %d %d\n", cmd->opcode, optimize_match - 1); + optimize_match = 0; + match = !(cmd->len & F_NOT); + } else switch (cmd->opcode) { /* * The first set of opcodes compares the packet's * fields with some pattern, setting 'match' if a @@ -3138,6 +3154,15 @@ } break; } + case O_OPTIMIZE: { + int label = ((ipfw_insn_u32 *)cmd)->d[0]; + + if (GET_OPTIMIZE_LABEL(label)) + optimize_match = label + 1; + else + optimize_match = -(label + 1); + continue; + } /* * The second set of opcodes represents 'actions', @@ -3382,6 +3407,9 @@ } else retval = IP_FW_DENY; goto done; + + case O_ALIAS: + break; } case O_REASS: { @@ -3441,9 +3469,16 @@ match = !match; if (match) { + if (optimize_match < 0) { + optimize_match = -optimize_match - 1; + SET_OPTIMIZE_LABEL(optimize_match); + printf("IPFW: set optimize match %d %d\n", cmd->opcode, optimize_match); + optimize_match = 0; + } if (cmd->len & F_OR) skip_or = 1; } else { + optimize_match = 0; if (!(cmd->len & F_OR)) /* not an OR block, */ break; /* try next rule */ } @@ -4034,6 +4069,11 @@ goto bad_size; break; + case O_OPTIMIZE: + if (cmdlen < F_INSN_SIZE(ipfw_insn_u32)) + goto bad_size; + break; + case O_ALTQ: if (cmdlen != F_INSN_SIZE(ipfw_insn_altq)) goto bad_size; @@ -4101,6 +4141,10 @@ return EINVAL; } break; + case O_ALIAS: + if (cmdlen != F_INSN_SIZE(ipfw_insn_alias)) + goto bad_size; + break; #ifdef INET6 case O_IP6_SRC: case O_IP6_DST: From owner-p4-projects@FreeBSD.ORG Fri Jun 12 11:05:37 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id A75C61065672; Fri, 12 Jun 2009 11:05:36 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 67455106566C for ; Fri, 12 Jun 2009 11:05:36 +0000 (UTC) (envelope-from jona@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 547FD8FC14 for ; Fri, 12 Jun 2009 11:05:36 +0000 (UTC) (envelope-from jona@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n5CB5aEZ050897 for ; Fri, 12 Jun 2009 11:05:36 GMT (envelope-from jona@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n5CB5aXt050895 for perforce@freebsd.org; Fri, 12 Jun 2009 11:05:36 GMT (envelope-from jona@FreeBSD.org) Date: Fri, 12 Jun 2009 11:05:36 GMT Message-Id: <200906121105.n5CB5aXt050895@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to jona@FreeBSD.org using -f From: Jonathan Anderson To: Perforce Change Reviews Cc: Subject: PERFORCE change 164164 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 12 Jun 2009 11:05:37 -0000 http://perforce.freebsd.org/chv.cgi?CH=164164 Change 164164 by jona@jona-trustedbsd-belle-vm on 2009/06/12 11:04:55 Added some preliminary marshalling / send-with-file-descriptor code Affected files ... .. //depot/projects/trustedbsd/capabilities/src/tools/cap/user_angel/Makefile#4 edit .. //depot/projects/trustedbsd/capabilities/src/tools/cap/user_angel/fdtest.c#1 add .. //depot/projects/trustedbsd/capabilities/src/tools/cap/user_angel/protocol.c#4 edit .. //depot/projects/trustedbsd/capabilities/src/tools/cap/user_angel/protocol.h#4 edit Differences ... ==== //depot/projects/trustedbsd/capabilities/src/tools/cap/user_angel/Makefile#4 (text+ko) ==== @@ -1,6 +1,6 @@ -CFLAGS=-g -ggdb --std=c99 -Wall -Werror -pedantic-errors +CFLAGS=-g -ggdb --std=c99 -Wall -Werror #-pedantic-errors -BIN=user_angel test_client +BIN=user_angel test_client fdtest AGENT_OBJ = user_angel.o server.o cap.o protocol.o fdcomm.o powerbox.o CLIENT_OBJ = test_client.o protocol.o fdcomm.o @@ -13,9 +13,13 @@ test_client: ${CLIENT_OBJ} ${CC} -o $@ ${CLIENT_OBJ} +fdtest: fdtest.o fdcomm.o protocol.o + ${CC} -o $@ fdtest.o fdcomm.o protocol.o + cap.o: cap.c cap.h fdcomm.o: fdcomm.c fdcomm.h +fdtest.o: fdtest.c protocol.h powerbox.o: powerbox.c powerbox.h protocol.o: protocol.c protocol.h powerbox.h server.o: server.c protocol.h server.h ==== //depot/projects/trustedbsd/capabilities/src/tools/cap/user_angel/protocol.c#4 (text+ko) ==== @@ -33,15 +33,164 @@ #include +#include #include #include #include #include +#include +#include #include "protocol.h" +struct cap_wire_datum* cap_marshall_int(int32_t value) +{ + int size = sizeof(struct cap_wire_datum) + sizeof(int32_t); + struct cap_wire_datum *d = (struct cap_wire_datum*) malloc(size); + + d->type = INTEGER; + d->length = sizeof(int32_t); + ((int32_t*) d + sizeof(struct cap_wire_datum))[0] = value; + + return d; +} + + +struct cap_wire_datum* cap_marshall_string(char *value, int len) +{ + int size = sizeof(struct cap_wire_datum) + len; + struct cap_wire_datum *d = (struct cap_wire_datum*) malloc(size); + + d->type = STRING; + d->length = len; + memcpy(d + sizeof(struct cap_wire_datum), value, len); + + return d; +} +/* +int cap_send(int sock, struct cap_wire_datum* datum); +*/ + + + +#include // TODO: temporary +int cap_send_fd(int sock, const char *name, struct cap_wire_datum *d, + int32_t fd_array[], int32_t fdlen) +{ + printf("Sending datum + %i FD(s) over socket %i\n", fdlen, sock); + + // the datum is the I/O vector + struct iovec iov; + iov.iov_base = d; + iov.iov_len = sizeof(struct cap_wire_datum) + d->length; + + + // ancilliary data (file descriptors) + int cmsghdrlen = sizeof(struct cmsghdr) + fdlen * sizeof(int32_t); + struct cmsghdr *anc_hdr = (struct cmsghdr*) malloc(cmsghdrlen); + if(!anc_hdr) err(EX_OSERR, "Error creating ancilliary data header"); + + anc_hdr->cmsg_len = cmsghdrlen; + anc_hdr->cmsg_level = SOL_SOCKET; + anc_hdr->cmsg_type = SCM_RIGHTS; + memcpy(anc_hdr + sizeof(struct cmsghdr), fd_array, fdlen * sizeof(int32_t)); + + + // sendmsg header + struct msghdr header; + header.msg_name = (void*) name; + header.msg_namelen = strlen(name); + header.msg_iov = &iov; + header.msg_iovlen = 1; + header.msg_control = anc_hdr; + header.msg_controllen = anc_hdr->cmsg_len; + header.msg_flags = 0; + + + int bytes_sent = sendmsg(sock, &header, 0); +// int bytes_sent = send(sock, d, sizeof(struct cap_wire_datum), 0); + if(bytes_sent < 0) + { + perror("Error sending data and file descriptor(s)"); + sleep(200); + return -1; + } + + free(anc_hdr); + return bytes_sent; +} + + + +int cap_recv_fd(int sock, char **name, struct cap_wire_datum **d, + int32_t *fd_array, int32_t *fdlen) +{ + printf("cap_recv_fd(%i, char**, datum**, int[], %i)\n", sock, *fdlen); + + // how much data is there to receive? + struct cap_wire_datum peek; + printf("Peek at first %iB...\n", sizeof(struct cap_wire_datum)); + int bytes = recv(sock, &peek, sizeof(struct cap_wire_datum), MSG_PEEK); + int to_receive = sizeof(struct cap_wire_datum) + peek.length; + printf("Total to receive: %iB\n", to_receive); + + // make room for it + *d = (struct cap_wire_datum*) malloc(to_receive); + struct iovec iov; + iov.iov_base = d; + iov.iov_len = to_receive; + + // prepare to receive file descriptor(s) + int size = sizeof(struct cmsghdr) + *fdlen; + struct cmsghdr *anc_hdr = (struct cmsghdr*) malloc(size); + if(!anc_hdr) err(EX_OSERR, "Error creating ancilliary data header"); + anc_hdr->cmsg_len = size; + anc_hdr->cmsg_level = SOL_SOCKET; + anc_hdr->cmsg_type = SCM_RIGHTS; + memset(anc_hdr + sizeof(struct cmsghdr), 0, *fdlen * sizeof(int32_t)); + + // recvmsg() options + struct msghdr header; + header.msg_name = NULL; + header.msg_namelen = 0; + header.msg_iov = &iov; + header.msg_iovlen = 1; + header.msg_control = anc_hdr; + header.msg_controllen = anc_hdr->cmsg_len; + header.msg_flags = 0; + + + bytes = recvmsg(sock, &header, MSG_WAITALL); + if(bytes < 0) + { + perror("Error receiving message"); + return -1; + } + else if(bytes == 0) + { + fprintf(stderr, "Socket closed\n"); + return -1; + } + + size = sizeof(struct cmsghdr) + *fdlen * sizeof(int32_t); + printf("Received %iB cmsghdr\n", anc_hdr->cmsg_len); + + int recv_fdlen = + (anc_hdr->cmsg_len - sizeof(struct cmsghdr)) / sizeof(int32_t); + printf("Received %i FDs (room for %i)\n", recv_fdlen, *fdlen); + + if(recv_fdlen < *fdlen) *fdlen = recv_fdlen; + + int32_t* recv_fd_array = (int32_t*) anc_hdr + sizeof(anc_hdr); + memcpy(fd_array, recv_fd_array, *fdlen * sizeof(int32_t)); + + return 0; +} + + + int cap_send_int(int client, int value) { return send(client, &value, sizeof(int), 0); ==== //depot/projects/trustedbsd/capabilities/src/tools/cap/user_angel/protocol.h#4 (text+ko) ==== @@ -31,10 +31,24 @@ * SUCH DAMAGE. */ -#include -__FBSDID("$FreeBSD$"); +#include +#include "powerbox.h" + + +struct cap_wire_datum +{ + uint32_t type; + #define INTEGER 0x00000001 + #define FLOAT 0x00000002 + #define STRING 0x00000004 + #define LONG 0x00000100 + #define SHORT 0x00000200 + + uint32_t length; + + /* followed by data; */ +}; -#include "powerbox.h" /** Requests that clients can make */ @@ -46,6 +60,22 @@ +struct cap_wire_datum* cap_marshall_int(int32_t value); +struct cap_wire_datum* cap_marshall_string(char *value, int len); + +int cap_send(int sock, char *name, struct cap_wire_datum *d); +int cap_send_fd(int sock, const char *name, struct cap_wire_datum *d, + int32_t fd_array[], int32_t fdlen); + +int cap_recv(int sock, char **name, struct cap_wire_datum **d); + +/** You supply the FD array and say how big it is; I'll tell you how many FDs you actually received. */ +int cap_recv_fd(int sock, char **name, struct cap_wire_datum **d, + int32_t fd_array[], int32_t *fdlen); + + + + int cap_send_int(int client, int value); int cap_recv_int(int client, int *value); From owner-p4-projects@FreeBSD.ORG Fri Jun 12 11:13:46 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 55ABA106566C; Fri, 12 Jun 2009 11:13:46 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 15832106564A for ; Fri, 12 Jun 2009 11:13:46 +0000 (UTC) (envelope-from pgj@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 0269F8FC1B for ; Fri, 12 Jun 2009 11:13:46 +0000 (UTC) (envelope-from pgj@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n5CBDiue051452 for ; Fri, 12 Jun 2009 11:13:44 GMT (envelope-from pgj@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n5CBDi1g051450 for perforce@freebsd.org; Fri, 12 Jun 2009 11:13:44 GMT (envelope-from pgj@FreeBSD.org) Date: Fri, 12 Jun 2009 11:13:44 GMT Message-Id: <200906121113.n5CBDi1g051450@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to pgj@FreeBSD.org using -f From: Gabor Pali To: Perforce Change Reviews Cc: Subject: PERFORCE change 164165 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 12 Jun 2009 11:13:47 -0000 http://perforce.freebsd.org/chv.cgi?CH=164165 Change 164165 by pgj@petymeg-current on 2009/06/12 11:13:28 - Add KVM extraction code for inet - Refine NPCB_### macros - Refine ipproto Affected files ... .. //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat.c#21 edit Differences ... ==== //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat.c#21 (text+ko) ==== @@ -55,7 +55,8 @@ { "#0", "stream", "dgram", "raw", "rdm", "seqpacket" }; static int -net_local_pcblist_sysctl(int type, struct socket_type_list *list, int flags) +net_local_pcblist_sysctl(int family, int type, struct socket_type_list *list, + int flags) { char *buf; size_t len; @@ -90,7 +91,7 @@ xunp = (struct xunpcb *)xug; /* Keep active PCBs only. */ if (xunp->xu_unp.unp_gencnt <= oxug->xug_gen) { - stp = _netstat_st_allocate(list, PF_LOCAL, type, + stp = _netstat_st_allocate(list, family, type, socktype[type]); extract_xunpcb_data(xunp, stp); } @@ -100,38 +101,46 @@ return (0); } -static int -net_inet_pcblist_sysctl(int protocol, struct socket_type_list *list, int flags) +static const char * +ipproto(int protocol) { - char *buf; - size_t len; - char mibvar[64]; - const char *ipproto; - - struct xinpgen *xig, *oxig; - struct tcpcb *tp = NULL; - struct inpcb *inp; - struct xsocket *so; - - struct socket_type *stp; + const char * result; switch (protocol) { case IPPROTO_TCP: - ipproto = "tcp"; + result = "tcp"; break; case IPPROTO_UDP: - ipproto = "udp"; + result = "udp"; break; case IPPROTO_DIVERT: - ipproto = "divert"; + result = "divert"; break; default: case IPPROTO_RAW: - ipproto = "raw"; + result = "raw"; break; } - sprintf(mibvar, "net.inet.%s.pcblist", ipproto); + return (result); +} + +static int +net_inet_pcblist_sysctl(int family, int protocol, + struct socket_type_list *list, int flags) +{ + char *buf; + size_t len; + char mibvar[64]; + + struct xinpgen *xig, *oxig; + struct tcpcb *tp = NULL; + struct inpcb *inp; + struct xsocket *so; + + struct socket_type *stp; + + sprintf(mibvar, "net.inet.%s.pcblist", ipproto(protocol)); len = 0; if (sysctlbyname(mibvar, 0, &len, 0, 0) < 0) { @@ -191,8 +200,8 @@ )) continue; - stp = _netstat_st_allocate(list, PF_INET, protocol, - ipproto); + stp = _netstat_st_allocate(list, family, protocol, + ipproto(protocol)); extract_inet_data(tp, inp, so, stp); } @@ -208,7 +217,7 @@ } while (0); static int -net_local_pcblist_kvm(int type, struct socket_type_list *list, +net_local_pcblist_kvm(int family, int type, struct socket_type_list *list, kvm_t *kvm, struct nlist *nlistp, int flags) { struct unp_head head; @@ -270,7 +279,7 @@ list->stl_error = NETSTAT_ERROR_UNDEFINED; return (-1); } - stp = _netstat_st_allocate(list, PF_LOCAL, type, + stp = _netstat_st_allocate(list, family, type, socktype[type]); extract_xunpcb_data(&xu, stp); } @@ -279,10 +288,83 @@ } static int -net_inet_pcblist_kvm(int protocol, struct socket_type_list *list, +net_inet_pcblist_kvm(int family, int protocol, struct socket_type_list *list, kvm_t *kvm, struct nlist *nlistp, int flags) { - /* XXX: to be filled in. */ + struct inpcbinfo pcbinfo; + struct inpcbhead listhead; + struct inpcb *inp; + struct xinpcb xi; + struct xinpgen xig; + struct xtcpcb xt; + struct tcpcb *tcb = NULL; + struct socket so; + struct xsocket *xso; + u_long off; + + struct socket_type *stp; + + switch (protocol) { + case IPPROTO_TCP: + off = nlistp[X_TCBINFO].n_value; + break; + case IPPROTO_UDP: + off = nlistp[X_UDBINFO].n_value; + break; + case IPPROTO_DIVERT: + off = nlistp[X_DIVCBINFO].n_value; + break; + case IPPROTO_RAW: + case IPPROTO_ICMP: + case IPPROTO_IGMP: + case IPPROTO_PIM: + off = nlistp[X_RIPCBINFO].n_value; + break; + default: + list->stl_error = NETSTAT_ERROR_UNDEFINED; + return (-1); + } + + KREAD(off, &pcbinfo, sizeof(pcbinfo)); + LIST_FOREACH(inp, &listhead, inp_list) { + if (protocol == IPPROTO_TCP) { + KREAD(inp, &xt.xt_inp, sizeof(*inp)); + inp = &xt.xt_inp; + } else { + KREAD(inp, &xi.xi_inp, sizeof(*inp)); + inp = &xi.xi_inp; + } + + /* Keep active PCBs only. */ + if (inp->inp_gencnt > pcbinfo.ipi_gencnt) + continue; + + if (protocol == IPPROTO_TCP) { + if (inp->inp_ppcb == NULL) + bzero(&xt.xt_tp, sizeof(xt.xt_tp)); + else if (inp->inp_flags & INP_TIMEWAIT) { + bzero(&xt.xt_tp, sizeof(xt.xt_tp)); + xt.xt_tp.t_state = TCPS_TIME_WAIT; + } else + KREAD(inp->inp_ppcb, &xt.xt_tp, + sizeof(xt.xt_tp)); + } + if (inp->inp_socket) { + KREAD(inp->inp_socket, &so, sizeof(so)); + if (sotoxsocket(kvm, &so, xso) != 0) { + list->stl_error = NETSTAT_ERROR_UNDEFINED; + return (-1); + } + } else { + bzero(xso, sizeof(*xso)); + if (protocol == IPPROTO_TCP) + xso->xso_protocol = protocol; + } + stp = _netstat_st_allocate(list, family, protocol, + ipproto(protocol)); + extract_inet_data(tcb, inp, xso, stp); + } + return (0); } @@ -305,16 +387,17 @@ } } -#define NPCB_KVM(family, type, list, kvm, nl, flags) do { \ - if (net_##family##_pcblist_kvm((type), (list), (kvm), (nl), \ +#define NPCB_KVM(proc, family, type, list, kvm, nl, flags) do { \ + if (net_##proc##_pcblist_kvm((family), (type), (list), (kvm), (nl), \ (flags)) != 0) { \ list->stl_error = NETSTAT_ERROR_UNDEFINED; \ return (-1); \ } \ } while (0) -#define NPCB_SCT(family, type, list, flags) do { \ - if (net_##family##_pcblist_sysctl((type), (list), (flags)) != 0) { \ +#define NPCB_SCT(proc, family, type, list, flags) do { \ + if (net_##proc##_pcblist_sysctl((family), (type), (list), \ + (flags)) != 0) { \ list->stl_error = NETSTAT_ERROR_UNDEFINED; \ return (-1); \ } \ @@ -326,21 +409,24 @@ case SOCK_STREAM: case SOCK_DGRAM: if (use_kvm) - NPCB_KVM(local, type, list, kvm, nl, flags); + NPCB_KVM(local, domain, type, list, kvm, nl, + flags); else /* Use sysctl (or something else). */ - NPCB_SCT(local, type, list, flags); + NPCB_SCT(local, domain, type, list, flags); break; /* All PF_LOCAL */ case 0: if (use_kvm) { - NPCB_KVM(local, SOCK_STREAM, list, kvm, nl, + NPCB_KVM(local, domain, SOCK_STREAM, list, kvm, + nl, flags); + NPCB_KVM(local, domain, SOCK_DGRAM, list, kvm, + nl, flags); + } else { + NPCB_SCT(local, domain, SOCK_STREAM, list, flags); - NPCB_KVM(local, SOCK_DGRAM, list, kvm, nl, + NPCB_SCT(local, domain, SOCK_DGRAM, list, flags); - } else { - NPCB_SCT(local, SOCK_STREAM, list, flags); - NPCB_SCT(local, SOCK_DGRAM, list, flags); } break; default: @@ -360,26 +446,31 @@ case IPPROTO_PIM: case IPPROTO_ICMPV6: if (use_kvm) - NPCB_KVM(inet, protocol, list, kvm, nl, flags); + NPCB_KVM(inet, domain, protocol, list, kvm, nl, + flags); else - NPCB_SCT(inet, protocol, list, flags); + NPCB_SCT(inet, domain, protocol, list, flags); break; /* All PF_INET */ case 0: if (use_kvm) { - NPCB_KVM(inet, IPPROTO_TCP, list, kvm, nl, + NPCB_KVM(inet, domain, IPPROTO_TCP, list, kvm, + nl, flags); + NPCB_KVM(inet, domain, IPPROTO_UDP, list, kvm, + nl, flags); + NPCB_KVM(inet, domain, IPPROTO_DIVERT, list, + kvm, nl, flags); + NPCB_KVM(inet, domain, IPPROTO_RAW, list, kvm, + nl, flags); + } else { + NPCB_SCT(inet, domain, IPPROTO_TCP, list, flags); - NPCB_KVM(inet, IPPROTO_UDP, list, kvm, nl, + NPCB_SCT(inet, domain, IPPROTO_UDP, list, flags); - NPCB_KVM(inet, IPPROTO_DIVERT, list, kvm, nl, + NPCB_SCT(inet, domain, IPPROTO_DIVERT, list, flags); - NPCB_KVM(inet, IPPROTO_RAW, list, kvm, nl, + NPCB_SCT(inet, domain, IPPROTO_RAW, list, flags); - } else { - NPCB_SCT(inet, IPPROTO_TCP, list, flags); - NPCB_SCT(inet, IPPROTO_UDP, list, flags); - NPCB_SCT(inet, IPPROTO_DIVERT, list, flags); - NPCB_SCT(inet, IPPROTO_RAW, list, flags); } break; default: From owner-p4-projects@FreeBSD.ORG Fri Jun 12 11:32:04 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id D9B361065670; Fri, 12 Jun 2009 11:32:03 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 99DFB1065672 for ; Fri, 12 Jun 2009 11:32:03 +0000 (UTC) (envelope-from jona@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 875998FC14 for ; Fri, 12 Jun 2009 11:32:03 +0000 (UTC) (envelope-from jona@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n5CBW37i052813 for ; Fri, 12 Jun 2009 11:32:03 GMT (envelope-from jona@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n5CBW3Z3052811 for perforce@freebsd.org; Fri, 12 Jun 2009 11:32:03 GMT (envelope-from jona@FreeBSD.org) Date: Fri, 12 Jun 2009 11:32:03 GMT Message-Id: <200906121132.n5CBW3Z3052811@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to jona@FreeBSD.org using -f From: Jonathan Anderson To: Perforce Change Reviews Cc: Subject: PERFORCE change 164166 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 12 Jun 2009 11:32:04 -0000 http://perforce.freebsd.org/chv.cgi?CH=164166 Change 164166 by jona@jona-trustedbsd-belle-vm on 2009/06/12 11:31:15 Sending messages and FDs now works, unless we're in capability mode - problem with the cap stuff in the kernel?) Affected files ... .. //depot/projects/trustedbsd/capabilities/src/tools/cap/user_angel/fdtest.c#2 edit .. //depot/projects/trustedbsd/capabilities/src/tools/cap/user_angel/protocol.c#5 edit .. //depot/projects/trustedbsd/capabilities/src/tools/cap/user_angel/protocol.h#5 edit Differences ... ==== //depot/projects/trustedbsd/capabilities/src/tools/cap/user_angel/fdtest.c#2 (text+ko) ==== @@ -25,53 +25,53 @@ else printf("Sockets: { %i, %i }\n", sockets[0], sockets[1]); + int32_t disableSIGPIPE = 1; + if(setsockopt(sockets[0], SOL_SOCKET, SO_NOSIGPIPE, &disableSIGPIPE, 4)) + err(EX_IOERR, "Error in setsockopt()"); + + if(setsockopt(sockets[1], SOL_SOCKET, SO_NOSIGPIPE, &disableSIGPIPE, 4)) + err(EX_IOERR, "Error in setsockopt()"); + int procdesc = -1; - pid_t child = fork();//pdfork(&procdesc); + pid_t child = pdfork(&procdesc); printf("Child PID: %i, proc: %i\n", child, procdesc); + + int fds[2]; + int fdlen = 0; + char *message; + if (child < 0) err(EX_SOFTWARE, "Error in pdfork()"); else if(child == 0) { close(sockets[1]); sock = sockets[0]; - printf("Child: keeping socket %i\n", sock); - int32_t disable = 1; - if(setsockopt(sock, SOL_SOCKET, SO_NOSIGPIPE, &disable, 4)) - err(EX_IOERR, "Error in setsockopt()"); - - int fds[2]; fds[0] = open("/etc/passwd", O_RDONLY); if(fds[0] < 0) err(EX_IOERR, "Error opening file descriptor"); fds[1] = open("/etc/group", O_RDONLY); if(fds[1] < 0) err(EX_IOERR, "Error opening file descriptor"); - - struct cap_wire_datum *d = cap_marshall_string("hello, ", 7); - if(cap_send_fd(sock, "foo", d, fds, 2) < 0) - err(EX_IOERR, "Error sending data/FD"); + fdlen = 2; + message = "hello, "; } else { - sleep(120); - exit(0); - close(sockets[0]); sock = sockets[1]; - printf("Parent: keeping socket %i\n", sock); - - int fd = open("/etc/rc.conf", O_RDONLY); - if(fd < 0) + fds[0] = open("/etc/rc.conf", O_RDONLY); + if(fds[0] < 0) err(EX_IOERR, "Error opening file descriptor"); - struct cap_wire_datum *d = cap_marshall_string("world!", 6); - if(cap_send_fd(sock, "bar", d, &fd, 1) < 0) - err(EX_IOERR, "Error sending data/FD"); + fdlen = 1; + message = "world!"; } -/* + + sock = cap_new(sock, CAP_MASK_VALID); + // enter capability mode if(cap_enter()) err(EX_SOFTWARE, "Failed to enter capability mode"); else printf("Now operating in capability mode\n"); @@ -81,18 +81,29 @@ char *path = "/etc/passwd"; if(open(path, O_RDONLY) < 0) printf("Sandbox is working\n"); else fprintf(stderr, "Was able to open %s directly\n", path); -*/ + + + + struct cap_wire_datum *d = cap_marshall_string(message, 7); + if(cap_send_fd(sock, "message and FDs", d, fds, fdlen) < 0) + err(EX_IOERR, "Error sending data/FD"); + + free(d); - struct cap_wire_datum *d; int fd_array[10]; - int fdlen = 10; + fdlen = 10; char *name; if(cap_recv_fd(sock, &name, &d, fd_array, &fdlen) < 0) err(EX_IOERR, "Error receiving data/FD"); + printf("Received FDs: "); + for(int i = 0; i < fdlen; i++) printf("%i ", fd_array[i]); + printf("\n"); + + return 0; } ==== //depot/projects/trustedbsd/capabilities/src/tools/cap/user_angel/protocol.c#5 (text+ko) ==== @@ -75,12 +75,9 @@ -#include // TODO: temporary int cap_send_fd(int sock, const char *name, struct cap_wire_datum *d, int32_t fd_array[], int32_t fdlen) { - printf("Sending datum + %i FD(s) over socket %i\n", fdlen, sock); - // the datum is the I/O vector struct iovec iov; iov.iov_base = d; @@ -95,7 +92,8 @@ anc_hdr->cmsg_len = cmsghdrlen; anc_hdr->cmsg_level = SOL_SOCKET; anc_hdr->cmsg_type = SCM_RIGHTS; - memcpy(anc_hdr + sizeof(struct cmsghdr), fd_array, fdlen * sizeof(int32_t)); + memcpy(((void*) anc_hdr) + sizeof(struct cmsghdr), fd_array, + fdlen * sizeof(int32_t)); // sendmsg header @@ -109,15 +107,15 @@ header.msg_flags = 0; + // send! int bytes_sent = sendmsg(sock, &header, 0); -// int bytes_sent = send(sock, d, sizeof(struct cap_wire_datum), 0); if(bytes_sent < 0) { perror("Error sending data and file descriptor(s)"); - sleep(200); return -1; } + free(anc_hdr); return bytes_sent; } @@ -127,14 +125,17 @@ int cap_recv_fd(int sock, char **name, struct cap_wire_datum **d, int32_t *fd_array, int32_t *fdlen) { - printf("cap_recv_fd(%i, char**, datum**, int[], %i)\n", sock, *fdlen); - // how much data is there to receive? struct cap_wire_datum peek; - printf("Peek at first %iB...\n", sizeof(struct cap_wire_datum)); int bytes = recv(sock, &peek, sizeof(struct cap_wire_datum), MSG_PEEK); + if(bytes < 0) + { + perror("Error peeking at socket"); + return -1; + } + int to_receive = sizeof(struct cap_wire_datum) + peek.length; - printf("Total to receive: %iB\n", to_receive); + // make room for it *d = (struct cap_wire_datum*) malloc(to_receive); @@ -142,6 +143,7 @@ iov.iov_base = d; iov.iov_len = to_receive; + // prepare to receive file descriptor(s) int size = sizeof(struct cmsghdr) + *fdlen; struct cmsghdr *anc_hdr = (struct cmsghdr*) malloc(size); @@ -174,17 +176,14 @@ return -1; } - size = sizeof(struct cmsghdr) + *fdlen * sizeof(int32_t); - printf("Received %iB cmsghdr\n", anc_hdr->cmsg_len); int recv_fdlen = (anc_hdr->cmsg_len - sizeof(struct cmsghdr)) / sizeof(int32_t); - printf("Received %i FDs (room for %i)\n", recv_fdlen, *fdlen); if(recv_fdlen < *fdlen) *fdlen = recv_fdlen; - int32_t* recv_fd_array = (int32_t*) anc_hdr + sizeof(anc_hdr); - memcpy(fd_array, recv_fd_array, *fdlen * sizeof(int32_t)); + memcpy(fd_array, ((void*) anc_hdr) + sizeof(struct cmsghdr), + *fdlen * sizeof(int32_t)); return 0; } ==== //depot/projects/trustedbsd/capabilities/src/tools/cap/user_angel/protocol.h#5 (text+ko) ==== From owner-p4-projects@FreeBSD.ORG Fri Jun 12 11:34:06 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 03BB41065672; Fri, 12 Jun 2009 11:34:06 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id ADB46106566C for ; Fri, 12 Jun 2009 11:34:05 +0000 (UTC) (envelope-from jona@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 817788FC12 for ; Fri, 12 Jun 2009 11:34:05 +0000 (UTC) (envelope-from jona@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n5CBY5SR052978 for ; Fri, 12 Jun 2009 11:34:05 GMT (envelope-from jona@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n5CBY5ie052976 for perforce@freebsd.org; Fri, 12 Jun 2009 11:34:05 GMT (envelope-from jona@FreeBSD.org) Date: Fri, 12 Jun 2009 11:34:05 GMT Message-Id: <200906121134.n5CBY5ie052976@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to jona@FreeBSD.org using -f From: Jonathan Anderson To: Perforce Change Reviews Cc: Subject: PERFORCE change 164167 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 12 Jun 2009 11:34:07 -0000 http://perforce.freebsd.org/chv.cgi?CH=164167 Change 164167 by jona@jona-trustedbsd-belle-vm on 2009/06/12 11:33:05 Address must be NULL Affected files ... .. //depot/projects/trustedbsd/capabilities/src/tools/cap/user_angel/protocol.c#6 edit Differences ... ==== //depot/projects/trustedbsd/capabilities/src/tools/cap/user_angel/protocol.c#6 (text+ko) ==== @@ -98,8 +98,8 @@ // sendmsg header struct msghdr header; - header.msg_name = (void*) name; - header.msg_namelen = strlen(name); + header.msg_name = NULL; + header.msg_namelen = 0; header.msg_iov = &iov; header.msg_iovlen = 1; header.msg_control = anc_hdr; From owner-p4-projects@FreeBSD.ORG Fri Jun 12 12:03:47 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id CFD8A10656A6; Fri, 12 Jun 2009 12:03:39 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 67AFA10658B7 for ; Fri, 12 Jun 2009 12:03:38 +0000 (UTC) (envelope-from pgj@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 7D3568FC5A for ; Fri, 12 Jun 2009 12:03:35 +0000 (UTC) (envelope-from pgj@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n5CC3ZZo056073 for ; Fri, 12 Jun 2009 12:03:35 GMT (envelope-from pgj@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n5CC3ZRj056071 for perforce@freebsd.org; Fri, 12 Jun 2009 12:03:35 GMT (envelope-from pgj@FreeBSD.org) Date: Fri, 12 Jun 2009 12:03:35 GMT Message-Id: <200906121203.n5CC3ZRj056071@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to pgj@FreeBSD.org using -f From: Gabor Pali To: Perforce Change Reviews Cc: Subject: PERFORCE change 164169 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 12 Jun 2009 12:04:02 -0000 http://perforce.freebsd.org/chv.cgi?CH=164169 Change 164169 by pgj@petymeg-current on 2009/06/12 12:02:52 - Improve inetpr() - Move inet-related nlist members from netstat to libnetstat Affected files ... .. //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat.c#22 edit .. //depot/projects/soc2009/pgj_libstat/src/usr.bin/netstat/extern.h#4 edit .. //depot/projects/soc2009/pgj_libstat/src/usr.bin/netstat/inet.c#12 edit .. //depot/projects/soc2009/pgj_libstat/src/usr.bin/netstat/main.c#7 edit Differences ... ==== //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat.c#22 (text+ko) ==== @@ -376,12 +376,24 @@ { kvm_t *kvm; int use_kvm; + struct nlist *nlp = NULL; use_kvm = flags & NETSTAT_SOCKET_KVM; if (use_kvm) { /* Use KVM to retrieve data. */ + switch (domain) { + case PF_LOCAL: + nlp = &nl[X_UNP_COUNT]; + break; + case PF_INET: + case PF_INET6: + nlp = &nl[X_TCBINFO]; + break; + default: + break; + } kvm = (kvm_t *)kvm_handle; - if (kvm_nlist(kvm, nl) < 0) { + if (kvm_nlist(kvm, nlp) < 0) { list->stl_error = NETSTAT_ERROR_KVM; return (-1); } ==== //depot/projects/soc2009/pgj_libstat/src/usr.bin/netstat/extern.h#4 (text+ko) ==== @@ -68,7 +68,7 @@ const char *pluralies(uintmax_t); int sotoxsocket(struct socket *, struct xsocket *); -void inetpr(void *, int); +void inetpr(void *, int, int); void tcp_stats(u_long, const char *, int, int); void udp_stats(u_long, const char *, int, int); #ifdef SCTP ==== //depot/projects/soc2009/pgj_libstat/src/usr.bin/netstat/inet.c#12 (text+ko) ==== @@ -104,7 +104,7 @@ * -a (all) flag is specified. */ void -inetpr(void *kvmd, int proto) +inetpr(void *kvmd, int family, int proto) { struct socket_type_list *stlp; int error, st_flags; @@ -127,7 +127,7 @@ if (aflag) st_flags |= NETSTAT_SOCKET_ALL; - if (netstat_socket(PF_INET, 0, proto, stlp, st_flags, kvm) < 0) { + if (netstat_socket(family, 0, proto, stlp, st_flags, kvm) < 0) { error = netstat_stl_geterror(stlp); if (error == NETSTAT_ERROR_KVM) warnx("netstat_socket: %s", kvm_geterr(kvm)); ==== //depot/projects/soc2009/pgj_libstat/src/usr.bin/netstat/main.c#7 (text+ko) ==== @@ -162,19 +162,11 @@ { .n_name = "_igmpstat" }, #define N_PIMSTAT 43 { .n_name = "_pimstat" }, -#define N_TCBINFO 44 - { .n_name = "_tcbinfo" }, -#define N_UDBINFO 45 - { .n_name = "_udbinfo" }, -#define N_DIVCBINFO 46 - { .n_name = "_divcbinfo" }, -#define N_RIPCBINFO 47 - { .n_name = "_ripcbinfo" }, -#define N_RIP6STAT 48 +#define N_RIP6STAT 44 { .n_name = "_rip6stat" }, -#define N_SCTPSTAT 49 +#define N_SCTPSTAT 45 { .n_name = "_sctpstat" }, -#define N_MFCTABLESIZE 50 +#define N_MFCTABLESIZE 46 { .n_name = "_mfctablesize" }, { .n_name = NULL }, }; @@ -192,21 +184,21 @@ int pr_usesysctl; /* non-zero if we use sysctl, not kvm */ int pr_protocol; } protox[] = { - { N_TCBINFO, N_TCPSTAT, 1, NULL, + { 0, N_TCPSTAT, 1, NULL, tcp_stats, NULL, "tcp", 1, IPPROTO_TCP }, - { N_UDBINFO, N_UDPSTAT, 1, NULL, + { 0, N_UDPSTAT, 1, NULL, udp_stats, NULL, "udp", 1, IPPROTO_UDP }, #ifdef SCTP { -1, N_SCTPSTAT, 1, sctp_protopr, sctp_stats, NULL, "sctp", 1, IPPROTO_SCTP }, #endif - { N_DIVCBINFO, -1, 1, NULL, + { 0, -1, 1, NULL, NULL, NULL, "divert", 1, IPPROTO_DIVERT }, - { N_RIPCBINFO, N_IPSTAT, 1, NULL, + { 0, N_IPSTAT, 1, NULL, ip_stats, NULL, "ip", 1, IPPROTO_RAW }, - { N_RIPCBINFO, N_ICMPSTAT, 1, NULL, + { 0, N_ICMPSTAT, 1, NULL, icmp_stats, NULL, "icmp", 1, IPPROTO_ICMP }, - { N_RIPCBINFO, N_IGMPSTAT, 1, NULL, + { 0, N_IGMPSTAT, 1, NULL, igmp_stats, NULL, "igmp", 1, IPPROTO_IGMP }, #ifdef IPSEC { -1, N_IPSECSTAT, 1, NULL, /* keep as compat */ @@ -218,7 +210,7 @@ { -1, N_IPCOMPSTAT, 1, NULL, ipcomp_stats, NULL, "ipcomp", 0, 0}, #endif - { N_RIPCBINFO, N_PIMSTAT, 1, NULL, + { 0, N_PIMSTAT, 1, NULL, pim_stats, NULL, "pim", 1, IPPROTO_PIM }, { -1, N_CARPSTAT, 1, NULL, carp_stats, NULL, "carp", 1, 0 }, @@ -230,13 +222,13 @@ #ifdef INET6 struct protox ip6protox[] = { - { N_TCBINFO, N_TCPSTAT, 1, NULL, + { 0, N_TCPSTAT, 1, NULL, tcp_stats, NULL, "tcp", 1, IPPROTO_TCP }, - { N_UDBINFO, N_UDPSTAT, 1, NULL, + { 0, N_UDPSTAT, 1, NULL, udp_stats, NULL, "udp", 1, IPPROTO_UDP }, - { N_RIPCBINFO, N_IP6STAT, 1, NULL, + { 0, N_IP6STAT, 1, NULL, ip6_stats, ip6_ifstats, "ip6", 1, IPPROTO_RAW }, - { N_RIPCBINFO, N_ICMP6STAT, 1, NULL, + { 0, N_ICMP6STAT, 1, NULL, icmp6_stats, icmp6_ifstats, "icmp6", 1, IPPROTO_ICMPV6 }, #ifdef IPSEC { -1, N_IPSEC6STAT, 1, NULL, @@ -658,7 +650,7 @@ case IPPROTO_IGMP: case IPPROTO_PIM: case IPPROTO_ICMPV6: - inetpr(kvmd, tp->pr_protocol); + inetpr(kvmd, af, tp->pr_protocol); break; default: if (pr != NULL) From owner-p4-projects@FreeBSD.ORG Fri Jun 12 13:46:20 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 46DAA1065707; Fri, 12 Jun 2009 13:46:20 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id F3F031065705 for ; Fri, 12 Jun 2009 13:46:19 +0000 (UTC) (envelope-from jhb@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id DF9AB8FC27 for ; Fri, 12 Jun 2009 13:46:19 +0000 (UTC) (envelope-from jhb@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n5CDkJWJ075010 for ; Fri, 12 Jun 2009 13:46:19 GMT (envelope-from jhb@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n5CDkJFZ075008 for perforce@freebsd.org; Fri, 12 Jun 2009 13:46:19 GMT (envelope-from jhb@freebsd.org) Date: Fri, 12 Jun 2009 13:46:19 GMT Message-Id: <200906121346.n5CDkJFZ075008@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to jhb@freebsd.org using -f From: John Baldwin To: Perforce Change Reviews Cc: Subject: PERFORCE change 164170 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 12 Jun 2009 13:46:21 -0000 http://perforce.freebsd.org/chv.cgi?CH=164170 Change 164170 by jhb@jhb_jhbbsd on 2009/06/12 13:45:50 IFC @164168 Affected files ... .. //depot/projects/smpng/share/man/man9/Makefile#5 integrate .. //depot/projects/smpng/share/man/man9/devclass_add_driver.9#2 delete .. //depot/projects/smpng/sys/amd64/conf/DEFAULTS#14 integrate .. //depot/projects/smpng/sys/amd64/conf/GENERIC#79 integrate .. //depot/projects/smpng/sys/arm/arm/intr.c#22 integrate .. //depot/projects/smpng/sys/arm/arm/locore.S#20 integrate .. //depot/projects/smpng/sys/arm/at91/at91.c#20 integrate .. //depot/projects/smpng/sys/arm/at91/at91_cfata.c#3 integrate .. //depot/projects/smpng/sys/arm/at91/at91_mci.c#13 integrate .. //depot/projects/smpng/sys/arm/at91/at91_twi.c#14 integrate .. //depot/projects/smpng/sys/arm/at91/if_ate.c#22 integrate .. //depot/projects/smpng/sys/arm/include/intr.h#12 integrate .. //depot/projects/smpng/sys/arm/mv/ic.c#3 integrate .. //depot/projects/smpng/sys/arm/mv/twsi.c#2 integrate .. //depot/projects/smpng/sys/arm/sa11x0/sa11x0_irqhandler.c#7 integrate .. //depot/projects/smpng/sys/arm/xscale/i80321/i80321.c#8 integrate .. //depot/projects/smpng/sys/arm/xscale/i80321/i80321_pci.c#12 integrate .. //depot/projects/smpng/sys/arm/xscale/i8134x/i81342.c#2 integrate .. //depot/projects/smpng/sys/arm/xscale/ixp425/avila_ata.c#6 integrate .. //depot/projects/smpng/sys/arm/xscale/ixp425/avila_led.c#3 integrate .. //depot/projects/smpng/sys/arm/xscale/ixp425/cambria_led.c#2 integrate .. //depot/projects/smpng/sys/arm/xscale/ixp425/if_npe.c#13 integrate .. //depot/projects/smpng/sys/arm/xscale/ixp425/ixp425.c#11 integrate .. //depot/projects/smpng/sys/arm/xscale/ixp425/ixp425_iic.c#5 integrate .. //depot/projects/smpng/sys/arm/xscale/pxa/pxa_icu.c#2 integrate .. //depot/projects/smpng/sys/boot/forth/loader.conf#62 integrate .. //depot/projects/smpng/sys/cam/scsi/scsi_target.c#27 integrate .. //depot/projects/smpng/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/arc.c#6 integrate .. //depot/projects/smpng/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu.c#4 integrate .. //depot/projects/smpng/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_zfetch.c#4 integrate .. //depot/projects/smpng/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/dmu.h#3 integrate .. //depot/projects/smpng/sys/compat/freebsd32/freebsd32_proto.h#53 integrate .. //depot/projects/smpng/sys/compat/freebsd32/freebsd32_syscall.h#53 integrate .. //depot/projects/smpng/sys/compat/freebsd32/freebsd32_syscalls.c#53 integrate .. //depot/projects/smpng/sys/compat/freebsd32/freebsd32_sysent.c#54 integrate .. //depot/projects/smpng/sys/compat/freebsd32/syscalls.master#57 integrate .. //depot/projects/smpng/sys/conf/NOTES#171 integrate .. //depot/projects/smpng/sys/conf/files#243 integrate .. //depot/projects/smpng/sys/conf/options#170 integrate .. //depot/projects/smpng/sys/contrib/pf/net/if_pflog.c#18 integrate .. //depot/projects/smpng/sys/dev/acpica/Osd/OsdSchedule.c#35 integrate .. //depot/projects/smpng/sys/dev/acpica/acpivar.h#70 integrate .. //depot/projects/smpng/sys/dev/agp/agp_ali.c#2 integrate .. //depot/projects/smpng/sys/dev/agp/agp_amd.c#2 integrate .. //depot/projects/smpng/sys/dev/agp/agp_ati.c#2 integrate .. //depot/projects/smpng/sys/dev/agp/agp_nvidia.c#3 integrate .. //depot/projects/smpng/sys/dev/agp/agp_sis.c#2 integrate .. //depot/projects/smpng/sys/dev/alc/if_alc.c#1 branch .. //depot/projects/smpng/sys/dev/alc/if_alcreg.h#1 branch .. //depot/projects/smpng/sys/dev/alc/if_alcvar.h#1 branch .. //depot/projects/smpng/sys/dev/ata/chipsets/ata-acerlabs.c#4 integrate .. //depot/projects/smpng/sys/dev/cfi/cfi_core.c#5 integrate .. //depot/projects/smpng/sys/dev/cxgb/cxgb_main.c#22 integrate .. //depot/projects/smpng/sys/dev/cxgb/cxgb_multiq.c#8 integrate .. //depot/projects/smpng/sys/dev/cxgb/cxgb_sge.c#18 integrate .. //depot/projects/smpng/sys/dev/e1000/if_igb.c#8 integrate .. //depot/projects/smpng/sys/dev/eisa/eisaconf.c#13 integrate .. //depot/projects/smpng/sys/dev/fxp/if_fxp.c#91 integrate .. //depot/projects/smpng/sys/dev/if_ndis/if_ndis.c#60 integrate .. //depot/projects/smpng/sys/dev/ksyms/ksyms.c#3 integrate .. //depot/projects/smpng/sys/dev/mca/mca_bus.c#6 integrate .. //depot/projects/smpng/sys/dev/mge/if_mge.c#5 integrate .. //depot/projects/smpng/sys/dev/ncv/ncr53c500_pccard.c#22 integrate .. //depot/projects/smpng/sys/dev/nsp/nsp_pccard.c#17 integrate .. //depot/projects/smpng/sys/dev/ofw/ofw_standard.c#3 integrate .. //depot/projects/smpng/sys/dev/pcf/pcf.c#3 integrate .. //depot/projects/smpng/sys/dev/pcf/pcfvar.h#5 integrate .. //depot/projects/smpng/sys/dev/pdq/if_fpa.c#13 integrate .. //depot/projects/smpng/sys/dev/smc/if_smc.c#3 integrate .. //depot/projects/smpng/sys/dev/smc/if_smcvar.h#2 integrate .. //depot/projects/smpng/sys/dev/snc/if_snc.c#7 integrate .. //depot/projects/smpng/sys/dev/snc/if_sncvar.h#4 integrate .. //depot/projects/smpng/sys/dev/sound/midi/midi.c#18 integrate .. //depot/projects/smpng/sys/dev/sound/midi/mpu401.c#6 integrate .. //depot/projects/smpng/sys/dev/sound/pcm/channel.h#18 integrate .. //depot/projects/smpng/sys/dev/sound/pcm/mixer.h#11 integrate .. //depot/projects/smpng/sys/dev/sound/pcm/sound.h#37 integrate .. //depot/projects/smpng/sys/dev/spibus/spibus.c#4 integrate .. //depot/projects/smpng/sys/dev/stg/tmc18c30.h#2 integrate .. //depot/projects/smpng/sys/dev/stg/tmc18c30_subr.c#7 integrate .. //depot/projects/smpng/sys/dev/syscons/teken/teken_demo.c#3 integrate .. //depot/projects/smpng/sys/dev/syscons/teken/teken_stress.c#2 integrate .. //depot/projects/smpng/sys/dev/ubsec/ubsec.c#27 integrate .. //depot/projects/smpng/sys/dev/wb/if_wb.c#2 integrate .. //depot/projects/smpng/sys/dev/wi/if_wi.c#94 integrate .. //depot/projects/smpng/sys/dev/wi/if_wivar.h#30 integrate .. //depot/projects/smpng/sys/fs/cd9660/cd9660_vnops.c#7 integrate .. //depot/projects/smpng/sys/fs/devfs/devfs_vnops.c#82 integrate .. //depot/projects/smpng/sys/fs/fifofs/fifo_vnops.c#51 integrate .. //depot/projects/smpng/sys/fs/msdosfs/msdosfs_vnops.c#49 integrate .. //depot/projects/smpng/sys/fs/nfsclient/nfs_clbio.c#5 integrate .. //depot/projects/smpng/sys/fs/nfsclient/nfs_clvnops.c#5 integrate .. //depot/projects/smpng/sys/fs/pseudofs/pseudofs_vnops.c#59 integrate .. //depot/projects/smpng/sys/geom/geom.h#55 integrate .. //depot/projects/smpng/sys/geom/geom_io.c#50 integrate .. //depot/projects/smpng/sys/gnu/fs/xfs/FreeBSD/xfs_vnops.c#10 integrate .. //depot/projects/smpng/sys/i386/acpica/acpi_machdep.c#33 integrate .. //depot/projects/smpng/sys/i386/conf/DEFAULTS#16 integrate .. //depot/projects/smpng/sys/i386/conf/GENERIC#110 integrate .. //depot/projects/smpng/sys/i386/include/legacyvar.h#7 integrate .. //depot/projects/smpng/sys/i386/pci/pci_bus.c#35 integrate .. //depot/projects/smpng/sys/kern/init_main.c#80 integrate .. //depot/projects/smpng/sys/kern/kern_event.c#58 integrate .. //depot/projects/smpng/sys/kern/kern_fork.c#121 integrate .. //depot/projects/smpng/sys/kern/kern_jail.c#71 integrate .. //depot/projects/smpng/sys/kern/kern_lockf.c#28 integrate .. //depot/projects/smpng/sys/kern/link_elf_obj.c#25 integrate .. //depot/projects/smpng/sys/kern/linker_if.m#8 integrate .. //depot/projects/smpng/sys/kern/subr_acl_nfs4.c#1 branch .. //depot/projects/smpng/sys/kern/subr_bus.c#81 integrate .. //depot/projects/smpng/sys/kern/sys_pipe.c#65 integrate .. //depot/projects/smpng/sys/kern/sysv_shm.c#44 integrate .. //depot/projects/smpng/sys/kern/tty.c#93 integrate .. //depot/projects/smpng/sys/kern/tty_pts.c#19 integrate .. //depot/projects/smpng/sys/kern/uipc_mqueue.c#22 integrate .. //depot/projects/smpng/sys/kern/uipc_socket.c#125 integrate .. //depot/projects/smpng/sys/kern/uipc_syscalls.c#119 integrate .. //depot/projects/smpng/sys/kern/vfs_aio.c#86 integrate .. //depot/projects/smpng/sys/kern/vfs_subr.c#169 integrate .. //depot/projects/smpng/sys/kern/vnode_if.src#44 integrate .. //depot/projects/smpng/sys/libkern/jenkins.h#1 branch .. //depot/projects/smpng/sys/modules/Makefile#163 integrate .. //depot/projects/smpng/sys/modules/alc/Makefile#1 branch .. //depot/projects/smpng/sys/modules/sound/sound/Makefile#10 integrate .. //depot/projects/smpng/sys/net/bpf.c#87 integrate .. //depot/projects/smpng/sys/net/flowtable.c#3 integrate .. //depot/projects/smpng/sys/net/flowtable.h#3 integrate .. //depot/projects/smpng/sys/net/if.c#121 integrate .. //depot/projects/smpng/sys/net/if_arcsubr.c#27 integrate .. //depot/projects/smpng/sys/net/if_bridge.c#59 integrate .. //depot/projects/smpng/sys/net/if_ethersubr.c#99 integrate .. //depot/projects/smpng/sys/net/if_fddisubr.c#37 integrate .. //depot/projects/smpng/sys/net/if_fwsubr.c#24 integrate .. //depot/projects/smpng/sys/net/if_gif.c#52 integrate .. //depot/projects/smpng/sys/net/if_iso88025subr.c#35 integrate .. //depot/projects/smpng/sys/net/if_tap.c#51 integrate .. //depot/projects/smpng/sys/net/if_tun.c#61 integrate .. //depot/projects/smpng/sys/net/if_var.h#65 integrate .. //depot/projects/smpng/sys/net/rtsock.c#74 integrate .. //depot/projects/smpng/sys/net80211/_ieee80211.h#16 integrate .. //depot/projects/smpng/sys/net80211/ieee80211.c#42 integrate .. //depot/projects/smpng/sys/net80211/ieee80211.h#23 integrate .. //depot/projects/smpng/sys/net80211/ieee80211_crypto_ccmp.c#11 integrate .. //depot/projects/smpng/sys/net80211/ieee80211_dfs.c#5 integrate .. //depot/projects/smpng/sys/net80211/ieee80211_ht.c#12 integrate .. //depot/projects/smpng/sys/net80211/ieee80211_ioctl.c#48 integrate .. //depot/projects/smpng/sys/net80211/ieee80211_node.c#50 integrate .. //depot/projects/smpng/sys/net80211/ieee80211_node.h#31 integrate .. //depot/projects/smpng/sys/net80211/ieee80211_proto.h#27 integrate .. //depot/projects/smpng/sys/net80211/ieee80211_sta.c#11 integrate .. //depot/projects/smpng/sys/netgraph/netgraph.h#38 integrate .. //depot/projects/smpng/sys/netgraph/ng_base.c#66 integrate .. //depot/projects/smpng/sys/netgraph/ng_eiface.c#34 integrate .. //depot/projects/smpng/sys/netgraph/ng_ether.c#42 integrate .. //depot/projects/smpng/sys/netgraph/ng_iface.c#36 integrate .. //depot/projects/smpng/sys/netgraph/ng_ip_input.c#6 integrate .. //depot/projects/smpng/sys/netgraph/ng_ipfw.c#7 integrate .. //depot/projects/smpng/sys/netgraph/ng_ipfw.h#3 integrate .. //depot/projects/smpng/sys/netinet/igmp.h#8 integrate .. //depot/projects/smpng/sys/netinet/ip_dummynet.h#26 integrate .. //depot/projects/smpng/sys/netinet/ip_fw.h#50 integrate .. //depot/projects/smpng/sys/netinet/ipfw/ip_dummynet.c#2 integrate .. //depot/projects/smpng/sys/netinet/ipfw/ip_fw2.c#2 integrate .. //depot/projects/smpng/sys/netinet/ipfw/ip_fw_pfil.c#2 integrate .. //depot/projects/smpng/sys/netinet/tcp_debug.c#11 integrate .. //depot/projects/smpng/sys/netinet/tcp_input.c#127 integrate .. //depot/projects/smpng/sys/netinet/tcp_usrreq.c#78 integrate .. //depot/projects/smpng/sys/netinet/tcp_var.h#69 integrate .. //depot/projects/smpng/sys/netinet6/in6.c#57 integrate .. //depot/projects/smpng/sys/netinet6/mld6.c#31 integrate .. //depot/projects/smpng/sys/netipsec/ipsec.c#37 integrate .. //depot/projects/smpng/sys/netipsec/ipsec_input.c#20 integrate .. //depot/projects/smpng/sys/netipsec/xform_ipip.c#23 integrate .. //depot/projects/smpng/sys/netipx/spx_debug.c#7 integrate .. //depot/projects/smpng/sys/nfsclient/nfs_bio.c#59 integrate .. //depot/projects/smpng/sys/powerpc/aim/machdep.c#15 integrate .. //depot/projects/smpng/sys/powerpc/aim/platform_chrp.c#2 integrate .. //depot/projects/smpng/sys/powerpc/ofw/ofw_real.c#2 integrate .. //depot/projects/smpng/sys/powerpc/powermac/cuda.c#4 integrate .. //depot/projects/smpng/sys/powerpc/powermac/pmu.c#4 integrate .. //depot/projects/smpng/sys/powerpc/powerpc/openpic.c#16 integrate .. //depot/projects/smpng/sys/powerpc/psim/ata_iobus.c#13 integrate .. //depot/projects/smpng/sys/rpc/clnt_rc.c#6 integrate .. //depot/projects/smpng/sys/security/audit/audit_pipe.c#17 integrate .. //depot/projects/smpng/sys/sys/bio.h#29 integrate .. //depot/projects/smpng/sys/sys/buf_ring.h#4 integrate .. //depot/projects/smpng/sys/sys/bus.h#34 integrate .. //depot/projects/smpng/sys/sys/event.h#25 integrate .. //depot/projects/smpng/sys/sys/kobj.h#9 integrate .. //depot/projects/smpng/sys/sys/proc.h#199 integrate .. //depot/projects/smpng/sys/sys/soundcard.h#16 integrate .. //depot/projects/smpng/sys/sys/vimage.h#14 integrate .. //depot/projects/smpng/sys/tools/emu10k1-mkalsa.sh#2 delete .. //depot/projects/smpng/sys/tools/feeder_eq_mkfilter.awk#2 delete .. //depot/projects/smpng/sys/tools/feeder_rate_mkfilter.awk#2 delete .. //depot/projects/smpng/sys/tools/snd_fxdiv_gen.awk#2 delete .. //depot/projects/smpng/sys/tools/sound/emu10k1-mkalsa.sh#1 branch .. //depot/projects/smpng/sys/tools/sound/feeder_eq_mkfilter.awk#1 branch .. //depot/projects/smpng/sys/tools/sound/feeder_rate_mkfilter.awk#1 branch .. //depot/projects/smpng/sys/tools/sound/snd_fxdiv_gen.awk#1 branch .. //depot/projects/smpng/sys/vm/vm_contig.c#48 integrate .. //depot/projects/smpng/sys/vm/vm_map.c#98 integrate Differences ... ==== //depot/projects/smpng/share/man/man9/Makefile#5 (text+ko) ==== @@ -1,4 +1,4 @@ -# $FreeBSD: src/share/man/man9/Makefile,v 1.354 2009/06/09 14:26:23 jhb Exp $ +# $FreeBSD: src/share/man/man9/Makefile,v 1.355 2009/06/09 23:38:19 imp Exp $ MAN= accept_filter.9 \ accf_data.9 \ @@ -57,7 +57,6 @@ DECLARE_MODULE.9 \ DELAY.9 \ devclass.9 \ - devclass_add_driver.9 \ devclass_find.9 \ devclass_get_device.9 \ devclass_get_devices.9 \ @@ -555,8 +554,6 @@ crypto.9 crypto_unregister_all.9 MLINKS+=DB_COMMAND.9 DB_SHOW_COMMAND.9 \ DB_COMMAND.9 DB_SHOW_ALL_COMMAND.9 -MLINKS+=devclass_add_driver.9 devclass_delete_driver.9 \ - devclass_add_driver.9 devclass_find_driver.9 MLINKS+=dev_clone.9 drain_dev_clone_events.9 MLINKS+=devfs_set_cdevpriv.9 devfs_get_cdevpriv.9 \ devfs_set_cdevpriv.9 devfs_clear_cdevpriv.9 ==== //depot/projects/smpng/sys/amd64/conf/DEFAULTS#14 (text+ko) ==== @@ -1,7 +1,7 @@ # # DEFAULTS -- Default kernel configuration file for FreeBSD/amd64 # -# $FreeBSD: src/sys/amd64/conf/DEFAULTS,v 1.18 2009/05/10 00:00:25 kuriyama Exp $ +# $FreeBSD: src/sys/amd64/conf/DEFAULTS,v 1.19 2009/06/09 20:26:52 kmacy Exp $ machine amd64 @@ -21,4 +21,3 @@ options GEOM_PART_EBR_COMPAT options GEOM_PART_MBR -options FLOWTABLE ==== //depot/projects/smpng/sys/amd64/conf/GENERIC#79 (text+ko) ==== @@ -16,7 +16,7 @@ # If you are in doubt as to the purpose or necessity of a line, check first # in NOTES. # -# $FreeBSD: src/sys/amd64/conf/GENERIC,v 1.526 2009/06/02 18:31:08 rwatson Exp $ +# $FreeBSD: src/sys/amd64/conf/GENERIC,v 1.528 2009/06/10 02:07:58 yongari Exp $ cpu HAMMER ident GENERIC @@ -71,6 +71,7 @@ options HWPMC_HOOKS # Necessary kernel hooks for hwpmc(4) options AUDIT # Security event auditing options MAC # TrustedBSD MAC Framework +options FLOWTABLE # per-cpu routing cache #options KDTRACE_FRAME # Ensure frames are compiled in #options KDTRACE_HOOKS # Kernel DTrace hooks @@ -212,6 +213,7 @@ device miibus # MII bus support device ae # Attansic/Atheros L2 FastEthernet device age # Attansic/Atheros L1 Gigabit Ethernet +device alc # Atheros AR8131/AR8132 Ethernet device ale # Atheros AR8121/AR8113/AR8114 Ethernet device bce # Broadcom BCM5706/BCM5708 Gigabit Ethernet device bfe # Broadcom BCM440x 10/100 Ethernet ==== //depot/projects/smpng/sys/arm/arm/intr.c#22 (text+ko) ==== @@ -37,7 +37,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/arm/arm/intr.c,v 1.24 2008/09/11 12:36:13 raj Exp $"); +__FBSDID("$FreeBSD: src/sys/arm/arm/intr.c,v 1.25 2009/06/09 18:18:41 marcel Exp $"); #include #include #include @@ -120,7 +120,8 @@ int i; PCPU_INC(cnt.v_intr); - while ((i = arm_get_next_irq()) != -1) { + i = -1; + while ((i = arm_get_next_irq(i)) != -1) { intrcnt[intrcnt_tab[i]]++; event = intr_events[i]; if (intr_event_handle(event, frame) != 0) { ==== //depot/projects/smpng/sys/arm/arm/locore.S#20 (text+ko) ==== @@ -37,7 +37,7 @@ #include #include #include -__FBSDID("$FreeBSD: src/sys/arm/arm/locore.S,v 1.22 2009/03/31 23:06:20 cognet Exp $"); +__FBSDID("$FreeBSD: src/sys/arm/arm/locore.S,v 1.23 2009/06/09 17:21:47 marcel Exp $"); /* What size should this really be ? It is only used by initarm() */ #define INIT_ARM_STACK_SIZE 2048 @@ -73,6 +73,11 @@ mov ip, r0 + /* Make sure interrupts are disabled. */ + mrs r7, cpsr + orr r7, r7, #(I32_bit|F32_bit) + msr cpsr_c, r7 + #if defined (FLASHADDR) && defined(LOADERRAMADDR) /* Check if we're running from flash. */ ldr r7, =FLASHADDR ==== //depot/projects/smpng/sys/arm/at91/at91.c#20 (text) ==== @@ -24,7 +24,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/arm/at91/at91.c,v 1.24 2009/05/15 04:49:20 imp Exp $"); +__FBSDID("$FreeBSD: src/sys/arm/at91/at91.c,v 1.25 2009/06/09 18:18:41 marcel Exp $"); #include #include @@ -702,9 +702,8 @@ } int -arm_get_next_irq() +arm_get_next_irq(int last __unused) { - int status; int irq; ==== //depot/projects/smpng/sys/arm/at91/at91_cfata.c#3 (text+ko) ==== @@ -32,7 +32,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/arm/at91/at91_cfata.c,v 1.3 2009/05/10 11:05:22 stas Exp $"); +__FBSDID("$FreeBSD: src/sys/arm/at91/at91_cfata.c,v 1.4 2009/06/10 17:39:19 imp Exp $"); #include #include @@ -94,7 +94,7 @@ /* XXX: init CF controller? */ callout_init(&sc->tick, 1); /* Callout to poll the device. */ - device_add_child(dev, "ata", devclass_find_free_unit(ata_devclass, 0)); + device_add_child(dev, "ata", -1); bus_generic_attach(dev); return (0); } ==== //depot/projects/smpng/sys/arm/at91/at91_mci.c#13 (text+ko) ==== @@ -25,7 +25,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/arm/at91/at91_mci.c,v 1.16 2009/01/23 00:51:25 imp Exp $"); +__FBSDID("$FreeBSD: src/sys/arm/at91/at91_mci.c,v 1.17 2009/06/11 17:05:13 avg Exp $"); #include #include @@ -612,7 +612,7 @@ } static int -at91_mci_read_ivar(device_t bus, device_t child, int which, u_char *result) +at91_mci_read_ivar(device_t bus, device_t child, int which, uintptr_t *result) { struct at91_mci_softc *sc = device_get_softc(bus); ==== //depot/projects/smpng/sys/arm/at91/at91_twi.c#14 (text) ==== @@ -24,7 +24,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/arm/at91/at91_twi.c,v 1.14 2009/01/22 21:55:37 imp Exp $"); +__FBSDID("$FreeBSD: src/sys/arm/at91/at91_twi.c,v 1.15 2009/06/11 17:05:13 avg Exp $"); #include #include @@ -289,7 +289,7 @@ } static int -at91_twi_callback(device_t dev, int index, caddr_t *data) +at91_twi_callback(device_t dev, int index, caddr_t data) { int error = 0; ==== //depot/projects/smpng/sys/arm/at91/if_ate.c#22 (text) ==== @@ -30,7 +30,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/arm/at91/if_ate.c,v 1.37 2009/05/13 21:01:10 stas Exp $"); +__FBSDID("$FreeBSD: src/sys/arm/at91/if_ate.c,v 1.38 2009/06/11 17:05:13 avg Exp $"); #include #include @@ -1190,7 +1190,7 @@ return (val); } -static void +static int ate_miibus_writereg(device_t dev, int phy, int reg, int data) { struct ate_softc *sc; @@ -1204,7 +1204,7 @@ WR4(sc, ETH_MAN, ETH_MAN_REG_WR(phy, reg, data)); while ((RD4(sc, ETH_SR) & ETH_SR_IDLE) == 0) continue; - return; + return (0); } static device_method_t ate_methods[] = { ==== //depot/projects/smpng/sys/arm/include/intr.h#12 (text+ko) ==== @@ -32,7 +32,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $FreeBSD: src/sys/arm/include/intr.h,v 1.12 2008/12/20 03:26:09 sam Exp $ + * $FreeBSD: src/sys/arm/include/intr.h,v 1.13 2009/06/09 18:18:41 marcel Exp $ * */ @@ -56,7 +56,7 @@ #include -int arm_get_next_irq(void); +int arm_get_next_irq(int); void arm_mask_irq(uintptr_t); void arm_unmask_irq(uintptr_t); void arm_setup_irqhandler(const char *, int (*)(void*), void (*)(void*), ==== //depot/projects/smpng/sys/arm/mv/ic.c#3 (text+ko) ==== @@ -29,7 +29,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/arm/mv/ic.c,v 1.2 2009/04/16 11:20:18 raj Exp $"); +__FBSDID("$FreeBSD: src/sys/arm/mv/ic.c,v 1.3 2009/06/09 18:18:41 marcel Exp $"); #include #include @@ -137,7 +137,7 @@ DRIVER_MODULE(ic, mbus, mv_ic_driver, mv_ic_devclass, 0, 0); int -arm_get_next_irq(void) +arm_get_next_irq(int last __unused) { int irq; ==== //depot/projects/smpng/sys/arm/mv/twsi.c#2 (text+ko) ==== @@ -38,7 +38,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/arm/mv/twsi.c,v 1.1 2008/10/13 20:07:13 raj Exp $"); +__FBSDID("$FreeBSD: src/sys/arm/mv/twsi.c,v 1.2 2009/06/11 17:05:13 avg Exp $"); #include #include @@ -117,7 +117,7 @@ static int mv_twsi_stop(device_t dev); static int mv_twsi_read(device_t dev, char *buf, int len, int *read, int last, int delay); -static int mv_twsi_write(device_t dev, char *buf, int len, int *sent, +static int mv_twsi_write(device_t dev, const char *buf, int len, int *sent, int timeout); static struct resource_spec res_spec[] = { @@ -488,7 +488,7 @@ } static int -mv_twsi_write(device_t dev, char *buf, int len, int *sent, int timeout) +mv_twsi_write(device_t dev, const char *buf, int len, int *sent, int timeout) { struct mv_twsi_softc *sc; uint32_t status; ==== //depot/projects/smpng/sys/arm/sa11x0/sa11x0_irqhandler.c#7 (text+ko) ==== @@ -76,7 +76,7 @@ #include -__FBSDID("$FreeBSD: src/sys/arm/sa11x0/sa11x0_irqhandler.c,v 1.6 2006/10/21 04:25:00 kevlo Exp $"); +__FBSDID("$FreeBSD: src/sys/arm/sa11x0/sa11x0_irqhandler.c,v 1.7 2009/06/09 18:18:41 marcel Exp $"); #include #include @@ -108,7 +108,7 @@ extern vm_offset_t saipic_base; int -arm_get_next_irq() +arm_get_next_irq(int last __unused) { int irq; ==== //depot/projects/smpng/sys/arm/xscale/i80321/i80321.c#8 (text+ko) ==== @@ -40,7 +40,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/arm/xscale/i80321/i80321.c,v 1.7 2007/09/04 18:45:27 cognet Exp $"); +__FBSDID("$FreeBSD: src/sys/arm/xscale/i80321/i80321.c,v 1.8 2009/06/09 18:18:41 marcel Exp $"); #include #include @@ -240,7 +240,7 @@ } int -arm_get_next_irq() +arm_get_next_irq(int last __unused) { int irq; ==== //depot/projects/smpng/sys/arm/xscale/i80321/i80321_pci.c#12 (text+ko) ==== @@ -40,7 +40,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/arm/xscale/i80321/i80321_pci.c,v 1.12 2007/09/30 11:05:13 marius Exp $"); +__FBSDID("$FreeBSD: src/sys/arm/xscale/i80321/i80321_pci.c,v 1.13 2009/06/11 17:05:13 avg Exp $"); #include #include @@ -174,8 +174,8 @@ } static u_int32_t -i80321_pci_read_config(device_t dev, int bus, int slot, int func, int reg, - int bytes) +i80321_pci_read_config(device_t dev, u_int bus, u_int slot, u_int func, + u_int reg, int bytes) { struct i80321_pci_softc *sc = device_get_softc(dev); uint32_t isr; @@ -215,8 +215,8 @@ } static void -i80321_pci_write_config(device_t dev, int bus, int slot, int func, int reg, - u_int32_t data, int bytes) +i80321_pci_write_config(device_t dev, u_int bus, u_int slot, u_int func, + u_int reg, u_int32_t data, int bytes) { struct i80321_pci_softc *sc = device_get_softc(dev); uint32_t addr; ==== //depot/projects/smpng/sys/arm/xscale/i8134x/i81342.c#2 (text+ko) ==== @@ -25,7 +25,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/arm/xscale/i8134x/i81342.c,v 1.2 2007/09/22 16:25:43 cognet Exp $"); +__FBSDID("$FreeBSD: src/sys/arm/xscale/i8134x/i81342.c,v 1.3 2009/06/09 18:18:41 marcel Exp $"); #include #include @@ -295,7 +295,7 @@ } int -arm_get_next_irq(void) +arm_get_next_irq(int last __unused) { uint32_t val; val = intpnd0_read() & intr_enabled0; ==== //depot/projects/smpng/sys/arm/xscale/ixp425/avila_ata.c#6 (text+ko) ==== @@ -28,7 +28,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/arm/xscale/ixp425/avila_ata.c,v 1.6 2008/12/20 03:26:09 sam Exp $"); +__FBSDID("$FreeBSD: src/sys/arm/xscale/ixp425/avila_ata.c,v 1.7 2009/06/12 00:07:09 imp Exp $"); /* * Compact Flash Support for the Avila Gateworks XScale boards. @@ -248,7 +248,7 @@ NULL, ata_avila_intr, sc, &sc->sc_ih); /* attach channel on this controller */ - device_add_child(dev, "ata", devclass_find_free_unit(ata_devclass, 0)); + device_add_child(dev, "ata", -1); bus_generic_attach(dev); return 0; ==== //depot/projects/smpng/sys/arm/xscale/ixp425/avila_led.c#3 (text+ko) ==== @@ -23,7 +23,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/arm/xscale/ixp425/avila_led.c,v 1.2 2008/12/20 03:26:09 sam Exp $"); +__FBSDID("$FreeBSD: src/sys/arm/xscale/ixp425/avila_led.c,v 1.3 2009/06/11 17:05:13 avg Exp $"); #include #include @@ -88,13 +88,14 @@ return (0); } -static void +static int led_avila_detach(device_t dev) { struct led_avila_softc *sc = device_get_softc(dev); if (sc->sc_led != NULL) led_destroy(sc->sc_led); + return (0); } static device_method_t led_avila_methods[] = { ==== //depot/projects/smpng/sys/arm/xscale/ixp425/cambria_led.c#2 (text+ko) ==== @@ -23,7 +23,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/arm/xscale/ixp425/cambria_led.c,v 1.1 2008/12/20 03:26:09 sam Exp $"); +__FBSDID("$FreeBSD: src/sys/arm/xscale/ixp425/cambria_led.c,v 1.2 2009/06/11 17:05:13 avg Exp $"); /* * Gateworks Cambria Octal LED Latch driver. @@ -102,7 +102,7 @@ return 0; } -static void +static int led_detach(device_t dev) { struct led_softc *sc = device_get_softc(dev); @@ -113,12 +113,13 @@ if (led != NULL) led_destroy(led); } + return (0); } static device_method_t led_methods[] = { DEVMETHOD(device_probe, led_probe), DEVMETHOD(device_attach, led_attach), - DEVMETHOD(device_attach, led_detach), + DEVMETHOD(device_detach, led_detach), {0, 0}, }; ==== //depot/projects/smpng/sys/arm/xscale/ixp425/if_npe.c#13 (text+ko) ==== @@ -23,7 +23,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/arm/xscale/ixp425/if_npe.c,v 1.17 2009/05/30 18:23:55 sam Exp $"); +__FBSDID("$FreeBSD: src/sys/arm/xscale/ixp425/if_npe.c,v 1.18 2009/06/11 17:05:13 avg Exp $"); /* * Intel XScale NPE Ethernet driver. @@ -1691,20 +1691,21 @@ return (v & NPE_MII_READ_FAIL) ? 0xffff : (v & 0xffff); } -static void +static int npe_miibus_writereg(device_t dev, int phy, int reg, int data) { struct npe_softc *sc = device_get_softc(dev); uint32_t v; if (phy != sc->sc_phy) /* XXX */ - return; + return (0); v = (phy << NPE_MII_ADDR_SHL) | (reg << NPE_MII_REG_SHL) | data | NPE_MII_WRITE | NPE_MII_GO; npe_mii_mdio_write(sc, NPE_MAC_MDIO_CMD, v); /* XXX complain about timeout */ (void) npe_mii_mdio_wait(sc); + return (0); } static void ==== //depot/projects/smpng/sys/arm/xscale/ixp425/ixp425.c#11 (text+ko) ==== @@ -34,7 +34,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/arm/xscale/ixp425/ixp425.c,v 1.17 2009/03/10 19:15:35 sam Exp $"); +__FBSDID("$FreeBSD: src/sys/arm/xscale/ixp425/ixp425.c,v 1.19 2009/06/11 17:05:13 avg Exp $"); #include "opt_ddb.h" @@ -202,7 +202,7 @@ } int -arm_get_next_irq(void) +arm_get_next_irq(int last __unused) { uint32_t irq; @@ -334,7 +334,7 @@ } static int -ixp425_read_ivar(device_t bus, device_t child, int which, u_char *result) +ixp425_read_ivar(device_t bus, device_t child, int which, uintptr_t *result) { struct ixp425_ivar *ivar = IXP425_IVAR(child); ==== //depot/projects/smpng/sys/arm/xscale/ixp425/ixp425_iic.c#5 (text+ko) ==== @@ -24,7 +24,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/arm/xscale/ixp425/ixp425_iic.c,v 1.4 2008/12/20 03:26:09 sam Exp $"); +__FBSDID("$FreeBSD: src/sys/arm/xscale/ixp425/ixp425_iic.c,v 1.5 2009/06/11 17:05:13 avg Exp $"); #include #include @@ -95,7 +95,7 @@ } static int -ixpiic_callback(device_t dev, int index, caddr_t *data) +ixpiic_callback(device_t dev, int index, caddr_t data) { return (0); } @@ -129,7 +129,7 @@ } static void -ixpiic_setsda(device_t dev, char val) +ixpiic_setsda(device_t dev, int val) { struct ixpiic_softc *sc = ixpiic_sc; @@ -144,7 +144,7 @@ } static void -ixpiic_setscl(device_t dev, char val) +ixpiic_setscl(device_t dev, int val) { struct ixpiic_softc *sc = ixpiic_sc; ==== //depot/projects/smpng/sys/arm/xscale/pxa/pxa_icu.c#2 (text+ko) ==== @@ -23,7 +23,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/arm/xscale/pxa/pxa_icu.c,v 1.1 2008/06/06 05:08:09 benno Exp $"); +__FBSDID("$FreeBSD: src/sys/arm/xscale/pxa/pxa_icu.c,v 1.2 2009/06/09 18:18:41 marcel Exp $"); #include #include @@ -128,7 +128,7 @@ DRIVER_MODULE(pxaicu, pxa, pxa_icu_driver, pxa_icu_devclass, 0, 0); int -arm_get_next_irq() +arm_get_next_irq(int last __unused) { int irq; ==== //depot/projects/smpng/sys/boot/forth/loader.conf#62 (text+ko) ==== @@ -6,7 +6,7 @@ # # All arguments must be in double quotes. # -# $FreeBSD: src/sys/boot/forth/loader.conf,v 1.140 2009/05/17 10:58:50 brueffer Exp $ +# $FreeBSD: src/sys/boot/forth/loader.conf,v 1.141 2009/06/10 02:07:58 yongari Exp $ ############################################################## ### Basic configuration options ############################ @@ -210,6 +210,7 @@ miibus_load="NO" # miibus support, needed for some drivers if_ae_load="NO" # Attansic/Atheros L2 FastEthernet if_age_load="NO" # Attansic/Atheros L1 Gigabit Ethernet +if_alc_load="NO" # Atheros AR8131/AR8132 Ethernet if_ale_load="NO" # Atheros AR8121/AR8113/AR8114 Ethernet if_an_load="NO" # Aironet 4500/4800 802.11 wireless NICs if_ar_load="NO" # Digi SYNC/570i ==== //depot/projects/smpng/sys/cam/scsi/scsi_target.c#27 (text+ko) ==== @@ -28,7 +28,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/cam/scsi/scsi_target.c,v 1.76 2008/10/23 15:53:51 des Exp $"); +__FBSDID("$FreeBSD: src/sys/cam/scsi/scsi_target.c,v 1.77 2009/06/10 20:59:32 kib Exp $"); #include @@ -194,7 +194,7 @@ TAILQ_INIT(&softc->work_queue); TAILQ_INIT(&softc->abort_queue); TAILQ_INIT(&softc->user_ccb_queue); - knlist_init(&softc->read_select.si_note, NULL, NULL, NULL, NULL); + knlist_init_mtx(&softc->read_select.si_note, NULL); return (0); } ==== //depot/projects/smpng/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/arc.c#6 (text+ko) ==== @@ -158,6 +158,7 @@ */ static int arc_min_prefetch_lifespan; +extern int zfs_prefetch_enable; static int arc_dead; /* @@ -3421,6 +3422,8 @@ void arc_init(void) { + int prefetch_tunable_set = 0; + mutex_init(&arc_reclaim_thr_lock, NULL, MUTEX_DEFAULT, NULL); cv_init(&arc_reclaim_thr_cv, NULL, CV_DEFAULT, NULL); mutex_init(&arc_lowmem_lock, NULL, MUTEX_DEFAULT, NULL); @@ -3549,6 +3552,23 @@ mutex_init(&zfs_write_limit_lock, NULL, MUTEX_DEFAULT, NULL); #ifdef _KERNEL + if (TUNABLE_INT_FETCH("vfs.zfs.prefetch_enable", &zfs_prefetch_enable)) + prefetch_tunable_set = 1; + +#ifdef __i386__ + if (prefetch_tunable_set == 0) { + printf("ZFS NOTICE: prefetch is disabled by default on i386" + " - add enable to tunable to change.\n" ); + zfs_prefetch_enable=0; + } +#else + if ((((uint64_t)physmem * PAGESIZE) < (1ULL << 32)) && + prefetch_tunable_set == 0) { + printf("ZFS NOTICE: system has less than 4GB and prefetch enable is not set" + "... disabling.\n"); + zfs_prefetch_enable=0; + } +#endif /* Warn about ZFS memory and address space requirements. */ if (((uint64_t)physmem * PAGESIZE) < (256 + 128 + 64) * (1 << 20)) { printf("ZFS WARNING: Recommended minimum RAM size is 512MB; " ==== //depot/projects/smpng/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu.c#4 (text+ko) ==== @@ -326,7 +326,7 @@ uint64_t blkid; int nblks, i, err; - if (zfs_prefetch_disable) + if (zfs_prefetch_enable == 0) return; if (len == 0) { /* they're interested in the bonus buffer */ ==== //depot/projects/smpng/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_zfetch.c#4 (text+ko) ==== @@ -37,7 +37,7 @@ * until we can get this working the way we want it to. */ -int zfs_prefetch_disable = 0; +int zfs_prefetch_enable = 1; /* max # of streams per zfetch */ uint32_t zfetch_max_streams = 8; @@ -49,9 +49,8 @@ uint64_t zfetch_array_rd_sz = 1024 * 1024; SYSCTL_DECL(_vfs_zfs); -TUNABLE_INT("vfs.zfs.prefetch_disable", &zfs_prefetch_disable); -SYSCTL_INT(_vfs_zfs, OID_AUTO, prefetch_disable, CTLFLAG_RDTUN, - &zfs_prefetch_disable, 0, "Disable prefetch"); +SYSCTL_INT(_vfs_zfs, OID_AUTO, prefetch_enable, CTLFLAG_RDTUN, + &zfs_prefetch_enable, 0, "Enable prefetch for systems with less than 4GB"); SYSCTL_NODE(_vfs_zfs, OID_AUTO, zfetch, CTLFLAG_RW, 0, "ZFS ZFETCH"); TUNABLE_INT("vfs.zfs.zfetch.max_streams", &zfetch_max_streams); SYSCTL_UINT(_vfs_zfs_zfetch, OID_AUTO, max_streams, CTLFLAG_RDTUN, @@ -599,7 +598,7 @@ unsigned int blkshft; uint64_t blksz; - if (zfs_prefetch_disable) + if (zfs_prefetch_enable == 0) return; /* files that aren't ln2 blocksz are only one block -- nothing to do */ ==== //depot/projects/smpng/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/dmu.h#3 (text+ko) ==== @@ -457,7 +457,7 @@ int dmu_write_pages(objset_t *os, uint64_t object, uint64_t offset, uint64_t size, struct page *pp, dmu_tx_t *tx); -extern int zfs_prefetch_disable; +extern int zfs_prefetch_enable; /* * Asynchronously try to read in the data. ==== //depot/projects/smpng/sys/compat/freebsd32/freebsd32_proto.h#53 (text+ko) ==== @@ -2,8 +2,8 @@ * System call prototypes. * * DO NOT EDIT-- this file is automatically generated. - * $FreeBSD: src/sys/compat/freebsd32/freebsd32_proto.h,v 1.100 2009/04/29 21:50:13 jamie Exp $ - * created from FreeBSD: head/sys/compat/freebsd32/syscalls.master 191673 2009-04-29 21:14:15Z jamie + * $FreeBSD: src/sys/compat/freebsd32/freebsd32_proto.h,v 1.101 2009/06/10 13:48:43 kib Exp $ + * created from FreeBSD: head/sys/compat/freebsd32/syscalls.master 193916 2009-06-10 13:48:13Z kib */ #ifndef _FREEBSD32_SYSPROTO_H_ ==== //depot/projects/smpng/sys/compat/freebsd32/freebsd32_syscall.h#53 (text+ko) ==== @@ -2,8 +2,8 @@ * System call numbers. * * DO NOT EDIT-- this file is automatically generated. - * $FreeBSD: src/sys/compat/freebsd32/freebsd32_syscall.h,v 1.99 2009/04/29 21:50:13 jamie Exp $ - * created from FreeBSD: head/sys/compat/freebsd32/syscalls.master 191673 2009-04-29 21:14:15Z jamie + * $FreeBSD: src/sys/compat/freebsd32/freebsd32_syscall.h,v 1.100 2009/06/10 13:48:43 kib Exp $ + * created from FreeBSD: head/sys/compat/freebsd32/syscalls.master 193916 2009-06-10 13:48:13Z kib */ #define FREEBSD32_SYS_syscall 0 @@ -303,6 +303,9 @@ #define FREEBSD32_SYS_statfs 396 #define FREEBSD32_SYS_fstatfs 397 #define FREEBSD32_SYS_fhstatfs 398 +#define FREEBSD32_SYS_extattr_set_link 412 +#define FREEBSD32_SYS_extattr_get_link 413 +#define FREEBSD32_SYS_extattr_delete_link 414 >>> TRUNCATED FOR MAIL (1000 lines) <<< From owner-p4-projects@FreeBSD.ORG Fri Jun 12 14:00:35 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 798AE1065689; Fri, 12 Jun 2009 14:00:35 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 35ACC1065688 for ; Fri, 12 Jun 2009 14:00:35 +0000 (UTC) (envelope-from truncs@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 2387F8FC2F for ; Fri, 12 Jun 2009 14:00:35 +0000 (UTC) (envelope-from truncs@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n5CE0ZXc076148 for ; Fri, 12 Jun 2009 14:00:35 GMT (envelope-from truncs@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n5CE0Yk5076146 for perforce@freebsd.org; Fri, 12 Jun 2009 14:00:34 GMT (envelope-from truncs@FreeBSD.org) Date: Fri, 12 Jun 2009 14:00:34 GMT Message-Id: <200906121400.n5CE0Yk5076146@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to truncs@FreeBSD.org using -f From: Aditya Sarawgi To: Perforce Change Reviews Cc: Subject: PERFORCE change 164171 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 12 Jun 2009 14:00:36 -0000 http://perforce.freebsd.org/chv.cgi?CH=164171 Change 164171 by truncs@aditya on 2009/06/12 14:00:09 Renaming to new macro-instructions and cleanup Affected files ... .. //depot/projects/soc2009/soc_ext2fs/src/sys/gnu/fs/ext2fs/ext2_fs.h#14 edit .. //depot/projects/soc2009/soc_ext2fs/src/sys/gnu/fs/ext2fs/ext2_linux_balloc.c#6 edit .. //depot/projects/soc2009/soc_ext2fs/src/sys/gnu/fs/ext2fs/ext2_lookup.c#5 edit .. //depot/projects/soc2009/soc_ext2fs/src/sys/gnu/fs/ext2fs/ext2_vfsops.c#9 edit .. //depot/projects/soc2009/soc_ext2fs/src/sys/gnu/fs/ext2fs/ext2_vnops.c#8 edit Differences ... ==== //depot/projects/soc2009/soc_ext2fs/src/sys/gnu/fs/ext2fs/ext2_fs.h#14 (text+ko) ==== @@ -101,7 +101,7 @@ #define EXT2_UNDEL_DIR_INO 6 /* Undelete directory inode */ /* First non-reserved inode for old ext2 filesystems */ -#define EXT2_GOOD_OLD_FIRST_INO 11 +#define E2FS_REV0_FIRST_INO 11 /* * The second extended file system magic number ==== //depot/projects/soc2009/soc_ext2fs/src/sys/gnu/fs/ext2fs/ext2_linux_balloc.c#6 (text+ko) ==== @@ -555,7 +555,7 @@ bh = sb->e2fs_bb[bitmap_nr]; if (!(es->e2fs_features_rocompat & - EXT2_FEATURE_RO_COMPAT_SPARSE_SUPER) || + EXT2F_ROCOMPAT_SPARSESUPER) || ext2_group_sparse(i)) { if (!test_bit (0, bh->b_data)) printf ("ext2_check_blocks_bitmap: " ==== //depot/projects/soc2009/soc_ext2fs/src/sys/gnu/fs/ext2fs/ext2_lookup.c#5 (text+ko) ==== @@ -772,7 +772,7 @@ newdir.inode = ip->i_number; newdir.name_len = cnp->cn_namelen; if (EXT2_HAS_INCOMPAT_FEATURE(ip->i_e2fs, - EXT2_FEATURE_INCOMPAT_FILETYPE)) + EXT2F_INCOMPAT_FTYPE)) newdir.file_type = DTTOFT(IFTODT(ip->i_mode)); else newdir.file_type = EXT2_FT_UNKNOWN; @@ -950,7 +950,7 @@ return (error); ep->inode = ip->i_number; if (EXT2_HAS_INCOMPAT_FEATURE(ip->i_e2fs, - EXT2_FEATURE_INCOMPAT_FILETYPE)) + EXT2F_INCOMPAT_FTYPE)) ep->file_type = DTTOFT(IFTODT(ip->i_mode)); else ep->file_type = EXT2_FT_UNKNOWN; ==== //depot/projects/soc2009/soc_ext2fs/src/sys/gnu/fs/ext2fs/ext2_vfsops.c#9 (text+ko) ==== @@ -172,7 +172,7 @@ error = ext2_flushfiles(mp, flags, td); vfs_unbusy(mp); if (!error && fs->e2fs_wasvalid) { - fs->e2fs->e2fs_state |= EXT2_VALID_FS; + fs->e2fs->e2fs_state |= E2FS_ISCLEAN; ext2_sbupdate(ump, MNT_WAIT); } fs->e2fs_ronly = 1; @@ -214,8 +214,8 @@ if (error) return (error); - if ((fs->e2fs->e2fs_state & EXT2_VALID_FS) == 0 || - (fs->e2fs->e2fs_state & EXT2_ERROR_FS)) { + if ((fs->e2fs->e2fs_state & E2FS_ISCLEAN) == 0 || + (fs->e2fs->e2fs_state & E2FS_ERRORS)) { if (mp->mnt_flag & MNT_FORCE) { printf( "WARNING: %s was not properly dismounted\n", fs->e2fs_fsmnt); @@ -226,7 +226,7 @@ return (EPERM); } } - fs->e2fs->e2fs_state &= ~EXT2_VALID_FS; + fs->e2fs->e2fs_state &= ~E2FS_ISCLEAN; ext2_sbupdate(ump, MNT_WAIT); fs->e2fs_ronly = 0; MNT_ILOCK(mp); @@ -351,20 +351,20 @@ ext2_check_sb_compat(struct ext2fs *es, struct cdev *dev, int ronly) { - if (es->e2fs_magic != EXT2_SUPER_MAGIC) { + if (es->e2fs_magic != E2FS_MAGIC) { printf("ext2fs: %s: wrong magic number %#x (expected %#x)\n", - devtoname(dev), es->e2fs_magic, EXT2_SUPER_MAGIC); + devtoname(dev), es->e2fs_magic, E2FS_MAGIC); return (1); } - if (es->e2fs_rev > EXT2_GOOD_OLD_REV) { - if (es->e2fs_features_incompat & ~EXT2_FEATURE_INCOMPAT_SUPP) { + if (es->e2fs_rev > E2FS_REV0) { + if (es->e2fs_features_incompat & ~EXT2F_INCOMPAT_SUPP) { printf( "WARNING: mount of %s denied due to unsupported optional features\n", devtoname(dev)); return (1); } if (!ronly && - (es->e2fs_features_rocompat & ~EXT2_FEATURE_RO_COMPAT_SUPP)) { + (es->e2fs_features_rocompat & ~EXT2F_ROCOMPAT_SUPP)) { printf("WARNING: R/W mount of %s denied due to " "unsupported optional features\n", devtoname(dev)); return (1); @@ -396,9 +396,9 @@ fs->e2fs_bpg = es->e2fs_bpg; fs->e2fs_fpg = es->e2fs_fpg; fs->e2fs_ipg = es->e2fs_ipg; - if (es->e2fs_rev == EXT2_GOOD_OLD_REV) { - fs->e2fs_first_inode = EXT2_GOOD_OLD_FIRST_INO; - fs->e2fs_isize = EXT2_GOOD_OLD_INODE_SIZE; + if (es->e2fs_rev == E2FS_REV0) { + fs->e2fs_first_inode = E2FS_REV0_FIRST_INO; + fs->e2fs_isize = E2FS_REV0_INODE_SIZE ; } else { fs->e2fs_first_inode = es->e2fs_first_ino; fs->e2fs_isize = es->e2fs_inode_size; @@ -406,7 +406,7 @@ /* * Simple sanity check for superblock inode size value. */ - if (fs->e2fs_isize < EXT2_GOOD_OLD_INODE_SIZE || + if (fs->e2fs_isize < E2FS_REV0_INODE_SIZE || fs->e2fs_isize > fs->e2fs_bsize || (fs->e2fs_isize & (fs->e2fs_isize - 1)) != 0) { printf("EXT2-fs: invalid inode size %d\n", @@ -463,8 +463,8 @@ } fs->e2fs_lib = 0; fs->e2fs_lbb = 0; - if (es->e2fs_rev == EXT2_GOOD_OLD_REV || - (es->e2fs_features_rocompat & EXT2_FEATURE_RO_COMPAT_LARGE_FILE) == 0) + if (es->e2fs_rev == E2FS_REV0 || + (es->e2fs_features_rocompat & EXT2F_ROCOMPAT_LARGEFILE) == 0) fs->e2fs_maxfilesize = 0x7fffffff; else fs->e2fs_maxfilesize = 0x7fffffffffffffff; @@ -626,8 +626,8 @@ error = EINVAL; /* XXX needs translation */ goto out; } - if ((es->e2fs_state & EXT2_VALID_FS) == 0 || - (es->e2fs_state & EXT2_ERROR_FS)) { + if ((es->e2fs_state & E2FS_ISCLEAN) == 0 || + (es->e2fs_state & E2FS_ERRORS)) { if (ronly || (mp->mnt_flag & MNT_FORCE)) { printf( "WARNING: Filesystem was not properly dismounted\n"); @@ -667,10 +667,10 @@ * If the fs is not mounted read-only, make sure the super block is * always written back on a sync(). */ - fs->e2fs_wasvalid = fs->e2fs->e2fs_state & EXT2_VALID_FS ? 1 : 0; + fs->e2fs_wasvalid = fs->e2fs->e2fs_state & E2FS_ISCLEAN ? 1 : 0; if (ronly == 0) { fs->e2fs_fmod = 1; /* mark it modified */ - fs->e2fs->e2fs_state &= ~EXT2_VALID_FS; /* set fs invalid */ + fs->e2fs->e2fs_state &= ~E2FS_ISCLEAN; /* set fs invalid */ } mp->mnt_data = ump; mp->mnt_stat.f_fsid.val[0] = dev2udev(dev); @@ -737,7 +737,7 @@ ronly = fs->e2fs_ronly; if (ronly == 0) { if (fs->e2fs_wasvalid) - fs->e2fs->e2fs_state |= EXT2_VALID_FS; + fs->e2fs->e2fs_state |= E2FS_ISCLEAN; ext2_sbupdate(ump, MNT_WAIT); } @@ -799,13 +799,13 @@ fs = ump->um_e2fs; es = fs->e2fs; - if (es->e2fs_magic != EXT2_SUPER_MAGIC) + if (es->e2fs_magic != E2FS_MAGIC) panic("ext2_statfs - magic number spoiled"); /* * Compute the overhead (FS structures) */ - if (es->e2fs_features_rocompat & EXT2_FEATURE_RO_COMPAT_SPARSE_SUPER) { + if (es->e2fs_features_rocompat & EXT2F_ROCOMPAT_SPARSESUPER) { nsb = 0; for (i = 0 ; i < fs->e2fs_gcount; i++) if (ext2_group_sparse(i)) ==== //depot/projects/soc2009/soc_ext2fs/src/sys/gnu/fs/ext2fs/ext2_vnops.c#8 (text+ko) ==== @@ -1191,7 +1191,7 @@ /* Initialize directory with "." and ".." from static template. */ if (EXT2_HAS_INCOMPAT_FEATURE(ip->i_e2fs, - EXT2_FEATURE_INCOMPAT_FILETYPE)) + EXT2F_INCOMPAT_FTYPE)) dtp = &mastertemplate; else dtp = &omastertemplate; From owner-p4-projects@FreeBSD.ORG Fri Jun 12 14:11:47 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 0C8901065673; Fri, 12 Jun 2009 14:11:47 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id BFCD21065670 for ; Fri, 12 Jun 2009 14:11:46 +0000 (UTC) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 9206F8FC1B for ; Fri, 12 Jun 2009 14:11:46 +0000 (UTC) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n5CEBkTp078122 for ; Fri, 12 Jun 2009 14:11:46 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n5CEBkOE078120 for perforce@freebsd.org; Fri, 12 Jun 2009 14:11:46 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Date: Fri, 12 Jun 2009 14:11:46 GMT Message-Id: <200906121411.n5CEBkOE078120@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to bb+lists.freebsd.perforce@cyrus.watson.org using -f From: Robert Watson To: Perforce Change Reviews Cc: Subject: PERFORCE change 164172 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 12 Jun 2009 14:11:47 -0000 http://perforce.freebsd.org/chv.cgi?CH=164172 Change 164172 by rwatson@rwatson_freebsd_capabilities on 2009/06/12 14:10:55 Add basename_r(3). Affected files ... .. //depot/projects/trustedbsd/capabilities/src/lib/libc/gen/Makefile.inc#7 edit .. //depot/projects/trustedbsd/capabilities/src/lib/libc/gen/basename.3#2 edit .. //depot/projects/trustedbsd/capabilities/src/lib/libc/gen/basename.c#2 edit Differences ... ==== //depot/projects/trustedbsd/capabilities/src/lib/libc/gen/Makefile.inc#7 (text+ko) ==== @@ -76,6 +76,7 @@ MLINKS+=arc4random.3 arc4random_addrandom.3 arc4random.3 arc4random_stir.3 \ arc4random.3 arc4random_buf.3 arc4random.3 arc4random_uniform.3 +MLINKS+=basename.3 basename_r.3 MLINKS+=ctermid.3 ctermid_r.3 MLINKS+=devname.3 devname_r.3 MLINKS+=devname.3 fdevname.3 ==== //depot/projects/trustedbsd/capabilities/src/lib/libc/gen/basename.3#2 (text+ko) ==== @@ -37,6 +37,8 @@ .In libgen.h .Ft char * .Fn basename "const char *path" +.Ft char * +.Fn basename_r "const char *path" "char *bname" .Sh DESCRIPTION The .Fn basename @@ -58,6 +60,12 @@ is a null pointer or the empty string, a pointer to the string .Qq \&. is returned. +.Pp +The +.Fn basename_r +variation accepts a buffer of at least +.Dv MAXPATHLEN +bytes in which to store the resulting component. .Sh IMPLEMENTATION NOTES The .Fn basename @@ -65,15 +73,17 @@ returns a pointer to internal storage space allocated on the first call that will be overwritten by subsequent calls. +.Fn basename_r +is therefore preferred for threaded applications. .Sh RETURN VALUES On successful completion, .Fn basename -returns a pointer to the last component of +and +.Fn basename_r +return pointers to the last component of .Fa path . .Pp -If -.Fn basename -fails, a null pointer is returned and the global variable +If they fail, a null pointer is returned and the global variable .Va errno is set to indicate the error. .Sh ERRORS ==== //depot/projects/trustedbsd/capabilities/src/lib/libc/gen/basename.c#2 (text+ko) ==== @@ -40,18 +40,12 @@ #include char * -basename(path) +basename_r(path, bname) const char *path; + char *bname; { - static char *bname = NULL; const char *endp, *startp; - if (bname == NULL) { - bname = (char *)malloc(MAXPATHLEN); - if (bname == NULL) - return(NULL); - } - /* Empty or NULL string gets treated as "." */ if (path == NULL || *path == '\0') { (void)strcpy(bname, "."); @@ -82,3 +76,17 @@ bname[endp - startp + 1] = '\0'; return(bname); } + +char * +basename(path) + const char *path; +{ + static char *bname = NULL; + + if (bname == NULL) { + bname = (char *)malloc(MAXPATHLEN); + if (bname == NULL) + return (NULL); + } + return (basename_r(path, bname)); +} From owner-p4-projects@FreeBSD.ORG Fri Jun 12 14:48:28 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id B4E6F106567C; Fri, 12 Jun 2009 14:48:28 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 67F83106567A for ; Fri, 12 Jun 2009 14:48:28 +0000 (UTC) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 52F6F8FC40 for ; Fri, 12 Jun 2009 14:48:28 +0000 (UTC) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n5CEmSZk081182 for ; Fri, 12 Jun 2009 14:48:28 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n5CEmSf6081180 for perforce@freebsd.org; Fri, 12 Jun 2009 14:48:28 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Date: Fri, 12 Jun 2009 14:48:28 GMT Message-Id: <200906121448.n5CEmSf6081180@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to bb+lists.freebsd.perforce@cyrus.watson.org using -f From: Robert Watson To: Perforce Change Reviews Cc: Subject: PERFORCE change 164176 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 12 Jun 2009 14:48:29 -0000 http://perforce.freebsd.org/chv.cgi?CH=164176 Change 164176 by rwatson@rwatson_freebsd_capabilities on 2009/06/12 14:48:05 Add lch_startfd() and lch_startfd_flags(), which accept a file descriptor instead of a path string for the binary to launch in a sandbox. Add a new variation on libcapability, libcapabilitym, which is intended for use in sandboxes. It shares the same code, but (a) doesn't expose the path-based sandbox start routines and (b) knows how to use rtld-elf-cap's library descriptor cache rather than the file system to load dependencies for sub-sandboxes. Update man pages. Affected files ... .. //depot/projects/trustedbsd/capabilities/src/lib/Makefile#7 edit .. //depot/projects/trustedbsd/capabilities/src/lib/libcapability/Makefile#7 edit .. //depot/projects/trustedbsd/capabilities/src/lib/libcapability/libcapability.3#15 edit .. //depot/projects/trustedbsd/capabilities/src/lib/libcapability/libcapability.c#6 edit .. //depot/projects/trustedbsd/capabilities/src/lib/libcapability/libcapability.h#12 edit .. //depot/projects/trustedbsd/capabilities/src/lib/libcapability/libcapability_host.c#9 edit .. //depot/projects/trustedbsd/capabilities/src/lib/libcapabilitym/Makefile#1 add Differences ... ==== //depot/projects/trustedbsd/capabilities/src/lib/Makefile#7 (text+ko) ==== @@ -32,7 +32,8 @@ ncurses ${_libnetgraph} libradius librpcsvc libsbuf \ libtacplus libutil ${_libypclnt} libalias libarchive ${_libatm} \ libbegemot ${_libbluetooth} ${_libbsnmp} libbz2 \ - libcalendar libcam libcapability libcompat libdevinfo libdevstat \ + libcalendar libcam libcapability libcapabilitym libcompat \ + libdevinfo libdevstat \ libdisk \ libdwarf libedit libexpat libfetch libftpio libgeom ${_libgpib} \ ${_libgssapi} ${_librpcsec_gss} libipsec \ ==== //depot/projects/trustedbsd/capabilities/src/lib/libcapability/Makefile#7 (text+ko) ==== @@ -16,5 +16,6 @@ WARNS?= 6 MAN= libcapability.3 +MLINKS= libcapability.3 libcapabilitym.3 .include ==== //depot/projects/trustedbsd/capabilities/src/lib/libcapability/libcapability.3#15 (text+ko) ==== @@ -50,6 +50,10 @@ .Fn lch_start "const char *sandbox" "char *const argv[]" "struct lc_sandbox **lcsp" .Ft int .Fn lch_start_flags "const char *sandbox" "char *const argv[]" "u_int flags" "struct lc_sandbox **lcsp" +.Ft int +.Fn lch_startfd "int fd_sandbox" "char *const argv[]" "struct lc_sandbox **lcsp" +.Ft int +.Fn lch_startfd_flags "int fd_sandbox" "char *const argv[]" "u_int flags" "struct lc_sandbox **lcsp" .Ft void .Fn lch_stop "struct lc_sandbox *lcsp" .Ft int @@ -89,6 +93,29 @@ Applications may also use RPC generators such as .Xr rpcgen 1 to build event handling and marshaling code. +The +.Nm +library comes in two variations: +.Pp +.Nm libcapability +loads binaries, and supporting libraries, for sandboxes from the UNIX +filesystem namespace by path. +It implements four start functions: +.Fn lch_start , +.Fn lch_start_flags , +.Fn lch_startfd , +and +.Fn lch_startfd_flags . +.Pp +.Nm libcapabilitym +loads binaries, and supporting libraries, for sandboxes from the library +descriptor cache maintained by +.Xr rtld-elf-cap 1 +It implements only the two start functions accepting file descriptor +arguments: +.Fn lch_startfd , +and +.Fn lch_startfd_flags . .Sh CAPABILITY API .Fn lc_limitfd is a wrapper around @@ -127,6 +154,14 @@ .Dv stderr . By default, this is not permitted. .Pp +Two further variations to start sandboxes are also defined, +.Fn lch_startfd +and +.Fn lch_startfd_flags , +which accept a file descriptor argument, +.Va fd_sandbox , +rather than a path. +.Pp Executing sandboxes may be stopped (and all state freed) using .Fn lch_stop . Following a call to ==== //depot/projects/trustedbsd/capabilities/src/lib/libcapability/libcapability.c#6 (text+ko) ==== @@ -30,7 +30,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $P4: //depot/projects/trustedbsd/capabilities/src/lib/libcapability/libcapability.c#5 $ + * $P4: //depot/projects/trustedbsd/capabilities/src/lib/libcapability/libcapability.c#6 $ */ #include ==== //depot/projects/trustedbsd/capabilities/src/lib/libcapability/libcapability.h#12 (text+ko) ==== @@ -30,7 +30,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $P4: //depot/projects/trustedbsd/capabilities/src/lib/libcapability/libcapability.h#11 $ + * $P4: //depot/projects/trustedbsd/capabilities/src/lib/libcapability/libcapability.h#12 $ */ #ifndef _LIBCAPABILITY_H_ @@ -51,6 +51,10 @@ struct lc_sandbox **lcspp); int lch_start_flags(const char *sandbox, char *const argv[], u_int flags, struct lc_sandbox **lcspp); +int lch_startfd(int fd_sandbox, char *const argv[], + struct lc_sandbox **lcspp); +int lch_startfd_flags(int fd_sandbox, char *const argv[], u_int flags, + struct lc_sandbox **lcspp); void lch_stop(struct lc_sandbox *lcsp); /* ==== //depot/projects/trustedbsd/capabilities/src/lib/libcapability/libcapability_host.c#9 (text+ko) ==== @@ -30,7 +30,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $P4: //depot/projects/trustedbsd/capabilities/src/lib/libcapability/libcapability_host.c#8 $ + * $P4: //depot/projects/trustedbsd/capabilities/src/lib/libcapability/libcapability_host.c#9 $ */ #include @@ -144,14 +144,11 @@ static void lch_sandbox(int fd_sock, int fd_sandbox, int fd_ldso, int fd_libc, - int fd_libz, int fd_libcapability, u_int flags, char *const argv[]) + int fd_libz, int fd_libcapability, int fd_devnull, u_int flags, + char *const argv[]) { char *env_caplibindex, *env_libcapability_sandbox_api; - int fd_array[8], fd_devnull; - - fd_devnull = open(_PATH_DEVNULL, O_RDWR); - if (fd_devnull < 0) - return; + int fd_array[10]; if (lc_limitfd(fd_devnull, LIBCAPABILITY_CAPMASK_DEVNULL) < 0) return; @@ -183,15 +180,16 @@ fd_array[6] = fd_libc; fd_array[7] = fd_libz; fd_array[8] = fd_libcapability; + fd_array[9] = fd_devnull; - if (lch_installfds(9, fd_array) < 0) + if (lch_installfds(10, fd_array) < 0) return; /* * Pass library list into rtld-elf-cap. */ - if (asprintf(&env_caplibindex, "%d:%s,%d:%s,%d:%s", 6, LIBC_SO, 7, - LIBZ_SO, 8, LIBCAPABILITY_SO) == -1) + if (asprintf(&env_caplibindex, "%d:%s,%d:%s,%d:%s,%d:%s", 6, LIBC_SO, + 7, LIBZ_SO, 8, LIBCAPABILITY_SO, 9, _PATH_DEVNULL) == -1) return; if (setenv("LD_CAPLIBINDEX", env_caplibindex, 1) == -1) return; @@ -216,16 +214,16 @@ } int -lch_start_flags(const char *sandbox, char *const argv[], u_int flags, +lch_startfd_flags(int fd_sandbox, char *const argv[], u_int flags, struct lc_sandbox **lcapp) { struct lc_sandbox *lcap; - int fd_sandbox, fd_ldso, fd_libc, fd_libcapability, fd_libz; + int fd_devnull, fd_ldso, fd_libc, fd_libcapability, fd_libz; int fd_procdesc, fd_sockpair[2]; int error, val; pid_t pid; - fd_sandbox = fd_ldso = fd_libc = fd_libz = fd_libcapability = + fd_devnull = fd_ldso = fd_libc = fd_libz = fd_libcapability = fd_procdesc = fd_sockpair[0] = fd_sockpair[1] = -1; lcap = malloc(sizeof(*lcap)); @@ -233,11 +231,18 @@ return (-1); bzero(lcap, sizeof(*lcap)); - /* Try the sandbox first so that ENOENT most likely refers to it. */ - fd_sandbox = open(sandbox, O_RDONLY); - if (fd_sandbox < 0) +#ifdef IN_CAP_MODE + if (ld_caplibindex_lookup(LD_ELF_CAP_SO, &fd_ldso) < 0) + goto out_error; + if (ld_caplibindex_lookup(LIBC_SO, &fd_libc) < 0) + goto out_error; + if (ld_caplibindex_lookup(LIBZ_SO, &fd_libz) < 0) + goto out_error; + if (ld_caplibindex_lookup(LIBCAPABILITY_SO, &fd_libcapability) < 0) + goto out_error; + if (ld_caplibindex_lookup(_PATH_DEVNULL, &fd_libcapability) < 0) goto out_error; - +#else fd_ldso = open(LD_ELF_CAP_SO, O_RDONLY); if (fd_ldso < 0) goto out_error; @@ -255,6 +260,11 @@ if (fd_libcapability < 0) goto out_error; + fd_devnull = open(_PATH_DEVNULL, O_RDWR); + if (fd_devnull < 0) + goto out_error; +#endif + if (socketpair(PF_LOCAL, SOCK_STREAM, 0, fd_sockpair) < 0) goto out_error; @@ -272,14 +282,16 @@ } if (pid == 0) { lch_sandbox(fd_sockpair[1], fd_sandbox, fd_ldso, fd_libc, - fd_libz, fd_libcapability, flags, argv); + fd_libz, fd_libcapability, fd_devnull, flags, argv); exit(-1); } +#ifndef IN_CAP_MODE + close(fd_devnull); close(fd_libcapability); close(fd_libz); close(fd_libc); close(fd_ldso); - close(fd_sandbox); +#endif close(fd_sockpair[1]); lcap->lcs_fd_procdesc = fd_procdesc; @@ -295,6 +307,9 @@ close(fd_sockpair[0]); if (fd_sockpair[1] != -1) close(fd_sockpair[1]); +#ifndef IN_CAP_MODE + if (fd_devnull != -1) + close(fd_devnull); if (fd_libcapability != -1) close(fd_libcapability); if (fd_libz != -1) @@ -303,8 +318,7 @@ close(fd_libc); if (fd_ldso != -1) close(fd_ldso); - if (fd_sandbox != -1) - close(fd_sandbox); +#endif if (lcap != NULL) free(lcap); errno = error; @@ -312,11 +326,37 @@ } int +lch_startfd(int fd_sandbox, char *const argv[], struct lc_sandbox **lcapp) +{ + + return (lch_startfd_flags(fd_sandbox, argv, 0, lcapp)); +} + +#ifndef IN_CAP_MODE +int +lch_start_flags(const char *sandbox, char *const argv[], u_int flags, + struct lc_sandbox **lcapp) +{ + int error, fd_sandbox, ret; + + fd_sandbox = open(sandbox, O_RDONLY); + if (fd_sandbox < 0) + return (-1); + + ret = lch_startfd_flags(fd_sandbox, argv, flags, lcapp); + error = errno; + close(fd_sandbox); + errno = error; + return (ret); +} + +int lch_start(const char *sandbox, char *const argv[], struct lc_sandbox **lcapp) { return (lch_start_flags(sandbox, argv, 0, lcapp)); } +#endif void lch_stop(struct lc_sandbox *lcap) From owner-p4-projects@FreeBSD.ORG Fri Jun 12 14:49:30 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id CFB5F1065677; Fri, 12 Jun 2009 14:49:29 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 8FC2F1065674 for ; Fri, 12 Jun 2009 14:49:29 +0000 (UTC) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 7CB098FC13 for ; Fri, 12 Jun 2009 14:49:29 +0000 (UTC) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n5CEnT6k081244 for ; Fri, 12 Jun 2009 14:49:29 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n5CEnT6D081242 for perforce@freebsd.org; Fri, 12 Jun 2009 14:49:29 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Date: Fri, 12 Jun 2009 14:49:29 GMT Message-Id: <200906121449.n5CEnT6D081242@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to bb+lists.freebsd.perforce@cyrus.watson.org using -f From: Robert Watson To: Perforce Change Reviews Cc: Subject: PERFORCE change 164177 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 12 Jun 2009 14:49:30 -0000 http://perforce.freebsd.org/chv.cgi?CH=164177 Change 164177 by rwatson@rwatson_freebsd_capabilities on 2009/06/12 14:49:14 Teach make infrastructure about libcapabilitym. Affected files ... .. //depot/projects/trustedbsd/capabilities/src/share/mk/bsd.libnames.mk#7 edit Differences ... ==== //depot/projects/trustedbsd/capabilities/src/share/mk/bsd.libnames.mk#7 (text+ko) ==== @@ -31,6 +31,7 @@ LIBCALENDAR?= ${DESTDIR}${LIBDIR}/libcalendar.a LIBCAM?= ${DESTDIR}${LIBDIR}/libcam.a LIBCAPABILITY?= ${DESTDIR}${LIBDIR}/libcapability.a +LIBCAPABILITYM?= ${DESTDIR}${LIBDIR}/libcapabilitym.a LIBCOM_ERR?= ${DESTDIR}${LIBDIR}/libcom_err.a LIBCOMPAT?= ${DESTDIR}${LIBDIR}/libcompat.a LIBCRYPT?= ${DESTDIR}${LIBDIR}/libcrypt.a From owner-p4-projects@FreeBSD.ORG Fri Jun 12 14:55:36 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 2726C1065670; Fri, 12 Jun 2009 14:55:36 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id DAC8D106564A for ; Fri, 12 Jun 2009 14:55:35 +0000 (UTC) (envelope-from pgj@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id C85418FC1B for ; Fri, 12 Jun 2009 14:55:35 +0000 (UTC) (envelope-from pgj@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n5CEtZap081786 for ; Fri, 12 Jun 2009 14:55:35 GMT (envelope-from pgj@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n5CEtZ7u081784 for perforce@freebsd.org; Fri, 12 Jun 2009 14:55:35 GMT (envelope-from pgj@FreeBSD.org) Date: Fri, 12 Jun 2009 14:55:35 GMT Message-Id: <200906121455.n5CEtZ7u081784@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to pgj@FreeBSD.org using -f From: Gabor Pali To: Perforce Change Reviews Cc: Subject: PERFORCE change 164178 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 12 Jun 2009 14:55:37 -0000 http://perforce.freebsd.org/chv.cgi?CH=164178 Change 164178 by pgj@petymeg-current on 2009/06/12 14:55:17 libnetstat: netstat: Affected files ... .. //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat.c#23 edit .. //depot/projects/soc2009/pgj_libstat/src/usr.bin/netstat/extern.h#5 edit .. //depot/projects/soc2009/pgj_libstat/src/usr.bin/netstat/inet.c#13 edit .. //depot/projects/soc2009/pgj_libstat/src/usr.bin/netstat/main.c#8 edit .. //depot/projects/soc2009/pgj_libstat/src/usr.bin/netstat/unix.c#12 edit Differences ... ==== //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat.c#23 (text+ko) ==== @@ -370,16 +370,124 @@ #undef KREAD + +#define NPCB_KVM(proc, family, type, list, kvm, nl, flags) do { \ + if (net_##proc##_pcblist_kvm((family), (type), (list), (kvm), (nl), \ + (flags)) != 0) { \ + list->stl_error = NETSTAT_ERROR_UNDEFINED; \ + return (-1); \ + } \ +} while (0) + +#define NPCB_SCT(proc, family, type, list, flags) do { \ + if (net_##proc##_pcblist_sysctl((family), (type), (list), \ + (flags)) != 0) { \ + list->stl_error = NETSTAT_ERROR_UNDEFINED; \ + return (-1); \ + } \ +} while (0) + int +netstat_local_sockets(int type, struct socket_type_list *list, kvm_t *kvm, + struct nlist *nl, int flags) +{ + int use_kvm = flags & NETSTAT_SOCKET_KVM; + + switch (type) { + case SOCK_STREAM: + case SOCK_DGRAM: + if (use_kvm) + NPCB_KVM(local, PF_LOCAL, type, list, kvm, nl, + flags); + else + /* Use sysctl (or something else). */ + NPCB_SCT(local, PF_LOCAL, type, list, flags); + break; + /* All PF_LOCAL */ + case 0: + if (use_kvm) { + NPCB_KVM(local, PF_LOCAL, SOCK_STREAM, list, kvm, + nl, flags); + NPCB_KVM(local, PF_LOCAL, SOCK_DGRAM, list, kvm, + nl, flags); + } else { + NPCB_SCT(local, PF_LOCAL, SOCK_STREAM, list, + flags); + NPCB_SCT(local, PF_LOCAL, SOCK_DGRAM, list, + flags); + } + break; + default: + list->stl_error = NETSTAT_ERROR_UNSUPPORTED; + return (-1); + } + return (0); +} + +int +netstat_inet_sockets(int domain, int protocol, struct socket_type_list *list, + kvm_t *kvm, struct nlist *nl, int flags) +{ + int use_kvm = flags & NETSTAT_SOCKET_KVM; + + switch (protocol) { + case IPPROTO_TCP: + case IPPROTO_UDP: + case IPPROTO_DIVERT: + case IPPROTO_RAW: + case IPPROTO_ICMP: + case IPPROTO_IGMP: + case IPPROTO_PIM: + case IPPROTO_ICMPV6: + if (use_kvm) + NPCB_KVM(inet, domain, protocol, list, kvm, nl, + flags); + else + NPCB_SCT(inet, domain, protocol, list, flags); + break; + /* All PF_INET */ + case 0: + /* Errors do not count here. */ + if (use_kvm) { + net_inet_pcblist_kvm(domain, IPPROTO_TCP, list, kvm, + nl, flags); + net_inet_pcblist_kvm(domain, IPPROTO_UDP, list, kvm, + nl, flags); + net_inet_pcblist_kvm(domain, IPPROTO_DIVERT, list, + kvm, nl, flags); + net_inet_pcblist_kvm(domain, IPPROTO_RAW, list, kvm, + nl, flags); + } else { + net_inet_pcblist_sysctl(domain, IPPROTO_TCP, list, + flags); + net_inet_pcblist_sysctl(domain, IPPROTO_UDP, list, + flags); + net_inet_pcblist_sysctl(domain, IPPROTO_DIVERT, list, + flags); + net_inet_pcblist_sysctl(domain, IPPROTO_RAW, list, + flags); + } + break; + default: + list->stl_error = NETSTAT_ERROR_UNSUPPORTED; + return (-1); + } + return (0); +} + +#undef NPCB_KVM +#undef NPCB_SCT + + +int netstat_socket(int domain, int type, int protocol, struct socket_type_list *list, int flags, void *kvm_handle) { kvm_t *kvm; - int use_kvm; + int result; struct nlist *nlp = NULL; - use_kvm = flags & NETSTAT_SOCKET_KVM; - if (use_kvm) { + if (flags & NETSTAT_SOCKET_KVM) { /* Use KVM to retrieve data. */ switch (domain) { case PF_LOCAL: @@ -398,104 +506,37 @@ return (-1); } } - -#define NPCB_KVM(proc, family, type, list, kvm, nl, flags) do { \ - if (net_##proc##_pcblist_kvm((family), (type), (list), (kvm), (nl), \ - (flags)) != 0) { \ - list->stl_error = NETSTAT_ERROR_UNDEFINED; \ - return (-1); \ - } \ -} while (0) - -#define NPCB_SCT(proc, family, type, list, flags) do { \ - if (net_##proc##_pcblist_sysctl((family), (type), (list), \ - (flags)) != 0) { \ - list->stl_error = NETSTAT_ERROR_UNDEFINED; \ - return (-1); \ - } \ -} while (0) - switch (domain) { + case PF_UNSPEC: + /* "Everything" */ + result = netstat_local_sockets(0, list, kvm, nl, flags); + if (result < 0) + return (result); +#if 1 + result = netstat_inet_sockets(PF_INET, 0, list, kvm, nl, + flags); + if (result < 0) + return (result); +#endif +#if 0 + result = netstat_inet_sockets(PF_INET6, 0, list, kvm, nl, + flags); + if (result < 0) + return (result); +#endif + break; case PF_LOCAL: - switch (type) { - case SOCK_STREAM: - case SOCK_DGRAM: - if (use_kvm) - NPCB_KVM(local, domain, type, list, kvm, nl, - flags); - else - /* Use sysctl (or something else). */ - NPCB_SCT(local, domain, type, list, flags); - break; - /* All PF_LOCAL */ - case 0: - if (use_kvm) { - NPCB_KVM(local, domain, SOCK_STREAM, list, kvm, - nl, flags); - NPCB_KVM(local, domain, SOCK_DGRAM, list, kvm, - nl, flags); - } else { - NPCB_SCT(local, domain, SOCK_STREAM, list, - flags); - NPCB_SCT(local, domain, SOCK_DGRAM, list, - flags); - } - break; - default: - list->stl_error = NETSTAT_ERROR_UNSUPPORTED; - return (-1); - } + return (netstat_local_sockets(type, list, kvm, nl, flags)); break; case PF_INET: case PF_INET6: - switch (protocol) { - case IPPROTO_TCP: - case IPPROTO_UDP: - case IPPROTO_DIVERT: - case IPPROTO_RAW: - case IPPROTO_ICMP: - case IPPROTO_IGMP: - case IPPROTO_PIM: - case IPPROTO_ICMPV6: - if (use_kvm) - NPCB_KVM(inet, domain, protocol, list, kvm, nl, - flags); - else - NPCB_SCT(inet, domain, protocol, list, flags); - break; - /* All PF_INET */ - case 0: - if (use_kvm) { - NPCB_KVM(inet, domain, IPPROTO_TCP, list, kvm, - nl, flags); - NPCB_KVM(inet, domain, IPPROTO_UDP, list, kvm, - nl, flags); - NPCB_KVM(inet, domain, IPPROTO_DIVERT, list, - kvm, nl, flags); - NPCB_KVM(inet, domain, IPPROTO_RAW, list, kvm, - nl, flags); - } else { - NPCB_SCT(inet, domain, IPPROTO_TCP, list, - flags); - NPCB_SCT(inet, domain, IPPROTO_UDP, list, - flags); - NPCB_SCT(inet, domain, IPPROTO_DIVERT, list, - flags); - NPCB_SCT(inet, domain, IPPROTO_RAW, list, - flags); - } - break; - default: - list->stl_error = NETSTAT_ERROR_UNSUPPORTED; - return (-1); - } + return (netstat_inet_sockets(domain, protocol, list, kvm, nl, + flags)); break; default: list->stl_error = NETSTAT_ERROR_UNSUPPORTED; return (-1); } -#undef NPCB_KVM -#undef NPCB_SCT return (0); } @@ -568,22 +609,28 @@ stp->st_conn = (u_long)0; stp->st_refs = (u_long)0; stp->st_reflink = (u_long)0; - stp->st_flags = SOCKTYPE_TCP; + stp->st_flags = 0; /* XXX: Remove this. */ stp->XXX_inpcb = *inp; /* XXX: address is missing. */ stp->st_address[0] = '\0'; - if (tp->t_state < 0 || tp->t_state >= TCP_NSTATES) - sprintf(stp->st_tcpstate, "%d", tp->t_state); - else { - sprintf(stp->st_tcpstate, "%s", tcpstates[tp->t_state]); + if (tp != NULL) { + if (tp->t_state < 0 || tp->t_state >= TCP_NSTATES) + sprintf(stp->st_tcpstate, "%d", tp->t_state); + else { + sprintf(stp->st_tcpstate, "%s", tcpstates[tp->t_state]); #if defined(TF_NEEDSYN) && defined(TF_NEEDFIN) - /* T/TCP `hidden state' */ - if (tp->t_flags & (TF_NEEDSYN|TF_NEEDFIN)) { - stp->st_tcpstate[0] = '*'; - stp->st_tcpstate[1] = '\0'; + /* T/TCP `hidden state' */ + if (tp->t_flags & (TF_NEEDSYN|TF_NEEDFIN)) { + stp->st_tcpstate[0] = '*'; + stp->st_tcpstate[1] = '\0'; + } +#endif /* defined(TF_NEEDSYN) && defined(TF_NEEDFIN) */ } -#endif /* defined(TF_NEEDSYN) && defined(TF_NEEDFIN) */ + stp->st_flags |= SOCKTYPE_TCP; + } else { + /* Has no TCP state. */ + stp->st_tcpstate[0] = '\0'; } #ifdef INET6 if ((inp->inp_vflag & INP_IPV6) != 0) ==== //depot/projects/soc2009/pgj_libstat/src/usr.bin/netstat/extern.h#5 (text+ko) ==== @@ -35,6 +35,7 @@ */ #include +#include extern int Aflag; /* show addresses of protocol control block */ extern int aflag; /* show all sockets (including servers) */ @@ -69,6 +70,8 @@ int sotoxsocket(struct socket *, struct xsocket *); void inetpr(void *, int, int); +void inetppr(struct socket_type *); +void unixdomainpr(struct socket_type *); void tcp_stats(u_long, const char *, int, int); void udp_stats(u_long, const char *, int, int); #ifdef SCTP ==== //depot/projects/soc2009/pgj_libstat/src/usr.bin/netstat/inet.c#13 (text+ko) ==== @@ -95,7 +95,6 @@ #ifdef INET6 static int udp_done, tcp_done; #endif /* INET6 */ -static void inetppr(struct socket_type *); /* * Print a summary of connections related to an Internet @@ -146,6 +145,8 @@ inetppr(stp); netstat_st_free(stp); } + netstat_sti_free(stip); + netstat_stl_free(stlp); #else netstat_stl_iterate(stlp, inetppr); #endif ==== //depot/projects/soc2009/pgj_libstat/src/usr.bin/netstat/main.c#8 (text+ko) ==== @@ -73,6 +73,9 @@ #include #include "extern.h" +#include + + static struct nlist nl[] = { #define N_IFNET 0 { .n_name = "_ifnet" }, @@ -294,6 +297,7 @@ #endif atalkprotox, NULL }; +static void connpr(struct socket_type *); static void printproto(struct protox *, const char *); static void usage(void); static struct protox *name2protox(const char *); @@ -336,6 +340,11 @@ struct protox *tp = NULL; /* for printing cblocks & stats */ int ch; + struct socket_type_list *stlp; + int error, st_flags; + struct socket_type_iterator *stip; + struct socket_type *stp; + af = AF_UNSPEC; while ((ch = getopt(argc, argv, "AaBbdf:ghI:iLlM:mN:np:rSstuWw:xz")) != -1) @@ -552,11 +561,11 @@ printproto(tp, tp->pr_name); exit(0); } - if (af == AF_INET || af == AF_UNSPEC) + if (af == AF_INET) for (tp = protox; tp->pr_name; tp++) printproto(tp, tp->pr_name); #ifdef INET6 - if (af == AF_INET6 || af == AF_UNSPEC) + if (af == AF_INET6) for (tp = ip6protox; tp->pr_name; tp++) printproto(tp, tp->pr_name); #endif /*INET6*/ @@ -579,11 +588,64 @@ for (tp = netgraphprotox; tp->pr_name; tp++) printproto(tp, tp->pr_name); #endif /* NETGRAPH */ - if ((af == AF_UNIX || af == AF_UNSPEC) && !sflag) + if (af == AF_UNIX && !sflag) unixpr(kvmd); + if (af == AF_UNSPEC) { + stlp = netstat_stl_alloc(); + if (stlp == NULL) { + warn("netstat_stl_alloc"); + exit(-1); + } + st_flags = 0; + if (!live) + st_flags |= NETSTAT_SOCKET_KVM; + if (aflag) + st_flags |= NETSTAT_SOCKET_ALL; + /* + * There should be guaranteed that sockets are not mixed (i.e. + * they are coming ordered by family/protocol). + */ + if (netstat_socket(PF_UNSPEC, 0, 0, stlp, st_flags, + kvmd) < 0) { + error = netstat_stl_geterror(stlp); + if (error == NETSTAT_ERROR_KVM) + warnx("netstat_socket: %s", kvm_geterr(kvmd)); + else + warnx("netstat_socket: %s", + netstat_strerror(error)); + exit(-1); + } + if (netstat_sti_alloc(stlp, &stip) < 0) { + warnx("netstat_sti_alloc"); + exit(-1); + } + for (stp = netstat_sti_first(stip); stp != NULL; + stp = netstat_sti_next(stip)) { + connpr(stp); + netstat_st_free(stp); + } + netstat_sti_free(stip); + netstat_stl_free(stlp); + } exit(0); } +static void +connpr(struct socket_type *stp) +{ + switch (netstat_st_get_family(stp)) { + case PF_INET: + case PF_INET6: + inetppr(stp); + break; + case PF_LOCAL: + unixdomainpr(stp); + break; + default: + break; + } +} + /* * Print out protocol statistics or control blocks (per sflag). * If the interface was not specifically requested, and the symbol @@ -650,7 +712,8 @@ case IPPROTO_IGMP: case IPPROTO_PIM: case IPPROTO_ICMPV6: - inetpr(kvmd, af, tp->pr_protocol); + inetpr(kvmd, (af == PF_INET6) ? af : PF_INET, + tp->pr_protocol); break; default: if (pr != NULL) ==== //depot/projects/soc2009/pgj_libstat/src/usr.bin/netstat/unix.c#12 (text+ko) ==== @@ -55,8 +55,6 @@ #define USE_ITERATOR_TYPE -static void unixdomainpr(struct socket_type *); - void unixpr(void *kvmd) { @@ -105,12 +103,14 @@ unixdomainpr(stp); netstat_st_free(stp); } + netstat_sti_free(stip); + netstat_stl_free(stlp); #else netstat_stl_iterate(stlp, unixdomainpr); #endif } -static void +void unixdomainpr(struct socket_type *stp) { static int first = 1; From owner-p4-projects@FreeBSD.ORG Fri Jun 12 14:57:38 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 569C9106566B; Fri, 12 Jun 2009 14:57:38 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 153AA1065672 for ; Fri, 12 Jun 2009 14:57:38 +0000 (UTC) (envelope-from pgj@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 0421A8FC13 for ; Fri, 12 Jun 2009 14:57:38 +0000 (UTC) (envelope-from pgj@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n5CEvbDe081933 for ; Fri, 12 Jun 2009 14:57:37 GMT (envelope-from pgj@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n5CEvbJM081931 for perforce@freebsd.org; Fri, 12 Jun 2009 14:57:37 GMT (envelope-from pgj@FreeBSD.org) Date: Fri, 12 Jun 2009 14:57:37 GMT Message-Id: <200906121457.n5CEvbJM081931@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to pgj@FreeBSD.org using -f From: Gabor Pali To: Perforce Change Reviews Cc: Subject: PERFORCE change 164179 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 12 Jun 2009 14:57:39 -0000 http://perforce.freebsd.org/chv.cgi?CH=164179 Change 164179 by pgj@petymeg-current on 2009/06/12 14:56:56 Remove some cruft Affected files ... .. //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat.c#24 edit Differences ... ==== //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat.c#24 (text+ko) ==== @@ -512,18 +512,14 @@ result = netstat_local_sockets(0, list, kvm, nl, flags); if (result < 0) return (result); -#if 1 result = netstat_inet_sockets(PF_INET, 0, list, kvm, nl, flags); if (result < 0) return (result); -#endif -#if 0 result = netstat_inet_sockets(PF_INET6, 0, list, kvm, nl, flags); if (result < 0) return (result); -#endif break; case PF_LOCAL: return (netstat_local_sockets(type, list, kvm, nl, flags)); From owner-p4-projects@FreeBSD.ORG Fri Jun 12 15:23:04 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 45D2610656B4; Fri, 12 Jun 2009 15:23:04 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id F405F1065680 for ; Fri, 12 Jun 2009 15:23:03 +0000 (UTC) (envelope-from rene@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id DFB618FC15 for ; Fri, 12 Jun 2009 15:23:03 +0000 (UTC) (envelope-from rene@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n5CFN3kQ084850 for ; Fri, 12 Jun 2009 15:23:03 GMT (envelope-from rene@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n5CFN37x084848 for perforce@freebsd.org; Fri, 12 Jun 2009 15:23:03 GMT (envelope-from rene@FreeBSD.org) Date: Fri, 12 Jun 2009 15:23:03 GMT Message-Id: <200906121523.n5CFN37x084848@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to rene@FreeBSD.org using -f From: Rene Ladan To: Perforce Change Reviews Cc: Subject: PERFORCE change 164180 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 12 Jun 2009 15:23:05 -0000 http://perforce.freebsd.org/chv.cgi?CH=164180 Change 164180 by rene@rene_self on 2009/06/12 15:22:07 IFC Affected files ... .. //depot/projects/docproj_nl/en_US.ISO8859-1/articles/contributors/contrib.additional.sgml#25 integrate .. //depot/projects/docproj_nl/en_US.ISO8859-1/books/porters-handbook/book.sgml#34 integrate .. //depot/projects/docproj_nl/nl_NL.ISO8859-1/books/handbook/eresources/chapter.sgml#23 integrate .. //depot/projects/docproj_nl/nl_NL.ISO8859-1/books/handbook/jails/chapter.sgml#14 integrate .. //depot/projects/docproj_nl/share/pgpkeys/des.key#3 integrate .. //depot/projects/docproj_nl/www/en/releng/index.sgml#25 integrate .. //depot/projects/docproj_nl/www/nl/Makefile#12 integrate .. //depot/projects/docproj_nl/www/nl/publish.sgml#7 integrate .. //depot/projects/docproj_nl/www/nl/share/sgml/navibar.l10n.ent#8 integrate .. //depot/projects/docproj_nl/www/share/sgml/advisories.xml#11 integrate .. //depot/projects/docproj_nl/www/share/sgml/usergroups.xml#6 integrate Differences ... ==== //depot/projects/docproj_nl/en_US.ISO8859-1/articles/contributors/contrib.additional.sgml#25 (text+ko) ==== @@ -1,4 +1,4 @@ - + 8.0-CURRENT after the introduction of vnet destructor hooks and infrastructure. + + 800097 + June 11, 2009 + 8.0-CURRENT after the introduction of netgraph + outbound to inbound path call detection and queuing, + which also changed the layout of struct thread. + ==== //depot/projects/docproj_nl/nl_NL.ISO8859-1/books/handbook/eresources/chapter.sgml#23 (text+ko) ==== @@ -1,7 +1,7 @@ + @@ -7,9 +7,7 @@ Key fingerprint = 3A1C 8E68 952C 3305 6984 6486 30D4 3A6E 64EB E220 uid Dag-Erling Smørgrav uid Dag-Erling Smørgrav -uid Dag-Erling Smørgrav uid [jpeg image of size 3315] -sub 2048g/920C3313 2006-11-11 [expires: 2008-11-10] ]]> ==== //depot/projects/docproj_nl/www/en/releng/index.sgml#25 (text+ko) ==== @@ -1,6 +1,6 @@ - + @@ -94,7 +94,7 @@ RELENG_7_2 Frozen - &contact.re; + &contact.so; FreeBSD 7.2 supported errata fix branch. ==== //depot/projects/docproj_nl/www/nl/Makefile#12 (text+ko) ==== @@ -1,4 +1,4 @@ -# $FreeBSD: www/nl/Makefile,v 1.2 2009/06/01 20:02:31 rene Exp $ +# $FreeBSD: www/nl/Makefile,v 1.3 2009/06/10 21:08:59 rene Exp $ # %SOURCE% en/Makefile # %SRCID% 1.146 ==== //depot/projects/docproj_nl/www/nl/publish.sgml#7 (text+ko) ==== ==== //depot/projects/docproj_nl/www/nl/share/sgml/navibar.l10n.ent#8 (text+ko) ==== @@ -1,4 +1,4 @@ - ==== //depot/projects/docproj_nl/www/share/sgml/advisories.xml#11 (text+ko) ==== @@ -2,7 +2,7 @@ - $FreeBSD: www/share/sgml/advisories.xml,v 1.229 2009/04/22 14:20:33 cperciva Exp $ + $FreeBSD: www/share/sgml/advisories.xml,v 1.230 2009/06/10 10:43:06 cperciva Exp $ @@ -10,6 +10,26 @@ 2009 + 6 + + + 10 + + + FreeBSD-SA-09:11.ntpd + + + + FreeBSD-SA-09:10.ipv6 + + + + FreeBSD-SA-09:09.pipe + + + + + 4 ==== //depot/projects/docproj_nl/www/share/sgml/usergroups.xml#6 (text+ko) ==== @@ -5,7 +5,7 @@ - $FreeBSD: www/share/sgml/usergroups.xml,v 1.78 2009/04/30 06:24:53 murray Exp $ + $FreeBSD: www/share/sgml/usergroups.xml,v 1.80 2009/06/09 20:45:27 marius Exp $ @@ -224,6 +224,16 @@ + + HappaBSD Regensburg + http://www.HappaBSD.de/ + + HappaBSD is a regulars' table taking place every + month in Regensburg, Bavaria, Germany. For more information + see the HappaBSD website. + + + Unix Users Group Rhein-Neckar e.V. (UUGRN e.V.) http://www.uugrn.org/ From owner-p4-projects@FreeBSD.ORG Fri Jun 12 15:51:35 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 600AA1065679; Fri, 12 Jun 2009 15:51:35 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 1C8E0106566C for ; Fri, 12 Jun 2009 15:51:35 +0000 (UTC) (envelope-from thompsa@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 08F4E8FC17 for ; Fri, 12 Jun 2009 15:51:35 +0000 (UTC) (envelope-from thompsa@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n5CFpYsc087207 for ; Fri, 12 Jun 2009 15:51:34 GMT (envelope-from thompsa@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n5CFpWie087201 for perforce@freebsd.org; Fri, 12 Jun 2009 15:51:32 GMT (envelope-from thompsa@freebsd.org) Date: Fri, 12 Jun 2009 15:51:32 GMT Message-Id: <200906121551.n5CFpWie087201@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to thompsa@freebsd.org using -f From: Andrew Thompson To: Perforce Change Reviews Cc: Subject: PERFORCE change 164182 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 12 Jun 2009 15:51:36 -0000 http://perforce.freebsd.org/chv.cgi?CH=164182 Change 164182 by thompsa@thompsa_burger on 2009/06/12 15:51:13 IFC @164174 Affected files ... .. //depot/projects/usb/src/sys/amd64/acpica/OsdEnvironment.c#3 integrate .. //depot/projects/usb/src/sys/amd64/acpica/acpi_machdep.c#5 integrate .. //depot/projects/usb/src/sys/amd64/acpica/acpi_wakeup.c#5 integrate .. //depot/projects/usb/src/sys/amd64/acpica/madt.c#7 integrate .. //depot/projects/usb/src/sys/amd64/amd64/local_apic.c#16 integrate .. //depot/projects/usb/src/sys/amd64/amd64/machdep.c#19 integrate .. //depot/projects/usb/src/sys/amd64/amd64/pmap.c#22 integrate .. //depot/projects/usb/src/sys/amd64/amd64/support.S#8 integrate .. //depot/projects/usb/src/sys/amd64/conf/DEFAULTS#11 integrate .. //depot/projects/usb/src/sys/amd64/conf/GENERIC#27 integrate .. //depot/projects/usb/src/sys/amd64/conf/NOTES#19 integrate .. //depot/projects/usb/src/sys/amd64/include/param.h#7 integrate .. //depot/projects/usb/src/sys/amd64/isa/clock.c#9 integrate .. //depot/projects/usb/src/sys/arm/arm/intr.c#10 integrate .. //depot/projects/usb/src/sys/arm/arm/locore.S#8 integrate .. //depot/projects/usb/src/sys/arm/arm/pmap.c#15 integrate .. //depot/projects/usb/src/sys/arm/at91/at91.c#16 integrate .. //depot/projects/usb/src/sys/arm/at91/at91_cfata.c#3 integrate .. //depot/projects/usb/src/sys/arm/at91/at91_mci.c#11 integrate .. //depot/projects/usb/src/sys/arm/at91/at91_twi.c#9 integrate .. //depot/projects/usb/src/sys/arm/at91/if_ate.c#14 integrate .. //depot/projects/usb/src/sys/arm/include/intr.h#9 integrate .. //depot/projects/usb/src/sys/arm/mv/ic.c#3 integrate .. //depot/projects/usb/src/sys/arm/mv/twsi.c#2 integrate .. //depot/projects/usb/src/sys/arm/sa11x0/sa11x0_irqhandler.c#3 integrate .. //depot/projects/usb/src/sys/arm/xscale/i80321/i80321.c#4 integrate .. //depot/projects/usb/src/sys/arm/xscale/i80321/i80321_pci.c#5 integrate .. //depot/projects/usb/src/sys/arm/xscale/i8134x/i81342.c#2 integrate .. //depot/projects/usb/src/sys/arm/xscale/ixp425/avila_ata.c#5 integrate .. //depot/projects/usb/src/sys/arm/xscale/ixp425/avila_led.c#3 integrate .. //depot/projects/usb/src/sys/arm/xscale/ixp425/cambria_led.c#2 integrate .. //depot/projects/usb/src/sys/arm/xscale/ixp425/if_npe.c#11 integrate .. //depot/projects/usb/src/sys/arm/xscale/ixp425/ixp425.c#9 integrate .. //depot/projects/usb/src/sys/arm/xscale/ixp425/ixp425_iic.c#5 integrate .. //depot/projects/usb/src/sys/arm/xscale/pxa/pxa_icu.c#2 integrate .. //depot/projects/usb/src/sys/boot/forth/loader.conf#19 integrate .. //depot/projects/usb/src/sys/boot/i386/libi386/Makefile#5 integrate .. //depot/projects/usb/src/sys/boot/i386/libi386/biosacpi.c#3 integrate .. //depot/projects/usb/src/sys/boot/i386/libi386/biosdisk.c#11 integrate .. //depot/projects/usb/src/sys/boot/i386/libi386/biospnp.c#2 integrate .. //depot/projects/usb/src/sys/boot/ia64/ski/acpi_stub.c#4 integrate .. //depot/projects/usb/src/sys/boot/uboot/lib/disk.c#4 integrate .. //depot/projects/usb/src/sys/cam/scsi/scsi_target.c#5 integrate .. //depot/projects/usb/src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/arc.c#5 integrate .. //depot/projects/usb/src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu.c#4 integrate .. //depot/projects/usb/src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_zfetch.c#4 integrate .. //depot/projects/usb/src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/dmu.h#3 integrate .. //depot/projects/usb/src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vfsops.c#5 integrate .. //depot/projects/usb/src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zio.c#4 integrate .. //depot/projects/usb/src/sys/compat/freebsd32/freebsd32_proto.h#15 integrate .. //depot/projects/usb/src/sys/compat/freebsd32/freebsd32_syscall.h#15 integrate .. //depot/projects/usb/src/sys/compat/freebsd32/freebsd32_syscalls.c#15 integrate .. //depot/projects/usb/src/sys/compat/freebsd32/freebsd32_sysent.c#16 integrate .. //depot/projects/usb/src/sys/compat/freebsd32/syscalls.master#15 integrate .. //depot/projects/usb/src/sys/compat/linprocfs/linprocfs.c#18 integrate .. //depot/projects/usb/src/sys/compat/linux/linux_file.c#13 integrate .. //depot/projects/usb/src/sys/compat/linux/linux_getcwd.c#8 integrate .. //depot/projects/usb/src/sys/compat/linux/linux_ioctl.c#12 integrate .. //depot/projects/usb/src/sys/compat/linux/linux_misc.c#20 integrate .. //depot/projects/usb/src/sys/compat/linux/linux_stats.c#12 integrate .. //depot/projects/usb/src/sys/compat/ndis/subr_usbd.c#14 integrate .. //depot/projects/usb/src/sys/compat/svr4/svr4_fcntl.c#8 integrate .. //depot/projects/usb/src/sys/compat/svr4/svr4_misc.c#12 integrate .. //depot/projects/usb/src/sys/compat/svr4/svr4_sockio.c#7 integrate .. //depot/projects/usb/src/sys/conf/NOTES#39 integrate .. //depot/projects/usb/src/sys/conf/files#67 integrate .. //depot/projects/usb/src/sys/conf/files.powerpc#25 integrate .. //depot/projects/usb/src/sys/conf/options#32 integrate .. //depot/projects/usb/src/sys/contrib/altq/altq/altq_subr.c#10 integrate .. //depot/projects/usb/src/sys/contrib/dev/acpica/CHANGES.txt#3 delete .. //depot/projects/usb/src/sys/contrib/dev/acpica/acapps.h#3 delete .. //depot/projects/usb/src/sys/contrib/dev/acpica/acconfig.h#3 delete .. //depot/projects/usb/src/sys/contrib/dev/acpica/acdebug.h#3 delete .. //depot/projects/usb/src/sys/contrib/dev/acpica/acdisasm.h#3 delete .. //depot/projects/usb/src/sys/contrib/dev/acpica/acdispat.h#3 delete .. //depot/projects/usb/src/sys/contrib/dev/acpica/acefi.h#3 delete .. //depot/projects/usb/src/sys/contrib/dev/acpica/acenv.h#3 delete .. //depot/projects/usb/src/sys/contrib/dev/acpica/acevents.h#3 delete .. //depot/projects/usb/src/sys/contrib/dev/acpica/acexcep.h#3 delete .. //depot/projects/usb/src/sys/contrib/dev/acpica/acfreebsd.h#4 delete .. //depot/projects/usb/src/sys/contrib/dev/acpica/acgcc.h#3 delete .. //depot/projects/usb/src/sys/contrib/dev/acpica/acglobal.h#3 delete .. //depot/projects/usb/src/sys/contrib/dev/acpica/achware.h#3 delete .. //depot/projects/usb/src/sys/contrib/dev/acpica/acinterp.h#3 delete .. //depot/projects/usb/src/sys/contrib/dev/acpica/aclocal.h#3 delete .. //depot/projects/usb/src/sys/contrib/dev/acpica/acmacros.h#3 delete .. //depot/projects/usb/src/sys/contrib/dev/acpica/acnames.h#3 delete .. //depot/projects/usb/src/sys/contrib/dev/acpica/acnamesp.h#3 delete .. //depot/projects/usb/src/sys/contrib/dev/acpica/acobject.h#3 delete .. //depot/projects/usb/src/sys/contrib/dev/acpica/acopcode.h#3 delete .. //depot/projects/usb/src/sys/contrib/dev/acpica/acoutput.h#3 delete .. //depot/projects/usb/src/sys/contrib/dev/acpica/acparser.h#3 delete .. //depot/projects/usb/src/sys/contrib/dev/acpica/acpi.h#3 delete .. //depot/projects/usb/src/sys/contrib/dev/acpica/acpica_prep.sh#3 integrate .. //depot/projects/usb/src/sys/contrib/dev/acpica/acpiosxf.h#3 delete .. //depot/projects/usb/src/sys/contrib/dev/acpica/acpixf.h#3 delete .. //depot/projects/usb/src/sys/contrib/dev/acpica/acresrc.h#3 delete .. //depot/projects/usb/src/sys/contrib/dev/acpica/acstruct.h#3 delete .. //depot/projects/usb/src/sys/contrib/dev/acpica/actables.h#3 delete .. //depot/projects/usb/src/sys/contrib/dev/acpica/actbl.h#3 delete .. //depot/projects/usb/src/sys/contrib/dev/acpica/actbl1.h#3 delete .. //depot/projects/usb/src/sys/contrib/dev/acpica/actbl2.h#3 delete .. //depot/projects/usb/src/sys/contrib/dev/acpica/actypes.h#3 delete .. //depot/projects/usb/src/sys/contrib/dev/acpica/acutils.h#3 delete .. //depot/projects/usb/src/sys/contrib/dev/acpica/aecommon.h#3 delete .. //depot/projects/usb/src/sys/contrib/dev/acpica/amlcode.h#3 delete .. //depot/projects/usb/src/sys/contrib/dev/acpica/amlresrc.h#3 delete .. //depot/projects/usb/src/sys/contrib/dev/acpica/changes.txt#1 branch .. //depot/projects/usb/src/sys/contrib/dev/acpica/common/adfile.c#2 integrate .. //depot/projects/usb/src/sys/contrib/dev/acpica/common/adisasm.c#3 integrate .. //depot/projects/usb/src/sys/contrib/dev/acpica/common/adwalk.c#2 integrate .. //depot/projects/usb/src/sys/contrib/dev/acpica/common/dmrestag.c#2 integrate .. //depot/projects/usb/src/sys/contrib/dev/acpica/common/dmtable.c#2 integrate .. //depot/projects/usb/src/sys/contrib/dev/acpica/common/dmtbdump.c#2 integrate .. //depot/projects/usb/src/sys/contrib/dev/acpica/common/dmtbinfo.c#2 integrate .. //depot/projects/usb/src/sys/contrib/dev/acpica/common/getopt.c#3 integrate .. //depot/projects/usb/src/sys/contrib/dev/acpica/compiler/aslanalyze.c#3 integrate .. //depot/projects/usb/src/sys/contrib/dev/acpica/compiler/aslcodegen.c#3 integrate .. //depot/projects/usb/src/sys/contrib/dev/acpica/compiler/aslcompile.c#3 integrate .. //depot/projects/usb/src/sys/contrib/dev/acpica/compiler/aslcompiler.h#3 integrate .. //depot/projects/usb/src/sys/contrib/dev/acpica/compiler/aslcompiler.l#3 integrate .. //depot/projects/usb/src/sys/contrib/dev/acpica/compiler/aslcompiler.y#3 integrate .. //depot/projects/usb/src/sys/contrib/dev/acpica/compiler/asldefine.h#3 integrate .. //depot/projects/usb/src/sys/contrib/dev/acpica/compiler/aslerror.c#3 integrate .. //depot/projects/usb/src/sys/contrib/dev/acpica/compiler/aslfiles.c#3 integrate .. //depot/projects/usb/src/sys/contrib/dev/acpica/compiler/aslfold.c#3 integrate .. //depot/projects/usb/src/sys/contrib/dev/acpica/compiler/aslglobal.h#3 integrate .. //depot/projects/usb/src/sys/contrib/dev/acpica/compiler/asllength.c#3 integrate .. //depot/projects/usb/src/sys/contrib/dev/acpica/compiler/asllisting.c#3 integrate .. //depot/projects/usb/src/sys/contrib/dev/acpica/compiler/aslload.c#3 integrate .. //depot/projects/usb/src/sys/contrib/dev/acpica/compiler/asllookup.c#3 integrate .. //depot/projects/usb/src/sys/contrib/dev/acpica/compiler/aslmain.c#3 integrate .. //depot/projects/usb/src/sys/contrib/dev/acpica/compiler/aslmap.c#3 integrate .. //depot/projects/usb/src/sys/contrib/dev/acpica/compiler/aslopcodes.c#3 integrate .. //depot/projects/usb/src/sys/contrib/dev/acpica/compiler/asloperands.c#3 integrate .. //depot/projects/usb/src/sys/contrib/dev/acpica/compiler/aslopt.c#3 integrate .. //depot/projects/usb/src/sys/contrib/dev/acpica/compiler/aslresource.c#3 integrate .. //depot/projects/usb/src/sys/contrib/dev/acpica/compiler/aslrestype1.c#3 integrate .. //depot/projects/usb/src/sys/contrib/dev/acpica/compiler/aslrestype2.c#3 integrate .. //depot/projects/usb/src/sys/contrib/dev/acpica/compiler/aslstartup.c#1 branch .. //depot/projects/usb/src/sys/contrib/dev/acpica/compiler/aslstubs.c#3 integrate .. //depot/projects/usb/src/sys/contrib/dev/acpica/compiler/asltransform.c#3 integrate .. //depot/projects/usb/src/sys/contrib/dev/acpica/compiler/asltree.c#3 integrate .. //depot/projects/usb/src/sys/contrib/dev/acpica/compiler/asltypes.h#3 integrate .. //depot/projects/usb/src/sys/contrib/dev/acpica/compiler/aslutils.c#3 integrate .. //depot/projects/usb/src/sys/contrib/dev/acpica/dbcmds.c#3 delete .. //depot/projects/usb/src/sys/contrib/dev/acpica/dbdisply.c#3 delete .. //depot/projects/usb/src/sys/contrib/dev/acpica/dbexec.c#3 delete .. //depot/projects/usb/src/sys/contrib/dev/acpica/dbfileio.c#3 delete .. //depot/projects/usb/src/sys/contrib/dev/acpica/dbhistry.c#3 delete .. //depot/projects/usb/src/sys/contrib/dev/acpica/dbinput.c#3 delete .. //depot/projects/usb/src/sys/contrib/dev/acpica/dbstats.c#3 delete .. //depot/projects/usb/src/sys/contrib/dev/acpica/dbutils.c#3 delete .. //depot/projects/usb/src/sys/contrib/dev/acpica/dbxface.c#3 delete .. //depot/projects/usb/src/sys/contrib/dev/acpica/debugger/dbcmds.c#1 branch .. //depot/projects/usb/src/sys/contrib/dev/acpica/debugger/dbdisply.c#1 branch .. //depot/projects/usb/src/sys/contrib/dev/acpica/debugger/dbexec.c#1 branch .. //depot/projects/usb/src/sys/contrib/dev/acpica/debugger/dbfileio.c#1 branch .. //depot/projects/usb/src/sys/contrib/dev/acpica/debugger/dbhistry.c#1 branch .. //depot/projects/usb/src/sys/contrib/dev/acpica/debugger/dbinput.c#1 branch .. //depot/projects/usb/src/sys/contrib/dev/acpica/debugger/dbstats.c#1 branch .. //depot/projects/usb/src/sys/contrib/dev/acpica/debugger/dbutils.c#1 branch .. //depot/projects/usb/src/sys/contrib/dev/acpica/debugger/dbxface.c#1 branch .. //depot/projects/usb/src/sys/contrib/dev/acpica/disassembler/dmbuffer.c#1 branch .. //depot/projects/usb/src/sys/contrib/dev/acpica/disassembler/dmnames.c#1 branch .. //depot/projects/usb/src/sys/contrib/dev/acpica/disassembler/dmobject.c#1 branch .. //depot/projects/usb/src/sys/contrib/dev/acpica/disassembler/dmopcode.c#1 branch .. //depot/projects/usb/src/sys/contrib/dev/acpica/disassembler/dmresrc.c#1 branch .. //depot/projects/usb/src/sys/contrib/dev/acpica/disassembler/dmresrcl.c#1 branch .. //depot/projects/usb/src/sys/contrib/dev/acpica/disassembler/dmresrcs.c#1 branch .. //depot/projects/usb/src/sys/contrib/dev/acpica/disassembler/dmutils.c#1 branch .. //depot/projects/usb/src/sys/contrib/dev/acpica/disassembler/dmwalk.c#1 branch .. //depot/projects/usb/src/sys/contrib/dev/acpica/dispatcher/dsfield.c#1 branch .. //depot/projects/usb/src/sys/contrib/dev/acpica/dispatcher/dsinit.c#1 branch .. //depot/projects/usb/src/sys/contrib/dev/acpica/dispatcher/dsmethod.c#1 branch .. //depot/projects/usb/src/sys/contrib/dev/acpica/dispatcher/dsmthdat.c#1 branch .. //depot/projects/usb/src/sys/contrib/dev/acpica/dispatcher/dsobject.c#1 branch .. //depot/projects/usb/src/sys/contrib/dev/acpica/dispatcher/dsopcode.c#1 branch .. //depot/projects/usb/src/sys/contrib/dev/acpica/dispatcher/dsutils.c#1 branch .. //depot/projects/usb/src/sys/contrib/dev/acpica/dispatcher/dswexec.c#1 branch .. //depot/projects/usb/src/sys/contrib/dev/acpica/dispatcher/dswload.c#1 branch .. //depot/projects/usb/src/sys/contrib/dev/acpica/dispatcher/dswscope.c#1 branch .. //depot/projects/usb/src/sys/contrib/dev/acpica/dispatcher/dswstate.c#1 branch .. //depot/projects/usb/src/sys/contrib/dev/acpica/dmbuffer.c#3 delete .. //depot/projects/usb/src/sys/contrib/dev/acpica/dmnames.c#3 delete .. //depot/projects/usb/src/sys/contrib/dev/acpica/dmobject.c#3 delete .. //depot/projects/usb/src/sys/contrib/dev/acpica/dmopcode.c#3 delete .. //depot/projects/usb/src/sys/contrib/dev/acpica/dmresrc.c#3 delete .. //depot/projects/usb/src/sys/contrib/dev/acpica/dmresrcl.c#3 delete .. //depot/projects/usb/src/sys/contrib/dev/acpica/dmresrcs.c#3 delete .. //depot/projects/usb/src/sys/contrib/dev/acpica/dmutils.c#3 delete .. //depot/projects/usb/src/sys/contrib/dev/acpica/dmwalk.c#3 delete .. //depot/projects/usb/src/sys/contrib/dev/acpica/dsfield.c#3 delete .. //depot/projects/usb/src/sys/contrib/dev/acpica/dsinit.c#3 delete .. //depot/projects/usb/src/sys/contrib/dev/acpica/dsmethod.c#3 delete .. //depot/projects/usb/src/sys/contrib/dev/acpica/dsmthdat.c#3 delete .. //depot/projects/usb/src/sys/contrib/dev/acpica/dsobject.c#3 delete .. //depot/projects/usb/src/sys/contrib/dev/acpica/dsopcode.c#3 delete .. //depot/projects/usb/src/sys/contrib/dev/acpica/dsutils.c#3 delete .. //depot/projects/usb/src/sys/contrib/dev/acpica/dswexec.c#3 delete .. //depot/projects/usb/src/sys/contrib/dev/acpica/dswload.c#3 delete .. //depot/projects/usb/src/sys/contrib/dev/acpica/dswscope.c#3 delete .. //depot/projects/usb/src/sys/contrib/dev/acpica/dswstate.c#3 delete .. //depot/projects/usb/src/sys/contrib/dev/acpica/events/evevent.c#1 branch .. //depot/projects/usb/src/sys/contrib/dev/acpica/events/evgpe.c#1 branch .. //depot/projects/usb/src/sys/contrib/dev/acpica/events/evgpeblk.c#1 branch .. //depot/projects/usb/src/sys/contrib/dev/acpica/events/evmisc.c#1 branch .. //depot/projects/usb/src/sys/contrib/dev/acpica/events/evregion.c#1 branch .. //depot/projects/usb/src/sys/contrib/dev/acpica/events/evrgnini.c#1 branch .. //depot/projects/usb/src/sys/contrib/dev/acpica/events/evsci.c#1 branch .. //depot/projects/usb/src/sys/contrib/dev/acpica/events/evxface.c#1 branch .. //depot/projects/usb/src/sys/contrib/dev/acpica/events/evxfevnt.c#1 branch .. //depot/projects/usb/src/sys/contrib/dev/acpica/events/evxfregn.c#1 branch .. //depot/projects/usb/src/sys/contrib/dev/acpica/evevent.c#3 delete .. //depot/projects/usb/src/sys/contrib/dev/acpica/evgpe.c#4 delete .. //depot/projects/usb/src/sys/contrib/dev/acpica/evgpeblk.c#3 delete .. //depot/projects/usb/src/sys/contrib/dev/acpica/evmisc.c#4 delete .. //depot/projects/usb/src/sys/contrib/dev/acpica/evregion.c#3 delete .. //depot/projects/usb/src/sys/contrib/dev/acpica/evrgnini.c#3 delete .. //depot/projects/usb/src/sys/contrib/dev/acpica/evsci.c#3 delete .. //depot/projects/usb/src/sys/contrib/dev/acpica/evxface.c#4 delete .. //depot/projects/usb/src/sys/contrib/dev/acpica/evxfevnt.c#3 delete .. //depot/projects/usb/src/sys/contrib/dev/acpica/evxfregn.c#3 delete .. //depot/projects/usb/src/sys/contrib/dev/acpica/exconfig.c#3 delete .. //depot/projects/usb/src/sys/contrib/dev/acpica/exconvrt.c#3 delete .. //depot/projects/usb/src/sys/contrib/dev/acpica/excreate.c#3 delete .. //depot/projects/usb/src/sys/contrib/dev/acpica/exdump.c#3 delete .. //depot/projects/usb/src/sys/contrib/dev/acpica/executer/exconfig.c#1 branch .. //depot/projects/usb/src/sys/contrib/dev/acpica/executer/exconvrt.c#1 branch .. //depot/projects/usb/src/sys/contrib/dev/acpica/executer/excreate.c#1 branch .. //depot/projects/usb/src/sys/contrib/dev/acpica/executer/exdump.c#1 branch .. //depot/projects/usb/src/sys/contrib/dev/acpica/executer/exfield.c#1 branch .. //depot/projects/usb/src/sys/contrib/dev/acpica/executer/exfldio.c#1 branch .. //depot/projects/usb/src/sys/contrib/dev/acpica/executer/exmisc.c#1 branch .. //depot/projects/usb/src/sys/contrib/dev/acpica/executer/exmutex.c#1 branch .. //depot/projects/usb/src/sys/contrib/dev/acpica/executer/exnames.c#1 branch .. //depot/projects/usb/src/sys/contrib/dev/acpica/executer/exoparg1.c#1 branch .. //depot/projects/usb/src/sys/contrib/dev/acpica/executer/exoparg2.c#1 branch .. //depot/projects/usb/src/sys/contrib/dev/acpica/executer/exoparg3.c#1 branch .. //depot/projects/usb/src/sys/contrib/dev/acpica/executer/exoparg6.c#1 branch .. //depot/projects/usb/src/sys/contrib/dev/acpica/executer/exprep.c#1 branch .. //depot/projects/usb/src/sys/contrib/dev/acpica/executer/exregion.c#1 branch .. //depot/projects/usb/src/sys/contrib/dev/acpica/executer/exresnte.c#1 branch .. //depot/projects/usb/src/sys/contrib/dev/acpica/executer/exresolv.c#1 branch .. //depot/projects/usb/src/sys/contrib/dev/acpica/executer/exresop.c#1 branch .. //depot/projects/usb/src/sys/contrib/dev/acpica/executer/exstore.c#1 branch .. //depot/projects/usb/src/sys/contrib/dev/acpica/executer/exstoren.c#1 branch .. //depot/projects/usb/src/sys/contrib/dev/acpica/executer/exstorob.c#1 branch .. //depot/projects/usb/src/sys/contrib/dev/acpica/executer/exsystem.c#1 branch .. //depot/projects/usb/src/sys/contrib/dev/acpica/executer/exutils.c#1 branch .. //depot/projects/usb/src/sys/contrib/dev/acpica/exfield.c#3 delete .. //depot/projects/usb/src/sys/contrib/dev/acpica/exfldio.c#3 delete .. //depot/projects/usb/src/sys/contrib/dev/acpica/exmisc.c#3 delete .. //depot/projects/usb/src/sys/contrib/dev/acpica/exmutex.c#3 delete .. //depot/projects/usb/src/sys/contrib/dev/acpica/exnames.c#3 delete .. //depot/projects/usb/src/sys/contrib/dev/acpica/exoparg1.c#3 delete .. //depot/projects/usb/src/sys/contrib/dev/acpica/exoparg2.c#3 delete .. //depot/projects/usb/src/sys/contrib/dev/acpica/exoparg3.c#3 delete .. //depot/projects/usb/src/sys/contrib/dev/acpica/exoparg6.c#3 delete .. //depot/projects/usb/src/sys/contrib/dev/acpica/exprep.c#3 delete .. //depot/projects/usb/src/sys/contrib/dev/acpica/exregion.c#3 delete .. //depot/projects/usb/src/sys/contrib/dev/acpica/exresnte.c#3 delete .. //depot/projects/usb/src/sys/contrib/dev/acpica/exresolv.c#3 delete .. //depot/projects/usb/src/sys/contrib/dev/acpica/exresop.c#3 delete .. //depot/projects/usb/src/sys/contrib/dev/acpica/exstore.c#3 delete .. //depot/projects/usb/src/sys/contrib/dev/acpica/exstoren.c#3 delete .. //depot/projects/usb/src/sys/contrib/dev/acpica/exstorob.c#3 delete .. //depot/projects/usb/src/sys/contrib/dev/acpica/exsystem.c#3 delete .. //depot/projects/usb/src/sys/contrib/dev/acpica/exutils.c#3 delete .. //depot/projects/usb/src/sys/contrib/dev/acpica/hardware/hwacpi.c#1 branch .. //depot/projects/usb/src/sys/contrib/dev/acpica/hardware/hwgpe.c#1 branch .. //depot/projects/usb/src/sys/contrib/dev/acpica/hardware/hwregs.c#1 branch .. //depot/projects/usb/src/sys/contrib/dev/acpica/hardware/hwsleep.c#1 branch .. //depot/projects/usb/src/sys/contrib/dev/acpica/hardware/hwtimer.c#1 branch .. //depot/projects/usb/src/sys/contrib/dev/acpica/hardware/hwvalid.c#1 branch .. //depot/projects/usb/src/sys/contrib/dev/acpica/hardware/hwxface.c#1 branch .. //depot/projects/usb/src/sys/contrib/dev/acpica/hwacpi.c#3 delete .. //depot/projects/usb/src/sys/contrib/dev/acpica/hwgpe.c#3 delete .. //depot/projects/usb/src/sys/contrib/dev/acpica/hwregs.c#3 delete .. //depot/projects/usb/src/sys/contrib/dev/acpica/hwsleep.c#3 delete .. //depot/projects/usb/src/sys/contrib/dev/acpica/hwtimer.c#3 delete .. //depot/projects/usb/src/sys/contrib/dev/acpica/include/acapps.h#1 branch .. //depot/projects/usb/src/sys/contrib/dev/acpica/include/accommon.h#1 branch .. //depot/projects/usb/src/sys/contrib/dev/acpica/include/acconfig.h#1 branch .. //depot/projects/usb/src/sys/contrib/dev/acpica/include/acdebug.h#1 branch .. //depot/projects/usb/src/sys/contrib/dev/acpica/include/acdisasm.h#1 branch .. //depot/projects/usb/src/sys/contrib/dev/acpica/include/acdispat.h#1 branch .. //depot/projects/usb/src/sys/contrib/dev/acpica/include/acevents.h#1 branch .. //depot/projects/usb/src/sys/contrib/dev/acpica/include/acexcep.h#1 branch .. //depot/projects/usb/src/sys/contrib/dev/acpica/include/acglobal.h#1 branch .. //depot/projects/usb/src/sys/contrib/dev/acpica/include/achware.h#1 branch .. //depot/projects/usb/src/sys/contrib/dev/acpica/include/acinterp.h#1 branch .. //depot/projects/usb/src/sys/contrib/dev/acpica/include/aclocal.h#1 branch .. //depot/projects/usb/src/sys/contrib/dev/acpica/include/acmacros.h#1 branch .. //depot/projects/usb/src/sys/contrib/dev/acpica/include/acnames.h#1 branch .. //depot/projects/usb/src/sys/contrib/dev/acpica/include/acnamesp.h#1 branch .. //depot/projects/usb/src/sys/contrib/dev/acpica/include/acobject.h#1 branch .. //depot/projects/usb/src/sys/contrib/dev/acpica/include/acopcode.h#1 branch .. //depot/projects/usb/src/sys/contrib/dev/acpica/include/acoutput.h#1 branch .. //depot/projects/usb/src/sys/contrib/dev/acpica/include/acparser.h#1 branch .. //depot/projects/usb/src/sys/contrib/dev/acpica/include/acpi.h#1 branch .. //depot/projects/usb/src/sys/contrib/dev/acpica/include/acpiosxf.h#1 branch .. //depot/projects/usb/src/sys/contrib/dev/acpica/include/acpixf.h#1 branch .. //depot/projects/usb/src/sys/contrib/dev/acpica/include/acpredef.h#1 branch .. //depot/projects/usb/src/sys/contrib/dev/acpica/include/acresrc.h#1 branch .. //depot/projects/usb/src/sys/contrib/dev/acpica/include/acrestyp.h#1 branch .. //depot/projects/usb/src/sys/contrib/dev/acpica/include/acstruct.h#1 branch .. //depot/projects/usb/src/sys/contrib/dev/acpica/include/actables.h#1 branch .. //depot/projects/usb/src/sys/contrib/dev/acpica/include/actbl.h#1 branch .. //depot/projects/usb/src/sys/contrib/dev/acpica/include/actbl1.h#1 branch .. //depot/projects/usb/src/sys/contrib/dev/acpica/include/actypes.h#1 branch .. //depot/projects/usb/src/sys/contrib/dev/acpica/include/acutils.h#1 branch .. //depot/projects/usb/src/sys/contrib/dev/acpica/include/amlcode.h#1 branch .. //depot/projects/usb/src/sys/contrib/dev/acpica/include/amlresrc.h#1 branch .. //depot/projects/usb/src/sys/contrib/dev/acpica/include/platform/acenv.h#1 branch .. //depot/projects/usb/src/sys/contrib/dev/acpica/include/platform/acfreebsd.h#1 branch .. //depot/projects/usb/src/sys/contrib/dev/acpica/include/platform/acgcc.h#1 branch .. //depot/projects/usb/src/sys/contrib/dev/acpica/namespace/nsaccess.c#1 branch .. //depot/projects/usb/src/sys/contrib/dev/acpica/namespace/nsalloc.c#1 branch .. //depot/projects/usb/src/sys/contrib/dev/acpica/namespace/nsdump.c#1 branch .. //depot/projects/usb/src/sys/contrib/dev/acpica/namespace/nsdumpdv.c#1 branch .. //depot/projects/usb/src/sys/contrib/dev/acpica/namespace/nseval.c#1 branch .. //depot/projects/usb/src/sys/contrib/dev/acpica/namespace/nsinit.c#1 branch .. //depot/projects/usb/src/sys/contrib/dev/acpica/namespace/nsload.c#1 branch .. //depot/projects/usb/src/sys/contrib/dev/acpica/namespace/nsnames.c#1 branch .. //depot/projects/usb/src/sys/contrib/dev/acpica/namespace/nsobject.c#1 branch .. //depot/projects/usb/src/sys/contrib/dev/acpica/namespace/nsparse.c#1 branch .. //depot/projects/usb/src/sys/contrib/dev/acpica/namespace/nspredef.c#1 branch .. //depot/projects/usb/src/sys/contrib/dev/acpica/namespace/nssearch.c#1 branch .. //depot/projects/usb/src/sys/contrib/dev/acpica/namespace/nsutils.c#1 branch .. //depot/projects/usb/src/sys/contrib/dev/acpica/namespace/nswalk.c#1 branch .. //depot/projects/usb/src/sys/contrib/dev/acpica/namespace/nsxfeval.c#1 branch .. //depot/projects/usb/src/sys/contrib/dev/acpica/namespace/nsxfname.c#1 branch .. //depot/projects/usb/src/sys/contrib/dev/acpica/namespace/nsxfobj.c#1 branch .. //depot/projects/usb/src/sys/contrib/dev/acpica/nsaccess.c#3 delete .. //depot/projects/usb/src/sys/contrib/dev/acpica/nsalloc.c#3 delete .. //depot/projects/usb/src/sys/contrib/dev/acpica/nsdump.c#3 delete .. //depot/projects/usb/src/sys/contrib/dev/acpica/nsdumpdv.c#3 delete .. //depot/projects/usb/src/sys/contrib/dev/acpica/nseval.c#3 delete .. //depot/projects/usb/src/sys/contrib/dev/acpica/nsinit.c#3 delete .. //depot/projects/usb/src/sys/contrib/dev/acpica/nsload.c#3 delete .. //depot/projects/usb/src/sys/contrib/dev/acpica/nsnames.c#3 delete .. //depot/projects/usb/src/sys/contrib/dev/acpica/nsobject.c#3 delete .. //depot/projects/usb/src/sys/contrib/dev/acpica/nsparse.c#3 delete .. //depot/projects/usb/src/sys/contrib/dev/acpica/nssearch.c#3 delete .. //depot/projects/usb/src/sys/contrib/dev/acpica/nsutils.c#3 delete .. //depot/projects/usb/src/sys/contrib/dev/acpica/nswalk.c#3 delete .. //depot/projects/usb/src/sys/contrib/dev/acpica/nsxfeval.c#3 delete .. //depot/projects/usb/src/sys/contrib/dev/acpica/nsxfname.c#3 delete .. //depot/projects/usb/src/sys/contrib/dev/acpica/nsxfobj.c#3 delete .. //depot/projects/usb/src/sys/contrib/dev/acpica/osunixxf.c#3 integrate .. //depot/projects/usb/src/sys/contrib/dev/acpica/parser/psargs.c#1 branch .. //depot/projects/usb/src/sys/contrib/dev/acpica/parser/psloop.c#1 branch .. //depot/projects/usb/src/sys/contrib/dev/acpica/parser/psopcode.c#1 branch .. //depot/projects/usb/src/sys/contrib/dev/acpica/parser/psparse.c#1 branch .. //depot/projects/usb/src/sys/contrib/dev/acpica/parser/psscope.c#1 branch .. //depot/projects/usb/src/sys/contrib/dev/acpica/parser/pstree.c#1 branch .. //depot/projects/usb/src/sys/contrib/dev/acpica/parser/psutils.c#1 branch .. //depot/projects/usb/src/sys/contrib/dev/acpica/parser/pswalk.c#1 branch .. //depot/projects/usb/src/sys/contrib/dev/acpica/parser/psxface.c#1 branch .. //depot/projects/usb/src/sys/contrib/dev/acpica/psargs.c#3 delete .. //depot/projects/usb/src/sys/contrib/dev/acpica/psloop.c#3 delete .. //depot/projects/usb/src/sys/contrib/dev/acpica/psopcode.c#3 delete .. //depot/projects/usb/src/sys/contrib/dev/acpica/psparse.c#3 delete .. //depot/projects/usb/src/sys/contrib/dev/acpica/psscope.c#3 delete .. //depot/projects/usb/src/sys/contrib/dev/acpica/pstree.c#3 delete .. //depot/projects/usb/src/sys/contrib/dev/acpica/psutils.c#3 delete .. //depot/projects/usb/src/sys/contrib/dev/acpica/pswalk.c#3 delete .. //depot/projects/usb/src/sys/contrib/dev/acpica/psxface.c#3 delete .. //depot/projects/usb/src/sys/contrib/dev/acpica/resources/rsaddr.c#1 branch .. //depot/projects/usb/src/sys/contrib/dev/acpica/resources/rscalc.c#1 branch .. //depot/projects/usb/src/sys/contrib/dev/acpica/resources/rscreate.c#1 branch .. //depot/projects/usb/src/sys/contrib/dev/acpica/resources/rsdump.c#1 branch .. //depot/projects/usb/src/sys/contrib/dev/acpica/resources/rsinfo.c#1 branch .. //depot/projects/usb/src/sys/contrib/dev/acpica/resources/rsio.c#1 branch .. //depot/projects/usb/src/sys/contrib/dev/acpica/resources/rsirq.c#1 branch .. //depot/projects/usb/src/sys/contrib/dev/acpica/resources/rslist.c#1 branch .. //depot/projects/usb/src/sys/contrib/dev/acpica/resources/rsmemory.c#1 branch .. //depot/projects/usb/src/sys/contrib/dev/acpica/resources/rsmisc.c#1 branch .. //depot/projects/usb/src/sys/contrib/dev/acpica/resources/rsutils.c#1 branch .. //depot/projects/usb/src/sys/contrib/dev/acpica/resources/rsxface.c#1 branch .. //depot/projects/usb/src/sys/contrib/dev/acpica/rsaddr.c#3 delete .. //depot/projects/usb/src/sys/contrib/dev/acpica/rscalc.c#3 delete .. //depot/projects/usb/src/sys/contrib/dev/acpica/rscreate.c#3 delete .. //depot/projects/usb/src/sys/contrib/dev/acpica/rsdump.c#3 delete .. //depot/projects/usb/src/sys/contrib/dev/acpica/rsinfo.c#3 delete .. //depot/projects/usb/src/sys/contrib/dev/acpica/rsio.c#3 delete .. //depot/projects/usb/src/sys/contrib/dev/acpica/rsirq.c#3 delete .. //depot/projects/usb/src/sys/contrib/dev/acpica/rslist.c#3 delete .. //depot/projects/usb/src/sys/contrib/dev/acpica/rsmemory.c#3 delete .. //depot/projects/usb/src/sys/contrib/dev/acpica/rsmisc.c#3 delete .. //depot/projects/usb/src/sys/contrib/dev/acpica/rsutils.c#3 delete .. //depot/projects/usb/src/sys/contrib/dev/acpica/rsxface.c#3 delete .. //depot/projects/usb/src/sys/contrib/dev/acpica/tables/tbfadt.c#1 branch .. //depot/projects/usb/src/sys/contrib/dev/acpica/tables/tbfind.c#1 branch .. //depot/projects/usb/src/sys/contrib/dev/acpica/tables/tbinstal.c#1 branch .. //depot/projects/usb/src/sys/contrib/dev/acpica/tables/tbutils.c#1 branch .. //depot/projects/usb/src/sys/contrib/dev/acpica/tables/tbxface.c#1 branch .. //depot/projects/usb/src/sys/contrib/dev/acpica/tables/tbxfroot.c#1 branch .. //depot/projects/usb/src/sys/contrib/dev/acpica/tbfadt.c#2 delete .. //depot/projects/usb/src/sys/contrib/dev/acpica/tbfind.c#2 delete .. //depot/projects/usb/src/sys/contrib/dev/acpica/tbinstal.c#3 delete .. //depot/projects/usb/src/sys/contrib/dev/acpica/tbutils.c#3 delete .. //depot/projects/usb/src/sys/contrib/dev/acpica/tbxface.c#3 delete .. //depot/projects/usb/src/sys/contrib/dev/acpica/tbxfroot.c#3 delete .. //depot/projects/usb/src/sys/contrib/dev/acpica/tools/acpiexec/aecommon.h#1 branch .. //depot/projects/usb/src/sys/contrib/dev/acpica/utalloc.c#3 delete .. //depot/projects/usb/src/sys/contrib/dev/acpica/utcache.c#3 delete .. //depot/projects/usb/src/sys/contrib/dev/acpica/utclib.c#3 delete .. //depot/projects/usb/src/sys/contrib/dev/acpica/utcopy.c#3 delete .. //depot/projects/usb/src/sys/contrib/dev/acpica/utdebug.c#3 delete .. //depot/projects/usb/src/sys/contrib/dev/acpica/utdelete.c#3 delete .. //depot/projects/usb/src/sys/contrib/dev/acpica/uteval.c#3 delete .. //depot/projects/usb/src/sys/contrib/dev/acpica/utglobal.c#3 delete .. //depot/projects/usb/src/sys/contrib/dev/acpica/utilities/utalloc.c#1 branch .. //depot/projects/usb/src/sys/contrib/dev/acpica/utilities/utcache.c#1 branch .. //depot/projects/usb/src/sys/contrib/dev/acpica/utilities/utcopy.c#1 branch .. //depot/projects/usb/src/sys/contrib/dev/acpica/utilities/utdebug.c#1 branch .. //depot/projects/usb/src/sys/contrib/dev/acpica/utilities/utdelete.c#1 branch .. //depot/projects/usb/src/sys/contrib/dev/acpica/utilities/uteval.c#1 branch .. //depot/projects/usb/src/sys/contrib/dev/acpica/utilities/utglobal.c#1 branch .. //depot/projects/usb/src/sys/contrib/dev/acpica/utilities/utinit.c#1 branch .. //depot/projects/usb/src/sys/contrib/dev/acpica/utilities/utlock.c#1 branch .. //depot/projects/usb/src/sys/contrib/dev/acpica/utilities/utmath.c#1 branch .. //depot/projects/usb/src/sys/contrib/dev/acpica/utilities/utmisc.c#1 branch .. //depot/projects/usb/src/sys/contrib/dev/acpica/utilities/utmutex.c#1 branch .. //depot/projects/usb/src/sys/contrib/dev/acpica/utilities/utobject.c#1 branch .. //depot/projects/usb/src/sys/contrib/dev/acpica/utilities/utresrc.c#1 branch .. //depot/projects/usb/src/sys/contrib/dev/acpica/utilities/utstate.c#1 branch .. //depot/projects/usb/src/sys/contrib/dev/acpica/utilities/uttrack.c#1 branch .. //depot/projects/usb/src/sys/contrib/dev/acpica/utilities/utxface.c#1 branch .. //depot/projects/usb/src/sys/contrib/dev/acpica/utinit.c#3 delete .. //depot/projects/usb/src/sys/contrib/dev/acpica/utmath.c#3 delete .. //depot/projects/usb/src/sys/contrib/dev/acpica/utmisc.c#3 delete .. //depot/projects/usb/src/sys/contrib/dev/acpica/utmutex.c#3 delete .. //depot/projects/usb/src/sys/contrib/dev/acpica/utobject.c#3 delete .. //depot/projects/usb/src/sys/contrib/dev/acpica/utresrc.c#2 delete .. //depot/projects/usb/src/sys/contrib/dev/acpica/utstate.c#3 delete .. //depot/projects/usb/src/sys/contrib/dev/acpica/uttrack.c#2 delete .. //depot/projects/usb/src/sys/contrib/dev/acpica/utxface.c#3 delete .. //depot/projects/usb/src/sys/contrib/pf/net/if_pflog.c#5 integrate .. //depot/projects/usb/src/sys/contrib/pf/net/pf.c#12 integrate .. //depot/projects/usb/src/sys/contrib/pf/net/pf_if.c#9 integrate .. //depot/projects/usb/src/sys/contrib/pf/net/pf_ioctl.c#15 integrate .. //depot/projects/usb/src/sys/dev/acpi_support/acpi_aiboost.c#2 integrate .. //depot/projects/usb/src/sys/dev/acpi_support/acpi_asus.c#12 integrate .. //depot/projects/usb/src/sys/dev/acpi_support/acpi_fujitsu.c#4 integrate .. //depot/projects/usb/src/sys/dev/acpi_support/acpi_ibm.c#8 integrate .. //depot/projects/usb/src/sys/dev/acpi_support/acpi_panasonic.c#5 integrate .. //depot/projects/usb/src/sys/dev/acpi_support/acpi_sony.c#5 integrate .. //depot/projects/usb/src/sys/dev/acpi_support/acpi_toshiba.c#2 integrate .. //depot/projects/usb/src/sys/dev/acpica/Osd/OsdDebug.c#4 integrate .. //depot/projects/usb/src/sys/dev/acpica/Osd/OsdHardware.c#4 integrate .. //depot/projects/usb/src/sys/dev/acpica/Osd/OsdInterrupt.c#3 integrate .. //depot/projects/usb/src/sys/dev/acpica/Osd/OsdMemory.c#4 integrate .. //depot/projects/usb/src/sys/dev/acpica/Osd/OsdSchedule.c#5 integrate .. //depot/projects/usb/src/sys/dev/acpica/Osd/OsdStream.c#2 integrate .. //depot/projects/usb/src/sys/dev/acpica/Osd/OsdSynch.c#4 integrate .. //depot/projects/usb/src/sys/dev/acpica/Osd/OsdTable.c#3 integrate .. //depot/projects/usb/src/sys/dev/acpica/acpi.c#18 integrate .. //depot/projects/usb/src/sys/dev/acpica/acpi_acad.c#3 integrate .. //depot/projects/usb/src/sys/dev/acpica/acpi_battery.c#6 integrate .. //depot/projects/usb/src/sys/dev/acpica/acpi_button.c#3 integrate .. //depot/projects/usb/src/sys/dev/acpica/acpi_cmbat.c#3 integrate .. //depot/projects/usb/src/sys/dev/acpica/acpi_cpu.c#10 integrate .. //depot/projects/usb/src/sys/dev/acpica/acpi_dock.c#5 integrate .. //depot/projects/usb/src/sys/dev/acpica/acpi_ec.c#6 integrate .. //depot/projects/usb/src/sys/dev/acpica/acpi_hpet.c#9 integrate .. //depot/projects/usb/src/sys/dev/acpica/acpi_if.m#2 integrate .. //depot/projects/usb/src/sys/dev/acpica/acpi_isab.c#2 integrate .. //depot/projects/usb/src/sys/dev/acpica/acpi_lid.c#3 integrate .. //depot/projects/usb/src/sys/dev/acpica/acpi_package.c#3 integrate .. //depot/projects/usb/src/sys/dev/acpica/acpi_pci.c#4 integrate .. //depot/projects/usb/src/sys/dev/acpica/acpi_pci_link.c#6 integrate .. //depot/projects/usb/src/sys/dev/acpica/acpi_pcib.c#3 integrate .. //depot/projects/usb/src/sys/dev/acpica/acpi_pcib_acpi.c#6 integrate .. //depot/projects/usb/src/sys/dev/acpica/acpi_pcib_pci.c#4 integrate .. //depot/projects/usb/src/sys/dev/acpica/acpi_perf.c#5 integrate .. //depot/projects/usb/src/sys/dev/acpica/acpi_powerres.c#2 integrate .. //depot/projects/usb/src/sys/dev/acpica/acpi_quirk.c#4 integrate .. //depot/projects/usb/src/sys/dev/acpica/acpi_resource.c#3 integrate .. //depot/projects/usb/src/sys/dev/acpica/acpi_smbat.c#3 integrate .. //depot/projects/usb/src/sys/dev/acpica/acpi_thermal.c#7 integrate .. //depot/projects/usb/src/sys/dev/acpica/acpi_throttle.c#4 integrate .. //depot/projects/usb/src/sys/dev/acpica/acpi_timer.c#5 integrate .. //depot/projects/usb/src/sys/dev/acpica/acpi_video.c#3 integrate .. //depot/projects/usb/src/sys/dev/acpica/acpivar.h#10 integrate .. //depot/projects/usb/src/sys/dev/agp/agp_ali.c#2 integrate .. //depot/projects/usb/src/sys/dev/agp/agp_amd.c#2 integrate .. //depot/projects/usb/src/sys/dev/agp/agp_ati.c#2 integrate .. //depot/projects/usb/src/sys/dev/agp/agp_nvidia.c#3 integrate .. //depot/projects/usb/src/sys/dev/agp/agp_sis.c#2 integrate .. //depot/projects/usb/src/sys/dev/alc/if_alc.c#1 branch .. //depot/projects/usb/src/sys/dev/alc/if_alcreg.h#1 branch .. //depot/projects/usb/src/sys/dev/alc/if_alcvar.h#1 branch .. //depot/projects/usb/src/sys/dev/asmc/asmc.c#5 integrate .. //depot/projects/usb/src/sys/dev/ata/ata-pci.h#20 integrate .. //depot/projects/usb/src/sys/dev/ata/chipsets/ata-acerlabs.c#4 integrate .. //depot/projects/usb/src/sys/dev/ata/chipsets/ata-nvidia.c#5 integrate .. //depot/projects/usb/src/sys/dev/ath/if_ath.c#26 integrate .. //depot/projects/usb/src/sys/dev/ce/if_ce.c#8 integrate .. //depot/projects/usb/src/sys/dev/cfi/cfi_core.c#5 integrate .. //depot/projects/usb/src/sys/dev/cp/if_cp.c#8 integrate .. //depot/projects/usb/src/sys/dev/ctau/if_ct.c#8 integrate .. //depot/projects/usb/src/sys/dev/cx/if_cx.c#7 integrate .. //depot/projects/usb/src/sys/dev/cxgb/cxgb_main.c#19 integrate .. //depot/projects/usb/src/sys/dev/cxgb/cxgb_multiq.c#8 integrate .. //depot/projects/usb/src/sys/dev/cxgb/cxgb_sge.c#14 integrate .. //depot/projects/usb/src/sys/dev/cxgb/ulp/iw_cxgb/iw_cxgb.c#7 integrate .. //depot/projects/usb/src/sys/dev/e1000/if_igb.c#8 integrate .. //depot/projects/usb/src/sys/dev/eisa/eisaconf.c#2 integrate .. //depot/projects/usb/src/sys/dev/fdc/fdc_acpi.c#2 integrate .. //depot/projects/usb/src/sys/dev/fxp/if_fxp.c#12 integrate .. //depot/projects/usb/src/sys/dev/if_ndis/if_ndis.c#26 integrate .. //depot/projects/usb/src/sys/dev/if_ndis/if_ndis_usb.c#19 integrate .. //depot/projects/usb/src/sys/dev/iir/iir.c#6 integrate .. //depot/projects/usb/src/sys/dev/iir/iir_ctrl.c#4 integrate .. //depot/projects/usb/src/sys/dev/ipmi/ipmi_acpi.c#3 integrate .. //depot/projects/usb/src/sys/dev/kbd/kbd.c#6 integrate .. //depot/projects/usb/src/sys/dev/kbdmux/kbdmux.c#11 integrate .. //depot/projects/usb/src/sys/dev/ksyms/ksyms.c#3 integrate .. //depot/projects/usb/src/sys/dev/mca/mca_bus.c#3 integrate .. //depot/projects/usb/src/sys/dev/mge/if_mge.c#5 integrate .. //depot/projects/usb/src/sys/dev/mwl/if_mwl.c#2 integrate .. //depot/projects/usb/src/sys/dev/ncv/ncr53c500_pccard.c#4 integrate .. //depot/projects/usb/src/sys/dev/nmdm/nmdm.c#8 integrate .. //depot/projects/usb/src/sys/dev/nsp/nsp_pccard.c#3 integrate .. //depot/projects/usb/src/sys/dev/ofw/ofw_standard.c#3 integrate .. //depot/projects/usb/src/sys/dev/pcf/pcf.c#3 integrate .. //depot/projects/usb/src/sys/dev/pcf/pcfvar.h#3 integrate .. //depot/projects/usb/src/sys/dev/pci/pci.c#23 integrate .. //depot/projects/usb/src/sys/dev/pdq/if_fpa.c#3 integrate .. //depot/projects/usb/src/sys/dev/sec/sec.c#1 branch .. //depot/projects/usb/src/sys/dev/sec/sec.h#1 branch .. //depot/projects/usb/src/sys/dev/smc/if_smc.c#4 integrate .. //depot/projects/usb/src/sys/dev/smc/if_smcvar.h#3 integrate .. //depot/projects/usb/src/sys/dev/snc/if_snc.c#3 integrate .. //depot/projects/usb/src/sys/dev/snc/if_sncvar.h#2 integrate .. //depot/projects/usb/src/sys/dev/sound/clone.c#2 integrate .. //depot/projects/usb/src/sys/dev/sound/driver.c#5 integrate .. //depot/projects/usb/src/sys/dev/sound/isa/ad1816.c#5 integrate .. //depot/projects/usb/src/sys/dev/sound/isa/ess.c#4 integrate .. //depot/projects/usb/src/sys/dev/sound/isa/gusc.c#3 integrate .. //depot/projects/usb/src/sys/dev/sound/isa/mss.c#5 integrate .. //depot/projects/usb/src/sys/dev/sound/isa/sb16.c#4 integrate .. //depot/projects/usb/src/sys/dev/sound/isa/sb8.c#4 integrate .. //depot/projects/usb/src/sys/dev/sound/isa/sbc.c#3 integrate .. //depot/projects/usb/src/sys/dev/sound/isa/sndbuf_dma.c#2 integrate .. //depot/projects/usb/src/sys/dev/sound/macio/aoa.c#3 integrate .. //depot/projects/usb/src/sys/dev/sound/macio/davbus.c#3 integrate .. //depot/projects/usb/src/sys/dev/sound/macio/i2s.c#3 integrate .. //depot/projects/usb/src/sys/dev/sound/macio/snapper.c#3 integrate .. //depot/projects/usb/src/sys/dev/sound/macio/tumbler.c#3 integrate .. //depot/projects/usb/src/sys/dev/sound/midi/midi.c#6 integrate .. //depot/projects/usb/src/sys/dev/sound/midi/mpu401.c#5 integrate .. //depot/projects/usb/src/sys/dev/sound/midi/sequencer.c#9 integrate .. //depot/projects/usb/src/sys/dev/sound/midi/sequencer.h#4 integrate .. //depot/projects/usb/src/sys/dev/sound/pci/als4000.c#4 integrate .. //depot/projects/usb/src/sys/dev/sound/pci/atiixp.c#6 integrate .. //depot/projects/usb/src/sys/dev/sound/pci/aureal.c#4 integrate .. //depot/projects/usb/src/sys/dev/sound/pci/cmi.c#8 integrate .. //depot/projects/usb/src/sys/dev/sound/pci/cs4281.c#5 integrate .. //depot/projects/usb/src/sys/dev/sound/pci/csa.c#5 integrate .. //depot/projects/usb/src/sys/dev/sound/pci/csapcm.c#4 integrate .. //depot/projects/usb/src/sys/dev/sound/pci/ds1.c#5 integrate .. //depot/projects/usb/src/sys/dev/sound/pci/emu10k1.c#6 integrate .. //depot/projects/usb/src/sys/dev/sound/pci/emu10kx-midi.c#4 integrate .. //depot/projects/usb/src/sys/dev/sound/pci/emu10kx-pcm.c#6 integrate .. //depot/projects/usb/src/sys/dev/sound/pci/emu10kx.c#10 integrate .. //depot/projects/usb/src/sys/dev/sound/pci/envy24.c#9 integrate .. //depot/projects/usb/src/sys/dev/sound/pci/envy24ht.c#8 integrate .. //depot/projects/usb/src/sys/dev/sound/pci/es137x.c#6 integrate .. //depot/projects/usb/src/sys/dev/sound/pci/fm801.c#5 integrate .. //depot/projects/usb/src/sys/dev/sound/pci/hda/hdac.c#29 integrate .. //depot/projects/usb/src/sys/dev/sound/pci/ich.c#9 integrate .. //depot/projects/usb/src/sys/dev/sound/pci/maestro.c#7 integrate .. //depot/projects/usb/src/sys/dev/sound/pci/maestro3.c#4 integrate .. //depot/projects/usb/src/sys/dev/sound/pci/neomagic.c#3 integrate .. //depot/projects/usb/src/sys/dev/sound/pci/solo.c#5 integrate .. //depot/projects/usb/src/sys/dev/sound/pci/spicds.c#5 integrate .. //depot/projects/usb/src/sys/dev/sound/pci/t4dwave.c#5 integrate .. //depot/projects/usb/src/sys/dev/sound/pci/via8233.c#6 integrate .. //depot/projects/usb/src/sys/dev/sound/pci/via82c686.c#4 integrate .. //depot/projects/usb/src/sys/dev/sound/pci/vibes.c#5 integrate .. //depot/projects/usb/src/sys/dev/sound/pcm/ac97.c#6 integrate .. //depot/projects/usb/src/sys/dev/sound/pcm/ac97_patch.c#6 integrate .. //depot/projects/usb/src/sys/dev/sound/pcm/buffer.c#6 integrate .. //depot/projects/usb/src/sys/dev/sound/pcm/buffer.h#7 integrate .. //depot/projects/usb/src/sys/dev/sound/pcm/channel.c#8 integrate .. //depot/projects/usb/src/sys/dev/sound/pcm/channel.h#6 integrate .. //depot/projects/usb/src/sys/dev/sound/pcm/channel_if.m#4 integrate .. //depot/projects/usb/src/sys/dev/sound/pcm/dsp.c#9 integrate .. //depot/projects/usb/src/sys/dev/sound/pcm/dsp.h#5 integrate .. //depot/projects/usb/src/sys/dev/sound/pcm/fake.c#4 delete .. //depot/projects/usb/src/sys/dev/sound/pcm/feeder.c#5 integrate .. //depot/projects/usb/src/sys/dev/sound/pcm/feeder.h#4 integrate .. //depot/projects/usb/src/sys/dev/sound/pcm/feeder_chain.c#1 branch .. //depot/projects/usb/src/sys/dev/sound/pcm/feeder_eq.c#1 branch .. //depot/projects/usb/src/sys/dev/sound/pcm/feeder_fmt.c#5 delete .. //depot/projects/usb/src/sys/dev/sound/pcm/feeder_format.c#1 branch .. //depot/projects/usb/src/sys/dev/sound/pcm/feeder_matrix.c#1 branch .. //depot/projects/usb/src/sys/dev/sound/pcm/feeder_mixer.c#1 branch .. //depot/projects/usb/src/sys/dev/sound/pcm/feeder_rate.c#6 integrate .. //depot/projects/usb/src/sys/dev/sound/pcm/feeder_volume.c#5 integrate .. //depot/projects/usb/src/sys/dev/sound/pcm/g711.h#1 branch .. //depot/projects/usb/src/sys/dev/sound/pcm/intpcm.h#1 branch .. //depot/projects/usb/src/sys/dev/sound/pcm/matrix.h#1 branch .. //depot/projects/usb/src/sys/dev/sound/pcm/matrix_map.h#1 branch .. //depot/projects/usb/src/sys/dev/sound/pcm/mixer.c#14 integrate .. //depot/projects/usb/src/sys/dev/sound/pcm/mixer.h#11 integrate .. //depot/projects/usb/src/sys/dev/sound/pcm/pcm.h#1 branch .. //depot/projects/usb/src/sys/dev/sound/pcm/sndstat.c#5 integrate .. //depot/projects/usb/src/sys/dev/sound/pcm/sndstat.h#1 branch .. //depot/projects/usb/src/sys/dev/sound/pcm/sound.c#11 integrate .. //depot/projects/usb/src/sys/dev/sound/pcm/sound.h#10 integrate .. //depot/projects/usb/src/sys/dev/sound/pcm/vchan.c#6 integrate .. //depot/projects/usb/src/sys/dev/sound/pcm/vchan.h#3 integrate .. //depot/projects/usb/src/sys/dev/sound/sbus/cs4231.c#6 integrate .. //depot/projects/usb/src/sys/dev/sound/unit.c#2 integrate .. //depot/projects/usb/src/sys/dev/sound/usb/uaudio.c#47 integrate .. //depot/projects/usb/src/sys/dev/sound/usb/uaudio.h#9 integrate .. //depot/projects/usb/src/sys/dev/sound/usb/uaudio_pcm.c#12 integrate .. //depot/projects/usb/src/sys/dev/sound/version.h#2 integrate .. //depot/projects/usb/src/sys/dev/spibus/spibus.c#5 integrate .. //depot/projects/usb/src/sys/dev/stg/tmc18c30.h#2 integrate .. //depot/projects/usb/src/sys/dev/stg/tmc18c30_subr.c#3 integrate .. //depot/projects/usb/src/sys/dev/syscons/teken/teken_demo.c#4 integrate .. //depot/projects/usb/src/sys/dev/syscons/teken/teken_stress.c#2 integrate .. //depot/projects/usb/src/sys/dev/ubsec/ubsec.c#6 integrate .. //depot/projects/usb/src/sys/dev/usb/controller/at91dci.c#22 integrate .. //depot/projects/usb/src/sys/dev/usb/controller/atmegadci.c#32 integrate .. //depot/projects/usb/src/sys/dev/usb/controller/avr32dci.c#7 integrate .. //depot/projects/usb/src/sys/dev/usb/controller/ehci.c#28 integrate .. //depot/projects/usb/src/sys/dev/usb/controller/musb_otg.c#20 integrate .. //depot/projects/usb/src/sys/dev/usb/controller/ohci.c#23 integrate .. //depot/projects/usb/src/sys/dev/usb/controller/uhci.c#21 integrate .. //depot/projects/usb/src/sys/dev/usb/controller/uss820dci.c#22 integrate .. //depot/projects/usb/src/sys/dev/usb/input/ukbd.c#19 integrate .. //depot/projects/usb/src/sys/dev/usb/serial/ugensa.c#11 integrate .. //depot/projects/usb/src/sys/dev/usb/serial/umct.c#13 integrate .. //depot/projects/usb/src/sys/dev/usb/storage/ustorage_fs.c#20 integrate .. //depot/projects/usb/src/sys/dev/usb/usb.h#41 integrate .. //depot/projects/usb/src/sys/dev/usb/usb_compat_linux.c#42 integrate .. //depot/projects/usb/src/sys/dev/usb/usb_compat_linux.h#18 integrate .. //depot/projects/usb/src/sys/dev/usb/usb_controller.h#12 integrate .. //depot/projects/usb/src/sys/dev/usb/usb_core.h#25 integrate .. //depot/projects/usb/src/sys/dev/usb/usb_debug.c#8 integrate .. //depot/projects/usb/src/sys/dev/usb/usb_debug.h#7 integrate .. //depot/projects/usb/src/sys/dev/usb/usb_dev.c#28 integrate .. //depot/projects/usb/src/sys/dev/usb/usb_device.c#38 integrate .. //depot/projects/usb/src/sys/dev/usb/usb_device.h#26 integrate .. //depot/projects/usb/src/sys/dev/usb/usb_generic.c#20 integrate .. //depot/projects/usb/src/sys/dev/usb/usb_handle_request.c#12 integrate .. //depot/projects/usb/src/sys/dev/usb/usb_hub.c#24 integrate .. //depot/projects/usb/src/sys/dev/usb/usb_lookup.h#6 integrate .. //depot/projects/usb/src/sys/dev/usb/usb_request.c#21 integrate .. //depot/projects/usb/src/sys/dev/usb/usb_transfer.c#153 integrate .. //depot/projects/usb/src/sys/dev/usb/usb_transfer.h#11 integrate .. //depot/projects/usb/src/sys/dev/usb/wlan/if_zyd.c#17 integrate .. //depot/projects/usb/src/sys/dev/usb/wlan/if_zydreg.h#7 integrate .. //depot/projects/usb/src/sys/dev/wb/if_wb.c#2 integrate .. //depot/projects/usb/src/sys/dev/wi/if_wi.c#13 integrate .. //depot/projects/usb/src/sys/dev/wi/if_wivar.h#8 integrate .. //depot/projects/usb/src/sys/dev/xen/netfront/netfront.c#11 integrate .. //depot/projects/usb/src/sys/fs/cd9660/cd9660_vnops.c#7 integrate .. //depot/projects/usb/src/sys/fs/devfs/devfs_devs.c#12 integrate .. //depot/projects/usb/src/sys/fs/devfs/devfs_vfsops.c#6 integrate .. //depot/projects/usb/src/sys/fs/devfs/devfs_vnops.c#22 integrate .. //depot/projects/usb/src/sys/fs/fifofs/fifo_vnops.c#11 integrate .. //depot/projects/usb/src/sys/fs/msdosfs/msdosfs_vnops.c#13 integrate .. //depot/projects/usb/src/sys/fs/nfs/nfs_commonacl.c#3 integrate .. //depot/projects/usb/src/sys/fs/nfsclient/nfs_clbio.c#5 integrate .. //depot/projects/usb/src/sys/fs/nfsclient/nfs_clstate.c#4 integrate .. //depot/projects/usb/src/sys/fs/nfsclient/nfs_clvnops.c#5 integrate .. //depot/projects/usb/src/sys/fs/nfsserver/nfs_nfsdkrpc.c#4 integrate .. //depot/projects/usb/src/sys/fs/pseudofs/pseudofs_vncache.c#8 integrate .. //depot/projects/usb/src/sys/fs/pseudofs/pseudofs_vnops.c#15 integrate .. //depot/projects/usb/src/sys/fs/udf/osta.c#2 integrate .. //depot/projects/usb/src/sys/fs/unionfs/union_subr.c#12 integrate .. //depot/projects/usb/src/sys/geom/geom.h#9 integrate .. //depot/projects/usb/src/sys/geom/geom_io.c#9 integrate .. //depot/projects/usb/src/sys/geom/geom_subr.c#13 integrate .. //depot/projects/usb/src/sys/gnu/fs/ext2fs/ext2_fs.h#3 integrate .. //depot/projects/usb/src/sys/gnu/fs/ext2fs/ext2_fs_sb.h#3 integrate .. //depot/projects/usb/src/sys/gnu/fs/ext2fs/ext2_lookup.c#4 integrate .. //depot/projects/usb/src/sys/gnu/fs/ext2fs/ext2_vfsops.c#11 integrate .. //depot/projects/usb/src/sys/gnu/fs/ext2fs/ext2_vnops.c#9 integrate .. //depot/projects/usb/src/sys/gnu/fs/ext2fs/sparc64-bitops.h#2 delete .. //depot/projects/usb/src/sys/gnu/fs/xfs/FreeBSD/xfs_vnops.c#9 integrate .. //depot/projects/usb/src/sys/i386/acpica/OsdEnvironment.c#3 integrate .. //depot/projects/usb/src/sys/i386/acpica/acpi_machdep.c#9 integrate .. //depot/projects/usb/src/sys/i386/acpica/acpi_wakeup.c#6 integrate .. //depot/projects/usb/src/sys/i386/acpica/madt.c#8 integrate .. //depot/projects/usb/src/sys/i386/conf/DEFAULTS#12 integrate .. //depot/projects/usb/src/sys/i386/conf/GENERIC#26 integrate .. //depot/projects/usb/src/sys/i386/conf/NOTES#22 integrate .. //depot/projects/usb/src/sys/i386/cpufreq/est.c#7 integrate .. //depot/projects/usb/src/sys/i386/cpufreq/hwpstate.c#3 integrate .. //depot/projects/usb/src/sys/i386/cpufreq/p4tcc.c#5 integrate .. //depot/projects/usb/src/sys/i386/i386/local_apic.c#16 integrate .. //depot/projects/usb/src/sys/i386/i386/machdep.c#17 integrate .. //depot/projects/usb/src/sys/i386/i386/pmap.c#17 integrate .. //depot/projects/usb/src/sys/i386/i386/sys_machdep.c#9 integrate .. //depot/projects/usb/src/sys/i386/ibcs2/ibcs2_misc.c#8 integrate .. //depot/projects/usb/src/sys/i386/include/apicvar.h#10 integrate .. //depot/projects/usb/src/sys/i386/include/legacyvar.h#3 integrate .. //depot/projects/usb/src/sys/i386/isa/clock.c#10 integrate .. //depot/projects/usb/src/sys/i386/isa/vesa.c#3 integrate .. //depot/projects/usb/src/sys/i386/pci/pci_bus.c#6 integrate .. //depot/projects/usb/src/sys/i386/xen/pmap.c#7 integrate .. //depot/projects/usb/src/sys/ia64/acpica/OsdEnvironment.c#3 integrate .. //depot/projects/usb/src/sys/ia64/acpica/acpi_machdep.c#2 integrate .. //depot/projects/usb/src/sys/ia64/acpica/acpi_wakeup.c#2 integrate .. //depot/projects/usb/src/sys/ia64/acpica/madt.c#3 integrate .. //depot/projects/usb/src/sys/ia64/ia64/nexus.c#6 integrate .. //depot/projects/usb/src/sys/kern/bus_if.m#6 integrate .. //depot/projects/usb/src/sys/kern/init_main.c#14 integrate .. //depot/projects/usb/src/sys/kern/kern_acct.c#11 integrate .. //depot/projects/usb/src/sys/kern/kern_alq.c#9 integrate .. //depot/projects/usb/src/sys/kern/kern_environment.c#8 integrate .. //depot/projects/usb/src/sys/kern/kern_event.c#10 integrate .. //depot/projects/usb/src/sys/kern/kern_exec.c#16 integrate .. //depot/projects/usb/src/sys/kern/kern_exit.c#17 integrate .. //depot/projects/usb/src/sys/kern/kern_fork.c#16 integrate .. //depot/projects/usb/src/sys/kern/kern_jail.c#22 integrate .. //depot/projects/usb/src/sys/kern/kern_ktrace.c#11 integrate .. //depot/projects/usb/src/sys/kern/kern_linker.c#16 integrate .. //depot/projects/usb/src/sys/kern/kern_lockf.c#10 integrate .. //depot/projects/usb/src/sys/kern/kern_malloc.c#14 integrate .. //depot/projects/usb/src/sys/kern/kern_mbuf.c#11 integrate .. //depot/projects/usb/src/sys/kern/kern_poll.c#13 integrate .. //depot/projects/usb/src/sys/kern/kern_priv.c#7 integrate .. //depot/projects/usb/src/sys/kern/kern_prot.c#14 integrate .. //depot/projects/usb/src/sys/kern/kern_shutdown.c#11 integrate .. //depot/projects/usb/src/sys/kern/kern_sysctl.c#15 integrate .. //depot/projects/usb/src/sys/kern/kern_uuid.c#9 integrate .. //depot/projects/usb/src/sys/kern/kern_vimage.c#7 integrate .. //depot/projects/usb/src/sys/kern/link_elf.c#13 integrate .. //depot/projects/usb/src/sys/kern/link_elf_obj.c#13 integrate .. //depot/projects/usb/src/sys/kern/linker_if.m#5 integrate .. //depot/projects/usb/src/sys/kern/subr_acl_nfs4.c#1 branch .. //depot/projects/usb/src/sys/kern/subr_bus.c#23 integrate .. //depot/projects/usb/src/sys/kern/subr_clist.c#6 delete .. //depot/projects/usb/src/sys/kern/subr_trap.c#10 integrate .. //depot/projects/usb/src/sys/kern/sys_pipe.c#12 integrate .. //depot/projects/usb/src/sys/kern/sys_socket.c#11 integrate .. //depot/projects/usb/src/sys/kern/sysv_msg.c#8 integrate .. //depot/projects/usb/src/sys/kern/sysv_sem.c#11 integrate .. //depot/projects/usb/src/sys/kern/sysv_shm.c#10 integrate .. //depot/projects/usb/src/sys/kern/tty.c#24 integrate .. //depot/projects/usb/src/sys/kern/tty_pts.c#14 integrate .. //depot/projects/usb/src/sys/kern/uipc_domain.c#10 integrate .. //depot/projects/usb/src/sys/kern/uipc_mbuf.c#12 integrate .. //depot/projects/usb/src/sys/kern/uipc_mbuf2.c#4 integrate .. //depot/projects/usb/src/sys/kern/uipc_mqueue.c#11 integrate .. //depot/projects/usb/src/sys/kern/uipc_sem.c#10 integrate .. //depot/projects/usb/src/sys/kern/uipc_shm.c#6 integrate .. //depot/projects/usb/src/sys/kern/uipc_socket.c#20 integrate .. //depot/projects/usb/src/sys/kern/uipc_syscalls.c#16 integrate .. //depot/projects/usb/src/sys/kern/uipc_usrreq.c#17 integrate .. //depot/projects/usb/src/sys/kern/vfs_acl.c#6 integrate .. //depot/projects/usb/src/sys/kern/vfs_aio.c#12 integrate .. //depot/projects/usb/src/sys/kern/vfs_bio.c#24 integrate .. //depot/projects/usb/src/sys/kern/vfs_cache.c#24 integrate .. //depot/projects/usb/src/sys/kern/vfs_cluster.c#6 integrate .. //depot/projects/usb/src/sys/kern/vfs_default.c#13 integrate .. //depot/projects/usb/src/sys/kern/vfs_extattr.c#8 integrate .. //depot/projects/usb/src/sys/kern/vfs_lookup.c#18 integrate .. //depot/projects/usb/src/sys/kern/vfs_mount.c#25 integrate .. //depot/projects/usb/src/sys/kern/vfs_subr.c#23 integrate .. //depot/projects/usb/src/sys/kern/vfs_syscalls.c#22 integrate .. //depot/projects/usb/src/sys/kern/vfs_vnops.c#19 integrate .. //depot/projects/usb/src/sys/kern/vnode_if.src#15 integrate .. //depot/projects/usb/src/sys/libkern/jenkins.h#1 branch .. //depot/projects/usb/src/sys/modules/Makefile#36 integrate .. //depot/projects/usb/src/sys/modules/acpi/acpi/Makefile#7 integrate .. //depot/projects/usb/src/sys/modules/acpi/acpi_aiboost/Makefile#2 integrate .. //depot/projects/usb/src/sys/modules/acpi/acpi_asus/Makefile#3 integrate .. //depot/projects/usb/src/sys/modules/acpi/acpi_dock/Makefile#2 integrate .. //depot/projects/usb/src/sys/modules/acpi/acpi_fujitsu/Makefile#2 integrate .. //depot/projects/usb/src/sys/modules/acpi/acpi_ibm/Makefile#2 integrate .. //depot/projects/usb/src/sys/modules/acpi/acpi_panasonic/Makefile#3 integrate .. //depot/projects/usb/src/sys/modules/acpi/acpi_sony/Makefile#2 integrate .. //depot/projects/usb/src/sys/modules/acpi/acpi_toshiba/Makefile#3 integrate .. //depot/projects/usb/src/sys/modules/acpi/acpi_video/Makefile#4 integrate .. //depot/projects/usb/src/sys/modules/alc/Makefile#1 branch .. //depot/projects/usb/src/sys/modules/bridgestp/Makefile#3 integrate .. //depot/projects/usb/src/sys/modules/cpufreq/Makefile#5 integrate .. //depot/projects/usb/src/sys/modules/cxgb/iw_cxgb/Makefile#5 integrate .. //depot/projects/usb/src/sys/modules/cxgb/tom/Makefile#4 integrate .. //depot/projects/usb/src/sys/modules/dummynet/Makefile#2 integrate .. //depot/projects/usb/src/sys/modules/fdc/Makefile#3 integrate .. //depot/projects/usb/src/sys/modules/firewire/fwip/Makefile#2 integrate .. //depot/projects/usb/src/sys/modules/ibcs2/Makefile#2 integrate .. //depot/projects/usb/src/sys/modules/if_ef/Makefile#4 integrate .. //depot/projects/usb/src/sys/modules/if_gif/Makefile#2 integrate .. //depot/projects/usb/src/sys/modules/if_ppp/Makefile#4 integrate .. //depot/projects/usb/src/sys/modules/if_stf/Makefile#2 integrate .. //depot/projects/usb/src/sys/modules/if_tun/Makefile#2 integrate .. //depot/projects/usb/src/sys/modules/if_vlan/Makefile#4 integrate .. //depot/projects/usb/src/sys/modules/ip6_mroute_mod/Makefile#2 integrate .. //depot/projects/usb/src/sys/modules/ip_mroute_mod/Makefile#6 integrate .. //depot/projects/usb/src/sys/modules/ipfw/Makefile#5 integrate .. //depot/projects/usb/src/sys/modules/ipfw_nat/Makefile#2 integrate .. //depot/projects/usb/src/sys/modules/linprocfs/Makefile#5 integrate .. //depot/projects/usb/src/sys/modules/linux/Makefile#10 integrate .. //depot/projects/usb/src/sys/modules/mac_lomac/Makefile#2 integrate .. //depot/projects/usb/src/sys/modules/netgraph/atm/atm/Makefile#3 integrate .. //depot/projects/usb/src/sys/modules/netgraph/ether/Makefile#3 integrate .. //depot/projects/usb/src/sys/modules/netgraph/gif/Makefile#3 integrate .. //depot/projects/usb/src/sys/modules/nfsclient/Makefile#6 integrate .. //depot/projects/usb/src/sys/modules/nfsserver/Makefile#5 integrate .. //depot/projects/usb/src/sys/modules/pf/Makefile#6 integrate .. //depot/projects/usb/src/sys/modules/pseudofs/Makefile#2 integrate .. //depot/projects/usb/src/sys/modules/sem/Makefile#3 integrate .. //depot/projects/usb/src/sys/modules/sound/sound/Makefile#5 integrate .. //depot/projects/usb/src/sys/modules/svr4/Makefile#7 integrate .. //depot/projects/usb/src/sys/modules/sysvipc/sysvmsg/Makefile#2 integrate .. //depot/projects/usb/src/sys/modules/sysvipc/sysvsem/Makefile#2 integrate .. //depot/projects/usb/src/sys/modules/sysvipc/sysvshm/Makefile#2 integrate .. //depot/projects/usb/src/sys/modules/ufs/Makefile#3 integrate .. //depot/projects/usb/src/sys/modules/usb/zyd/Makefile#2 integrate .. //depot/projects/usb/src/sys/modules/wlan/Makefile#9 integrate .. //depot/projects/usb/src/sys/net/bpf.c#19 integrate .. //depot/projects/usb/src/sys/net/bridgestp.c#13 integrate .. //depot/projects/usb/src/sys/net/flowtable.c#3 integrate .. //depot/projects/usb/src/sys/net/flowtable.h#2 integrate .. //depot/projects/usb/src/sys/net/if.c#28 integrate .. //depot/projects/usb/src/sys/net/if_arcsubr.c#7 integrate .. //depot/projects/usb/src/sys/net/if_atmsubr.c#9 integrate .. //depot/projects/usb/src/sys/net/if_bridge.c#16 integrate .. //depot/projects/usb/src/sys/net/if_ef.c#8 integrate .. //depot/projects/usb/src/sys/net/if_ethersubr.c#18 integrate .. //depot/projects/usb/src/sys/net/if_fddisubr.c#10 integrate .. //depot/projects/usb/src/sys/net/if_fwsubr.c#13 integrate .. //depot/projects/usb/src/sys/net/if_gif.c#14 integrate .. //depot/projects/usb/src/sys/net/if_gif.h#8 integrate .. //depot/projects/usb/src/sys/net/if_iso88025subr.c#11 integrate .. //depot/projects/usb/src/sys/net/if_loop.c#20 integrate .. //depot/projects/usb/src/sys/net/if_mib.c#8 integrate .. //depot/projects/usb/src/sys/net/if_stf.c#11 integrate .. //depot/projects/usb/src/sys/net/if_tap.c#10 integrate .. //depot/projects/usb/src/sys/net/if_tun.c#13 integrate .. //depot/projects/usb/src/sys/net/if_var.h#19 integrate .. //depot/projects/usb/src/sys/net/if_vlan.c#14 integrate .. //depot/projects/usb/src/sys/net/raw_cb.c#11 integrate .. //depot/projects/usb/src/sys/net/raw_usrreq.c#10 integrate .. //depot/projects/usb/src/sys/net/route.c#18 integrate .. //depot/projects/usb/src/sys/net/rtsock.c#25 integrate .. //depot/projects/usb/src/sys/net/vnet.h#10 integrate .. //depot/projects/usb/src/sys/net80211/_ieee80211.h#12 integrate .. //depot/projects/usb/src/sys/net80211/ieee80211.c#23 integrate .. //depot/projects/usb/src/sys/net80211/ieee80211.h#16 integrate .. //depot/projects/usb/src/sys/net80211/ieee80211_crypto.c#7 integrate .. //depot/projects/usb/src/sys/net80211/ieee80211_crypto.h#9 integrate .. //depot/projects/usb/src/sys/net80211/ieee80211_crypto_ccmp.c#6 integrate .. //depot/projects/usb/src/sys/net80211/ieee80211_crypto_tkip.c#7 integrate .. //depot/projects/usb/src/sys/net80211/ieee80211_ddb.c#16 integrate .. //depot/projects/usb/src/sys/net80211/ieee80211_dfs.c#4 integrate .. //depot/projects/usb/src/sys/net80211/ieee80211_freebsd.c#19 integrate .. //depot/projects/usb/src/sys/net80211/ieee80211_hostap.c#14 integrate .. //depot/projects/usb/src/sys/net80211/ieee80211_ht.c#13 integrate .. //depot/projects/usb/src/sys/net80211/ieee80211_input.c#17 integrate .. //depot/projects/usb/src/sys/net80211/ieee80211_ioctl.c#23 integrate .. //depot/projects/usb/src/sys/net80211/ieee80211_ioctl.h#12 integrate .. //depot/projects/usb/src/sys/net80211/ieee80211_node.c#24 integrate .. //depot/projects/usb/src/sys/net80211/ieee80211_node.h#16 integrate .. //depot/projects/usb/src/sys/net80211/ieee80211_output.c#24 integrate .. //depot/projects/usb/src/sys/net80211/ieee80211_proto.c#20 integrate .. //depot/projects/usb/src/sys/net80211/ieee80211_proto.h#17 integrate .. //depot/projects/usb/src/sys/net80211/ieee80211_radiotap.c#4 integrate .. //depot/projects/usb/src/sys/net80211/ieee80211_scan.c#10 integrate .. //depot/projects/usb/src/sys/net80211/ieee80211_scan.h#8 integrate .. //depot/projects/usb/src/sys/net80211/ieee80211_scan_sta.c#14 integrate .. //depot/projects/usb/src/sys/net80211/ieee80211_sta.c#11 integrate .. //depot/projects/usb/src/sys/net80211/ieee80211_var.h#23 integrate .. //depot/projects/usb/src/sys/netatalk/aarp.c#5 integrate .. //depot/projects/usb/src/sys/netatalk/ddp_input.c#5 integrate .. //depot/projects/usb/src/sys/netatalk/ddp_output.c#4 integrate .. //depot/projects/usb/src/sys/netgraph/atm/ng_atm.c#6 integrate .. //depot/projects/usb/src/sys/netgraph/netgraph.h#12 integrate .. //depot/projects/usb/src/sys/netgraph/ng_base.c#17 integrate .. //depot/projects/usb/src/sys/netgraph/ng_eiface.c#10 integrate .. //depot/projects/usb/src/sys/netgraph/ng_ether.c#10 integrate .. //depot/projects/usb/src/sys/netgraph/ng_gif.c#6 integrate .. //depot/projects/usb/src/sys/netgraph/ng_iface.c#12 integrate .. //depot/projects/usb/src/sys/netgraph/ng_ip_input.c#3 integrate .. //depot/projects/usb/src/sys/netgraph/ng_ipfw.c#4 integrate .. //depot/projects/usb/src/sys/netgraph/ng_ipfw.h#2 integrate .. //depot/projects/usb/src/sys/netgraph/ng_message.h#4 integrate .. //depot/projects/usb/src/sys/netinet/if_ether.c#21 integrate .. //depot/projects/usb/src/sys/netinet/igmp.c#18 integrate .. //depot/projects/usb/src/sys/netinet/igmp.h#5 integrate .. //depot/projects/usb/src/sys/netinet/in.c#26 integrate .. //depot/projects/usb/src/sys/netinet/in_gif.c#12 integrate .. //depot/projects/usb/src/sys/netinet/in_mcast.c#14 integrate .. //depot/projects/usb/src/sys/netinet/in_pcb.c#25 integrate .. //depot/projects/usb/src/sys/netinet/in_proto.c#11 integrate .. //depot/projects/usb/src/sys/netinet/in_rmx.c#17 integrate .. //depot/projects/usb/src/sys/netinet/ip_divert.c#18 integrate .. //depot/projects/usb/src/sys/netinet/ip_dummynet.c#13 delete .. //depot/projects/usb/src/sys/netinet/ip_dummynet.h#6 integrate .. //depot/projects/usb/src/sys/netinet/ip_fw.h#16 integrate .. //depot/projects/usb/src/sys/netinet/ip_fw2.c#25 delete .. //depot/projects/usb/src/sys/netinet/ip_fw_nat.c#8 delete .. //depot/projects/usb/src/sys/netinet/ip_fw_pfil.c#10 delete .. //depot/projects/usb/src/sys/netinet/ip_icmp.c#14 integrate .. //depot/projects/usb/src/sys/netinet/ip_input.c#23 integrate .. //depot/projects/usb/src/sys/netinet/ip_ipsec.c#14 integrate .. //depot/projects/usb/src/sys/netinet/ip_ipsec.h#4 integrate .. //depot/projects/usb/src/sys/netinet/ip_mroute.c#13 integrate .. //depot/projects/usb/src/sys/netinet/ip_options.c#13 integrate .. //depot/projects/usb/src/sys/netinet/ip_output.c#20 integrate .. //depot/projects/usb/src/sys/netinet/ip_var.h#10 integrate .. //depot/projects/usb/src/sys/netinet/ipfw/ip_dummynet.c#1 branch .. //depot/projects/usb/src/sys/netinet/ipfw/ip_fw2.c#1 branch .. //depot/projects/usb/src/sys/netinet/ipfw/ip_fw_nat.c#1 branch .. //depot/projects/usb/src/sys/netinet/ipfw/ip_fw_pfil.c#1 branch .. //depot/projects/usb/src/sys/netinet/raw_ip.c#23 integrate .. //depot/projects/usb/src/sys/netinet/sctp_os_bsd.h#16 integrate .. //depot/projects/usb/src/sys/netinet/tcp_debug.c#5 integrate .. //depot/projects/usb/src/sys/netinet/tcp_hostcache.c#12 integrate .. //depot/projects/usb/src/sys/netinet/tcp_input.c#23 integrate .. //depot/projects/usb/src/sys/netinet/tcp_output.c#17 integrate .. //depot/projects/usb/src/sys/netinet/tcp_subr.c#24 integrate .. //depot/projects/usb/src/sys/netinet/tcp_syncache.c#22 integrate .. //depot/projects/usb/src/sys/netinet/tcp_syncache.h#7 integrate .. //depot/projects/usb/src/sys/netinet/tcp_timewait.c#13 integrate .. //depot/projects/usb/src/sys/netinet/tcp_usrreq.c#18 integrate .. //depot/projects/usb/src/sys/netinet/tcp_var.h#18 integrate .. //depot/projects/usb/src/sys/netinet/udp_usrreq.c#22 integrate .. //depot/projects/usb/src/sys/netinet/udp_var.h#8 integrate .. //depot/projects/usb/src/sys/netinet6/frag6.c#14 integrate .. //depot/projects/usb/src/sys/netinet6/icmp6.c#20 integrate .. //depot/projects/usb/src/sys/netinet6/in6.c#24 integrate .. //depot/projects/usb/src/sys/netinet6/in6_gif.c#12 integrate .. //depot/projects/usb/src/sys/netinet6/in6_ifattach.c#21 integrate .. //depot/projects/usb/src/sys/netinet6/in6_mcast.c#4 integrate .. //depot/projects/usb/src/sys/netinet6/in6_pcb.c#19 integrate .. //depot/projects/usb/src/sys/netinet6/in6_proto.c#14 integrate .. //depot/projects/usb/src/sys/netinet6/in6_rmx.c#16 integrate .. //depot/projects/usb/src/sys/netinet6/ip6_input.c#23 integrate .. //depot/projects/usb/src/sys/netinet6/ip6_mroute.c#16 integrate .. //depot/projects/usb/src/sys/netinet6/ip6_output.c#16 integrate .. //depot/projects/usb/src/sys/netinet6/ip6_var.h#13 integrate .. //depot/projects/usb/src/sys/netinet6/ip6protosw.h#4 integrate .. //depot/projects/usb/src/sys/netinet6/mld6.c#17 integrate .. //depot/projects/usb/src/sys/netinet6/nd6.c#19 integrate .. //depot/projects/usb/src/sys/netinet6/nd6.h#7 integrate .. //depot/projects/usb/src/sys/netinet6/nd6_rtr.c#17 integrate .. //depot/projects/usb/src/sys/netinet6/raw_ip6.c#20 integrate .. //depot/projects/usb/src/sys/netinet6/scope6.c#11 integrate .. //depot/projects/usb/src/sys/netinet6/udp6_usrreq.c#20 integrate .. //depot/projects/usb/src/sys/netipsec/ipsec.c#19 integrate .. //depot/projects/usb/src/sys/netipsec/ipsec_input.c#11 integrate .. //depot/projects/usb/src/sys/netipsec/key.c#17 integrate .. //depot/projects/usb/src/sys/netipsec/key.h#3 integrate .. //depot/projects/usb/src/sys/netipsec/keysock.c#11 integrate .. //depot/projects/usb/src/sys/netipsec/xform_ipip.c#13 integrate .. //depot/projects/usb/src/sys/netipx/spx_debug.c#5 integrate .. //depot/projects/usb/src/sys/nfsclient/bootp_subr.c#14 integrate .. //depot/projects/usb/src/sys/nfsclient/nfs_bio.c#16 integrate .. //depot/projects/usb/src/sys/nfsclient/nfs_diskless.c#10 integrate .. //depot/projects/usb/src/sys/nfsserver/nfs_srvkrpc.c#8 integrate .. //depot/projects/usb/src/sys/nfsserver/nfs_srvsock.c#11 integrate .. //depot/projects/usb/src/sys/nlm/nlm_advlock.c#7 integrate .. //depot/projects/usb/src/sys/powerpc/aim/machdep.c#12 integrate .. //depot/projects/usb/src/sys/powerpc/aim/platform_chrp.c#2 integrate .. //depot/projects/usb/src/sys/powerpc/booke/platform_bare.c#3 integrate .. //depot/projects/usb/src/sys/powerpc/booke/pmap.c#13 integrate .. //depot/projects/usb/src/sys/powerpc/conf/MPC85XX#7 integrate .. //depot/projects/usb/src/sys/powerpc/include/ocpbus.h#2 integrate .. //depot/projects/usb/src/sys/powerpc/include/pio.h#2 integrate .. //depot/projects/usb/src/sys/powerpc/mpc85xx/ocpbus.c#8 integrate .. //depot/projects/usb/src/sys/powerpc/mpc85xx/ocpbus.h#4 integrate .. //depot/projects/usb/src/sys/powerpc/ofw/ofw_real.c#2 integrate .. //depot/projects/usb/src/sys/powerpc/powermac/cuda.c#3 integrate .. //depot/projects/usb/src/sys/powerpc/powermac/pmu.c#4 integrate .. //depot/projects/usb/src/sys/powerpc/powerpc/bus_machdep.c#4 integrate .. //depot/projects/usb/src/sys/powerpc/powerpc/openpic.c#8 integrate .. //depot/projects/usb/src/sys/powerpc/psim/ata_iobus.c#2 integrate .. //depot/projects/usb/src/sys/rpc/clnt_dg.c#5 integrate .. //depot/projects/usb/src/sys/rpc/clnt_rc.c#6 integrate .. //depot/projects/usb/src/sys/rpc/clnt_vc.c#6 integrate .. //depot/projects/usb/src/sys/rpc/svc.c#3 integrate .. //depot/projects/usb/src/sys/rpc/svc.h#4 integrate .. //depot/projects/usb/src/sys/rpc/svc_auth.c#3 integrate .. //depot/projects/usb/src/sys/rpc/svc_vc.c#5 integrate .. //depot/projects/usb/src/sys/security/audit/audit_pipe.c#15 integrate .. //depot/projects/usb/src/sys/security/audit/audit_syscalls.c#14 integrate .. //depot/projects/usb/src/sys/security/mac/mac_atalk.c#4 integrate .. //depot/projects/usb/src/sys/security/mac/mac_framework.c#11 integrate .. //depot/projects/usb/src/sys/security/mac/mac_inet.c#13 integrate .. //depot/projects/usb/src/sys/security/mac/mac_inet6.c#6 integrate >>> TRUNCATED FOR MAIL (1000 lines) <<< From owner-p4-projects@FreeBSD.ORG Fri Jun 12 17:16:01 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 32B421065675; Fri, 12 Jun 2009 17:16:01 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id E593D1065673 for ; Fri, 12 Jun 2009 17:16:00 +0000 (UTC) (envelope-from jona@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id D406F8FC12 for ; Fri, 12 Jun 2009 17:16:00 +0000 (UTC) (envelope-from jona@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n5CHG0dQ005976 for ; Fri, 12 Jun 2009 17:16:00 GMT (envelope-from jona@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n5CHG0ps005974 for perforce@freebsd.org; Fri, 12 Jun 2009 17:16:00 GMT (envelope-from jona@FreeBSD.org) Date: Fri, 12 Jun 2009 17:16:00 GMT Message-Id: <200906121716.n5CHG0ps005974@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to jona@FreeBSD.org using -f From: Jonathan Anderson To: Perforce Change Reviews Cc: Subject: PERFORCE change 164187 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 12 Jun 2009 17:16:02 -0000 http://perforce.freebsd.org/chv.cgi?CH=164187 Change 164187 by jona@jona-trustedbsd-kent on 2009/06/12 17:15:39 KDE powerboxes - 'test' requests powerboxes from kpowerboxserver using D-Bus IPC Affected files ... .. //depot/projects/trustedbsd/capabilities/cap-support/kpowerboxserver/CMakeLists.txt#3 edit .. //depot/projects/trustedbsd/capabilities/cap-support/kpowerboxserver/cleanup.sh#1 add .. //depot/projects/trustedbsd/capabilities/cap-support/kpowerboxserver/kpowerboxserver.cpp#2 edit .. //depot/projects/trustedbsd/capabilities/cap-support/kpowerboxserver/kpowerboxserver.h#2 edit .. //depot/projects/trustedbsd/capabilities/cap-support/kpowerboxserver/powerbox.h#2 edit .. //depot/projects/trustedbsd/capabilities/cap-support/kpowerboxserver/test.cpp#1 add Differences ... ==== //depot/projects/trustedbsd/capabilities/cap-support/kpowerboxserver/CMakeLists.txt#3 (text+ko) ==== @@ -1,16 +1,23 @@ cmake_minimum_required(VERSION 2.6) -project(kpowerboxtest) +project(kpowerboxserver) find_package(KDE4 REQUIRED) find_package(Qt4 REQUIRED) include(${QT_USE_FILE}) -set(test_SRC kpowerboxtest.cpp kpowerboxserver.cpp) +set(server_SRC main.cpp kpowerboxserver.cpp) +set(server_MOC_HDRS kpowerboxserver.h) +#qt4_wrap_cpp(server_MOC_SRC ${server_MOC_HDRS}) +#KDE4_AUTOMOC(${server_SRC}) + + +set(test_SRC test.cpp) -qt4_automoc(${source}) +kde4_add_executable(test ${test_SRC}) +target_link_libraries(test ${QT_LIBRARIES} ${KDE4_KDEUI_LIBS}) -kde4_add_executable(kpowerboxtest ${test_SRC}) -target_link_libraries(kpowerboxtest ${QT_LIBRARIES} ${KDE4_KDEUI_LIBS} ${KDE4_KFILE_LIBS}) +kde4_add_executable(kpowerboxserver ${server_SRC})# ${server_MOC_SRC}) +target_link_libraries(kpowerboxserver ${QT_LIBRARIES} ${KDE4_KDEUI_LIBS} ${KDE4_KFILE_LIBS}) ==== //depot/projects/trustedbsd/capabilities/cap-support/kpowerboxserver/kpowerboxserver.cpp#2 (text+ko) ==== @@ -4,12 +4,8 @@ #include -#include -#include - #include "powerbox.h" -#include "kpowerboxserver.moc" - +#include "kpowerboxserver.h" KPowerBoxServer::KPowerBoxServer() @@ -18,19 +14,11 @@ } -QMap KPowerBoxServer::showKDEPowerbox(struct capbox_options *options) +QStringList +KPowerBoxServer::showKDEPowerbox(int operation, QString title, QString parent, + QString startDir, QString filter, bool allowMultipleSelections) { - QMap fileDescriptors; - - if(options->ui != CAPBOX_KDE) - { - fileDescriptors[-1] = - "Error: this is a KDE powerbox; we can only handle UI type CAPBOX_KDE"; - - return fileDescriptors; - } - - if(options->mult) + if(allowMultipleSelections) { // TODO: get KDE to support WId for multi-select dialogs std::cerr @@ -38,56 +26,45 @@ << " dialogs, so we can't support multiple selection (for now)" << std::endl; - options->mult = false; + allowMultipleSelections = false; } - QString startDir = options->start_path; - QString filter = options->filter; - WId parent = options->parent_window; - QString title = options->window_title; + int base = 10; + if(parent.startsWith("0x")) + { + parent.replace("0x", ""); + base = 16; + } + WId parentWId = parent.toLong(NULL, base); QStringList filenames; - switch(options->operation) + switch(operation) { case OPEN_FILE: - if(options->mult) + if(allowMultipleSelections) + // TODO: multiple selection via WId filenames = KFileDialog::getOpenFileNames(startDir, filter, NULL, title); else filenames << - KFileDialog::getOpenFileNameWId(startDir, filter, parent, title); + KFileDialog::getOpenFileNameWId(startDir, filter, parentWId, title); break; case SAVE_FILE: filenames << - KFileDialog::getSaveFileNameWId(startDir, filter, parent, title); + KFileDialog::getSaveFileNameWId(startDir, filter, parentWId, title); break; case SELECT_DIR: + // TODO: directory selection via WId filenames << KFileDialog::getExistingDirectory(startDir, NULL, title); break; } - - for(int i = 0; i < filenames.size(); i++) - { - QString filename = filenames.at(i); - - int flags = 0; - if((options->rights & 6) == 6) flags |= O_RDWR; - else if((options->rights & 6) == 4) flags |= O_RDONLY; - else if((options->rights & 6) == 2) flags |= O_WRONLY; - -// if(options->rights & 1) flags |= O_EXEC; TODO: no O_EXEC under Linux? - - int fd = open(filename.toStdString().c_str(), flags); - fileDescriptors[fd] = filename; - } - - return fileDescriptors; + return filenames; } ==== //depot/projects/trustedbsd/capabilities/cap-support/kpowerboxserver/kpowerboxserver.h#2 (text+ko) ==== @@ -1,7 +1,13 @@ -#include + +#ifndef KPOWERBOX_SERVER +#define KPOWERBOX_SERVER + +#include #include #include +#include + #include "powerbox.h" @@ -12,6 +18,7 @@ { Q_OBJECT + public: KPowerBoxServer(); @@ -20,8 +27,26 @@ /** * Shows a KDE-based PowerBox. * - * @return a map of file descriptors and their associated file names + * This is a very long list of parameters, but we have to use Qt-friendly types + * in order for Qt to do the D-Bus marshalling and unmarshalling for us. + * + * @param operation what we're doing (see powerbox.h) + * @param title the title of the dialog box + * @param parent ID of the parent window (to pop up in front of) + * @param startDir where to look for files + * @param filter selection filter (e.g. "*.cpp") + * @param allowMultipleSelections allow multiple selection + * + * @return a list of file names */ - QMap showKDEPowerbox(struct capbox_options *options); + Q_SCRIPTABLE QStringList showKDEPowerbox( + int operation, + QString title, + QString parent, + QString startDir, + QString filter, + bool allowMultipleSelections = false); }; +#endif + ==== //depot/projects/trustedbsd/capabilities/cap-support/kpowerboxserver/powerbox.h#2 (text+ko) ==== From owner-p4-projects@FreeBSD.ORG Fri Jun 12 17:17:02 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 9B3221065675; Fri, 12 Jun 2009 17:17:02 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 5B03B1065673 for ; Fri, 12 Jun 2009 17:17:02 +0000 (UTC) (envelope-from jona@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 07F7E8FC12 for ; Fri, 12 Jun 2009 17:17:02 +0000 (UTC) (envelope-from jona@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n5CHH1eE006043 for ; Fri, 12 Jun 2009 17:17:01 GMT (envelope-from jona@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n5CHH1O6006041 for perforce@freebsd.org; Fri, 12 Jun 2009 17:17:01 GMT (envelope-from jona@FreeBSD.org) Date: Fri, 12 Jun 2009 17:17:01 GMT Message-Id: <200906121717.n5CHH1O6006041@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to jona@FreeBSD.org using -f From: Jonathan Anderson To: Perforce Change Reviews Cc: Subject: PERFORCE change 164188 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 12 Jun 2009 17:17:03 -0000 http://perforce.freebsd.org/chv.cgi?CH=164188 Change 164188 by jona@jona-trustedbsd-kentvm on 2009/06/12 17:16:56 Delete the old kpowerboxtest.cpp Affected files ... .. //depot/projects/trustedbsd/capabilities/cap-support/kpowerboxserver/kpowerboxtest.cpp#2 delete Differences ... From owner-p4-projects@FreeBSD.ORG Fri Jun 12 17:19:04 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id A31281065674; Fri, 12 Jun 2009 17:19:04 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 631A51065672 for ; Fri, 12 Jun 2009 17:19:04 +0000 (UTC) (envelope-from jona@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 37A358FC19 for ; Fri, 12 Jun 2009 17:19:04 +0000 (UTC) (envelope-from jona@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n5CHJ4ND006166 for ; Fri, 12 Jun 2009 17:19:04 GMT (envelope-from jona@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n5CHJ47a006164 for perforce@freebsd.org; Fri, 12 Jun 2009 17:19:04 GMT (envelope-from jona@FreeBSD.org) Date: Fri, 12 Jun 2009 17:19:04 GMT Message-Id: <200906121719.n5CHJ47a006164@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to jona@FreeBSD.org using -f From: Jonathan Anderson To: Perforce Change Reviews Cc: Subject: PERFORCE change 164189 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 12 Jun 2009 17:19:05 -0000 http://perforce.freebsd.org/chv.cgi?CH=164189 Change 164189 by jona@jona-trustedbsd-kentvm on 2009/06/12 17:18:32 Made the cleanup script a little more effective Affected files ... .. //depot/projects/trustedbsd/capabilities/cap-support/kpowerboxserver/cleanup.sh#2 edit Differences ... ==== //depot/projects/trustedbsd/capabilities/cap-support/kpowerboxserver/cleanup.sh#2 (text+ko) ==== @@ -3,6 +3,6 @@ CMAKE_CRAP="CMakeCache.txt CMakeFiles CMakeTmp *.cmake *.shell" QT_CRAP="*_automoc.cpp* moc_*.cpp" -make clean +make clean || echo "Continuing with cleanup..." rm -rf $CMAKE_CRAP $QT_CRAP Makefile tags From owner-p4-projects@FreeBSD.ORG Fri Jun 12 17:29:16 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id F0A481065695; Fri, 12 Jun 2009 17:29:15 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id A942C106568C for ; Fri, 12 Jun 2009 17:29:15 +0000 (UTC) (envelope-from jona@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 9B6988FC22 for ; Fri, 12 Jun 2009 17:29:14 +0000 (UTC) (envelope-from jona@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n5CHTE1v006965 for ; Fri, 12 Jun 2009 17:29:14 GMT (envelope-from jona@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n5CHTEK4006963 for perforce@freebsd.org; Fri, 12 Jun 2009 17:29:14 GMT (envelope-from jona@FreeBSD.org) Date: Fri, 12 Jun 2009 17:29:14 GMT Message-Id: <200906121729.n5CHTEK4006963@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to jona@FreeBSD.org using -f From: Jonathan Anderson To: Perforce Change Reviews Cc: Subject: PERFORCE change 164190 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 12 Jun 2009 17:29:17 -0000 http://perforce.freebsd.org/chv.cgi?CH=164190 Change 164190 by jona@jona-trustedbsd-kent on 2009/06/12 17:29:08 main.cpp is important Affected files ... .. //depot/projects/trustedbsd/capabilities/cap-support/kpowerboxserver/main.cpp#1 add Differences ... From owner-p4-projects@FreeBSD.ORG Fri Jun 12 18:08:56 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 4CB311065672; Fri, 12 Jun 2009 18:08:55 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 09D40106566C for ; Fri, 12 Jun 2009 18:08:55 +0000 (UTC) (envelope-from truncs@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id EC9918FC21 for ; Fri, 12 Jun 2009 18:08:54 +0000 (UTC) (envelope-from truncs@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n5CI8sLh012850 for ; Fri, 12 Jun 2009 18:08:54 GMT (envelope-from truncs@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n5CI8sIm012848 for perforce@freebsd.org; Fri, 12 Jun 2009 18:08:54 GMT (envelope-from truncs@FreeBSD.org) Date: Fri, 12 Jun 2009 18:08:54 GMT Message-Id: <200906121808.n5CI8sIm012848@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to truncs@FreeBSD.org using -f From: Aditya Sarawgi To: Perforce Change Reviews Cc: Subject: PERFORCE change 164192 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 12 Jun 2009 18:08:56 -0000 http://perforce.freebsd.org/chv.cgi?CH=164192 Change 164192 by truncs@aditya on 2009/06/12 18:07:58 This block should be outside access check as suggested by stas@ Affected files ... .. //depot/projects/soc2009/soc_ext2fs/src/sys/gnu/fs/ext2fs/ext2_vnops.c#9 edit Differences ... ==== //depot/projects/soc2009/soc_ext2fs/src/sys/gnu/fs/ext2fs/ext2_vnops.c#9 (text+ko) ==== @@ -379,6 +379,11 @@ struct ucred *cred = ap->a_cred; struct thread *td = curthread; int error; + /* + * Deny setting of UF flags + */ + if(vap->va_flags & UF_SETTABLE) + return (EOPNOTSUPP); /* * Check for unsettable attributes. @@ -392,11 +397,7 @@ if (vap->va_flags != VNOVAL) { if (vp->v_mount->mnt_flag & MNT_RDONLY) return (EROFS); - /* - * Deny setting of UF_* flags - */ - if(vap->va_flags & UF_SETTABLE) - return (EOPNOTSUPP); + /* * Callers may only modify the file flags on objects they * have VADMIN rights for. From owner-p4-projects@FreeBSD.ORG Fri Jun 12 18:12:59 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 98A661065751; Fri, 12 Jun 2009 18:12:59 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 493D3106574E for ; Fri, 12 Jun 2009 18:12:59 +0000 (UTC) (envelope-from jona@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 365F38FC16 for ; Fri, 12 Jun 2009 18:12:59 +0000 (UTC) (envelope-from jona@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n5CICxkX013301 for ; Fri, 12 Jun 2009 18:12:59 GMT (envelope-from jona@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n5CICxZb013299 for perforce@freebsd.org; Fri, 12 Jun 2009 18:12:59 GMT (envelope-from jona@FreeBSD.org) Date: Fri, 12 Jun 2009 18:12:59 GMT Message-Id: <200906121812.n5CICxZb013299@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to jona@FreeBSD.org using -f From: Jonathan Anderson To: Perforce Change Reviews Cc: Subject: PERFORCE change 164193 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 12 Jun 2009 18:13:01 -0000 http://perforce.freebsd.org/chv.cgi?CH=164193 Change 164193 by jona@jona-trustedbsd-kentvm on 2009/06/12 18:12:34 Some more testing of user_angel IPC Affected files ... .. //depot/projects/trustedbsd/capabilities/src/tools/cap/user_angel/fdtest.c#3 edit .. //depot/projects/trustedbsd/capabilities/src/tools/cap/user_angel/protocol.c#7 edit .. //depot/projects/trustedbsd/capabilities/src/tools/cap/user_angel/protocol.h#6 edit Differences ... ==== //depot/projects/trustedbsd/capabilities/src/tools/cap/user_angel/fdtest.c#3 (text+ko) ==== @@ -84,7 +84,7 @@ - struct cap_wire_datum *d = cap_marshall_string(message, 7); + struct cap_wire_datum *d = cap_marshall_string(message, strlen(message)); if(cap_send_fd(sock, "message and FDs", d, fds, fdlen) < 0) err(EX_IOERR, "Error sending data/FD"); @@ -98,6 +98,51 @@ if(cap_recv_fd(sock, &name, &d, fd_array, &fdlen) < 0) err(EX_IOERR, "Error receiving data/FD"); + printf("Received datum:\n"); + printf(" type: %i\n", d->type); + printf(" length: %i\n", d->length); + printf(" value: "); + + int len = 50; + char tmp[len + 1]; + + switch(d->type & TYPE_PRIMITIVE_MASK) + { + case INTEGER: + // TODO: long, short, etc. + ; + int value; + if(cap_unmarshall_int(d, &value) < 0) + err(EX_SOFTWARE, "Error unmarshalling int"); + + printf("%i ", value); + break; + +/* + case FLOAT: + if(d->type & LONG) printf("%g ", *((double*) value)); + else printf("%f ", *((float*) value)); + break; +*/ + case STRING: + ; + if(cap_unmarshall_string(d, tmp, &len) < 0) + err(EX_SOFTWARE, "Error unmarshalling string"); + + tmp[len] = '\0'; + printf("'%s' ", tmp); + break; + + case CAPBOX_OPTIONS: + printf("capbox_options (TODO) "); + break; + + default: + printf("unknown type 0x%x ", d->type); + } + printf("\n"); + + free(d); printf("Received FDs: "); for(int i = 0; i < fdlen; i++) printf("%i ", fd_array[i]); ==== //depot/projects/trustedbsd/capabilities/src/tools/cap/user_angel/protocol.c#7 (text+ko) ==== @@ -58,6 +58,21 @@ } + +int cap_unmarshall_int(struct cap_wire_datum *datum, int32_t *value) +{ + if(datum->length != 4) + { + fprintf(stderr, "Error unmarshalling int: should be 4B long, not %i\n", + datum->length); + return -1; + } + + memcpy(value, ((void*) datum) + sizeof(struct cap_wire_datum), 4); + return datum->length; +} + + struct cap_wire_datum* cap_marshall_string(char *value, int len) { int size = sizeof(struct cap_wire_datum) + len; @@ -65,10 +80,25 @@ d->type = STRING; d->length = len; - memcpy(d + sizeof(struct cap_wire_datum), value, len); + memcpy(((char*) d) + sizeof(struct cap_wire_datum), value, len); return d; } + + +int cap_unmarshall_string(struct cap_wire_datum *datum, char *value, int *len) +{ + *len = datum->length; + if(datum->length < 0) + { + fprintf(stderr, "Error unmarshalling int: should be positive, not %i\n", + datum->length); + return -1; + } + + memcpy(value, ((void*) datum) + sizeof(struct cap_wire_datum), datum->length); + return datum->length; +} /* int cap_send(int sock, struct cap_wire_datum* datum); */ @@ -140,7 +170,7 @@ // make room for it *d = (struct cap_wire_datum*) malloc(to_receive); struct iovec iov; - iov.iov_base = d; + iov.iov_base = *d; iov.iov_len = to_receive; ==== //depot/projects/trustedbsd/capabilities/src/tools/cap/user_angel/protocol.h#6 (text+ko) ==== @@ -38,11 +38,16 @@ struct cap_wire_datum { uint32_t type; - #define INTEGER 0x00000001 - #define FLOAT 0x00000002 - #define STRING 0x00000004 - #define LONG 0x00000100 - #define SHORT 0x00000200 + #define TYPE_PRIMITIVE_MASK 0x000000ff + #define INTEGER 0x00000001 + #define FLOAT 0x00000002 + #define STRING 0x00000004 + #define CAPBOX_OPTIONS 0x00000008 + + #define TYPE_MODIFIER_MASK 0x0000ff00 + #define LONG 0x00000100 + #define SHORT 0x00000200 + #define UNSIGNED 0x00000400 uint32_t length; @@ -60,16 +65,23 @@ +/* Unmarshalling functions; calling programs should free the result */ struct cap_wire_datum* cap_marshall_int(int32_t value); struct cap_wire_datum* cap_marshall_string(char *value, int len); +/* Unmarshalling functions; return the number of bytes unmarshalled (or -1) */ +int cap_unmarshall_int(struct cap_wire_datum *datum, int32_t *value); +int cap_unmarshall_string(struct cap_wire_datum *datum, char* value, int *len); + +/* Sending, with or without file descriptors */ int cap_send(int sock, char *name, struct cap_wire_datum *d); int cap_send_fd(int sock, const char *name, struct cap_wire_datum *d, int32_t fd_array[], int32_t fdlen); +/* Receiving, with or without file descriptors */ int cap_recv(int sock, char **name, struct cap_wire_datum **d); -/** You supply the FD array and say how big it is; I'll tell you how many FDs you actually received. */ +/* You supply the FD array and say how big it is; I'll tell you how many FDs you actually received. */ int cap_recv_fd(int sock, char **name, struct cap_wire_datum **d, int32_t fd_array[], int32_t *fdlen); From owner-p4-projects@FreeBSD.ORG Fri Jun 12 19:00:50 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id E33FF1065691; Fri, 12 Jun 2009 19:00:49 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 7E55A106566B for ; Fri, 12 Jun 2009 19:00:49 +0000 (UTC) (envelope-from truncs@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 621338FC1F for ; Fri, 12 Jun 2009 19:00:49 +0000 (UTC) (envelope-from truncs@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n5CJ0nUJ023701 for ; Fri, 12 Jun 2009 19:00:49 GMT (envelope-from truncs@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n5CJ0nIQ023699 for perforce@freebsd.org; Fri, 12 Jun 2009 19:00:49 GMT (envelope-from truncs@FreeBSD.org) Date: Fri, 12 Jun 2009 19:00:49 GMT Message-Id: <200906121900.n5CJ0nIQ023699@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to truncs@FreeBSD.org using -f From: Aditya Sarawgi To: Perforce Change Reviews Cc: Subject: PERFORCE change 164197 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 12 Jun 2009 19:00:50 -0000 http://perforce.freebsd.org/chv.cgi?CH=164197 Change 164197 by truncs@aditya on 2009/06/12 19:00:40 EXT2_INODES_* is an old hack for accesses to the s_inodes_per_block field. It works even for old file system as this field is is in the in-core superblock and is always initialized from other data. No macro is required for this as suggested by bde@ Affected files ... .. //depot/projects/soc2009/soc_ext2fs/src/sys/gnu/fs/ext2fs/ext2_fs.h#15 edit .. //depot/projects/soc2009/soc_ext2fs/src/sys/gnu/fs/ext2fs/ext2_linux_ialloc.c#6 edit .. //depot/projects/soc2009/soc_ext2fs/src/sys/gnu/fs/ext2fs/fs.h#6 edit Differences ... ==== //depot/projects/soc2009/soc_ext2fs/src/sys/gnu/fs/ext2fs/ext2_fs.h#15 (text+ko) ==== @@ -153,7 +153,6 @@ #define EXT2_ADDR_PER_BLOCK_BITS(s) (EXT2_SB(s)->s_addr_per_block_bits) #define EXT2_INODE_SIZE(s) (EXT2_SB(s)->e2fs_isize) #define EXT2_FIRST_INO(s) (EXT2_SB(s)->e2fs_first_inode) -#define EXT2_INODES_PER_BLOCK(s) ((s)->e2fs_ipb) #else #define EXT2_INODE_SIZE(s) (((s)->s_rev_level == E2FS_REV0) ? \ E2FS_REV0 : (s)->s_inode_size) @@ -218,12 +217,11 @@ #if defined(__KERNEL__) || defined(_KERNEL) # define EXT2_BLOCKS_PER_GROUP(s) (EXT2_SB(s)->e2fs_bpg) # define EXT2_DESC_PER_BLOCK(s) (EXT2_SB(s)->e2fs_descpb) -# define EXT2_INODES_PER_GROUP(s) (EXT2_SB(s)->e2fs_ipg) # define EXT2_DESC_PER_BLOCK_BITS(s) (EXT2_SB(s)->s_desc_per_block_bits) #else # define EXT2_BLOCKS_PER_GROUP(s) ((s)->e2fs_bpg) # define EXT2_DESC_PER_BLOCK(s) (EXT2_BLOCK_SIZE(s) / sizeof (struct ext2_group_desc)) -# define EXT2_INODES_PER_GROUP(s) ((s)->s_ipg) + #endif /* ==== //depot/projects/soc2009/soc_ext2fs/src/sys/gnu/fs/ext2fs/ext2_linux_ialloc.c#6 (text+ko) ==== @@ -231,8 +231,8 @@ return; } es = sb->e2fs; - block_group = (inode->i_number - 1) / EXT2_INODES_PER_GROUP(sb); - bit = (inode->i_number - 1) % EXT2_INODES_PER_GROUP(sb); + block_group = (inode->i_number - 1) / sb->e2fs_ipg; + bit = (inode->i_number - 1) % sb->e2fs_ipg; bitmap_nr = load_inode_bitmap (ITOV(inode)->v_mount, block_group); bh = sb->e2fs_ib[bitmap_nr]; if (!clear_bit (bit, bh->b_data)) @@ -273,8 +273,7 @@ struct ext2_inode * raw_inode; inode_block = gdp->bg_inode_table + (((inode->i_number - 1) % - EXT2_INODES_PER_GROUP(inode->i_sb)) / - EXT2_INODES_PER_BLOCK(inode->i_sb)); + (inode->i_sb->e2fs_ipg) /(inode->i_sb->e2fs_ipb))); bh = bread (inode->i_sb->s_dev, inode_block, inode->i_sb->e2fs_bsize); if (!bh) { printf ("inc_inode_version Cannot load inode table block - " @@ -285,8 +284,7 @@ } raw_inode = ((struct ext2_inode *) bh->b_data) + (((inode->i_number - 1) % - EXT2_INODES_PER_GROUP(inode->i_sb)) % - EXT2_INODES_PER_BLOCK(inode->i_sb)); + (inode->i_sb->e2fs_ipg)) % (inode->i_sb->e2fs_ipb)); raw_inode->i_version++; inode->u.ext2_i.i_version = raw_inode->i_version; bdwrite (bh); @@ -408,8 +406,7 @@ bitmap_nr = load_inode_bitmap (ITOV(dir)->v_mount, i); bh = sb->e2fs_ib[bitmap_nr]; if ((j = find_first_zero_bit ((unsigned long *) bh->b_data, - EXT2_INODES_PER_GROUP(sb))) < - EXT2_INODES_PER_GROUP(sb)) { + (sb->e2fs_ipg) < (sb->e2fs_ipg)))) { if (set_bit (j, bh->b_data)) { printf ( "ext2_new_inode:" "bit already set for inode %d", j); @@ -433,7 +430,7 @@ } goto repeat; } - j += i * EXT2_INODES_PER_GROUP(sb) + 1; + j += i * (sb->e2fs_ipg) + 1; if (j < EXT2_FIRST_INO(sb) || j > es->e2fs_icount) { printf ( "ext2_new_inode:" "reserved inode or inode > inodes count - " @@ -473,7 +470,7 @@ desc_count += gdp->bg_free_inodes_count; bitmap_nr = load_inode_bitmap (mp, i); x = ext2_count_free (sb->e2fs_ib[bitmap_nr], - EXT2_INODES_PER_GROUP(sb) / 8); + (sb->e2fs_ipg) / 8); ext2_debug ("group %d: stored = %d, counted = %lu\n", i, gdp->bg_free_inodes_count, x); bitmap_count += x; @@ -507,7 +504,7 @@ desc_count += gdp->bg_free_inodes_count; bitmap_nr = load_inode_bitmap (sb, i); x = ext2_count_free (sb->u.ext2_sb.e2fs_ib[bitmap_nr], - EXT2_INODES_PER_GROUP(sb) / 8); + (sb->e2fs_ipg) / 8); if (gdp->bg_free_inodes_count != x) printf ( "ext2_check_inodes_bitmap:" "Wrong free inodes count in group %d, " ==== //depot/projects/soc2009/soc_ext2fs/src/sys/gnu/fs/ext2fs/fs.h#6 (text+ko) ==== @@ -80,14 +80,14 @@ #define dbtofsb(fs, b) ((b) >> ((fs)->e2fs_fsbtodb)) /* get group containing inode */ -#define ino_to_cg(fs, x) (((x) - 1) / EXT2_INODES_PER_GROUP(fs)) +#define ino_to_cg(fs, x) (((x) - 1) / (fs->e2fs_ipg)) /* get block containing inode from its number x */ #define ino_to_fsba(fs, x) fs_cs(fs, ino_to_cg(fs, x)).bg_inode_table + \ - (((x)-1) % EXT2_INODES_PER_GROUP(fs))/EXT2_INODES_PER_BLOCK(fs) + (((x)-1) % (fs->e2fs_ipg))/(fs->e2fs_ipb) /* get offset for inode in block */ -#define ino_to_fsbo(fs, x) ((x-1) % EXT2_INODES_PER_BLOCK(fs)) +#define ino_to_fsbo(fs, x) ((x-1) % (fs->e2fs_ipb)) /* * Give cylinder group number for a file system block. @@ -129,7 +129,7 @@ /* * INOPB is the number of inodes in a secondary storage block. */ -#define INOPB(fs) EXT2_INODES_PER_BLOCK(fs) +#define INOPB(fs) (fs->e2fs_ipb) /* * NINDIR is the number of indirects in a file system block. From owner-p4-projects@FreeBSD.ORG Fri Jun 12 21:13:11 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 8A6AF1065674; Fri, 12 Jun 2009 21:13:11 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 434521065670 for ; Fri, 12 Jun 2009 21:13:11 +0000 (UTC) (envelope-from trasz@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 2F8C18FC0C for ; Fri, 12 Jun 2009 21:13:11 +0000 (UTC) (envelope-from trasz@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n5CLDBHb055665 for ; Fri, 12 Jun 2009 21:13:11 GMT (envelope-from trasz@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n5CLDBrx055663 for perforce@freebsd.org; Fri, 12 Jun 2009 21:13:11 GMT (envelope-from trasz@freebsd.org) Date: Fri, 12 Jun 2009 21:13:11 GMT Message-Id: <200906122113.n5CLDBrx055663@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to trasz@freebsd.org using -f From: Edward Tomasz Napierala To: Perforce Change Reviews Cc: Subject: PERFORCE change 164206 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 12 Jun 2009 21:13:12 -0000 http://perforce.freebsd.org/chv.cgi?CH=164206 Change 164206 by trasz@trasz_victim on 2009/06/12 21:12:12 WIP with adding calls to hrl_{alloc,free}(). It seems it's much more hairy than I originally thought. ;-/ Affected files ... .. //depot/projects/soc2009/trasz_limits/TODO#1 add .. //depot/projects/soc2009/trasz_limits/sys/compat/linux/linux_misc.c#4 edit .. //depot/projects/soc2009/trasz_limits/sys/compat/svr4/imgact_svr4.c#2 edit .. //depot/projects/soc2009/trasz_limits/sys/compat/svr4/svr4_filio.c#2 edit .. //depot/projects/soc2009/trasz_limits/sys/fs/fdescfs/fdesc_vfsops.c#3 edit .. //depot/projects/soc2009/trasz_limits/sys/fs/msdosfs/msdosfs_vnops.c#2 edit .. //depot/projects/soc2009/trasz_limits/sys/fs/nfsclient/nfs_clbio.c#5 edit .. //depot/projects/soc2009/trasz_limits/sys/fs/nwfs/nwfs_io.c#3 edit .. //depot/projects/soc2009/trasz_limits/sys/fs/smbfs/smbfs_io.c#4 edit .. //depot/projects/soc2009/trasz_limits/sys/fs/tmpfs/tmpfs_vnops.c#4 edit .. //depot/projects/soc2009/trasz_limits/sys/fs/unionfs/union_subr.c#2 edit .. //depot/projects/soc2009/trasz_limits/sys/gnu/fs/ext2fs/ext2_readwrite.c#2 edit .. //depot/projects/soc2009/trasz_limits/sys/gnu/fs/xfs/FreeBSD/xfs_vnops.c#2 edit .. //depot/projects/soc2009/trasz_limits/sys/i386/linux/imgact_linux.c#2 edit .. //depot/projects/soc2009/trasz_limits/sys/kern/imgact_aout.c#2 edit .. //depot/projects/soc2009/trasz_limits/sys/kern/imgact_elf.c#2 edit .. //depot/projects/soc2009/trasz_limits/sys/kern/imgact_gzip.c#2 edit .. //depot/projects/soc2009/trasz_limits/sys/kern/init_main.c#3 edit .. //depot/projects/soc2009/trasz_limits/sys/kern/kern_descrip.c#6 edit .. //depot/projects/soc2009/trasz_limits/sys/kern/kern_exit.c#3 edit .. //depot/projects/soc2009/trasz_limits/sys/kern/kern_fork.c#3 edit .. //depot/projects/soc2009/trasz_limits/sys/kern/kern_hrl.c#6 edit .. //depot/projects/soc2009/trasz_limits/sys/kern/kern_prot.c#5 edit .. //depot/projects/soc2009/trasz_limits/sys/kern/kern_resource.c#5 edit .. //depot/projects/soc2009/trasz_limits/sys/kern/tty_pts.c#3 edit .. //depot/projects/soc2009/trasz_limits/sys/nfsclient/nfs_bio.c#6 edit .. //depot/projects/soc2009/trasz_limits/sys/sys/hrl.h#5 edit .. //depot/projects/soc2009/trasz_limits/sys/sys/proc.h#3 edit .. //depot/projects/soc2009/trasz_limits/sys/sys/resourcevar.h#2 edit .. //depot/projects/soc2009/trasz_limits/sys/ufs/ffs/ffs_vnops.c#2 edit .. //depot/projects/soc2009/trasz_limits/sys/vm/vm_unix.c#2 edit Differences ... ==== //depot/projects/soc2009/trasz_limits/sys/compat/linux/linux_misc.c#4 (text+ko) ==== @@ -36,6 +36,7 @@ #include #include #include +#include #if defined(__i386__) #include #endif @@ -359,14 +360,14 @@ * XXX - this is not complete. it should check current usage PLUS * the resources needed by this library. */ - PROC_LOCK(td->td_proc); - if (a_out->a_text > maxtsiz || - a_out->a_data + bss_size > lim_cur(td->td_proc, RLIMIT_DATA)) { - PROC_UNLOCK(td->td_proc); + if (a_out->a_text > maxtsiz) { error = ENOMEM; goto cleanup; } - PROC_UNLOCK(td->td_proc); + error = hrl_allocated_proc(td->td_proc, HRL_RESOURCE_DATASIZE, + a_out->a_data + bss_size); + if (error) + goto cleanup; /* * Prevent more writers. ==== //depot/projects/soc2009/trasz_limits/sys/compat/svr4/imgact_svr4.c#2 (text+ko) ==== @@ -36,6 +36,7 @@ #include #include #include +#include #include #include #include @@ -106,13 +107,12 @@ /* * text/data/bss must not exceed limits */ - PROC_LOCK(imgp->proc); - if (a_out->a_text > maxtsiz || - a_out->a_data + bss_size > lim_cur(imgp->proc, RLIMIT_DATA)) { - PROC_UNLOCK(imgp->proc); - return (ENOMEM); - } - PROC_UNLOCK(imgp->proc); + if (a_out->a_text > maxtsiz) + return (ENOMEM); + error = hrl_allocated_proc(imgp->proc, HRL_RESOURCE_DATASIZE, + a_out->a_data + bss_size); + if (error) + return (error); VOP_UNLOCK(imgp->vp, 0); ==== //depot/projects/soc2009/trasz_limits/sys/compat/svr4/svr4_filio.c#2 (text+ko) ==== @@ -37,6 +37,7 @@ #include #include #include +#include #include #include #include @@ -66,6 +67,9 @@ int idx = 0, cerr; u_long siz; + /* + * XXX: What is this for? + */ PROC_LOCK(td->td_proc); if (uap->nfds > lim_cur(td->td_proc, RLIMIT_NOFILE) && uap->nfds > FD_SETSIZE) { @@ -74,6 +78,8 @@ } PROC_UNLOCK(td->td_proc); + hrl_alloc(HRL_RESOURCE_OPENFILES, uap->nfds); + pa.fds = uap->fds; pa.nfds = uap->nfds; pa.timeout = uap->timeout; @@ -99,6 +105,7 @@ forget to update it if I add more code */ } done: + hrl_free(HRL_RESOURCE_OPENFILES, uap->nfds); free(pfd, M_TEMP); return error; } ==== //depot/projects/soc2009/trasz_limits/sys/fs/fdescfs/fdesc_vfsops.c#3 (text+ko) ==== @@ -198,6 +198,7 @@ PROC_LOCK(td->td_proc); lim = lim_cur(td->td_proc, RLIMIT_NOFILE); PROC_UNLOCK(td->td_proc); + /* XXX: Check HRL? */ fdp = td->td_proc->p_fd; FILEDESC_SLOCK(fdp); last = min(fdp->fd_nfiles, lim); ==== //depot/projects/soc2009/trasz_limits/sys/fs/msdosfs/msdosfs_vnops.c#2 (text+ko) ==== @@ -54,6 +54,7 @@ #include #include #include +#include #include #include #include @@ -700,14 +701,10 @@ * If they've exceeded their filesize limit, tell them about it. */ if (td != NULL) { - PROC_LOCK(td->td_proc); - if ((uoff_t)uio->uio_offset + uio->uio_resid > - lim_cur(td->td_proc, RLIMIT_FSIZE)) { - psignal(td->td_proc, SIGXFSZ); - PROC_UNLOCK(td->td_proc); - return (EFBIG); - } - PROC_UNLOCK(td->td_proc); + error = hrl_allocated_proc(td->td_proc, HRL_RESOURCE_FILESIZE, + (uoff_t)uio->uio_offset + uio->uio_resid); + if (error) + return (error); } /* ==== //depot/projects/soc2009/trasz_limits/sys/fs/nfsclient/nfs_clbio.c#5 (text+ko) ==== @@ -39,6 +39,7 @@ #include #include #include +#include #include #include #include @@ -1054,14 +1055,10 @@ * file servers have no limits, i don't think it matters */ if (p != NULL) { - PROC_LOCK(p); - if (uio->uio_offset + uio->uio_resid > - lim_cur(p, RLIMIT_FSIZE)) { - psignal(p, SIGXFSZ); - PROC_UNLOCK(p); - return (EFBIG); - } - PROC_UNLOCK(p); + error = hrl_allocated_proc(p, HRL_RESOURCE_FILESIZE, + (uoff_t)uio->uio_offset + uio->uio_resid); + if (error) + return (error); } biosize = vp->v_mount->mnt_stat.f_iosize; ==== //depot/projects/soc2009/trasz_limits/sys/fs/nwfs/nwfs_io.c#3 (text+ko) ==== @@ -38,6 +38,7 @@ #include #include #include +#include #include #include #include @@ -236,14 +237,10 @@ } if (uiop->uio_resid == 0) return 0; if (td != NULL) { - PROC_LOCK(td->td_proc); - if (uiop->uio_offset + uiop->uio_resid > - lim_cur(td->td_proc, RLIMIT_FSIZE)) { - psignal(td->td_proc, SIGXFSZ); - PROC_UNLOCK(td->td_proc); - return (EFBIG); - } - PROC_UNLOCK(td->td_proc); + error = hrl_allocated_proc(td->td_proc, HRL_RESOURCE_FILESIZE, + (uoff_t)uiop->uio_offset + uiop->uio_resid); + if (error) + return (error); } error = ncp_write(NWFSTOCONN(nmp), &np->n_fh, uiop, cred); NCPVNDEBUG("after: ofs=%d,resid=%d\n",(int)uiop->uio_offset, uiop->uio_resid); ==== //depot/projects/soc2009/trasz_limits/sys/fs/smbfs/smbfs_io.c#4 (text+ko) ==== @@ -38,6 +38,7 @@ #include #include #include +#include #include #include #include @@ -278,14 +279,10 @@ if (uiop->uio_resid == 0) return 0; if (p != NULL) { - PROC_LOCK(p); - if (uiop->uio_offset + uiop->uio_resid > - lim_cur(p, RLIMIT_FSIZE)) { - psignal(p, SIGXFSZ); - PROC_UNLOCK(p); - return EFBIG; - } - PROC_UNLOCK(p); + error = hrl_allocated_proc(p, HRL_RESOURCE_FILESIZE, + (uoff_t)uiop->uio_offset + uiop->uio_resid); + if (error) + return (error); } smb_makescred(&scred, td, cred); error = smb_write(smp->sm_share, np->n_fid, uiop, &scred); ==== //depot/projects/soc2009/trasz_limits/sys/fs/tmpfs/tmpfs_vnops.c#4 (text+ko) ==== @@ -38,6 +38,7 @@ #include #include +#include #include #include #include @@ -660,14 +661,10 @@ return (EFBIG); if (vp->v_type == VREG && td != NULL) { - PROC_LOCK(td->td_proc); - if (uio->uio_offset + uio->uio_resid > - lim_cur(td->td_proc, RLIMIT_FSIZE)) { - psignal(td->td_proc, SIGXFSZ); - PROC_UNLOCK(td->td_proc); - return (EFBIG); - } - PROC_UNLOCK(td->td_proc); + error = hrl_allocated_proc(td->td_proc, HRL_RESOURCE_FILESIZE, + (uoff_t)uio->uio_offset + uio->uio_resid); + if (error) + return (error); } extended = uio->uio_offset + uio->uio_resid > node->tn_size; ==== //depot/projects/soc2009/trasz_limits/sys/fs/unionfs/union_subr.c#2 (text+ko) ==== @@ -49,6 +49,7 @@ #include #include #include +#include #include #include @@ -780,6 +781,8 @@ rootinfo = uifind((uid_t)0); cred = crdup(cnp->cn_cred); chgproccnt(cred->cr_ruidinfo, 1, 0); + /* XXX: What about the return value? And what's the purpose of this, anyway? */ + hrl_alloc(HRL_RESOURCE_MAXPROCESSES, 1); change_euid(cred, rootinfo); change_ruid(cred, rootinfo); change_svuid(cred, (uid_t)0); @@ -830,6 +833,7 @@ unionfs_mkshadowdir_abort: cnp->cn_cred = credbk; chgproccnt(cred->cr_ruidinfo, -1, 0); + hrl_free(HRL_RESOURCE_MAXPROCESSES, 1); crfree(cred); return (error); ==== //depot/projects/soc2009/trasz_limits/sys/gnu/fs/ext2fs/ext2_readwrite.c#2 (text+ko) ==== @@ -210,14 +210,10 @@ */ td = uio->uio_td; if (vp->v_type == VREG && td != NULL) { - PROC_LOCK(td->td_proc); - if (uio->uio_offset + uio->uio_resid > - lim_cur(td->td_proc, RLIMIT_FSIZE)) { - psignal(td->td_proc, SIGXFSZ); - PROC_UNLOCK(td->td_proc); - return (EFBIG); - } - PROC_UNLOCK(td->td_proc); + error = hrl_allocated_proc(td->td_proc, HRL_RESOURCE_FILESIZE, + (uoff_t)uio->uio_offset + uio->uio_resid); + if (error) + return (error); } resid = uio->uio_resid; ==== //depot/projects/soc2009/trasz_limits/sys/gnu/fs/xfs/FreeBSD/xfs_vnops.c#2 (text+ko) ==== @@ -31,6 +31,7 @@ #include #include #include +#include #include #include #include @@ -599,14 +600,10 @@ #if 0 td = uio->uio_td; if (vp->v_type == VREG && td != NULL) { - PROC_LOCK(td->td_proc); - if (uio->uio_offset + uio->uio_resid > - lim_cur(td->td_proc, RLIMIT_FSIZE)) { - psignal(td->td_proc, SIGXFSZ); - PROC_UNLOCK(td->td_proc); - return (EFBIG); - } - PROC_UNLOCK(td->td_proc); + error = hrl_allocated_proc(td->td_proc, HRL_RESOURCE_FILESIZE, + (uoff_t)uio->uio_offset + uio->uio_resid); + if (error) + return (error); } #endif ==== //depot/projects/soc2009/trasz_limits/sys/i386/linux/imgact_linux.c#2 (text+ko) ==== @@ -105,13 +105,12 @@ /* * text/data/bss must not exceed limits */ - PROC_LOCK(imgp->proc); - if (a_out->a_text > maxtsiz || - a_out->a_data + bss_size > lim_cur(imgp->proc, RLIMIT_DATA)) { - PROC_UNLOCK(imgp->proc); + if (a_out->a_text > maxtsiz) return (ENOMEM); - } - PROC_UNLOCK(imgp->proc); + error = hrl_allocated_proc(imgp->proc, HRL_RESOURCE_DATASIZE, + a_out->a_data + bss_size); + if (error) + return (error); VOP_UNLOCK(imgp->vp, 0); ==== //depot/projects/soc2009/trasz_limits/sys/kern/imgact_aout.c#2 (text+ko) ==== @@ -29,6 +29,7 @@ #include #include +#include #include #include #include @@ -180,16 +181,13 @@ /* * text/data/bss must not exceed limits */ - PROC_LOCK(imgp->proc); if (/* text can't exceed maximum text size */ - a_out->a_text > maxtsiz || - - /* data + bss can't exceed rlimit */ - a_out->a_data + bss_size > lim_cur(imgp->proc, RLIMIT_DATA)) { - PROC_UNLOCK(imgp->proc); - return (ENOMEM); - } - PROC_UNLOCK(imgp->proc); + a_out->a_text > maxtsiz) + return (ENOMEM); + error = hrl_allocated_proc(imgp->proc, HRL_RESOURCE_DATASIZE, + a_out->a_data + bss_size); + if (error) + return (error); /* * Avoid a possible deadlock if the current address space is destroyed ==== //depot/projects/soc2009/trasz_limits/sys/kern/imgact_elf.c#2 (text+ko) ==== @@ -35,6 +35,7 @@ #include #include +#include #include #include #include @@ -787,14 +788,18 @@ * limits after loading the segments since we do * not actually fault in all the segments pages. */ - PROC_LOCK(imgp->proc); - if (data_size > lim_cur(imgp->proc, RLIMIT_DATA) || - text_size > maxtsiz || - total_size > lim_cur(imgp->proc, RLIMIT_VMEM)) { - PROC_UNLOCK(imgp->proc); + if (text_size > maxtsiz) return (ENOMEM); - } + error = hrl_allocated_proc(imgp->proc, HRL_RESOURCE_DATASIZE, + data_size); + if (error) + return (error); + error = hrl_allocated_proc(imgp->proc, HRL_RESOURCE_VMEMORYUSE, + total_size); + if (error) + return (error); + PROC_LOCK(imgp->proc); vmspace->vm_tsize = text_size >> PAGE_SHIFT; vmspace->vm_taddr = (caddr_t)(uintptr_t)text_addr; vmspace->vm_dsize = data_size >> PAGE_SHIFT; ==== //depot/projects/soc2009/trasz_limits/sys/kern/imgact_gzip.c#2 (text+ko) ==== @@ -210,18 +210,15 @@ /* * text/data/bss must not exceed limits */ - PROC_LOCK(gz->ip->proc); if ( /* text can't exceed maximum text size */ - gz->a_out.a_text > maxtsiz || - - /* data + bss can't exceed rlimit */ - gz->a_out.a_data + gz->bss_size > - lim_cur(gz->ip->proc, RLIMIT_DATA)) { - PROC_UNLOCK(gz->ip->proc); + gz->a_out.a_text > maxtsiz) { gz->where = __LINE__; return (ENOMEM); } - PROC_UNLOCK(gz->ip->proc); + error = hrl_allocated_proc(gz->ip->proc, HRL_RESOURCE_DATASIZE, + gz->a_out.a_data + gz->bss_size); + if (error) + return (error); /* Find out how far we should go */ gz->file_end = gz->file_offset + gz->a_out.a_text + gz->a_out.a_data; ==== //depot/projects/soc2009/trasz_limits/sys/kern/init_main.c#3 (text+ko) ==== @@ -53,6 +53,7 @@ #include #include #include +#include #include #include #include @@ -518,6 +519,7 @@ * Charge root for one process. */ (void)chgproccnt(p->p_ucred->cr_ruidinfo, 1, 0); + hrl_alloc(HRL_RESOURCE_MAXPROCESSES, 1); } SYSINIT(p0init, SI_SUB_INTRINSIC, SI_ORDER_FIRST, proc0_init, NULL); ==== //depot/projects/soc2009/trasz_limits/sys/kern/kern_descrip.c#6 (text+ko) ==== @@ -279,6 +279,7 @@ td->td_retval[0] = min((int)lim_cur(p, RLIMIT_NOFILE), maxfilesperproc); PROC_UNLOCK(p); + /* XXX: Use HRL? */ return (0); } @@ -721,6 +722,7 @@ return (flags & DUP_FCNTL ? EINVAL : EBADF); PROC_LOCK(p); maxfd = min((int)lim_cur(p, RLIMIT_NOFILE), maxfilesperproc); + /* XXX: Add HRL accounting. */ PROC_UNLOCK(p); if (new >= maxfd) return (flags & DUP_FCNTL ? EINVAL : EMFILE); @@ -1366,6 +1368,7 @@ PROC_LOCK(p); maxfd = min((int)lim_cur(p, RLIMIT_NOFILE), maxfilesperproc); + /* XXX: Add HRL accounting. */ PROC_UNLOCK(p); /* @@ -1413,6 +1416,7 @@ PROC_LOCK(p); lim = min((int)lim_cur(p, RLIMIT_NOFILE), maxfilesperproc); + /* XXX: Add HRL accounting. */ PROC_UNLOCK(p); if ((i = lim - fdp->fd_nfiles) > 0 && (n -= i) <= 0) return (1); ==== //depot/projects/soc2009/trasz_limits/sys/kern/kern_exit.c#3 (text+ko) ==== @@ -67,6 +67,7 @@ #include #include /* for acct_process() function prototype */ #include +#include #include #include #include @@ -808,6 +809,7 @@ * Decrement the count of procs running with this uid. */ (void)chgproccnt(p->p_ucred->cr_ruidinfo, -1, 0); + hrl_free_proc(p, HRL_RESOURCE_MAXPROCESSES, 1); /* * Free credentials, arguments, and sigacts. ==== //depot/projects/soc2009/trasz_limits/sys/kern/kern_fork.c#3 (text+ko) ==== @@ -46,6 +46,7 @@ #include #include #include +#include #include #include #include @@ -332,14 +333,18 @@ * XXXRW: Can we avoid privilege here if it's not needed? */ error = priv_check_cred(td->td_ucred, PRIV_PROC_LIMIT, 0); - if (error == 0) + if (error == 0) { ok = chgproccnt(td->td_ucred->cr_ruidinfo, 1, 0); - else { + error = hrl_alloc_proc(p1, HRL_RESOURCE_MAXPROCESSES, 1); + } else { PROC_LOCK(p1); ok = chgproccnt(td->td_ucred->cr_ruidinfo, 1, lim_cur(p1, RLIMIT_NPROC)); + error = hrl_alloc_proc(p1, HRL_RESOURCE_MAXPROCESSES, 1); PROC_UNLOCK(p1); } + if (ok != !error) + printf("fork1: ok = %d, error = %d\n", ok, error); if (!ok) { error = EAGAIN; goto fail; ==== //depot/projects/soc2009/trasz_limits/sys/kern/kern_hrl.c#6 (text+ko) ==== @@ -100,19 +100,53 @@ MALLOC_DEFINE(M_HRL, "hrl", "Hierarchical Resource Limits"); int -hrl_alloc(int resource, uint64_t amount) +hrl_alloc_proc(struct proc *p, int resource, uint64_t amount) { KASSERT(amount > 0, ("invalid amount")); + /* + * XXX: Obviously wrong, fix later. + */ + p->p_resources[resource] += amount; + + /* + * XXX: When denying, return proper errno - EFSIZ, ENOMEM etc. + */ + + return (0); +} + +int +hrl_allocated_proc(struct proc *p, int resource, uint64_t amount) +{ + /* + * XXX: Make sure process can lower its resource consumption, + * even when already above the limit. + */ + return (0); } void -hrl_free(int resource, uint64_t amount) +hrl_free_proc(struct proc *p, int resource, uint64_t amount) { KASSERT(amount > 0, ("invalid amount")); + + p->p_resources[resource] -= amount; +} + +int +hrl_alloc(int resource, uint64_t amount) +{ + return (hrl_alloc_proc(curproc, resource, amount)); +} + +void +hrl_free(int resource, uint64_t amount) +{ + hrl_free_proc(curproc, resource, amount); } void @@ -129,7 +163,7 @@ /* * Removing a limit. */ - if (amount == 0) { + if (amount == -1) { mtx_lock(&hrl_lock); node = RB_FIND(hrl_tree, &hrls, &searched); if (node != NULL) { ==== //depot/projects/soc2009/trasz_limits/sys/kern/kern_prot.c#5 (text+ko) ==== @@ -52,6 +52,7 @@ #include #include #include +#include #include #include #include @@ -2029,11 +2030,14 @@ { (void)chgproccnt(newcred->cr_ruidinfo, -1, 0); + hrl_free(HRL_RESOURCE_MAXPROCESSES, 1); newcred->cr_ruid = ruip->ui_uid; uihold(ruip); uifree(newcred->cr_ruidinfo); newcred->cr_ruidinfo = ruip; (void)chgproccnt(newcred->cr_ruidinfo, 1, 0); + /* XXX: What about the return value? */ + hrl_alloc(HRL_RESOURCE_MAXPROCESSES, 1); } /*- ==== //depot/projects/soc2009/trasz_limits/sys/kern/kern_resource.c#5 (text+ko) ==== @@ -712,9 +712,9 @@ hrl_adjust(subject, id, subject, resource, action, lim->rlim_cur); } else { - hrl_adjust(subject, id, subject, resource, HRL_ACTION_DENY, 0); + hrl_adjust(subject, id, subject, resource, HRL_ACTION_DENY, -1); if (action != -1) - hrl_adjust(subject, id, subject, resource, action, 0); + hrl_adjust(subject, id, subject, resource, action, -1); } } ==== //depot/projects/soc2009/trasz_limits/sys/kern/tty_pts.c#3 (text+ko) ==== @@ -49,6 +49,7 @@ #include #include #include +#include #include #include #include @@ -680,6 +681,7 @@ free_unr(pts_pool, psc->pts_unit); chgptscnt(psc->pts_uidinfo, -1, 0); + hrl_free(HRL_RESOURCE_PTY, 1); uifree(psc->pts_uidinfo); knlist_destroy(&psc->pts_inpoll.si_note); @@ -707,7 +709,7 @@ static int pts_alloc(int fflags, struct thread *td, struct file *fp) { - int unit, ok; + int unit, ok, error; struct tty *tp; struct pts_softc *psc; struct proc *p = td->td_proc; @@ -716,7 +718,10 @@ /* Resource limiting. */ PROC_LOCK(p); ok = chgptscnt(uid, 1, lim_cur(p, RLIMIT_NPTS)); + error = hrl_alloc(HRL_RESOURCE_PTY, 1); PROC_UNLOCK(p); + if (ok != !error) + printf("pts_alloc: ok = %d, error = %d\n", ok, error); if (!ok) return (EAGAIN); @@ -724,11 +729,13 @@ unit = alloc_unr(pts_pool); if (unit < 0) { chgptscnt(uid, -1, 0); + hrl_free(HRL_RESOURCE_PTY, 1); return (EAGAIN); } if (unit > pts_maxdev) { free_unr(pts_pool, unit); chgptscnt(uid, -1, 0); + hrl_free(HRL_RESOURCE_PTY, 1); return (EAGAIN); } @@ -758,7 +765,7 @@ pts_alloc_external(int fflags, struct thread *td, struct file *fp, struct cdev *dev, const char *name) { - int ok; + int ok, error; struct tty *tp; struct pts_softc *psc; struct proc *p = td->td_proc; @@ -767,7 +774,10 @@ /* Resource limiting. */ PROC_LOCK(p); ok = chgptscnt(uid, 1, lim_cur(p, RLIMIT_NPTS)); + error = hrl_alloc(HRL_RESOURCE_PTY, 1); PROC_UNLOCK(p); + if (ok != !error) + printf("pts_alloc: ok = %d, error = %d\n", ok, error); if (!ok) return (EAGAIN); ==== //depot/projects/soc2009/trasz_limits/sys/nfsclient/nfs_bio.c#6 (text+ko) ==== @@ -41,6 +41,7 @@ #include #include #include +#include #include #include #include @@ -952,14 +953,10 @@ * file servers have no limits, i don't think it matters */ if (p != NULL) { - PROC_LOCK(p); - if (uio->uio_offset + uio->uio_resid > - lim_cur(p, RLIMIT_FSIZE)) { - psignal(p, SIGXFSZ); - PROC_UNLOCK(p); - return (EFBIG); - } - PROC_UNLOCK(p); + error = hrl_allocated_proc(p, HRL_RESOURCE_FILESIZE, + (uoff_t)uio->uio_offset + uio->uio_resid); + if (error) + return (error); } biosize = vp->v_mount->mnt_stat.f_iosize; ==== //depot/projects/soc2009/trasz_limits/sys/sys/hrl.h#5 (text+ko) ==== @@ -94,8 +94,14 @@ #ifdef _KERNEL +struct proc; + int hrl_alloc(int object, uint64_t amount); +int hrl_allocated(int object, uint64_t amount); void hrl_free(int object, uint64_t amount); +int hrl_alloc_proc(struct proc *p, int object, uint64_t amount); +int hrl_allocated_proc(struct proc *p, int object, uint64_t amount); +void hrl_free_proc(struct proc *p, int object, uint64_t amount); void hrl_adjust(int subject, id_t subject_id, int per, int resource, int action, int64_t amount); ==== //depot/projects/soc2009/trasz_limits/sys/sys/proc.h#3 (text+ko) ==== @@ -44,6 +44,7 @@ #ifndef _KERNEL #include #endif +#include #include #include #include @@ -545,6 +546,7 @@ LIST_HEAD(, mqueue_notifier) p_mqnotifier; /* (c) mqueue notifiers.*/ struct kdtrace_proc *p_dtrace; /* (*) DTrace-specific data. */ struct cv p_pwait; /* (*) wait cv for exit/exec */ + int64_t p_resources[HRL_RESOURCE_MAX + 1]; }; #define p_session p_pgrp->pg_session ==== //depot/projects/soc2009/trasz_limits/sys/sys/resourcevar.h#2 (text+ko) ==== @@ -38,6 +38,7 @@ #ifdef _KERNEL #include #include +#include #endif /* @@ -94,6 +95,7 @@ long ui_ptscnt; /* (b) number of pseudo-terminals */ uid_t ui_uid; /* (a) uid */ u_int ui_ref; /* (b) reference count */ + int64_t ui_resources[HRL_RESOURCE_MAX + 1]; }; struct proc; ==== //depot/projects/soc2009/trasz_limits/sys/ufs/ffs/ffs_vnops.c#2 (text+ko) ==== @@ -70,6 +70,7 @@ #include #include #include +#include #include #include #include @@ -684,14 +685,10 @@ */ td = uio->uio_td; if (vp->v_type == VREG && td != NULL) { - PROC_LOCK(td->td_proc); - if (uio->uio_offset + uio->uio_resid > - lim_cur(td->td_proc, RLIMIT_FSIZE)) { - psignal(td->td_proc, SIGXFSZ); - PROC_UNLOCK(td->td_proc); - return (EFBIG); - } - PROC_UNLOCK(td->td_proc); + error = hrl_allocated_proc(td->td_proc, HRL_RESOURCE_FILESIZE, + (uoff_t)uio->uio_offset + uio->uio_resid); + if (error) + return (error); } resid = uio->uio_resid; ==== //depot/projects/soc2009/trasz_limits/sys/vm/vm_unix.c#2 (text+ko) ==== @@ -44,6 +44,7 @@ __FBSDID("$FreeBSD: src/sys/vm/vm_unix.c,v 1.49 2009/04/11 22:34:08 alc Exp $"); #include +#include #include #include #include @@ -73,16 +74,10 @@ { struct vmspace *vm = td->td_proc->p_vmspace; vm_offset_t new, old, base; - rlim_t datalim, vmemlim; int rv; int error = 0; boolean_t do_map_wirefuture; - PROC_LOCK(td->td_proc); - datalim = lim_cur(td->td_proc, RLIMIT_DATA); - vmemlim = lim_cur(td->td_proc, RLIMIT_VMEM); - PROC_UNLOCK(td->td_proc); - do_map_wirefuture = FALSE; new = round_page((vm_offset_t)uap->nsize); vm_map_lock(&vm->vm_map); @@ -90,14 +85,10 @@ base = round_page((vm_offset_t) vm->vm_daddr); old = base + ctob(vm->vm_dsize); if (new > base) { - /* - * Check the resource limit, but allow a process to reduce - * its usage, even if it remains over the limit. - */ - if (new - base > datalim && new > old) { - error = ENOMEM; + error = hrl_allocated_proc(td->td_proc, HRL_RESOURCE_DATASIZE, + new - base); + if (error) goto done; - } if (new > vm_map_max(&vm->vm_map)) { error = ENOMEM; goto done; @@ -112,10 +103,10 @@ goto done; } if (new > old) { - if (vm->vm_map.size + (new - old) > vmemlim) { - error = ENOMEM; + error = hrl_allocated_proc(td->td_proc, HRL_RESOURCE_VMEMORYUSE, + vm->vm_map.size + (new - old)); + if (error) goto done; - } rv = vm_map_insert(&vm->vm_map, NULL, 0, old, new, VM_PROT_RW, VM_PROT_ALL, 0); if (rv != KERN_SUCCESS) { From owner-p4-projects@FreeBSD.ORG Fri Jun 12 22:38:38 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 7F5931065672; Fri, 12 Jun 2009 22:38:38 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 3F5F4106566C for ; Fri, 12 Jun 2009 22:38:38 +0000 (UTC) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 2BA8A8FC13 for ; Fri, 12 Jun 2009 22:38:38 +0000 (UTC) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n5CMcb21074697 for ; Fri, 12 Jun 2009 22:38:37 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n5CMcbgO074695 for perforce@freebsd.org; Fri, 12 Jun 2009 22:38:37 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Date: Fri, 12 Jun 2009 22:38:37 GMT Message-Id: <200906122238.n5CMcbgO074695@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to bb+lists.freebsd.perforce@cyrus.watson.org using -f From: Robert Watson To: Perforce Change Reviews Cc: Subject: PERFORCE change 164209 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 12 Jun 2009 22:38:39 -0000 http://perforce.freebsd.org/chv.cgi?CH=164209 Change 164209 by rwatson@rwatson_freebsd_capabilities on 2009/06/12 22:38:37 Provide stub ld_caplibindex_lookup() symbol for libc, and make it public. rtld-elf-cap will replace it with a real implementation where appropriate. Affected files ... .. //depot/projects/trustedbsd/capabilities/src/lib/libc/gen/Makefile.inc#8 edit .. //depot/projects/trustedbsd/capabilities/src/lib/libc/gen/Symbol.map#7 edit .. //depot/projects/trustedbsd/capabilities/src/lib/libc/gen/ld_caplibindex.c#1 add Differences ... ==== //depot/projects/trustedbsd/capabilities/src/lib/libc/gen/Makefile.inc#8 (text+ko) ==== @@ -19,6 +19,7 @@ getpeereid.c getprogname.c getpwent.c getttyent.c \ getusershell.c getvfsbyname.c glob.c \ initgroups.c isatty.c isinf.c isnan.c jrand48.c lcong48.c \ + ld_caplibindex.c \ lockf.c lrand48.c mrand48.c nftw.c nice.c \ nlist.c nrand48.c opendir.c \ pause.c pmadvise.c popen.c posix_spawn.c pselect.c \ ==== //depot/projects/trustedbsd/capabilities/src/lib/libc/gen/Symbol.map#7 (text) ==== @@ -341,6 +341,7 @@ fts_read; fts_set; fts_set_clientptr; + ld_caplibindex_lookup; posix_spawn; posix_spawn_file_actions_addclose; posix_spawn_file_actions_adddup2; From owner-p4-projects@FreeBSD.ORG Fri Jun 12 22:42:43 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id DE1FD1065670; Fri, 12 Jun 2009 22:42:42 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 9E28D106566B for ; Fri, 12 Jun 2009 22:42:42 +0000 (UTC) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 702808FC13 for ; Fri, 12 Jun 2009 22:42:42 +0000 (UTC) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n5CMggo2079967 for ; Fri, 12 Jun 2009 22:42:42 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n5CMggKR079965 for perforce@freebsd.org; Fri, 12 Jun 2009 22:42:42 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Date: Fri, 12 Jun 2009 22:42:42 GMT Message-Id: <200906122242.n5CMggKR079965@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to bb+lists.freebsd.perforce@cyrus.watson.org using -f From: Robert Watson To: Perforce Change Reviews Cc: Subject: PERFORCE change 164210 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 12 Jun 2009 22:42:43 -0000 http://perforce.freebsd.org/chv.cgi?CH=164210 Change 164210 by rwatson@rwatson_freebsd_capabilities on 2009/06/12 22:42:39 Make basename_r public. Affected files ... .. //depot/projects/trustedbsd/capabilities/src/lib/libc/gen/Symbol.map#8 edit Differences ... ==== //depot/projects/trustedbsd/capabilities/src/lib/libc/gen/Symbol.map#8 (text) ==== @@ -329,6 +329,7 @@ FBSD_1.1 { arc4random_buf; arc4random_uniform; + basename_r; fdevname; fdevname_r; fdopendir; From owner-p4-projects@FreeBSD.ORG Fri Jun 12 22:44:45 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 014DC1065670; Fri, 12 Jun 2009 22:44:45 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id B5E9E106566B for ; Fri, 12 Jun 2009 22:44:44 +0000 (UTC) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id A268C8FC08 for ; Fri, 12 Jun 2009 22:44:44 +0000 (UTC) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n5CMiiS8080566 for ; Fri, 12 Jun 2009 22:44:44 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n5CMiiko080560 for perforce@freebsd.org; Fri, 12 Jun 2009 22:44:44 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Date: Fri, 12 Jun 2009 22:44:44 GMT Message-Id: <200906122244.n5CMiiko080560@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to bb+lists.freebsd.perforce@cyrus.watson.org using -f From: Robert Watson To: Perforce Change Reviews Cc: Subject: PERFORCE change 164211 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 12 Jun 2009 22:44:46 -0000 http://perforce.freebsd.org/chv.cgi?CH=164211 Change 164211 by rwatson@rwatson_freebsd_capabilities on 2009/06/12 22:44:05 Don't want to install libcapability.h with libcapabilitym, as we already do it with libcapability. Affected files ... .. //depot/projects/trustedbsd/capabilities/src/lib/libcapabilitym/Makefile#2 edit Differences ... ==== //depot/projects/trustedbsd/capabilities/src/lib/libcapabilitym/Makefile#2 (text+ko) ==== @@ -9,8 +9,6 @@ libcapability_sandbox.c \ libcapability_host.c -INCS= libcapability.h - CFLAGS+= -I../libcapability -DIN_CAP_MODE SHLIB_MAJOR= 1 From owner-p4-projects@FreeBSD.ORG Fri Jun 12 22:58:59 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id A4BA6106566C; Fri, 12 Jun 2009 22:58:59 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 653F4106564A for ; Fri, 12 Jun 2009 22:58:59 +0000 (UTC) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 51C168FC0C for ; Fri, 12 Jun 2009 22:58:59 +0000 (UTC) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n5CMwx4J085280 for ; Fri, 12 Jun 2009 22:58:59 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n5CMwxSL085278 for perforce@freebsd.org; Fri, 12 Jun 2009 22:58:59 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Date: Fri, 12 Jun 2009 22:58:59 GMT Message-Id: <200906122258.n5CMwxSL085278@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to bb+lists.freebsd.perforce@cyrus.watson.org using -f From: Robert Watson To: Perforce Change Reviews Cc: Subject: PERFORCE change 164213 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 12 Jun 2009 22:59:00 -0000 http://perforce.freebsd.org/chv.cgi?CH=164213 Change 164213 by rwatson@rwatson_freebsd_capabilities on 2009/06/12 22:58:20 Use the right function name for marking as a weak symbol. Affected files ... .. //depot/projects/trustedbsd/capabilities/src/lib/libc/gen/ld_caplibindex.c#2 edit Differences ... ==== //depot/projects/trustedbsd/capabilities/src/lib/libc/gen/ld_caplibindex.c#2 (text+ko) ==== @@ -33,7 +33,7 @@ #include -#pragma weak dlerror +#pragma weak ld_caplibindex_lookup int ld_caplibindex_lookup(const char *libname, int *fdp) { From owner-p4-projects@FreeBSD.ORG Fri Jun 12 23:08:11 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 5CDF01065674; Fri, 12 Jun 2009 23:08:10 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 1D272106566B for ; Fri, 12 Jun 2009 23:08:10 +0000 (UTC) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 094668FC08 for ; Fri, 12 Jun 2009 23:08:10 +0000 (UTC) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n5CN889o086955 for ; Fri, 12 Jun 2009 23:08:08 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n5CN88OZ086953 for perforce@freebsd.org; Fri, 12 Jun 2009 23:08:08 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Date: Fri, 12 Jun 2009 23:08:08 GMT Message-Id: <200906122308.n5CN88OZ086953@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to bb+lists.freebsd.perforce@cyrus.watson.org using -f From: Robert Watson To: Perforce Change Reviews Cc: Subject: PERFORCE change 164214 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 12 Jun 2009 23:08:11 -0000 http://perforce.freebsd.org/chv.cgi?CH=164214 Change 164214 by rwatson@rwatson_freebsd_capabilities on 2009/06/12 23:07:43 Export ld_caplibindex_lookup() using symbol version lists, not just rtld linker internal magic. Possibly this symbol should be in the FreeBSD private namespace, but not clear. Affected files ... .. //depot/projects/trustedbsd/capabilities/src/libexec/rtld-elf-cap/Makefile#16 edit .. //depot/projects/trustedbsd/capabilities/src/libexec/rtld-elf-cap/Symbol.map#3 add Differences ... ==== //depot/projects/trustedbsd/capabilities/src/libexec/rtld-elf-cap/Makefile#16 (text+ko) ==== @@ -1,5 +1,5 @@ # $FreeBSD$ -# $P4: //depot/projects/trustedbsd/capabilities/src/libexec/rtld-elf-cap/Makefile#15 $ +# $P4: //depot/projects/trustedbsd/capabilities/src/libexec/rtld-elf-cap/Makefile#16 $ WITHOUT_SSP= @@ -41,6 +41,8 @@ .endif .endif +SYMBOL_MAPS+= ${.CURDIR}/Symbol.map + .if exists(${.CURDIR}/../rtld-elf/${MACHINE_ARCH}/Makefile.inc) .include "${.CURDIR}/../rtld-elf/${MACHINE_ARCH}/Makefile.inc" .endif From owner-p4-projects@FreeBSD.ORG Fri Jun 12 23:08:12 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 0AAD410656A8; Fri, 12 Jun 2009 23:08:10 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 4A1011065672 for ; Fri, 12 Jun 2009 23:08:10 +0000 (UTC) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 1C7F78FC0A for ; Fri, 12 Jun 2009 23:08:10 +0000 (UTC) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n5CN88qH086960 for ; Fri, 12 Jun 2009 23:08:08 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n5CN88vK086958 for perforce@freebsd.org; Fri, 12 Jun 2009 23:08:08 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Date: Fri, 12 Jun 2009 23:08:08 GMT Message-Id: <200906122308.n5CN88vK086958@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to bb+lists.freebsd.perforce@cyrus.watson.org using -f From: Robert Watson To: Perforce Change Reviews Cc: Subject: PERFORCE change 164215 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 12 Jun 2009 23:08:13 -0000 http://perforce.freebsd.org/chv.cgi?CH=164215 Change 164215 by rwatson@rwatson_freebsd_capabilities on 2009/06/12 23:08:08 Add basename_r(3) declaration. Affected files ... .. //depot/projects/trustedbsd/capabilities/src/include/libgen.h#2 edit Differences ... ==== //depot/projects/trustedbsd/capabilities/src/include/libgen.h#2 (text+ko) ==== @@ -36,6 +36,7 @@ __BEGIN_DECLS char *basename(const char *); +char *basename_r(const char *, char *); char *dirname(const char *); #if 0 char *regcmp(const char *, ...); From owner-p4-projects@FreeBSD.ORG Fri Jun 12 23:09:10 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 5BDE0106567C; Fri, 12 Jun 2009 23:09:10 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 1B8E51065679 for ; Fri, 12 Jun 2009 23:09:10 +0000 (UTC) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 081228FC0A for ; Fri, 12 Jun 2009 23:09:10 +0000 (UTC) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n5CN99A3087041 for ; Fri, 12 Jun 2009 23:09:09 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n5CN99Jk087039 for perforce@freebsd.org; Fri, 12 Jun 2009 23:09:09 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Date: Fri, 12 Jun 2009 23:09:09 GMT Message-Id: <200906122309.n5CN99Jk087039@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to bb+lists.freebsd.perforce@cyrus.watson.org using -f From: Robert Watson To: Perforce Change Reviews Cc: Subject: PERFORCE change 164216 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 12 Jun 2009 23:09:11 -0000 http://perforce.freebsd.org/chv.cgi?CH=164216 Change 164216 by rwatson@rwatson_freebsd_capabilities on 2009/06/12 23:09:05 Link sandbox against libcapabilitym so it will have access to sandbox-specific behavior. Affected files ... .. //depot/projects/trustedbsd/capabilities/src/tools/cap/sandbox_echo/Makefile#2 edit Differences ... ==== //depot/projects/trustedbsd/capabilities/src/tools/cap/sandbox_echo/Makefile#2 (text+ko) ==== @@ -2,7 +2,7 @@ NO_MAN= CFLAGS=-Wall -g -DPADD= ${LIBCAPABILITY} -LDADD= -lcapability +DPADD= ${LIBCAPABILITYM} +LDADD= -lcapabilitym .include From owner-p4-projects@FreeBSD.ORG Fri Jun 12 23:10:12 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id BEB741065678; Fri, 12 Jun 2009 23:10:11 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 7C32D1065676 for ; Fri, 12 Jun 2009 23:10:11 +0000 (UTC) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 4DA598FC14 for ; Fri, 12 Jun 2009 23:10:11 +0000 (UTC) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n5CNABuR087144 for ; Fri, 12 Jun 2009 23:10:11 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n5CNABqh087142 for perforce@freebsd.org; Fri, 12 Jun 2009 23:10:11 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Date: Fri, 12 Jun 2009 23:10:11 GMT Message-Id: <200906122310.n5CNABqh087142@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to bb+lists.freebsd.perforce@cyrus.watson.org using -f From: Robert Watson To: Perforce Change Reviews Cc: Subject: PERFORCE change 164217 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 12 Jun 2009 23:10:12 -0000 http://perforce.freebsd.org/chv.cgi?CH=164217 Change 164217 by rwatson@rwatson_freebsd_capabilities on 2009/06/12 23:09:58 Allow closefrom(2) in capability mode. Affected files ... .. //depot/projects/trustedbsd/capabilities/src/sys/kern/capabilities.conf#21 edit .. //depot/projects/trustedbsd/capabilities/src/sys/kern/init_sysent.c#34 edit .. //depot/projects/trustedbsd/capabilities/src/sys/kern/syscalls.c#34 edit .. //depot/projects/trustedbsd/capabilities/src/sys/kern/systrace_args.c#34 edit .. //depot/projects/trustedbsd/capabilities/src/sys/sys/syscall.h#34 edit .. //depot/projects/trustedbsd/capabilities/src/sys/sys/syscall.mk#34 edit .. //depot/projects/trustedbsd/capabilities/src/sys/sys/sysproto.h#34 edit Differences ... ==== //depot/projects/trustedbsd/capabilities/src/sys/kern/capabilities.conf#21 (text+ko) ==== @@ -38,7 +38,7 @@ ## - sys_exit(2), abort2(2) and close(2) are very important. ## - Sorted alphabetically, please keep it that way. ## -## $P4: //depot/projects/trustedbsd/capabilities/src/sys/kern/capabilities.conf#20 $ +## $P4: //depot/projects/trustedbsd/capabilities/src/sys/kern/capabilities.conf#21 $ ## ## @@ -130,6 +130,7 @@ ## Always allow file descriptor close(2). ## close +closefrom ## ## Disallow connect(2) for now, despite CAP_CONNECT. ==== //depot/projects/trustedbsd/capabilities/src/sys/kern/init_sysent.c#34 (text+ko) ==== @@ -545,5 +545,5 @@ { AS(pdkill_args), (sy_call_t *)pdkill, AUE_NULL, NULL, 0, 0, SYF_CAPENABLED }, /* 514 = pdkill */ { AS(pdgetpid_args), (sy_call_t *)pdgetpid, AUE_NULL, NULL, 0, 0, SYF_CAPENABLED }, /* 515 = pdgetpid */ { AS(pdwait_args), (sy_call_t *)pdwait, AUE_NULL, NULL, 0, 0, 0 }, /* 516 = pdwait */ - { AS(closefrom_args), (sy_call_t *)closefrom, AUE_CLOSEFROM, NULL, 0, 0, 0 }, /* 517 = closefrom */ + { AS(closefrom_args), (sy_call_t *)closefrom, AUE_CLOSEFROM, NULL, 0, 0, SYF_CAPENABLED }, /* 517 = closefrom */ }; ==== //depot/projects/trustedbsd/capabilities/src/sys/kern/syscalls.c#34 (text+ko) ==== ==== //depot/projects/trustedbsd/capabilities/src/sys/kern/systrace_args.c#34 (text+ko) ==== ==== //depot/projects/trustedbsd/capabilities/src/sys/sys/syscall.h#34 (text+ko) ==== ==== //depot/projects/trustedbsd/capabilities/src/sys/sys/syscall.mk#34 (text+ko) ==== ==== //depot/projects/trustedbsd/capabilities/src/sys/sys/sysproto.h#34 (text+ko) ==== From owner-p4-projects@FreeBSD.ORG Sat Jun 13 02:44:50 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id CAC371065674; Sat, 13 Jun 2009 02:44:49 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 8ACC3106564A for ; Sat, 13 Jun 2009 02:44:49 +0000 (UTC) (envelope-from zhaoshuai@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 790748FC0C for ; Sat, 13 Jun 2009 02:44:49 +0000 (UTC) (envelope-from zhaoshuai@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n5D2innq060474 for ; Sat, 13 Jun 2009 02:44:49 GMT (envelope-from zhaoshuai@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n5D2inJH060472 for perforce@freebsd.org; Sat, 13 Jun 2009 02:44:49 GMT (envelope-from zhaoshuai@FreeBSD.org) Date: Sat, 13 Jun 2009 02:44:49 GMT Message-Id: <200906130244.n5D2inJH060472@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to zhaoshuai@FreeBSD.org using -f From: Zhao Shuai To: Perforce Change Reviews Cc: Subject: PERFORCE change 164226 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 13 Jun 2009 02:44:51 -0000 http://perforce.freebsd.org/chv.cgi?CH=164226 Change 164226 by zhaoshuai@zhaoshuai on 2009/06/13 02:43:56 fix fifo_open(): forget releasing the mutex before returning ENXIO. Affected files ... .. //depot/projects/soc2009/fifo/sys/fs/fifofs/fifo_vnops.c#14 edit Differences ... ==== //depot/projects/soc2009/fifo/sys/fs/fifofs/fifo_vnops.c#14 (text+ko) ==== @@ -184,10 +184,13 @@ wakeup(&fip->fi_writers); } if (ap->a_mode & FWRITE) { - if ((ap->a_mode & O_NONBLOCK) && fip->fi_readers == 0) + if ((ap->a_mode & O_NONBLOCK) && fip->fi_readers == 0) { + /* XXX release all resources here? */ + mtx_unlock(&fifo_mtx); return (ENXIO); + } fip->fi_writers++; - if (fip->fi_writers == 1 && fip->fi_readers > 0) + if (fip->fi_writers == 1 && fip->fi_readers > 0) wakeup(&fip->fi_readers); } if ((ap->a_mode & O_NONBLOCK) == 0) { From owner-p4-projects@FreeBSD.ORG Sat Jun 13 03:20:26 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 21F601065670; Sat, 13 Jun 2009 03:20:26 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id CBB42106566C for ; Sat, 13 Jun 2009 03:20:25 +0000 (UTC) (envelope-from zhaoshuai@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id B9CE08FC14 for ; Sat, 13 Jun 2009 03:20:25 +0000 (UTC) (envelope-from zhaoshuai@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n5D3KPH8071461 for ; Sat, 13 Jun 2009 03:20:25 GMT (envelope-from zhaoshuai@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n5D3KP85071459 for perforce@freebsd.org; Sat, 13 Jun 2009 03:20:25 GMT (envelope-from zhaoshuai@FreeBSD.org) Date: Sat, 13 Jun 2009 03:20:25 GMT Message-Id: <200906130320.n5D3KP85071459@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to zhaoshuai@FreeBSD.org using -f From: Zhao Shuai To: Perforce Change Reviews Cc: Subject: PERFORCE change 164227 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 13 Jun 2009 03:20:27 -0000 http://perforce.freebsd.org/chv.cgi?CH=164227 Change 164227 by zhaoshuai@zhaoshuai on 2009/06/13 03:20:06 add fifo test Affected files ... .. //depot/projects/soc2009/fifo/fifo_test/functionlity/Makefile#1 add .. //depot/projects/soc2009/fifo/fifo_test/functionlity/pr_74242.c#1 add .. //depot/projects/soc2009/fifo/fifo_test/functionlity/pr_76525.c#1 add .. //depot/projects/soc2009/fifo/fifo_test/functionlity/rdwr.c#1 add .. //depot/projects/soc2009/fifo/fifo_test/functionlity/reader1.c#1 add .. //depot/projects/soc2009/fifo/fifo_test/functionlity/reader2.c#1 add .. //depot/projects/soc2009/fifo/fifo_test/functionlity/select.c#1 add .. //depot/projects/soc2009/fifo/fifo_test/functionlity/test.h#1 add .. //depot/projects/soc2009/fifo/fifo_test/functionlity/test_bidirection1.c#1 add .. //depot/projects/soc2009/fifo/fifo_test/functionlity/test_bidirection2.c#1 add .. //depot/projects/soc2009/fifo/fifo_test/functionlity/writer1.c#1 add Differences ... From owner-p4-projects@FreeBSD.ORG Sat Jun 13 04:03:12 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 80C261065672; Sat, 13 Jun 2009 04:03:12 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 38F38106566B for ; Sat, 13 Jun 2009 04:03:12 +0000 (UTC) (envelope-from scottl@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 2480A8FC12 for ; Sat, 13 Jun 2009 04:03:12 +0000 (UTC) (envelope-from scottl@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n5D43BZh083006 for ; Sat, 13 Jun 2009 04:03:11 GMT (envelope-from scottl@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n5D439jx082989 for perforce@freebsd.org; Sat, 13 Jun 2009 04:03:09 GMT (envelope-from scottl@freebsd.org) Date: Sat, 13 Jun 2009 04:03:09 GMT Message-Id: <200906130403.n5D439jx082989@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to scottl@freebsd.org using -f From: Scott Long To: Perforce Change Reviews Cc: Subject: PERFORCE change 164228 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 13 Jun 2009 04:03:13 -0000 http://perforce.freebsd.org/chv.cgi?CH=164228 Change 164228 by scottl@scottl-deimos on 2009/06/13 04:02:34 IFC Affected files ... .. //depot/projects/scottl-camlock/src/sys/amd64/acpica/OsdEnvironment.c#5 integrate .. //depot/projects/scottl-camlock/src/sys/amd64/acpica/acpi_machdep.c#8 integrate .. //depot/projects/scottl-camlock/src/sys/amd64/acpica/acpi_wakeup.c#5 integrate .. //depot/projects/scottl-camlock/src/sys/amd64/acpica/madt.c#11 integrate .. //depot/projects/scottl-camlock/src/sys/amd64/amd64/dump_machdep.c#6 integrate .. //depot/projects/scottl-camlock/src/sys/amd64/amd64/local_apic.c#18 integrate .. //depot/projects/scottl-camlock/src/sys/amd64/amd64/machdep.c#21 integrate .. //depot/projects/scottl-camlock/src/sys/amd64/amd64/minidump_machdep.c#5 integrate .. //depot/projects/scottl-camlock/src/sys/amd64/amd64/pmap.c#25 integrate .. //depot/projects/scottl-camlock/src/sys/amd64/amd64/support.S#12 integrate .. //depot/projects/scottl-camlock/src/sys/amd64/conf/DEFAULTS#11 integrate .. //depot/projects/scottl-camlock/src/sys/amd64/conf/GENERIC#22 integrate .. //depot/projects/scottl-camlock/src/sys/amd64/conf/MAC#2 delete .. //depot/projects/scottl-camlock/src/sys/amd64/conf/NOTES#17 integrate .. //depot/projects/scottl-camlock/src/sys/amd64/include/param.h#11 integrate .. //depot/projects/scottl-camlock/src/sys/amd64/isa/clock.c#15 integrate .. //depot/projects/scottl-camlock/src/sys/amd64/linux32/linux.h#13 integrate .. //depot/projects/scottl-camlock/src/sys/amd64/linux32/linux32_sysent.c#16 integrate .. //depot/projects/scottl-camlock/src/sys/arm/arm/dump_machdep.c#5 integrate .. //depot/projects/scottl-camlock/src/sys/arm/arm/intr.c#11 integrate .. //depot/projects/scottl-camlock/src/sys/arm/arm/locore.S#10 integrate .. //depot/projects/scottl-camlock/src/sys/arm/arm/pmap.c#19 integrate .. //depot/projects/scottl-camlock/src/sys/arm/at91/at91.c#11 integrate .. //depot/projects/scottl-camlock/src/sys/arm/at91/at91_cfata.c#3 integrate .. //depot/projects/scottl-camlock/src/sys/arm/at91/at91_mci.c#6 integrate .. //depot/projects/scottl-camlock/src/sys/arm/at91/at91_twi.c#8 integrate .. //depot/projects/scottl-camlock/src/sys/arm/at91/if_ate.c#15 integrate .. //depot/projects/scottl-camlock/src/sys/arm/at91/ohci_atmelarm.c#5 delete .. //depot/projects/scottl-camlock/src/sys/arm/conf/AVILA#8 integrate .. //depot/projects/scottl-camlock/src/sys/arm/include/intr.h#7 integrate .. //depot/projects/scottl-camlock/src/sys/arm/mv/common.c#3 integrate .. //depot/projects/scottl-camlock/src/sys/arm/mv/discovery/db78xxx.c#2 integrate .. //depot/projects/scottl-camlock/src/sys/arm/mv/discovery/discovery.c#2 integrate .. //depot/projects/scottl-camlock/src/sys/arm/mv/ic.c#3 integrate .. //depot/projects/scottl-camlock/src/sys/arm/mv/kirkwood/db88f6xxx.c#2 integrate .. //depot/projects/scottl-camlock/src/sys/arm/mv/kirkwood/kirkwood.c#2 integrate .. //depot/projects/scottl-camlock/src/sys/arm/mv/mvreg.h#3 integrate .. //depot/projects/scottl-camlock/src/sys/arm/mv/mvwin.h#1 branch .. //depot/projects/scottl-camlock/src/sys/arm/mv/orion/db88f5xxx.c#2 integrate .. //depot/projects/scottl-camlock/src/sys/arm/mv/orion/orion.c#2 integrate .. //depot/projects/scottl-camlock/src/sys/arm/mv/twsi.c#2 integrate .. //depot/projects/scottl-camlock/src/sys/arm/sa11x0/sa11x0_irqhandler.c#6 integrate .. //depot/projects/scottl-camlock/src/sys/arm/xscale/i80321/i80321.c#5 integrate .. //depot/projects/scottl-camlock/src/sys/arm/xscale/i80321/i80321_pci.c#8 integrate .. //depot/projects/scottl-camlock/src/sys/arm/xscale/i8134x/i81342.c#2 integrate .. //depot/projects/scottl-camlock/src/sys/arm/xscale/ixp425/avila_ata.c#5 integrate .. //depot/projects/scottl-camlock/src/sys/arm/xscale/ixp425/avila_led.c#3 integrate .. //depot/projects/scottl-camlock/src/sys/arm/xscale/ixp425/cambria_led.c#2 integrate .. //depot/projects/scottl-camlock/src/sys/arm/xscale/ixp425/files.ixp425#5 integrate .. //depot/projects/scottl-camlock/src/sys/arm/xscale/ixp425/if_npe.c#9 integrate .. //depot/projects/scottl-camlock/src/sys/arm/xscale/ixp425/ixp425.c#7 integrate .. //depot/projects/scottl-camlock/src/sys/arm/xscale/ixp425/ixp425_iic.c#4 integrate .. //depot/projects/scottl-camlock/src/sys/arm/xscale/ixp425/ixp425_qmgr.c#5 integrate .. //depot/projects/scottl-camlock/src/sys/arm/xscale/ixp425/ixp425_qmgr.h#2 integrate .. //depot/projects/scottl-camlock/src/sys/arm/xscale/pxa/pxa_icu.c#2 integrate .. //depot/projects/scottl-camlock/src/sys/boot/common/boot.c#3 integrate .. //depot/projects/scottl-camlock/src/sys/boot/common/ufsread.c#6 integrate .. //depot/projects/scottl-camlock/src/sys/boot/forth/loader.conf#18 integrate .. //depot/projects/scottl-camlock/src/sys/boot/i386/libi386/Makefile#9 integrate .. //depot/projects/scottl-camlock/src/sys/boot/i386/libi386/biosacpi.c#6 integrate .. //depot/projects/scottl-camlock/src/sys/boot/i386/libi386/biosdisk.c#10 integrate .. //depot/projects/scottl-camlock/src/sys/boot/i386/libi386/biospnp.c#3 integrate .. //depot/projects/scottl-camlock/src/sys/boot/ia64/ski/acpi_stub.c#4 integrate .. //depot/projects/scottl-camlock/src/sys/boot/pc98/boot2/sys.c#4 integrate .. //depot/projects/scottl-camlock/src/sys/boot/uboot/lib/disk.c#4 integrate .. //depot/projects/scottl-camlock/src/sys/boot/uboot/lib/net.c#3 integrate .. //depot/projects/scottl-camlock/src/sys/cam/scsi/scsi_target.c#15 integrate .. //depot/projects/scottl-camlock/src/sys/cddl/compat/opensolaris/kern/opensolaris.c#3 integrate .. //depot/projects/scottl-camlock/src/sys/cddl/compat/opensolaris/kern/opensolaris_misc.c#4 integrate .. //depot/projects/scottl-camlock/src/sys/cddl/compat/opensolaris/sys/mutex.h#3 integrate .. //depot/projects/scottl-camlock/src/sys/cddl/compat/opensolaris/sys/rwlock.h#3 integrate .. //depot/projects/scottl-camlock/src/sys/cddl/contrib/opensolaris/uts/common/dtrace/dtrace.c#2 integrate .. //depot/projects/scottl-camlock/src/sys/cddl/contrib/opensolaris/uts/common/fs/gfs.c#3 integrate .. //depot/projects/scottl-camlock/src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/arc.c#4 integrate .. //depot/projects/scottl-camlock/src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu.c#4 integrate .. //depot/projects/scottl-camlock/src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_zfetch.c#3 integrate .. //depot/projects/scottl-camlock/src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/dmu.h#3 integrate .. //depot/projects/scottl-camlock/src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev.c#3 integrate .. //depot/projects/scottl-camlock/src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_ioctl.c#4 integrate .. //depot/projects/scottl-camlock/src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vfsops.c#4 integrate .. //depot/projects/scottl-camlock/src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zio.c#4 integrate .. //depot/projects/scottl-camlock/src/sys/cddl/contrib/opensolaris/uts/common/rpc/xdr.h#3 integrate .. //depot/projects/scottl-camlock/src/sys/cddl/dev/lockstat/lockstat.c#1 branch .. //depot/projects/scottl-camlock/src/sys/compat/freebsd32/freebsd32_misc.c#17 integrate .. //depot/projects/scottl-camlock/src/sys/compat/freebsd32/freebsd32_proto.h#18 integrate .. //depot/projects/scottl-camlock/src/sys/compat/freebsd32/freebsd32_syscall.h#18 integrate .. //depot/projects/scottl-camlock/src/sys/compat/freebsd32/freebsd32_syscalls.c#18 integrate .. //depot/projects/scottl-camlock/src/sys/compat/freebsd32/freebsd32_sysent.c#18 integrate .. //depot/projects/scottl-camlock/src/sys/compat/freebsd32/syscalls.master#19 integrate .. //depot/projects/scottl-camlock/src/sys/compat/linprocfs/linprocfs.c#22 integrate .. //depot/projects/scottl-camlock/src/sys/compat/linux/linux_file.c#13 integrate .. //depot/projects/scottl-camlock/src/sys/compat/linux/linux_getcwd.c#10 integrate .. //depot/projects/scottl-camlock/src/sys/compat/linux/linux_ioctl.c#14 integrate .. //depot/projects/scottl-camlock/src/sys/compat/linux/linux_mib.c#8 integrate .. //depot/projects/scottl-camlock/src/sys/compat/linux/linux_misc.c#19 integrate .. //depot/projects/scottl-camlock/src/sys/compat/linux/linux_socket.c#17 integrate .. //depot/projects/scottl-camlock/src/sys/compat/linux/linux_stats.c#15 integrate .. //depot/projects/scottl-camlock/src/sys/compat/ndis/subr_usbd.c#4 integrate .. //depot/projects/scottl-camlock/src/sys/compat/svr4/svr4_fcntl.c#9 integrate .. //depot/projects/scottl-camlock/src/sys/compat/svr4/svr4_ioctl.c#6 integrate .. //depot/projects/scottl-camlock/src/sys/compat/svr4/svr4_misc.c#13 integrate .. //depot/projects/scottl-camlock/src/sys/compat/svr4/svr4_resource.c#3 integrate .. //depot/projects/scottl-camlock/src/sys/compat/svr4/svr4_signal.c#5 integrate .. //depot/projects/scottl-camlock/src/sys/compat/svr4/svr4_socket.c#6 integrate .. //depot/projects/scottl-camlock/src/sys/compat/svr4/svr4_sockio.c#6 integrate .. //depot/projects/scottl-camlock/src/sys/compat/svr4/svr4_stat.c#7 integrate .. //depot/projects/scottl-camlock/src/sys/compat/svr4/svr4_stream.c#11 integrate .. //depot/projects/scottl-camlock/src/sys/compat/svr4/svr4_sysconfig.h#3 integrate .. //depot/projects/scottl-camlock/src/sys/compat/svr4/svr4_sysent.c#8 integrate .. //depot/projects/scottl-camlock/src/sys/conf/NOTES#28 integrate .. //depot/projects/scottl-camlock/src/sys/conf/files#31 integrate .. //depot/projects/scottl-camlock/src/sys/conf/files.i386#19 integrate .. //depot/projects/scottl-camlock/src/sys/conf/files.powerpc#17 integrate .. //depot/projects/scottl-camlock/src/sys/conf/kern.pre.mk#12 integrate .. //depot/projects/scottl-camlock/src/sys/conf/options#25 integrate .. //depot/projects/scottl-camlock/src/sys/contrib/altq/altq/altq_subr.c#8 integrate .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/CHANGES.txt#7 delete .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/acapps.h#4 delete .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/acconfig.h#7 delete .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/acdebug.h#6 delete .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/acdisasm.h#5 delete .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/acdispat.h#5 delete .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/acefi.h#5 delete .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/acenv.h#6 delete .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/acevents.h#6 delete .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/acexcep.h#6 delete .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/acfreebsd.h#7 delete .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/acgcc.h#4 delete .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/acglobal.h#6 delete .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/achware.h#6 delete .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/acinterp.h#7 delete .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/aclocal.h#6 delete .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/acmacros.h#7 delete .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/acnames.h#3 delete .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/acnamesp.h#5 delete .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/acobject.h#6 delete .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/acopcode.h#3 delete .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/acoutput.h#5 delete .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/acparser.h#5 delete .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/acpi.h#4 delete .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/acpica_prep.sh#5 integrate .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/acpiosxf.h#5 delete .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/acpixf.h#6 delete .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/acresrc.h#4 delete .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/acstruct.h#5 delete .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/actables.h#4 delete .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/actbl.h#5 delete .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/actbl1.h#4 delete .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/actbl2.h#5 delete .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/actypes.h#6 delete .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/acutils.h#6 delete .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/aecommon.h#3 delete .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/amlcode.h#5 delete .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/amlresrc.h#5 delete .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/changes.txt#1 branch .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/common/adfile.c#2 integrate .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/common/adisasm.c#6 integrate .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/common/adwalk.c#2 integrate .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/common/dmrestag.c#2 integrate .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/common/dmtable.c#2 integrate .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/common/dmtbdump.c#2 integrate .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/common/dmtbinfo.c#2 integrate .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/common/getopt.c#4 integrate .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/compiler/aslanalyze.c#5 integrate .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/compiler/aslcodegen.c#5 integrate .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/compiler/aslcompile.c#4 integrate .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/compiler/aslcompiler.h#5 integrate .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/compiler/aslcompiler.l#5 integrate .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/compiler/aslcompiler.y#7 integrate .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/compiler/asldefine.h#3 integrate .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/compiler/aslerror.c#4 integrate .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/compiler/aslfiles.c#4 integrate .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/compiler/aslfold.c#4 integrate .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/compiler/aslglobal.h#5 integrate .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/compiler/asllength.c#4 integrate .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/compiler/asllisting.c#4 integrate .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/compiler/aslload.c#5 integrate .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/compiler/asllookup.c#4 integrate .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/compiler/aslmain.c#5 integrate .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/compiler/aslmap.c#5 integrate .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/compiler/aslopcodes.c#5 integrate .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/compiler/asloperands.c#4 integrate .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/compiler/aslopt.c#5 integrate .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/compiler/aslresource.c#4 integrate .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/compiler/aslrestype1.c#4 integrate .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/compiler/aslrestype2.c#4 integrate .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/compiler/aslstartup.c#1 branch .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/compiler/aslstubs.c#5 integrate .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/compiler/asltransform.c#5 integrate .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/compiler/asltree.c#4 integrate .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/compiler/asltypes.h#5 integrate .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/compiler/aslutils.c#4 integrate .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/dbcmds.c#7 delete .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/dbdisply.c#6 delete .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/dbexec.c#6 delete .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/dbfileio.c#4 delete .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/dbhistry.c#4 delete .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/dbinput.c#6 delete .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/dbstats.c#4 delete .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/dbutils.c#5 delete .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/dbxface.c#4 delete .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/debugger/dbcmds.c#1 branch .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/debugger/dbdisply.c#1 branch .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/debugger/dbexec.c#1 branch .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/debugger/dbfileio.c#1 branch .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/debugger/dbhistry.c#1 branch .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/debugger/dbinput.c#1 branch .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/debugger/dbstats.c#1 branch .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/debugger/dbutils.c#1 branch .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/debugger/dbxface.c#1 branch .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/disassembler/dmbuffer.c#1 branch .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/disassembler/dmnames.c#1 branch .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/disassembler/dmobject.c#1 branch .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/disassembler/dmopcode.c#1 branch .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/disassembler/dmresrc.c#1 branch .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/disassembler/dmresrcl.c#1 branch .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/disassembler/dmresrcs.c#1 branch .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/disassembler/dmutils.c#1 branch .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/disassembler/dmwalk.c#1 branch .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/dispatcher/dsfield.c#1 branch .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/dispatcher/dsinit.c#1 branch .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/dispatcher/dsmethod.c#1 branch .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/dispatcher/dsmthdat.c#1 branch .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/dispatcher/dsobject.c#1 branch .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/dispatcher/dsopcode.c#1 branch .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/dispatcher/dsutils.c#1 branch .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/dispatcher/dswexec.c#1 branch .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/dispatcher/dswload.c#1 branch .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/dispatcher/dswscope.c#1 branch .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/dispatcher/dswstate.c#1 branch .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/dmbuffer.c#4 delete .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/dmnames.c#4 delete .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/dmobject.c#4 delete .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/dmopcode.c#5 delete .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/dmresrc.c#4 delete .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/dmresrcl.c#4 delete .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/dmresrcs.c#4 delete .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/dmutils.c#5 delete .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/dmwalk.c#6 delete .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/dsfield.c#4 delete .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/dsinit.c#4 delete .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/dsmethod.c#6 delete .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/dsmthdat.c#6 delete .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/dsobject.c#4 delete .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/dsopcode.c#6 delete .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/dsutils.c#5 delete .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/dswexec.c#5 delete .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/dswload.c#6 delete .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/dswscope.c#4 delete .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/dswstate.c#6 delete .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/events/evevent.c#1 branch .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/events/evgpe.c#1 branch .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/events/evgpeblk.c#1 branch .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/events/evmisc.c#1 branch .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/events/evregion.c#1 branch .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/events/evrgnini.c#1 branch .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/events/evsci.c#1 branch .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/events/evxface.c#1 branch .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/events/evxfevnt.c#1 branch .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/events/evxfregn.c#1 branch .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/evevent.c#5 delete .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/evgpe.c#8 delete .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/evgpeblk.c#7 delete .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/evmisc.c#7 delete .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/evregion.c#6 delete .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/evrgnini.c#5 delete .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/evsci.c#4 delete .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/evxface.c#7 delete .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/evxfevnt.c#5 delete .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/evxfregn.c#5 delete .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/exconfig.c#7 delete .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/exconvrt.c#5 delete .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/excreate.c#5 delete .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/exdump.c#6 delete .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/executer/exconfig.c#1 branch .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/executer/exconvrt.c#1 branch .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/executer/excreate.c#1 branch .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/executer/exdump.c#1 branch .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/executer/exfield.c#1 branch .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/executer/exfldio.c#1 branch .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/executer/exmisc.c#1 branch .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/executer/exmutex.c#1 branch .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/executer/exnames.c#1 branch .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/executer/exoparg1.c#1 branch .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/executer/exoparg2.c#1 branch .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/executer/exoparg3.c#1 branch .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/executer/exoparg6.c#1 branch .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/executer/exprep.c#1 branch .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/executer/exregion.c#1 branch .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/executer/exresnte.c#1 branch .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/executer/exresolv.c#1 branch .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/executer/exresop.c#1 branch .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/executer/exstore.c#1 branch .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/executer/exstoren.c#1 branch .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/executer/exstorob.c#1 branch .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/executer/exsystem.c#1 branch .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/executer/exutils.c#1 branch .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/exfield.c#4 delete .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/exfldio.c#7 delete .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/exmisc.c#5 delete .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/exmutex.c#5 delete .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/exnames.c#4 delete .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/exoparg1.c#5 delete .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/exoparg2.c#6 delete .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/exoparg3.c#4 delete .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/exoparg6.c#4 delete .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/exprep.c#5 delete .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/exregion.c#5 delete .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/exresnte.c#5 delete .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/exresolv.c#6 delete .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/exresop.c#5 delete .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/exstore.c#6 delete .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/exstoren.c#5 delete .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/exstorob.c#4 delete .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/exsystem.c#5 delete .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/exutils.c#5 delete .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/hardware/hwacpi.c#1 branch .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/hardware/hwgpe.c#1 branch .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/hardware/hwregs.c#1 branch .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/hardware/hwsleep.c#1 branch .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/hardware/hwtimer.c#1 branch .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/hardware/hwvalid.c#1 branch .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/hardware/hwxface.c#1 branch .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/hwacpi.c#4 delete .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/hwgpe.c#6 delete .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/hwregs.c#6 delete .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/hwsleep.c#6 delete .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/hwtimer.c#5 delete .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/include/acapps.h#1 branch .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/include/accommon.h#1 branch .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/include/acconfig.h#1 branch .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/include/acdebug.h#1 branch .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/include/acdisasm.h#1 branch .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/include/acdispat.h#1 branch .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/include/acevents.h#1 branch .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/include/acexcep.h#1 branch .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/include/acglobal.h#1 branch .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/include/achware.h#1 branch .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/include/acinterp.h#1 branch .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/include/aclocal.h#1 branch .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/include/acmacros.h#1 branch .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/include/acnames.h#1 branch .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/include/acnamesp.h#1 branch .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/include/acobject.h#1 branch .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/include/acopcode.h#1 branch .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/include/acoutput.h#1 branch .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/include/acparser.h#1 branch .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/include/acpi.h#1 branch .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/include/acpiosxf.h#1 branch .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/include/acpixf.h#1 branch .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/include/acpredef.h#1 branch .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/include/acresrc.h#1 branch .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/include/acrestyp.h#1 branch .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/include/acstruct.h#1 branch .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/include/actables.h#1 branch .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/include/actbl.h#1 branch .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/include/actbl1.h#1 branch .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/include/actypes.h#1 branch .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/include/acutils.h#1 branch .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/include/amlcode.h#1 branch .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/include/amlresrc.h#1 branch .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/include/platform/acenv.h#1 branch .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/include/platform/acfreebsd.h#1 branch .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/include/platform/acgcc.h#1 branch .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/namespace/nsaccess.c#1 branch .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/namespace/nsalloc.c#1 branch .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/namespace/nsdump.c#1 branch .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/namespace/nsdumpdv.c#1 branch .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/namespace/nseval.c#1 branch .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/namespace/nsinit.c#1 branch .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/namespace/nsload.c#1 branch .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/namespace/nsnames.c#1 branch .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/namespace/nsobject.c#1 branch .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/namespace/nsparse.c#1 branch .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/namespace/nspredef.c#1 branch .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/namespace/nssearch.c#1 branch .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/namespace/nsutils.c#1 branch .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/namespace/nswalk.c#1 branch .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/namespace/nsxfeval.c#1 branch .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/namespace/nsxfname.c#1 branch .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/namespace/nsxfobj.c#1 branch .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/nsaccess.c#6 delete .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/nsalloc.c#6 delete .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/nsdump.c#6 delete .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/nsdumpdv.c#5 delete .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/nseval.c#6 delete .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/nsinit.c#6 delete .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/nsload.c#5 delete .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/nsnames.c#5 delete .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/nsobject.c#4 delete .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/nsparse.c#5 delete .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/nssearch.c#6 delete .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/nsutils.c#6 delete .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/nswalk.c#5 delete .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/nsxfeval.c#5 delete .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/nsxfname.c#5 delete .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/nsxfobj.c#4 delete .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/osunixxf.c#5 integrate .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/parser/psargs.c#1 branch .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/parser/psloop.c#1 branch .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/parser/psopcode.c#1 branch .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/parser/psparse.c#1 branch .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/parser/psscope.c#1 branch .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/parser/pstree.c#1 branch .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/parser/psutils.c#1 branch .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/parser/pswalk.c#1 branch .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/parser/psxface.c#1 branch .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/psargs.c#4 delete .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/psloop.c#3 delete .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/psopcode.c#5 delete .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/psparse.c#5 delete .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/psscope.c#4 delete .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/pstree.c#4 delete .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/psutils.c#5 delete .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/pswalk.c#4 delete .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/psxface.c#5 delete .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/resources/rsaddr.c#1 branch .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/resources/rscalc.c#1 branch .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/resources/rscreate.c#1 branch .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/resources/rsdump.c#1 branch .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/resources/rsinfo.c#1 branch .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/resources/rsio.c#1 branch .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/resources/rsirq.c#1 branch .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/resources/rslist.c#1 branch .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/resources/rsmemory.c#1 branch .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/resources/rsmisc.c#1 branch .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/resources/rsutils.c#1 branch .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/resources/rsxface.c#1 branch .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/rsaddr.c#5 delete .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/rscalc.c#5 delete .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/rscreate.c#4 delete .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/rsdump.c#4 delete .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/rsinfo.c#3 delete .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/rsio.c#4 delete .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/rsirq.c#4 delete .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/rslist.c#4 delete .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/rsmemory.c#4 delete .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/rsmisc.c#4 delete .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/rsutils.c#5 delete .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/rsxface.c#6 delete .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/tables/tbfadt.c#1 branch .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/tables/tbfind.c#1 branch .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/tables/tbinstal.c#1 branch .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/tables/tbutils.c#1 branch .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/tables/tbxface.c#1 branch .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/tables/tbxfroot.c#1 branch .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/tbfadt.c#2 delete .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/tbfind.c#2 delete .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/tbinstal.c#5 delete .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/tbutils.c#4 delete .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/tbxface.c#4 delete .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/tbxfroot.c#6 delete .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/tools/acpiexec/aecommon.h#1 branch .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/utalloc.c#5 delete .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/utcache.c#3 delete .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/utclib.c#5 delete .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/utcopy.c#5 delete .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/utdebug.c#4 delete .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/utdelete.c#5 delete .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/uteval.c#6 delete .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/utglobal.c#6 delete .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/utilities/utalloc.c#1 branch .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/utilities/utcache.c#1 branch .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/utilities/utcopy.c#1 branch .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/utilities/utdebug.c#1 branch .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/utilities/utdelete.c#1 branch .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/utilities/uteval.c#1 branch .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/utilities/utglobal.c#1 branch .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/utilities/utinit.c#1 branch .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/utilities/utlock.c#1 branch .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/utilities/utmath.c#1 branch .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/utilities/utmisc.c#1 branch .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/utilities/utmutex.c#1 branch .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/utilities/utobject.c#1 branch .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/utilities/utresrc.c#1 branch .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/utilities/utstate.c#1 branch .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/utilities/uttrack.c#1 branch .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/utilities/utxface.c#1 branch .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/utinit.c#4 delete .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/utmath.c#5 delete .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/utmisc.c#7 delete .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/utmutex.c#3 delete .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/utobject.c#5 delete .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/utresrc.c#2 delete .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/utstate.c#3 delete .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/uttrack.c#2 delete .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/utxface.c#5 delete .. //depot/projects/scottl-camlock/src/sys/contrib/dev/mwl/LICENSE#1 branch .. //depot/projects/scottl-camlock/src/sys/contrib/dev/mwl/Makefile#1 branch .. //depot/projects/scottl-camlock/src/sys/contrib/dev/mwl/mw88W8363.fw.uu#1 branch .. //depot/projects/scottl-camlock/src/sys/contrib/dev/mwl/mwlboot.fw.uu#1 branch .. //depot/projects/scottl-camlock/src/sys/contrib/ipfilter/netinet/ip_fil_freebsd.c#9 integrate .. //depot/projects/scottl-camlock/src/sys/contrib/ipfilter/netinet/ip_nat.c#10 integrate .. //depot/projects/scottl-camlock/src/sys/contrib/pf/net/if_pflog.c#9 integrate .. //depot/projects/scottl-camlock/src/sys/contrib/pf/net/pf.c#13 integrate .. //depot/projects/scottl-camlock/src/sys/contrib/pf/net/pf_if.c#6 integrate .. //depot/projects/scottl-camlock/src/sys/contrib/pf/net/pf_ioctl.c#11 integrate .. //depot/projects/scottl-camlock/src/sys/crypto/via/padlock_hash.c#3 integrate .. //depot/projects/scottl-camlock/src/sys/ddb/db_textdump.c#3 integrate .. //depot/projects/scottl-camlock/src/sys/dev/acpi_support/acpi_aiboost.c#2 integrate .. //depot/projects/scottl-camlock/src/sys/dev/acpi_support/acpi_asus.c#9 integrate .. //depot/projects/scottl-camlock/src/sys/dev/acpi_support/acpi_fujitsu.c#5 integrate .. //depot/projects/scottl-camlock/src/sys/dev/acpi_support/acpi_ibm.c#10 integrate .. //depot/projects/scottl-camlock/src/sys/dev/acpi_support/acpi_panasonic.c#8 integrate .. //depot/projects/scottl-camlock/src/sys/dev/acpi_support/acpi_sony.c#7 integrate .. //depot/projects/scottl-camlock/src/sys/dev/acpi_support/acpi_toshiba.c#4 integrate .. //depot/projects/scottl-camlock/src/sys/dev/acpica/Osd/OsdDebug.c#9 integrate .. //depot/projects/scottl-camlock/src/sys/dev/acpica/Osd/OsdHardware.c#8 integrate .. //depot/projects/scottl-camlock/src/sys/dev/acpica/Osd/OsdInterrupt.c#7 integrate .. //depot/projects/scottl-camlock/src/sys/dev/acpica/Osd/OsdMemory.c#7 integrate .. //depot/projects/scottl-camlock/src/sys/dev/acpica/Osd/OsdSchedule.c#11 integrate .. //depot/projects/scottl-camlock/src/sys/dev/acpica/Osd/OsdStream.c#5 integrate .. //depot/projects/scottl-camlock/src/sys/dev/acpica/Osd/OsdSynch.c#7 integrate .. //depot/projects/scottl-camlock/src/sys/dev/acpica/Osd/OsdTable.c#7 integrate .. //depot/projects/scottl-camlock/src/sys/dev/acpica/acpi.c#20 integrate .. //depot/projects/scottl-camlock/src/sys/dev/acpica/acpi_acad.c#8 integrate .. //depot/projects/scottl-camlock/src/sys/dev/acpica/acpi_battery.c#10 integrate .. //depot/projects/scottl-camlock/src/sys/dev/acpica/acpi_button.c#7 integrate .. //depot/projects/scottl-camlock/src/sys/dev/acpica/acpi_cmbat.c#9 integrate .. //depot/projects/scottl-camlock/src/sys/dev/acpica/acpi_cpu.c#13 integrate .. //depot/projects/scottl-camlock/src/sys/dev/acpica/acpi_dock.c#6 integrate .. //depot/projects/scottl-camlock/src/sys/dev/acpica/acpi_ec.c#12 integrate .. //depot/projects/scottl-camlock/src/sys/dev/acpica/acpi_hpet.c#8 integrate .. //depot/projects/scottl-camlock/src/sys/dev/acpica/acpi_if.m#5 integrate .. //depot/projects/scottl-camlock/src/sys/dev/acpica/acpi_isab.c#5 integrate .. //depot/projects/scottl-camlock/src/sys/dev/acpica/acpi_lid.c#7 integrate .. //depot/projects/scottl-camlock/src/sys/dev/acpica/acpi_package.c#7 integrate .. //depot/projects/scottl-camlock/src/sys/dev/acpica/acpi_pci.c#8 integrate .. //depot/projects/scottl-camlock/src/sys/dev/acpica/acpi_pci_link.c#10 integrate .. //depot/projects/scottl-camlock/src/sys/dev/acpica/acpi_pcib.c#8 integrate .. //depot/projects/scottl-camlock/src/sys/dev/acpica/acpi_pcib_acpi.c#13 integrate .. //depot/projects/scottl-camlock/src/sys/dev/acpica/acpi_pcib_pci.c#8 integrate .. //depot/projects/scottl-camlock/src/sys/dev/acpica/acpi_perf.c#7 integrate .. //depot/projects/scottl-camlock/src/sys/dev/acpica/acpi_powerres.c#7 integrate .. //depot/projects/scottl-camlock/src/sys/dev/acpica/acpi_quirk.c#6 integrate .. //depot/projects/scottl-camlock/src/sys/dev/acpica/acpi_resource.c#9 integrate .. //depot/projects/scottl-camlock/src/sys/dev/acpica/acpi_smbat.c#4 integrate .. //depot/projects/scottl-camlock/src/sys/dev/acpica/acpi_thermal.c#11 integrate .. //depot/projects/scottl-camlock/src/sys/dev/acpica/acpi_throttle.c#7 integrate .. //depot/projects/scottl-camlock/src/sys/dev/acpica/acpi_timer.c#9 integrate .. //depot/projects/scottl-camlock/src/sys/dev/acpica/acpi_video.c#8 integrate .. //depot/projects/scottl-camlock/src/sys/dev/acpica/acpivar.h#14 integrate .. //depot/projects/scottl-camlock/src/sys/dev/agp/agp_ali.c#2 integrate .. //depot/projects/scottl-camlock/src/sys/dev/agp/agp_amd.c#2 integrate .. //depot/projects/scottl-camlock/src/sys/dev/agp/agp_ati.c#2 integrate .. //depot/projects/scottl-camlock/src/sys/dev/agp/agp_nvidia.c#2 integrate .. //depot/projects/scottl-camlock/src/sys/dev/agp/agp_sis.c#2 integrate .. //depot/projects/scottl-camlock/src/sys/dev/aic7xxx/aicasm/Makefile#6 integrate .. //depot/projects/scottl-camlock/src/sys/dev/aic7xxx/aicasm/aicasm.c#4 integrate .. //depot/projects/scottl-camlock/src/sys/dev/aic7xxx/aicasm/aicasm_gram.y#5 integrate .. //depot/projects/scottl-camlock/src/sys/dev/aic7xxx/aicasm/aicasm_macro_gram.y#5 integrate .. //depot/projects/scottl-camlock/src/sys/dev/aic7xxx/aicasm/aicasm_macro_scan.l#4 integrate .. //depot/projects/scottl-camlock/src/sys/dev/aic7xxx/aicasm/aicasm_scan.l#4 integrate .. //depot/projects/scottl-camlock/src/sys/dev/aic7xxx/aicasm/aicasm_symbol.c#4 integrate .. //depot/projects/scottl-camlock/src/sys/dev/aic7xxx/aicasm/aicasm_symbol.h#4 integrate .. //depot/projects/scottl-camlock/src/sys/dev/alc/if_alc.c#1 branch .. //depot/projects/scottl-camlock/src/sys/dev/alc/if_alcreg.h#1 branch .. //depot/projects/scottl-camlock/src/sys/dev/alc/if_alcvar.h#1 branch .. //depot/projects/scottl-camlock/src/sys/dev/asmc/asmc.c#3 integrate .. //depot/projects/scottl-camlock/src/sys/dev/ata/ata-all.h#14 integrate .. //depot/projects/scottl-camlock/src/sys/dev/ata/ata-pci.h#17 integrate .. //depot/projects/scottl-camlock/src/sys/dev/ata/ata-usb.c#7 integrate .. //depot/projects/scottl-camlock/src/sys/dev/ata/chipsets/ata-acerlabs.c#2 integrate .. //depot/projects/scottl-camlock/src/sys/dev/ata/chipsets/ata-ahci.c#4 integrate .. //depot/projects/scottl-camlock/src/sys/dev/ata/chipsets/ata-intel.c#3 integrate .. //depot/projects/scottl-camlock/src/sys/dev/ata/chipsets/ata-nvidia.c#3 integrate .. //depot/projects/scottl-camlock/src/sys/dev/ath/if_ath.c#24 integrate .. //depot/projects/scottl-camlock/src/sys/dev/bge/if_bge.c#21 integrate .. //depot/projects/scottl-camlock/src/sys/dev/bwi/if_bwi.c#2 integrate .. //depot/projects/scottl-camlock/src/sys/dev/ce/if_ce.c#7 integrate .. //depot/projects/scottl-camlock/src/sys/dev/cfe/cfe_console.c#2 integrate .. //depot/projects/scottl-camlock/src/sys/dev/cfi/cfi_core.c#2 integrate .. //depot/projects/scottl-camlock/src/sys/dev/cp/if_cp.c#10 integrate .. //depot/projects/scottl-camlock/src/sys/dev/ctau/if_ct.c#12 integrate .. //depot/projects/scottl-camlock/src/sys/dev/cx/if_cx.c#13 integrate .. //depot/projects/scottl-camlock/src/sys/dev/cxgb/cxgb_main.c#8 integrate .. //depot/projects/scottl-camlock/src/sys/dev/cxgb/cxgb_multiq.c#5 integrate .. //depot/projects/scottl-camlock/src/sys/dev/cxgb/cxgb_sge.c#11 integrate .. //depot/projects/scottl-camlock/src/sys/dev/cxgb/ulp/iw_cxgb/iw_cxgb.c#2 integrate .. //depot/projects/scottl-camlock/src/sys/dev/cxgb/ulp/iw_cxgb/iw_cxgb_cm.c#2 integrate .. //depot/projects/scottl-camlock/src/sys/dev/cxgb/ulp/tom/cxgb_cpl_io.c#5 integrate .. //depot/projects/scottl-camlock/src/sys/dev/dc/if_dc.c#12 integrate .. //depot/projects/scottl-camlock/src/sys/dev/dcons/dcons_os.c#10 integrate .. //depot/projects/scottl-camlock/src/sys/dev/e1000/if_em.c#4 integrate .. //depot/projects/scottl-camlock/src/sys/dev/e1000/if_igb.c#3 integrate .. //depot/projects/scottl-camlock/src/sys/dev/eisa/eisaconf.c#5 integrate .. //depot/projects/scottl-camlock/src/sys/dev/fdc/fdc_acpi.c#5 integrate .. //depot/projects/scottl-camlock/src/sys/dev/firewire/firewire.c#13 integrate .. //depot/projects/scottl-camlock/src/sys/dev/firewire/if_fwe.c#10 integrate .. //depot/projects/scottl-camlock/src/sys/dev/firewire/if_fwip.c#11 integrate .. //depot/projects/scottl-camlock/src/sys/dev/fxp/if_fxp.c#19 integrate .. //depot/projects/scottl-camlock/src/sys/dev/if_ndis/if_ndis.c#15 integrate .. //depot/projects/scottl-camlock/src/sys/dev/if_ndis/if_ndis_usb.c#7 integrate .. //depot/projects/scottl-camlock/src/sys/dev/if_ndis/if_ndisvar.h#10 integrate .. //depot/projects/scottl-camlock/src/sys/dev/iir/iir.c#13 integrate .. //depot/projects/scottl-camlock/src/sys/dev/iir/iir_ctrl.c#7 integrate .. //depot/projects/scottl-camlock/src/sys/dev/ipmi/ipmi_acpi.c#3 integrate .. //depot/projects/scottl-camlock/src/sys/dev/iwn/if_iwn.c#4 integrate .. //depot/projects/scottl-camlock/src/sys/dev/ixgb/if_ixgb.c#10 integrate .. //depot/projects/scottl-camlock/src/sys/dev/kbd/kbd.c#9 integrate .. //depot/projects/scottl-camlock/src/sys/dev/kbdmux/kbdmux.c#9 integrate .. //depot/projects/scottl-camlock/src/sys/dev/ksyms/ksyms.c#1 branch .. //depot/projects/scottl-camlock/src/sys/dev/lmc/if_lmc.c#10 integrate .. //depot/projects/scottl-camlock/src/sys/dev/lmc/if_lmc.h#7 integrate .. //depot/projects/scottl-camlock/src/sys/dev/mca/mca_bus.c#3 integrate .. //depot/projects/scottl-camlock/src/sys/dev/mge/if_mge.c#3 integrate .. //depot/projects/scottl-camlock/src/sys/dev/mii/e1000phy.c#10 integrate .. //depot/projects/scottl-camlock/src/sys/dev/mii/e1000phyreg.h#6 integrate .. //depot/projects/scottl-camlock/src/sys/dev/msk/if_msk.c#10 integrate .. //depot/projects/scottl-camlock/src/sys/dev/msk/if_mskreg.h#7 integrate .. //depot/projects/scottl-camlock/src/sys/dev/mwl/if_mwl.c#1 branch .. //depot/projects/scottl-camlock/src/sys/dev/mwl/if_mwl_pci.c#1 branch .. //depot/projects/scottl-camlock/src/sys/dev/mwl/if_mwlioctl.h#1 branch .. //depot/projects/scottl-camlock/src/sys/dev/mwl/if_mwlvar.h#1 branch .. //depot/projects/scottl-camlock/src/sys/dev/mwl/mwldiag.h#1 branch .. //depot/projects/scottl-camlock/src/sys/dev/mwl/mwlhal.c#1 branch .. //depot/projects/scottl-camlock/src/sys/dev/mwl/mwlhal.h#1 branch .. //depot/projects/scottl-camlock/src/sys/dev/mwl/mwlreg.h#1 branch .. //depot/projects/scottl-camlock/src/sys/dev/mxge/if_mxge.c#15 integrate .. //depot/projects/scottl-camlock/src/sys/dev/mxge/if_mxge_var.h#11 integrate .. //depot/projects/scottl-camlock/src/sys/dev/ncv/ncr53c500_pccard.c#8 integrate .. //depot/projects/scottl-camlock/src/sys/dev/nfe/if_nfe.c#10 integrate .. //depot/projects/scottl-camlock/src/sys/dev/nge/if_nge.c#11 integrate .. //depot/projects/scottl-camlock/src/sys/dev/nmdm/nmdm.c#10 integrate .. //depot/projects/scottl-camlock/src/sys/dev/nsp/nsp_pccard.c#7 integrate .. //depot/projects/scottl-camlock/src/sys/dev/ofw/ofw_console.c#11 integrate .. //depot/projects/scottl-camlock/src/sys/dev/ofw/ofw_standard.c#2 integrate .. //depot/projects/scottl-camlock/src/sys/dev/pcf/pcf.c#3 integrate .. //depot/projects/scottl-camlock/src/sys/dev/pcf/pcfvar.h#5 integrate .. //depot/projects/scottl-camlock/src/sys/dev/pci/pci.c#22 integrate .. //depot/projects/scottl-camlock/src/sys/dev/pci/pcivar.h#15 integrate .. //depot/projects/scottl-camlock/src/sys/dev/pdq/if_fpa.c#5 integrate .. //depot/projects/scottl-camlock/src/sys/dev/puc/pucdata.c#13 integrate .. //depot/projects/scottl-camlock/src/sys/dev/ral/rt2560.c#13 integrate .. //depot/projects/scottl-camlock/src/sys/dev/re/if_re.c#23 integrate .. //depot/projects/scottl-camlock/src/sys/dev/rp/rp.c#9 integrate .. //depot/projects/scottl-camlock/src/sys/dev/sec/sec.c#1 branch .. //depot/projects/scottl-camlock/src/sys/dev/sec/sec.h#1 branch .. //depot/projects/scottl-camlock/src/sys/dev/sf/if_sf.c#2 integrate .. //depot/projects/scottl-camlock/src/sys/dev/si/si.c#9 integrate .. //depot/projects/scottl-camlock/src/sys/dev/sis/if_sis.c#2 integrate .. //depot/projects/scottl-camlock/src/sys/dev/smc/if_smc.c#2 integrate .. //depot/projects/scottl-camlock/src/sys/dev/smc/if_smcvar.h#2 integrate .. //depot/projects/scottl-camlock/src/sys/dev/snc/if_snc.c#4 integrate .. //depot/projects/scottl-camlock/src/sys/dev/snc/if_sncvar.h#3 integrate .. //depot/projects/scottl-camlock/src/sys/dev/sound/clone.c#2 integrate .. //depot/projects/scottl-camlock/src/sys/dev/sound/driver.c#9 integrate .. //depot/projects/scottl-camlock/src/sys/dev/sound/isa/ad1816.c#12 integrate .. //depot/projects/scottl-camlock/src/sys/dev/sound/isa/ess.c#11 integrate .. //depot/projects/scottl-camlock/src/sys/dev/sound/isa/gusc.c#6 integrate .. //depot/projects/scottl-camlock/src/sys/dev/sound/isa/mss.c#11 integrate .. //depot/projects/scottl-camlock/src/sys/dev/sound/isa/sb16.c#10 integrate .. //depot/projects/scottl-camlock/src/sys/dev/sound/isa/sb8.c#10 integrate .. //depot/projects/scottl-camlock/src/sys/dev/sound/isa/sbc.c#7 integrate .. //depot/projects/scottl-camlock/src/sys/dev/sound/isa/sndbuf_dma.c#3 integrate .. //depot/projects/scottl-camlock/src/sys/dev/sound/macio/aoa.c#2 integrate .. //depot/projects/scottl-camlock/src/sys/dev/sound/macio/davbus.c#2 integrate .. //depot/projects/scottl-camlock/src/sys/dev/sound/macio/i2s.c#2 integrate .. //depot/projects/scottl-camlock/src/sys/dev/sound/macio/snapper.c#2 integrate .. //depot/projects/scottl-camlock/src/sys/dev/sound/macio/tumbler.c#2 integrate .. //depot/projects/scottl-camlock/src/sys/dev/sound/midi/midi.c#10 integrate .. //depot/projects/scottl-camlock/src/sys/dev/sound/midi/mpu401.c#5 integrate .. //depot/projects/scottl-camlock/src/sys/dev/sound/midi/sequencer.c#12 integrate .. //depot/projects/scottl-camlock/src/sys/dev/sound/midi/sequencer.h#6 integrate .. //depot/projects/scottl-camlock/src/sys/dev/sound/pci/als4000.c#9 integrate .. //depot/projects/scottl-camlock/src/sys/dev/sound/pci/atiixp.c#10 integrate .. //depot/projects/scottl-camlock/src/sys/dev/sound/pci/aureal.c#8 integrate .. //depot/projects/scottl-camlock/src/sys/dev/sound/pci/cmi.c#16 integrate .. //depot/projects/scottl-camlock/src/sys/dev/sound/pci/cs4281.c#8 integrate .. //depot/projects/scottl-camlock/src/sys/dev/sound/pci/csa.c#9 integrate .. //depot/projects/scottl-camlock/src/sys/dev/sound/pci/csapcm.c#10 integrate .. //depot/projects/scottl-camlock/src/sys/dev/sound/pci/ds1.c#11 integrate .. //depot/projects/scottl-camlock/src/sys/dev/sound/pci/emu10k1.c#13 integrate .. //depot/projects/scottl-camlock/src/sys/dev/sound/pci/emu10kx-midi.c#4 integrate .. //depot/projects/scottl-camlock/src/sys/dev/sound/pci/emu10kx-pcm.c#7 integrate .. //depot/projects/scottl-camlock/src/sys/dev/sound/pci/emu10kx.c#7 integrate .. //depot/projects/scottl-camlock/src/sys/dev/sound/pci/envy24.c#11 integrate .. //depot/projects/scottl-camlock/src/sys/dev/sound/pci/envy24ht.c#9 integrate .. //depot/projects/scottl-camlock/src/sys/dev/sound/pci/es137x.c#13 integrate .. //depot/projects/scottl-camlock/src/sys/dev/sound/pci/fm801.c#9 integrate .. //depot/projects/scottl-camlock/src/sys/dev/sound/pci/hda/hdac.c#11 integrate .. //depot/projects/scottl-camlock/src/sys/dev/sound/pci/ich.c#19 integrate .. //depot/projects/scottl-camlock/src/sys/dev/sound/pci/maestro.c#11 integrate .. //depot/projects/scottl-camlock/src/sys/dev/sound/pci/maestro3.c#9 integrate .. //depot/projects/scottl-camlock/src/sys/dev/sound/pci/neomagic.c#6 integrate .. //depot/projects/scottl-camlock/src/sys/dev/sound/pci/solo.c#10 integrate .. //depot/projects/scottl-camlock/src/sys/dev/sound/pci/spicds.c#5 integrate .. //depot/projects/scottl-camlock/src/sys/dev/sound/pci/t4dwave.c#10 integrate .. //depot/projects/scottl-camlock/src/sys/dev/sound/pci/via8233.c#14 integrate .. //depot/projects/scottl-camlock/src/sys/dev/sound/pci/via82c686.c#9 integrate .. //depot/projects/scottl-camlock/src/sys/dev/sound/pci/vibes.c#9 integrate .. //depot/projects/scottl-camlock/src/sys/dev/sound/pcm/ac97.c#12 integrate .. //depot/projects/scottl-camlock/src/sys/dev/sound/pcm/ac97_patch.c#9 integrate .. //depot/projects/scottl-camlock/src/sys/dev/sound/pcm/buffer.c#12 integrate .. //depot/projects/scottl-camlock/src/sys/dev/sound/pcm/buffer.h#9 integrate .. //depot/projects/scottl-camlock/src/sys/dev/sound/pcm/channel.c#14 integrate .. //depot/projects/scottl-camlock/src/sys/dev/sound/pcm/channel.h#8 integrate .. //depot/projects/scottl-camlock/src/sys/dev/sound/pcm/channel_if.m#5 integrate .. //depot/projects/scottl-camlock/src/sys/dev/sound/pcm/dsp.c#15 integrate .. //depot/projects/scottl-camlock/src/sys/dev/sound/pcm/dsp.h#6 integrate .. //depot/projects/scottl-camlock/src/sys/dev/sound/pcm/fake.c#7 delete .. //depot/projects/scottl-camlock/src/sys/dev/sound/pcm/feeder.c#9 integrate .. //depot/projects/scottl-camlock/src/sys/dev/sound/pcm/feeder.h#6 integrate .. //depot/projects/scottl-camlock/src/sys/dev/sound/pcm/feeder_chain.c#1 branch .. //depot/projects/scottl-camlock/src/sys/dev/sound/pcm/feeder_eq.c#1 branch .. //depot/projects/scottl-camlock/src/sys/dev/sound/pcm/feeder_fmt.c#8 delete .. //depot/projects/scottl-camlock/src/sys/dev/sound/pcm/feeder_format.c#1 branch .. //depot/projects/scottl-camlock/src/sys/dev/sound/pcm/feeder_matrix.c#1 branch .. //depot/projects/scottl-camlock/src/sys/dev/sound/pcm/feeder_mixer.c#1 branch .. //depot/projects/scottl-camlock/src/sys/dev/sound/pcm/feeder_rate.c#9 integrate .. //depot/projects/scottl-camlock/src/sys/dev/sound/pcm/feeder_volume.c#5 integrate .. //depot/projects/scottl-camlock/src/sys/dev/sound/pcm/g711.h#1 branch .. //depot/projects/scottl-camlock/src/sys/dev/sound/pcm/intpcm.h#1 branch .. //depot/projects/scottl-camlock/src/sys/dev/sound/pcm/matrix.h#1 branch .. //depot/projects/scottl-camlock/src/sys/dev/sound/pcm/matrix_map.h#1 branch .. //depot/projects/scottl-camlock/src/sys/dev/sound/pcm/mixer.c#12 integrate .. //depot/projects/scottl-camlock/src/sys/dev/sound/pcm/mixer.h#8 integrate .. //depot/projects/scottl-camlock/src/sys/dev/sound/pcm/pcm.h#1 branch .. //depot/projects/scottl-camlock/src/sys/dev/sound/pcm/sndstat.c#9 integrate .. //depot/projects/scottl-camlock/src/sys/dev/sound/pcm/sndstat.h#1 branch .. //depot/projects/scottl-camlock/src/sys/dev/sound/pcm/sound.c#16 integrate .. //depot/projects/scottl-camlock/src/sys/dev/sound/pcm/sound.h#16 integrate .. //depot/projects/scottl-camlock/src/sys/dev/sound/pcm/vchan.c#11 integrate .. //depot/projects/scottl-camlock/src/sys/dev/sound/pcm/vchan.h#4 integrate .. //depot/projects/scottl-camlock/src/sys/dev/sound/sbus/cs4231.c#8 integrate .. //depot/projects/scottl-camlock/src/sys/dev/sound/unit.c#2 integrate .. //depot/projects/scottl-camlock/src/sys/dev/sound/usb/uaudio.c#17 integrate .. //depot/projects/scottl-camlock/src/sys/dev/sound/usb/uaudio.h#7 integrate .. //depot/projects/scottl-camlock/src/sys/dev/sound/usb/uaudio_pcm.c#12 integrate .. //depot/projects/scottl-camlock/src/sys/dev/sound/usb/uaudioreg.h#5 integrate .. //depot/projects/scottl-camlock/src/sys/dev/sound/version.h#2 integrate .. //depot/projects/scottl-camlock/src/sys/dev/spibus/spibus.c#4 integrate .. //depot/projects/scottl-camlock/src/sys/dev/ste/if_ste.c#2 integrate .. //depot/projects/scottl-camlock/src/sys/dev/stg/tmc18c30.h#2 integrate .. //depot/projects/scottl-camlock/src/sys/dev/stg/tmc18c30_subr.c#5 integrate .. //depot/projects/scottl-camlock/src/sys/dev/stge/if_stge.c#7 integrate .. //depot/projects/scottl-camlock/src/sys/dev/syscons/daemon/daemon_saver.c#5 integrate .. //depot/projects/scottl-camlock/src/sys/dev/syscons/scterm-teken.c#2 integrate .. //depot/projects/scottl-camlock/src/sys/dev/syscons/syscons.c#16 integrate .. //depot/projects/scottl-camlock/src/sys/dev/syscons/sysmouse.c#10 integrate .. //depot/projects/scottl-camlock/src/sys/dev/syscons/teken/sequences#2 integrate .. //depot/projects/scottl-camlock/src/sys/dev/syscons/teken/teken.c#2 integrate .. //depot/projects/scottl-camlock/src/sys/dev/syscons/teken/teken.h#2 integrate .. //depot/projects/scottl-camlock/src/sys/dev/syscons/teken/teken_demo.c#2 integrate .. //depot/projects/scottl-camlock/src/sys/dev/syscons/teken/teken_stress.c#2 integrate .. //depot/projects/scottl-camlock/src/sys/dev/syscons/teken/teken_subr_compat.h#2 integrate .. //depot/projects/scottl-camlock/src/sys/dev/tsec/if_tsec.c#3 integrate .. //depot/projects/scottl-camlock/src/sys/dev/uart/uart_cpu_mv.c#2 integrate .. //depot/projects/scottl-camlock/src/sys/dev/uart/uart_tty.c#12 integrate .. //depot/projects/scottl-camlock/src/sys/dev/ubsec/ubsec.c#13 integrate .. //depot/projects/scottl-camlock/src/sys/dev/usb/bluetooth/TODO.TXT#2 delete .. //depot/projects/scottl-camlock/src/sys/dev/usb/bluetooth/ng_ubt.c#4 delete .. //depot/projects/scottl-camlock/src/sys/dev/usb/bluetooth/ng_ubt_var.h#2 delete .. //depot/projects/scottl-camlock/src/sys/dev/usb/bluetooth/ubtbcmfw.c#4 delete .. //depot/projects/scottl-camlock/src/sys/dev/usb/controller/at91dci.c#4 integrate .. //depot/projects/scottl-camlock/src/sys/dev/usb/controller/at91dci.h#4 integrate .. //depot/projects/scottl-camlock/src/sys/dev/usb/controller/atmegadci.c#4 integrate .. //depot/projects/scottl-camlock/src/sys/dev/usb/controller/atmegadci.h#4 integrate .. //depot/projects/scottl-camlock/src/sys/dev/usb/controller/atmegadci_atmelarm.c#3 integrate .. //depot/projects/scottl-camlock/src/sys/dev/usb/controller/avr32dci.c#2 integrate .. //depot/projects/scottl-camlock/src/sys/dev/usb/controller/avr32dci.h#2 integrate .. //depot/projects/scottl-camlock/src/sys/dev/usb/controller/ehci.c#4 integrate .. //depot/projects/scottl-camlock/src/sys/dev/usb/controller/ehci.h#3 integrate .. //depot/projects/scottl-camlock/src/sys/dev/usb/controller/ehci_mbus.c#3 integrate .. //depot/projects/scottl-camlock/src/sys/dev/usb/controller/musb_otg.c#4 integrate .. //depot/projects/scottl-camlock/src/sys/dev/usb/controller/musb_otg.h#4 integrate .. //depot/projects/scottl-camlock/src/sys/dev/usb/controller/ohci.c#4 integrate .. //depot/projects/scottl-camlock/src/sys/dev/usb/controller/ohci.h#3 integrate .. //depot/projects/scottl-camlock/src/sys/dev/usb/controller/uhci.c#4 integrate .. //depot/projects/scottl-camlock/src/sys/dev/usb/controller/uhci.h#3 integrate .. //depot/projects/scottl-camlock/src/sys/dev/usb/controller/usb_controller.c#4 integrate .. //depot/projects/scottl-camlock/src/sys/dev/usb/controller/uss820dci.c#4 integrate .. //depot/projects/scottl-camlock/src/sys/dev/usb/controller/uss820dci.h#4 integrate .. //depot/projects/scottl-camlock/src/sys/dev/usb/input/uhid.c#4 integrate .. //depot/projects/scottl-camlock/src/sys/dev/usb/input/ukbd.c#4 integrate .. //depot/projects/scottl-camlock/src/sys/dev/usb/input/ums.c#4 integrate .. //depot/projects/scottl-camlock/src/sys/dev/usb/misc/udbp.c#4 integrate .. //depot/projects/scottl-camlock/src/sys/dev/usb/misc/ufm.c#3 integrate .. //depot/projects/scottl-camlock/src/sys/dev/usb/net/if_aue.c#4 integrate .. //depot/projects/scottl-camlock/src/sys/dev/usb/net/if_auereg.h#2 integrate .. //depot/projects/scottl-camlock/src/sys/dev/usb/net/if_axe.c#4 integrate .. //depot/projects/scottl-camlock/src/sys/dev/usb/net/if_axereg.h#2 integrate .. //depot/projects/scottl-camlock/src/sys/dev/usb/net/if_cdce.c#4 integrate .. //depot/projects/scottl-camlock/src/sys/dev/usb/net/if_cdcereg.h#3 integrate .. //depot/projects/scottl-camlock/src/sys/dev/usb/net/if_cue.c#4 integrate .. //depot/projects/scottl-camlock/src/sys/dev/usb/net/if_cuereg.h#2 integrate .. //depot/projects/scottl-camlock/src/sys/dev/usb/net/if_kue.c#4 integrate .. //depot/projects/scottl-camlock/src/sys/dev/usb/net/if_kuereg.h#2 integrate .. //depot/projects/scottl-camlock/src/sys/dev/usb/net/if_rue.c#4 integrate .. //depot/projects/scottl-camlock/src/sys/dev/usb/net/if_ruereg.h#2 integrate .. //depot/projects/scottl-camlock/src/sys/dev/usb/net/if_udav.c#4 integrate .. //depot/projects/scottl-camlock/src/sys/dev/usb/net/if_udavreg.h#2 integrate .. //depot/projects/scottl-camlock/src/sys/dev/usb/net/usb_ethernet.c#3 integrate .. //depot/projects/scottl-camlock/src/sys/dev/usb/net/usb_ethernet.h#3 integrate .. //depot/projects/scottl-camlock/src/sys/dev/usb/quirk/usb_quirk.c#2 integrate .. //depot/projects/scottl-camlock/src/sys/dev/usb/serial/u3g.c#4 integrate .. //depot/projects/scottl-camlock/src/sys/dev/usb/serial/uark.c#4 integrate .. //depot/projects/scottl-camlock/src/sys/dev/usb/serial/ubsa.c#4 integrate .. //depot/projects/scottl-camlock/src/sys/dev/usb/serial/ubser.c#4 integrate .. //depot/projects/scottl-camlock/src/sys/dev/usb/serial/uchcom.c#4 integrate .. //depot/projects/scottl-camlock/src/sys/dev/usb/serial/ucycom.c#4 integrate .. //depot/projects/scottl-camlock/src/sys/dev/usb/serial/ufoma.c#4 integrate .. //depot/projects/scottl-camlock/src/sys/dev/usb/serial/uftdi.c#4 integrate .. //depot/projects/scottl-camlock/src/sys/dev/usb/serial/ugensa.c#4 integrate .. //depot/projects/scottl-camlock/src/sys/dev/usb/serial/uipaq.c#4 integrate .. //depot/projects/scottl-camlock/src/sys/dev/usb/serial/ulpt.c#4 integrate .. //depot/projects/scottl-camlock/src/sys/dev/usb/serial/umct.c#4 integrate .. //depot/projects/scottl-camlock/src/sys/dev/usb/serial/umodem.c#4 integrate .. //depot/projects/scottl-camlock/src/sys/dev/usb/serial/umoscom.c#4 integrate .. //depot/projects/scottl-camlock/src/sys/dev/usb/serial/uplcom.c#4 integrate .. //depot/projects/scottl-camlock/src/sys/dev/usb/serial/usb_serial.c#5 integrate .. //depot/projects/scottl-camlock/src/sys/dev/usb/serial/usb_serial.h#4 integrate .. //depot/projects/scottl-camlock/src/sys/dev/usb/serial/uslcom.c#4 integrate .. //depot/projects/scottl-camlock/src/sys/dev/usb/serial/uvisor.c#4 integrate .. //depot/projects/scottl-camlock/src/sys/dev/usb/serial/uvscom.c#4 integrate .. //depot/projects/scottl-camlock/src/sys/dev/usb/storage/umass.c#4 integrate .. //depot/projects/scottl-camlock/src/sys/dev/usb/storage/urio.c#4 integrate .. //depot/projects/scottl-camlock/src/sys/dev/usb/storage/ustorage_fs.c#4 integrate .. //depot/projects/scottl-camlock/src/sys/dev/usb/template/usb_template.c#4 integrate .. //depot/projects/scottl-camlock/src/sys/dev/usb/template/usb_template.h#2 integrate .. //depot/projects/scottl-camlock/src/sys/dev/usb/template/usb_template_cdce.c#2 integrate .. //depot/projects/scottl-camlock/src/sys/dev/usb/template/usb_template_msc.c#2 integrate .. //depot/projects/scottl-camlock/src/sys/dev/usb/template/usb_template_mtp.c#2 integrate .. //depot/projects/scottl-camlock/src/sys/dev/usb/usb.h#10 integrate .. //depot/projects/scottl-camlock/src/sys/dev/usb/usb_bus.h#4 integrate .. //depot/projects/scottl-camlock/src/sys/dev/usb/usb_busdma.c#3 integrate .. //depot/projects/scottl-camlock/src/sys/dev/usb/usb_busdma.h#2 integrate .. //depot/projects/scottl-camlock/src/sys/dev/usb/usb_cdc.h#2 integrate .. //depot/projects/scottl-camlock/src/sys/dev/usb/usb_compat_linux.c#4 integrate .. //depot/projects/scottl-camlock/src/sys/dev/usb/usb_compat_linux.h#3 integrate .. //depot/projects/scottl-camlock/src/sys/dev/usb/usb_controller.h#4 integrate .. //depot/projects/scottl-camlock/src/sys/dev/usb/usb_core.h#4 integrate .. //depot/projects/scottl-camlock/src/sys/dev/usb/usb_debug.c#3 integrate .. //depot/projects/scottl-camlock/src/sys/dev/usb/usb_debug.h#3 integrate .. //depot/projects/scottl-camlock/src/sys/dev/usb/usb_dev.c#4 integrate .. //depot/projects/scottl-camlock/src/sys/dev/usb/usb_dev.h#2 integrate .. //depot/projects/scottl-camlock/src/sys/dev/usb/usb_device.c#4 integrate .. //depot/projects/scottl-camlock/src/sys/dev/usb/usb_device.h#4 integrate .. //depot/projects/scottl-camlock/src/sys/dev/usb/usb_dynamic.c#3 integrate .. //depot/projects/scottl-camlock/src/sys/dev/usb/usb_dynamic.h#3 integrate .. //depot/projects/scottl-camlock/src/sys/dev/usb/usb_error.c#2 integrate .. //depot/projects/scottl-camlock/src/sys/dev/usb/usb_generic.c#4 integrate .. //depot/projects/scottl-camlock/src/sys/dev/usb/usb_generic.h#2 integrate .. //depot/projects/scottl-camlock/src/sys/dev/usb/usb_handle_request.c#3 integrate .. //depot/projects/scottl-camlock/src/sys/dev/usb/usb_hid.c#4 integrate .. //depot/projects/scottl-camlock/src/sys/dev/usb/usb_hid.h#3 integrate .. //depot/projects/scottl-camlock/src/sys/dev/usb/usb_hub.c#4 integrate .. //depot/projects/scottl-camlock/src/sys/dev/usb/usb_hub.h#4 integrate .. //depot/projects/scottl-camlock/src/sys/dev/usb/usb_if.m#5 integrate .. //depot/projects/scottl-camlock/src/sys/dev/usb/usb_ioctl.h#2 integrate .. //depot/projects/scottl-camlock/src/sys/dev/usb/usb_lookup.c#2 integrate .. //depot/projects/scottl-camlock/src/sys/dev/usb/usb_lookup.h#2 integrate .. //depot/projects/scottl-camlock/src/sys/dev/usb/usb_mbuf.c#2 integrate .. //depot/projects/scottl-camlock/src/sys/dev/usb/usb_mbuf.h#2 integrate .. //depot/projects/scottl-camlock/src/sys/dev/usb/usb_msctest.c#3 integrate .. //depot/projects/scottl-camlock/src/sys/dev/usb/usb_msctest.h#2 integrate .. //depot/projects/scottl-camlock/src/sys/dev/usb/usb_parse.c#3 integrate .. //depot/projects/scottl-camlock/src/sys/dev/usb/usb_parse.h#3 integrate .. //depot/projects/scottl-camlock/src/sys/dev/usb/usb_process.c#3 integrate .. //depot/projects/scottl-camlock/src/sys/dev/usb/usb_process.h#2 integrate .. //depot/projects/scottl-camlock/src/sys/dev/usb/usb_request.c#4 integrate .. //depot/projects/scottl-camlock/src/sys/dev/usb/usb_request.h#3 integrate .. //depot/projects/scottl-camlock/src/sys/dev/usb/usb_transfer.c#4 integrate .. //depot/projects/scottl-camlock/src/sys/dev/usb/usb_transfer.h#4 integrate .. //depot/projects/scottl-camlock/src/sys/dev/usb/usb_util.c#2 integrate .. //depot/projects/scottl-camlock/src/sys/dev/usb/usbdevs#24 integrate .. //depot/projects/scottl-camlock/src/sys/dev/usb/usbhid.h#5 integrate .. //depot/projects/scottl-camlock/src/sys/dev/usb/wlan/if_rum.c#4 integrate .. //depot/projects/scottl-camlock/src/sys/dev/usb/wlan/if_rumvar.h#3 integrate .. //depot/projects/scottl-camlock/src/sys/dev/usb/wlan/if_uath.c#3 integrate .. //depot/projects/scottl-camlock/src/sys/dev/usb/wlan/if_uathvar.h#3 integrate .. //depot/projects/scottl-camlock/src/sys/dev/usb/wlan/if_upgt.c#2 integrate .. //depot/projects/scottl-camlock/src/sys/dev/usb/wlan/if_upgtvar.h#2 integrate .. //depot/projects/scottl-camlock/src/sys/dev/usb/wlan/if_ural.c#4 integrate .. //depot/projects/scottl-camlock/src/sys/dev/usb/wlan/if_uralvar.h#3 integrate .. //depot/projects/scottl-camlock/src/sys/dev/usb/wlan/if_urtw.c#1 branch .. //depot/projects/scottl-camlock/src/sys/dev/usb/wlan/if_urtwreg.h#1 branch .. //depot/projects/scottl-camlock/src/sys/dev/usb/wlan/if_urtwvar.h#1 branch .. //depot/projects/scottl-camlock/src/sys/dev/usb/wlan/if_zyd.c#4 integrate .. //depot/projects/scottl-camlock/src/sys/dev/usb/wlan/if_zydreg.h#3 integrate .. //depot/projects/scottl-camlock/src/sys/dev/vge/if_vge.c#11 integrate .. //depot/projects/scottl-camlock/src/sys/dev/vr/if_vr.c#3 integrate .. //depot/projects/scottl-camlock/src/sys/dev/wb/if_wb.c#2 integrate .. //depot/projects/scottl-camlock/src/sys/dev/wi/if_wi.c#18 integrate .. //depot/projects/scottl-camlock/src/sys/dev/wi/if_wivar.h#10 integrate .. //depot/projects/scottl-camlock/src/sys/dev/xen/console/console.c#4 integrate .. //depot/projects/scottl-camlock/src/sys/dev/xen/netfront/netfront.c#3 integrate .. //depot/projects/scottl-camlock/src/sys/dev/xl/if_xl.c#3 integrate .. //depot/projects/scottl-camlock/src/sys/fs/cd9660/cd9660_lookup.c#4 integrate .. //depot/projects/scottl-camlock/src/sys/fs/cd9660/cd9660_rrip.c#3 integrate .. //depot/projects/scottl-camlock/src/sys/fs/cd9660/cd9660_vnops.c#3 integrate .. //depot/projects/scottl-camlock/src/sys/fs/devfs/devfs_devs.c#12 integrate .. //depot/projects/scottl-camlock/src/sys/fs/devfs/devfs_vfsops.c#11 integrate .. //depot/projects/scottl-camlock/src/sys/fs/devfs/devfs_vnops.c#20 integrate .. //depot/projects/scottl-camlock/src/sys/fs/fifofs/fifo_vnops.c#13 integrate .. //depot/projects/scottl-camlock/src/sys/fs/msdosfs/msdosfs_vnops.c#14 integrate .. //depot/projects/scottl-camlock/src/sys/fs/nfs/nfs_commonacl.c#3 integrate .. //depot/projects/scottl-camlock/src/sys/fs/nfs/nfs_commonport.c#2 integrate .. //depot/projects/scottl-camlock/src/sys/fs/nfs/nfs_commonsubs.c#2 integrate .. //depot/projects/scottl-camlock/src/sys/fs/nfs/nfsport.h#3 integrate .. //depot/projects/scottl-camlock/src/sys/fs/nfsclient/nfs_clbio.c#2 integrate .. //depot/projects/scottl-camlock/src/sys/fs/nfsclient/nfs_clnode.c#2 integrate .. //depot/projects/scottl-camlock/src/sys/fs/nfsclient/nfs_clstate.c#2 integrate .. //depot/projects/scottl-camlock/src/sys/fs/nfsclient/nfs_clvfsops.c#2 integrate .. //depot/projects/scottl-camlock/src/sys/fs/nfsclient/nfs_clvnops.c#2 integrate .. //depot/projects/scottl-camlock/src/sys/fs/nfsserver/nfs_nfsdkrpc.c#3 integrate .. //depot/projects/scottl-camlock/src/sys/fs/nfsserver/nfs_nfsdport.c#2 integrate .. //depot/projects/scottl-camlock/src/sys/fs/nfsserver/nfs_nfsdserv.c#2 integrate .. //depot/projects/scottl-camlock/src/sys/fs/nullfs/null_subr.c#11 integrate .. //depot/projects/scottl-camlock/src/sys/fs/nullfs/null_vnops.c#13 integrate .. //depot/projects/scottl-camlock/src/sys/fs/procfs/procfs_status.c#10 integrate .. //depot/projects/scottl-camlock/src/sys/fs/pseudofs/pseudofs_vncache.c#11 integrate .. //depot/projects/scottl-camlock/src/sys/fs/pseudofs/pseudofs_vnops.c#13 integrate .. //depot/projects/scottl-camlock/src/sys/fs/smbfs/smbfs_io.c#12 integrate .. //depot/projects/scottl-camlock/src/sys/fs/tmpfs/tmpfs_vnops.c#5 integrate .. //depot/projects/scottl-camlock/src/sys/fs/udf/osta.c#3 integrate .. //depot/projects/scottl-camlock/src/sys/fs/unionfs/union_subr.c#13 integrate .. //depot/projects/scottl-camlock/src/sys/geom/geom.h#14 integrate .. //depot/projects/scottl-camlock/src/sys/geom/geom_io.c#15 integrate .. //depot/projects/scottl-camlock/src/sys/geom/geom_subr.c#13 integrate .. //depot/projects/scottl-camlock/src/sys/geom/label/g_label.c#7 integrate .. //depot/projects/scottl-camlock/src/sys/geom/vinum/geom_vinum_create.c#2 integrate .. //depot/projects/scottl-camlock/src/sys/geom/vinum/geom_vinum_drive.c#7 integrate .. //depot/projects/scottl-camlock/src/sys/gnu/fs/ext2fs/ext2_fs.h#3 integrate .. //depot/projects/scottl-camlock/src/sys/gnu/fs/ext2fs/ext2_fs_sb.h#3 integrate .. //depot/projects/scottl-camlock/src/sys/gnu/fs/ext2fs/ext2_lookup.c#5 integrate .. //depot/projects/scottl-camlock/src/sys/gnu/fs/ext2fs/ext2_vfsops.c#10 integrate .. //depot/projects/scottl-camlock/src/sys/gnu/fs/ext2fs/ext2_vnops.c#8 integrate .. //depot/projects/scottl-camlock/src/sys/gnu/fs/ext2fs/sparc64-bitops.h#2 delete .. //depot/projects/scottl-camlock/src/sys/gnu/fs/xfs/FreeBSD/xfs_vnops.c#6 integrate .. //depot/projects/scottl-camlock/src/sys/i386/acpica/OsdEnvironment.c#5 integrate .. //depot/projects/scottl-camlock/src/sys/i386/acpica/acpi_machdep.c#14 integrate .. //depot/projects/scottl-camlock/src/sys/i386/acpica/acpi_wakeup.c#13 integrate .. //depot/projects/scottl-camlock/src/sys/i386/acpica/madt.c#11 integrate .. //depot/projects/scottl-camlock/src/sys/i386/conf/DEFAULTS#11 integrate .. //depot/projects/scottl-camlock/src/sys/i386/conf/GENERIC#21 integrate .. //depot/projects/scottl-camlock/src/sys/i386/conf/MAC#2 delete .. //depot/projects/scottl-camlock/src/sys/i386/conf/NOTES#20 integrate .. //depot/projects/scottl-camlock/src/sys/i386/cpufreq/est.c#6 integrate .. //depot/projects/scottl-camlock/src/sys/i386/cpufreq/hwpstate.c#3 integrate .. //depot/projects/scottl-camlock/src/sys/i386/cpufreq/p4tcc.c#5 integrate .. //depot/projects/scottl-camlock/src/sys/i386/i386/dump_machdep.c#6 integrate .. //depot/projects/scottl-camlock/src/sys/i386/i386/local_apic.c#19 integrate .. //depot/projects/scottl-camlock/src/sys/i386/i386/machdep.c#21 integrate .. //depot/projects/scottl-camlock/src/sys/i386/i386/minidump_machdep.c#6 integrate .. //depot/projects/scottl-camlock/src/sys/i386/i386/pmap.c#26 integrate .. //depot/projects/scottl-camlock/src/sys/i386/i386/sys_machdep.c#12 integrate .. //depot/projects/scottl-camlock/src/sys/i386/ibcs2/ibcs2_misc.c#13 integrate .. //depot/projects/scottl-camlock/src/sys/i386/ibcs2/ibcs2_socksys.c#6 integrate .. //depot/projects/scottl-camlock/src/sys/i386/ibcs2/ibcs2_sysent.c#9 integrate .. //depot/projects/scottl-camlock/src/sys/i386/include/apicvar.h#15 integrate .. //depot/projects/scottl-camlock/src/sys/i386/include/legacyvar.h#6 integrate .. //depot/projects/scottl-camlock/src/sys/i386/include/xen/xen_clock_util.h#1 branch .. //depot/projects/scottl-camlock/src/sys/i386/isa/clock.c#16 integrate .. //depot/projects/scottl-camlock/src/sys/i386/isa/vesa.c#7 integrate .. //depot/projects/scottl-camlock/src/sys/i386/linux/linux.h#15 integrate .. //depot/projects/scottl-camlock/src/sys/i386/linux/linux_sysent.c#19 integrate .. //depot/projects/scottl-camlock/src/sys/i386/pci/pci_bus.c#11 integrate .. //depot/projects/scottl-camlock/src/sys/i386/xen/clock.c#3 integrate .. //depot/projects/scottl-camlock/src/sys/i386/xen/mp_machdep.c#3 integrate .. //depot/projects/scottl-camlock/src/sys/i386/xen/pmap.c#3 integrate .. //depot/projects/scottl-camlock/src/sys/i386/xen/xen_clock_util.c#1 branch .. //depot/projects/scottl-camlock/src/sys/i386/xen/xen_rtc.c#1 branch .. //depot/projects/scottl-camlock/src/sys/ia64/acpica/OsdEnvironment.c#6 integrate .. //depot/projects/scottl-camlock/src/sys/ia64/acpica/acpi_machdep.c#6 integrate .. //depot/projects/scottl-camlock/src/sys/ia64/acpica/acpi_wakeup.c#3 integrate .. //depot/projects/scottl-camlock/src/sys/ia64/acpica/madt.c#5 integrate .. //depot/projects/scottl-camlock/src/sys/ia64/conf/GENERIC#16 integrate .. //depot/projects/scottl-camlock/src/sys/ia64/conf/MAC#2 delete .. //depot/projects/scottl-camlock/src/sys/ia64/ia64/dump_machdep.c#6 integrate .. //depot/projects/scottl-camlock/src/sys/ia64/ia64/mp_machdep.c#9 integrate .. //depot/projects/scottl-camlock/src/sys/ia64/ia64/nexus.c#11 integrate .. //depot/projects/scottl-camlock/src/sys/ia64/ia64/ssc.c#10 integrate .. //depot/projects/scottl-camlock/src/sys/kern/bus_if.m#9 integrate .. //depot/projects/scottl-camlock/src/sys/kern/init_main.c#18 integrate .. //depot/projects/scottl-camlock/src/sys/kern/init_sysent.c#16 integrate .. //depot/projects/scottl-camlock/src/sys/kern/kern_acct.c#17 integrate .. //depot/projects/scottl-camlock/src/sys/kern/kern_alq.c#12 integrate .. //depot/projects/scottl-camlock/src/sys/kern/kern_conf.c#15 integrate .. //depot/projects/scottl-camlock/src/sys/kern/kern_cpu.c#9 integrate .. //depot/projects/scottl-camlock/src/sys/kern/kern_cpuset.c#4 integrate .. //depot/projects/scottl-camlock/src/sys/kern/kern_descrip.c#21 integrate .. //depot/projects/scottl-camlock/src/sys/kern/kern_environment.c#15 integrate .. //depot/projects/scottl-camlock/src/sys/kern/kern_event.c#17 integrate .. //depot/projects/scottl-camlock/src/sys/kern/kern_exec.c#17 integrate .. //depot/projects/scottl-camlock/src/sys/kern/kern_exit.c#17 integrate .. //depot/projects/scottl-camlock/src/sys/kern/kern_fail.c#1 branch .. //depot/projects/scottl-camlock/src/sys/kern/kern_fork.c#20 integrate .. //depot/projects/scottl-camlock/src/sys/kern/kern_jail.c#15 integrate .. //depot/projects/scottl-camlock/src/sys/kern/kern_ktrace.c#18 integrate .. //depot/projects/scottl-camlock/src/sys/kern/kern_linker.c#21 integrate .. //depot/projects/scottl-camlock/src/sys/kern/kern_lock.c#15 integrate .. //depot/projects/scottl-camlock/src/sys/kern/kern_lockf.c#9 integrate .. //depot/projects/scottl-camlock/src/sys/kern/kern_lockstat.c#1 branch >>> TRUNCATED FOR MAIL (1000 lines) <<< From owner-p4-projects@FreeBSD.ORG Sat Jun 13 06:33:59 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 30BF11065674; Sat, 13 Jun 2009 06:33:59 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id E3584106566B for ; Sat, 13 Jun 2009 06:33:58 +0000 (UTC) (envelope-from alepulver@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id BD6AD8FC08 for ; Sat, 13 Jun 2009 06:33:58 +0000 (UTC) (envelope-from alepulver@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n5D6XwA6035128 for ; Sat, 13 Jun 2009 06:33:58 GMT (envelope-from alepulver@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n5D6XwBV035124 for perforce@freebsd.org; Sat, 13 Jun 2009 06:33:58 GMT (envelope-from alepulver@freebsd.org) Date: Sat, 13 Jun 2009 06:33:58 GMT Message-Id: <200906130633.n5D6XwBV035124@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to alepulver@freebsd.org using -f From: Alejandro Pulver To: Perforce Change Reviews Cc: Subject: PERFORCE change 164238 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 13 Jun 2009 06:34:00 -0000 http://perforce.freebsd.org/chv.cgi?CH=164238 Change 164238 by alepulver@alepulver_deimos on 2009/06/13 06:33:02 Integrate latest changes from CVS. Affected files ... .. //depot/projects/soc2008/alepulver-portslicense/ports/Mk/bsd.gnome.mk#4 integrate .. //depot/projects/soc2008/alepulver-portslicense/ports/Mk/bsd.kde.mk#4 integrate .. //depot/projects/soc2008/alepulver-portslicense/ports/Mk/bsd.kde4.mk#3 integrate .. //depot/projects/soc2008/alepulver-portslicense/ports/Mk/bsd.linux-apps.mk#2 integrate .. //depot/projects/soc2008/alepulver-portslicense/ports/Mk/bsd.linux-rpm.mk#4 integrate .. //depot/projects/soc2008/alepulver-portslicense/ports/Mk/bsd.perl.mk#3 integrate .. //depot/projects/soc2008/alepulver-portslicense/ports/Mk/bsd.port.mk#5 integrate .. //depot/projects/soc2008/alepulver-portslicense/ports/Mk/bsd.python.mk#4 integrate .. //depot/projects/soc2008/alepulver-portslicense/ports/Mk/bsd.ruby.mk#5 integrate .. //depot/projects/soc2008/alepulver-portslicense/ports/Mk/bsd.sites.mk#5 integrate Differences ... ==== //depot/projects/soc2008/alepulver-portslicense/ports/Mk/bsd.gnome.mk#4 (text+ko) ==== @@ -1,7 +1,7 @@ #-*- mode: Fundamental; tab-width: 4; -*- # ex:ts=4 # -# $FreeBSD: ports/Mk/bsd.gnome.mk,v 1.155 2009/04/13 19:05:11 marcus Exp $ +# $FreeBSD: ports/Mk/bsd.gnome.mk,v 1.156 2009/06/03 05:15:14 marcus Exp $ # $NetBSD: $ # $MCom: ports/Mk/bsd.gnome.mk,v 1.479 2009/03/14 05:55:36 marcus Exp $ # @@ -365,7 +365,7 @@ libwnck_DETECT= ${LOCALBASE}/libdata/pkgconfig/libwnck-1.0.pc libwnck_USE_GNOME_IMPL= gtk20 -vte_LIB_DEPENDS= vte.9:${PORTSDIR}/x11-toolkits/vte +vte_LIB_DEPENDS= vte.10:${PORTSDIR}/x11-toolkits/vte vte_DETECT= ${LOCALBASE}/libdata/pkgconfig/vte.pc vte_USE_GNOME_IMPL= gtk20 ==== //depot/projects/soc2008/alepulver-portslicense/ports/Mk/bsd.kde.mk#4 (text+ko) ==== @@ -1,7 +1,7 @@ #-*- mode: Makefile; tab-width: 4; -*- # ex:ts=4 # -# $FreeBSD: ports/Mk/bsd.kde.mk,v 1.80 2008/08/29 11:29:41 miwi Exp $ +# $FreeBSD: ports/Mk/bsd.kde.mk,v 1.81 2009/06/11 09:09:28 erwin Exp $ # # Please view me with 4 column tabs! @@ -117,11 +117,6 @@ -I${QT_PREFIX}/include -D_GETOPT_H QTCFGLIBS+= -Wl,-export-dynamic -L${LOCALBASE}/lib -ljpeg \ -L${QT_PREFIX}/lib -.if defined(PACKAGE_BUILDING) -TMPDIR?= /tmp -MAKE_ENV+= TMPDIR="${TMPDIR}" -CONFIGURE_ENV+= TMPDIR="${TMPDIR}" -.endif .if !defined(QT_NONSTANDARD) CONFIGURE_ARGS+=--with-qt-includes=${QT_PREFIX}/include \ ==== //depot/projects/soc2008/alepulver-portslicense/ports/Mk/bsd.kde4.mk#3 (text+ko) ==== @@ -1,7 +1,7 @@ #-*- mode: Makefile; tab-width: 4; -*- # ex:ts=4 # -# $FreeBSD: ports/Mk/bsd.kde4.mk,v 1.84 2009/05/09 19:37:59 makc Exp $ +# $FreeBSD: ports/Mk/bsd.kde4.mk,v 1.85 2009/06/03 11:01:50 miwi Exp $ # .if !defined(_POSTMKINCLUDED) && !defined(Kde_Pre_Include) @@ -49,7 +49,7 @@ # but this could be changed in a future. # -KDE4_VERSION= 4.2.3 +KDE4_VERSION= 4.2.4 KDE4_BRANCH?= stable # ==== //depot/projects/soc2008/alepulver-portslicense/ports/Mk/bsd.linux-apps.mk#2 (text+ko) ==== @@ -1,7 +1,7 @@ #-*- mode: Makefile; tab-width: 4; -*- # ex:ts=4 # -# $FreeBSD: ports/Mk/bsd.linux-apps.mk,v 1.18 2009/05/12 13:47:49 bsam Exp $ +# $FreeBSD: ports/Mk/bsd.linux-apps.mk,v 1.22 2009/06/12 18:03:43 bsam Exp $ # # Please view me with 4 column tabs! @@ -24,7 +24,7 @@ # (components), covered here. # OVERRIDE_LINUX_NONBASE_PORTS # - This specifies a none-default linux infrastructure ports to use. -# Valid value is "f8" to use Linux Fedora 8 ports. +# Valid values are "f8" and "f10" to use Linux Fedora [8,10] ports. # This is an user-only variable. Don't use it in any port, # it's meant to be used in make.conf. @@ -43,8 +43,10 @@ . if (${LINUX_OSRELEASE} == "2.6.16") && defined(OVERRIDE_LINUX_NONBASE_PORTS) . if ${OVERRIDE_LINUX_NONBASE_PORTS} == "f8" LINUX_DIST_SUFFIX= -f8 +. elif ${OVERRIDE_LINUX_NONBASE_PORTS} == "f10" +LINUX_DIST_SUFFIX= -f10 . else -IGNORE= valid value for OVERRIDE_LINUX_NONBASE_PORTS is \"f8\" +IGNORE= valid values for OVERRIDE_LINUX_NONBASE_PORTS are \"f8\", \"f10\" . endif . else LINUX_DIST_SUFFIX= @@ -89,122 +91,147 @@ allegro_FILE= ${LINUXBASE}/usr/lib/liballeg-4.0.3.so allegro_f8_FILE= ${LINUXBASE}/usr/lib/liballeg-4.2.2.so +allegro_f10_FILE= ${LINUXBASE}/usr/lib/liballeg-4.2.2.so allegro_DETECT= ${allegro${LINUX_DIST_SUFFIX:S/-/_/}_FILE} allegro_PORT= ${PORTSDIR}/devel/linux${LINUX_DIST_SUFFIX}-allegro allegro_DEPENDS= xorglibs alsalib_FILE= ${LINUXBASE}/lib/libasound.so.2.0.0 alsalib_f8_FILE= ${alsalib_FILE} +alsalib_f10_FILE= ${LINUXBASE}/lib/libasound.so.2.0.0 alsalib_DETECT= ${alsalib${LINUX_DIST_SUFFIX:S/-/_/}_FILE} alsalib_PORT= ${PORTSDIR}/audio/linux${LINUX_DIST_SUFFIX}-alsa-lib arts_FILE= ${LINUXBASE}/usr/lib/libartsc.so.0 arts_f8_FILE= ${arts_FILE} +arts_f10_FILE= ${LINUXBASE}/usr/lib/libartsc.so.0 arts_DETECT= ${arts${LINUX_DIST_SUFFIX:S/-/_/}_FILE} arts_PORT= ${PORTSDIR}/audio/linux${LINUX_DIST_SUFFIX}-arts aspell_FILE= ${LINUXBASE}/usr/lib/libaspell.so.15.0.2 aspell_f8_FILE= ${LINUXBASE}/usr/lib/libaspell.so.15.1.4 +aspell_f10_FILE= ${LINUXBASE}/usr/lib/libaspell.so.15.1.4 aspell_DETECT= ${aspell${LINUX_DIST_SUFFIX:S/-/_/}_FILE} aspell_PORT= ${PORTSDIR}/textproc/linux${LINUX_DIST_SUFFIX}-aspell atk_FILE= ${LINUXBASE}/usr/lib/libatk-1.0.so.0.901.0 atk_f8_FILE= ${LINUXBASE}/usr/lib/libatk-1.0.so.0.2009.1 +atk_f10_FILE= ${LINUXBASE}/usr/lib/libatk-1.0.so.0.2409.1 atk_DETECT= ${atk${LINUX_DIST_SUFFIX:S/-/_/}_FILE} atk_PORT= ${PORTSDIR}/accessibility/linux${LINUX_DIST_SUFFIX}-atk cairo_FILE= ${LINUXBASE}/usr/lib/libcairo.so.2.2.3 cairo_f8_FILE= ${LINUXBASE}/usr/lib/libcairo.so.2.11.7 +cairo_f10_FILE= ${LINUXBASE}/usr/lib/libcairo.so.2.10800.0 cairo_DETECT= ${cairo${LINUX_DIST_SUFFIX:S/-/_/}_FILE} cairo_PORT= ${PORTSDIR}/graphics/linux${LINUX_DIST_SUFFIX}-cairo cairo_DEPENDS= fontconfig png xorglibs curl_FILE= ${LINUXBASE}/usr/lib/libcurl.so.3.0.0 curl_f8_FILE= ${LINUXBASE}/usr/lib/libcurl.so.4.1.0 +curl_f10_FILE= ${LINUXBASE}/usr/lib/libcurl.so.4.1.1 curl_DETECT= ${curl${LINUX_DIST_SUFFIX:S/-/_/}_FILE} curl_PORT= ${PORTSDIR}/ftp/linux${LINUX_DIST_SUFFIX}-curl dri_FILE= ${LINUXBASE}/usr/X11R6/lib/libGL.so.1 dri_f8_FILE= ${LINUXBASE}/usr/lib/libGL.so.1 +dri_f10_FILE= ${LINUXBASE}/usr/lib/libGL.so.1.2 dri_DETECT= ${dri${LINUX_DIST_SUFFIX:S/-/_/}_FILE} -. if ${LINUX_DIST_SUFFIX} == "-f8" -dri_PORT= ${PORTSDIR}/graphics/linux-f8-dri -.else +. if ${LINUX_DIST_SUFFIX} == "" dri_PORT= ${PORTSDIR}/graphics/linux_dri -.endif +. elif ${LINUX_DIST_SUFFIX} == "-f8" +dri_PORT= ${PORTSDIR}/graphics/linux${LINUX_DIST_SUFFIX}-dri +. else +dri_PORT= ${PORTSDIR}/graphics/linux-dri74 +. endif +dri_DEPENDS= xorglibs esound_FILE= ${LINUXBASE}/usr/lib/libesd.so.0.2.36 esound_f8_FILE= ${LINUXBASE}/usr/lib/libesd.so.0.2.38 +esound_f10_FILE= ${LINUXBASE}/usr/lib/libesd.so.0.2.39 esound_DETECT= ${esound${LINUX_DIST_SUFFIX:S/-/_/}_FILE} esound_PORT= ${PORTSDIR}/audio/linux${LINUX_DIST_SUFFIX}-esound esound_DEPENDS= libaudiofile expat_FILE= ${LINUXBASE}/usr/lib/libexpat.so.0 expat_f8_FILE= ${LINUXBASE}/lib/libexpat.so.1 +expat_f10_FILE= ${LINUXBASE}/lib/libexpat.so.1 expat_DETECT= ${expat${LINUX_DIST_SUFFIX:S/-/_/}_FILE} expat_PORT= ${PORTSDIR}/textproc/linux${LINUX_DIST_SUFFIX}-expat fontconfig_FILE= ${LINUXBASE}/usr/lib/libfontconfig.so.1 fontconfig_f8_FILE= ${LINUXBASE}/usr/lib/libfontconfig.so.1.2.0 +fontconfig_f10_FILE= ${LINUXBASE}/usr/lib/libfontconfig.so.1.3.0 fontconfig_DETECT= ${fontconfig${LINUX_DIST_SUFFIX:S/-/_/}_FILE} fontconfig_PORT= ${PORTSDIR}/x11-fonts/linux${LINUX_DIST_SUFFIX}-fontconfig fontconfig_DEPENDS= expat freealut_FILE= ${LINUXBASE}/usr/lib/libalut.so.0.1.0 freealut_f8_FILE= ${freealut_FILE} +freealut_f10_FILE= ${LINUXBASE}/usr/lib/libalut.so.0.1.0 freealut_DETECT= ${freealut${LINUX_DIST_SUFFIX:S/-/_/}_FILE} freealut_PORT= ${PORTSDIR}/audio/linux${LINUX_DIST_SUFFIX}-freealut freealut_DEPENDS= openal gdkpixbuf_FILE= ${LINUXBASE}/usr/lib/libgdk_pixbuf.so.2 gdkpixbuf_f8_FILE= ${gdkpixbuf_FILE} +gdkpixbuf_f10_FILE= ${LINUXBASE}/usr/lib/libgdk_pixbuf.so.2 gdkpixbuf_DETECT= ${gdkpixbuf${LINUX_DIST_SUFFIX:S/-/_/}_FILE} gdkpixbuf_PORT= ${PORTSDIR}/graphics/linux${LINUX_DIST_SUFFIX}-gdk-pixbuf gtk_FILE= ${LINUXBASE}/usr/lib/libgtk-1.2.so.0.9.1 gtk_f8_FILE= ${gtk_FILE} +gtk_f10_FILE= ${LINUXBASE}/usr/lib/libgtk-1.2.so.0.9.1 gtk_DETECT= ${gtk${LINUX_DIST_SUFFIX:S/-/_/}_FILE} gtk_PORT= ${PORTSDIR}/x11-toolkits/linux${LINUX_DIST_SUFFIX}-gtk gtk_DEPENDS= xorglibs gtk2_FILE= ${LINUXBASE}/usr/lib/libgtk-x11-2.0.so.0.600.10 gtk2_f8_FILE= ${LINUXBASE}/usr/lib/libgtk-x11-2.0.so.0.1200.8 +gtk2_f10_FILE= ${LINUXBASE}/usr/lib/libgtk-x11-2.0.so.0.1400.7 gtk2_DETECT= ${gtk2${LINUX_DIST_SUFFIX:S/-/_/}_FILE} gtk2_PORT= ${PORTSDIR}/x11-toolkits/linux${LINUX_DIST_SUFFIX}-gtk2 gtk2_DEPENDS= atk jpeg png pango tiff xorglibs hicontheme_FILE= ${LINUXBASE}/usr/share/icons/hicolor hicontheme_f8_FILE= ${hicontheme_FILE} +hicontheme_f10_FILE= ${LINUXBASE}/usr/share/icons/hicolor hicontheme_DETECT= ${hicontheme${LINUX_DIST_SUFFIX:S/-/_/}_FILE} hicontheme_PORT= ${PORTSDIR}/x11-themes/linux${LINUX_DIST_SUFFIX}-hicolor-icon-theme imlib_FILE= ${LINUXBASE}/usr/lib/libgdk_imlib.so.1.9.13 imlib_f8_FILE= ${LINUXBASE}/usr/lib/libgdk_imlib.so.1.9.15 +imlib_f10_FILE= ${LINUXBASE}/usr/lib/libgdk_imlib.so.1.9.15 imlib_DETECT= ${imlib${LINUX_DIST_SUFFIX:S/-/_/}_FILE} imlib_PORT= ${PORTSDIR}/graphics/linux${LINUX_DIST_SUFFIX}-imlib jpeg_FILE= ${LINUXBASE}/usr/lib/libjpeg.so.62.0.0 jpeg_f8_FILE= ${jpeg_FILE} +jpeg_f10_FILE= ${LINUXBASE}/usr/lib/libjpeg.so.62.0.0 jpeg_DETECT= ${jpeg${LINUX_DIST_SUFFIX:S/-/_/}_FILE} jpeg_PORT= ${PORTSDIR}/graphics/linux${LINUX_DIST_SUFFIX}-jpeg libaudiofile_FILE= ${LINUXBASE}/usr/lib/libaudiofile.so.0.0.2 libaudiofile_f8_FILE= ${libaudiofile_FILE} +libaudiofile_f10_FILE= ${LINUXBASE}/usr/lib/libaudiofile.so.0.0.2 libaudiofile_DETECT= ${libaudiofile${LINUX_DIST_SUFFIX:S/-/_/}_FILE} libaudiofile_PORT= ${PORTSDIR}/audio/linux${LINUX_DIST_SUFFIX}-libaudiofile libg2c_FILE= ${LINUXBASE}/usr/lib/libg2c.so.0.0.0 libg2c_f8_FILE= ${libg2c_FILE} +libg2c_f10_FILE= ${LINUXBASE}/usr/lib/libg2c.so.0.0.0 libg2c_DETECT= ${libg2c${LINUX_DIST_SUFFIX:S/-/_/}_FILE} libg2c_PORT= ${PORTSDIR}/lang/linux${LINUX_DIST_SUFFIX}-libg2c libglade_FILE= ${LINUXBASE}/usr/lib/libglade.so.0.4.2 libglade_f8_FILE= ${libglade_FILE} +libglade_f10_FILE= ${LINUXBASE}/usr/lib/libglade.so.0.4.2 libglade_DETECT= ${libglade${LINUX_DIST_SUFFIX:S/-/_/}_FILE} libglade_PORT= ${PORTSDIR}/devel/linux${LINUX_DIST_SUFFIX}-libglade libglade2_FILE= ${LINUXBASE}/usr/lib/libglade-2.0.so.0.0.7 libglade2_f8_FILE= ${libglade2_FILE} +libglade2_f10_FILE= ${LINUXBASE}/usr/lib/libglade-2.0.so.0.0.7 libglade2_DETECT= ${libglade2${LINUX_DIST_SUFFIX:S/-/_/}_FILE} libglade2_PORT= ${PORTSDIR}/devel/linux${LINUX_DIST_SUFFIX}-libglade2 @@ -213,179 +240,217 @@ libglu_DETECT= ${libglu${LINUX_DIST_SUFFIX:S/-/_/}_FILE} libglu_PORT= ${PORTSDIR}/graphics/linux${LINUX_DIST_SUFFIX}-libGLU -# no libidn_FILE +# no libidn_FILE (there is no libidn port for Fedora 4 distribution) libidn_f8_FILE= ${LINUXBASE}/usr/lib/libidn.so.11 +# no libidn_f10_FILE (libidn is integrated into linux_base-f10 port) libidn_DETECT= ${libidn${LINUX_DIST_SUFFIX:S/-/_/}_FILE} libidn_PORT= ${PORTSDIR}/dns/linux${LINUX_DIST_SUFFIX}-libidn libmng_FILE= ${LINUXBASE}/usr/lib/libmng.so.1.0.0 libmng_f8_FILE= ${libmng_FILE} +libmng_f10_FILE= ${LINUXBASE}/usr/lib/libmng.so.1.0.0 libmng_DETECT= ${libmng${LINUX_DIST_SUFFIX:S/-/_/}_FILE} libmng_PORT= ${PORTSDIR}/graphics/linux${LINUX_DIST_SUFFIX}-libmng libmng_DEPENDS= jpeg libogg_FILE= ${LINUXBASE}/usr/lib/libogg.so.0.5.2 libogg_f8_FILE= ${LINUXBASE}/usr/lib/libogg.so.0.5.3 +libogg_f10_FILE= ${LINUXBASE}/usr/lib/libogg.so.0.5.3 libogg_DETECT= ${libogg${LINUX_DIST_SUFFIX:S/-/_/}_FILE} libogg_PORT= ${PORTSDIR}/audio/linux${LINUX_DIST_SUFFIX}-libogg libsigcpp20_FILE= ${LINUXBASE}/usr/lib/libsigc-2.0.so.0 libsigcpp20_f8_FILE= ${libsigcpp20_FILE} +libsigcpp20_f10_FILE= ${LINUXBASE}/usr/lib/libsigc-2.0.so.0 libsigcpp20_DETECT= ${libsigcpp20${LINUX_DIST_SUFFIX:S/-/_/}_FILE} libsigcpp20_PORT= ${PORTSDIR}/devel/linux${LINUX_DIST_SUFFIX}-libsigc++20 # no libssh2_FILE libssh2_f8_FILE= ${LINUXBASE}/usr/lib/libssh2.so.1 +libssh2_f10_FILE= ${LINUXBASE}/usr/lib/libssh2.so.1 libssh2_DETECT= ${libssh2${LINUX_DIST_SUFFIX:S/-/_/}_FILE} libssh2_PORT= ${PORTSDIR}/security/linux${LINUX_DIST_SUFFIX}-libssh2 libssh2_DEPENDS= openssl libtheora_FILE= ${LINUXBASE}/usr/lib/libtheora.so.0.1.0 libtheora_f8_FILE= ${LINUXBASE}/usr/lib/libtheora.so.0.3.2 +libtheora_f10_FILE= ${LINUXBASE}/usr/lib/libtheora.so.0.3.3 libtheora_DETECT= ${libtheora${LINUX_DIST_SUFFIX:S/-/_/}_FILE} libtheora_PORT= ${PORTSDIR}/multimedia/linux${LINUX_DIST_SUFFIX}-libtheora libvorbis_FILE= ${LINUXBASE}/usr/lib/libvorbis.so.0.3.0 libvorbis_f8_FILE= ${LINUXBASE}/usr/lib/libvorbis.so.0.4.0 +libvorbis_f10_FILE= ${LINUXBASE}/usr/lib/libvorbis.so.0.4.0 libvorbis_DETECT= ${libvorbis${LINUX_DIST_SUFFIX:S/-/_/}_FILE} libvorbis_PORT= ${PORTSDIR}/audio/linux${LINUX_DIST_SUFFIX}-libvorbis libvorbis_DEPENDS= libogg libxml_FILE= ${LINUXBASE}/usr/lib/libxml.so.1.8.17 libxml_f8_FILE= ${libxml_FILE} +libxml_f10_FILE= ${LINUXBASE}/usr/lib/libxml.so.1.8.17 libxml_DETECT= ${libxml${LINUX_DIST_SUFFIX:S/-/_/}_FILE} libxml_PORT= ${PORTSDIR}/textproc/linux${LINUX_DIST_SUFFIX}-libxml libxml2_FILE= ${LINUXBASE}/usr/lib/libxml2.so.2.6.19 libxml2_f8_FILE= ${LINUXBASE}/usr/lib/libxml2.so.2.7.2 +libxml2_f10_FILE= ${LINUXBASE}/usr/lib/libxml2.so.2.7.3 libxml2_DETECT= ${libxml2${LINUX_DIST_SUFFIX:S/-/_/}_FILE} libxml2_PORT= ${PORTSDIR}/textproc/linux${LINUX_DIST_SUFFIX}-libxml2 mikmod_FILE= ${LINUXBASE}/usr/lib/libmikmod.so.2.0.4 mikmod_f8_FILE= ${mikmod_FILE} +mikmod_f10_FILE= ${LINUXBASE}/usr/lib/libmikmod.so.3.0.0 mikmod_DETECT= ${mikmod${LINUX_DIST_SUFFIX:S/-/_/}_FILE} mikmod_PORT= ${PORTSDIR}/audio/linux${LINUX_DIST_SUFFIX}-mikmod openmotif_FILE= ${LINUXBASE}/usr/X11R6/lib/libXm.so.3.0.3 openmotif_f8_FILE= ${LINUXBASE}/usr/lib/libXm.so.4.0.2 +openmotif_f10_FILE= ${LINUXBASE}/usr/X11R6/lib/libXm.so.3.0.3 openmotif_DETECT= ${openmotif${LINUX_DIST_SUFFIX:S/-/_/}_FILE} openmotif_PORT= ${PORTSDIR}/x11-toolkits/linux${LINUX_DIST_SUFFIX}-openmotif openmotif_DEPENDS= xorglibs # no nspr_FILE nspr_f8_FILE= ${LINUXBASE}/usr/lib/libnspr4.so +nspr_f10_FILE= ${LINUXBASE}/lib/libnspr4.so nspr_DETECT= ${nspr${LINUX_DIST_SUFFIX:S/-/_/}_FILE} nspr_PORT= ${PORTSDIR}/devel/linux${LINUX_DIST_SUFFIX}-nspr # no nss_FILE nss_f8_FILE= ${LINUXBASE}/usr/lib/libnss3.so +nss_f10_FILE= ${LINUXBASE}/lib/libnss3.so nss_DETECT= ${nss${LINUX_DIST_SUFFIX:S/-/_/}_FILE} nss_PORT= ${PORTSDIR}/security/linux${LINUX_DIST_SUFFIX}-nss nss_DEPENDS= nspr sqlite3 openal_FILE= ${LINUXBASE}/usr/lib/libopenal.so.0.0.0 openal_f8_FILE= ${openal_FILE} +openal_f10_FILE= ${LINUXBASE}/usr/lib/libopenal.so.0.0.0 openal_DETECT= ${openal${LINUX_DIST_SUFFIX:S/-/_/}_FILE} openal_PORT= ${PORTSDIR}/audio/linux${LINUX_DIST_SUFFIX}-openal openal_DEPENDS= alsalib arts esound libaudiofile libvorbis sdl12 openssl_FILE= ${LINUXBASE}/lib/libssl.so.0.9.7f openssl_f8_FILE= ${LINUXBASE}/lib/libssl.so.0.9.8b +openssl_f10_FILE= ${LINUXBASE}/lib/libssl.so.0.9.8g openssl_DETECT= ${openssl${LINUX_DIST_SUFFIX:S/-/_/}_FILE} openssl_PORT= ${PORTSDIR}/security/linux${LINUX_DIST_SUFFIX}-openssl pango_FILE= ${LINUXBASE}/usr/lib/libpango-1.0.so.0.1001.1 pango_f8_FILE= ${LINUXBASE}/usr/lib/libpango-1.0.so.0.1800.4 +pango_f10_FILE= ${LINUXBASE}/usr/lib/libpango-1.0.so.0.2203.0 pango_DETECT= ${pango${LINUX_DIST_SUFFIX:S/-/_/}_FILE} pango_PORT= ${PORTSDIR}/x11-toolkits/linux${LINUX_DIST_SUFFIX}-pango pango_DEPENDS= cairo expat fontconfig xorglibs png_FILE= ${LINUXBASE}/usr/lib/libpng.so.3.1.2.8 png_f8_FILE= ${LINUXBASE}/usr/lib/libpng.so.3.22.0 +png_f10_FILE= ${LINUXBASE}/usr/lib/libpng.so.3.35.0 png_DETECT= ${png${LINUX_DIST_SUFFIX:S/-/_/}_FILE} png_PORT= ${PORTSDIR}/graphics/linux${LINUX_DIST_SUFFIX}-png png10_FILE= ${LINUXBASE}/usr/lib/libpng.so.2.1.0.18 png10_f8_FILE= ${LINUXBASE}/usr/lib/libpng.so.2.1.0.30 +png10_f10_FILE= ${LINUXBASE}/usr/lib/libpng.so.2.1.0.43 png10_DETECT= ${png10${LINUX_DIST_SUFFIX:S/-/_/}_FILE} png10_PORT= ${PORTSDIR}/graphics/linux${LINUX_DIST_SUFFIX}-png10 qt33_FILE= ${LINUXBASE}/usr/lib/qt-3.3/lib/libqt-mt.so.3.3.4 qt33_f8_FILE= ${LINUXBASE}/usr/lib/qt-3.3/lib/libqt-mt.so.3.3.8 +qt33_f10_FILE= ${LINUXBASE}/usr/lib/qt-3.3/lib/libqt-mt.so.3.3.8 qt33_DETECT= ${qt33${LINUX_DIST_SUFFIX:S/-/_/}_FILE} qt33_PORT= ${PORTSDIR}/x11-toolkits/linux${LINUX_DIST_SUFFIX}-qt33 qt33_DEPENDS= fontconfig libmng png sdl12_FILE= ${LINUXBASE}/usr/lib/libSDL-1.2.so.0.7.3 sdl12_f8_FILE= ${LINUXBASE}/usr/lib/libSDL-1.2.so.0.11.2 +sdl12_f10_FILE= ${LINUXBASE}/usr/lib/libSDL-1.2.so.0.11.2 sdl12_DETECT= ${sdl12${LINUX_DIST_SUFFIX:S/-/_/}_FILE} sdl12_PORT= ${PORTSDIR}/devel/linux${LINUX_DIST_SUFFIX}-sdl12 sdl12_DEPENDS= xorglibs sdlimage_FILE= ${LINUXBASE}/usr/lib/libSDL_image-1.2.so.0.1.4 sdlimage_f8_FILE= ${LINUXBASE}/usr/lib/libSDL_image-1.2.so.0.1.5 +sdlimage_f10_FILE= ${LINUXBASE}/usr/lib/libSDL_image-1.2.so.0.1.5 sdlimage_DETECT= ${sdlimage${LINUX_DIST_SUFFIX:S/-/_/}_FILE} sdlimage_PORT= ${PORTSDIR}/graphics/linux${LINUX_DIST_SUFFIX}-sdl_image +. if ${LINUX_DIST_SUFFIX} == "" sdlimage_DEPENDS= sdl12 +. else +sdlimage_DEPENDS= jpeg png sdl12 tiff +. endif sdlmixer_FILE= ${LINUXBASE}/usr/lib/libSDL_mixer-1.2.so.0.2.4 sdlmixer_f8_FILE= ${LINUXBASE}/usr/lib/libSDL_mixer-1.2.so.0.2.6 +sdlmixer_f10_FILE= ${LINUXBASE}/usr/lib/libSDL_mixer-1.2.so.0.2.6 sdlmixer_DETECT= ${sdlmixer${LINUX_DIST_SUFFIX:S/-/_/}_FILE} sdlmixer_PORT= ${PORTSDIR}/audio/linux${LINUX_DIST_SUFFIX}-sdl_mixer sdlmixer_DEPENDS= sdl12 scimgtk_FILE= ${LINUXBASE}/usr/lib/gtk-2.0/immodules/im-scim.so scimgtk_f8_FILE= ${scimgtk_FILE} +scimgtk_f10_FILE= ${LINUXBASE}/usr/lib/gtk-2.0/immodules/im-scim.so scimgtk_DETECT= ${scimgtk${LINUX_DIST_SUFFIX:S/-/_/}_FILE} scimgtk_PORT= ${PORTSDIR}/textproc/linux${LINUX_DIST_SUFFIX}-scim-gtk scimgtk_DEPENDS= gtk2 scimlibs scimlibs_FILE= ${LINUXBASE}/usr/lib/libscim-1.0.so.8 scimlibs_f8_FILE= ${LINUXBASE}/usr/lib/libscim-1.0.so.8 +scimlibs_f10_FILE= ${LINUXBASE}/usr/lib/libscim-1.0.so.8 scimlibs_DETECT= ${scimlibs${LINUX_DIST_SUFFIX:S/-/_/}_FILE} scimlibs_PORT= ${PORTSDIR}/textproc/linux${LINUX_DIST_SUFFIX}-scim-libs scimlibs_DEPENDS= gtk2 # no sqlite3_FILE sqlite3_f8_FILE= ${LINUXBASE}/usr/lib/libsqlite3.so.0 +sqlite3_f10_FILE= ${LINUXBASE}/usr/lib/libsqlite3.so.0 sqlite3_DETECT= ${sqlite3${LINUX_DIST_SUFFIX:S/-/_/}_FILE} sqlite3_PORT= ${PORTSDIR}/databases/linux${LINUX_DIST_SUFFIX}-sqlite3 # no tcl84_FILE tcl84_f8_FILE= ${LINUXBASE}/usr/lib/tcl8.4 +# XXX: tcl85!!! +tcl84_f10_FILE= ${LINUXBASE}/usr/lib/libtcl8.5.so tcl84_DETECT= ${tcl84${LINUX_DIST_SUFFIX:S/-/_/}_FILE} tcl84_PORT= ${PORTSDIR}/lang/linux${LINUX_DIST_SUFFIX}-tcl84 tiff_FILE= ${LINUXBASE}/usr/lib/libtiff.so.3.7.1 tiff_f8_FILE= ${LINUXBASE}/usr/lib/libtiff.so.3.8.2 +tiff_f10_FILE= ${LINUXBASE}/usr/lib/libtiff.so.3.8.2 tiff_DETECT= ${tiff${LINUX_DIST_SUFFIX:S/-/_/}_FILE} tiff_PORT= ${PORTSDIR}/graphics/linux${LINUX_DIST_SUFFIX}-tiff tiff_DEPENDS= jpeg # no tk84_FILE tk84_f8_FILE= ${LINUXBASE}/usr/lib/libtk8.4.so +# XXX: tk85!!! +tk84_f10_FILE= ${LINUXBASE}/usr/lib/libtk8.5.so tk84_DETECT= ${tk84${LINUX_DIST_SUFFIX:S/-/_/}_FILE} tk84_PORT= ${PORTSDIR}/x11-toolkits/linux${LINUX_DIST_SUFFIX}-tk84 tk84_DEPENDS= xorglibs xorglibs_FILE= ${LINUXBASE}/usr/X11R6/lib/libXrandr.so.2.0 xorglibs_f8_FILE= ${LINUXBASE}/usr/lib/libXrandr.so.2.1.0 +xorglibs_f10_FILE= ${LINUXBASE}/usr/lib/libXrandr.so.2.1.0 xorglibs_DETECT= ${xorglibs${LINUX_DIST_SUFFIX:S/-/_/}_FILE} xorglibs_PORT= ${PORTSDIR}/x11/linux${LINUX_DIST_SUFFIX}-xorg-libs xorglibs_DEPENDS= fontconfig ucl_FILE= ${LINUXBASE}/usr/lib/libucl.so.1 ucl_f8_FILE= ${ucl_FILE} +ucl_f10_FILE= ${LINUXBASE}/usr/lib/libucl.so.1 ucl_DETECT= ${ucl${LINUX_DIST_SUFFIX:S/-/_/}_FILE} ucl_PORT= ${PORTSDIR}/archivers/linux${LINUX_DIST_SUFFIX}-ucl ungif_FILE= ${LINUXBASE}/usr/lib/libgif.so.4.1.3 ungif_f8_FILE= ${ungif_FILE} +ungif_f10_FILE= ${LINUXBASE}/usr/lib/libgif.so.4.1.3 ungif_DETECT= ${ungif${LINUX_DIST_SUFFIX:S/-/_/}_FILE} ungif_PORT= ${PORTSDIR}/graphics/linux${LINUX_DIST_SUFFIX}-ungif upx_FILE= ${LINUXBASE}/usr/bin/upx upx_f8_FILE= ${upx_FILE} +upx_f10_FILE= ${LINUXBASE}/usr/bin/upx upx_DETECT= ${upx${LINUX_DIST_SUFFIX:S/-/_/}_FILE} upx_PORT= ${PORTSDIR}/archivers/linux${LINUX_DIST_SUFFIX}-upx upx_DEPENDS= ucl @@ -393,6 +458,7 @@ # use the same wabauth for now webauth_FILE= ${LOCALBASE}/bin/linux-nvu webauth_f8_FILE= ${webauth_FILE} +webauth_f10_FILE= ${LOCALBASE}/bin/linux-nvu webauth_DETECT= ${webauth${LINUX_DIST_SUFFIX:S/-/_/}_FILE} webauth_PORT= ${PORTSDIR}/www/linux-${WEB_AUTH} webauth_DEPENDS= gtk2 atk pango fontconfig ==== //depot/projects/soc2008/alepulver-portslicense/ports/Mk/bsd.linux-rpm.mk#4 (text+ko) ==== @@ -1,7 +1,7 @@ #-*- mode: Makefile; tab-width: 4; -*- # ex:ts=4 # -# $FreeBSD: ports/Mk/bsd.linux-rpm.mk,v 1.18 2009/04/09 10:35:10 bsam Exp $ +# $FreeBSD: ports/Mk/bsd.linux-rpm.mk,v 1.19 2009/06/01 17:26:07 bsam Exp $ # # Variables: @@ -67,13 +67,13 @@ # linux Fedora 8 infrastructure ports should be used with compat.linux.osrelease=2.6.16, # linux_base-f8 (or greater) port -. if ${LINUX_DIST_VER} == 8 +. if ${LINUX_DIST_VER} == 8 || ${LINUX_DIST_VER} == 10 # let's check for apropriate compat.linux.osrelease . if (${LINUX_OSRELEASE} != "2.6.16") IGNORE= bsd.linux-rpm.mk test failed: the port should be used with compat.linux.osrelease=2.6.16, which is supported at 8-CURRENT and has a limitted support at 7-STABLE . endif # let's check if an apropriate linux base port is used -. if ${USE_LINUX} != f8 && ${USE_LINUX} != f9 +. if ${USE_LINUX} != f8 && ${USE_LINUX} != f9 && ${USE_LINUX} != f10 IGNORE= bsd.linux-rpm.mk test failed: the port should be used with at least linux_base-f8, please read /usr/ports/UPDATING . endif # let's check if OVERRIDE_LINUX_NONBASE_PORTS is defined @@ -95,6 +95,11 @@ ../updates/${LINUX_DIST_VER}/${LINUX_RPM_ARCH}.newkey MASTER_SITE_SRC_SUBDIR?= ../releases/${LINUX_DIST_VER}/Everything/source/SRPMS \ ../updates/${LINUX_DIST_VER}/SRPMS.newkey +. elif ${LINUX_DIST_VER} == 10 +MASTER_SITE_SUBDIR?= ../releases/${LINUX_DIST_VER}/Everything/${LINUX_RPM_ARCH}/os/Packages \ + ../updates/${LINUX_DIST_VER}/${LINUX_RPM_ARCH} +MASTER_SITE_SRC_SUBDIR?= ../releases/${LINUX_DIST_VER}/Everything/source/SRPMS \ + ../updates/${LINUX_DIST_VER}/SRPMS . else MASTER_SITE_SUBDIR?= ${LINUX_DIST_VER}/${LINUX_RPM_ARCH}/os/Fedora/RPMS \ updates/${LINUX_DIST_VER}/${LINUX_RPM_ARCH} @@ -161,9 +166,11 @@ _LINUX_BASE_SUFFIX= f8 . elif ${USE_LINUX} == "f9" _LINUX_BASE_SUFFIX= f9 +. elif ${USE_LINUX} == "f10" +_LINUX_BASE_SUFFIX= f10 . else # other linux_base ports do not provide a pkg-plist file -IGNORE= uses AUTOMATIC_PLIST with an unsupported USE_LINUX, \"${USE_LINUX}\". Supported values are \"yes\", \"fc4\", \"fc6\", \"f7\", \"f8\" and \"f9\" +IGNORE= uses AUTOMATIC_PLIST with an unsupported USE_LINUX, \"${USE_LINUX}\". Supported values are \"yes\", \"fc4\", \"fc6\", \"f7\", \"f8\", \"f9\" and \"f10\" . endif PLIST?= ${WRKDIR}/.PLIST.linux-rpm ==== //depot/projects/soc2008/alepulver-portslicense/ports/Mk/bsd.perl.mk#3 (text+ko) ==== @@ -1,7 +1,7 @@ #-*- mode: makefile; tab-width: 4; -*- # ex:ts=4 # -# $FreeBSD: ports/Mk/bsd.perl.mk,v 1.13 2009/03/28 20:45:06 skv Exp $ +# $FreeBSD: ports/Mk/bsd.perl.mk,v 1.14 2009/06/08 14:56:31 skv Exp $ # # bsd.perl.mk - Support for Perl-based ports. # @@ -19,8 +19,8 @@ # PERL_VERSION - Full version of perl5 (see below for current value). # PERL_LEVEL - Perl version as an integer of the form MNNNPP, where # M is major version, N is minor version, and P is -# the patch level. E.g., PERL_VERSION=5.6.1 would give -# a PERL_LEVEL of 500601. This can be used in comparisons +# the patch level. E.g., PERL_VERSION=5.8.1 would give +# a PERL_LEVEL of 500801. This can be used in comparisons # to determine if the version of perl is high enough, # whether a particular dependency is needed, etc. # PERL_ARCH - Directory name of architecture dependent libraries @@ -47,7 +47,7 @@ # # Examples: # USE_PERL5= yes # port requires any version of Perl5 to build. -# USE_PERL5= 5.6.0+ # port requires at least Perl 5.6.0 to build. +# USE_PERL5= 5.8.0+ # port requires at least Perl 5.8.0 to build. # USE_PERL5= 5.8.2 # port is only usable with Perl 5.8.2. # USE_PERL5= 5.8.6- # port is only usbale with Perl 5.8.6 or prior. # @@ -101,10 +101,8 @@ .if ${PERL_LEVEL} >= 501000 PERL_PORT?= perl5.10 -.elif ${PERL_LEVEL} >= 500800 +.else # ${PERL_LEVEL} < 501000 PERL_PORT?= perl5.8 -.else # ${PERL_LEVEL} < 500800 -PERL_PORT?= perl5.6 .endif SITE_PERL_REL?= lib/perl5/site_perl/${PERL_VERSION} ==== //depot/projects/soc2008/alepulver-portslicense/ports/Mk/bsd.port.mk#5 (text+ko) ==== @@ -1,7 +1,7 @@ #-*- mode: makefile; tab-width: 4; -*- # ex:ts=4 # -# $FreeBSD: ports/Mk/bsd.port.mk,v 1.619 2009/05/22 21:57:33 acm Exp $ +# $FreeBSD: ports/Mk/bsd.port.mk,v 1.623 2009/06/11 09:09:29 erwin Exp $ # $NetBSD: $ # # bsd.port.mk - 940820 Jordan K. Hubbard. @@ -308,6 +308,7 @@ # the regular expression. # USE_GCC - If set, this port requires this version of gcc, either in # the system or installed from a port. +# USE_CSTD - Override the default C language standard (gnu89, gnu99) # USE_GMAKE - If set, this port uses gmake. # GMAKE - Set to path of GNU make if not in $PATH. # Default: gmake @@ -329,8 +330,8 @@ # PERL_VERSION - Full version of perl5 (see below for current value). # PERL_LEVEL - Perl version as an integer of the form MNNNPP, where # M is major version, N is minor version, and P is -# the patch level. E.g., PERL_VERSION=5.6.1 would give -# a PERL_LEVEL of 500601. This can be used in comparisons +# the patch level. E.g., PERL_VERSION=5.8.1 would give +# a PERL_LEVEL of 500801. This can be used in comparisons # to determine if the version of perl is high enough, # whether a particular dependency is needed, etc. # PERL_ARCH - Directory name of architecture dependent libraries @@ -367,10 +368,9 @@ # new features: 'build', 'run', 'both', implying build, # runtime, and both build/run dependencies ## -# USE_IMAKE - If set, this port uses imake. Implies USE_X_PREFIX. +# USE_IMAKE - If set, this port uses imake. # XMKMF - Set to path of `xmkmf' if not in $PATH # Default: xmkmf -a -# USE_X_PREFIX - If set, this port installs in ${X11BASE}. Implies USE_XLIB. # USE_XLIB - If set, this port uses the X libraries. In the USE_LINUX # case the linux X libraries are referenced. # USE_DISPLAY - If set, this ports requires a (virtual) X11 environment @@ -551,8 +551,7 @@ # LINUXBASE - Where Linux ports install things. # Default: /compat/linux # PREFIX - Where *this* port installs its files. -# Default: ${X11BASE} if USE_X_PREFIX is set, -# ${LINUXBASE} if USE_LINUX_PREFIX is set, +# Default: ${LINUXBASE} if USE_LINUX_PREFIX is set, # otherwise ${LOCALBASE} # # IGNORE_PATH_CHECKS @@ -1310,6 +1309,19 @@ DOS2UNIX_REGEX?= .* +# At least KDE needs TMPDIR for the package building, +# so we're setting it to the known default value. +.if defined(PACKAGE_BUILDING) +TMPDIR?= /tmp +.endif # defined(PACKAGE_BUILDING) + +# Respect TMPDIR passed via make.conf or similar and pass it down +# to configure and make. +.if defined(TMPDIR) +MAKE_ENV+= TMPDIR="${TMPDIR}" +CONFIGURE_ENV+= TMPDIR="${TMPDIR}" +.endif # defined(TMPDIR) + # Start of pre-makefile section. .if !defined(AFTERPORTMK) && !defined(INOPTIONSMK) @@ -1395,18 +1407,7 @@ SCRIPTDIR?= ${MASTERDIR}/scripts PKGDIR?= ${MASTERDIR} -.if defined(USE_IMAKE) && !defined(USE_X_PREFIX) && !defined(USE_XORG) -USE_X_PREFIX= yes -.endif -.if defined(USE_X_PREFIX) && ${USE_X_PREFIX} == "no" -.undef USE_X_PREFIX -.endif -.if defined(USE_X_PREFIX) -USE_XLIB= yes -.endif -.if defined(USE_X_PREFIX) -PREFIX?= ${X11BASE} -.elif defined(USE_LINUX_PREFIX) +.if defined(USE_LINUX_PREFIX) PREFIX?= ${LINUXBASE} NO_MTREE= yes .else @@ -1451,10 +1452,8 @@ .if ${PERL_LEVEL} >= 501000 PERL_PORT?= perl5.10 -.elif ${PERL_LEVEL} >= 500800 +.else PERL_PORT?= perl5.8 -.else -PERL_PORT?= perl5.6 .endif SITE_PERL_REL?= lib/perl5/site_perl/${PERL_VERSION} @@ -2180,16 +2179,17 @@ .endif .endif +.if defined(USE_CSTD) +CFLAGS:= ${CFLAGS:N-std=*} -std=${USE_CSTD} +.endif + # Multiple make jobs support .if defined(DISABLE_MAKE_JOBS) || defined(MAKE_JOBS_UNSAFE) _MAKE_JOBS= # .else .if defined(MAKE_JOBS_SAFE) || defined(FORCE_MAKE_JOBS) -.if defined(MAKE_JOBS_NUMBER) +MAKE_JOBS_NUMBER?= `${SYSCTL} -n kern.smp.cpus` _MAKE_JOBS= -j${MAKE_JOBS_NUMBER} -.else -_MAKE_JOBS= -j`${SYSCTL} -n kern.smp.cpus` -.endif .if defined(FORCE_MAKE_JOBS) BUILD_FAIL_MESSAGE+= "You have chosen to use multiple make jobs (parallelization) for all ports. This port was not tested for this setting. Please remove FORCE_MAKE_JOBS and retry the build before reporting the failure to the maintainer." .endif ==== //depot/projects/soc2008/alepulver-portslicense/ports/Mk/bsd.python.mk#4 (text+ko) ==== @@ -1,7 +1,7 @@ # -*- mode: Makefile; tab-width: 4; -*- # ex: ts=4 # -# $FreeBSD: ports/Mk/bsd.python.mk,v 1.112 2009/03/24 09:30:21 pav Exp $ +# $FreeBSD: ports/Mk/bsd.python.mk,v 1.113 2009/06/08 22:30:45 miwi Exp $ # .if !defined(_POSTMKINCLUDED) && !defined(Python_Pre_Include) @@ -83,9 +83,9 @@ # # PYTHON_DEFAULT_VERSION # - Version of the default python binary in your ${PATH}, in -# the format "python2.5". Set this in your /etc/make.conf +# the format "python2.6". Set this in your /etc/make.conf # in case you want to use an older version as a default. -# default: python2.5 +# default: python2.6 # # PYTHON_WRKSRC - The ${WRKSRC} for your python version. Needed for # extensions like Tkinter, py-gdbm and py-expat, which @@ -213,8 +213,8 @@ # specific version of zope. # -_PYTHON_PORTBRANCH= 2.5 -_PYTHON_ALLBRANCHES= 2.5 2.6 2.4 2.3 3.0 # preferred first +_PYTHON_PORTBRANCH= 2.6 +_PYTHON_ALLBRANCHES= 2.6 2.5 2.4 2.3 3.0 # preferred first _ZOPE_PORTBRANCH= 2.7 _ZOPE_ALLBRANCHES= 2.7 2.8 2.9 2.10 3.2 @@ -379,9 +379,9 @@ # Python-2.6 .elif ${PYTHON_VERSION} == "python2.6" -PYTHON_PORTVERSION?=2.6.1 +PYTHON_PORTVERSION?=2.6.2 PYTHON_PORTSDIR= ${PORTSDIR}/lang/python26 -PYTHON_REL= 261 +PYTHON_REL= 262 PYTHON_SUFFIX= 26 PYTHON_VER= 2.6 @@ -425,8 +425,8 @@ @${ECHO} "Legal values are:" @${ECHO} " python2.3" @${ECHO} " python2.4" - @${ECHO} " python2.5 (default)" - @${ECHO} " python2.6" + @${ECHO} " python2.5" + @${ECHO} " python2.6 (default)" @${ECHO} " python3.0" @${FALSE} .endif ==== //depot/projects/soc2008/alepulver-portslicense/ports/Mk/bsd.ruby.mk#5 (text+ko) ==== @@ -3,7 +3,7 @@ # # Created by: Akinori MUSHA # -# $FreeBSD: ports/Mk/bsd.ruby.mk,v 1.179 2009/02/23 00:44:22 stas Exp $ +# $FreeBSD: ports/Mk/bsd.ruby.mk,v 1.182 2009/06/12 22:44:56 stas Exp $ # .if !defined(Ruby_Include) @@ -172,7 +172,7 @@ RUBY_RELVERSION= 1.8.7 RUBY_PORTREVISION= 1 RUBY_PORTEPOCH= 1 -RUBY_PATCHLEVEL= 72 +RUBY_PATCHLEVEL= 160 . if ${RUBY_PATCHLEVEL} == 0 RUBY_VERSION?= ${RUBY_RELVERSION} @@ -198,9 +198,9 @@ # Ruby 1.9 # RUBY_RELVERSION= 1.9.1 -RUBY_PORTREVISION= 1 +RUBY_PORTREVISION= 0 RUBY_PORTEPOCH= 1 -RUBY_PATCHLEVEL= 0 +RUBY_PATCHLEVEL= 129 RUBY_VERSION?= ${RUBY_RELVERSION}.${RUBY_PATCHLEVEL} RUBY_DISTVERSION?= ${RUBY_RELVERSION}-p${RUBY_PATCHLEVEL} ==== //depot/projects/soc2008/alepulver-portslicense/ports/Mk/bsd.sites.mk#5 (text+ko) ==== @@ -20,7 +20,7 @@ # # Note: all entries should terminate with a slash. # -# $FreeBSD: ports/Mk/bsd.sites.mk,v 1.474 2009/04/10 08:18:57 itetcu Exp $ +# $FreeBSD: ports/Mk/bsd.sites.mk,v 1.476 2009/06/10 16:08:34 amdmi3 Exp $ # # Where to put distfiles that don't have any other master site @@ -1165,7 +1165,7 @@ .endif .if !defined(IGNORE_MASTER_SITE_SOURCEFORGE) -.for mirror in garr superb-east nchc kent easynews ufpr mesh heanet +.for mirror in superb-east nchc kent easynews ufpr mesh heanet # garr MASTER_SITE_SOURCEFORGE+= \ http://${mirror}.dl.sourceforge.net/sourceforge/%SUBDIR%/ .endfor @@ -1472,6 +1472,18 @@ ftp://ftp.x.org/pub/%SUBDIR%/ .endif +.if !defined(IGNORE_MASTER_SITE_KERNEL_ORG) +MASTER_SITE_KERNEL_ORG+= \ + http://kernel.org/pub/%SUBDIR%/ \ + http://www.us.kernel.org/pub/%SUBDIR%/ \ + http://www.uk.kernel.org/pub/%SUBDIR%/ \ + http://www.no.kernel.org/pub/%SUBDIR%/ \ + http://www.de.kernel.org/pub/%SUBDIR%/ \ + http://www.it.kernel.org/pub/%SUBDIR%/ \ + http://www.ru.kernel.org/pub/%SUBDIR%/ \ + http://www.au.kernel.org/pub/%SUBDIR%/ +.endif + # Macro magic MASTER_SITES_ABBREVS= CPAN:PERL_CPAN SF:SOURCEFORGE SFE:SOURCEFORGE_EXTENDED \ From owner-p4-projects@FreeBSD.ORG Sat Jun 13 06:48:14 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 172291065675; Sat, 13 Jun 2009 06:48:14 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id CB3A2106566B for ; Sat, 13 Jun 2009 06:48:13 +0000 (UTC) (envelope-from alepulver@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 9EC528FC19 for ; Sat, 13 Jun 2009 06:48:13 +0000 (UTC) (envelope-from alepulver@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n5D6mDQd040429 for ; Sat, 13 Jun 2009 06:48:13 GMT (envelope-from alepulver@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n5D6mD4R040427 for perforce@freebsd.org; Sat, 13 Jun 2009 06:48:13 GMT (envelope-from alepulver@freebsd.org) Date: Sat, 13 Jun 2009 06:48:13 GMT Message-Id: <200906130648.n5D6mD4R040427@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to alepulver@freebsd.org using -f From: Alejandro Pulver To: Perforce Change Reviews Cc: Subject: PERFORCE change 164240 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 13 Jun 2009 06:48:15 -0000 http://perforce.freebsd.org/chv.cgi?CH=164240 Change 164240 by alepulver@alepulver_deimos on 2009/06/13 06:47:26 - Move README outside ports/Mk. - Add summary of current LICENSE fields in pkg-descr. Affected files ... .. //depot/projects/soc2008/alepulver-portslicense/README#1 branch .. //depot/projects/soc2008/alepulver-portslicense/pkg-descr_license_info.txt#1 add .. //depot/projects/soc2008/alepulver-portslicense/ports/Mk/README#7 delete Differences ... From owner-p4-projects@FreeBSD.ORG Sat Jun 13 07:24:51 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 00846106566B; Sat, 13 Jun 2009 07:24:51 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id AE99D1065670 for ; Sat, 13 Jun 2009 07:24:50 +0000 (UTC) (envelope-from dforsyth@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 9B0088FC08 for ; Sat, 13 Jun 2009 07:24:50 +0000 (UTC) (envelope-from dforsyth@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n5D7OovB050587 for ; Sat, 13 Jun 2009 07:24:50 GMT (envelope-from dforsyth@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n5D7Oohc050585 for perforce@freebsd.org; Sat, 13 Jun 2009 07:24:50 GMT (envelope-from dforsyth@FreeBSD.org) Date: Sat, 13 Jun 2009 07:24:50 GMT Message-Id: <200906130724.n5D7Oohc050585@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to dforsyth@FreeBSD.org using -f From: David Forsythe To: Perforce Change Reviews Cc: Subject: PERFORCE change 164241 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 13 Jun 2009 07:24:52 -0000 http://perforce.freebsd.org/chv.cgi?CH=164241 Change 164241 by dforsyth@squirrel on 2009/06/13 07:24:24 More changes to db access scheme. Affected files ... .. //depot/projects/soc2009/dforsyth_libpkg/libpkg/pkg.c#15 edit .. //depot/projects/soc2009/dforsyth_libpkg/libpkg/pkg.h#15 edit .. //depot/projects/soc2009/dforsyth_libpkg/libpkg/pkgdb_hierdb.c#3 edit .. //depot/projects/soc2009/dforsyth_libpkg/libpkg/pkgdb_hierdb.h#3 edit .. //depot/projects/soc2009/dforsyth_libpkg/libpkg/pkgdb_hierdb_pkgdb_sub.c#4 edit .. //depot/projects/soc2009/dforsyth_libpkg/libpkg/pkgdb_hierdb_pkgdb_sub.h#2 edit .. //depot/projects/soc2009/dforsyth_libpkg/pkg_info/main.c#9 edit Differences ... ==== //depot/projects/soc2009/dforsyth_libpkg/libpkg/pkg.c#15 (text+ko) ==== @@ -12,16 +12,11 @@ struct pkg { char *ident; /* User given name for this pkg. */ - char *comment_text; - char *contents_text; - char *desc_text; - char *display_text; - char *mtree_dirs_text; - char *required_by_text; - + struct pkg_plist plist; + struct pkgdb_sub sub; - TAILQ_ENTRY(pkg) next; + /* TAILQ_ENTRY(pkg) next; */ short dirty; /* Add an owner field? */ }; @@ -37,31 +32,6 @@ return (p); } -#if 0 -struct pkg * -pkg_new(const char *ident) -{ - struct pkg *p; - char *new_ident; - - if (ident == NULL) - return (NULL); - - p = calloc(1, sizeof(*p)); - new_ident = strdup(ident); - if (p == NULL || new_ident == NULL) { - free(new_ident); - free(p); - return (NULL); - } - p->ident = new_ident; - p->comment = NULL; - p->plist = NULL; - - return (p); -} -#endif - /* TODO: Can't copy string for some _set_ functions and then just point to * the passed pkg_plist for _set_pkg_plist. */ @@ -143,6 +113,23 @@ return (pf); } +void +pkg_reset(struct pkg *p) +{ + if (p == NULL) + arg_rage_quit(__func__, "Not a valid package.", RAGE_AT_CLIENT); + + pkg_plist_free(p->plist); + p->ident = NULL; + p->comment_text = NULL; + p->contents_text = NULL; + p->desc_text = NULL; + p->display_text = NULL; + p->mtree_text = NULL; + p->required_by = NULL; + p->plist = NULL; +} + /* TODO: Make an note in the manual for libpkg that pkg_free should not be * called on pkgs that are not explicitly created by the client. */ @@ -150,8 +137,8 @@ pkg_free(struct pkg *p) { if (p == NULL) - return; + arg_rage_quit(__func__, "Not a valid package.", RAGE_AT_CLIENT); - free(p->ident); + pkg_reset(p); free(p); } ==== //depot/projects/soc2009/dforsyth_libpkg/libpkg/pkg.h#15 (text+ko) ==== @@ -2,15 +2,18 @@ #define __PKG_H__ /* When I get more than one, I'll plop it into an enum type. */ -#define HIERDB 0 +#define HIER_DB 0 /* TODO: Error codes. */ +#define RAGE_AT_CLIENT 0x00000001 +#define RAGE_AT_LIBPKG 0x00000002 + /* pkg_file */ struct pkg_file; -struct pkg_file *pkg_file_new(); +struct pkg_file *pkg_file_new(void); const char *pkg_file_path(struct pkg_file *pf); @@ -80,15 +83,15 @@ struct pkgdb; -struct pkgdb *pkgdb_new(); /* Should eventually take a type argument. */ +struct pkgdb *pkgdb_new(int type); -int pkgdb *pkgdb_db_open(struct pkgdb *db, const char *db_root); +int pkgdb_db_open(struct pkgdb *db, const char *db_root); -int pkgdb *pkgdb_db_init(struct pkgdb *db); +int pkgdb_db_init(struct pkgdb *db); -int pkgdb *pkgdb_db_close(struct pkgdb *db); +int pkgdb_db_close(struct pkgdb *db); -int pkgdb_pkg_next(struct pkgdb *db, struct pkg *p); +struct pkg *pkgdb_pkg_next(struct pkgdb *db); int pkgdb_pkg_get(struct pkgdb *db, struct pkg *p, const char *ident); ==== //depot/projects/soc2009/dforsyth_libpkg/libpkg/pkgdb_hierdb.c#3 (text+ko) ==== @@ -4,51 +4,53 @@ #include "pkg_util.h" #include "pkg.h" -#include "pkgdb_hierdb_sub.h" +#include "pkgdb.h" #include "pkgdb_hierdb.h" -#include "pkgdb.h" +#include "pkgdb_hierdb_pkgdb_sub.h" int pkgdb_hierdb_db_open(struct pkgdb *db, const char *db_root) { int s; struct stat sb; - char *new_db_root; #if 0 if (!VALID_DB(db))a #endif + if (db == NULL) arg_rage_quit(__func__, "Not a valid database.", RAGE_AT_CLIENT); if (db_root == NULL) arg_rage_quit(__func__, "Not a valid root directory for database.", RAGE_AT_CLIENT); + + if (db->open) + return (DB_IS_OPEN); s = lstat(&sb); if (s < 0 || !S_ISDIR(sb.st_mode) || S_ISLINK(sb.st_mode)) - return (DB_BAD_ROOT); + return (DB_INVALID_ROOT); - new_db_root = path_strdup(db_root); - if (new_db_root == NULL) + db->db_root = strdup(db_root); + if (db->db_root == NULL) return (DB_MEMORY_ERR); - db->db_root = new_db_root; db->dirty = 1; - db->dbs_curr = NULL; - db->ent_count = 0; + db->open = 1; + db->sub_curr = NULL; + db->sub_count = 0; + - db->pkgdb_db_init = &pkgdb_hierdb_db_init; - return (DB_OK); } int -pkgdb_hier_db_init(struct pkgdb *db) +pkgdb_hierdb_db_init(struct pkgdb *db) { int i; int c; int cnt; int status; - struct pkgdb_sub *dbs; + struct pkgdb_sub *sub; struct dirent **ents; #if 0 if (!VALID_DB(db)) @@ -63,8 +65,8 @@ return (DB_NO_READ | DB_MEMORY_ERR); for (i = 0, cnt = 0; i < c; ++i) { - dbs = pkgdb_sub_new(); - status = pkgdb_read_pkgdb_sub(db, dbs, ents[i]->d_name); + sub = pkgdb_sub_new(); + status = pkgdb_hierdb_read_pkgdb_sub(db, sub, ents[i]->d_name); if (SUB_MEMORY_ERR & status) { /* Ruh roh Shaggy! */ pkgdb_pkgdb_sub_list_free(db); @@ -79,18 +81,18 @@ * there is no plist, or the plist is empty, this is not a * package, and we don't care about it. */ - pkgdb_sub_free(dbs); + pkg_delete(p); else { - pkgdb_pkgdb_sub_list_append(db, dbs); + pkgdb_pkgdb_sub_list_append(db, sub); cnt++; } free(ents[i]); } free(ents); - db->dbs_curr = NULL; - db->ent_count = cnt; - db->dirty = 1; + db->sub_curr = NULL; + db->sub_count = cnt; + db->dirty = 0; return (DB_OK); } @@ -98,13 +100,12 @@ /* This function will properly initialize a pkgdb_sub for a pkgdb to use. * This includes setting db as the owner of dbs. */ int -pkgdb_hierdb_read_pkgdb_sub(struct pkgdb *db, struct pkgdb_sur *dbs, +pkgdb_hierdb_read_pkgdb_sub(struct pkgdb *db, struct pkgdb_sub *sub, const char *ident) { int s; int status; struct stat sb; - const char *text; #if 0 /* The client doesn't know about the functions in this file. */ if (!VALID_DB(x)) arg_rage_quit(__func__, "Not a valid database.", RAGE_AT_CLIENT); @@ -112,27 +113,27 @@ arg_rage_quit(__func__, "Not a valid identification string.", RAGE_AT_CLIENT); #endif - pkgdb_sub_reset(dbs); + pkg_reset(sub); status = SUB_OK; status |= pkgdb_sub_set_ident(ident); - status |= pkgdb_sub_set_assign_db(db, dbs); + status |= pkgdb_sub_set_assign_db(db, sub); if ((SUB_MEMORY_ERR & status) || (SUB_BAD_IDENT & status)) return (status); /* Hope you have your reading glasses on... */ status = SUB_OK; - status |= pkgdb_sub_reat_file_to_text(db, dbs, COMMENT_FILE) & + status |= pkgdb_sub_reat_file_to_text(db, sub, COMMENT_FILE) & (SUB_EMPTY_FILE | SUB_NO_FILE) ? SUB_NO_COMMENT : SUB_OK; - status |= pkgdb_sub_read_file_to_text(db, dbs, CONTENTS_FILE) & + status |= pkgdb_sub_read_file_to_text(db, sub, CONTENTS_FILE) & (SUB_EMPTY_FILE | SUB_NO_FILE) ? SUB_NO_CONTENTS : SUB_OK; - status |= pkgdb_sub_read_file_to_text(db, dbs, DESC_FILE) & + status |= pkgdb_sub_read_file_to_text(db, sub, DESC_FILE) & (SUB_EMPTY_FILE | SUB_NO_FILE) ? SUB_NO_DESC : SUB_OK; - status |= pkgdb_sub_read_file_to_text(db, dbs, DISPLAY_FILE) & + status |= pkgdb_sub_read_file_to_text(db, sub, DISPLAY_FILE) & (SUB_EMPTY_FILE | SUB_NO_FILE) ? SUB_NO_DISPLAY : SUB_OK; - status |= pkgdb_sub_read_file_to_text(db, dbs, MTREE_DIRS_FILE) & + status |= pkgdb_sub_read_file_to_text(db, sub, MTREE_DIRS_FILE) & (SUB_EMPTY_FILE | SUB_NO_FILE) ? SUB_NO_MTREE_DIRS : SUB_OK; - status |= pkgdb_sub_read_file_to_text(db, dbs, REQUIRED_BY_FILE:) & + status |= pkgdb_sub_read_file_to_text(db, sub, REQUIRED_BY_FILE:) & (SUB_EMPTY_FILE | SUB_NO_FILE) ? SUB_NO_REQUIRED_BY : SUB_OK; return (status); ==== //depot/projects/soc2009/dforsyth_libpkg/libpkg/pkgdb_hierdb.h#3 (text+ko) ==== @@ -1,12 +1,13 @@ #ifndef __PKGDB_HIERDB_H__ #define __PKGDB_HIERDB_H__ +#include "pkg.h" + int pkgdb_hierdb_db_open(struct pkgdb *db, const char *db_root); -int pkgdb_hier_db_init(struct pkgdb *db); +int pkgdb_hierdb_db_init(struct pkgdb *db); - -int pkgdb_hierdb_read_pkgdb_sub(struct pkgdb *db, struct pkgdb_sur *dbs, +int pkgdb_hierdb_read_pkgdb_sub(struct pkgdb *db, struct pkgdb_sub *dbs, const char *ident); int pkgdb_hierdb_db_close(struct pkgdb *db); ==== //depot/projects/soc2009/dforsyth_libpkg/libpkg/pkgdb_hierdb_pkgdb_sub.c#4 (text+ko) ==== @@ -1,11 +1,13 @@ #include #include -#include "pkgdb_sub.h" +#include "pkgdb_hierdb_pkgdb_sub.h" #include "pkg.h" +/* TODO: Create pkgdb_sub.c */ + struct pkgdb_sub { - struct pkgdb_sub *owner_db; + struct pkgdb *owner_db; char *ident; char *path; @@ -16,6 +18,8 @@ char *display_text; char *mtree_dirs_text; char *required_by_text; + + TAILQ_ENTRY(pkgdb_sub) next; }; struct pkgdb_sub * ==== //depot/projects/soc2009/dforsyth_libpkg/libpkg/pkgdb_hierdb_pkgdb_sub.h#2 (text+ko) ==== @@ -1,3 +1,6 @@ +#ifndef __PKGDB_SUB_H__ +#define __PKGDB_SUB_H__ + #define SUB_NO_COMMENT 0x00000001 #define SUB_NO_CONTENTS 0x00000002 #define SUB_NO_DESC 0x00000004 @@ -10,3 +13,7 @@ #define SUB_BAD_IDENT 0x00000040 #define SUB_MEMORY_ERR 0x00000080 + +struct pkgdb_sub; + +#endif ==== //depot/projects/soc2009/dforsyth_libpkg/pkg_info/main.c#9 (text+ko) ==== @@ -12,6 +12,8 @@ short opt_show_comment = 0; char *info_targets; +/* TODO: Write common error handling functions for pkg_tools. */ + #if 0 static char opts[] = "a"; static struct option lopts[] = { @@ -25,8 +27,9 @@ int main (int argc, char **argv) { + int status; const char *db_root; - struct pkgdb *db; + struct pkgdb db; if (argc == 1 && argv != NULL /* Giving argv something to do */) { opt_all = 1; @@ -38,16 +41,21 @@ db_root = getenv("PKG_DBDIR"); /* User set it */ if (db_root == NULL) db_root = PKG_DBDIR_DEFAULT; /* Default */ - - db = pkgdb_read_db_hierdb(db_root); +#if 0 + db = pkgdb_new(HIER_DB); if (db == NULL) { fprintf(stderr, "Could not attach to database \"%s\"\n", db_root); } +#endif + status = pkgdb_db_open(&db, db_root); + if (PKGDB_FAIL(status)) { + fprintf(stderr, "Could not open database \"%s\"\n", db_root); + exit(EXIT_FAILURE); + } + + perform_on_db(&db); - perform_on_db(db); - - pkgdb_free_hierdb(db); - return (0); + return (EXIT_SUCCESS); } void @@ -74,16 +82,18 @@ void perform_on_db(struct pkgdb *db) { - int count; + int status; /* char *target; */ - struct pkg *p; + struct pkg p; /* There will be cases where an init is useless, but since I haven't * written that much yet, init regardless. */ - count = pkgdb_init_db_hierdb(db); - if (count < 0) - exit(1); + status = pkgdb_db_init(&db); + if (PKGDB_FAIL(status)) { + fprint(stderr, "Could not initialize database \"%s\"\n", db_root); + exit(EXIT_FAILURE); + } while ((p = pkgdb_next_pkg(db)) != NULL) { if (!opt_all) { /* Wont happen at this point. */ From owner-p4-projects@FreeBSD.ORG Sat Jun 13 07:28:55 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 851CE1065673; Sat, 13 Jun 2009 07:28:55 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 436E11065672 for ; Sat, 13 Jun 2009 07:28:55 +0000 (UTC) (envelope-from zhaoshuai@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 30DFA8FC19 for ; Sat, 13 Jun 2009 07:28:55 +0000 (UTC) (envelope-from zhaoshuai@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n5D7SsYA050920 for ; Sat, 13 Jun 2009 07:28:54 GMT (envelope-from zhaoshuai@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n5D7SsRN050918 for perforce@freebsd.org; Sat, 13 Jun 2009 07:28:54 GMT (envelope-from zhaoshuai@FreeBSD.org) Date: Sat, 13 Jun 2009 07:28:54 GMT Message-Id: <200906130728.n5D7SsRN050918@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to zhaoshuai@FreeBSD.org using -f From: Zhao Shuai To: Perforce Change Reviews Cc: Subject: PERFORCE change 164242 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 13 Jun 2009 07:28:56 -0000 http://perforce.freebsd.org/chv.cgi?CH=164242 Change 164242 by zhaoshuai@zhaoshuai on 2009/06/13 07:28:37 rename directory "functionlity" to "functionality", it's a spell mistake Affected files ... .. //depot/projects/soc2009/fifo/fifo_test/functionality/Makefile#1 branch .. //depot/projects/soc2009/fifo/fifo_test/functionality/pr_74242.c#1 branch .. //depot/projects/soc2009/fifo/fifo_test/functionality/pr_76525.c#1 branch .. //depot/projects/soc2009/fifo/fifo_test/functionality/rdwr.c#1 branch .. //depot/projects/soc2009/fifo/fifo_test/functionality/reader1.c#1 branch .. //depot/projects/soc2009/fifo/fifo_test/functionality/reader2.c#1 branch .. //depot/projects/soc2009/fifo/fifo_test/functionality/select.c#1 branch .. //depot/projects/soc2009/fifo/fifo_test/functionality/test.h#1 branch .. //depot/projects/soc2009/fifo/fifo_test/functionality/test_bidirection1.c#1 branch .. //depot/projects/soc2009/fifo/fifo_test/functionality/test_bidirection2.c#1 branch .. //depot/projects/soc2009/fifo/fifo_test/functionality/writer1.c#1 branch .. //depot/projects/soc2009/fifo/fifo_test/functionlity/Makefile#2 delete .. //depot/projects/soc2009/fifo/fifo_test/functionlity/pr_74242.c#2 delete .. //depot/projects/soc2009/fifo/fifo_test/functionlity/pr_76525.c#2 delete .. //depot/projects/soc2009/fifo/fifo_test/functionlity/rdwr.c#2 delete .. //depot/projects/soc2009/fifo/fifo_test/functionlity/reader1.c#2 delete .. //depot/projects/soc2009/fifo/fifo_test/functionlity/reader2.c#2 delete .. //depot/projects/soc2009/fifo/fifo_test/functionlity/select.c#2 delete .. //depot/projects/soc2009/fifo/fifo_test/functionlity/test.h#2 delete .. //depot/projects/soc2009/fifo/fifo_test/functionlity/test_bidirection1.c#2 delete .. //depot/projects/soc2009/fifo/fifo_test/functionlity/test_bidirection2.c#2 delete .. //depot/projects/soc2009/fifo/fifo_test/functionlity/writer1.c#2 delete Differences ... From owner-p4-projects@FreeBSD.ORG Sat Jun 13 07:57:25 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id BCC071065670; Sat, 13 Jun 2009 07:57:24 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 7BD89106564A for ; Sat, 13 Jun 2009 07:57:24 +0000 (UTC) (envelope-from zhaoshuai@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 69CD38FC15 for ; Sat, 13 Jun 2009 07:57:24 +0000 (UTC) (envelope-from zhaoshuai@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n5D7vOj0055831 for ; Sat, 13 Jun 2009 07:57:24 GMT (envelope-from zhaoshuai@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n5D7vO5B055829 for perforce@freebsd.org; Sat, 13 Jun 2009 07:57:24 GMT (envelope-from zhaoshuai@FreeBSD.org) Date: Sat, 13 Jun 2009 07:57:24 GMT Message-Id: <200906130757.n5D7vO5B055829@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to zhaoshuai@FreeBSD.org using -f From: Zhao Shuai To: Perforce Change Reviews Cc: Subject: PERFORCE change 164243 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 13 Jun 2009 07:57:26 -0000 http://perforce.freebsd.org/chv.cgi?CH=164243 Change 164243 by zhaoshuai@zhaoshuai on 2009/06/13 07:57:08 -rename test_bid* to bid* -a little modification in rdwr.c Affected files ... .. //depot/projects/soc2009/fifo/fifo_test/functionality/Makefile#2 edit .. //depot/projects/soc2009/fifo/fifo_test/functionality/bidirection1.c#1 add .. //depot/projects/soc2009/fifo/fifo_test/functionality/bidirection2.c#1 add .. //depot/projects/soc2009/fifo/fifo_test/functionality/rdwr.c#2 edit .. //depot/projects/soc2009/fifo/fifo_test/functionality/test_bidirection1.c#2 delete .. //depot/projects/soc2009/fifo/fifo_test/functionality/test_bidirection2.c#2 delete Differences ... ==== //depot/projects/soc2009/fifo/fifo_test/functionality/Makefile#2 (text+ko) ==== @@ -1,5 +1,4 @@ -OBJS = rdwr reader1 reader2 writer1 test_bidirection1 test_bidirection2 \ - select +OBJS = rdwr reader1 reader2 writer1 bidirection1 bidirection2 select all : $(OBJS) @@ -7,8 +6,8 @@ reader1 : reader1.c reader2 : reader2.c writer1 : writer1.c -test_bidirection1 : test_bidirection1.c -test_bidirection2 : test_bidirection2.c +bidirection1 : bidirection1.c +bidirection2 : bidirection2.c select : select.c clean : ==== //depot/projects/soc2009/fifo/fifo_test/functionality/rdwr.c#2 (text+ko) ==== @@ -11,18 +11,19 @@ int main(int argc, char *argv[]) { - int fd; - char *string = "Hello World!"; - int buffer[BUF_SIZE]; + int fd, n; + int rbuf[BUF_SIZE], wbuf[BUF_SIZE]; if ((fd = open(FIFO_PATH, O_RDWR)) < 0) { perror("open error"); return (1); } - write(fd, string, strlen(string) + 1); - read(fd, buffer, BUF_SIZE); - - printf("buffer content: %s\n", buffer); + while ((n = read(0, wbuf, BUF_SIZE)) > 0) { + write(fd, wbuf, n); + read(fd, rbuf, BUF_SIZE); + printf("%s", rbuf); + memset(rbuf, 0, BUF_SIZE); + } return (0); } From owner-p4-projects@FreeBSD.ORG Sat Jun 13 08:12:40 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 1B7231065674; Sat, 13 Jun 2009 08:12:40 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id CE4591065670 for ; Sat, 13 Jun 2009 08:12:39 +0000 (UTC) (envelope-from zhaoshuai@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id BC0CD8FC0C for ; Sat, 13 Jun 2009 08:12:39 +0000 (UTC) (envelope-from zhaoshuai@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n5D8CdQ0058982 for ; Sat, 13 Jun 2009 08:12:39 GMT (envelope-from zhaoshuai@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n5D8CdiK058980 for perforce@freebsd.org; Sat, 13 Jun 2009 08:12:39 GMT (envelope-from zhaoshuai@FreeBSD.org) Date: Sat, 13 Jun 2009 08:12:39 GMT Message-Id: <200906130812.n5D8CdiK058980@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to zhaoshuai@FreeBSD.org using -f From: Zhao Shuai To: Perforce Change Reviews Cc: Subject: PERFORCE change 164244 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 13 Jun 2009 08:12:41 -0000 http://perforce.freebsd.org/chv.cgi?CH=164244 Change 164244 by zhaoshuai@zhaoshuai on 2009/06/13 08:12:25 a little modification on reader1.c and writer1.c Affected files ... .. //depot/projects/soc2009/fifo/fifo_test/functionality/reader1.c#2 edit .. //depot/projects/soc2009/fifo/fifo_test/functionality/writer1.c#2 edit Differences ... ==== //depot/projects/soc2009/fifo/fifo_test/functionality/reader1.c#2 (text+ko) ==== @@ -17,11 +17,11 @@ int fd, n; char buffer[BUF_SIZE]; + fd = open(FIFO_PATH, O_RDONLY); /* - fd = open(FIFO_PATH, O_RDONLY); fd = open(FIFO_PATH, O_RDWR); + fd = open(FIFO_PATH, O_RDONLY | O_NONBLOCK); */ - fd = open(FIFO_PATH, O_RDONLY | O_NONBLOCK); if (fd < 0) { perror("open error"); return (1); ==== //depot/projects/soc2009/fifo/fifo_test/functionality/writer1.c#2 (text+ko) ==== @@ -16,14 +16,14 @@ int main(int argc, char *argv[]) { int fd, n; - char buf[4096]; + char buf[BUF_SIZE]; - fd = open(FIFO_PATH, O_WRONLY | O_NONBLOCK); + fd = open(FIFO_PATH, O_WRONLY); /* - fd = open(FIFO_PATH, O_WRONLY); fd = open(FIFO_PATH, O_RDWR); + fd = open(FIFO_PATH, O_WRONLY | O_NONBLOCK); */ - while ((n = read(0, buf, 4096)) > 0) + while ((n = read(0, buf, BUF_SIZE)) > 0) write(fd, buf, n); return 0; From owner-p4-projects@FreeBSD.ORG Sat Jun 13 08:17:46 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id E7A37106564A; Sat, 13 Jun 2009 08:17:45 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 719F3106566B for ; Sat, 13 Jun 2009 08:17:45 +0000 (UTC) (envelope-from zhaoshuai@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 453D48FC12 for ; Sat, 13 Jun 2009 08:17:45 +0000 (UTC) (envelope-from zhaoshuai@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n5D8HiJn059378 for ; Sat, 13 Jun 2009 08:17:44 GMT (envelope-from zhaoshuai@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n5D8HiMt059376 for perforce@freebsd.org; Sat, 13 Jun 2009 08:17:44 GMT (envelope-from zhaoshuai@FreeBSD.org) Date: Sat, 13 Jun 2009 08:17:44 GMT Message-Id: <200906130817.n5D8HiMt059376@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to zhaoshuai@FreeBSD.org using -f From: Zhao Shuai To: Perforce Change Reviews Cc: Subject: PERFORCE change 164245 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 13 Jun 2009 08:17:46 -0000 http://perforce.freebsd.org/chv.cgi?CH=164245 Change 164245 by zhaoshuai@zhaoshuai on 2009/06/13 08:17:03 modify select.c Affected files ... .. //depot/projects/soc2009/fifo/fifo_test/functionality/select.c#2 edit Differences ... ==== //depot/projects/soc2009/fifo/fifo_test/functionality/select.c#2 (text+ko) ==== @@ -1,5 +1,8 @@ /* * Basic FIFO select test. + * + * 1. select on read descriptor - OK + * 2. select on write descriptor - OK */ #include From owner-p4-projects@FreeBSD.ORG Sat Jun 13 08:22:50 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id A5A941065672; Sat, 13 Jun 2009 08:22:50 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 63632106566C for ; Sat, 13 Jun 2009 08:22:50 +0000 (UTC) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 4FE748FC1D for ; Sat, 13 Jun 2009 08:22:50 +0000 (UTC) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n5D8Mogn059791 for ; Sat, 13 Jun 2009 08:22:50 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n5D8MoWV059789 for perforce@freebsd.org; Sat, 13 Jun 2009 08:22:50 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Date: Sat, 13 Jun 2009 08:22:50 GMT Message-Id: <200906130822.n5D8MoWV059789@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to bb+lists.freebsd.perforce@cyrus.watson.org using -f From: Robert Watson To: Perforce Change Reviews Cc: Subject: PERFORCE change 164246 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 13 Jun 2009 08:22:51 -0000 http://perforce.freebsd.org/chv.cgi?CH=164246 Change 164246 by rwatson@rwatson_freebsd_capabilities on 2009/06/13 08:22:10 Return EPIPE rather than EBADMSG when an EOF is generated by RPC send or receive. Affected files ... .. //depot/projects/trustedbsd/capabilities/src/lib/libcapability/libcapability_sandbox.c#5 edit Differences ... ==== //depot/projects/trustedbsd/capabilities/src/lib/libcapability/libcapability_sandbox.c#5 (text+ko) ==== @@ -142,6 +142,10 @@ len = lcs_recv(lchp, &req_hdr, sizeof(req_hdr), MSG_WAITALL); if (len < 0) return (-1); + if (len == 0) { + errno = EPIPE; + return (-1); + } if (len != sizeof(req_hdr)) { errno = EBADMSG; return (-1); @@ -177,6 +181,11 @@ free(buffer); return (-1); } + if (len == 0) { + errno = EPIPE; + free(buffer); + return (-1); + } totlen += len; } *bufferp = buffer; From owner-p4-projects@FreeBSD.ORG Sat Jun 13 08:26:55 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id EE93110656BA; Sat, 13 Jun 2009 08:26:54 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 9E4C3106568E for ; Sat, 13 Jun 2009 08:26:54 +0000 (UTC) (envelope-from zhaoshuai@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 8BF448FC22 for ; Sat, 13 Jun 2009 08:26:54 +0000 (UTC) (envelope-from zhaoshuai@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n5D8QsMb061122 for ; Sat, 13 Jun 2009 08:26:54 GMT (envelope-from zhaoshuai@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n5D8Qs4J061120 for perforce@freebsd.org; Sat, 13 Jun 2009 08:26:54 GMT (envelope-from zhaoshuai@FreeBSD.org) Date: Sat, 13 Jun 2009 08:26:54 GMT Message-Id: <200906130826.n5D8Qs4J061120@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to zhaoshuai@FreeBSD.org using -f From: Zhao Shuai To: Perforce Change Reviews Cc: Subject: PERFORCE change 164247 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 13 Jun 2009 08:26:56 -0000 http://perforce.freebsd.org/chv.cgi?CH=164247 Change 164247 by zhaoshuai@zhaoshuai on 2009/06/13 08:26:04 add comments on bidirection tests Affected files ... .. //depot/projects/soc2009/fifo/fifo_test/functionality/bidirection1.c#2 edit .. //depot/projects/soc2009/fifo/fifo_test/functionality/bidirection2.c#2 edit Differences ... ==== //depot/projects/soc2009/fifo/fifo_test/functionality/bidirection1.c#2 (text+ko) ==== @@ -1,3 +1,7 @@ +/* + * two processes both open fifo as O_RDWR and both perform read and write + */ + #include #include #include ==== //depot/projects/soc2009/fifo/fifo_test/functionality/bidirection2.c#2 (text+ko) ==== @@ -1,3 +1,7 @@ +/* + * two processes both open fifo as O_RDWR and both perform read and write + */ + #include #include #include From owner-p4-projects@FreeBSD.ORG Sat Jun 13 09:31:00 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id F1C6E1065670; Sat, 13 Jun 2009 09:30:59 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id B1820106566C for ; Sat, 13 Jun 2009 09:30:59 +0000 (UTC) (envelope-from syl@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 857468FC1A for ; Sat, 13 Jun 2009 09:30:59 +0000 (UTC) (envelope-from syl@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n5D9Uxuk085540 for ; Sat, 13 Jun 2009 09:30:59 GMT (envelope-from syl@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n5D9UxPx085538 for perforce@freebsd.org; Sat, 13 Jun 2009 09:30:59 GMT (envelope-from syl@FreeBSD.org) Date: Sat, 13 Jun 2009 09:30:59 GMT Message-Id: <200906130930.n5D9UxPx085538@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to syl@FreeBSD.org using -f From: Sylvestre Gallon To: Perforce Change Reviews Cc: Subject: PERFORCE change 164249 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 13 Jun 2009 09:31:01 -0000 http://perforce.freebsd.org/chv.cgi?CH=164249 Change 164249 by syl@syl_atuin on 2009/06/13 09:30:26 Update libusb_get_config_descriptor to work with more complex configurations. Affected files ... .. //depot/projects/soc2009/syl_usb/src/lib/libusb/libusb10.c#27 edit .. //depot/projects/soc2009/syl_usb/src/lib/libusb/libusb10_desc.c#13 edit .. //depot/projects/soc2009/syl_usb/src/lib/libusb/libusb10_io.c#9 edit Differences ... ==== //depot/projects/soc2009/syl_usb/src/lib/libusb/libusb10.c#27 (text+ko) ==== ==== //depot/projects/soc2009/syl_usb/src/lib/libusb/libusb10_desc.c#13 (text+ko) ==== @@ -118,6 +118,8 @@ nend += pconf->interface[i].num_endpoints; } + printf("nif : %i nalt : %i nend : %i\n", nif, nalt, nend); + *config = malloc(sizeof(libusb_config_descriptor) + (nif * sizeof(libusb_interface)) + (nalt * sizeof(libusb_interface_descriptor)) + @@ -168,12 +170,14 @@ if ((*config)->extra_length != 0) (*config)->extra = pconf->extra.ptr; + printf("nif : %i nalt : %i nend : %i\n", nif, nalt, nend); + for (i = 0 ; i < nif ; i++) { pinf = &pconf->interface[i]; (*config)->interface[i].num_altsetting = pinf->num_altsetting + 1; - for (j = 0 ; j <= pinf->num_altsetting ; j++) { + for (j = 0 ; j < (*config)->interface[i].num_altsetting ; j++) { if (j != 0) - pinf = &pconf->interface[i].altsetting[j]; + pinf = &pconf->interface[i].altsetting[j - 1]; ifd = &(*config)->interface[i].altsetting[j]; ifd->bLength = pinf->desc.bLength; ifd->bDescriptorType = pinf->desc.bDescriptorType; @@ -187,9 +191,9 @@ ifd->extra_length = pinf->extra.len; if (ifd->extra_length != 0) ifd->extra = pinf->extra.ptr; - for (j = 0 ; j < pinf->num_endpoints ; j++) { - pend = &pinf->endpoints[j]; - endd = &ifd->endpoint[j]; + for (k = 0 ; k < pinf->num_endpoints ; k++) { + pend = &pinf->endpoints[k]; + endd = &ifd->endpoint[k]; endd->bLength = pend->desc.bLength; endd->bDescriptorType = pend->desc.bDescriptorType; endd->bEndpointAddress = pend->desc.bEndpointAddress; ==== //depot/projects/soc2009/syl_usb/src/lib/libusb/libusb10_io.c#9 (text+ko) ==== From owner-p4-projects@FreeBSD.ORG Sat Jun 13 09:41:13 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id D73161065674; Sat, 13 Jun 2009 09:41:12 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 9682D1065672 for ; Sat, 13 Jun 2009 09:41:12 +0000 (UTC) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 8346F8FC17 for ; Sat, 13 Jun 2009 09:41:12 +0000 (UTC) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n5D9fADZ087918 for ; Sat, 13 Jun 2009 09:41:10 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n5D9f9tE087911 for perforce@freebsd.org; Sat, 13 Jun 2009 09:41:09 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Date: Sat, 13 Jun 2009 09:41:09 GMT Message-Id: <200906130941.n5D9f9tE087911@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to bb+lists.freebsd.perforce@cyrus.watson.org using -f From: Robert Watson To: Perforce Change Reviews Cc: Subject: PERFORCE change 164250 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 13 Jun 2009 09:41:13 -0000 http://perforce.freebsd.org/chv.cgi?CH=164250 Change 164250 by rwatson@rwatson_freebsd_capabilities on 2009/06/13 09:41:08 In capability mode, don't release AT_EXECFD after mapping the executable object because it will be stored in ld_caplibindex for later reuse. Affected files ... .. //depot/projects/trustedbsd/capabilities/src/libexec/rtld-elf/rtld.c#16 edit Differences ... ==== //depot/projects/trustedbsd/capabilities/src/libexec/rtld-elf/rtld.c#16 (text+ko) ==== @@ -480,7 +480,9 @@ int fd = aux_info[AT_EXECFD]->a_un.a_val; dbg("loading main program"); obj_main = map_object(fd, argv0, NULL); +#ifndef IN_RTLD_CAP close(fd); +#endif if (obj_main == NULL) die(); } else { /* Main program already loaded. */ From owner-p4-projects@FreeBSD.ORG Sat Jun 13 09:55:27 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 60EB31065673; Sat, 13 Jun 2009 09:55:27 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 204F31065670 for ; Sat, 13 Jun 2009 09:55:27 +0000 (UTC) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 0CDC98FC13 for ; Sat, 13 Jun 2009 09:55:27 +0000 (UTC) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n5D9tQtT089892 for ; Sat, 13 Jun 2009 09:55:26 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n5D9tQcj089890 for perforce@freebsd.org; Sat, 13 Jun 2009 09:55:26 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Date: Sat, 13 Jun 2009 09:55:26 GMT Message-Id: <200906130955.n5D9tQcj089890@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to bb+lists.freebsd.perforce@cyrus.watson.org using -f From: Robert Watson To: Perforce Change Reviews Cc: Subject: PERFORCE change 164251 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 13 Jun 2009 09:55:28 -0000 http://perforce.freebsd.org/chv.cgi?CH=164251 Change 164251 by rwatson@rwatson_freebsd_capabilities on 2009/06/13 09:55:15 Rather than encode a requirement that shared object file descriptors be at offset 0, pread() at offset 0 to get the ELF header. The remainder of rtld-elf makes no use of file offsets, since it uses mmap to load actual ELF sections. Affected files ... .. //depot/projects/trustedbsd/capabilities/src/libexec/rtld-elf/map_object.c#5 edit Differences ... ==== //depot/projects/trustedbsd/capabilities/src/libexec/rtld-elf/map_object.c#5 (text+ko) ==== @@ -44,7 +44,8 @@ /* * Map a shared object into memory. The "fd" argument is a file descriptor, - * which must be open on the object and positioned at its beginning. + * which must be open on the object. + * * The "path" argument is a pathname that is used only for error messages. * * The return value is a pointer to a newly-allocated Obj_Entry structure @@ -270,7 +271,7 @@ } u; ssize_t nbytes; - if ((nbytes = read(fd, u.buf, PAGE_SIZE)) == -1) { + if ((nbytes = pread(fd, u.buf, PAGE_SIZE, 0)) == -1) { _rtld_error("%s: read error: %s", path, strerror(errno)); return NULL; } From owner-p4-projects@FreeBSD.ORG Sat Jun 13 09:59:31 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id A237C106567A; Sat, 13 Jun 2009 09:59:31 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 5DB511065679 for ; Sat, 13 Jun 2009 09:59:31 +0000 (UTC) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 48FBA8FC1D for ; Sat, 13 Jun 2009 09:59:31 +0000 (UTC) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n5D9xVU0090158 for ; Sat, 13 Jun 2009 09:59:31 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n5D9xVw9090156 for perforce@freebsd.org; Sat, 13 Jun 2009 09:59:31 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Date: Sat, 13 Jun 2009 09:59:31 GMT Message-Id: <200906130959.n5D9xVw9090156@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to bb+lists.freebsd.perforce@cyrus.watson.org using -f From: Robert Watson To: Perforce Change Reviews Cc: Subject: PERFORCE change 164252 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 13 Jun 2009 09:59:33 -0000 http://perforce.freebsd.org/chv.cgi?CH=164252 Change 164252 by rwatson@rwatson_freebsd_capabilities on 2009/06/13 09:58:36 Make lch_startfd() and lch_startfd_flags() accept a binary name as a string so that we can use that as the binary's name in the process's library descriptor cache. Pass libcapabilitym rather than libcapability into sandboxes so that sandbox-specific functions are available. Include rtld-elf-cap library information in LD_CAPLIBINDEX so that it is inserted into the process's library descriptor cache. Nested sandbox launching now appears to work properly. Affected files ... .. //depot/projects/trustedbsd/capabilities/src/lib/libcapability/libcapability.h#13 edit .. //depot/projects/trustedbsd/capabilities/src/lib/libcapability/libcapability_host.c#10 edit Differences ... ==== //depot/projects/trustedbsd/capabilities/src/lib/libcapability/libcapability.h#13 (text+ko) ==== @@ -30,7 +30,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $P4: //depot/projects/trustedbsd/capabilities/src/lib/libcapability/libcapability.h#12 $ + * $P4: //depot/projects/trustedbsd/capabilities/src/lib/libcapability/libcapability.h#13 $ */ #ifndef _LIBCAPABILITY_H_ @@ -51,10 +51,10 @@ struct lc_sandbox **lcspp); int lch_start_flags(const char *sandbox, char *const argv[], u_int flags, struct lc_sandbox **lcspp); -int lch_startfd(int fd_sandbox, char *const argv[], +int lch_startfd(int fd_sandbox, const char *binname, char *const argv[], struct lc_sandbox **lcspp); -int lch_startfd_flags(int fd_sandbox, char *const argv[], u_int flags, - struct lc_sandbox **lcspp); +int lch_startfd_flags(int fd_sandbox, const char *binname, + char *const argv[], u_int flags, struct lc_sandbox **lcspp); void lch_stop(struct lc_sandbox *lcsp); /* ==== //depot/projects/trustedbsd/capabilities/src/lib/libcapability/libcapability_host.c#10 (text+ko) ==== @@ -30,10 +30,10 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $P4: //depot/projects/trustedbsd/capabilities/src/lib/libcapability/libcapability_host.c#9 $ + * $P4: //depot/projects/trustedbsd/capabilities/src/lib/libcapability/libcapability_host.c#10 $ */ -#include +#include #include #include #include @@ -41,6 +41,7 @@ #include #include +#include #include #include #include @@ -59,20 +60,21 @@ #define LIBCAPABILITY_CAPMASK_SANDBOX LIBCAPABILITY_CAPMASK_BIN #define LIBCAPABILITY_CAPMASK_LDSO LIBCAPABILITY_CAPMASK_BIN #define LIBCAPABILITY_CAPMASK_LIBC LIBCAPABILITY_CAPMASK_BIN -#define LIBCAPABILITY_CAPMASK_LIBCAPABILITY LIBCAPABILITY_CAPMASK_BIN +#define LIBCAPABILITY_CAPMASK_LIBCAPABILITYM LIBCAPABILITY_CAPMASK_BIN #define LIBCAPABILITY_CAPMASK_LIBZ LIBCAPABILITY_CAPMASK_BIN #define _PATH_LIB "/lib" #define _PATH_USR_LIB "/usr/lib" #define LIBC_SO "libc.so.7" #define LIBZ_SO "libz.so.4" -#define LIBCAPABILITY_SO "libcapability.so.1" +#define LIBCAPABILITYM_SO "libcapabilitym.so.1" extern char **environ; -#define LD_ELF_CAP_SO "/libexec/ld-elf-cap.so.1" +#define LD_ELF_CAP_SO "ld-elf-cap.so.1" +#define PATH_LD_ELF_CAP_SO "/libexec" char *ldso_argv[] = { - __DECONST(char *, LD_ELF_CAP_SO), + __DECONST(char *, PATH_LD_ELF_CAP_SO "/" LD_ELF_CAP_SO), NULL, }; @@ -144,8 +146,8 @@ static void lch_sandbox(int fd_sock, int fd_sandbox, int fd_ldso, int fd_libc, - int fd_libz, int fd_libcapability, int fd_devnull, u_int flags, - char *const argv[]) + int fd_libz, int fd_libcapabilitym, int fd_devnull, u_int flags, + const char *binname, char *const argv[]) { char *env_caplibindex, *env_libcapability_sandbox_api; int fd_array[10]; @@ -162,8 +164,8 @@ return; if (lc_limitfd(fd_libz, LIBCAPABILITY_CAPMASK_LIBZ) < 0) return; - if (lc_limitfd(fd_libcapability, LIBCAPABILITY_CAPMASK_LIBCAPABILITY) - < 0) + if (lc_limitfd(fd_libcapabilitym, + LIBCAPABILITY_CAPMASK_LIBCAPABILITYM) < 0) return; fd_array[0] = fd_devnull; @@ -179,7 +181,7 @@ fd_array[5] = fd_ldso; fd_array[6] = fd_libc; fd_array[7] = fd_libz; - fd_array[8] = fd_libcapability; + fd_array[8] = fd_libcapabilitym; fd_array[9] = fd_devnull; if (lch_installfds(10, fd_array) < 0) @@ -188,8 +190,9 @@ /* * Pass library list into rtld-elf-cap. */ - if (asprintf(&env_caplibindex, "%d:%s,%d:%s,%d:%s,%d:%s", 6, LIBC_SO, - 7, LIBZ_SO, 8, LIBCAPABILITY_SO, 9, _PATH_DEVNULL) == -1) + if (asprintf(&env_caplibindex, "%d:%s,%d:%s,%d:%s,%d:%s,%d:%s,%d:%s", + 3, binname, 5, LD_ELF_CAP_SO, 6, LIBC_SO, 7, LIBZ_SO, 8, + LIBCAPABILITYM_SO, 9, _PATH_DEVNULL) == -1) return; if (setenv("LD_CAPLIBINDEX", env_caplibindex, 1) == -1) return; @@ -214,16 +217,16 @@ } int -lch_startfd_flags(int fd_sandbox, char *const argv[], u_int flags, - struct lc_sandbox **lcapp) +lch_startfd_flags(int fd_sandbox, const char *binname, char *const argv[], + u_int flags, struct lc_sandbox **lcapp) { struct lc_sandbox *lcap; - int fd_devnull, fd_ldso, fd_libc, fd_libcapability, fd_libz; + int fd_devnull, fd_ldso, fd_libc, fd_libcapabilitym, fd_libz; int fd_procdesc, fd_sockpair[2]; int error, val; pid_t pid; - fd_devnull = fd_ldso = fd_libc = fd_libz = fd_libcapability = + fd_devnull = fd_ldso = fd_libc = fd_libz = fd_libcapabilitym = fd_procdesc = fd_sockpair[0] = fd_sockpair[1] = -1; lcap = malloc(sizeof(*lcap)); @@ -238,12 +241,12 @@ goto out_error; if (ld_caplibindex_lookup(LIBZ_SO, &fd_libz) < 0) goto out_error; - if (ld_caplibindex_lookup(LIBCAPABILITY_SO, &fd_libcapability) < 0) + if (ld_caplibindex_lookup(LIBCAPABILITYM_SO, &fd_libcapabilitym) < 0) goto out_error; - if (ld_caplibindex_lookup(_PATH_DEVNULL, &fd_libcapability) < 0) + if (ld_caplibindex_lookup(_PATH_DEVNULL, &fd_devnull) < 0) goto out_error; #else - fd_ldso = open(LD_ELF_CAP_SO, O_RDONLY); + fd_ldso = open(PATH_LD_ELF_CAP_SO "/" LD_ELF_CAP_SO, O_RDONLY); if (fd_ldso < 0) goto out_error; @@ -255,9 +258,9 @@ if (fd_libz < 0) goto out_error; - fd_libcapability = open(_PATH_USR_LIB "/" LIBCAPABILITY_SO, + fd_libcapabilitym = open(_PATH_USR_LIB "/" LIBCAPABILITYM_SO, O_RDONLY); - if (fd_libcapability < 0) + if (fd_libcapabilitym < 0) goto out_error; fd_devnull = open(_PATH_DEVNULL, O_RDWR); @@ -282,12 +285,13 @@ } if (pid == 0) { lch_sandbox(fd_sockpair[1], fd_sandbox, fd_ldso, fd_libc, - fd_libz, fd_libcapability, fd_devnull, flags, argv); + fd_libz, fd_libcapabilitym, fd_devnull, flags, binname, + argv); exit(-1); } #ifndef IN_CAP_MODE close(fd_devnull); - close(fd_libcapability); + close(fd_libcapabilitym); close(fd_libz); close(fd_libc); close(fd_ldso); @@ -310,8 +314,8 @@ #ifndef IN_CAP_MODE if (fd_devnull != -1) close(fd_devnull); - if (fd_libcapability != -1) - close(fd_libcapability); + if (fd_libcapabilitym != -1) + close(fd_libcapabilitym); if (fd_libz != -1) close(fd_libz); if (fd_libc != -1) @@ -326,10 +330,11 @@ } int -lch_startfd(int fd_sandbox, char *const argv[], struct lc_sandbox **lcapp) +lch_startfd(int fd_sandbox, const char *binname, char *const argv[], + struct lc_sandbox **lcapp) { - return (lch_startfd_flags(fd_sandbox, argv, 0, lcapp)); + return (lch_startfd_flags(fd_sandbox, binname, argv, 0, lcapp)); } #ifndef IN_CAP_MODE @@ -337,13 +342,17 @@ lch_start_flags(const char *sandbox, char *const argv[], u_int flags, struct lc_sandbox **lcapp) { + char binname[MAXPATHLEN]; int error, fd_sandbox, ret; + if (basename_r(sandbox, binname) == NULL) + return (-1); + fd_sandbox = open(sandbox, O_RDONLY); if (fd_sandbox < 0) return (-1); - ret = lch_startfd_flags(fd_sandbox, argv, flags, lcapp); + ret = lch_startfd_flags(fd_sandbox, binname, argv, flags, lcapp); error = errno; close(fd_sandbox); errno = error; From owner-p4-projects@FreeBSD.ORG Sat Jun 13 10:00:33 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id E53411065672; Sat, 13 Jun 2009 10:00:32 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 8CE0F106564A for ; Sat, 13 Jun 2009 10:00:32 +0000 (UTC) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 71EAB8FC22 for ; Sat, 13 Jun 2009 10:00:32 +0000 (UTC) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n5DA0W8F090303 for ; Sat, 13 Jun 2009 10:00:32 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n5DA0WAf090301 for perforce@freebsd.org; Sat, 13 Jun 2009 10:00:32 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Date: Sat, 13 Jun 2009 10:00:32 GMT Message-Id: <200906131000.n5DA0WAf090301@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to bb+lists.freebsd.perforce@cyrus.watson.org using -f From: Robert Watson To: Perforce Change Reviews Cc: Subject: PERFORCE change 164253 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 13 Jun 2009 10:00:34 -0000 http://perforce.freebsd.org/chv.cgi?CH=164253 Change 164253 by rwatson@rwatson_freebsd_capabilities on 2009/06/13 10:00:15 Demonstrate nested sandboxes in libcapability_exec/sandbox_echo by having sandbox_echo launch a second sandbox that will actually implement echo, and the first will just proxy between the host and the second sandbox. Use err() to report sandbox errors on stderr, since we authorize this example sandboxed app to write to stderr, and it makes things significantly easier to debug. Affected files ... .. //depot/projects/trustedbsd/capabilities/src/tools/cap/libcapability_exec/libcapability_exec.c#3 edit .. //depot/projects/trustedbsd/capabilities/src/tools/cap/sandbox_echo/sandbox_echo.c#3 edit Differences ... ==== //depot/projects/trustedbsd/capabilities/src/tools/cap/libcapability_exec/libcapability_exec.c#3 (text+ko) ==== @@ -48,7 +48,7 @@ main(int argc, char *argv[]) { struct lc_sandbox *lcsp; - char *sandbox_argv[2] = { argv[1], NULL }; + char *sandbox_argv[3] = { argv[1], "nested", NULL }; struct iovec iov; size_t len; char ch; ==== //depot/projects/trustedbsd/capabilities/src/tools/cap/sandbox_echo/sandbox_echo.c#3 (text+ko) ==== @@ -38,30 +38,81 @@ #include #include +#include #include +#include #include +#include +#include +#define MYNAME "sandbox_echo" + int main(int argc, char *argv[]) { + char *sandbox_argv[3] = { MYNAME, NULL }; + struct lc_sandbox *lcsp; struct lc_host *lchp; u_int32_t opno, seqno; struct iovec iov; u_char *buffer; size_t len; + int fd; if (lcs_get(&lchp) < 0) errx(-1, "libcapability sandbox binary"); - while (1) { - if (lcs_recvrpc(lchp, &opno, &seqno, &buffer, &len) < 0) - return (-2); - if (len != 1) - return (-3); - iov.iov_base = buffer; - iov.iov_len = 1; - if (lcs_sendrpc(lchp, opno, seqno, &iov, 1) < 0) - return (-4); - free(buffer); + if (argc > 1 && strcmp(argv[1], "nested") == 0) { + + fprintf(stderr, "%s\n", getenv("LD_CAPLIBINDEX")); + if (ld_caplibindex_lookup(MYNAME, &fd) < 0) + err(-10, "ld_caplibindex_lookup(%s)", MYNAME); + + if (lch_startfd_flags(fd, MYNAME, sandbox_argv, + LCH_PERMIT_STDERR, &lcsp) < 0) + err(-1, "lch_start %s", argv[1]); + while (1) { + if (lcs_recvrpc(lchp, &opno, &seqno, &buffer, &len) + < 0) { + if (errno != EPIPE) + err(-2, "lcs_recvrpc"); + else + exit(-1); + } + if (len != 1) + errx(-3, "lcs_recvrpc len"); + iov.iov_base = buffer; + iov.iov_len = 1; + if (lch_rpc(lcsp, opno, &iov, 1, &iov, 1, &len) < 0) + err(-4, "lch_rpc"); + if (lcs_sendrpc(lchp, opno, seqno, &iov, 1) < 0) { + if (errno != EPIPE) + err(-5, "lcs_sendrpc"); + else + exit(-5); + } + free(buffer); + } + } else { + while (1) { + if (lcs_recvrpc(lchp, &opno, &seqno, &buffer, &len) + < 0) { + if (errno != EPIPE) + err(-6, "lcs_recvrpc"); + else + exit(-6); + } + if (len != 1) + errx(-7, "lcs_recvrpc len"); + iov.iov_base = buffer; + iov.iov_len = 1; + if (lcs_sendrpc(lchp, opno, seqno, &iov, 1) < 0) { + if (errno != EPIPE) + err(-8, "lcs_sendrpc"); + else + exit(-8); + } + free(buffer); + } } } From owner-p4-projects@FreeBSD.ORG Sat Jun 13 10:03:36 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 0B1F91065670; Sat, 13 Jun 2009 10:03:36 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id BD714106566B for ; Sat, 13 Jun 2009 10:03:35 +0000 (UTC) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id A9A548FC0A for ; Sat, 13 Jun 2009 10:03:35 +0000 (UTC) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n5DA3Z21091979 for ; Sat, 13 Jun 2009 10:03:35 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n5DA3Zkp091977 for perforce@freebsd.org; Sat, 13 Jun 2009 10:03:35 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Date: Sat, 13 Jun 2009 10:03:35 GMT Message-Id: <200906131003.n5DA3Zkp091977@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to bb+lists.freebsd.perforce@cyrus.watson.org using -f From: Robert Watson To: Perforce Change Reviews Cc: Subject: PERFORCE change 164254 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 13 Jun 2009 10:03:36 -0000 http://perforce.freebsd.org/chv.cgi?CH=164254 Change 164254 by rwatson@rwatson_freebsd_capabilities on 2009/06/13 10:02:43 Don't test lseek(2) in the IN_RTLD_CAP case, as we don't need it any longer. Affected files ... .. //depot/projects/trustedbsd/capabilities/src/libexec/rtld-elf/rtld.c#17 edit Differences ... ==== //depot/projects/trustedbsd/capabilities/src/libexec/rtld-elf/rtld.c#17 (text+ko) ==== @@ -1595,10 +1595,6 @@ _rtld_error("Unable to find \"%s\" in LD_CAPLIBINDEX", path); return NULL; } - if (lseek(fd, 0, SEEK_SET) == -1) { - _rtld_error("Unable to seek on \"%s\"", path); - return NULL; - } #else path = find_library(name, refobj); if (path == NULL) From owner-p4-projects@FreeBSD.ORG Sat Jun 13 10:04:37 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 328251065672; Sat, 13 Jun 2009 10:04:37 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id E65CF106566B for ; Sat, 13 Jun 2009 10:04:36 +0000 (UTC) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id D30F78FC16 for ; Sat, 13 Jun 2009 10:04:36 +0000 (UTC) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n5DA4at9092055 for ; Sat, 13 Jun 2009 10:04:36 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n5DA4aZu092053 for perforce@freebsd.org; Sat, 13 Jun 2009 10:04:36 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Date: Sat, 13 Jun 2009 10:04:36 GMT Message-Id: <200906131004.n5DA4aZu092053@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to bb+lists.freebsd.perforce@cyrus.watson.org using -f From: Robert Watson To: Perforce Change Reviews Cc: Subject: PERFORCE change 164255 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 13 Jun 2009 10:04:38 -0000 http://perforce.freebsd.org/chv.cgi?CH=164255 Change 164255 by rwatson@rwatson_freebsd_capabilities on 2009/06/13 10:04:01 Remove CAP_SEEK from shared object capabilities passed into [further] sandboxes -- it isn't required by the linker. Affected files ... .. //depot/projects/trustedbsd/capabilities/src/lib/libcapability/libcapability_host.c#11 edit Differences ... ==== //depot/projects/trustedbsd/capabilities/src/lib/libcapability/libcapability_host.c#11 (text+ko) ==== @@ -30,7 +30,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $P4: //depot/projects/trustedbsd/capabilities/src/lib/libcapability/libcapability_host.c#10 $ + * $P4: //depot/projects/trustedbsd/capabilities/src/lib/libcapability/libcapability_host.c#11 $ */ #include @@ -54,7 +54,7 @@ #define LIBCAPABILITY_CAPMASK_DEVNULL (CAP_EVENT | CAP_READ | CAP_WRITE) #define LIBCAPABILITY_CAPMASK_SOCK (CAP_EVENT | CAP_READ | CAP_WRITE) #define LIBCAPABILITY_CAPMASK_BIN (CAP_READ | CAP_EVENT | CAP_FSTAT | \ - CAP_SEEK | CAP_FSTATFS | \ + CAP_FSTATFS | \ CAP_FEXECVE | CAP_MMAP | \ CAP_MAPEXEC) #define LIBCAPABILITY_CAPMASK_SANDBOX LIBCAPABILITY_CAPMASK_BIN From owner-p4-projects@FreeBSD.ORG Sat Jun 13 10:07:40 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 67AB91065674; Sat, 13 Jun 2009 10:07:40 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 281C0106566B for ; Sat, 13 Jun 2009 10:07:40 +0000 (UTC) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 151B08FC1D for ; Sat, 13 Jun 2009 10:07:40 +0000 (UTC) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n5DA7dkE092593 for ; Sat, 13 Jun 2009 10:07:39 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n5DA7dvf092591 for perforce@freebsd.org; Sat, 13 Jun 2009 10:07:39 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Date: Sat, 13 Jun 2009 10:07:39 GMT Message-Id: <200906131007.n5DA7dvf092591@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to bb+lists.freebsd.perforce@cyrus.watson.org using -f From: Robert Watson To: Perforce Change Reviews Cc: Subject: PERFORCE change 164256 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 13 Jun 2009 10:07:41 -0000 http://perforce.freebsd.org/chv.cgi?CH=164256 Change 164256 by rwatson@rwatson_freebsd_capabilities on 2009/06/13 10:07:05 Trim debugging output. Affected files ... .. //depot/projects/trustedbsd/capabilities/src/tools/cap/sandbox_echo/sandbox_echo.c#4 edit Differences ... ==== //depot/projects/trustedbsd/capabilities/src/tools/cap/sandbox_echo/sandbox_echo.c#4 (text+ko) ==== @@ -64,7 +64,6 @@ if (argc > 1 && strcmp(argv[1], "nested") == 0) { - fprintf(stderr, "%s\n", getenv("LD_CAPLIBINDEX")); if (ld_caplibindex_lookup(MYNAME, &fd) < 0) err(-10, "ld_caplibindex_lookup(%s)", MYNAME); From owner-p4-projects@FreeBSD.ORG Sat Jun 13 10:08:41 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 944521065677; Sat, 13 Jun 2009 10:08:41 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 5171E1065675 for ; Sat, 13 Jun 2009 10:08:41 +0000 (UTC) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 3E24F8FC1E for ; Sat, 13 Jun 2009 10:08:41 +0000 (UTC) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n5DA8fvx092666 for ; Sat, 13 Jun 2009 10:08:41 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n5DA8fYw092664 for perforce@freebsd.org; Sat, 13 Jun 2009 10:08:41 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Date: Sat, 13 Jun 2009 10:08:41 GMT Message-Id: <200906131008.n5DA8fYw092664@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to bb+lists.freebsd.perforce@cyrus.watson.org using -f From: Robert Watson To: Perforce Change Reviews Cc: Subject: PERFORCE change 164257 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 13 Jun 2009 10:08:42 -0000 http://perforce.freebsd.org/chv.cgi?CH=164257 Change 164257 by rwatson@rwatson_freebsd_capabilities on 2009/06/13 10:07:58 Clarifying comment. Affected files ... .. //depot/projects/trustedbsd/capabilities/src/tools/cap/sandbox_echo/sandbox_echo.c#5 edit Differences ... ==== //depot/projects/trustedbsd/capabilities/src/tools/cap/sandbox_echo/sandbox_echo.c#5 (text+ko) ==== @@ -62,6 +62,10 @@ if (lcs_get(&lchp) < 0) errx(-1, "libcapability sandbox binary"); + /* + * If 'nested mode is requested, launch a further sandbox and proxy + * requests to it. Otherwise, service the requests in this sandbox. + */ if (argc > 1 && strcmp(argv[1], "nested") == 0) { if (ld_caplibindex_lookup(MYNAME, &fd) < 0) From owner-p4-projects@FreeBSD.ORG Sat Jun 13 10:47:21 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 393761065673; Sat, 13 Jun 2009 10:47:21 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id ED294106566B for ; Sat, 13 Jun 2009 10:47:20 +0000 (UTC) (envelope-from zhaoshuai@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id DB12A8FC0A for ; Sat, 13 Jun 2009 10:47:20 +0000 (UTC) (envelope-from zhaoshuai@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n5DAlKrY004717 for ; Sat, 13 Jun 2009 10:47:20 GMT (envelope-from zhaoshuai@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n5DAlK1H004711 for perforce@freebsd.org; Sat, 13 Jun 2009 10:47:20 GMT (envelope-from zhaoshuai@FreeBSD.org) Date: Sat, 13 Jun 2009 10:47:20 GMT Message-Id: <200906131047.n5DAlK1H004711@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to zhaoshuai@FreeBSD.org using -f From: Zhao Shuai To: Perforce Change Reviews Cc: Subject: PERFORCE change 164258 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 13 Jun 2009 10:47:22 -0000 http://perforce.freebsd.org/chv.cgi?CH=164258 Change 164258 by zhaoshuai@zhaoshuai on 2009/06/13 10:46:37 find a bug when testing fifo select. Affected files ... .. //depot/projects/soc2009/fifo/fifo_test/functionality/select.c#3 edit Differences ... ==== //depot/projects/soc2009/fifo/fifo_test/functionality/select.c#3 (text+ko) ==== @@ -1,7 +1,10 @@ /* * Basic FIFO select test. * - * 1. select on read descriptor - OK + * 1. select on read descriptor - XXX + * if writer exits before us, "top" shows that we are busy + * consuming CPU rather than sleep. + * * 2. select on write descriptor - OK */ @@ -20,11 +23,9 @@ FD_ZERO(&rset); FD_ZERO(&wset); + fd = open(FIFO_PATH, O_RDONLY | O_NONBLOCK); /* - fd = open(FIFO_PATH, O_RDONLY | O_NONBLOCK); - */ fd = open(FIFO_PATH, O_WRONLY | O_NONBLOCK); - /* fd = open(FIFO_PATH, O_WRONLY); */ if (fd < 0) { @@ -35,24 +36,24 @@ FD_SET(fd, &rset); FD_SET(fd, &wset); + ret = select(fd+1, &rset, NULL, NULL, NULL); /* - ret = select(fd+1, &rset, NULL, NULL, NULL); + ret = select(fd+1, NULL, &wset, NULL, NULL); */ - ret = select(fd+1, NULL, &wset, NULL, NULL); if (ret > 0) { - /* if (FD_ISSET(fd, &rset)) { n = read(fd, buf, BUF_SIZE); printf("%s", buf); memset(buf, 0, n); } - */ + /* if (FD_ISSET(fd, &wset)) { n = read(0, buf, BUF_SIZE); if (n <= 0) return (0); write(fd, buf, n); } + */ } else if (ret < 0) { /* select error */ perror("select error"); return (2); From owner-p4-projects@FreeBSD.ORG Sat Jun 13 11:50:25 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 7EE301065674; Sat, 13 Jun 2009 11:50:25 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 3CCD6106564A for ; Sat, 13 Jun 2009 11:50:25 +0000 (UTC) (envelope-from mav@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 29BBE8FC0A for ; Sat, 13 Jun 2009 11:50:25 +0000 (UTC) (envelope-from mav@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n5DBoPkc015968 for ; Sat, 13 Jun 2009 11:50:25 GMT (envelope-from mav@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n5DBoPAm015966 for perforce@freebsd.org; Sat, 13 Jun 2009 11:50:25 GMT (envelope-from mav@freebsd.org) Date: Sat, 13 Jun 2009 11:50:25 GMT Message-Id: <200906131150.n5DBoPAm015966@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to mav@freebsd.org using -f From: Alexander Motin To: Perforce Change Reviews Cc: Subject: PERFORCE change 164261 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 13 Jun 2009 11:50:26 -0000 http://perforce.freebsd.org/chv.cgi?CH=164261 Change 164261 by mav@mav_mavbook on 2009/06/13 11:49:27 Make Soft Reset sequence to be an atomic operation for XPT. SiI HBAs to it completely in silicon. Affected files ... .. //depot/projects/scottl-camlock/src/sys/cam/ata/ata_xpt.c#14 edit .. //depot/projects/scottl-camlock/src/sys/dev/ahci/ahci.c#23 edit Differences ... ==== //depot/projects/scottl-camlock/src/sys/cam/ata/ata_xpt.c#14 (text+ko) ==== @@ -92,7 +92,6 @@ typedef enum { PROBE_RESET, - PROBE_UNRESET, PROBE_IDENTIFY, PROBE_INQUIRY, PROBE_FULL_INQUIRY, @@ -101,7 +100,6 @@ static char *probe_action_text[] = { "PROBE_RESET", - "PROBE_UNRESET", "PROBE_IDENTIFY", "PROBE_INQUIRY", "PROBE_FULL_INQUIRY", @@ -281,8 +279,8 @@ * delay before attempting to probe the device. * For HBAs that don't do bus resets, this won't make a difference. */ -// cam_periph_freeze_after_event(periph, &periph->path->bus->last_reset, -// scsi_delay); + cam_periph_freeze_after_event(periph, &periph->path->bus->last_reset, + scsi_delay); probeschedule(periph); return(CAM_REQ_CMP); } @@ -330,7 +328,6 @@ switch (softc->action) { case PROBE_RESET: - case PROBE_UNRESET: cam_fill_ataio(ataio, 4, probedone, @@ -339,7 +336,7 @@ /*data_ptr*/NULL, /*dxfer_len*/0, 30 * 1000); - ata_reset_cmd(ataio, softc->action == PROBE_RESET ? 1 : 0); + ata_reset_cmd(ataio, 1); break; case PROBE_IDENTIFY: { @@ -559,25 +556,6 @@ switch (softc->action) { case PROBE_RESET: if ((done_ccb->ccb_h.status & CAM_STATUS_MASK) == CAM_REQ_CMP) { - PROBE_SET_ACTION(softc, PROBE_UNRESET); - xpt_release_ccb(done_ccb); - xpt_schedule(periph, priority); - return; - } else if (cam_periph_error(done_ccb, 0, - done_ccb->ccb_h.target_lun > 0 - ? SF_RETRY_UA|SF_QUIET_IR - : SF_RETRY_UA, - &softc->saved_ccb) == ERESTART) { - return; - } else if ((done_ccb->ccb_h.status & CAM_DEV_QFRZN) != 0) { - /* Don't wedge the queue */ - xpt_release_devq(done_ccb->ccb_h.path, /*count*/1, - /*run_queue*/TRUE); - } - xpt_release_ccb(done_ccb); - break; - case PROBE_UNRESET: - if ((done_ccb->ccb_h.status & CAM_STATUS_MASK) == CAM_REQ_CMP) { printf("SIGNATURE: %02x%02x%02x%02x\n", done_ccb->ataio.res.lba_high, done_ccb->ataio.res.lba_mid, done_ccb->ataio.res.lba_low, done_ccb->ataio.res.sector_count); ==== //depot/projects/scottl-camlock/src/sys/dev/ahci/ahci.c#23 (text+ko) ==== @@ -69,7 +69,7 @@ static void ahci_execute_transaction(struct ahci_slot *slot); static void ahci_timeout(struct ahci_slot *slot); static void ahci_end_transaction(struct ahci_slot *slot, enum ahci_err_type et); -static int ahci_hardreset(device_t dev, int port, uint32_t *signature); +static int ahci_hardreset(device_t dev); static int ahci_setup_fis(struct ahci_cmd_tab *ctp, union ccb *ccb, int tag); static void ahci_dmainit(device_t dev); static void ahci_dmasetupc_cb(void *xsc, bus_dma_segment_t *segs, int nsegs, int error); @@ -79,7 +79,7 @@ static void ahci_reset(device_t dev); static void ahci_start(device_t dev); static void ahci_stop(device_t dev); -//static void ahci_clo(device_t dev); +static void ahci_clo(device_t dev); static void ahci_start_fr(device_t dev); static void ahci_stop_fr(device_t dev); @@ -848,6 +848,7 @@ >> AHCI_P_CMD_CCS_SHIFT; /* Kick controller into sane state */ ahci_stop(dev); + ahci_clo(dev); ahci_start(dev); res = ch->rslots; err = ch->rslots & (cstatus | sstatus); @@ -1030,6 +1031,10 @@ if ((ccb->ccb_h.func_code == XPT_ATA_IO) && (ccb->ataio.cmd.flags & CAM_ATAIO_CONTROL) && ccb->ataio.cmd.control & ATA_A_RESET) { + /* Kick controller into sane state */ + ahci_stop(dev); + ahci_clo(dev); + ahci_start(dev); clp->cmd_flags |= AHCI_CMD_RESET | AHCI_CMD_CLR_BUSY; } clp->bytecount = 0; @@ -1080,6 +1085,7 @@ et = CAM_CMD_TIMEOUT; /* Kick controller into sane state */ ahci_stop(ch->dev); + ahci_clo(ch->dev); ahci_start(ch->dev); } ahci_end_transaction(slot, et); @@ -1172,33 +1178,34 @@ bus_dmamap_unload(ch->dma.data_tag, slot->dma.data_map); } /* Set proper result status. */ + ccb->ccb_h.status &= ~CAM_STATUS_MASK; switch (et) { case AHCI_ERR_NONE: - ccb->ccb_h.status = CAM_REQ_CMP; + ccb->ccb_h.status |= CAM_REQ_CMP; if (ccb->ccb_h.func_code == XPT_SCSI_IO) ccb->csio.scsi_status = SCSI_STATUS_OK; break; case AHCI_ERR_INVALID: - ccb->ccb_h.status = CAM_REQ_INVALID; + ccb->ccb_h.status |= CAM_REQ_INVALID; break; case AHCI_ERR_REAL: if (ccb->ccb_h.func_code == XPT_SCSI_IO) { - ccb->ccb_h.status = CAM_SCSI_STATUS_ERROR; + ccb->ccb_h.status |= CAM_SCSI_STATUS_ERROR; ccb->csio.scsi_status = SCSI_STATUS_CHECK_COND; } else - ccb->ccb_h.status = CAM_REQ_CMP_ERR; + ccb->ccb_h.status |= CAM_REQ_CMP_ERR; break; case AHCI_ERR_BTW: - ccb->ccb_h.status = CAM_REQUEUE_REQ; + ccb->ccb_h.status |= CAM_REQUEUE_REQ; break; case AHCI_ERR_RESET: - ccb->ccb_h.status = CAM_SCSI_BUS_RESET; + ccb->ccb_h.status |= CAM_SCSI_BUS_RESET; break; case AHCI_ERR_TIMEOUT: - ccb->ccb_h.status = CAM_CMD_TIMEOUT; + ccb->ccb_h.status |= CAM_CMD_TIMEOUT; break; default: - ccb->ccb_h.status = CAM_REQ_CMP_ERR; + ccb->ccb_h.status |= CAM_REQ_CMP_ERR; } /* Free slot. */ ch->rslots &= ~(1 << slot->slot); @@ -1210,13 +1217,27 @@ (ccb->ataio.cmd.flags & CAM_ATAIO_FPDMA)) { ch->numtslots--; } + /* If it was first request of reset sequence nod no error, + * proceed to second. */ + if ((ccb->ccb_h.func_code == XPT_ATA_IO) && + (ccb->ataio.cmd.flags & CAM_ATAIO_CONTROL) && + (ccb->ataio.cmd.control & ATA_A_RESET) && + et == AHCI_ERR_NONE) { + ccb->ataio.cmd.control &= ~ATA_A_RESET; + ahci_begin_transaction(dev, ccb); + return; + } xpt_done(ccb); if (ch->frozen && ch->numrslots == 0) { union ccb *fccb = ch->frozen; //device_printf(dev, "Unfreeze\n"); ch->frozen = NULL; ahci_begin_transaction(dev, fccb); - xpt_release_simq(ch->sim, TRUE); + /* If frozen command is not reset - release queue. + * Reset will be released after it is finished. */ + if ((fccb->ccb_h.func_code == XPT_ATA_IO) && + (fccb->ataio.cmd.flags & CAM_ATAIO_CONTROL) == 0) + xpt_release_simq(ch->sim, TRUE); } } @@ -1227,12 +1248,12 @@ u_int32_t cmd; /* Clear SATA error register */ - ATA_OUTL(ch->r_mem, AHCI_P_SERR, ATA_INL(ch->r_mem, AHCI_P_SERR)); + ATA_OUTL(ch->r_mem, AHCI_P_SERR, 0xFFFFFFFF); /* Clear any interrupts pending on this channel */ - ATA_OUTL(ch->r_mem, AHCI_P_IS, ATA_INL(ch->r_mem, AHCI_P_IS)); + ATA_OUTL(ch->r_mem, AHCI_P_IS, 0xFFFFFFFF); /* Start operations on this channel */ cmd = ATA_INL(ch->r_mem, AHCI_P_CMD); - ATA_OUTL(ch->r_mem, AHCI_P_CMD, cmd | AHCI_P_CMD_ST); + ATA_OUTL(ch->r_mem, AHCI_P_CMD, cmd | AHCI_P_CMD_ST | AHCI_P_CMD_PMA); // (ch->devices & ATA_PORTMULTIPLIER ? AHCI_P_CMD_PMA : 0)); } @@ -1257,7 +1278,6 @@ } while (ATA_INL(ch->r_mem, AHCI_P_CMD) & AHCI_P_CMD_CR); } -#if 0 static void ahci_clo(device_t dev) { @@ -1280,7 +1300,6 @@ } while (ATA_INL(ch->r_mem, AHCI_P_CMD) & AHCI_P_CMD_CLO); } } -#endif static void ahci_stop_fr(device_t dev) @@ -1336,23 +1355,19 @@ } static int -ahci_hardreset(device_t dev, int port, uint32_t *signature) +ahci_hardreset(device_t dev) { - struct ahci_channel *ch = device_get_softc(dev); - *signature = 0xffffffff; ahci_stop(dev); /* Reset port */ if (!ahci_sata_phy_reset(dev, 0)) return (ENOENT); /* Wait for clearing busy status. */ if (ahci_wait_ready(dev, 10000)) { - device_printf(dev, "hardware reset timeout\n"); - return (EBUSY); + device_printf(dev, "device ready timeout\n"); + ahci_clo(dev); } - *signature = ATA_INL(ch->r_mem, AHCI_P_SIG); ahci_start(dev); - return (0); } @@ -1360,7 +1375,6 @@ ahci_reset(device_t dev) { struct ahci_channel *ch = device_get_softc(dev); - u_int32_t signature; if (bootverbose) device_printf(dev, "AHCI reset...\n"); @@ -1368,7 +1382,7 @@ /* Disable port interrupts */ ATA_OUTL(ch->r_mem, AHCI_P_IE, 0); /* Reset and reconnect PHY, */ - if (ahci_hardreset(dev, -1, &signature)) { + if (ahci_hardreset(dev)) { if (bootverbose) device_printf(dev, "AHCI reset done: phy reset found no device\n"); @@ -1448,8 +1462,8 @@ u_int32_t status; int timeout; - /* Wait up to 1 second for "connect well" */ - for (timeout = 0; timeout < 1000 ; timeout++) { + /* Wait up to 100ms for "connect well" */ + for (timeout = 0; timeout < 100 ; timeout++) { status = ATA_INL(ch->r_mem, AHCI_P_SSTS); if (((status & ATA_SS_DET_MASK) == ATA_SS_DET_PHY_ONLINE) && ((status & ATA_SS_SPD_MASK) != ATA_SS_SPD_NO_SPEED) && @@ -1457,7 +1471,7 @@ break; DELAY(1000); } - if (timeout >= 1000) { + if (timeout >= 100) { if (bootverbose) { device_printf(ch->dev, "SATA connect timeout status=%08x\n", status); @@ -1487,11 +1501,13 @@ if (bootverbose) device_printf(dev, "hardware reset ...\n"); - ATA_OUTL(ch->r_mem, AHCI_P_SCTL, ATA_SC_DET_RESET); + ATA_OUTL(ch->r_mem, AHCI_P_SCTL, ATA_SC_IPM_DIS_PARTIAL | + ATA_SC_IPM_DIS_SLUMBER | ATA_SC_DET_RESET); DELAY(50000); ATA_OUTL(ch->r_mem, AHCI_P_SCTL, - ATA_SC_DET_IDLE /*| ATA_SC_SPD_SPEED_GEN1*/ | ((ch->pm_level > 0) ? 0 : + ATA_SC_DET_IDLE | ATA_SC_SPD_SPEED_GEN1 | ((ch->pm_level > 0) ? 0 : (ATA_SC_IPM_DIS_PARTIAL | ATA_SC_IPM_DIS_SLUMBER))); + DELAY(50000); return (ahci_sata_connect(ch)); } @@ -1519,12 +1535,18 @@ /* Check for command collision. */ if (ahci_check_collision(dev, ccb)) { /* Freeze command. */ -device_printf(dev, "Freeze\n"); +//device_printf(dev, "Freeze\n"); /* We have only one frozen slot, so freeze simq also. */ xpt_freeze_simq(ch->sim, 1); ch->frozen = ccb; return; } + /* If it is a reset sequence - freeze the queue. */ + if ((ccb->ccb_h.func_code == XPT_ATA_IO) && + (ccb->ataio.cmd.flags & CAM_ATAIO_CONTROL)) { + xpt_freeze_simq(ch->sim, 1); + ccb->ccb_h.status |= CAM_RELEASE_SIMQ; + } ahci_begin_transaction(dev, ccb); break; case XPT_EN_LUN: /* Enable LUN as a target */ From owner-p4-projects@FreeBSD.ORG Sat Jun 13 12:47:24 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 007441065674; Sat, 13 Jun 2009 12:47:24 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id B1CBC1065672 for ; Sat, 13 Jun 2009 12:47:23 +0000 (UTC) (envelope-from truncs@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 9FCCE8FC12 for ; Sat, 13 Jun 2009 12:47:23 +0000 (UTC) (envelope-from truncs@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n5DClN7T040801 for ; Sat, 13 Jun 2009 12:47:23 GMT (envelope-from truncs@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n5DClNqS040799 for perforce@freebsd.org; Sat, 13 Jun 2009 12:47:23 GMT (envelope-from truncs@FreeBSD.org) Date: Sat, 13 Jun 2009 12:47:23 GMT Message-Id: <200906131247.n5DClNqS040799@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to truncs@FreeBSD.org using -f From: Aditya Sarawgi To: Perforce Change Reviews Cc: Subject: PERFORCE change 164263 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 13 Jun 2009 12:47:25 -0000 http://perforce.freebsd.org/chv.cgi?CH=164263 Change 164263 by truncs@aditya on 2009/06/13 12:46:57 Block group descriptor from NetBSD. Affected files ... .. //depot/projects/soc2009/soc_ext2fs/src/sys/gnu/fs/ext2fs/ext2_fs.h#16 edit Differences ... ==== //depot/projects/soc2009/soc_ext2fs/src/sys/gnu/fs/ext2fs/ext2_fs.h#16 (text+ko) ==== @@ -196,19 +196,17 @@ /* same inode or on next free entry */ }; -/* - * Structure of a blocks group descriptor - */ -struct ext2_group_desc -{ - __u32 bg_block_bitmap; /* Blocks bitmap block */ - __u32 bg_inode_bitmap; /* Inodes bitmap block */ - __u32 bg_inode_table; /* Inodes table block */ - __u16 bg_free_blocks_count; /* Free blocks count */ - __u16 bg_free_inodes_count; /* Free inodes count */ - __u16 bg_used_dirs_count; /* Directories count */ - __u16 bg_pad; - __u32 bg_reserved[3]; +/* ext2 file system block group descriptor */ + +struct ext2_gd { + u_int32_t ext2bgd_b_bitmap; /* blocks bitmap block */ + u_int32_t ext2bgd_i_bitmap; /* inodes bitmap block */ + u_int32_t ext2bgd_i_tables; /* inodes table block */ + u_int16_t ext2bgd_nbfree; /* number of free blocks */ + u_int16_t ext2bgd_nifree; /* number of free inodes */ + u_int16_t ext2bgd_ndirs; /* number of directories */ + u_int16_t reserved; + u_int32_t reserved2[3]; }; /* From owner-p4-projects@FreeBSD.ORG Sat Jun 13 12:58:35 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 69DE91065670; Sat, 13 Jun 2009 12:58:35 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 29C2C106564A for ; Sat, 13 Jun 2009 12:58:35 +0000 (UTC) (envelope-from anchie@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 1742B8FC1B for ; Sat, 13 Jun 2009 12:58:35 +0000 (UTC) (envelope-from anchie@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n5DCwY2D042980 for ; Sat, 13 Jun 2009 12:58:34 GMT (envelope-from anchie@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n5DCwYfl042976 for perforce@freebsd.org; Sat, 13 Jun 2009 12:58:34 GMT (envelope-from anchie@FreeBSD.org) Date: Sat, 13 Jun 2009 12:58:34 GMT Message-Id: <200906131258.n5DCwYfl042976@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to anchie@FreeBSD.org using -f From: Ana Kukec To: Perforce Change Reviews Cc: Subject: PERFORCE change 164264 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 13 Jun 2009 12:58:36 -0000 http://perforce.freebsd.org/chv.cgi?CH=164264 Change 164264 by anchie@anchie_malimis on 2009/06/13 12:57:33 Introduction of the initial code for sending RTM_SND message to SeND userspace application. Affected files ... .. //depot/projects/soc2009/anchie_send/src/sys/net/route.h#2 edit .. //depot/projects/soc2009/anchie_send/src/sys/net/rtsock.c#2 edit .. //depot/projects/soc2009/anchie_send/src/sys/netinet6/icmp6.c#5 edit .. //depot/projects/soc2009/anchie_send/src/sys/netinet6/send.c#7 edit .. //depot/projects/soc2009/anchie_send/src/sys/netinet6/send.h#7 edit Differences ... ==== //depot/projects/soc2009/anchie_send/src/sys/net/route.h#2 (text+ko) ==== @@ -258,6 +258,7 @@ #define RTM_DELMADDR 0x10 /* mcast group membership being deleted */ #define RTM_IFANNOUNCE 0x11 /* iface arrival/departure */ #define RTM_IEEE80211 0x12 /* IEEE80211 wireless event */ +#define RTM_SND 0x13 /* SeND event. */ /* * Bitmask values for rtm_inits and rmx_locks. @@ -378,6 +379,7 @@ struct ifmultiaddr; void rt_ieee80211msg(struct ifnet *, int, void *, size_t); +void rt_sndmsg(struct ifnet *, int, void *, size_t data_len); void rt_ifannouncemsg(struct ifnet *, int); void rt_ifmsg(struct ifnet *); void rt_missmsg(int, struct rt_addrinfo *, int, int); ==== //depot/projects/soc2009/anchie_send/src/sys/net/rtsock.c#2 (text+ko) ==== @@ -1153,6 +1153,47 @@ } /* + * Generation of the routing socket message indicating SeND event. + */ +void +rt_sndmsg(struct ifnet *ifp, int in, void *data, size_t data_len) +{ + struct mbuf *m; + struct rt_addrinfo info; + + if (in) { + /* Incoming traffic sent to userspace for SeND validation */ + m = rt_makeifannouncemsg(ifp, RTM_SND, RTM_SND_IN, &info); + } else { + /* Outgoing traffic sent to userspace for SeND protection */ + m = rt_makeifannouncemsg(ifp, RTM_SND, RTM_SND_OUT, &info); + } + if (m != NULL) { + /* + * Append ND/SeND message to ifannounce hdr. + * Taken from rt_ieee80211msg(). + */ + if (data_len > M_TRAILINGSPACE(m)) { + struct mbuf *n = m_get(M_NOWAIT, MT_DATA); + if (n == NULL) { + m_freem(m); + return; + } + bcopy(data, mtod(n, void *), data_len); + n->m_len = data_len; + m->m_next = n; + } else if (data_len > 0) { + bcopy(data, mtod(m, u_int8_t *) + m->m_len, data_len); + m->m_len += data_len; + } + if (m->m_flags & M_PKTHDR) + m->m_pkthdr.len += data_len; + mtod(m, struct if_announcemsghdr *)->ifan_msglen += data_len; + rt_dispatch(m, NULL); + } +} + +/* * This is called to generate routing socket messages indicating * IEEE80211 wireless events. * XXX we piggyback on the RTM_IFANNOUNCE msg format in a clumsy way. ==== //depot/projects/soc2009/anchie_send/src/sys/netinet6/icmp6.c#5 (text+ko) ==== @@ -410,6 +410,9 @@ int icmp6len = m->m_pkthdr.len - *offp; int code, sum, noff; char ip6bufs[INET6_ADDRSTRLEN], ip6bufd[INET6_ADDRSTRLEN]; + int in; + + in = 1; ifp = m->m_pkthdr.rcvif; @@ -803,13 +806,16 @@ /* send incoming SeND-protected/ND packet to sendd */ if (send_input_hook != NULL) - send_input_hook(); - + send_output_hook(in, ifp, m, icmp6len); /* give up local */ - nd6_ns_input(m, off, icmp6len); + /* nd6_ns_input() will be called in X_send_input_hook() */ + nd6_ns_input(in, m, off, icmp6len); m = NULL; goto freeit; } + if (send_output_hook != NULL) + send_output_hook(in, ifp, n, icmp6len); + /* nd6_ns_input() will be called in X_send_input_hook() */ nd6_ns_input(n, off, icmp6len); /* m stays. */ break; ==== //depot/projects/soc2009/anchie_send/src/sys/netinet6/send.c#7 (text+ko) ==== @@ -9,13 +9,29 @@ #include -static int X_send_input_hook(void); +static int X_send_input_hook(void); +static int X_send_output_hook(int, struct ifnet *, struct mbuf *, int); + + static int X_send_input_hook(void) { - /* send module is loaded, send incoming packet to sendd */ + /* + * send module is loaded, process incoming packets passed from + * sendd to kernel. Outgoing packets are sent directly to + * corresponding node's sendd.(?) + */ + + return 0; +} + +static int +X_send_output_hook(int in, struct ifnet *ifp, struct mbuf *m, int icmp6len) +{ + /* send module is loaded, send incoming or outgoing traffic to sendd */ + rt_sndmsg(ifp, in, m, icmp6len); return 0; } @@ -27,7 +43,7 @@ switch (type) { case MOD_LOAD: - send_input_hook = X_send_input_hook; + send_output_hook = X_send_output_hook; break; case MOD_UNLOAD: ==== //depot/projects/soc2009/anchie_send/src/sys/netinet6/send.h#7 (text+ko) ==== @@ -1,2 +1,12 @@ /* send.c */ -int (*send_input_hook)(struct mbuf *, int, int); +int (*send_output_hook)(int, struct ifnet *, struct mbuf *, int, int); + +/* Message formats for messages from ND to applications (sendd) via the + * routing socket. These messages are appended to an if_announcemsghdr + * structure. + */ +struct snd_message_event { +} + +#define RTM_SND_OUT 0 /* outgoing traffic sent to sendd */ +#define RTM_SND_IN 1 /* incoming traffic sent to sendd */ From owner-p4-projects@FreeBSD.ORG Sat Jun 13 13:51:40 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 006C21065674; Sat, 13 Jun 2009 13:51:40 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id B44E21065670 for ; Sat, 13 Jun 2009 13:51:39 +0000 (UTC) (envelope-from truncs@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id A16BF8FC0A for ; Sat, 13 Jun 2009 13:51:39 +0000 (UTC) (envelope-from truncs@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n5DDpd6m057718 for ; Sat, 13 Jun 2009 13:51:39 GMT (envelope-from truncs@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n5DDpdDm057716 for perforce@freebsd.org; Sat, 13 Jun 2009 13:51:39 GMT (envelope-from truncs@FreeBSD.org) Date: Sat, 13 Jun 2009 13:51:39 GMT Message-Id: <200906131351.n5DDpdDm057716@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to truncs@FreeBSD.org using -f From: Aditya Sarawgi To: Perforce Change Reviews Cc: Subject: PERFORCE change 164268 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 13 Jun 2009 13:51:40 -0000 http://perforce.freebsd.org/chv.cgi?CH=164268 Change 164268 by truncs@aditya on 2009/06/13 13:51:12 Renaming to new block group descriptor Affected files ... .. //depot/projects/soc2009/soc_ext2fs/src/sys/gnu/fs/ext2fs/ext2_extern.h#4 edit .. //depot/projects/soc2009/soc_ext2fs/src/sys/gnu/fs/ext2fs/ext2_fs.h#17 edit .. //depot/projects/soc2009/soc_ext2fs/src/sys/gnu/fs/ext2fs/ext2_linux_balloc.c#7 edit .. //depot/projects/soc2009/soc_ext2fs/src/sys/gnu/fs/ext2fs/ext2_linux_ialloc.c#7 edit .. //depot/projects/soc2009/soc_ext2fs/src/sys/gnu/fs/ext2fs/ext2_vfsops.c#10 edit .. //depot/projects/soc2009/soc_ext2fs/src/sys/gnu/fs/ext2fs/fs.h#7 edit Differences ... ==== //depot/projects/soc2009/soc_ext2fs/src/sys/gnu/fs/ext2fs/ext2_extern.h#4 (text+ko) ==== @@ -78,7 +78,7 @@ struct inode *, struct componentname *); int ext2_dirempty(struct inode *, ino_t, struct ucred *); int ext2_checkpath(struct inode *, struct inode *, struct ucred *); -struct ext2_group_desc * get_group_desc(struct mount * , +struct ext2_gd * get_group_desc(struct mount * , unsigned int , struct buf ** ); int ext2_group_sparse(int group); void ext2_discard_prealloc(struct inode *); ==== //depot/projects/soc2009/soc_ext2fs/src/sys/gnu/fs/ext2fs/ext2_fs.h#17 (text+ko) ==== @@ -218,7 +218,7 @@ # define EXT2_DESC_PER_BLOCK_BITS(s) (EXT2_SB(s)->s_desc_per_block_bits) #else # define EXT2_BLOCKS_PER_GROUP(s) ((s)->e2fs_bpg) -# define EXT2_DESC_PER_BLOCK(s) (EXT2_BLOCK_SIZE(s) / sizeof (struct ext2_group_desc)) +# define EXT2_DESC_PER_BLOCK(s) (EXT2_BLOCK_SIZE(s) / sizeof (struct ext2_gd)) #endif ==== //depot/projects/soc2009/soc_ext2fs/src/sys/gnu/fs/ext2fs/ext2_linux_balloc.c#7 (text+ko) ==== @@ -72,17 +72,17 @@ unsigned long bitmap_nr) { struct m_ext2fs *sb = VFSTOEXT2(mp)->um_e2fs; - struct ext2_group_desc * gdp; + struct ext2_gd * gdp; struct buffer_head * bh; int error; gdp = get_group_desc (mp, block_group, NULL); if ((error = bread (VFSTOEXT2(mp)->um_devvp, - fsbtodb(sb, gdp->bg_block_bitmap),sb->e2fs_bsize, NOCRED, &bh)) != 0) + fsbtodb(sb, gdp->ext2bgd_b_bitmap),sb->e2fs_bsize, NOCRED, &bh)) != 0) panic ( "read_block_bitmap: " "Cannot read block bitmap - " "block_group = %d, block_bitmap = %lu", - block_group, (unsigned long) gdp->bg_block_bitmap); + block_group, (unsigned long) gdp->ext2bgd_b_bitmap); sb->e2fs_bbn[bitmap_nr] = block_group; sb->e2fs_bb[bitmap_nr] = bh; LCK_BUF(bh) @@ -185,7 +185,7 @@ unsigned long bit; unsigned long i; int bitmap_nr; - struct ext2_group_desc * gdp; + struct ext2_gd * gdp; struct ext2fs * es; if (!sb) { @@ -218,11 +218,11 @@ gdp = get_group_desc (mp, block_group, &bh2); if (/* test_opt (sb, CHECK_STRICT) && assume always strict ! */ - (in_range (gdp->bg_block_bitmap, block, count) || - in_range (gdp->bg_inode_bitmap, block, count) || - in_range (block, gdp->bg_inode_table, + (in_range (gdp->ext2bgd_b_bitmap, block, count) || + in_range (gdp->ext2bgd_i_bitmap, block, count) || + in_range (block, gdp->ext2bgd_i_tables, sb->e2fs_itpg) || - in_range (block + count - 1, gdp->bg_inode_table, + in_range (block + count - 1, gdp->ext2bgd_i_tables, sb->e2fs_itpg))) panic ( "ext2_free_blocks: " "Freeing blocks in system zones - " @@ -235,7 +235,7 @@ "bit already cleared for block %lu", block); else { - gdp->bg_free_blocks_count++; + gdp->ext2bgd_nbfree++; es->e2fs_fbcount++; } } @@ -270,7 +270,7 @@ char * p, * r; int i, j, k, tmp; int bitmap_nr; - struct ext2_group_desc * gdp; + struct ext2_gd * gdp; struct ext2fs * es; #ifdef EXT2FS_DEBUG @@ -293,7 +293,7 @@ goal = es->e2fs_first_dblock; i = (goal - es->e2fs_first_dblock) / EXT2_BLOCKS_PER_GROUP(sb); gdp = get_group_desc (mp, i, &bh2); - if (gdp->bg_free_blocks_count > 0) { + if (gdp->ext2bgd_nbfree > 0) { j = ((goal - es->e2fs_first_dblock) % EXT2_BLOCKS_PER_GROUP(sb)); #ifdef EXT2FS_DEBUG if (j) @@ -364,7 +364,7 @@ if (i >= sb->e2fs_gcount) i = 0; gdp = get_group_desc (mp, i, &bh2); - if (gdp->bg_free_blocks_count > 0) + if (gdp->ext2bgd_nbfree > 0) break; } if (k >= sb->e2fs_gcount) { @@ -398,14 +398,14 @@ got_block: - ext2_debug ("using block group %d(%d)\n", i, gdp->bg_free_blocks_count); + ext2_debug ("using block group %d(%d)\n", i, gdp->ext2bgd_nbfree); tmp = j + i * EXT2_BLOCKS_PER_GROUP(sb) + es->e2fs_first_dblock; if (/* test_opt (sb, CHECK_STRICT) && we are always strict. */ - (tmp == gdp->bg_block_bitmap || - tmp == gdp->bg_inode_bitmap || - in_range (tmp, gdp->bg_inode_table, sb->e2fs_itpg))) + (tmp == gdp->ext2bgd_b_bitmap || + tmp == gdp->ext2bgd_i_bitmap || + in_range (tmp, gdp->ext2bgd_i_tables, sb->e2fs_itpg))) panic ( "ext2_new_block: " "Allocating block in system zone - " "%dth block = %u in group %u", j, tmp, i); @@ -431,7 +431,7 @@ break; (*prealloc_count)++; } - gdp->bg_free_blocks_count -= *prealloc_count; + gdp->ext2bgd_nbfree -= *prealloc_count; es->e2fs_fbcount -= *prealloc_count; ext2_debug ("Preallocated a further %lu bits.\n", *prealloc_count); @@ -458,7 +458,7 @@ ext2_debug ("allocating block %d. " "Goal hits %d of %d.\n", j, goal_hits, goal_attempts); - gdp->bg_free_blocks_count--; + gdp->ext2bgd_nbfree--; mark_buffer_dirty(bh2); es->e2fs_fbcount--; sb->e2fs_fmod = 1; @@ -474,7 +474,7 @@ struct ext2fs * es; unsigned long desc_count, bitmap_count, x; int bitmap_nr; - struct ext2_group_desc * gdp; + struct ext2_gd * gdp; int i; lock_super (VFSTOEXT2(mp)->um_devvp); @@ -484,12 +484,12 @@ gdp = NULL; for (i = 0; i < sb->e2fs_gcount; i++) { gdp = get_group_desc (mp, i, NULL); - desc_count += gdp->bg_free_blocks_count; + desc_count += gdp->ext2bgd_nbfree; bitmap_nr = load_block_bitmap (mp, i); x = ext2_count_free (sb->e2fs_bb[bitmap_nr], sb->e2fs_bsize); ext2_debug ("group %d: stored = %d, counted = %lu\n", - i, gdp->bg_free_blocks_count, x); + i, gdp->ext2bgd_nbfree, x); bitmap_count += x; } ext2_debug( "stored = %lu, computed = %lu, %lu\n", @@ -538,7 +538,7 @@ unsigned long desc_count, bitmap_count, x; unsigned long desc_blocks; int bitmap_nr; - struct ext2_group_desc * gdp; + struct ext2_gd * gdp; int i, j; lock_super (VFSTOEXT2(mp)->um_devvp); @@ -550,7 +550,7 @@ EXT2_DESC_PER_BLOCK(sb); for (i = 0; i < sb->e2fs_gcount; i++) { gdp = get_group_desc (mp, i, NULL); - desc_count += gdp->bg_free_blocks_count; + desc_count += gdp->ext2bgd_nbfree; bitmap_nr = load_block_bitmap (mp, i); bh = sb->e2fs_bb[bitmap_nr]; @@ -569,28 +569,28 @@ "%d is marked free", j, i); } - if (!block_in_use (gdp->bg_block_bitmap, sb, bh->b_data)) + if (!block_in_use (gdp->ext2bgd_b_bitmap, sb, bh->b_data)) printf ("ext2_check_blocks_bitmap: " "Block bitmap for group %d is marked free", i); - if (!block_in_use (gdp->bg_inode_bitmap, sb, bh->b_data)) + if (!block_in_use (gdp->ext2bgd_i_bitmap, sb, bh->b_data)) printf ("ext2_check_blocks_bitmap: " "Inode bitmap for group %d is marked free", i); for (j = 0; j < sb->e2fs_itpg; j++) - if (!block_in_use (gdp->bg_inode_table + j, sb, bh->b_data)) + if (!block_in_use (gdp->ext2bgd_i_tables + j, sb, bh->b_data)) printf ("ext2_check_blocks_bitmap: " "Block #%d of the inode table in " "group %d is marked free", j, i); x = ext2_count_free (bh, sb->e2fs_bsize); - if (gdp->bg_free_blocks_count != x) + if (gdp->ext2bgd_nbfree != x) printf ("ext2_check_blocks_bitmap: " "Wrong free blocks count for group %d, " "stored = %d, counted = %lu", i, - gdp->bg_free_blocks_count, x); + gdp->ext2bgd_nbfree, x); bitmap_count += x; } if (es->e2fs_fbcount != bitmap_count) ==== //depot/projects/soc2009/soc_ext2fs/src/sys/gnu/fs/ext2fs/ext2_linux_ialloc.c#7 (text+ko) ==== @@ -74,14 +74,14 @@ splx(s); } -struct ext2_group_desc * get_group_desc (struct mount * mp, +struct ext2_gd * get_group_desc (struct mount * mp, unsigned int block_group, struct buffer_head ** bh) { struct m_ext2fs *sb = VFSTOEXT2(mp)->um_e2fs; unsigned long group_desc; unsigned long desc; - struct ext2_group_desc * gdp; + struct ext2_gd * gdp; if (block_group >= sb->e2fs_gcount) panic ("get_group_desc: " @@ -96,7 +96,7 @@ "Group descriptor not loaded - " "block_group = %d, group_desc = %lu, desc = %lu", block_group, group_desc, desc); - gdp = (struct ext2_group_desc *) + gdp = (struct ext2_gd *) sb->e2fs_group_desc[group_desc]->b_data; if (bh) *bh = sb->e2fs_group_desc[group_desc]; @@ -108,19 +108,19 @@ unsigned int bitmap_nr) { struct m_ext2fs *sb = VFSTOEXT2(mp)->um_e2fs; - struct ext2_group_desc * gdp; + struct ext2_gd * gdp; struct buffer_head * bh; int error; gdp = get_group_desc (mp, block_group, NULL); if ((error = bread (VFSTOEXT2(mp)->um_devvp, - fsbtodb(sb, gdp->bg_inode_bitmap), + fsbtodb(sb, gdp->ext2bgd_i_bitmap), sb->e2fs_bsize, NOCRED, &bh)) != 0) panic ( "read_inode_bitmap:" "Cannot read inode bitmap - " "block_group = %lu, inode_bitmap = %lu", - block_group, (unsigned long) gdp->bg_inode_bitmap); + block_group, (unsigned long) gdp->ext2bgd_i_bitmap); sb->e2fs_ibn[bitmap_nr] = block_group; sb->e2fs_ib[bitmap_nr] = bh; LCK_BUF(bh) @@ -208,7 +208,7 @@ unsigned long block_group; unsigned long bit; int bitmap_nr; - struct ext2_group_desc * gdp; + struct ext2_gd * gdp; struct ext2fs * es; if (!inode) @@ -241,9 +241,9 @@ (unsigned long)inode->i_number); else { gdp = get_group_desc (ITOV(inode)->v_mount, block_group, &bh2); - gdp->bg_free_inodes_count++; + gdp->ext2bgd_nifree++; if (S_ISDIR(inode->i_mode)) - gdp->bg_used_dirs_count--; + gdp->ext2bgd_ndirs--; mark_buffer_dirty(bh2); es->e2fs_ficount++; } @@ -265,14 +265,14 @@ * This may be used one day by the NFS server */ static void inc_inode_version (struct inode * inode, - struct ext2_group_desc *gdp, + struct ext2_gd *gdp, int mode) { unsigned long inode_block; struct buffer_head * bh; struct ext2_inode * raw_inode; - inode_block = gdp->bg_inode_table + (((inode->i_number - 1) % + inode_block = gdp->ext2bgd_i_tables + (((inode->i_number - 1) % (inode->i_sb->e2fs_ipg) /(inode->i_sb->e2fs_ipb))); bh = bread (inode->i_sb->s_dev, inode_block, inode->i_sb->e2fs_bsize); if (!bh) { @@ -312,8 +312,8 @@ struct buffer_head * bh2; int i, j, avefreei; int bitmap_nr; - struct ext2_group_desc * gdp; - struct ext2_group_desc * tmp; + struct ext2_gd * gdp; + struct ext2_gd * tmp; struct ext2fs * es; if (!dir) @@ -332,8 +332,8 @@ i = dir->u.ext2_i.i_block_group; for (j = 0; j < sb->u.ext2_sb.e2fs_gcount; j++) { tmp = get_group_desc (sb, i, &bh2); - if ((tmp->bg_used_dirs_count << 8) < - tmp->bg_free_inodes_count) { + if ((tmp->ext2bgd_ndirs << 8) < + tmp->ext2bgd_nifree) { gdp = tmp; break; } @@ -344,11 +344,11 @@ if (!gdp) { for (j = 0; j < sb->e2fs_gcount; j++) { tmp = get_group_desc(ITOV(dir)->v_mount,j,&bh2); - if (tmp->bg_free_inodes_count && - tmp->bg_free_inodes_count >= avefreei) { + if (tmp->ext2bgd_nifree && + tmp->ext2bgd_nifree >= avefreei) { if (!gdp || - (tmp->bg_free_blocks_count > - gdp->bg_free_blocks_count)) { + (tmp->ext2bgd_nbfree > + gdp->ext2bgd_nbfree)) { i = j; gdp = tmp; } @@ -363,7 +363,7 @@ */ i = dir->i_block_group; tmp = get_group_desc (ITOV(dir)->v_mount, i, &bh2); - if (tmp->bg_free_inodes_count) + if (tmp->ext2bgd_nifree) gdp = tmp; else { @@ -376,7 +376,7 @@ if (i >= sb->e2fs_gcount) i -= sb->e2fs_gcount; tmp = get_group_desc(ITOV(dir)->v_mount,i,&bh2); - if (tmp->bg_free_inodes_count) { + if (tmp->ext2bgd_nifree) { gdp = tmp; break; } @@ -391,7 +391,7 @@ if (++i >= sb->e2fs_gcount) i = 0; tmp = get_group_desc(ITOV(dir)->v_mount,i,&bh2); - if (tmp->bg_free_inodes_count) { + if (tmp->ext2bgd_nifree) { gdp = tmp; break; } @@ -421,7 +421,7 @@ */ mark_buffer_dirty(bh); } else { - if (gdp->bg_free_inodes_count != 0) { + if (gdp->ext2bgd_nifree != 0) { printf ( "ext2_new_inode:" "Free inodes count corrupted in group %d", i); @@ -438,9 +438,9 @@ unlock_super (DEVVP(dir)); return 0; } - gdp->bg_free_inodes_count--; + gdp->ext2bgd_nifree--; if (S_ISDIR(mode)) - gdp->bg_used_dirs_count++; + gdp->ext2bgd_ndirs++; mark_buffer_dirty(bh2); es->e2fs_ficount--; /* mark_buffer_dirty(sb->u.ext2_sb.s_sbh, 1); */ @@ -457,7 +457,7 @@ struct ext2fs * es; unsigned long desc_count, bitmap_count, x; int bitmap_nr; - struct ext2_group_desc * gdp; + struct ext2_gd * gdp; int i; lock_super (VFSTOEXT2(mp)->um_devvp); @@ -467,12 +467,12 @@ gdp = NULL; for (i = 0; i < sb->e2fs_gcount; i++) { gdp = get_group_desc (mp, i, NULL); - desc_count += gdp->bg_free_inodes_count; + desc_count += gdp->ext2bgd_nifree; bitmap_nr = load_inode_bitmap (mp, i); x = ext2_count_free (sb->e2fs_ib[bitmap_nr], (sb->e2fs_ipg) / 8); ext2_debug ("group %d: stored = %d, counted = %lu\n", - i, gdp->bg_free_inodes_count, x); + i, gdp->ext2bgd_nifree, x); bitmap_count += x; } ext2_debug("stored = %lu, computed = %lu, %lu\n", @@ -491,7 +491,7 @@ struct ext2fs * es; unsigned long desc_count, bitmap_count, x; int bitmap_nr; - struct ext2_group_desc * gdp; + struct ext2_gd * gdp; int i; lock_super (sb); @@ -501,15 +501,15 @@ gdp = NULL; for (i = 0; i < sb->u.ext2_sb.e2fs_gcount; i++) { gdp = get_group_desc (sb, i, NULL); - desc_count += gdp->bg_free_inodes_count; + desc_count += gdp->ext2bgd_nifree; bitmap_nr = load_inode_bitmap (sb, i); x = ext2_count_free (sb->u.ext2_sb.e2fs_ib[bitmap_nr], (sb->e2fs_ipg) / 8); - if (gdp->bg_free_inodes_count != x) + if (gdp->ext2bgd_nifree != x) printf ( "ext2_check_inodes_bitmap:" "Wrong free inodes count in group %d, " "stored = %d, counted = %lu", i, - gdp->bg_free_inodes_count, x); + gdp->ext2bgd_nifree, x); bitmap_count += x; } if (es->e2fs_ficount != bitmap_count) ==== //depot/projects/soc2009/soc_ext2fs/src/sys/gnu/fs/ext2fs/ext2_vfsops.c#10 (text+ko) ==== @@ -306,7 +306,7 @@ static int ext2_check_descriptors(struct m_ext2fs *sb) { - struct ext2_group_desc *gdp = NULL; + struct ext2_gd *gdp = NULL; unsigned long block = sb->e2fs->e2fs_first_dblock; int desc_block = 0; int i; @@ -314,31 +314,31 @@ for (i = 0; i < sb->e2fs_gcount; i++) { /* examine next descriptor block */ if ((i % EXT2_DESC_PER_BLOCK(sb)) == 0) - gdp = (struct ext2_group_desc *) + gdp = (struct ext2_gd *) sb->e2fs_group_desc[desc_block++]->b_data; - if (gdp->bg_block_bitmap < block || - gdp->bg_block_bitmap >= block + EXT2_BLOCKS_PER_GROUP(sb)) { + if (gdp->ext2bgd_b_bitmap < block || + gdp->ext2bgd_b_bitmap >= block + EXT2_BLOCKS_PER_GROUP(sb)) { printf ("ext2_check_descriptors: " "Block bitmap for group %d" " not in group (block %lu)!\n", - i, (unsigned long) gdp->bg_block_bitmap); + i, (unsigned long) gdp->ext2bgd_b_bitmap); return (0); } - if (gdp->bg_inode_bitmap < block || - gdp->bg_inode_bitmap >= block + EXT2_BLOCKS_PER_GROUP(sb)) { + if (gdp->ext2bgd_i_bitmap < block || + gdp->ext2bgd_i_bitmap >= block + EXT2_BLOCKS_PER_GROUP(sb)) { printf ("ext2_check_descriptors: " "Inode bitmap for group %d" " not in group (block %lu)!\n", - i, (unsigned long) gdp->bg_inode_bitmap); + i, (unsigned long) gdp->ext2bgd_i_bitmap); return (0); } - if (gdp->bg_inode_table < block || - gdp->bg_inode_table + sb->e2fs_itpg >= + if (gdp->ext2bgd_i_tables < block || + gdp->ext2bgd_i_tables + sb->e2fs_itpg >= block + EXT2_BLOCKS_PER_GROUP(sb)) { printf ("ext2_check_descriptors: " "Inode table for group %d" " not in group (block %lu)!\n", - i, (unsigned long) gdp->bg_inode_table); + i, (unsigned long) gdp->ext2bgd_i_tables); return (0); } block += EXT2_BLOCKS_PER_GROUP(sb); @@ -416,7 +416,7 @@ } fs->e2fs_ipb = fs->e2fs_bsize / EXT2_INODE_SIZE(fs); fs->e2fs_itpg = fs->e2fs_ipg /fs->e2fs_ipb; - fs->e2fs_descpb = fs->e2fs_bsize / sizeof (struct ext2_group_desc); + fs->e2fs_descpb = fs->e2fs_bsize / sizeof (struct ext2_gd); /* s_resuid / s_resgid ? */ fs->e2fs_gcount = (es->e2fs_bcount - es->e2fs_first_dblock + EXT2_BLOCKS_PER_GROUP(fs) - 1) / EXT2_BLOCKS_PER_GROUP(fs); ==== //depot/projects/soc2009/soc_ext2fs/src/sys/gnu/fs/ext2fs/fs.h#7 (text+ko) ==== @@ -68,7 +68,7 @@ /* * Convert cylinder group to base address of its global summary info. */ -#define fs_cs(fs, cgindx) (((struct ext2_group_desc *) \ +#define fs_cs(fs, cgindx) (((struct ext2_gd *) \ (fs->e2fs_group_desc[cgindx / EXT2_DESC_PER_BLOCK(fs)]->b_data)) \ [cgindx % EXT2_DESC_PER_BLOCK(fs)]) @@ -83,7 +83,7 @@ #define ino_to_cg(fs, x) (((x) - 1) / (fs->e2fs_ipg)) /* get block containing inode from its number x */ -#define ino_to_fsba(fs, x) fs_cs(fs, ino_to_cg(fs, x)).bg_inode_table + \ +#define ino_to_fsba(fs, x) fs_cs(fs, ino_to_cg(fs, x)).ext2bgd_i_tables + \ (((x)-1) % (fs->e2fs_ipg))/(fs->e2fs_ipb) /* get offset for inode in block */ From owner-p4-projects@FreeBSD.ORG Sat Jun 13 14:13:02 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 5B4191065674; Sat, 13 Jun 2009 14:13:02 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id E4FB3106566B for ; Sat, 13 Jun 2009 14:13:01 +0000 (UTC) (envelope-from pgj@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id D22B08FC12 for ; Sat, 13 Jun 2009 14:13:01 +0000 (UTC) (envelope-from pgj@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n5DED1cW064183 for ; Sat, 13 Jun 2009 14:13:01 GMT (envelope-from pgj@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n5DED1Fm064181 for perforce@freebsd.org; Sat, 13 Jun 2009 14:13:01 GMT (envelope-from pgj@FreeBSD.org) Date: Sat, 13 Jun 2009 14:13:01 GMT Message-Id: <200906131413.n5DED1Fm064181@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to pgj@FreeBSD.org using -f From: Gabor Pali To: Perforce Change Reviews Cc: Subject: PERFORCE change 164271 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 13 Jun 2009 14:13:03 -0000 http://perforce.freebsd.org/chv.cgi?CH=164271 Change 164271 by pgj@petymeg-current on 2009/06/13 14:12:39 Respect WARNS=3 Affected files ... .. //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/Makefile#6 edit .. //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat.c#25 edit Differences ... ==== //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/Makefile#6 (text+ko) ==== @@ -14,7 +14,7 @@ DPADD= ${LIBKVM} LDADD= -lkvm -#WARNS?= 3 +WARNS?= 3 WITHOUT_MAN= yes ==== //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat.c#25 (text+ko) ==== @@ -1,4 +1,5 @@ +#include #include #include #include @@ -23,32 +24,36 @@ #include "netstat.h" #include "netstat_internal.h" -static struct nlist nl[] = { -/* UNP_###-related */ -#define X_UNP_COUNT 0 - { .n_name = "_unp_count" }, -#define X_UNP_GENCNT 1 - { .n_name = "_unp_gencnt" }, -#define X_UNP_DHEAD 2 - { .n_name = "_unp_dhead" }, -#define X_UNP_SHEAD 3 - { .n_name = "_unp_shead" }, - { .n_name = NULL }, -/* INET-related */ -#define X_TCBINFO 5 - { .n_name = "_tcbinfo" }, -#define X_UDBINFO 6 - { .n_name = "_udbinfo" }, -#define X_DIVCBINFO 7 - { .n_name = "_divcbinfo" }, -#define X_RIPCBINFO 8 - { .n_name = "_ripcbinfo" }, - { .n_name = NULL }, +/* nlist(3) indices and symbols. */ +enum nlUNP { + nlUNP_count = 0, + nlUNP_gencnt, + nlUNP_dhead, + nlUNP_shead, + nlUNP_MAX +}; + +static const char *const unp_symbol[] = + { "_unp_count", "_unp_gencnt", "_unp_dhead", "_unp_shead" }; + +enum nlINP { + nlINP_tcbinfo = 0, + nlINP_udbinfo, + nlINP_divcbinfo, + nlINP_ripcbinfo, + nlINP_MAX }; +static const char *const inp_symbol[] = + { "_tcbinfo", "_udbinfo", "_divcbinfo", "_ripcbinfo" }; + static void extract_xunpcb_data(struct xunpcb *, struct socket_type *); static void extract_inet_data(struct tcpcb *, struct inpcb *, struct xsocket *, struct socket_type *); +static int netstat_local_sockets(int, struct socket_type_list *, kvm_t *, + struct nlist *, int); +static int netstat_inet_sockets(int, int, struct socket_type_list *, + kvm_t *, struct nlist *, int); /* type names */ static const char *const socktype[] = @@ -56,7 +61,7 @@ static int net_local_pcblist_sysctl(int family, int type, struct socket_type_list *list, - int flags) + __unused int flags) { char *buf; size_t len; @@ -218,7 +223,7 @@ static int net_local_pcblist_kvm(int family, int type, struct socket_type_list *list, - kvm_t *kvm, struct nlist *nlistp, int flags) + kvm_t *kvm, struct nlist *nlistp, __unused int flags) { struct unp_head head; struct unpcb *unp, unp_conn; @@ -230,8 +235,8 @@ struct socket_type *stp; u_long count_off, gencnt_off, head_off; - count_off = nlistp[X_UNP_COUNT].n_value; - gencnt_off = nlistp[X_UNP_GENCNT].n_value; + count_off = nlistp[nlUNP_count].n_value; + gencnt_off = nlistp[nlUNP_gencnt].n_value; if (count_off == 0 || gencnt_off == 0) { list->stl_error = NETSTAT_ERROR_UNDEFINED; @@ -239,10 +244,10 @@ } switch (type) { case SOCK_STREAM: - head_off = nlistp[X_UNP_SHEAD].n_value; + head_off = nlistp[nlUNP_shead].n_value; break; case SOCK_DGRAM: - head_off = nlistp[X_UNP_DHEAD].n_value; + head_off = nlistp[nlUNP_dhead].n_value; break; default: list->stl_error = NETSTAT_ERROR_UNDEFINED; @@ -289,36 +294,35 @@ static int net_inet_pcblist_kvm(int family, int protocol, struct socket_type_list *list, - kvm_t *kvm, struct nlist *nlistp, int flags) + kvm_t *kvm, struct nlist *nlistp, __unused int flags) { struct inpcbinfo pcbinfo; struct inpcbhead listhead; struct inpcb *inp; struct xinpcb xi; - struct xinpgen xig; struct xtcpcb xt; struct tcpcb *tcb = NULL; struct socket so; - struct xsocket *xso; + struct xsocket xso; u_long off; struct socket_type *stp; switch (protocol) { case IPPROTO_TCP: - off = nlistp[X_TCBINFO].n_value; + off = nlistp[nlINP_tcbinfo].n_value; break; case IPPROTO_UDP: - off = nlistp[X_UDBINFO].n_value; + off = nlistp[nlINP_udbinfo].n_value; break; case IPPROTO_DIVERT: - off = nlistp[X_DIVCBINFO].n_value; + off = nlistp[nlINP_divcbinfo].n_value; break; case IPPROTO_RAW: case IPPROTO_ICMP: case IPPROTO_IGMP: case IPPROTO_PIM: - off = nlistp[X_RIPCBINFO].n_value; + off = nlistp[nlINP_ripcbinfo].n_value; break; default: list->stl_error = NETSTAT_ERROR_UNDEFINED; @@ -351,18 +355,18 @@ } if (inp->inp_socket) { KREAD(inp->inp_socket, &so, sizeof(so)); - if (sotoxsocket(kvm, &so, xso) != 0) { + if (sotoxsocket(kvm, &so, &xso) != 0) { list->stl_error = NETSTAT_ERROR_UNDEFINED; return (-1); } } else { - bzero(xso, sizeof(*xso)); + bzero(&xso, sizeof(xso)); if (protocol == IPPROTO_TCP) - xso->xso_protocol = protocol; + xso.xso_protocol = protocol; } stp = _netstat_st_allocate(list, family, protocol, ipproto(protocol)); - extract_inet_data(tcb, inp, xso, stp); + extract_inet_data(tcb, inp, &xso, stp); } return (0); @@ -389,7 +393,7 @@ int netstat_local_sockets(int type, struct socket_type_list *list, kvm_t *kvm, - struct nlist *nl, int flags) + struct nlist *nlp, int flags) { int use_kvm = flags & NETSTAT_SOCKET_KVM; @@ -397,7 +401,7 @@ case SOCK_STREAM: case SOCK_DGRAM: if (use_kvm) - NPCB_KVM(local, PF_LOCAL, type, list, kvm, nl, + NPCB_KVM(local, PF_LOCAL, type, list, kvm, nlp, flags); else /* Use sysctl (or something else). */ @@ -407,9 +411,9 @@ case 0: if (use_kvm) { NPCB_KVM(local, PF_LOCAL, SOCK_STREAM, list, kvm, - nl, flags); + nlp, flags); NPCB_KVM(local, PF_LOCAL, SOCK_DGRAM, list, kvm, - nl, flags); + nlp, flags); } else { NPCB_SCT(local, PF_LOCAL, SOCK_STREAM, list, flags); @@ -426,7 +430,7 @@ int netstat_inet_sockets(int domain, int protocol, struct socket_type_list *list, - kvm_t *kvm, struct nlist *nl, int flags) + kvm_t *kvm, struct nlist *nlp, int flags) { int use_kvm = flags & NETSTAT_SOCKET_KVM; @@ -440,7 +444,7 @@ case IPPROTO_PIM: case IPPROTO_ICMPV6: if (use_kvm) - NPCB_KVM(inet, domain, protocol, list, kvm, nl, + NPCB_KVM(inet, domain, protocol, list, kvm, nlp, flags); else NPCB_SCT(inet, domain, protocol, list, flags); @@ -450,13 +454,13 @@ /* Errors do not count here. */ if (use_kvm) { net_inet_pcblist_kvm(domain, IPPROTO_TCP, list, kvm, - nl, flags); + nlp, flags); net_inet_pcblist_kvm(domain, IPPROTO_UDP, list, kvm, - nl, flags); + nlp, flags); net_inet_pcblist_kvm(domain, IPPROTO_DIVERT, list, - kvm, nl, flags); + kvm, nlp, flags); net_inet_pcblist_kvm(domain, IPPROTO_RAW, list, kvm, - nl, flags); + nlp, flags); } else { net_inet_pcblist_sysctl(domain, IPPROTO_TCP, list, flags); @@ -484,56 +488,69 @@ struct socket_type_list *list, int flags, void *kvm_handle) { kvm_t *kvm; - int result; - struct nlist *nlp = NULL; + int result, i; + struct nlist nls[MAX(nlUNP_MAX, nlINP_MAX) + 1]; + nls[0].n_name = NULL; if (flags & NETSTAT_SOCKET_KVM) { /* Use KVM to retrieve data. */ + kvm = (kvm_t *)kvm_handle; switch (domain) { case PF_LOCAL: - nlp = &nl[X_UNP_COUNT]; + for (i = 0; i < nlUNP_MAX; i++) + nls[i].n_name = strdup(unp_symbol[i]); + nls[nlUNP_MAX].n_name = NULL; break; case PF_INET: case PF_INET6: - nlp = &nl[X_TCBINFO]; + for (i = 0; i < nlINP_MAX; i++) + nls[i].n_name = strdup(inp_symbol[i]); + nls[nlINP_MAX].n_name = NULL; break; default: break; } - kvm = (kvm_t *)kvm_handle; - if (kvm_nlist(kvm, nlp) < 0) { + if (kvm_nlist(kvm, nls) < 0) { list->stl_error = NETSTAT_ERROR_KVM; - return (-1); + result = -1; + goto end; } } switch (domain) { case PF_UNSPEC: /* "Everything" */ - result = netstat_local_sockets(0, list, kvm, nl, flags); + result = netstat_local_sockets(0, list, kvm, nls, flags); if (result < 0) - return (result); - result = netstat_inet_sockets(PF_INET, 0, list, kvm, nl, + goto end; + result = netstat_inet_sockets(PF_INET, 0, list, kvm, nls, flags); if (result < 0) - return (result); - result = netstat_inet_sockets(PF_INET6, 0, list, kvm, nl, + goto end; + result = netstat_inet_sockets(PF_INET6, 0, list, kvm, nls, flags); if (result < 0) - return (result); + goto end; break; case PF_LOCAL: - return (netstat_local_sockets(type, list, kvm, nl, flags)); + result = (netstat_local_sockets(type, list, kvm, nls, flags)); + goto end; break; case PF_INET: case PF_INET6: - return (netstat_inet_sockets(domain, protocol, list, kvm, nl, + result = (netstat_inet_sockets(domain, protocol, list, kvm, nls, flags)); + goto end; break; default: list->stl_error = NETSTAT_ERROR_UNSUPPORTED; - return (-1); + result = -1; + goto end; } - return (0); + +end: + for (i = 0; nls[i].n_name != NULL && i < MAX(nlUNP_MAX, nlINP_MAX); i++) + free(nls[i].n_name); + return (result); } void From owner-p4-projects@FreeBSD.ORG Sat Jun 13 14:23:12 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id A27541065673; Sat, 13 Jun 2009 14:23:12 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 58D9C106564A for ; Sat, 13 Jun 2009 14:23:12 +0000 (UTC) (envelope-from mav@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 46A828FC12 for ; Sat, 13 Jun 2009 14:23:12 +0000 (UTC) (envelope-from mav@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n5DENCFF066300 for ; Sat, 13 Jun 2009 14:23:12 GMT (envelope-from mav@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n5DENClK066298 for perforce@freebsd.org; Sat, 13 Jun 2009 14:23:12 GMT (envelope-from mav@freebsd.org) Date: Sat, 13 Jun 2009 14:23:12 GMT Message-Id: <200906131423.n5DENClK066298@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to mav@freebsd.org using -f From: Alexander Motin To: Perforce Change Reviews Cc: Subject: PERFORCE change 164272 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 13 Jun 2009 14:23:13 -0000 http://perforce.freebsd.org/chv.cgi?CH=164272 Change 164272 by mav@mav_mavbook on 2009/06/13 14:22:44 In preparation to PM support add flag that command require detailed status on successfull completion. Also make such command not to be queued by AHCI controller, as it is unable to report all results if several commands were completed on same interrupt. Affected files ... .. //depot/projects/scottl-camlock/src/sys/cam/ata/ata_all.c#8 edit .. //depot/projects/scottl-camlock/src/sys/cam/ata/ata_all.h#8 edit .. //depot/projects/scottl-camlock/src/sys/cam/ata/ata_xpt.c#15 edit .. //depot/projects/scottl-camlock/src/sys/dev/ahci/ahci.c#24 edit .. //depot/projects/scottl-camlock/src/sys/dev/ahci/ahci.h#11 edit Differences ... ==== //depot/projects/scottl-camlock/src/sys/cam/ata/ata_all.c#8 (text+ko) ==== @@ -133,11 +133,11 @@ ataio->cmd.features_exp = sector_count >> 8; } -void ata_reset_cmd(struct ccb_ataio *ataio, int reset) +void ata_reset_cmd(struct ccb_ataio *ataio) { bzero(&ataio->cmd, sizeof(ataio->cmd)); - ataio->cmd.flags = CAM_ATAIO_CONTROL; - ataio->cmd.control = reset ? 0x04 : 0; + ataio->cmd.flags = CAM_ATAIO_CONTROL | CAM_ATAIO_NEEDRESULT; + ataio->cmd.control = 0x04; } #endif /* _KERNEL */ ==== //depot/projects/scottl-camlock/src/sys/cam/ata/ata_all.h#8 (text+ko) ==== @@ -38,6 +38,7 @@ #define CAM_ATAIO_48BIT 0x01 /* Command has 48-bit format */ #define CAM_ATAIO_FPDMA 0x02 /* FPDMA command */ #define CAM_ATAIO_CONTROL 0x04 /* Control, not a command */ +#define CAM_ATAIO_NEEDRESULT 0x08 /* Request requires result. */ u_int8_t command; u_int8_t features; @@ -85,6 +86,6 @@ uint64_t lba, uint16_t sector_count); void ata_ncq_cmd(struct ccb_ataio *ataio, uint8_t cmd, uint64_t lba, uint16_t sector_count); -void ata_reset_cmd(struct ccb_ataio *ataio, int reset); +void ata_reset_cmd(struct ccb_ataio *ataio); #endif ==== //depot/projects/scottl-camlock/src/sys/cam/ata/ata_xpt.c#15 (text+ko) ==== @@ -336,7 +336,7 @@ /*data_ptr*/NULL, /*dxfer_len*/0, 30 * 1000); - ata_reset_cmd(ataio, 1); + ata_reset_cmd(ataio); break; case PROBE_IDENTIFY: { ==== //depot/projects/scottl-camlock/src/sys/dev/ahci/ahci.c#24 (text+ko) ==== @@ -904,11 +904,14 @@ return (1); } if ((ccb->ccb_h.func_code == XPT_ATA_IO) && - (ccb->ataio.cmd.flags & CAM_ATAIO_CONTROL)) { - /* Control command while anything active. */ + (ccb->ataio.cmd.flags & (CAM_ATAIO_CONTROL | CAM_ATAIO_NEEDRESULT))) { + /* Atomic command while anything active. */ if (ch->numrslots != 0) return (1); } + /* We have some atomic command running. */ + if (ch->aslots != 0) + return (1); return (0); } @@ -938,11 +941,14 @@ slot->ccb = ccb; /* Update channel stats. */ ch->numrslots++; - if ((slot->ccb->ccb_h.func_code == XPT_ATA_IO) && - (slot->ccb->ataio.cmd.flags & CAM_ATAIO_FPDMA)) { + if ((ccb->ccb_h.func_code == XPT_ATA_IO) && + (ccb->ataio.cmd.flags & CAM_ATAIO_FPDMA)) { ch->numtslots++; ch->taggedtarget = ccb->ccb_h.target_id; } + if ((ccb->ccb_h.func_code == XPT_ATA_IO) && + (ccb->ataio.cmd.flags & (CAM_ATAIO_CONTROL | CAM_ATAIO_NEEDRESULT))) + ch->aslots |= (1 << slot->slot); slot->dma.nsegs = 0; /* If request moves data, setup and load SG list */ if ((ccb->ccb_h.flags & CAM_DIR_MASK) != CAM_DIR_NONE) { @@ -1030,7 +1036,7 @@ /* Special handling for Soft Reset command. */ if ((ccb->ccb_h.func_code == XPT_ATA_IO) && (ccb->ataio.cmd.flags & CAM_ATAIO_CONTROL) && - ccb->ataio.cmd.control & ATA_A_RESET) { + (ccb->ataio.cmd.control & ATA_A_RESET)) { /* Kick controller into sane state */ ahci_stop(dev); ahci_clo(dev); @@ -1151,8 +1157,8 @@ if (ccb->ccb_h.func_code == XPT_ATA_IO) { struct ata_res *res = &ccb->ataio.res; - if (et == AHCI_ERR_REAL || - ccb->ataio.cmd.flags & CAM_ATAIO_CONTROL) { + if ((et == AHCI_ERR_REAL) || + (ccb->ataio.cmd.flags & CAM_ATAIO_NEEDRESULT)) { u_int8_t *fis = ch->dma.rfis + 0x40; bus_dmamap_sync(ch->dma.rfis_tag, ch->dma.rfis_map, @@ -1209,6 +1215,7 @@ } /* Free slot. */ ch->rslots &= ~(1 << slot->slot); + ch->aslots &= ~(1 << slot->slot); slot->state = AHCI_SLOT_EMPTY; slot->ccb = NULL; /* Update channel stats. */ @@ -1217,8 +1224,8 @@ (ccb->ataio.cmd.flags & CAM_ATAIO_FPDMA)) { ch->numtslots--; } - /* If it was first request of reset sequence nod no error, - * proceed to second. */ + /* If it was first request of reset sequence and there is no error, + * proceed to second request. */ if ((ccb->ccb_h.func_code == XPT_ATA_IO) && (ccb->ataio.cmd.flags & CAM_ATAIO_CONTROL) && (ccb->ataio.cmd.control & ATA_A_RESET) && @@ -1233,11 +1240,7 @@ //device_printf(dev, "Unfreeze\n"); ch->frozen = NULL; ahci_begin_transaction(dev, fccb); - /* If frozen command is not reset - release queue. - * Reset will be released after it is finished. */ - if ((fccb->ccb_h.func_code == XPT_ATA_IO) && - (fccb->ataio.cmd.flags & CAM_ATAIO_CONTROL) == 0) - xpt_release_simq(ch->sim, TRUE); + xpt_release_simq(ch->sim, TRUE); } } @@ -1534,19 +1537,13 @@ } /* Check for command collision. */ if (ahci_check_collision(dev, ccb)) { +//device_printf(dev, "Freeze\n"); /* Freeze command. */ -//device_printf(dev, "Freeze\n"); + ch->frozen = ccb; /* We have only one frozen slot, so freeze simq also. */ xpt_freeze_simq(ch->sim, 1); - ch->frozen = ccb; return; } - /* If it is a reset sequence - freeze the queue. */ - if ((ccb->ccb_h.func_code == XPT_ATA_IO) && - (ccb->ataio.cmd.flags & CAM_ATAIO_CONTROL)) { - xpt_freeze_simq(ch->sim, 1); - ccb->ccb_h.status |= CAM_RELEASE_SIMQ; - } ahci_begin_transaction(dev, ccb); break; case XPT_EN_LUN: /* Enable LUN as a target */ ==== //depot/projects/scottl-camlock/src/sys/dev/ahci/ahci.h#11 (text+ko) ==== @@ -343,6 +343,7 @@ struct mtx mtx; /* state lock */ int devices; /* What is present */ uint32_t rslots; /* Running slots */ + uint32_t aslots; /* Slots with atomic commands */ int numrslots; /* Number of running slots */ int numtslots; /* Number of tagged slots */ int lastslot; /* Last used slot */ From owner-p4-projects@FreeBSD.ORG Sat Jun 13 14:33:23 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 479921065673; Sat, 13 Jun 2009 14:33:23 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 06103106566C for ; Sat, 13 Jun 2009 14:33:23 +0000 (UTC) (envelope-from truncs@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id E865B8FC13 for ; Sat, 13 Jun 2009 14:33:22 +0000 (UTC) (envelope-from truncs@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n5DEXMtB069633 for ; Sat, 13 Jun 2009 14:33:22 GMT (envelope-from truncs@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n5DEXMMn069631 for perforce@freebsd.org; Sat, 13 Jun 2009 14:33:22 GMT (envelope-from truncs@FreeBSD.org) Date: Sat, 13 Jun 2009 14:33:22 GMT Message-Id: <200906131433.n5DEXMMn069631@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to truncs@FreeBSD.org using -f From: Aditya Sarawgi To: Perforce Change Reviews Cc: Subject: PERFORCE change 164273 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 13 Jun 2009 14:33:24 -0000 http://perforce.freebsd.org/chv.cgi?CH=164273 Change 164273 by truncs@aditya on 2009/06/13 14:32:41 New inode on-disk struct. Affected files ... .. //depot/projects/soc2009/soc_ext2fs/src/sys/gnu/fs/ext2fs/ext2_fs.h#18 edit Differences ... ==== //depot/projects/soc2009/soc_ext2fs/src/sys/gnu/fs/ext2fs/ext2_fs.h#18 (text+ko) ==== @@ -259,82 +259,36 @@ /* * Structure of an inode on the disk */ -struct ext2_inode { - __u16 i_mode; /* File mode */ - __u16 i_uid; /* Owner Uid */ - __u32 i_size; /* Size in bytes */ - __u32 i_atime; /* Access time */ - __u32 i_ctime; /* Creation time */ - __u32 i_mtime; /* Modification time */ - __u32 i_dtime; /* Deletion Time */ - __u16 i_gid; /* Group Id */ - __u16 i_links_count; /* Links count */ - __u32 i_blocks; /* Blocks count */ - __u32 i_flags; /* File flags */ - union { - struct { - __u32 l_i_reserved1; - } linux1; - struct { - __u32 h_i_translator; - } hurd1; - struct { - __u32 m_i_reserved1; - } masix1; - } osd1; /* OS dependent 1 */ - __u32 i_block[EXT2_N_BLOCKS];/* Pointers to blocks */ - __u32 i_generation; /* File version (for NFS) */ - __u32 i_file_acl; /* File ACL */ - __u32 i_dir_acl; /* Directory ACL */ - __u32 i_faddr; /* Fragment address */ - union { - struct { - __u8 l_i_frag; /* Fragment number */ - __u8 l_i_fsize; /* Fragment size */ - __u16 i_pad1; - __u32 l_i_reserved2[2]; - } linux2; - struct { - __u8 h_i_frag; /* Fragment number */ - __u8 h_i_fsize; /* Fragment size */ - __u16 h_i_mode_high; - __u16 h_i_uid_high; - __u16 h_i_gid_high; - __u32 h_i_author; - } hurd2; - struct { - __u8 m_i_frag; /* Fragment number */ - __u8 m_i_fsize; /* Fragment size */ - __u16 m_pad1; - __u32 m_i_reserved2[2]; - } masix2; - } osd2; /* OS dependent 2 */ +struct ext2fs_dinode { + u_int16_t e2di_mode; /* 0: IFMT, permissions; see below. */ + u_int16_t e2di_uid; /* 2: Owner UID */ + u_int32_t e2di_size; /* 4: Size (in bytes) */ + u_int32_t e2di_atime; /* 8: Acces time */ + u_int32_t e2di_ctime; /* 12: Create time */ + u_int32_t e2di_mtime; /* 16: Modification time */ + u_int32_t e2di_dtime; /* 20: Deletion time */ + u_int16_t e2di_gid; /* 24: Owner GID */ + u_int16_t e2di_nlink; /* 26: File link count */ + u_int32_t e2di_nblock; /* 28: Blocks count */ + u_int32_t e2di_flags; /* 32: Status flags (chflags) */ + u_int32_t e2di_linux_reserved1; /* 36 */ + u_int32_t e2di_blocks[NDADDR+NIADDR]; /* 40: disk blocks */ + u_int32_t e2di_gen; /* 100: generation number */ + u_int32_t e2di_facl; /* 104: file ACL (not implemented) */ + u_int32_t e2di_dacl; /* 108: dir ACL (not implemented) */ + u_int32_t e2di_faddr; /* 112: fragment address */ + u_int8_t e2di_nfrag; /* 116: fragment number */ + u_int8_t e2di_fsize; /* 117: fragment size */ + u_int16_t e2di_linux_reserved2; /* 118 */ + u_int16_t e2di_uid_high; /* 120: Owner UID top 16 bits */ + u_int16_t e2di_gid_high; /* 122: Owner GID top 16 bits */ + u_int32_t e2di_linux_reserved3; /* 124 */ }; -#define i_size_high i_dir_acl -#if defined(__KERNEL__) || defined(__linux__) -#define i_reserved1 osd1.linux1.l_i_reserved1 -#define i_frag osd2.linux2.l_i_frag -#define i_fsize osd2.linux2.l_i_fsize -#define i_reserved2 osd2.linux2.l_i_reserved2 -#endif -#ifdef __hurd__ -#define i_translator osd1.hurd1.h_i_translator -#define i_frag osd2.hurd2.h_i_frag; -#define i_fsize osd2.hurd2.h_i_fsize; -#define i_uid_high osd2.hurd2.h_i_uid_high -#define i_gid_high osd2.hurd2.h_i_gid_high -#define i_author osd2.hurd2.h_i_author -#endif +#define i_size_high i_dir_acl -#ifdef __masix__ -#define i_reserved1 osd1.masix1.m_i_reserved1 -#define i_frag osd2.masix2.m_i_frag -#define i_fsize osd2.masix2.m_i_fsize -#define i_reserved2 osd2.masix2.m_i_reserved2 -#endif /* * File clean flags From owner-p4-projects@FreeBSD.ORG Sat Jun 13 14:38:29 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id CEBCE1065676; Sat, 13 Jun 2009 14:38:28 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 8F299106564A for ; Sat, 13 Jun 2009 14:38:28 +0000 (UTC) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 61A618FC15 for ; Sat, 13 Jun 2009 14:38:28 +0000 (UTC) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n5DEcSTj072584 for ; Sat, 13 Jun 2009 14:38:28 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n5DEcSCm072582 for perforce@freebsd.org; Sat, 13 Jun 2009 14:38:28 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Date: Sat, 13 Jun 2009 14:38:28 GMT Message-Id: <200906131438.n5DEcSCm072582@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to bb+lists.freebsd.perforce@cyrus.watson.org using -f From: Robert Watson To: Perforce Change Reviews Cc: Subject: PERFORCE change 164276 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 13 Jun 2009 14:38:29 -0000 http://perforce.freebsd.org/chv.cgi?CH=164276 Change 164276 by rwatson@rwatson_freebsd_capabilities on 2009/06/13 14:38:21 Remove a line of debugging output. Affected files ... .. //depot/projects/trustedbsd/capabilities/src/usr.bin/procstat/procstat_files.c#13 edit Differences ... ==== //depot/projects/trustedbsd/capabilities/src/usr.bin/procstat/procstat_files.c#13 (text+ko) ==== @@ -254,7 +254,6 @@ if (capwidth < strlen("CAPABILITIES")) capwidth = strlen("CAPABILITIES"); } - printf("capwidth: %d\n", capwidth); if (!hflag) { if (Cflag) From owner-p4-projects@FreeBSD.ORG Sat Jun 13 14:45:36 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 147541065675; Sat, 13 Jun 2009 14:45:36 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id C9A5B1065670 for ; Sat, 13 Jun 2009 14:45:35 +0000 (UTC) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id B59A18FC0C for ; Sat, 13 Jun 2009 14:45:35 +0000 (UTC) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n5DEjZPj075830 for ; Sat, 13 Jun 2009 14:45:35 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n5DEjZB5075824 for perforce@freebsd.org; Sat, 13 Jun 2009 14:45:35 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Date: Sat, 13 Jun 2009 14:45:35 GMT Message-Id: <200906131445.n5DEjZB5075824@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to bb+lists.freebsd.perforce@cyrus.watson.org using -f From: Robert Watson To: Perforce Change Reviews Cc: Subject: PERFORCE change 164277 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 13 Jun 2009 14:45:37 -0000 http://perforce.freebsd.org/chv.cgi?CH=164277 Change 164277 by rwatson@rwatson_freebsd_capabilities on 2009/06/13 14:44:57 Rename variable to track data structure rename: lc_agent -> lc_sandbox. Affected files ... .. //depot/projects/trustedbsd/capabilities/src/lib/libcapability/libcapability_host.c#12 edit Differences ... ==== //depot/projects/trustedbsd/capabilities/src/lib/libcapability/libcapability_host.c#12 (text+ko) ==== @@ -30,7 +30,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $P4: //depot/projects/trustedbsd/capabilities/src/lib/libcapability/libcapability_host.c#11 $ + * $P4: //depot/projects/trustedbsd/capabilities/src/lib/libcapability/libcapability_host.c#12 $ */ #include @@ -218,9 +218,9 @@ int lch_startfd_flags(int fd_sandbox, const char *binname, char *const argv[], - u_int flags, struct lc_sandbox **lcapp) + u_int flags, struct lc_sandbox **lcspp) { - struct lc_sandbox *lcap; + struct lc_sandbox *lcsp; int fd_devnull, fd_ldso, fd_libc, fd_libcapabilitym, fd_libz; int fd_procdesc, fd_sockpair[2]; int error, val; @@ -229,10 +229,10 @@ fd_devnull = fd_ldso = fd_libc = fd_libz = fd_libcapabilitym = fd_procdesc = fd_sockpair[0] = fd_sockpair[1] = -1; - lcap = malloc(sizeof(*lcap)); - if (lcap == NULL) + lcsp = malloc(sizeof(*lcsp)); + if (lcsp == NULL) return (-1); - bzero(lcap, sizeof(*lcap)); + bzero(lcsp, sizeof(*lcsp)); #ifdef IN_CAP_MODE if (ld_caplibindex_lookup(LD_ELF_CAP_SO, &fd_ldso) < 0) @@ -298,10 +298,10 @@ #endif close(fd_sockpair[1]); - lcap->lcs_fd_procdesc = fd_procdesc; - lcap->lcs_fd_sock = fd_sockpair[0]; - lcap->lcs_pid = pid; - *lcapp = lcap; + lcsp->lcs_fd_procdesc = fd_procdesc; + lcsp->lcs_fd_sock = fd_sockpair[0]; + lcsp->lcs_pid = pid; + *lcspp = lcsp; return (0); @@ -323,24 +323,24 @@ if (fd_ldso != -1) close(fd_ldso); #endif - if (lcap != NULL) - free(lcap); + if (lcsp != NULL) + free(lcsp); errno = error; return (-1); } int lch_startfd(int fd_sandbox, const char *binname, char *const argv[], - struct lc_sandbox **lcapp) + struct lc_sandbox **lcspp) { - return (lch_startfd_flags(fd_sandbox, binname, argv, 0, lcapp)); + return (lch_startfd_flags(fd_sandbox, binname, argv, 0, lcspp)); } #ifndef IN_CAP_MODE int lch_start_flags(const char *sandbox, char *const argv[], u_int flags, - struct lc_sandbox **lcapp) + struct lc_sandbox **lcspp) { char binname[MAXPATHLEN]; int error, fd_sandbox, ret; @@ -352,7 +352,7 @@ if (fd_sandbox < 0) return (-1); - ret = lch_startfd_flags(fd_sandbox, binname, argv, flags, lcapp); + ret = lch_startfd_flags(fd_sandbox, binname, argv, flags, lcspp); error = errno; close(fd_sandbox); errno = error; @@ -360,45 +360,45 @@ } int -lch_start(const char *sandbox, char *const argv[], struct lc_sandbox **lcapp) +lch_start(const char *sandbox, char *const argv[], struct lc_sandbox **lcspp) { - return (lch_start_flags(sandbox, argv, 0, lcapp)); + return (lch_start_flags(sandbox, argv, 0, lcspp)); } #endif void -lch_stop(struct lc_sandbox *lcap) +lch_stop(struct lc_sandbox *lcsp) { - close(lcap->lcs_fd_sock); - close(lcap->lcs_fd_procdesc); - lcap->lcs_fd_sock = -1; - lcap->lcs_fd_procdesc = -1; - lcap->lcs_pid = -1; + close(lcsp->lcs_fd_sock); + close(lcsp->lcs_fd_procdesc); + lcsp->lcs_fd_sock = -1; + lcsp->lcs_fd_procdesc = -1; + lcsp->lcs_pid = -1; } int -lch_getsock(struct lc_sandbox *lcap, int *fdp) +lch_getsock(struct lc_sandbox *lcsp, int *fdp) { - *fdp = lcap->lcs_fd_sock; + *fdp = lcsp->lcs_fd_sock; return (0); } int -lch_getpid(struct lc_sandbox *lcap, pid_t *pidp) +lch_getpid(struct lc_sandbox *lcsp, pid_t *pidp) { - *pidp = lcap->lcs_pid; + *pidp = lcsp->lcs_pid; return (0); } int -lch_getprocdesc(struct lc_sandbox *lcap, int *fdp) +lch_getprocdesc(struct lc_sandbox *lcsp, int *fdp) { - *fdp = lcap->lcs_fd_procdesc; + *fdp = lcsp->lcs_fd_procdesc; return (0); } @@ -407,27 +407,27 @@ * on the worker should take place here. */ ssize_t -lch_send(struct lc_sandbox *lcap, const void *msg, size_t len, int flags) +lch_send(struct lc_sandbox *lcsp, const void *msg, size_t len, int flags) { - if (lcap->lcs_fd_sock == -1 || - lcap->lcs_fd_sock == 0) { + if (lcsp->lcs_fd_sock == -1 || + lcsp->lcs_fd_sock == 0) { errno = ECHILD; return (-1); } - return (send(lcap->lcs_fd_sock, msg, len, flags)); + return (send(lcsp->lcs_fd_sock, msg, len, flags)); } ssize_t -lch_recv(struct lc_sandbox *lcap, void *buf, size_t len, int flags) +lch_recv(struct lc_sandbox *lcsp, void *buf, size_t len, int flags) { - if (lcap->lcs_fd_sock == -1 || - lcap->lcs_fd_sock == 0) { + if (lcsp->lcs_fd_sock == -1 || + lcsp->lcs_fd_sock == 0) { errno = ESRCH; return (-1); } - return (recv(lcap->lcs_fd_sock, buf, len, flags)); + return (recv(lcsp->lcs_fd_sock, buf, len, flags)); } /* @@ -440,7 +440,7 @@ * a bad idea to use them anyway. */ int -lch_rpc(struct lc_sandbox *lcap, u_int32_t opno, struct iovec *req, +lch_rpc(struct lc_sandbox *lcsp, u_int32_t opno, struct iovec *req, int reqcount, struct iovec *rep, int repcount, size_t *replenp) { struct lcrpc_request_hdr req_hdr; @@ -461,7 +461,7 @@ /* * Send our header. */ - len = lch_send(lcap, &req_hdr, sizeof(req_hdr), 0); + len = lch_send(lcsp, &req_hdr, sizeof(req_hdr), 0); if (len < 0) return (-1); if (len != sizeof(req_hdr)) { @@ -473,7 +473,7 @@ * Send the user request. */ for (i = 0; i < reqcount; i++) { - len = lch_send(lcap, req[i].iov_base, req[i].iov_len, 0); + len = lch_send(lcsp, req[i].iov_base, req[i].iov_len, 0); if (len < 0) return (-1); if ((size_t)len != req[i].iov_len) { @@ -485,7 +485,7 @@ /* * Receive our header and validate. */ - len = lch_recv(lcap, &rep_hdr, sizeof(rep_hdr), MSG_WAITALL); + len = lch_recv(lcsp, &rep_hdr, sizeof(rep_hdr), MSG_WAITALL); if (len < 0) return (-1); if (len != sizeof(rep_hdr)) { @@ -512,7 +512,7 @@ space = rep[i].iov_len - off; left = rep_hdr.lcrpc_rephdr_datalen - totlen; want = (space > left) ? space : left; - len = lch_recv(lcap, + len = lch_recv(lcsp, (u_char *)((uintptr_t)rep[i].iov_base + off), want, MSG_WAITALL); if (len < 0) From owner-p4-projects@FreeBSD.ORG Sat Jun 13 15:12:03 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 27605106566B; Sat, 13 Jun 2009 15:12:03 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id DB37A106566C for ; Sat, 13 Jun 2009 15:12:02 +0000 (UTC) (envelope-from truncs@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id C8CBD8FC1B for ; Sat, 13 Jun 2009 15:12:02 +0000 (UTC) (envelope-from truncs@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n5DFC2I5086936 for ; Sat, 13 Jun 2009 15:12:02 GMT (envelope-from truncs@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n5DFC2qm086934 for perforce@freebsd.org; Sat, 13 Jun 2009 15:12:02 GMT (envelope-from truncs@FreeBSD.org) Date: Sat, 13 Jun 2009 15:12:02 GMT Message-Id: <200906131512.n5DFC2qm086934@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to truncs@FreeBSD.org using -f From: Aditya Sarawgi To: Perforce Change Reviews Cc: Subject: PERFORCE change 164278 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 13 Jun 2009 15:12:03 -0000 http://perforce.freebsd.org/chv.cgi?CH=164278 Change 164278 by truncs@aditya on 2009/06/13 15:11:42 Renaming to the new on disk inode struct. Affected files ... .. //depot/projects/soc2009/soc_ext2fs/src/sys/gnu/fs/ext2fs/ext2_extern.h#5 edit .. //depot/projects/soc2009/soc_ext2fs/src/sys/gnu/fs/ext2fs/ext2_fs.h#19 edit .. //depot/projects/soc2009/soc_ext2fs/src/sys/gnu/fs/ext2fs/ext2_inode.c#4 edit .. //depot/projects/soc2009/soc_ext2fs/src/sys/gnu/fs/ext2fs/ext2_inode_cnv.c#5 edit .. //depot/projects/soc2009/soc_ext2fs/src/sys/gnu/fs/ext2fs/ext2_linux_ialloc.c#8 edit .. //depot/projects/soc2009/soc_ext2fs/src/sys/gnu/fs/ext2fs/ext2_vfsops.c#11 edit .. //depot/projects/soc2009/soc_ext2fs/src/sys/gnu/fs/ext2fs/fs.h#8 edit Differences ... ==== //depot/projects/soc2009/soc_ext2fs/src/sys/gnu/fs/ext2fs/ext2_extern.h#5 (text+ko) ==== @@ -39,7 +39,7 @@ #ifndef _SYS_GNU_EXT2FS_EXT2_EXTERN_H_ #define _SYS_GNU_EXT2FS_EXT2_EXTERN_H_ -struct ext2_inode; +struct ext2fs_dinode; struct indir; struct inode; struct mount; @@ -56,9 +56,9 @@ int ext2_bmap(struct vop_bmap_args *); int ext2_bmaparray(struct vnode *, int32_t, int32_t *, int *, int *); void ext2_dirbad(struct inode *ip, doff_t offset, char *how); -void ext2_ei2i(struct ext2_inode *, struct inode *); +void ext2_ei2i(struct ext2fs_dinode *, struct inode *); int ext2_getlbns(struct vnode *, int32_t, struct indir *, int *); -void ext2_i2ei(struct inode *, struct ext2_inode *); +void ext2_i2ei(struct inode *, struct ext2fs_dinode *); void ext2_itimes(struct vnode *vp); int ext2_reallocblks(struct vop_reallocblks_args *); int ext2_reclaim(struct vop_reclaim_args *); ==== //depot/projects/soc2009/soc_ext2fs/src/sys/gnu/fs/ext2fs/ext2_fs.h#19 (text+ko) ==== @@ -272,7 +272,7 @@ u_int32_t e2di_nblock; /* 28: Blocks count */ u_int32_t e2di_flags; /* 32: Status flags (chflags) */ u_int32_t e2di_linux_reserved1; /* 36 */ - u_int32_t e2di_blocks[NDADDR+NIADDR]; /* 40: disk blocks */ + u_int32_t e2di_blocks[EXT2_N_BLOCKS]; /* 40: disk blocks */ u_int32_t e2di_gen; /* 100: generation number */ u_int32_t e2di_facl; /* 104: file ACL (not implemented) */ u_int32_t e2di_dacl; /* 108: dir ACL (not implemented) */ @@ -287,7 +287,7 @@ -#define i_size_high i_dir_acl +#define e2di_size_high e2di_dacl /* ==== //depot/projects/soc2009/soc_ext2fs/src/sys/gnu/fs/ext2fs/ext2_inode.c#4 (text+ko) ==== @@ -89,7 +89,7 @@ brelse(bp); return (error); } - ext2_i2ei(ip, (struct ext2_inode *)((char *)bp->b_data + + ext2_i2ei(ip, (struct ext2fs_dinode *)((char *)bp->b_data + EXT2_INODE_SIZE(fs) * ino_to_fsbo(fs, ip->i_number))); if (waitfor && (vp->v_mount->mnt_kern_flag & MNTK_ASYNC) == 0) return (bwrite(bp)); ==== //depot/projects/soc2009/soc_ext2fs/src/sys/gnu/fs/ext2fs/ext2_inode_cnv.c#5 (text+ko) ==== @@ -64,36 +64,36 @@ */ void ext2_ei2i(ei, ip) - struct ext2_inode *ei; + struct ext2fs_dinode *ei; struct inode *ip; { int i; - ip->i_nlink = ei->i_links_count; + ip->i_nlink = ei->e2di_nlink; /* Godmar thinks - if the link count is zero, then the inode is unused - according to ext2 standards. Ufs marks this fact by setting i_mode to zero - why ? I can see that this might lead to problems in an undelete. */ - ip->i_mode = ei->i_links_count ? ei->i_mode : 0; - ip->i_size = ei->i_size; + ip->i_mode = ei->e2di_nlink ? ei->e2di_mode : 0; + ip->i_size = ei->e2di_size; if (S_ISREG(ip->i_mode)) - ip->i_size |= ((u_int64_t)ei->i_size_high) << 32; - ip->i_atime = ei->i_atime; - ip->i_mtime = ei->i_mtime; - ip->i_ctime = ei->i_ctime; + ip->i_size |= ((u_int64_t)ei->e2di_size_high) << 32; + ip->i_atime = ei->e2di_atime; + ip->i_mtime = ei->e2di_mtime; + ip->i_ctime = ei->e2di_ctime; ip->i_flags = 0; - ip->i_flags |= (ei->i_flags & EXT2_APPEND_FL) ? SF_APPEND : 0; - ip->i_flags |= (ei->i_flags & EXT2_IMMUTABLE_FL) ? SF_IMMUTABLE : 0; - ip->i_blocks = ei->i_blocks; - ip->i_gen = ei->i_generation; - ip->i_uid = ei->i_uid; - ip->i_gid = ei->i_gid; + ip->i_flags |= (ei->e2di_flags & EXT2_APPEND_FL) ? SF_APPEND : 0; + ip->i_flags |= (ei->e2di_flags & EXT2_IMMUTABLE_FL) ? SF_IMMUTABLE : 0; + ip->i_blocks = ei->e2di_nblock; + ip->i_gen = ei->e2di_gen; + ip->i_uid = ei->e2di_uid; + ip->i_gid = ei->e2di_gid; /* XXX use memcpy */ for(i = 0; i < NDADDR; i++) - ip->i_db[i] = ei->i_block[i]; + ip->i_db[i] = ei->e2di_blocks[i]; for(i = 0; i < NIADDR; i++) - ip->i_ib[i] = ei->i_block[EXT2_NDIR_BLOCKS + i]; + ip->i_ib[i] = ei->e2di_blocks[EXT2_NDIR_BLOCKS + i]; } /* @@ -102,34 +102,34 @@ void ext2_i2ei(ip, ei) struct inode *ip; - struct ext2_inode *ei; + struct ext2fs_dinode *ei; { int i; - ei->i_mode = ip->i_mode; - ei->i_links_count = ip->i_nlink; + ei->e2di_mode = ip->i_mode; + ei->e2di_nlink = ip->i_nlink; /* Godmar thinks: if dtime is nonzero, ext2 says this inode has been deleted, this would correspond to a zero link count */ - ei->i_dtime = ei->i_links_count ? 0 : ip->i_mtime; - ei->i_size = ip->i_size; + ei->e2di_dtime = ei->e2di_nlink ? 0 : ip->i_mtime; + ei->e2di_size = ip->i_size; if (S_ISREG(ip->i_mode)) - ei->i_size_high = ip->i_size >> 32; - ei->i_atime = ip->i_atime; - ei->i_mtime = ip->i_mtime; - ei->i_ctime = ip->i_ctime; - ei->i_flags = ip->i_flags; - ei->i_flags = 0; - ei->i_flags |= (ip->i_flags & SF_APPEND) ? EXT2_APPEND_FL: 0; - ei->i_flags |= (ip->i_flags & SF_IMMUTABLE) ? EXT2_IMMUTABLE_FL: 0; - ei->i_blocks = ip->i_blocks; - ei->i_generation = ip->i_gen; - ei->i_uid = ip->i_uid; - ei->i_gid = ip->i_gid; + ei->e2di_size_high = ip->i_size >> 32; + ei->e2di_atime = ip->i_atime; + ei->e2di_mtime = ip->i_mtime; + ei->e2di_ctime = ip->i_ctime; + ei->e2di_flags = ip->i_flags; + ei->e2di_flags = 0; + ei->e2di_flags |= (ip->i_flags & SF_APPEND) ? EXT2_APPEND_FL: 0; + ei->e2di_flags |= (ip->i_flags & SF_IMMUTABLE) ? EXT2_IMMUTABLE_FL: 0; + ei->e2di_nblock = ip->i_blocks; + ei->e2di_gen = ip->i_gen; + ei->e2di_uid = ip->i_uid; + ei->e2di_gid = ip->i_gid; /* XXX use memcpy */ for(i = 0; i < NDADDR; i++) - ei->i_block[i] = ip->i_db[i]; + ei->e2di_blocks[i] = ip->i_db[i]; for(i = 0; i < NIADDR; i++) - ei->i_block[EXT2_NDIR_BLOCKS + i] = ip->i_ib[i]; + ei->e2di_blocks[EXT2_NDIR_BLOCKS + i] = ip->i_ib[i]; } ==== //depot/projects/soc2009/soc_ext2fs/src/sys/gnu/fs/ext2fs/ext2_linux_ialloc.c#8 (text+ko) ==== @@ -270,7 +270,7 @@ { unsigned long inode_block; struct buffer_head * bh; - struct ext2_inode * raw_inode; + struct ext2fs_dinode * raw_inode; inode_block = gdp->ext2bgd_i_tables + (((inode->i_number - 1) % (inode->i_sb->e2fs_ipg) /(inode->i_sb->e2fs_ipb))); @@ -282,7 +282,7 @@ inode->u.ext2_i.i_version = 1; return; } - raw_inode = ((struct ext2_inode *) bh->b_data) + + raw_inode = ((struct ext2fs_dinode *) bh->b_data) + (((inode->i_number - 1) % (inode->i_sb->e2fs_ipg)) % (inode->i_sb->e2fs_ipb)); raw_inode->i_version++; ==== //depot/projects/soc2009/soc_ext2fs/src/sys/gnu/fs/ext2fs/ext2_vfsops.c#11 (text+ko) ==== @@ -560,7 +560,7 @@ MNT_VNODE_FOREACH_ABORT(mp, mvp); return (error); } - ext2_ei2i((struct ext2_inode *) ((char *)bp->b_data + + ext2_ei2i((struct ext2fs_dinode *) ((char *)bp->b_data + EXT2_INODE_SIZE(fs) * ino_to_fsbo(fs, ip->i_number)), ip); brelse(bp); VOP_UNLOCK(vp, 0); @@ -985,7 +985,7 @@ return (error); } /* convert ext2 inode to dinode */ - ext2_ei2i((struct ext2_inode *) ((char *)bp->b_data + EXT2_INODE_SIZE(fs) * + ext2_ei2i((struct ext2fs_dinode *) ((char *)bp->b_data + EXT2_INODE_SIZE(fs) * ino_to_fsbo(fs, ino)), ip); ip->i_block_group = ino_to_cg(fs, ino); ip->i_next_alloc_block = 0; ==== //depot/projects/soc2009/soc_ext2fs/src/sys/gnu/fs/ext2fs/fs.h#8 (text+ko) ==== From owner-p4-projects@FreeBSD.ORG Sat Jun 13 16:49:49 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 2E8F2106566C; Sat, 13 Jun 2009 16:49:49 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id C8B1D1065675 for ; Sat, 13 Jun 2009 16:49:48 +0000 (UTC) (envelope-from gk@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id B531F8FC12 for ; Sat, 13 Jun 2009 16:49:48 +0000 (UTC) (envelope-from gk@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n5DGnmRn024425 for ; Sat, 13 Jun 2009 16:49:48 GMT (envelope-from gk@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n5DGnm33024423 for perforce@freebsd.org; Sat, 13 Jun 2009 16:49:48 GMT (envelope-from gk@FreeBSD.org) Date: Sat, 13 Jun 2009 16:49:48 GMT Message-Id: <200906131649.n5DGnm33024423@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to gk@FreeBSD.org using -f From: Gleb Kurtsou To: Perforce Change Reviews Cc: Subject: PERFORCE change 164284 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 13 Jun 2009 16:49:50 -0000 http://perforce.freebsd.org/chv.cgi?CH=164284 Change 164284 by gk@gk_h1 on 2009/06/13 16:49:12 basic cryptographic functionality Affected files ... .. //depot/projects/soc2009/gk_pefs/sys/fs/pefs/pefs.h#2 edit .. //depot/projects/soc2009/gk_pefs/sys/fs/pefs/pefs_subr.c#2 edit .. //depot/projects/soc2009/gk_pefs/sys/fs/pefs/pefs_vnops.c#2 edit .. //depot/projects/soc2009/gk_pefs/sys/fs/pefs/pefs_xbase64.c#1 add .. //depot/projects/soc2009/gk_pefs/sys/modules/pefs/Makefile#2 edit Differences ... ==== //depot/projects/soc2009/gk_pefs/sys/fs/pefs/pefs.h#2 (text+ko) ==== @@ -37,6 +37,8 @@ * $FreeBSD$ */ +#include + struct pe_mount { struct mount *pem_vfs; struct vnode *pem_rootvp; /* Reference to root pe_node */ @@ -52,15 +54,35 @@ struct vnode *pe_vnode; /* Back pointer */ }; +struct pe_xuio { + struct uio xuio_uio; + void **xuio_bases; +}; + +typedef void (*pe_tr)(void *mem, size_t size, void *arg); + #define MOUNTTOPEMOUNT(mp) ((struct pe_mount *)((mp)->mnt_data)) #define VTOPE(vp) ((struct pe_node *)(vp)->v_data) #define PETOV(xp) ((xp)->pe_vnode) +struct vfsconf; +struct vop_generic_args; + int pefs_init(struct vfsconf *vfsp); int pefs_uninit(struct vfsconf *vfsp); int pe_nodeget(struct mount *mp, struct vnode *target, struct vnode **vpp); void pe_hashrem(struct pe_node *xp); int pe_bypass(struct vop_generic_args *ap); +struct pe_xuio* pe_xuio_create(struct uio* uio); +void pe_xuio_finish(struct pe_xuio* xuio, struct uio *src); +void pe_xuio_transfrom(struct pe_xuio *xuio, struct uio *src, pe_tr tr, void *arg); +int pe_name_encrypt(const char *plain, size_t plain_len, char *enc, size_t enc_size); +int pe_name_decrypt(const char *enc, size_t enc_len, char *plain, size_t plain_size); + +void pe_xor(void *mem, size_t size, void *arg); + +int pe_b64_ntop(u_char const *src, size_t srclength, char *target, size_t targsize); +int pe_b64_pton(char const *src, size_t srclen, u_char *target, size_t targsize); #ifdef DIAGNOSTIC struct vnode *pe_checkvp(struct vnode *vp, char *fil, int lno); ==== //depot/projects/soc2009/gk_pefs/sys/fs/pefs/pefs_subr.c#2 (text+ko) ==== @@ -45,6 +45,7 @@ #include #include #include +#include #include #include @@ -69,6 +70,7 @@ static MALLOC_DEFINE(M_PEFSHASH, "pefs_hash", "PEFS hash table"); MALLOC_DEFINE(M_PEFSNODE, "pefs_node", "PEFS vnode private part"); +static MALLOC_DEFINE(M_PEFSBUF, "pefs_buf", "PEFS buffers"); static struct vnode * pe_hashget(struct mount *, struct vnode *); static struct vnode * pe_hashins(struct mount *, struct pe_node *); @@ -186,7 +188,7 @@ /* * Make a new or get existing pefs node. * Vp is the alias vnode, lowervp is the lower vnode. - * + * * The lowervp assumed to be locked and having "spare" reference. This routine * vrele lowervp if pefs node was taken from hash. Otherwise it "transfers" * the caller's "spare" reference to created pefs vnode. @@ -241,7 +243,7 @@ if (error != 0) return (error); /* - * Atomically insert our new node into the hash or vget existing + * Atomically insert our new node into the hash or vget existing * if someone else has beaten us to it. */ *vpp = pe_hashins(mp, xp); @@ -270,6 +272,121 @@ mtx_unlock(&pe_hashmtx); } +void +pe_xor(void *mem, size_t size, void *arg) +{ + char *b = (char *)mem; + char *e = b + size; + + for (; b < e; b++) { + *b ^= 0xAA; + } +} + +int +pe_name_encrypt(const char *plain, size_t plain_len, char *enc, size_t enc_size) +{ + char b_static[64]; + char *b; + int r; + + if (plain_len <= sizeof(b_static)) + b = b_static; + else + b = malloc(plain_len, M_PEFSBUF, M_WAITOK); + memcpy(b, plain, plain_len); + // FIXME + for (int i = 0; i < plain_len; i++) + b[i] ^= 0xAA; + r = pe_b64_ntop(b, plain_len, enc, enc_size); + printf("pe_name_encrypt: %d; %.*s => %.*s\n", r, plain_len, plain, r, enc); + if (b != b_static) + free(b, M_PEFSBUF); + return r; +} + +int +pe_name_decrypt(const char *enc, size_t enc_len, char *plain, size_t plain_size) +{ + int r; + + r = pe_b64_pton(enc, enc_len, plain, plain_size); + if (r > 0) { + // FIXME + for (int i = 0; i < r; i++) + plain[i] ^= 0xAA; + } + printf("pe_name_decrypt: %d; %.*s => %.*s\n", r, enc_len, enc, r < 0 ? 0 : r, plain); + return r; +} + +struct pe_xuio* +pe_xuio_create(struct uio* uio) +{ + struct pe_xuio *xuio; + size_t len; + int iov_cnt; + + len = 0; + for (int i = 0; i < uio->uio_iovcnt; i++) { + len += uio->uio_iov[i].iov_len; + } + + iov_cnt = (len + PAGE_SIZE - 1) / PAGE_SIZE; + xuio = malloc(sizeof(struct pe_xuio) + (sizeof(void*) + sizeof(struct iovec)) * iov_cnt, + M_PEFSBUF, M_WAITOK); + xuio->xuio_uio = *uio; + xuio->xuio_uio.uio_segflg = UIO_SYSSPACE; + xuio->xuio_uio.uio_iov = (struct iovec *)(xuio + 1); + xuio->xuio_bases = (void **)(xuio->xuio_uio.uio_iov + iov_cnt); + for (int i = 0; i < iov_cnt; i++) { + xuio->xuio_uio.uio_iov[i].iov_len = imin(PAGE_SIZE, len); + len -= PAGE_SIZE; + xuio->xuio_bases[i] = xuio->xuio_uio.uio_iov[i].iov_base = + malloc(xuio->xuio_uio.uio_iov[i].iov_len, M_PEFSBUF, M_WAITOK); + } + + return (xuio); +} + +void +pe_xuio_finish(struct pe_xuio* xuio, struct uio *src) +{ + src->uio_offset = xuio->xuio_uio.uio_offset; + src->uio_resid = xuio->xuio_uio.uio_resid; + for (int i = 0; i < xuio->xuio_uio.uio_iovcnt; i++) { + free(xuio->xuio_bases[i], M_PEFSBUF); + } + free(xuio, M_PEFSBUF); +} + +void +pe_xuio_transfrom(struct pe_xuio *_xuio, struct uio *src, pe_tr tr, void *arg) +{ + struct uio *xuio = &_xuio->xuio_uio; + + KASSERT(xuio->uio_segflg == UIO_SYSSPACE && xuio->uio_rw == src->uio_rw, + ("pe_uio_transfrom")); + for (int i = 0; i < xuio->uio_iovcnt; i++) { + int n; + void *base = xuio->uio_iov[i].iov_base; + + if (xuio->uio_rw == UIO_READ) { + n = src->uio_iov[i].iov_len - xuio->uio_iov[i].iov_len; + base = ((caddr_t) base) - n; + } else { + n = src->uio_iov[i].iov_len; + } + if (xuio->uio_rw == UIO_WRITE) + uiomove(base, n, src); + if (tr) + tr(base, n, arg); + if (xuio->uio_rw == UIO_READ) + uiomove(base, n, src); + } +} + + #ifdef DIAGNOSTIC #ifdef KDB ==== //depot/projects/soc2009/gk_pefs/sys/fs/pefs/pefs_vnops.c#2 (text+ko) ==== @@ -181,6 +181,7 @@ #include #include #include +#include #include @@ -189,10 +190,70 @@ #include #include -static int pe_bug_bypass = 0; /* for debugging: enables bypass printf'ing */ -SYSCTL_INT(_debug, OID_AUTO, pefs_bug_bypass, CTLFLAG_RW, +static int pe_bug_bypass = 1; /* for debugging: enables bypass printf'ing */ +SYSCTL_INT(_debug, OID_AUTO, pefs_bug_bypass, CTLFLAG_RW, &pe_bug_bypass, 0, ""); +const static struct { + size_t namelen; + const char *name; +} _pe_name_shadow_list[] = { + { 1, "." }, + { 2, ".." }, + { 4, ".zfs" }, + { 5, ".snap" }, + { 10, "lost+found" }, + { 0, NULL }, +}; + +static int +pe_name_shadow(char *name, int namelen, /*OPTIONAL*/ struct componentname *cnp) +{ + if (cnp != NULL && cnp->cn_flags & ISDOTDOT) + return (0); + for (int i = 0; _pe_name_shadow_list[i].namelen && _pe_name_shadow_list[i].namelen <= namelen; i++) { + if (namelen == _pe_name_shadow_list[i].namelen && + memcmp(_pe_name_shadow_list[i].name, name, namelen) == 0) + return (0); + } + return (1); +} + +static int +pe_cn_shadow_create(struct componentname *cnp, struct componentname *o_cnp) +{ + char *pnbuf; + int r; + + pnbuf = uma_zalloc(namei_zone, M_WAITOK); + r = pe_name_encrypt(cnp->cn_nameptr, cnp->cn_namelen, pnbuf, MAXPATHLEN); + if (r <= 0) { + uma_zfree(namei_zone, pnbuf); + return (EIO); + } + *o_cnp = *cnp; + cnp->cn_pnbuf = pnbuf; + cnp->cn_nameptr = pnbuf; + cnp->cn_namelen = r; + cnp->cn_consume = 0; // XXX?? + + printf("%s: ENC cn_nameiop=%lx, cn_pnbuf=%s; cn_nameptr=%.*s; cn_consume=%d, cn_namelen=%d\n", + __func__, cnp->cn_nameiop, cnp->cn_pnbuf, (int) cnp->cn_namelen, cnp->cn_nameptr, + (int) cnp->cn_consume, (int) cnp->cn_namelen); + + return (0); +} + +static void +pe_cn_shadow_finish(struct componentname *cnp, const struct componentname *o_cnp) +{ + uma_zfree(namei_zone, cnp->cn_pnbuf); + cnp->cn_pnbuf = o_cnp->cn_pnbuf; + cnp->cn_nameptr = o_cnp->cn_nameptr; + cnp->cn_namelen = o_cnp->cn_namelen; + cnp->cn_consume = o_cnp->cn_consume; +} + /* * This is the 10-Apr-92 bypass routine. * This version has been optimized for speed, throwing away some @@ -339,14 +400,25 @@ pe_lookup(struct vop_lookup_args *ap) { struct componentname *cnp = ap->a_cnp; + struct componentname o_cnp = *ap->a_cnp; struct vnode *dvp = ap->a_dvp; + struct vnode *vp, *ldvp, *lvp; int flags = cnp->cn_flags; - struct vnode *vp, *ldvp, *lvp; + int shadow; int error; + printf("%s: cn_nameiop=%lx, cn_pnbuf=%s; cn_nameptr=%.*s; cn_consume=%d, cn_namelen=%d\n", + __func__, cnp->cn_nameiop, cnp->cn_pnbuf, (int) cnp->cn_namelen, cnp->cn_nameptr, + (int) cnp->cn_consume, (int) cnp->cn_namelen); + if ((flags & ISLASTCN) && (dvp->v_mount->mnt_flag & MNT_RDONLY) && (cnp->cn_nameiop == DELETE || cnp->cn_nameiop == RENAME)) return (EROFS); + + shadow = pe_name_shadow(cnp->cn_nameptr, cnp->cn_namelen, cnp); + if (shadow) + pe_cn_shadow_create(cnp, &o_cnp); + /* * Although it is possible to call pe_bypass(), we'll do * a direct call to reduce overhead @@ -359,6 +431,9 @@ (cnp->cn_nameiop == CREATE || cnp->cn_nameiop == RENAME)) error = EROFS; + if (shadow) + pe_cn_shadow_finish(cnp, &o_cnp); + if ((error == 0 || error == EJUSTRETURN) && lvp != NULL) { if (ldvp == lvp) { *ap->a_vpp = dvp; @@ -499,7 +574,7 @@ vrele(fvp); return (EXDEV); } - + return (pe_bypass((struct vop_generic_args *)ap)); } @@ -620,7 +695,7 @@ * on the underlying filesystem. For now we just have to release lowervp * as soon as possible. * - * Note, we can't release any resources nor remove vnode from hash before + * Note, we can't release any resources nor remove vnode from hash before * appropriate VXLOCK stuff is is done because other process can find this * vnode in hash during inactivation and may be sitting in vget() and waiting * for pe_inactive to unlock vnode. Thus we will do all those in VOP_RECLAIM. @@ -715,6 +790,138 @@ return VOP_VPTOFH(lvp, ap->a_fhp); } +static void +pe_readdir_tr(void *mem, size_t sz, void *arg) +{ + struct dirent *de; + char d_name[MAXNAMLEN]; + int d_namelen; + int de_len; + + // FIXME + for (de = (struct dirent*) mem; sz > 0; + sz -= de_len, + de = (struct dirent *)(((caddr_t)de) + de_len)) { + de_len = GENERIC_DIRSIZ(de); + if (!pe_name_shadow(de->d_name, de->d_namlen, NULL)) + continue; + d_namelen = pe_name_decrypt(de->d_name, de->d_namlen, d_name, sizeof(d_name)); + printf("%s =>; res=%d; %.*s --> %.*s\n", __func__, d_namelen, + de->d_namlen, de->d_name, + d_namelen < 0 ? 0 : d_namelen, d_name); + if (d_namelen > 0) { + /* + * Do not change d_reclen + */ + strlcpy(de->d_name, d_name, de->d_namlen + 1); + de->d_namlen = d_namelen; + } + } +} + +static int +pe_readdir(struct vop_readdir_args *ap) +{ + struct uio *uio = ap->a_uio; + struct pe_xuio *xuio; + int error; + + if (0) + pe_readdir_tr(0, 0, 0); + xuio = pe_xuio_create(uio); + ap->a_uio = &xuio->xuio_uio; + error = pe_bypass((struct vop_generic_args *)ap); + ap->a_uio = uio; + printf("%s => %d; ncookies=%d\n", __func__, error, ap->a_ncookies ? *ap->a_ncookies : -1); + pe_xuio_transfrom(xuio, uio, pe_readdir_tr, NULL); + printf("%s: result _ iovec[0]: base=%p, len=%d\n", __func__, + uio->uio_iov[0].iov_base, uio->uio_iov[0].iov_len); + pe_xuio_finish(xuio, uio); + return (error); +} + +static int +pe_mkdir(struct vop_mkdir_args *ap) +{ + struct componentname *cnp = ap->a_cnp; + struct componentname o_cnp; + int shadow, error; + + shadow = pe_name_shadow(cnp->cn_nameptr, cnp->cn_namelen, cnp); + if (shadow) + pe_cn_shadow_create(cnp, &o_cnp); + + printf("%s: cn_nameiop=%lx, cn_nameptr=%.*s\n", + __func__, cnp->cn_nameiop, (int) cnp->cn_namelen, cnp->cn_nameptr); + error = pe_bypass((struct vop_generic_args *)ap); + + if (shadow) + pe_cn_shadow_finish(cnp, &o_cnp); + + return (error); + +} + +static int +pe_read(struct vop_read_args *ap) +{ + struct vnode *vp = ap->a_vp; + struct uio *uio = ap->a_uio; + struct pe_xuio *xuio; + struct vnode *lvp; + int error; + + if (vp->v_type == VCHR || vp->v_type == VBLK || vp->v_type == VDIR) + return (ENOTSUP); + if (uio->uio_resid == 0) + return (0); + if (uio->uio_offset < 0) + return (EINVAL); + + printf("%s: uio_offset=%ju, uio_resid=%u, uio_segflg:sysspace=%d, uio_rw=%x, ioveccnt=%d\n", + __func__, + (intmax_t) uio->uio_offset, uio->uio_resid, + uio->uio_segflg == UIO_SYSSPACE, uio->uio_rw, uio->uio_iovcnt); + xuio = pe_xuio_create(uio); + lvp = PEVPTOLOWERVP(vp); + error = VOP_READ(lvp, &xuio->xuio_uio, ap->a_ioflag, ap->a_cred); + pe_xuio_transfrom(xuio, uio, pe_xor, NULL); + pe_xuio_finish(xuio, uio); + + return (error); +} + +static int +pe_write(struct vop_write_args *ap) +{ + struct vnode *vp = ap->a_vp; + struct uio *uio = ap->a_uio; + struct pe_xuio *xuio; + struct vnode *lvp; + int error; + + if (vp->v_type == VCHR || vp->v_type == VBLK) + return (ENOTSUP); + if (vp->v_type == VDIR) + return (EISDIR); + if (uio->uio_resid == 0) + return (0); + if (uio->uio_offset < 0) + return (EINVAL); + + printf("%s: uio_offset=%ju, uio_resid=%u, uio_segflg:sysspace=%d, uio_rw=%x, ioveccnt=%d\n", + __func__, + (intmax_t) uio->uio_offset, uio->uio_resid, + uio->uio_segflg == UIO_SYSSPACE, uio->uio_rw, uio->uio_iovcnt); + xuio = pe_xuio_create(uio); + pe_xuio_transfrom(xuio, uio, pe_xor, NULL); + lvp = PEVPTOLOWERVP(vp); + error = VOP_WRITE(lvp, &xuio->xuio_uio, ap->a_ioflag, ap->a_cred); + pe_xuio_finish(xuio, uio); + + return (error); +} + /* * Global vfs data structures */ @@ -727,14 +934,27 @@ .vop_inactive = pe_inactive, .vop_islocked = vop_stdislocked, .vop_lock1 = pe_lock, - .vop_lookup = pe_lookup, .vop_open = pe_open, .vop_print = pe_print, .vop_reclaim = pe_reclaim, - .vop_rename = pe_rename, .vop_setattr = pe_setattr, .vop_strategy = VOP_EOPNOTSUPP, .vop_unlock = pe_unlock, .vop_vptocnp = vop_stdvptocnp, .vop_vptofh = pe_vptofh, + /* */ + .vop_lookup = pe_lookup, + .vop_mkdir = pe_mkdir, + .vop_rmdir = VOP_EOPNOTSUPP, + .vop_create = VOP_EOPNOTSUPP, + .vop_remove = VOP_EOPNOTSUPP, + .vop_rename = pe_rename, + .vop_link = VOP_EOPNOTSUPP, + .vop_symlink = VOP_EOPNOTSUPP, + .vop_readlink = VOP_EOPNOTSUPP, + .vop_readdir = pe_readdir, + .vop_mknod = VOP_EOPNOTSUPP, + /* */ + .vop_read = pe_read, + .vop_write = pe_write, }; ==== //depot/projects/soc2009/gk_pefs/sys/modules/pefs/Makefile#2 (text+ko) ==== @@ -4,7 +4,8 @@ KMOD= pefs SRCS= vnode_if.h \ - pefs_subr.c pefs_vfsops.c pefs_vnops.c + pefs_subr.c pefs_vfsops.c pefs_vnops.c pefs_xbase64.c +DEBUG_FLAGS= -g .include From owner-p4-projects@FreeBSD.ORG Sat Jun 13 16:59:59 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 4F4B81065687; Sat, 13 Jun 2009 16:59:59 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 09069106567C for ; Sat, 13 Jun 2009 16:59:59 +0000 (UTC) (envelope-from syl@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id EB5938FC25 for ; Sat, 13 Jun 2009 16:59:58 +0000 (UTC) (envelope-from syl@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n5DGxw8Q027146 for ; Sat, 13 Jun 2009 16:59:58 GMT (envelope-from syl@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n5DGxwPZ027144 for perforce@freebsd.org; Sat, 13 Jun 2009 16:59:58 GMT (envelope-from syl@FreeBSD.org) Date: Sat, 13 Jun 2009 16:59:58 GMT Message-Id: <200906131659.n5DGxwPZ027144@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to syl@FreeBSD.org using -f From: Sylvestre Gallon To: Perforce Change Reviews Cc: Subject: PERFORCE change 164285 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 13 Jun 2009 17:00:00 -0000 http://perforce.freebsd.org/chv.cgi?CH=164285 Change 164285 by syl@syl_atuin on 2009/06/13 16:58:58 - Remove debug printf in libusb10_desc.c. - Implement test3 that test libusb_get_max_packet_size(). Affected files ... .. //depot/projects/soc2009/syl_usb/libusb-tests/basic/Makefile#2 edit .. //depot/projects/soc2009/syl_usb/libusb-tests/basic/test3/Makefile#1 add .. //depot/projects/soc2009/syl_usb/libusb-tests/basic/test3/test3.c#1 add .. //depot/projects/soc2009/syl_usb/src/lib/libusb/libusb10.c#28 edit .. //depot/projects/soc2009/syl_usb/src/lib/libusb/libusb10_desc.c#14 edit Differences ... ==== //depot/projects/soc2009/syl_usb/libusb-tests/basic/Makefile#2 (text+ko) ==== @@ -1,5 +1,6 @@ SUBDIR= test1 \ - test2 + test2 \ + test3 test: .for dir in ${SUBDIR} ==== //depot/projects/soc2009/syl_usb/src/lib/libusb/libusb10.c#28 (text+ko) ==== ==== //depot/projects/soc2009/syl_usb/src/lib/libusb/libusb10_desc.c#14 (text+ko) ==== @@ -118,8 +118,6 @@ nend += pconf->interface[i].num_endpoints; } - printf("nif : %i nalt : %i nend : %i\n", nif, nalt, nend); - *config = malloc(sizeof(libusb_config_descriptor) + (nif * sizeof(libusb_interface)) + (nalt * sizeof(libusb_interface_descriptor)) + @@ -170,8 +168,6 @@ if ((*config)->extra_length != 0) (*config)->extra = pconf->extra.ptr; - printf("nif : %i nalt : %i nend : %i\n", nif, nalt, nend); - for (i = 0 ; i < nif ; i++) { pinf = &pconf->interface[i]; (*config)->interface[i].num_altsetting = pinf->num_altsetting + 1; From owner-p4-projects@FreeBSD.ORG Sat Jun 13 19:53:09 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 46FB31065670; Sat, 13 Jun 2009 19:53:09 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 06CEA106566B for ; Sat, 13 Jun 2009 19:53:09 +0000 (UTC) (envelope-from trasz@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id E7F5A8FC17 for ; Sat, 13 Jun 2009 19:53:08 +0000 (UTC) (envelope-from trasz@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n5DJr8MN057940 for ; Sat, 13 Jun 2009 19:53:08 GMT (envelope-from trasz@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n5DJr8s2057938 for perforce@freebsd.org; Sat, 13 Jun 2009 19:53:08 GMT (envelope-from trasz@freebsd.org) Date: Sat, 13 Jun 2009 19:53:08 GMT Message-Id: <200906131953.n5DJr8s2057938@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to trasz@freebsd.org using -f From: Edward Tomasz Napierala To: Perforce Change Reviews Cc: Subject: PERFORCE change 164289 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 13 Jun 2009 19:53:10 -0000 http://perforce.freebsd.org/chv.cgi?CH=164289 Change 164289 by trasz@trasz_victim on 2009/06/13 19:52:47 WIP on exporting the accounting data to the userland. Affected files ... .. //depot/projects/soc2009/trasz_limits/sys/compat/freebsd32/syscalls.master#3 edit .. //depot/projects/soc2009/trasz_limits/sys/kern/init_sysent.c#4 edit .. //depot/projects/soc2009/trasz_limits/sys/kern/kern_hrl.c#7 edit .. //depot/projects/soc2009/trasz_limits/sys/kern/syscalls.c#3 edit .. //depot/projects/soc2009/trasz_limits/sys/kern/syscalls.master#3 edit .. //depot/projects/soc2009/trasz_limits/sys/kern/systrace_args.c#3 edit .. //depot/projects/soc2009/trasz_limits/sys/sys/hrl.h#6 edit .. //depot/projects/soc2009/trasz_limits/sys/sys/syscall.h#3 edit .. //depot/projects/soc2009/trasz_limits/sys/sys/syscall.mk#3 edit .. //depot/projects/soc2009/trasz_limits/sys/sys/sysproto.h#3 edit .. //depot/projects/soc2009/trasz_limits/usr.sbin/hrl/hrl.c#6 edit Differences ... ==== //depot/projects/soc2009/trasz_limits/sys/compat/freebsd32/syscalls.master#3 (text+ko) ==== @@ -875,5 +875,4 @@ 507 AUE_NULL STD { int freebsd32_jail_set(struct iovec32 *iovp, \ unsigned int iovcnt, int flags); } 508 AUE_NULL NOPROTO { int jail_remove(int jid); } -509 AUE_NULL STD { int hrl_get(struct hrl_limit **bufp, int nentries, int *required); } -510 AUE_NULL STD { int hrl_set(struct hrl_limit **bufp, int nentries); } +509 AUE_NULL STD { int hrl(int op, const void inbufp, size_t *inbuflen, void *outbufp, size_t outbuflen); } ==== //depot/projects/soc2009/trasz_limits/sys/kern/init_sysent.c#4 (text+ko) ==== @@ -2,8 +2,8 @@ * System call switch table. * * DO NOT EDIT-- this file is automatically generated. - * $FreeBSD: src/sys/kern/init_sysent.c,v 1.248 2009/06/01 16:14:38 rwatson Exp $ - * created from FreeBSD: head/sys/kern/syscalls.master 191673 2009-04-29 21:14:15Z jamie + * $FreeBSD$ + * created from FreeBSD: src/sys/kern/syscalls.master,v 1.250 2009/04/29 21:14:15 jamie Exp */ #include "opt_compat.h" @@ -537,6 +537,5 @@ { AS(jail_get_args), (sy_call_t *)jail_get, AUE_NULL, NULL, 0, 0, 0 }, /* 506 = jail_get */ { AS(jail_set_args), (sy_call_t *)jail_set, AUE_NULL, NULL, 0, 0, 0 }, /* 507 = jail_set */ { AS(jail_remove_args), (sy_call_t *)jail_remove, AUE_NULL, NULL, 0, 0, 0 }, /* 508 = jail_remove */ - { AS(hrl_get_args), (sy_call_t *)hrl_get, AUE_NULL, NULL, 0, 0, 0 }, /* 509 = hrl_get */ - { AS(hrl_set_args), (sy_call_t *)hrl_set, AUE_NULL, NULL, 0, 0, 0 }, /* 510 = hrl_set */ + { AS(hrl_args), (sy_call_t *)hrl, AUE_NULL, NULL, 0, 0, 0 }, /* 509 = hrl */ }; ==== //depot/projects/soc2009/trasz_limits/sys/kern/kern_hrl.c#7 (text+ko) ==== @@ -45,7 +45,7 @@ #include struct hrl_node { - struct hrl_rule hn_rule; + struct hrl_rule hn_rule; RB_ENTRY(hrl_node) hn_next; }; @@ -93,7 +93,6 @@ static void hrl_init(void); SYSINIT(hrl, SI_SUB_RUN_SCHEDULER, SI_ORDER_SECOND, hrl_init, NULL); -static int nhrls = 0; static uma_zone_t hrl_zone; static struct mtx hrl_lock; @@ -169,7 +168,6 @@ if (node != NULL) { node = RB_REMOVE(hrl_tree, &hrls, node); KASSERT(node != NULL, ("node removal failed")); - nhrls--; } mtx_unlock(&hrl_lock); if (node != NULL) @@ -184,12 +182,10 @@ *node = searched; mtx_lock(&hrl_lock); existing = RB_INSERT(hrl_tree, &hrls, node); - if (existing != NULL) { + if (existing != NULL) existing->hn_rule.hr_amount = amount; - } else { + else node->hn_rule.hr_amount = amount; - nhrls++; - } mtx_unlock(&hrl_lock); if (existing != NULL) uma_zfree(hrl_zone, node); @@ -222,89 +218,16 @@ } #endif -int -hrl_set(struct thread *td, struct hrl_set_args *uap) +static int +hrl_get_rules(struct thread *td, void *bufp, size_t buflen) { -#if 0 - int error; - size_t buflen; - struct hrl_rule *newlimits; - - error = priv_check(td, PRIV_HRL_GET); - if (error) - return (error); - - /* - * XXX: Check for being in jail? - */ - - if (uap->nentries < 0 || uap->nentries > HRL_MAX_LIMITS) - return (EINVAL); - - /* - * Removing all the limits? - */ - if (uap->nentries == 0) { - mtx_lock(&hrl_lock); - free(limits, M_HRL); - limits = NULL; - nhrls = 0; - mtx_unlock(&hrl_lock); - - return (0); - } - - buflen = sizeof(struct hrl_rule) * uap->nentries; - - newlimits = malloc(buflen, M_HRL, M_WAITOK); - error = copyin(uap->bufp, newlimits, buflen); - if (error) - goto out; - - error = hrl_check(newlimits, uap->nentries); - if (error) - goto out; - - mtx_lock(&hrl_lock); - - if (limits != NULL) - free(limits, M_HRL); - - limits = newlimits; - nhrls = uap->nentries; - - mtx_unlock(&hrl_lock); - - return (0); - -out: - free(newlimits, M_HRL); - return (error); -#else - return (ENOSYS); -#endif -} - -int -hrl_get(struct thread *td, struct hrl_get_args *uap) -{ - int error = 0, copied = 0; - size_t buflen; + int error, copied = 0; + struct hrl_rule *buf; struct hrl_node *node; - struct hrl_rule *buf; - if (uap->nentries == 0 && uap->bufp == NULL) { - mtx_lock(&hrl_lock); - error = suword(uap->required, nhrls); - mtx_unlock(&hrl_lock); - - return (error); - } - - if (uap->nentries < 0 || uap->nentries >= HRL_MAX_LIMITS) + if (buflen > HRL_MAX_LIMITS * sizeof(struct hrl_rule)) return (EINVAL); - buflen = sizeof(struct hrl_rule) * uap->nentries; buf = malloc(buflen, M_HRL, M_WAITOK); /* @@ -317,7 +240,8 @@ * XXX: Do not show everything to the client; just the * nodes that affect him. */ - if (copied >= uap->nentries) { + /* +1 to make room for the terminating NULL entry. */ + if ((copied + 1) * sizeof(*buf) >= buflen) { error = EFBIG; break; } @@ -328,21 +252,33 @@ if (error) goto out; - error = copyout(buf, uap->bufp, sizeof(struct hrl_rule) * copied); + /* Add terminating NULL entry. */ + bzero(buf + copied, sizeof(*buf)); + copied++; + + error = copyout(buf, bufp, sizeof(struct hrl_rule) * copied); if (error) goto out; - if (suword(uap->required, copied) != 0) { - error = EINVAL; - goto out; - } - out: free(buf, M_HRL); return (error); } +int +hrl(struct thread *td, struct hrl_args *uap) +{ + switch (uap->op) { + case HRL_OP_GET_RULES: + return (hrl_get_rules(td, uap->outbufp, uap->outbuflen)); + case HRL_OP_GET_ACC_PID: + return (hrl_get_acc_pid(td, uap->outbufp, uap->outbuflen)); + default: + return (EINVAL); + } +} + static void hrl_proc_exit(void *arg __unused, struct proc *p) { @@ -368,7 +304,6 @@ node = RB_REMOVE(hrl_tree, &hrls, node); KASSERT(node != NULL, ("node removal failed")); - nhrls--; mtx_unlock(&hrl_lock); uma_zfree(hrl_zone, node); ==== //depot/projects/soc2009/trasz_limits/sys/kern/syscalls.c#3 (text+ko) ==== @@ -516,6 +516,5 @@ "jail_get", /* 506 = jail_get */ "jail_set", /* 507 = jail_set */ "jail_remove", /* 508 = jail_remove */ - "hrl_get", /* 509 = hrl_get */ - "hrl_set", /* 510 = hrl_set */ + "hrl", /* 509 = hrl */ }; ==== //depot/projects/soc2009/trasz_limits/sys/kern/syscalls.master#3 (text+ko) ==== @@ -902,7 +902,6 @@ 507 AUE_NULL STD { int jail_set(struct iovec *iovp, \ unsigned int iovcnt, int flags); } 508 AUE_NULL STD { int jail_remove(int jid); } -509 AUE_NULL STD { int hrl_get(struct hrl_limit **bufp, int nentries, int *required); } -510 AUE_NULL STD { int hrl_set(struct hrl_limit **bufp, int nentries); } +509 AUE_NULL STD { int hrl(int op, const void *inbufp, size_t inbuflen, void *outbufp, size_t outbuflen); } ; Please copy any additions and changes to the following compatability tables: ; sys/compat/freebsd32/syscalls.master ==== //depot/projects/soc2009/trasz_limits/sys/kern/systrace_args.c#3 (text+ko) ==== @@ -3065,23 +3065,17 @@ *n_args = 1; break; } - /* hrl_get */ + /* hrl */ case 509: { - struct hrl_get_args *p = params; - uarg[0] = (intptr_t) p->bufp; /* struct hrl_limit ** */ - iarg[1] = p->nentries; /* int */ - uarg[2] = (intptr_t) p->required; /* int * */ - *n_args = 3; + struct hrl_args *p = params; + iarg[0] = p->op; /* int */ + uarg[1] = (intptr_t) p->inbufp; /* const void * */ + uarg[2] = p->inbuflen; /* size_t */ + uarg[3] = (intptr_t) p->outbufp; /* void * */ + uarg[4] = p->outbuflen; /* size_t */ + *n_args = 5; break; } - /* hrl_set */ - case 510: { - struct hrl_set_args *p = params; - uarg[0] = (intptr_t) p->bufp; /* struct hrl_limit ** */ - iarg[1] = p->nentries; /* int */ - *n_args = 2; - break; - } default: *n_args = 0; break; @@ -8154,30 +8148,23 @@ break; }; break; - /* hrl_get */ + /* hrl */ case 509: switch(ndx) { case 0: - p = "struct hrl_limit **"; + p = "int"; break; case 1: - p = "int"; + p = "const void *"; break; case 2: - p = "int *"; + p = "size_t"; break; - default: + case 3: + p = "void *"; break; - }; - break; - /* hrl_set */ - case 510: - switch(ndx) { - case 0: - p = "struct hrl_limit **"; - break; - case 1: - p = "int"; + case 4: + p = "size_t"; break; default: break; ==== //depot/projects/soc2009/trasz_limits/sys/sys/hrl.h#6 (text+ko) ==== @@ -92,6 +92,11 @@ #define HRL_MAX_LIMITS 128 +#define HRL_OP_GET_RULES 1 +#define HRL_OP_GET_ACC_PID 2 +#define HRL_OP_GET_ACC_UID 3 +#define HRL_OP_GET_ACC_GID 4 + #ifdef _KERNEL struct proc; @@ -108,8 +113,7 @@ #else /* !_KERNEL */ __BEGIN_DECLS -int hrl_get(struct hrl_rule *bufp, int nentries, int *count); -int hrl_set(struct hrl_rule *bufp, int nentries); +int hrl(int op, const void *inbufp, size_t inbuflen, void *outbufp, size_t outbuflen); __END_DECLS #endif /* !_KERNEL */ ==== //depot/projects/soc2009/trasz_limits/sys/sys/syscall.h#3 (text+ko) ==== @@ -424,6 +424,5 @@ #define SYS_jail_get 506 #define SYS_jail_set 507 #define SYS_jail_remove 508 -#define SYS_hrl_get 509 -#define SYS_hrl_set 510 -#define SYS_MAXSYSCALL 511 +#define SYS_hrl 509 +#define SYS_MAXSYSCALL 510 ==== //depot/projects/soc2009/trasz_limits/sys/sys/syscall.mk#3 (text+ko) ==== @@ -373,5 +373,4 @@ jail_get.o \ jail_set.o \ jail_remove.o \ - hrl_get.o \ - hrl_set.o + hrl.o ==== //depot/projects/soc2009/trasz_limits/sys/sys/sysproto.h#3 (text+ko) ==== @@ -1638,15 +1638,13 @@ struct jail_remove_args { char jid_l_[PADL_(int)]; int jid; char jid_r_[PADR_(int)]; }; -struct hrl_get_args { - char bufp_l_[PADL_(struct hrl_limit **)]; struct hrl_limit ** bufp; char bufp_r_[PADR_(struct hrl_limit **)]; - char nentries_l_[PADL_(int)]; int nentries; char nentries_r_[PADR_(int)]; - char required_l_[PADL_(int *)]; int * required; char required_r_[PADR_(int *)]; +struct hrl_args { + char op_l_[PADL_(int)]; int op; char op_r_[PADR_(int)]; + char inbufp_l_[PADL_(const void *)]; const void * inbufp; char inbufp_r_[PADR_(const void *)]; + char inbuflen_l_[PADL_(size_t)]; size_t inbuflen; char inbuflen_r_[PADR_(size_t)]; + char outbufp_l_[PADL_(void *)]; void * outbufp; char outbufp_r_[PADR_(void *)]; + char outbuflen_l_[PADL_(size_t)]; size_t outbuflen; char outbuflen_r_[PADR_(size_t)]; }; -struct hrl_set_args { - char bufp_l_[PADL_(struct hrl_limit **)]; struct hrl_limit ** bufp; char bufp_r_[PADR_(struct hrl_limit **)]; - char nentries_l_[PADL_(int)]; int nentries; char nentries_r_[PADR_(int)]; -}; int nosys(struct thread *, struct nosys_args *); void sys_exit(struct thread *, struct sys_exit_args *); int fork(struct thread *, struct fork_args *); @@ -2004,8 +2002,7 @@ int jail_get(struct thread *, struct jail_get_args *); int jail_set(struct thread *, struct jail_set_args *); int jail_remove(struct thread *, struct jail_remove_args *); -int hrl_get(struct thread *, struct hrl_get_args *); -int hrl_set(struct thread *, struct hrl_set_args *); +int hrl(struct thread *, struct hrl_args *); #ifdef COMPAT_43 @@ -2602,8 +2599,7 @@ #define SYS_AUE_jail_get AUE_NULL #define SYS_AUE_jail_set AUE_NULL #define SYS_AUE_jail_remove AUE_NULL -#define SYS_AUE_hrl_get AUE_NULL -#define SYS_AUE_hrl_set AUE_NULL +#define SYS_AUE_hrl AUE_NULL #undef PAD_ #undef PADL_ ==== //depot/projects/soc2009/trasz_limits/usr.sbin/hrl/hrl.c#6 (text+ko) ==== @@ -28,12 +28,17 @@ __FBSDID("$FreeBSD$"); #include +#include +#include +#include +#include #include #include -#include -#include +#include #include +#define BUFLEN_DEFAULT 1024 + static void print_subject(int subject, id_t id) { @@ -179,45 +184,200 @@ } } -int -main(int argc __unused, char **argv __unused) +static id_t +parse_pid(const char *s) +{ + id_t id; + char *end; + + id = strtod(s, &end); + if ((size_t)(end - s) != strlen(s)) + errx(1, "trailing characters after numerical id"); + + return (id); +} + +static id_t +parse_user(const char *s) +{ + id_t id; + char *end; + struct passwd *pwd; + + pwd = getpwnam(s); + if (pwd != NULL) + return (pwd->pw_uid); + + id = strtod(s, &end); + if ((size_t)(end - s) != strlen(s)) + errx(1, "trailing characters after numerical id"); + + return (id); +} + +static id_t +parse_group(const char *s) +{ + id_t id; + char *end; + struct group *grp; + + grp = getgrnam(s); + if (grp != NULL) + return (grp->gr_gid); + + id = strtod(s, &end); + if ((size_t)(end - s) != strlen(s)) + errx(1, "trailing characters after numerical id"); + + return (id); +} + +static void +print_rules(void) { - int error, nentries, i; - struct hrl_rule *limits; + int error; + size_t ruleslen, i; + struct hrl_rule *rules = NULL; + + ruleslen = BUFLEN_DEFAULT / 4; + do { + ruleslen *= 4; + rules = realloc(rules, ruleslen); + if (rules == NULL) + err(1, "realloc"); + + error = hrl(HRL_OP_GET_RULES, NULL, 0, rules, ruleslen); + if (error != 0 && error != EFBIG) + err(1, "hrl_get"); + } while (error == EFBIG); - error = hrl_get(NULL, 0, &nentries); - if (error) - err(1, "hrl_get"); + printf("Defined resource limits:\n"); - if (nentries == 0) { + if (rules[0].hr_subject == 0) { printf("No resource limits defined.\n"); - return (0); + + return; + } + + for (i = 0; i < ruleslen / sizeof(*rules); i++) { + /* NULL entry terminating the table? */ + if (rules[i].hr_subject == 0) + break; + print_subject(rules[i].hr_subject, rules[i].hr_subject_id); + printf(":"); + print_resource(rules[i].hr_resource); + printf(":"); + print_action(rules[i].hr_action); + printf("="); + printf("%jd", rules[i].hr_amount); + if (rules[i].hr_subject != rules[i].hr_per) { + printf("/"); + print_per(rules[i].hr_per); + } + printf("\n"); } +} + +static void +print_accounting(int op, id_t id) +{ + int error; + size_t ruleslen, i; + struct hrl_rule *rules = NULL; - limits = malloc(sizeof(struct hrl_rule) * nentries); - if (limits == NULL) - err(1, "malloc"); + ruleslen = BUFLEN_DEFAULT / 4; + do { + ruleslen *= 4; + rules = realloc(rules, ruleslen); + if (rules == NULL) + err(1, "realloc"); + + error = hrl(op, &id, sizeof(id), rules, ruleslen); + if (error != 0 && error != EFBIG) + err(1, "hrl_get"); + } while (error == EFBIG); + + printf("Resource utilisation:\n"); - error = hrl_get(limits, nentries, &nentries); - if (error) - err(1, "hrl_get"); + if (rules[0].hr_subject == 0) { + printf("No resource utilisation recorded.\n"); - printf("Defined resource limits:\n"); + return; + } - for (i = 0; i < nentries; i++) { - print_subject(limits[i].hr_subject, limits[i].hr_subject_id); + for (i = 0; i < ruleslen / sizeof(*rules); i++) { + /* NULL entry terminating the table? */ + if (rules[i].hr_subject == 0) + break; + print_subject(rules[i].hr_subject, rules[i].hr_subject_id); printf(":"); - print_resource(limits[i].hr_resource); + print_resource(rules[i].hr_resource); printf(":"); - print_action(limits[i].hr_action); + print_action(rules[i].hr_action); printf("="); - printf("%jd", limits[i].hr_amount); - if (limits[i].hr_subject != limits[i].hr_per) { + printf("%jd", rules[i].hr_amount); + if (rules[i].hr_subject != rules[i].hr_per) { printf("/"); - print_per(limits[i].hr_per); + print_per(rules[i].hr_per); } printf("\n"); } +} + +static void +usage(void) +{ + + fprintf(stderr, "usage: hrl [-u user | -g group | -p pid]\n"); +} + +int +main(int argc __unused, char **argv __unused) +{ + int ch, op, pflag = 0, uflag = 0, gflag = 0; + id_t id = 0; + + op = HRL_OP_GET_RULES; + + while ((ch = getopt(argc, argv, "p:u:g:")) != -1) { + switch (ch) { + case 'p': + pflag = 1; + op = HRL_OP_GET_ACC_PID; + id = parse_pid(optarg); + break; + case 'u': + uflag = 1; + op = HRL_OP_GET_ACC_UID; + id = parse_user(optarg); + break; + case 'g': + gflag = 1; + op = HRL_OP_GET_ACC_GID; + id = parse_group(optarg); + break; + case '?': + default: + usage(); + } + } + + if (pflag + uflag + gflag > 1) + errx(1, "only one of the -p, -u and -g may be specified " + "at the same time"); + + switch (op) { + case HRL_OP_GET_RULES: + print_rules(); + break; + + case HRL_OP_GET_ACC_PID: + case HRL_OP_GET_ACC_UID: + case HRL_OP_GET_ACC_GID: + print_accounting(op, id); + break; + } return (0); } From owner-p4-projects@FreeBSD.ORG Sat Jun 13 20:51:30 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id AA4A01065672; Sat, 13 Jun 2009 20:51:29 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 6A767106566C for ; Sat, 13 Jun 2009 20:51:29 +0000 (UTC) (envelope-from alepulver@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 588928FC14 for ; Sat, 13 Jun 2009 20:51:29 +0000 (UTC) (envelope-from alepulver@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n5DKpQLm074809 for ; Sat, 13 Jun 2009 20:51:26 GMT (envelope-from alepulver@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n5DKpIfa074802 for perforce@freebsd.org; Sat, 13 Jun 2009 20:51:18 GMT (envelope-from alepulver@freebsd.org) Date: Sat, 13 Jun 2009 20:51:18 GMT Message-Id: <200906132051.n5DKpIfa074802@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to alepulver@freebsd.org using -f From: Alejandro Pulver To: Perforce Change Reviews Cc: Subject: PERFORCE change 164292 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 13 Jun 2009 20:51:30 -0000 http://perforce.freebsd.org/chv.cgi?CH=164292 Change 164292 by alepulver@alepulver_deimos on 2009/06/13 20:51:13 - Add packaging restriction for GPLv3. - Allow not defining license groups for particular cases. - Avoid (non-fatal) error if license checksum is was not present. - Add "@dirrmtry share/licenses" to avoid leftovers in the test build, as all ports save license information (and licenses themselves, if nonstandard) to "share/licenses/${UNIQUENAME}"). Affected files ... .. //depot/projects/soc2008/alepulver-portslicense/ports/Mk/bsd.licenses.db.mk#3 edit .. //depot/projects/soc2008/alepulver-portslicense/ports/Mk/bsd.licenses.mk#7 edit .. //depot/projects/soc2008/alepulver-portslicense/ports/Mk/bsd.port.mk#6 edit Differences ... ==== //depot/projects/soc2008/alepulver-portslicense/ports/Mk/bsd.licenses.db.mk#3 (text+ko) ==== @@ -49,6 +49,7 @@ _LICENSE_NAME_GPLv2= GNU General Public License version 2 _LICENSE_NAME_GPLv3= GNU General Public License version 3 +_LICENSE_PERMS_GPLv3= no-pkg _LICENSE_NAME_LGPL= GNU Lesser General Public License ==== //depot/projects/soc2008/alepulver-portslicense/ports/Mk/bsd.licenses.mk#7 (text+ko) ==== @@ -205,9 +205,10 @@ . endif . endfor . endif -# XXX here it does not affect _LICENSE_TYPE +# XXX Some defaults (here they do not affect _LICENSE_TYPE). _LICENSE_COMPAT?= # _LICENSE_INCOMPAT?= # +_LICENSE_GROUPS?= # # Check everything needed is defined. . for var in ${_LICENSE_LIST_PORT_VARS} . if !defined(_LICENSE_${var}) @@ -411,7 +412,8 @@ status=done; \ fi; \ if [ ${_LICENSE_STATUS} = "accepted" -a ${_LICENSE_TYPE} != "known" ]; then \ - if [ ${_LICENSE_${_LICENSE}_CHK} != `${SHA256} -q ${_LICENSE_FILE}` ]; then \ + if [ -n "${_LICENSE_${_LICENSE}_CHK}" -a \ + "${_LICENSE_${_LICENSE}_CHK}" != `${SHA256} -q ${_LICENSE_FILE}` ]; then \ ${ECHO_MSG} "===> License has changed, agreement will be presented"; \ status=ask; \ fi; \ @@ -498,6 +500,8 @@ @${ECHO_CMD} ${var}=${${var}:C/^[[:blank:]]*//} >> ${_LICENSE_REPORT} . endif . endfor +# XXX @dirrmtry entry must be here (no way to do with PLIST_* vars) + @${ECHO_CMD} "@unexec rmdir %D/share/licenses 2>/dev/null || true" >> ${TMPPLIST} .if make(clean-user-license-config) . for lic in ${LICENSES_APPROVED:N\@*} ${LICENSES_REJECTED:N\@*} ==== //depot/projects/soc2008/alepulver-portslicense/ports/Mk/bsd.port.mk#6 (text+ko) ==== From owner-p4-projects@FreeBSD.ORG Sat Jun 13 20:54:33 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 2BBA4106567A; Sat, 13 Jun 2009 20:54:33 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id DC5C71065675 for ; Sat, 13 Jun 2009 20:54:32 +0000 (UTC) (envelope-from mav@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id C64E98FC23 for ; Sat, 13 Jun 2009 20:54:32 +0000 (UTC) (envelope-from mav@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n5DKsWkr075021 for ; Sat, 13 Jun 2009 20:54:32 GMT (envelope-from mav@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n5DKsWMY075017 for perforce@freebsd.org; Sat, 13 Jun 2009 20:54:32 GMT (envelope-from mav@freebsd.org) Date: Sat, 13 Jun 2009 20:54:32 GMT Message-Id: <200906132054.n5DKsWMY075017@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to mav@freebsd.org using -f From: Alexander Motin To: Perforce Change Reviews Cc: Subject: PERFORCE change 164293 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 13 Jun 2009 20:54:34 -0000 http://perforce.freebsd.org/chv.cgi?CH=164293 Change 164293 by mav@mav_mavbook on 2009/06/13 20:53:49 Add basic SATA Port Multiplier support. Affected files ... .. //depot/projects/scottl-camlock/src/sys/cam/ata/ata_all.c#9 edit .. //depot/projects/scottl-camlock/src/sys/cam/ata/ata_all.h#9 edit .. //depot/projects/scottl-camlock/src/sys/cam/ata/ata_xpt.c#16 edit .. //depot/projects/scottl-camlock/src/sys/cam/cam_ccb.h#21 edit .. //depot/projects/scottl-camlock/src/sys/dev/ahci/ahci.c#25 edit Differences ... ==== //depot/projects/scottl-camlock/src/sys/cam/ata/ata_all.c#9 (text+ko) ==== @@ -133,11 +133,42 @@ ataio->cmd.features_exp = sector_count >> 8; } -void ata_reset_cmd(struct ccb_ataio *ataio) +void +ata_reset_cmd(struct ccb_ataio *ataio) { bzero(&ataio->cmd, sizeof(ataio->cmd)); ataio->cmd.flags = CAM_ATAIO_CONTROL | CAM_ATAIO_NEEDRESULT; ataio->cmd.control = 0x04; } +void +ata_pm_read_cmd(struct ccb_ataio *ataio, int reg, int port) +{ + bzero(&ataio->cmd, sizeof(ataio->cmd)); + ataio->cmd.flags = CAM_ATAIO_48BIT | CAM_ATAIO_NEEDRESULT; + ataio->cmd.command = ATA_READ_PM; + ataio->cmd.features = reg; + ataio->cmd.features_exp = reg >> 8; + ataio->cmd.device = port & 0x0f; +} + +void +ata_pm_write_cmd(struct ccb_ataio *ataio, int reg, int port, uint64_t val) +{ + bzero(&ataio->cmd, sizeof(ataio->cmd)); + ataio->cmd.flags = CAM_ATAIO_48BIT | CAM_ATAIO_NEEDRESULT; + ataio->cmd.command = ATA_WRITE_PM; + ataio->cmd.features = reg; + ataio->cmd.lba_low = val >> 8; + ataio->cmd.lba_mid = val >> 16; + ataio->cmd.lba_high = val >> 24; + ataio->cmd.device = port & 0x0f; + ataio->cmd.lba_low_exp = val >> 40; + ataio->cmd.lba_mid_exp = val >> 48; + ataio->cmd.lba_high_exp = val >> 56; + ataio->cmd.features_exp = reg >> 8; + ataio->cmd.sector_count = val; + ataio->cmd.sector_count_exp = val >> 32; +} + #endif /* _KERNEL */ ==== //depot/projects/scottl-camlock/src/sys/cam/ata/ata_all.h#9 (text+ko) ==== @@ -87,5 +87,7 @@ void ata_ncq_cmd(struct ccb_ataio *ataio, uint8_t cmd, uint64_t lba, uint16_t sector_count); void ata_reset_cmd(struct ccb_ataio *ataio); +void ata_pm_read_cmd(struct ccb_ataio *ataio, int reg, int port); +void ata_pm_write_cmd(struct ccb_ataio *ataio, int reg, int port, uint64_t val); #endif ==== //depot/projects/scottl-camlock/src/sys/cam/ata/ata_xpt.c#16 (text+ko) ==== @@ -95,6 +95,13 @@ PROBE_IDENTIFY, PROBE_INQUIRY, PROBE_FULL_INQUIRY, + PROBE_PM_PID, + PROBE_PM_PRV, + PROBE_PM_PORTS, + PROBE_PM_RESET, + PROBE_PM_CONNECT, + PROBE_PM_CHECK, + PROBE_PM_CLEAR, PROBE_INVALID } probe_action; @@ -103,6 +110,13 @@ "PROBE_IDENTIFY", "PROBE_INQUIRY", "PROBE_FULL_INQUIRY", + "PROBE_PM_PID", + "PROBE_PM_PRV", + "PROBE_PM_PORTS", + "PROBE_PM_RESET", + "PROBE_PM_CONNECT", + "PROBE_PM_CHECK", + "PROBE_PM_CLEAR", "PROBE_INVALID" }; @@ -126,6 +140,12 @@ union ccb saved_ccb; probe_flags flags; u_int8_t digest[16]; + uint32_t pm_pid; + uint32_t pm_prv; + int pm_ports; + int pm_step; + int pm_try; + int pm_found; struct cam_periph *periph; } probe_softc; @@ -329,21 +349,20 @@ switch (softc->action) { case PROBE_RESET: cam_fill_ataio(ataio, - 4, + 1, probedone, /*flags*/CAM_DIR_NONE, MSG_SIMPLE_Q_TAG, /*data_ptr*/NULL, /*dxfer_len*/0, - 30 * 1000); + 10 * 1000); ata_reset_cmd(ataio); break; case PROBE_IDENTIFY: { - struct ata_params *ident_buf; + struct ata_params *ident_buf = + &periph->path->device->ident_data; - ident_buf = &periph->path->device->ident_data; - if ((periph->path->device->flags & CAM_DEV_UNCONFIGURED) == 0) { /* Prepare check that it is the same device. */ MD5_CTX context; @@ -360,16 +379,14 @@ sizeof(ident_buf->serial)); MD5Final(softc->digest, &context); } - cam_fill_ataio(ataio, - 4, + 1, probedone, /*flags*/CAM_DIR_IN, MSG_SIMPLE_Q_TAG, /*data_ptr*/(u_int8_t *)ident_buf, /*dxfer_len*/sizeof(struct ata_params), 30 * 1000); - if (periph->path->device->protocol == PROTO_ATA) ata_36bit_cmd(ataio, ATA_ATA_IDENTIFY, 0, 0, 0); else @@ -380,15 +397,13 @@ case PROBE_FULL_INQUIRY: { u_int inquiry_len; - struct scsi_inquiry_data *inq_buf; - - inq_buf = &periph->path->device->inq_data; + struct scsi_inquiry_data *inq_buf = + &periph->path->device->inq_data; if (softc->action == PROBE_INQUIRY) inquiry_len = SHORT_INQUIRY_LENGTH; else inquiry_len = SID_ADDITIONAL_LENGTH(inq_buf); - /* * Some parallel SCSI devices fail to send an * ignore wide residue message when dealing with @@ -396,7 +411,6 @@ * safe. */ inquiry_len = roundup2(inquiry_len, 2); - scsi_inquiry(csio, /*retries*/4, probedone, @@ -409,6 +423,83 @@ /*timeout*/60 * 1000); break; } + case PROBE_PM_PID: + cam_fill_ataio(ataio, + 1, + probedone, + /*flags*/CAM_DIR_NONE, + MSG_SIMPLE_Q_TAG, + /*data_ptr*/NULL, + /*dxfer_len*/0, + 10 * 1000); + ata_pm_read_cmd(ataio, 0, 15); + break; + case PROBE_PM_PRV: + cam_fill_ataio(ataio, + 1, + probedone, + /*flags*/CAM_DIR_NONE, + MSG_SIMPLE_Q_TAG, + /*data_ptr*/NULL, + /*dxfer_len*/0, + 10 * 1000); + ata_pm_read_cmd(ataio, 1, 15); + break; + case PROBE_PM_PORTS: + cam_fill_ataio(ataio, + 1, + probedone, + /*flags*/CAM_DIR_NONE, + MSG_SIMPLE_Q_TAG, + /*data_ptr*/NULL, + /*dxfer_len*/0, + 10 * 1000); + ata_pm_read_cmd(ataio, 2, 15); + break; + case PROBE_PM_RESET: + cam_fill_ataio(ataio, + 1, + probedone, + /*flags*/CAM_DIR_NONE, + MSG_SIMPLE_Q_TAG, + /*data_ptr*/NULL, + /*dxfer_len*/0, + 10 * 1000); + ata_pm_write_cmd(ataio, 2, softc->pm_step, 1); + break; + case PROBE_PM_CONNECT: + cam_fill_ataio(ataio, + 1, + probedone, + /*flags*/CAM_DIR_NONE, + MSG_SIMPLE_Q_TAG, + /*data_ptr*/NULL, + /*dxfer_len*/0, + 10 * 1000); + ata_pm_write_cmd(ataio, 2, softc->pm_step, 0); + break; + case PROBE_PM_CHECK: + cam_fill_ataio(ataio, + 1, + probedone, + /*flags*/CAM_DIR_NONE, + MSG_SIMPLE_Q_TAG, + /*data_ptr*/NULL, + /*dxfer_len*/0, + 10 * 1000); + ata_pm_read_cmd(ataio, 0, softc->pm_step); + break; + case PROBE_PM_CLEAR: + cam_fill_ataio(ataio, + 1, + probedone, + /*flags*/CAM_DIR_NONE, + MSG_SIMPLE_Q_TAG, + /*data_ptr*/NULL, + /*dxfer_len*/0, + 10 * 1000); + ata_pm_write_cmd(ataio, 1, softc->pm_step, 0xFFFFFFFF); + break; case PROBE_INVALID: CAM_DEBUG(start_ccb->ccb_h.path, CAM_DEBUG_INFO, ("probestart: invalid action state\n")); @@ -546,6 +637,7 @@ probe_softc *softc; struct cam_path *path; u_int32_t priority; + int found = 0; CAM_DEBUG(done_ccb->ccb_h.path, CAM_DEBUG_TRACE, ("probedone\n")); @@ -556,15 +648,27 @@ switch (softc->action) { case PROBE_RESET: if ((done_ccb->ccb_h.status & CAM_STATUS_MASK) == CAM_REQ_CMP) { - printf("SIGNATURE: %02x%02x%02x%02x\n", - done_ccb->ataio.res.lba_high, done_ccb->ataio.res.lba_mid, - done_ccb->ataio.res.lba_low, done_ccb->ataio.res.sector_count); - if (done_ccb->ataio.res.lba_high == 0xeb && - done_ccb->ataio.res.lba_mid == 0x14) + int sign = (done_ccb->ataio.res.lba_high << 8) + + done_ccb->ataio.res.lba_mid; + printf("SIGNATURE: %04x\n", sign); + if (sign == 0x0000 && + done_ccb->ccb_h.target_id != 15) { + path->device->protocol = PROTO_ATA; + PROBE_SET_ACTION(softc, PROBE_IDENTIFY); + } else if (sign == 0x9669 && + done_ccb->ccb_h.target_id == 15) { + path->device->protocol = PROTO_SATAPM; + PROBE_SET_ACTION(softc, PROBE_PM_PID); + } else if (sign == 0xeb14 && + done_ccb->ccb_h.target_id != 15) { path->device->protocol = PROTO_SCSI; - else - path->device->protocol = PROTO_ATA; - PROBE_SET_ACTION(softc, PROBE_IDENTIFY); + PROBE_SET_ACTION(softc, PROBE_IDENTIFY); + } else { + xpt_print(path, + "Unexpected signature 0x%04x\n", sign); + xpt_release_ccb(done_ccb); + break; + } xpt_release_ccb(done_ccb); xpt_schedule(periph, priority); return; @@ -654,12 +758,7 @@ path->device->flags |= CAM_DEV_INQUIRY_DATA_VALID; scsi_find_quirk(path->device); - ata_device_transport(path); -// if (INQ_DATA_TQ_ENABLED(inq_buf)) -// PROBE_SET_ACTION(softc, PROBE_MODE_SENSE); -// else -// PROBE_SET_ACTION(softc, PROBE_SERIAL_NUM_0); // if ((softc->flags & PROBE_NO_ANNOUNCE) == 0) { if (path->device->protocol == PROTO_ATA) { @@ -779,6 +878,209 @@ xpt_release_ccb(done_ccb); break; } + case PROBE_PM_PID: + if ((done_ccb->ccb_h.status & CAM_STATUS_MASK) == CAM_REQ_CMP) { + softc->pm_pid = (done_ccb->ataio.res.lba_high << 24) + + (done_ccb->ataio.res.lba_mid << 16) + + (done_ccb->ataio.res.lba_low << 8) + + done_ccb->ataio.res.sector_count; + printf("PM Product ID: %08x\n", softc->pm_pid); + PROBE_SET_ACTION(softc, PROBE_PM_PRV); + xpt_release_ccb(done_ccb); + xpt_schedule(periph, priority); + return; + } else if (cam_periph_error(done_ccb, 0, + done_ccb->ccb_h.target_lun > 0 + ? SF_RETRY_UA|SF_QUIET_IR + : SF_RETRY_UA, + &softc->saved_ccb) == ERESTART) { + return; + } else if ((done_ccb->ccb_h.status & CAM_DEV_QFRZN) != 0) { + /* Don't wedge the queue */ + xpt_release_devq(done_ccb->ccb_h.path, /*count*/1, + /*run_queue*/TRUE); + } + xpt_release_ccb(done_ccb); + break; + case PROBE_PM_PRV: + if ((done_ccb->ccb_h.status & CAM_STATUS_MASK) == CAM_REQ_CMP) { + softc->pm_prv = (done_ccb->ataio.res.lba_high << 24) + + (done_ccb->ataio.res.lba_mid << 16) + + (done_ccb->ataio.res.lba_low << 8) + + done_ccb->ataio.res.sector_count; + printf("PM Revision: %08x\n", softc->pm_prv); + PROBE_SET_ACTION(softc, PROBE_PM_PORTS); + xpt_release_ccb(done_ccb); + xpt_schedule(periph, priority); + return; + } else if (cam_periph_error(done_ccb, 0, + done_ccb->ccb_h.target_lun > 0 + ? SF_RETRY_UA|SF_QUIET_IR + : SF_RETRY_UA, + &softc->saved_ccb) == ERESTART) { + return; + } else if ((done_ccb->ccb_h.status & CAM_DEV_QFRZN) != 0) { + /* Don't wedge the queue */ + xpt_release_devq(done_ccb->ccb_h.path, /*count*/1, + /*run_queue*/TRUE); + } + xpt_release_ccb(done_ccb); + break; + case PROBE_PM_PORTS: + if ((done_ccb->ccb_h.status & CAM_STATUS_MASK) == CAM_REQ_CMP) { + softc->pm_ports = (done_ccb->ataio.res.lba_high << 24) + + (done_ccb->ataio.res.lba_mid << 16) + + (done_ccb->ataio.res.lba_low << 8) + + done_ccb->ataio.res.sector_count; + /* This PM declares 6 ports, while only 5 of them are real. + * Port 5 is enclosure management bridge port, which has implementation + * problems, causing probe faults. Hide it for now. */ + if (softc->pm_pid == 0x37261095 && softc->pm_ports == 6) + softc->pm_ports = 5; + /* This PM declares 7 ports, while only 5 of them are real. + * Port 5 is some fake "Config Disk" with 640 sectors size, + * port 6 is enclosure management bridge port. + * Both fake ports has implementation problems, causing + * probe faults. Hide them for now. */ + if (softc->pm_pid == 0x47261095 && softc->pm_ports == 7) + softc->pm_ports = 5; + printf("PM ports: %d\n", softc->pm_ports); + PROBE_SET_ACTION(softc, PROBE_PM_RESET); + xpt_release_ccb(done_ccb); + xpt_schedule(periph, priority); + return; + } else if (cam_periph_error(done_ccb, 0, + done_ccb->ccb_h.target_lun > 0 + ? SF_RETRY_UA|SF_QUIET_IR + : SF_RETRY_UA, + &softc->saved_ccb) == ERESTART) { + return; + } else if ((done_ccb->ccb_h.status & CAM_DEV_QFRZN) != 0) { + /* Don't wedge the queue */ + xpt_release_devq(done_ccb->ccb_h.path, /*count*/1, + /*run_queue*/TRUE); + } + xpt_release_ccb(done_ccb); + break; + case PROBE_PM_RESET: + if ((done_ccb->ccb_h.status & CAM_STATUS_MASK) == CAM_REQ_CMP) { + softc->pm_step++; + if (softc->pm_step < softc->pm_ports) { + xpt_release_ccb(done_ccb); + xpt_schedule(periph, priority); + return; + } else { + softc->pm_step = 0; + DELAY(5000); + PROBE_SET_ACTION(softc, PROBE_PM_CONNECT); + xpt_release_ccb(done_ccb); + xpt_schedule(periph, priority); + return; + } + } else if (cam_periph_error(done_ccb, 0, + done_ccb->ccb_h.target_lun > 0 + ? SF_RETRY_UA|SF_QUIET_IR + : SF_RETRY_UA, + &softc->saved_ccb) == ERESTART) { + return; + } else if ((done_ccb->ccb_h.status & CAM_DEV_QFRZN) != 0) { + /* Don't wedge the queue */ + xpt_release_devq(done_ccb->ccb_h.path, /*count*/1, + /*run_queue*/TRUE); + } + xpt_release_ccb(done_ccb); + break; + case PROBE_PM_CONNECT: + if ((done_ccb->ccb_h.status & CAM_STATUS_MASK) == CAM_REQ_CMP) { + softc->pm_step++; + if (softc->pm_step < softc->pm_ports) { + xpt_release_ccb(done_ccb); + xpt_schedule(periph, priority); + return; + } else { + softc->pm_step = 0; + softc->pm_found = 0x8000; + PROBE_SET_ACTION(softc, PROBE_PM_CHECK); + xpt_release_ccb(done_ccb); + xpt_schedule(periph, priority); + return; + } + } else if (cam_periph_error(done_ccb, 0, + done_ccb->ccb_h.target_lun > 0 + ? SF_RETRY_UA|SF_QUIET_IR + : SF_RETRY_UA, + &softc->saved_ccb) == ERESTART) { + return; + } else if ((done_ccb->ccb_h.status & CAM_DEV_QFRZN) != 0) { + /* Don't wedge the queue */ + xpt_release_devq(done_ccb->ccb_h.path, /*count*/1, + /*run_queue*/TRUE); + } + xpt_release_ccb(done_ccb); + break; + case PROBE_PM_CHECK: + if ((done_ccb->ccb_h.status & CAM_STATUS_MASK) == CAM_REQ_CMP) { + int res = (done_ccb->ataio.res.lba_high << 24) + + (done_ccb->ataio.res.lba_mid << 16) + + (done_ccb->ataio.res.lba_low << 8) + + done_ccb->ataio.res.sector_count; + if ((res & 0xf0f) == 0x103 && (res & 0x0f0) != 0) { + printf("PM found: %d - %08x\n", softc->pm_step, res); + softc->pm_found |= (1 << softc->pm_step); + softc->pm_step++; + } else { + if (softc->pm_try < 50) { + DELAY(10000); + softc->pm_try++; + } else + softc->pm_step++; + } + if (softc->pm_step < softc->pm_ports) { + xpt_release_ccb(done_ccb); + xpt_schedule(periph, priority); + return; + } else { + softc->pm_step = 0; + PROBE_SET_ACTION(softc, PROBE_PM_CLEAR); + xpt_release_ccb(done_ccb); + xpt_schedule(periph, priority); + return; + } + } else if (cam_periph_error(done_ccb, 0, + done_ccb->ccb_h.target_lun > 0 + ? SF_RETRY_UA|SF_QUIET_IR + : SF_RETRY_UA, + &softc->saved_ccb) == ERESTART) { + return; + } else if ((done_ccb->ccb_h.status & CAM_DEV_QFRZN) != 0) { + /* Don't wedge the queue */ + xpt_release_devq(done_ccb->ccb_h.path, /*count*/1, + /*run_queue*/TRUE); + } + xpt_release_ccb(done_ccb); + break; + case PROBE_PM_CLEAR: + if ((done_ccb->ccb_h.status & CAM_STATUS_MASK) == CAM_REQ_CMP) { + softc->pm_step++; + if (softc->pm_step < softc->pm_ports) { + xpt_release_ccb(done_ccb); + xpt_schedule(periph, priority); + return; + } + found = softc->pm_found; + } else if (cam_periph_error(done_ccb, 0, + done_ccb->ccb_h.target_lun > 0 + ? SF_RETRY_UA|SF_QUIET_IR + : SF_RETRY_UA, + &softc->saved_ccb) == ERESTART) { + return; + } else if ((done_ccb->ccb_h.status & CAM_DEV_QFRZN) != 0) { + /* Don't wedge the queue */ + xpt_release_devq(done_ccb->ccb_h.path, /*count*/1, + /*run_queue*/TRUE); + } + xpt_release_ccb(done_ccb); + break; case PROBE_INVALID: CAM_DEBUG(done_ccb->ccb_h.path, CAM_DEBUG_INFO, ("probedone: invalid action state\n")); @@ -788,6 +1090,7 @@ done_ccb = (union ccb *)TAILQ_FIRST(&softc->request_ccbs); TAILQ_REMOVE(&softc->request_ccbs, &done_ccb->ccb_h, periph_links.tqe); done_ccb->ccb_h.status = CAM_REQ_CMP; + done_ccb->ccb_h.ppriv_field1 = found; xpt_done(done_ccb); if (TAILQ_FIRST(&softc->request_ccbs) == NULL) { cam_periph_invalidate(periph); @@ -828,6 +1131,7 @@ union ccb *request_ccb; struct ccb_pathinq *cpi; int counter; + int found; } ata_scan_bus_info; /* @@ -838,17 +1142,15 @@ static void ata_scan_bus(struct cam_periph *periph, union ccb *request_ccb) { + struct cam_path *path; + ata_scan_bus_info *scan_info; + union ccb *work_ccb; + cam_status status; + CAM_DEBUG(request_ccb->ccb_h.path, CAM_DEBUG_TRACE, ("xpt_scan_bus\n")); switch (request_ccb->ccb_h.func_code) { case XPT_SCAN_BUS: - { - ata_scan_bus_info *scan_info; - union ccb *work_ccb; - struct cam_path *path; - u_int i; - u_int max_target; - /* Find out the characteristics of the bus */ work_ccb = xpt_alloc_ccb_nowait(); if (work_ccb == NULL) { @@ -877,88 +1179,36 @@ } scan_info->request_ccb = request_ccb; scan_info->cpi = &work_ccb->cpi; + scan_info->found = 0x8001; - /* Cache on our stack so we can work asynchronously */ - max_target = scan_info->cpi->max_target; + /* If PM supported, probe it first. */ + if (scan_info->cpi->hba_inquiry & PI_SATAPM) + scan_info->counter = 15; - /* - * We can scan all targets in parallel, or do it sequentially. - */ - if (scan_info->cpi->hba_misc & PIM_SEQSCAN) { - max_target = 0; - scan_info->counter = 0; - } else { - scan_info->counter = scan_info->cpi->max_target + 1; + work_ccb = xpt_alloc_ccb_nowait(); + if (work_ccb == NULL) { + free(scan_info, M_CAMXPT); + request_ccb->ccb_h.status = CAM_RESRC_UNAVAIL; + xpt_done(request_ccb); + break; } - - for (i = 0; i <= max_target; i++) { - cam_status status; - - status = xpt_create_path(&path, xpt_periph, - request_ccb->ccb_h.path_id, - i, 0); - if (status != CAM_REQ_CMP) { - printf("xpt_scan_bus: xpt_create_path failed" - " with status %#x, bus scan halted\n", - status); - free(scan_info, M_CAMXPT); - request_ccb->ccb_h.status = status; - xpt_free_ccb(work_ccb); - xpt_done(request_ccb); - break; - } - work_ccb = xpt_alloc_ccb_nowait(); - if (work_ccb == NULL) { - free(scan_info, M_CAMXPT); - xpt_free_path(path); - request_ccb->ccb_h.status = CAM_RESRC_UNAVAIL; - xpt_done(request_ccb); - break; - } - xpt_setup_ccb(&work_ccb->ccb_h, path, - request_ccb->ccb_h.pinfo.priority); - work_ccb->ccb_h.func_code = XPT_SCAN_LUN; - work_ccb->ccb_h.cbfcnp = ata_scan_bus; - work_ccb->ccb_h.ppriv_ptr0 = scan_info; - work_ccb->crcn.flags = request_ccb->crcn.flags; - xpt_action(work_ccb); - } - break; - } + goto scan_next; case XPT_SCAN_LUN: - { - cam_status status; - struct cam_path *path; - ata_scan_bus_info *scan_info; - path_id_t path_id; - target_id_t target_id; - int done; - + work_ccb = request_ccb; /* Reuse the same CCB to query if a device was really found */ - scan_info = (ata_scan_bus_info *)request_ccb->ccb_h.ppriv_ptr0; - path_id = request_ccb->ccb_h.path_id; - target_id = request_ccb->ccb_h.target_id; + scan_info = (ata_scan_bus_info *)work_ccb->ccb_h.ppriv_ptr0; /* * Free the current request path- we're done with it. */ - xpt_free_path(request_ccb->ccb_h.path); - - done = 0; - if (scan_info->cpi->hba_misc & PIM_SEQSCAN) { - scan_info->counter++; - if (scan_info->counter >= - scan_info->cpi->max_target+1) { - done = 1; - } - } else { - scan_info->counter--; - if (scan_info->counter == 0) { - done = 1; - } - } - if (done) { - xpt_free_ccb(request_ccb); + xpt_free_path(work_ccb->ccb_h.path); + if (scan_info->counter == 15) + scan_info->found = work_ccb->ccb_h.ppriv_field1; +take_next: + /* Take next device. Wrap from 15 (PM) to 0. */ + scan_info->counter = (scan_info->counter + 1 ) & 0x0f; + if (scan_info->counter >= scan_info->cpi->max_target+1) { + xpt_free_ccb(work_ccb); xpt_free_ccb((union ccb *)scan_info->cpi); request_ccb = scan_info->request_ccb; free(scan_info, M_CAMXPT); @@ -966,18 +1216,15 @@ xpt_done(request_ccb); break; } - - if ((scan_info->cpi->hba_misc & PIM_SEQSCAN) == 0) - break; - +scan_next: status = xpt_create_path(&path, xpt_periph, scan_info->request_ccb->ccb_h.path_id, scan_info->counter, 0); if (status != CAM_REQ_CMP) { printf("xpt_scan_bus: xpt_create_path failed" " with status %#x, bus scan halted\n", - status); - xpt_free_ccb(request_ccb); + status); + xpt_free_ccb(work_ccb); xpt_free_ccb((union ccb *)scan_info->cpi); request_ccb = scan_info->request_ccb; free(scan_info, M_CAMXPT); @@ -985,16 +1232,18 @@ xpt_done(request_ccb); break; } - xpt_setup_ccb(&request_ccb->ccb_h, path, - request_ccb->ccb_h.pinfo.priority); - request_ccb->ccb_h.func_code = XPT_SCAN_LUN; - request_ccb->ccb_h.cbfcnp = ata_scan_bus; - request_ccb->ccb_h.ppriv_ptr0 = scan_info; - request_ccb->crcn.flags = - scan_info->request_ccb->crcn.flags; - xpt_action(request_ccb); + if ((scan_info->found & (1 << scan_info->counter)) == 0) { + xpt_async(AC_LOST_DEVICE, path, NULL); + goto take_next; + } + xpt_setup_ccb(&work_ccb->ccb_h, path, + scan_info->request_ccb->ccb_h.pinfo.priority); + work_ccb->ccb_h.func_code = XPT_SCAN_LUN; + work_ccb->ccb_h.cbfcnp = ata_scan_bus; + work_ccb->ccb_h.ppriv_ptr0 = scan_info; + work_ccb->crcn.flags = scan_info->request_ccb->crcn.flags; + xpt_action(work_ccb); break; - } default: break; } ==== //depot/projects/scottl-camlock/src/sys/cam/cam_ccb.h#21 (text+ko) ==== ==== //depot/projects/scottl-camlock/src/sys/dev/ahci/ahci.c#25 (text+ko) ==== @@ -1634,10 +1634,15 @@ cpi->version_num = 1; /* XXX??? */ cpi->hba_inquiry = PI_SDTR_ABLE | PI_TAG_ABLE; + if (ch->caps & AHCI_CAP_SPM) + cpi->hba_inquiry |= PI_SATAPM; cpi->target_sprt = 0; cpi->hba_misc = PIM_SEQSCAN; cpi->hba_eng_cnt = 0; - cpi->max_target = 0; + if (ch->caps & AHCI_CAP_SPM) + cpi->max_target = 14; + else + cpi->max_target = 0; cpi->max_lun = 0; cpi->initiator_id = 0; cpi->bus_id = cam_sim_bus(sim); From owner-p4-projects@FreeBSD.ORG Sat Jun 13 21:34:23 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 4294E106566B; Sat, 13 Jun 2009 21:34:23 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 0035C106566C for ; Sat, 13 Jun 2009 21:34:22 +0000 (UTC) (envelope-from mav@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id E29B98FC0C for ; Sat, 13 Jun 2009 21:34:22 +0000 (UTC) (envelope-from mav@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n5DLYMHC079925 for ; Sat, 13 Jun 2009 21:34:22 GMT (envelope-from mav@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n5DLYISk079922 for perforce@freebsd.org; Sat, 13 Jun 2009 21:34:18 GMT (envelope-from mav@freebsd.org) Date: Sat, 13 Jun 2009 21:34:18 GMT Message-Id: <200906132134.n5DLYISk079922@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to mav@freebsd.org using -f From: Alexander Motin To: Perforce Change Reviews Cc: Subject: PERFORCE change 164296 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 13 Jun 2009 21:34:24 -0000 http://perforce.freebsd.org/chv.cgi?CH=164296 Change 164296 by mav@mav_mavbook on 2009/06/13 21:33:25 Fix probing when PM supported, but absent. Reduce PM reset timeout and retries. Affected files ... .. //depot/projects/scottl-camlock/src/sys/cam/ata/ata_xpt.c#17 edit Differences ... ==== //depot/projects/scottl-camlock/src/sys/cam/ata/ata_xpt.c#17 (text+ko) ==== @@ -349,13 +349,13 @@ switch (softc->action) { case PROBE_RESET: cam_fill_ataio(ataio, - 1, + 0, probedone, /*flags*/CAM_DIR_NONE, MSG_SIMPLE_Q_TAG, /*data_ptr*/NULL, /*dxfer_len*/0, - 10 * 1000); + (done_ccb->ccb_h.target_id == 15 ? 3 : 15) * 1000); ata_reset_cmd(ataio); break; case PROBE_IDENTIFY: @@ -1202,7 +1202,8 @@ * Free the current request path- we're done with it. */ xpt_free_path(work_ccb->ccb_h.path); - if (scan_info->counter == 15) + if (scan_info->counter == 15 && + work_ccb->ccb_h.ppriv_field1 != 0) scan_info->found = work_ccb->ccb_h.ppriv_field1; take_next: /* Take next device. Wrap from 15 (PM) to 0. */ From owner-p4-projects@FreeBSD.ORG Sat Jun 13 21:45:38 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 284A31065673; Sat, 13 Jun 2009 21:45:37 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id DB9521065670 for ; Sat, 13 Jun 2009 21:45:36 +0000 (UTC) (envelope-from mav@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id CA3478FC16 for ; Sat, 13 Jun 2009 21:45:36 +0000 (UTC) (envelope-from mav@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n5DLjaJm080767 for ; Sat, 13 Jun 2009 21:45:36 GMT (envelope-from mav@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n5DLjYBg080764 for perforce@freebsd.org; Sat, 13 Jun 2009 21:45:34 GMT (envelope-from mav@freebsd.org) Date: Sat, 13 Jun 2009 21:45:34 GMT Message-Id: <200906132145.n5DLjYBg080764@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to mav@freebsd.org using -f From: Alexander Motin To: Perforce Change Reviews Cc: Subject: PERFORCE change 164298 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 13 Jun 2009 21:45:39 -0000 http://perforce.freebsd.org/chv.cgi?CH=164298 Change 164298 by mav@mav_mavbook on 2009/06/13 21:44:42 Fix copy/paste bug. Affected files ... .. //depot/projects/scottl-camlock/src/sys/cam/ata/ata_xpt.c#18 edit Differences ... ==== //depot/projects/scottl-camlock/src/sys/cam/ata/ata_xpt.c#18 (text+ko) ==== @@ -355,7 +355,7 @@ MSG_SIMPLE_Q_TAG, /*data_ptr*/NULL, /*dxfer_len*/0, - (done_ccb->ccb_h.target_id == 15 ? 3 : 15) * 1000); + (start_ccb->ccb_h.target_id == 15 ? 3 : 15) * 1000); ata_reset_cmd(ataio); break; case PROBE_IDENTIFY: @@ -1029,7 +1029,7 @@ softc->pm_found |= (1 << softc->pm_step); softc->pm_step++; } else { - if (softc->pm_try < 50) { + if (softc->pm_try < 100) { DELAY(10000); softc->pm_try++; } else From owner-p4-projects@FreeBSD.ORG Sat Jun 13 21:46:39 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id D60611065674; Sat, 13 Jun 2009 21:46:38 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 95DCF106566B for ; Sat, 13 Jun 2009 21:46:38 +0000 (UTC) (envelope-from alepulver@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 82C4E8FC1A for ; Sat, 13 Jun 2009 21:46:38 +0000 (UTC) (envelope-from alepulver@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n5DLkcpf080832 for ; Sat, 13 Jun 2009 21:46:38 GMT (envelope-from alepulver@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n5DLkcAX080828 for perforce@freebsd.org; Sat, 13 Jun 2009 21:46:38 GMT (envelope-from alepulver@freebsd.org) Date: Sat, 13 Jun 2009 21:46:38 GMT Message-Id: <200906132146.n5DLkcAX080828@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to alepulver@freebsd.org using -f From: Alejandro Pulver To: Perforce Change Reviews Cc: Subject: PERFORCE change 164299 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 13 Jun 2009 21:46:39 -0000 http://perforce.freebsd.org/chv.cgi?CH=164299 Change 164299 by alepulver@alepulver_deimos on 2009/06/13 21:45:37 - Integrate bsd.wx.mk changes from CVS. - Add one step about increasing shared memory limit in fossology/files/pkg-message.in. - Fix bug in bsd.licenses.mk when using known licenses. Affected files ... .. //depot/projects/soc2008/alepulver-portslicense/ports/Mk/bsd.licenses.mk#8 edit .. //depot/projects/soc2008/alepulver-portslicense/ports/Mk/bsd.wx.mk#2 integrate .. //depot/projects/soc2008/alepulver-portslicense/ports/devel/fossology/files/pkg-message.in#3 edit Differences ... ==== //depot/projects/soc2008/alepulver-portslicense/ports/Mk/bsd.licenses.mk#8 (text+ko) ==== @@ -252,13 +252,12 @@ . if !defined(LICENSE_FILE) . if !defined(LICENSE_TEXT) . if ${_LICENSE_TYPE} == "known" -LICENSE_TEXT= License ${lic} is in internal database, please check ... +LICENSE_TEXT= License ${lic} is in internal database, check repository. . else _LICENSE_ERROR?= LICENSE_FILE or LICENSE_TEXT must be defined for unknown licenses . endif -. else +. endif _LICENSE_FILE= ${WRKDIR}/License-freebsd-port -. endif . else _LICENSE_FILE= ${LICENSE_FILE} . endif ==== //depot/projects/soc2008/alepulver-portslicense/ports/Mk/bsd.wx.mk#2 (text+ko) ==== @@ -1,7 +1,7 @@ #-*- mode: makefile; tab-width: 4; -*- # ex:ts=4 # -# $FreeBSD: ports/Mk/bsd.wx.mk,v 1.13 2008/04/19 17:46:02 miwi Exp $ +# $FreeBSD: ports/Mk/bsd.wx.mk,v 1.14 2009/06/13 16:35:47 erwin Exp $ # # bsd.wx.mk - Support for wxWidgets based ports. # @@ -35,7 +35,6 @@ # wx - The wxWidgets library. # contrib - The wxWidgets contributed libraries. # python - The wxWidgets API for Python. -# mozilla - WxMozilla (only for 2.4). # svg - WxSVG (only for 2.6). # The available dependency types are: # build - Requires component for building. @@ -130,7 +129,7 @@ # _WX_VERS_LISTS - Reverse lists preference order. # -_WX_COMPS_ALL= wx contrib python mozilla svg +_WX_COMPS_ALL= wx contrib python svg _WX_DEP_TYPES_ALL= build lib run _WX_VERS_ALL= 2.4 2.6 2.8 _WX_VERS_UC_ALL= 2.6 2.8 @@ -155,9 +154,6 @@ _WX_PORT_python_2.4= x11-toolkits/py-wxPython24 _WX_FILE_python_2.4= ${PYTHON_SITELIBDIR}/wx/__init__.py -_WX_PORT_mozilla_2.4= x11-toolkits/wxmozilla -_WX_LIB_mozilla_2.4= wxmozilla_gtk2-2.4 - # wxgtk 2.6 _WX_PORT_wx_2.6= x11-toolkits/wxgtk26${_WX_UCL} _WX_LIB_wx_2.6= wx_base${_WX_UC}-2.6 ==== //depot/projects/soc2008/alepulver-portslicense/ports/devel/fossology/files/pkg-message.in#3 (text+ko) ==== @@ -6,14 +6,20 @@ 1. Install PostgreSQL server: initialize database and start the daemon. -2. Configure PHP: put the following in your php.ini file: +2. Increase shared memory limit, by running: + # sysctl kern.ipc.shmmax=512000000 + + And to make the change persistent add this line to /etc/sysctl.conf: + kern.ipc.shmmax=512000000 + +3. Configure PHP: put the following in your php.ini file: max_execution_time = 90 memory_limit = 702M post_max_size = 701M upload_max_filesize = 700M -3. Configure Apache, add the following to your httpd.conf: +4. Configure Apache, add the following to your httpd.conf: Alias /repo/ %%DATADIR%%/www/ @@ -26,22 +32,22 @@ #php_value error_reporting 2039 -4. Add the following to a robots.txt file to avoid them to index the site: +5. Add the following to a robots.txt file to avoid them to index the site: User-agent: * Disallow: /repo -5. Run the post installation setup script: +6. Run the post installation setup script: - %%PREFIX%%/lib/fossology/fo-postinstall + # %%PREFIX%%/lib/fossology/fo-postinstall -6. Enable at startup, add the following line to /etc/rc.conf: +7. Enable at startup, add the following line to /etc/rc.conf: fossology_enable="YES" To start now use this additional command (requires previous, at least you use "forcestart" instead of "start"): - %%PREFIX%%/etc/rc.d/fossology start + # %%PREFIX%%/etc/rc.d/fossology start ============================================================================== From owner-p4-projects@FreeBSD.ORG Sat Jun 13 22:39:37 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 197361065679; Sat, 13 Jun 2009 22:39:37 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id CD340106567E for ; Sat, 13 Jun 2009 22:39:36 +0000 (UTC) (envelope-from pgj@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id BA0508FC0A for ; Sat, 13 Jun 2009 22:39:36 +0000 (UTC) (envelope-from pgj@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n5DMdami085908 for ; Sat, 13 Jun 2009 22:39:36 GMT (envelope-from pgj@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n5DMdax3085906 for perforce@freebsd.org; Sat, 13 Jun 2009 22:39:36 GMT (envelope-from pgj@FreeBSD.org) Date: Sat, 13 Jun 2009 22:39:36 GMT Message-Id: <200906132239.n5DMdax3085906@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to pgj@FreeBSD.org using -f From: Gabor Pali To: Perforce Change Reviews Cc: Subject: PERFORCE change 164301 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 13 Jun 2009 22:39:37 -0000 http://perforce.freebsd.org/chv.cgi?CH=164301 Change 164301 by pgj@petymeg-current on 2009/06/13 22:39:26 - Add a simple version of addr_type (inside socket_type) as an abstraction for addresses connected to a connection (max. 2 addresses per socket at the moment). - Use addr_type for unix domain sockets and inet socket, however the latter one needs some work (no support for getting address in numeric format yet). Affected files ... .. //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat.c#26 edit .. //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat.h#17 edit .. //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat_internal.h#15 edit .. //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat_util.c#17 edit .. //depot/projects/soc2009/pgj_libstat/src/usr.bin/netstat/inet.c#14 edit .. //depot/projects/soc2009/pgj_libstat/src/usr.bin/netstat/unix.c#13 edit Differences ... ==== //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat.c#26 (text+ko) ==== @@ -10,6 +10,8 @@ #include #include #include +#include +#include #include #include #include @@ -20,6 +22,7 @@ #include #include #include +#include #include "netstat.h" #include "netstat_internal.h" @@ -50,6 +53,14 @@ static void extract_xunpcb_data(struct xunpcb *, struct socket_type *); static void extract_inet_data(struct tcpcb *, struct inpcb *, struct xsocket *, struct socket_type *); + +static char ntop_buf[INET6_ADDRSTRLEN]; + +static struct addr_type *extract_inet_address(int type, const char *proto, + struct in_addr *in, u_short port, int anonport); +static struct addr_type *extract_inet6_address(int type, const char *proto, + struct in6_addr *in, u_short port); + static int netstat_local_sockets(int, struct socket_type_list *, kvm_t *, struct nlist *, int); static int netstat_inet_sockets(int, int, struct socket_type_list *, @@ -557,6 +568,7 @@ extract_xunpcb_data(struct xunpcb *xpcb, struct socket_type *stp) { struct sockaddr_un *sa; + char address[1024]; strlcpy(stp->st_extname, stp->st_name, SOCKTYPE_MAXNAME); stp->st_qlen = xpcb->xu_socket.so_qlen; @@ -582,13 +594,17 @@ stp->st_refs = (u_long)LIST_FIRST(&xpcb->xu_unp.unp_refs); stp->st_reflink = (u_long)LIST_NEXT(&xpcb->xu_unp, unp_reflink); stp->st_flags = SOCKTYPE_VNODE | SOCKTYPE_CONN | SOCKTYPE_REFS; + stp->st_addrcnt = 0; if (xpcb->xu_unp.unp_addr) { sa = (struct sockaddr_un *)&xpcb->xu_addr; - sprintf(stp->st_address, "%.*s", + sprintf(address, "%.*s", (int)(sa->sun_len - offsetof(struct sockaddr_un, sun_path)), sa->sun_path); - } else { - stp->st_address[0] = '\0'; + stp->st_address[stp->st_addrcnt] = + _netstat_at_allocate(NETSTAT_ADDRTYPE_LOCAL, address, NULL); + stp->st_address[stp->st_addrcnt]->at_port = 0; + strcpy(stp->st_address[stp->st_addrcnt]->at_portname, "*"); + stp->st_addrcnt += 1; } stp->st_tcpstate[0] = '\0'; } @@ -623,10 +639,7 @@ stp->st_refs = (u_long)0; stp->st_reflink = (u_long)0; stp->st_flags = 0; - /* XXX: Remove this. */ - stp->XXX_inpcb = *inp; - /* XXX: address is missing. */ - stp->st_address[0] = '\0'; + stp->st_addrcnt = 0; if (tp != NULL) { if (tp->t_state < 0 || tp->t_state >= TCP_NSTATES) sprintf(stp->st_tcpstate, "%d", tp->t_state); @@ -654,4 +667,132 @@ vchar = ((inp->inp_vflag & INP_IPV4) != 0) ? "4 " : " "; sprintf(stp->st_extname, "%-3.3s%-2.2s", stp->st_name, vchar); + /* local address */ + if (inp->inp_vflag & INP_IPV4) { + stp->st_address[stp->st_addrcnt] = + extract_inet_address(NETSTAT_ADDRTYPE_INET_LOCAL, + stp->st_name, &inp->inp_laddr, inp->inp_lport, + inp->inp_vflag & INP_ANONPORT); + } +#ifdef INET6 + else if (inp->inp_vflag & INP_IPV6) { + stp->st_address[stp->st_addrcnt] = + extract_inet6_address(NETSTAT_ADDRTYPE_INET6_LOCAL, + stp->st_name, &inp->in6p_laddr, inp->inp_lport); + } +#endif + stp->st_addrcnt += 1; + /* foreign address */ + if (inp->inp_vflag & INP_IPV6) { + stp->st_address[stp->st_addrcnt] = + extract_inet_address(NETSTAT_ADDRTYPE_INET_FOREIGN, + stp->st_name, &inp->inp_faddr, inp->inp_fport, + inp->inp_vflag & INP_ANONPORT); + } +#ifdef INET6 + else if (inp->inp_vflag & INP_IPV6) { + stp->st_address[stp->st_addrcnt] = + extract_inet6_address(NETSTAT_ADDRTYPE_INET6_FOREIGN, + stp->st_name, &inp->in6p_faddr, inp->inp_fport); + } +#endif + stp->st_addrcnt += 1; +} + +struct addr_type * +extract_inet_address(int type, const char *proto, struct in_addr *in, + u_short port, int anonport) +{ + struct addr_type *result; + char address[256]; + struct hostent *hp; + struct netent *np; + struct servent *sp = NULL; + int net, lna; + char *cp; + + cp = NULL; + if (in->s_addr != INADDR_ANY) { + net = inet_netof(*in); + lna = inet_lnaof(*in); + + if (lna == INADDR_ANY) { + np = getnetbyaddr(net, AF_INET); + if (np != NULL) + cp = np->n_name; + } + if (cp == NULL) { + hp = gethostbyaddr((char *)in, sizeof(*in), AF_INET); + if (hp != NULL) { + cp = hp->h_name; + trimdomain(cp, strlen(cp)); + } + } + } + if (in->s_addr == INADDR_ANY) + strcpy(address, "*"); + else if (cp) { + strlcpy(address, cp, sizeof(address)); + } else { + in->s_addr = ntohl(in->s_addr); +#define C(x) ((u_int)((x) & 0xff)) + sprintf(address, "%u.%u.%u.%u", C(in->s_addr >> 24), + C(in->s_addr >> 16), C(in->s_addr >> 8), + C(in->s_addr)); + } + result = _netstat_at_allocate(type, address, NULL); + result->at_port = port; + sp = getservbyport((int)port, proto); + if ((sp != NULL || port == 0) && !anonport) + sprintf(result->at_portname, "%.15s", sp ? sp->s_name : "*"); + else + sprintf(result->at_portname, "%d", ntohs(port)); + + return (result); +#undef C +} + +struct addr_type * +extract_inet6_address(int type, const char *proto, struct in6_addr *in, + u_short port) +{ + struct addr_type *result; + char address[256], domain[MAXHOSTNAMELEN]; + struct hostent *hp; + struct servent *sp = NULL; + char *cp; + + if (gethostname(domain, MAXHOSTNAMELEN) == 0 && + (cp = index(domain, '.'))) + strcpy(domain, cp + 1); + else + domain[0] = '\0'; + cp = NULL; + if (!IN6_IS_ADDR_UNSPECIFIED(in)) { + hp = gethostbyaddr((char *)in, sizeof(*in), AF_INET6); + if (hp != NULL) { + if ((cp = index(hp->h_name, '.')) && + !strcmp(cp + 1, domain)) + *cp = '\0'; + cp = hp->h_name; + } + } + if (IN6_IS_ADDR_UNSPECIFIED(in)) + strcpy(address, "*"); + else if (cp) + strcpy(address, cp); + else + sprintf(address, "%s", + inet_ntop(AF_INET6, (void *)in, ntop_buf, + sizeof(ntop_buf))); + + result = _netstat_at_allocate(type, address, NULL); + result->at_port = port; + sp = getservbyport((int)port, proto); + if (sp != NULL || port == 0) + sprintf(result->at_portname, "%.15s", sp ? sp->s_name : "*"); + else + sprintf(result->at_portname, "%d", ntohs(port)); + + return (result); } ==== //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat.h#17 (text+ko) ==== @@ -9,6 +9,7 @@ #define SOCKTYPE_MAXNAME 32 #define SOCKTYPE_MAXADDR SOCK_MAXADDRLEN +#define SOCKTYPE_MAXADDRCNT 2 #define NETSTAT_ERROR_UNDEFINED 0 #define NETSTAT_ERROR_NOMEMORY 1 @@ -26,6 +27,8 @@ struct socket_type_list; struct socket_type_iterator; +struct addr_type; + __BEGIN_DECLS const char *netstat_strerror(int); @@ -49,6 +52,7 @@ void netstat_sti_free(struct socket_type_iterator *iterator); void netstat_st_free(struct socket_type *stp); +void netstat_at_free(struct addr_type *atp); int netstat_socket(int domain, int type, int protocol, struct socket_type_list *, int flags, void *kvm_handle); @@ -81,10 +85,17 @@ u_long netstat_st_get_conn(const struct socket_type *stp); u_long netstat_st_get_refs(const struct socket_type *stp); u_long netstat_st_get_reflink(const struct socket_type *stp); -const char *netstat_st_get_address(const struct socket_type *stp); const char *netstat_st_get_tcpstate(const struct socket_type *stp); -/* XXX: Remove this hacks. */ -struct inpcb XXX_netstat_st_get_inpcb(const struct socket_type *stp); +/* Addresses: */ +int netstat_st_get_addrcnt(const struct socket_type *stp); +struct addr_type *netstat_st_get_address(const struct socket_type *stp, + int index); + +const char *netstat_at_get_name(const struct addr_type *atp); +void netstat_at_get_address(const struct addr_type *atp, + void *addr); +u_short netstat_at_get_port(const struct addr_type *atp); +const char *netstat_at_get_portname(const struct addr_type *atp); __END_DECLS #endif /* !_NETSTAT_H_ */ ==== //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat_internal.h#15 (text+ko) ==== @@ -13,15 +13,28 @@ #include #include -/* XXX: not used yet */ +#include "netstat.h" + /* Address type: * local, foreign, node (Netgraph), raw (domain) */ -struct address_type { +struct addr_type { + /* XXX: this should be an enum? */ int at_type; - struct sockaddr_storage at_address; + char at_name[1024]; + void *at_address; + u_short at_port; + char at_portname[32]; }; +#define NETSTAT_ADDRTYPE_LOCAL 0 +#define NETSTAT_ADDRTYPE_INET_LOCAL 1 +#define NETSTAT_ADDRTYPE_INET_FOREIGN 2 +#define NETSTAT_ADDRTYPE_INET46_LOCAL 3 +#define NETSTAT_ADDRTYPE_INET46_FOREIGN 4 +#define NETSTAT_ADDRTYPE_INET6_LOCAL 5 +#define NETSTAT_ADDRTYPE_INET6_FOREIGN 6 + /* Socket (PCB) type: a connection. */ struct socket_type { /* Static properties. */ @@ -31,11 +44,9 @@ char st_name[SOCKTYPE_MAXNAME]; char st_extname[SOCKTYPE_MAXNAME]; -#if 0 - /* XXX: not used yet */ - struct address_type *st_address; /* address(es) */ - int st_addrcnt; /* address count */ -#endif + /* address(es) */ + struct addr_type *st_address[SOCKTYPE_MAXADDRCNT]; + int st_addrcnt; /* address count */ u_int st_snd_cc; /* actual chars in the send buffer */ u_int st_snd_mcnt; @@ -60,12 +71,8 @@ u_long st_conn; /* control block of connected socket */ u_long st_refs; /* referencing socket linked list */ u_long st_reflink; /* link in references list */ - char st_address[SOCKTYPE_MAXADDR]; char st_tcpstate[16]; - /* XXX: Removables. */ - struct inpcb XXX_inpcb; - /* list of types */ LIST_ENTRY(socket_type) st_list; }; @@ -96,5 +103,8 @@ const char *name); void _netstat_st_reset_stats(struct socket_type *list); +struct addr_type *_netstat_at_allocate(int type, const char *name, + void *address); + int sotoxsocket(kvm_t * kvm, struct socket *so, struct xsocket *xso); #endif /* !_NETSTAT_INTERNAL_H_ */ ==== //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat_util.c#17 (text+ko) ==== @@ -155,6 +155,10 @@ void netstat_st_free(struct socket_type *stp) { + int i; + + for (i = 0; i < stp->st_addrcnt; i++) + netstat_at_free(stp->st_address[i]); free(stp); } @@ -285,6 +289,28 @@ free(iterator); } +/* Address type */ +struct addr_type * +_netstat_at_allocate(int type, const char *name, void __unused *address) +{ + struct addr_type *atp; + + atp = malloc(sizeof(*atp)); + if (atp == NULL) + return (NULL); + + bzero(atp, sizeof(*atp)); + atp->at_type = type; + strlcpy(atp->at_name, name, 1024); + return (atp); +} + +void +netstat_at_free(struct addr_type *atp) +{ + free(atp); +} + /* Accessor functions. */ int netstat_st_get_family(const struct socket_type *stp) @@ -443,20 +469,55 @@ } const char * -netstat_st_get_address(const struct socket_type *stp) +netstat_st_get_tcpstate(const struct socket_type *stp) +{ + return (stp->st_tcpstate); +} + +int +netstat_st_get_addrcnt(const struct socket_type *stp) +{ + + return (stp->st_addrcnt); +} + +struct addr_type * +netstat_st_get_address(const struct socket_type *stp, + int index) { - return (stp->st_address); + struct addr_type *result = NULL; + + if (0 <= index && index < stp->st_addrcnt) { + result = (struct addr_type *)malloc(sizeof(struct addr_type)); + if (result != NULL) { + memcpy(result, stp->st_address[index], + sizeof(struct addr_type)); + } + } + + return (result); } const char * -netstat_st_get_tcpstate(const struct socket_type *stp) +netstat_at_get_name(const struct addr_type *atp) +{ + return (atp->at_name); +} + +void +netstat_at_get_address(const struct addr_type *atp, void *addr) +{ + /* XXX: stub */ +} + +u_short +netstat_at_get_port(const struct addr_type *atp) { - return (stp->st_tcpstate); + return (atp->at_port); } -/* XXX: Remove this hacks. */ -struct inpcb -XXX_netstat_st_get_inpcb(const struct socket_type *stp) +const char * +netstat_at_get_portname(const struct addr_type *atp) { - return (stp->XXX_inpcb); + return (atp->at_portname); } ==== //depot/projects/soc2009/pgj_libstat/src/usr.bin/netstat/inet.c#14 (text+ko) ==== @@ -95,6 +95,8 @@ #ifdef INET6 static int udp_done, tcp_done; #endif /* INET6 */ +void addr_print(const struct addr_type *atp, const char *proto, + int numeric); /* * Print a summary of connections related to an Internet @@ -157,9 +159,8 @@ { static int first = 1; char buf1[15]; - struct inpcb inp; + struct addr_type *laddr, *faddr; - inp = XXX_netstat_st_get_inpcb(stp); if (first) { if (!Lflag) { printf("Active Internet connections"); @@ -206,66 +207,16 @@ printf("%6u %6u ", netstat_st_get_rcv_cc(stp), netstat_st_get_snd_cc(stp)); } - if (numeric_port) { - if (inp.inp_vflag & INP_IPV4) { - inetprint(&inp.inp_laddr, (int)inp.inp_lport, - netstat_st_get_name(stp), 1); - if (!Lflag) - inetprint(&inp.inp_faddr, - (int)inp.inp_fport, - netstat_st_get_name(stp), 1); - } -#ifdef INET6 - else if (inp.inp_vflag & INP_IPV6) { - inet6print(&inp.in6p_laddr, - (int)inp.inp_lport, netstat_st_get_name(stp), 1); - if (!Lflag) - inet6print(&inp.in6p_faddr, - (int)inp.inp_fport, - netstat_st_get_name(stp), 1); - } /* else nothing printed now */ -#endif /* INET6 */ - } else if (inp.inp_flags & INP_ANONPORT) { - if (inp.inp_vflag & INP_IPV4) { - inetprint(&inp.inp_laddr, (int)inp.inp_lport, - netstat_st_get_name(stp), 1); - if (!Lflag) - inetprint(&inp.inp_faddr, - (int)inp.inp_fport, - netstat_st_get_name(stp), 0); - } -#ifdef INET6 - else if (inp.inp_vflag & INP_IPV6) { - inet6print(&inp.in6p_laddr, - (int)inp.inp_lport, netstat_st_get_name(stp), 1); - if (!Lflag) - inet6print(&inp.in6p_faddr, - (int)inp.inp_fport, - netstat_st_get_name(stp), 0); - } /* else nothing printed now */ -#endif /* INET6 */ - } else { - if (inp.inp_vflag & INP_IPV4) { - inetprint(&inp.inp_laddr, (int)inp.inp_lport, - netstat_st_get_name(stp), 0); - if (!Lflag) - inetprint(&inp.inp_faddr, - (int)inp.inp_fport, - netstat_st_get_name(stp), - inp.inp_lport != inp.inp_fport); - } -#ifdef INET6 - else if (inp.inp_vflag & INP_IPV6) { - inet6print(&inp.in6p_laddr, - (int)inp.inp_lport, netstat_st_get_name(stp), 0); - if (!Lflag) - inet6print(&inp.in6p_faddr, - (int)inp.inp_fport, - netstat_st_get_name(stp), - inp.inp_lport != inp.inp_fport); - } /* else nothing printed now */ -#endif /* INET6 */ + laddr = netstat_st_get_address(stp, 0); /* local */ + faddr = netstat_st_get_address(stp, 1); /* foreign */ + addr_print(laddr, netstat_st_get_name(stp), numeric_port); + if (!Lflag) { + addr_print(faddr, netstat_st_get_name(stp), + numeric_port || + netstat_at_get_port(laddr) != netstat_at_get_port(faddr)); } + netstat_at_free(laddr); + netstat_at_free(faddr); if (xflag) { if (Lflag) printf("%21s", " "); @@ -971,3 +922,18 @@ } return (line); } + +void +addr_print(const struct addr_type *atp, const char *proto, int numeric) +{ + int width; + char line[80], *cp; + + /* XXX: Respect numeric for getting name. */ + sprintf(line, "%.*s", Wflag ? 39 : (Aflag && !numeric) ? 12 : 16, + netstat_at_get_name(atp)); + cp = index(line, '\0'); + sprintf(cp, "%.15s ", netstat_at_get_portname(atp)); + width = Wflag ? 45 : Aflag ? 18 : 22; + printf("%-*.*s", width, width, line); +} ==== //depot/projects/soc2009/pgj_libstat/src/usr.bin/netstat/unix.c#13 (text+ko) ==== @@ -115,6 +115,7 @@ { static int first = 1; char buf1[15]; + struct addr_type *addr; if (first && !Lflag) { printf("Active UNIX domain sockets\n"); @@ -139,5 +140,10 @@ netstat_st_get_vnode(stp), netstat_st_get_conn(stp), netstat_st_get_refs(stp), netstat_st_get_reflink(stp)); } - printf(" %s\n", netstat_st_get_address(stp)); + if (netstat_st_get_addrcnt(stp) > 0) { + addr = netstat_st_get_address(stp, 0); + printf(" %s", netstat_at_get_name(addr)); + netstat_at_free(addr); + } + putchar('\n'); }