From owner-p4-projects@FreeBSD.ORG Sun Jul 8 22:35:15 2012 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 8498E1065673; Sun, 8 Jul 2012 22:35: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 2F0F2106564A for ; Sun, 8 Jul 2012 22:35:14 +0000 (UTC) (envelope-from brooks@freebsd.org) Received: from skunkworks.freebsd.org (skunkworks.freebsd.org [IPv6:2001:4f8:fff6::2d]) by mx1.freebsd.org (Postfix) with ESMTP id 187078FC16 for ; Sun, 8 Jul 2012 22:35:14 +0000 (UTC) Received: from skunkworks.freebsd.org (localhost [127.0.0.1]) by skunkworks.freebsd.org (8.14.4/8.14.4) with ESMTP id q68MZDh1003469 for ; Sun, 8 Jul 2012 22:35:13 GMT (envelope-from brooks@freebsd.org) Received: (from perforce@localhost) by skunkworks.freebsd.org (8.14.4/8.14.4/Submit) id q68MZDRT003466 for perforce@freebsd.org; Sun, 8 Jul 2012 22:35:13 GMT (envelope-from brooks@freebsd.org) Date: Sun, 8 Jul 2012 22:35:13 GMT Message-Id: <201207082235.q68MZDRT003466@skunkworks.freebsd.org> X-Authentication-Warning: skunkworks.freebsd.org: perforce set sender to brooks@freebsd.org using -f From: Brooks Davis To: Perforce Change Reviews Precedence: bulk Cc: Subject: PERFORCE change 214095 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 08 Jul 2012 22:35:15 -0000 http://p4web.freebsd.org/@@214095?ac=10 Change 214095 by brooks@brooks_ecr_current on 2012/07/08 22:35:11 Add a new ts_poll() function to get touch screen events. It sleeps 10ms between read events and no longer looses click events. Affected files ... .. //depot/projects/ctsrd/beribsd/src/ctsrd-lib/libde4tc/de4tc.c#5 edit .. //depot/projects/ctsrd/beribsd/src/ctsrd-lib/libde4tc/de4tc.h#5 edit Differences ... ==== //depot/projects/ctsrd/beribsd/src/ctsrd-lib/libde4tc/de4tc.c#5 (text+ko) ==== @@ -29,6 +29,7 @@ */ #include +#include #include #include #include @@ -54,7 +55,7 @@ static int fademode=0; volatile u_int32_t *pfbp; static volatile u_int16_t *tfbp; -static volatile u_int32_t *mtlctrl; +volatile u_int32_t *mtlctrl; // fade timing (for crude timing loop) static const int fb_cross_fade_time = 500; @@ -144,6 +145,50 @@ } while(touch_count!=0); } +/***************************************************************************** + * Revised touch screen polling interface + *****************************************************************************/ + +struct tsstate* +ts_poll(void) +{ + struct timespec stime = {0, 0.01}; + static struct tsstate *sp; + int init = 0; + struct tsstate tmp_s; + + if (sp == NULL) { + sp = malloc(sizeof(struct tsstate)); + if (sp == NULL) + err(1, "malloc of tstate"); + init = 1; + } + + for (;;) { + tmp_s.ts_x1 = le32toh(mtlctrl[3]); + tmp_s.ts_y1 = le32toh(mtlctrl[4]); + tmp_s.ts_x2 = le32toh(mtlctrl[5]); + tmp_s.ts_y2 = le32toh(mtlctrl[6]); + tmp_s.ts_gesture = le32toh(mtlctrl[7]); + if (tmp_s.ts_gesture < 0) { + nanosleep(&stime, NULL); + continue; + } + tmp_s.ts_count = tmp_s.ts_gesture >> 8; + tmp_s.ts_gesture &= 0xFF; + + if (init || + tmp_s.ts_x1 != sp->ts_x1 || tmp_s.ts_y1 != sp->ts_y1 || + tmp_s.ts_x2 != sp->ts_x2 || tmp_s.ts_y2 != sp->ts_y2 || + tmp_s.ts_count != sp->ts_count || + tmp_s.ts_gesture != sp->ts_gesture) { + *sp = tmp_s; + return (sp); + } + nanosleep(&stime, NULL); + } +} + /***************************************************************************** * frame buffer routines ==== //depot/projects/ctsrd/beribsd/src/ctsrd-lib/libde4tc/de4tc.h#5 (text+ko) ==== @@ -32,6 +32,40 @@ #ifndef _DE4TC_H_ #define _DE4TC_H_ +#define TSG_NONE 0x00 +#define TSG_NORTH 0x10 +#define TSG_NORTHEAST 0x12 +#define TSG_EAST 0x14 +#define TSG_SOUTHEAST 0x16 +#define TSG_SOUTH 0x18 +#define TSG_SOUTHWEST 0x1A +#define TSG_WEST 0x1C +#define TSG_NORTHWEST 0x1E +#define TSG_ROTATE_CW 0x28 /* Clockwise */ +#define TSG_ROTATE_CCW 0x29 /* Counter Clockwise */ +#define TSG_CLICK 0x20 +#define TSG_DCLICK 0x22 /* Double Click */ +#define TSG2_NORTH 0x30 +#define TSG2_NORTHEAST 0x32 +#define TSG2_EAST 0x34 +#define TSG2_SOUTHEAST 0x36 +#define TSG2_SOUTH 0x38 +#define TSG2_SOUTHWEST 0x3A +#define TSG2_WEST 0x3C +#define TSG2_NORTHWEST 0x3E +#define TSG2_CLICK 0x40 +#define TSG2_ZOOM_IN 0x48 +#define TSG2_ZOOM_OUT 0x49 + +struct tsstate { + int ts_x1; + int ts_y1; + int ts_x2; + int ts_y2; + int ts_count; + int ts_gesture; +}; + extern int touch_x0; extern int touch_y0; extern int touch_x1; @@ -42,9 +76,12 @@ extern const int fb_height; extern const int fb_width; +extern volatile u_int32_t *mtlctrl; + void multitouch_pole(void); void multitouch_filter(void); void multitouch_release_event(void); +struct tsstate* ts_poll(void); void fb_init(void); void fb_fini(void); u_int32_t fb_colour(int r, int g, int b); From owner-p4-projects@FreeBSD.ORG Sun Jul 8 22:39:38 2012 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 2B7821065670; Sun, 8 Jul 2012 22:39: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 E2228106564A for ; Sun, 8 Jul 2012 22:39:37 +0000 (UTC) (envelope-from brooks@freebsd.org) Received: from skunkworks.freebsd.org (skunkworks.freebsd.org [IPv6:2001:4f8:fff6::2d]) by mx1.freebsd.org (Postfix) with ESMTP id CA5C58FC12 for ; Sun, 8 Jul 2012 22:39:37 +0000 (UTC) Received: from skunkworks.freebsd.org (localhost [127.0.0.1]) by skunkworks.freebsd.org (8.14.4/8.14.4) with ESMTP id q68Mdbxn003953 for ; Sun, 8 Jul 2012 22:39:37 GMT (envelope-from brooks@freebsd.org) Received: (from perforce@localhost) by skunkworks.freebsd.org (8.14.4/8.14.4/Submit) id q68MdbRt003950 for perforce@freebsd.org; Sun, 8 Jul 2012 22:39:37 GMT (envelope-from brooks@freebsd.org) Date: Sun, 8 Jul 2012 22:39:37 GMT Message-Id: <201207082239.q68MdbRt003950@skunkworks.freebsd.org> X-Authentication-Warning: skunkworks.freebsd.org: perforce set sender to brooks@freebsd.org using -f From: Brooks Davis To: Perforce Change Reviews Precedence: bulk Cc: Subject: PERFORCE change 214097 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 08 Jul 2012 22:39:38 -0000 http://p4web.freebsd.org/@@214097?ac=10 Change 214097 by brooks@brooks_ecr_current on 2012/07/08 22:39:20 Checkpoint code with the touch screen working. Navigation works as long as you stay out of large directories. That will be fixed when I rewrite directory scanning in the near future. Affected files ... .. //depot/projects/ctsrd/beribsd/src/ctsrd/browser/browser.c#5 edit Differences ... ==== //depot/projects/ctsrd/beribsd/src/ctsrd/browser/browser.c#5 (text+ko) ==== @@ -34,6 +34,7 @@ #include #include +#include #include #include #include @@ -50,18 +51,18 @@ #include #include -#define BASEIMG "/usr/share/images/browser.png" -#define ICONS "/usr/share/images/icons.png" +#define BASEIMG "/usr/share/images/browser.png" +#define ICONS "/usr/share/images/icons.png" -#define vwhite(v) fb_colour((v), (v), (v)) -#define vred(v) fb_colour((v), 0, 0) -#define vgreen(v) fb_colour(0, (v), 0) -#define vblue(v) fb_colour(0, 0, (v)) -#define black vwhite(0) -#define white vwhite(0xFF) -#define red vred(0xFF) -#define green vgreen(0xFF) -#define blue vblue(0xFF) +#define vwhite(v) fb_colour((v), (v), (v)) +#define vred(v) fb_colour((v), 0, 0) +#define vgreen(v) fb_colour(0, (v), 0) +#define vblue(v) fb_colour(0, 0, (v)) +#define black vwhite(0) +#define white vwhite(0xFF) +#define red vred(0xFF) +#define green vgreen(0xFF) +#define blue vblue(0xFF) /* * Each file is displayed in a 266x40 box: @@ -75,33 +76,41 @@ * +--------------------------------------------------------------------------+ * |----------------------------------(800/3 = 266) pixels--------------------| */ -#define FROW 41 -#define NCOL 3 -#define NROW 10 -#define NSLOTS (NCOL * NROW) -#define CWIDTH 266 -#define RHEIGHT 40 -#define ICON_WH 32 -#define BORDER 4 -#define CHAR_HEIGHT 32 -#define CHAR_WIDTH 16 -#define TEXT_OFFSET (BORDER + ICON_WH + BORDER) -#define _TEXTSPACE (CWIDTH - (TEXT_OFFSET + BORDER)) -#define TEXTSPACE (_TEXTSPACE - _TEXTSPACE % CHAR_WIDTH) +#define FROW 41 +#define NCOL 3 +#define NROW 10 +#define NSLOTS (NCOL * NROW) +#define CWIDTH 266 +#define RHEIGHT 40 +#define ICON_WH 32 +#define BORDER 4 +#define CHAR_HEIGHT 32 +#define CHAR_WIDTH 16 +#define TEXT_OFFSET (BORDER + ICON_WH + BORDER) +#define _TEXTSPACE (CWIDTH - (TEXT_OFFSET + BORDER)) +#define TEXTSPACE (_TEXTSPACE - _TEXTSPACE % CHAR_WIDTH) +/* + * The get_action() function polls for input and returns a slot number + * (either a line on the console or a space on the screen) or one of + * these actions. Internally it handles changing protection modes. + */ +#define ACT_QUIT 100 +#define ACT_PREV 101 +#define ACT_NEXT 102 /* Beginning and ending colums of each sandbox type's name */ -#define SB_IMG_SPACING 20 -#define SB_IMG_NONE_BCOL 145 -#define SB_IMG_CAPSICUM_BCOL 223 -#define SB_IMG_CHERI_BCOL 350 -#define SB_IMG_NONE_ECOL (SB_IMG_CAPSICUM_BCOL - SB_IMG_SPACING) -#define SB_IMG_CAPSICUM_ECOL (SB_IMG_CHERI_BCOL - SB_IMG_SPACING) -#define SB_IMG_CHERI_ECOL 445 -#define SB_MINCOL SB_IMG_NONE_BCOL -#define SB_MAXCOL SB_IMG_CHERI_ECOL -#define SB_MINROW (fb_height - 39) -#define SB_MAXROW (fb_height - 1) +#define SB_IMG_SPACING 20 +#define SB_IMG_NONE_BCOL 145 +#define SB_IMG_CAPSICUM_BCOL 223 +#define SB_IMG_CHERI_BCOL 350 +#define SB_IMG_NONE_ECOL (SB_IMG_CAPSICUM_BCOL - SB_IMG_SPACING) +#define SB_IMG_CAPSICUM_ECOL (SB_IMG_CHERI_BCOL - SB_IMG_SPACING) +#define SB_IMG_CHERI_ECOL 445 +#define SB_MINCOL SB_IMG_NONE_BCOL +#define SB_MAXCOL SB_IMG_CHERI_ECOL +#define SB_MINROW (fb_height - 39) +#define SB_MAXROW (fb_height - 1) /* Start offsets for browser columns */ const int colstart[] = {0, 267, 534}; @@ -202,6 +211,21 @@ } } +static const char * +get_magic(int fd) +{ + switch (sbtype) { + case SB_NONE: + return magic_descriptor(magic, fd); + case SB_CAPSICUM: + return "devil"; + case SB_CHERI: + return "devil"; + default: + errx(1, "invalid sandbox type"); + } +} + static void update_sandbox(enum _sbtype type) { @@ -221,7 +245,7 @@ pixel = (j * fb_width) + i; if (bgimage[pixel] != black) { /* XXX: Assuming we're either blue or white */ - value = (bgimage[pixel] >> 8) & 0xFF; + value = (bgimage[pixel] >> 24) & 0xFF; if (value == 0) { printf("unexpected zero value, pixel %08x\n", bgimage[pixel]); @@ -236,21 +260,6 @@ } static const char * -get_magic(int fd) -{ - switch (sbtype) { - case SB_NONE: - return magic_descriptor(magic, fd); - case SB_CAPSICUM: - return "devil"; - case SB_CHERI: - return "devil"; - default: - return "unknown"; - } -} - -static const char * get_desc(int dfd, struct dirent *entry) { int fd, type; @@ -314,15 +323,116 @@ return (NULL); } +static void +update_slot(int s, u_int32_t *icon, const char *text) +{ + u_int32_t textbuf[TEXTSPACE*CHAR_HEIGHT]; + + memset(textbuf, 0, sizeof(textbuf)); + fb_render_text(text, 2, white, black, textbuf, + TEXTSPACE, CHAR_HEIGHT); + fb_post_region(textbuf, colstart[(s/NROW)] + TEXT_OFFSET, + FROW + (RHEIGHT * (s % NROW)) + BORDER, TEXTSPACE, + CHAR_HEIGHT); + fb_post_region(icon, colstart[(s/NROW)] + BORDER, + FROW + (RHEIGHT * (s % NROW)) + BORDER, ICON_WH, ICON_WH); +} + +#ifdef TEXT_INPUT +static int +get_action(int next_slot, int prev_slot) +{ + int f; + char line[256]; + +prompt: + printf("select a file or directory by number :\n"); + if (fgets(line, sizeof(line), stdin) == NULL) { + if (feof(stdin)) + return (-1); + else + errx(1, "fgets(): %s", strerror(ferror(stdin))); + } + printf("line '%s'\n", line); + f = 0; /* XXX: gcc warning*/ + switch (line[0]) { + case '\n': + case 'n': + return (ACT_NEXT); + case 'p': + return (ACT_PREV); + case 'q': + return (ACT_QUIT); + + default: + if (!isnumber(line[0])) { + printf("invalid file %s\n", line); + goto prompt; + } + f = atoi(line); + if (f < 0 || f >= NSLOTS - 1) { + printf("invalid file %s\n", line); + goto prompt; + } + return (f); + } +} + +#else /* TEXT_INPUT */ + static int +get_action(int next_slot, int prev_slot) +{ + struct tsstate *ts; + int action = -1, col, i, row, slot; + + printf("entering get_action\n"); + + while(action < 0) { + ts = ts_poll(); + if (ts->ts_gesture == TSG_CLICK) { + if (ts->ts_x1 < FROW) { + if (ts->ts_x1 > fb_width - 40) + return (ACT_QUIT); + } else if (ts->ts_y1 <= FROW + (NROW * RHEIGHT)) { + row = (ts->ts_y1 - FROW) / RHEIGHT; + for (col = NCOL - 1; + col > 0 && ts->ts_x1 < colstart[col]; col--) + /* do nothing */ + printf("row %d col %d\n", row, col); + slot = col * NROW + row; + if (slot == next_slot) + return (ACT_NEXT); + else if (slot == prev_slot) + return (ACT_PREV); + else + return (slot); + } else { + printf("in bottom bar, x = %d\n", ts->ts_x1); + if (ts->ts_x1 >= SB_MINCOL && + ts->ts_x1 <= SB_MAXCOL) { + for (i =0 ; ts->ts_x1 < sbdata[i].bcol || + ts->ts_x1 > sbdata[i].ecol; i++) + /* do nothing */ + assert(sbdata[i].sbtype != 0); + update_sandbox(sbdata[i].sbtype); + /* XXX: should trigger a rescan? */ + } + } + } + } + /* NOTREACHED */ + return (ACT_QUIT); +} +#endif /* TEXT_INPUT */ + +static int browsedir(int dfd) { - int f, i, j, s; + int action, i, j, s; long curloc, nextloc; DIR *dirp; struct dirent *entry, *entry2; - u_int32_t *icon, textbuf[TEXTSPACE*CHAR_HEIGHT]; - char line[256]; const char *desc; if ((dirp = fdopendir(dfd)) == NULL) @@ -340,29 +450,14 @@ s = 0; if (i > 0) { printf("p %20s\n", "previous page"); - memset(textbuf, 0, sizeof(textbuf)); - fb_render_text("previous page", 2, white, black, textbuf, - TEXTSPACE, CHAR_HEIGHT); - fb_post_region(textbuf, colstart[(s/NROW)] + TEXT_OFFSET, - FROW + (RHEIGHT * (s % NROW)) + BORDER, TEXTSPACE, - CHAR_HEIGHT); - icon = get_icon("prev"); - fb_post_region(icon, colstart[(s/NROW)] + BORDER, - FROW + (RHEIGHT * (s % NROW)) + BORDER, ICON_WH, ICON_WH); + update_slot(s, get_icon("prev"), "previous page"); s = 1; } entry = NULL; /* XXX: gcc warning */ while(s < NSLOTS - 1 && (entry = readdir(dirp)) != NULL) { desc = get_desc(dfd, entry); printf("%2d %20s %s\n", s, entry->d_name, desc); - memset(textbuf, 0, sizeof(textbuf)); - fb_render_text(entry->d_name, 2, white, black, textbuf, - TEXTSPACE, CHAR_HEIGHT); - fb_post_region(textbuf, colstart[(s/NROW)]+TEXT_OFFSET, - FROW + (RHEIGHT * (s % NROW)) + BORDER, TEXTSPACE, CHAR_HEIGHT); - icon = get_icon(desc); - fb_post_region(icon, colstart[(s/NROW)] + BORDER, - FROW + (RHEIGHT * (s % NROW)) + BORDER, ICON_WH, ICON_WH); + update_slot(s, get_icon(desc), entry->d_name); s++; } @@ -382,72 +477,35 @@ desc = get_desc(dfd, entry); printf("%2d %20s %s\n", s, entry->d_name, desc); - memset(textbuf, 0, sizeof(textbuf)); - fb_render_text(entry->d_name, 2, white, black, - textbuf, TEXTSPACE, CHAR_HEIGHT); - fb_post_region(textbuf, - colstart[(s/NROW)]+TEXT_OFFSET, - FROW + (RHEIGHT * (s % NROW)) + BORDER, - TEXTSPACE, CHAR_HEIGHT); - icon = get_icon(desc); - fb_post_region(icon, - colstart[(s/NROW)] + BORDER, - FROW + (RHEIGHT * (s % NROW)) + BORDER, - ICON_WH, ICON_WH); + update_slot(s, get_icon(desc), entry->d_name); s++; } else { printf("n %20s\n", "next page"); - memset(textbuf, 0, sizeof(textbuf)); - fb_render_text("next page", 2, white, black, - textbuf, TEXTSPACE, CHAR_HEIGHT); - fb_post_region(textbuf, - colstart[(s/NROW)]+TEXT_OFFSET, - FROW + (RHEIGHT * (s % NROW)) + BORDER, - TEXTSPACE, CHAR_HEIGHT); - icon = get_icon("next"); - fb_post_region(icon, - colstart[(s/NROW)] + BORDER, - FROW + (RHEIGHT * (s % NROW)) + BORDER, - ICON_WH, ICON_WH); + update_slot(s, get_icon("next"), "next page"); } } } -prompt: - printf("select a file or directory by number :\n"); - if (fgets(line, sizeof(line), stdin) == NULL) { - if (feof(stdin)) - return (-1); - else - errx(1, "fgets(): %s", strerror(ferror(stdin))); - } - printf("line '%s'\n", line); - f = 0; /* XXX: gcc warning*/ - switch (line[0]) { - case '\n': - case 'n': + action = get_action((s == NSLOTS - 1) && entry != NULL ? NSLOTS - 1 : -1, + i == 0 ? -1 : 0); + printf("action %d\n", action); + switch (action) { + case ACT_NEXT: /* This leaks an internal struct associted with curloc/ */ if (nextloc != 0) { i += s; curloc = nextloc; } goto start; - case 'p': + case ACT_PREV: i -= s; // XXX previous page break; - case 'q': - return(-1); + case ACT_QUIT: + return (-1); default: - if (!isnumber(line[0])) { - printf("invalid file %s\n", line); - goto prompt; - } - f = atoi(line); - if (f < 0 || f >= NSLOTS - 1) { - printf("invalid file %s\n", line); - goto prompt; - } + if (action < 0 || action >= NSLOTS - 1) + errx(1, "invalid action"); } /* Take action on the specified file */ @@ -456,7 +514,7 @@ j = 0; while((entry = readdir(dirp)) != NULL) { printf("%s\n", entry->d_name); - if (j++ != f) + if (j++ != action) continue; if (entry->d_type == DT_DIR) { if ((dfd = openat(dfd, entry->d_name, From owner-p4-projects@FreeBSD.ORG Mon Jul 9 22:33:23 2012 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 209881065673; Mon, 9 Jul 2012 22: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 CA8FF106566B for ; Mon, 9 Jul 2012 22:33:21 +0000 (UTC) (envelope-from brooks@freebsd.org) Received: from skunkworks.freebsd.org (skunkworks.freebsd.org [IPv6:2001:4f8:fff6::2d]) by mx1.freebsd.org (Postfix) with ESMTP id B30B18FC0A for ; Mon, 9 Jul 2012 22:33:21 +0000 (UTC) Received: from skunkworks.freebsd.org (localhost [127.0.0.1]) by skunkworks.freebsd.org (8.14.4/8.14.4) with ESMTP id q69MXLbu065882 for ; Mon, 9 Jul 2012 22:33:21 GMT (envelope-from brooks@freebsd.org) Received: (from perforce@localhost) by skunkworks.freebsd.org (8.14.4/8.14.4/Submit) id q69MXLaC065879 for perforce@freebsd.org; Mon, 9 Jul 2012 22:33:21 GMT (envelope-from brooks@freebsd.org) Date: Mon, 9 Jul 2012 22:33:21 GMT Message-Id: <201207092233.q69MXLaC065879@skunkworks.freebsd.org> X-Authentication-Warning: skunkworks.freebsd.org: perforce set sender to brooks@freebsd.org using -f From: Brooks Davis To: Perforce Change Reviews Precedence: bulk Cc: Subject: PERFORCE change 214148 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 09 Jul 2012 22:33:23 -0000 http://p4web.freebsd.org/@@214148?ac=10 Change 214148 by brooks@brooks_ecr_current on 2012/07/09 22:32:51 Add reworked directory scanning code and support for scrolling through directories using left and right swipes. Affected files ... .. //depot/projects/ctsrd/beribsd/src/ctsrd/browser/browser.c#6 edit Differences ... ==== //depot/projects/ctsrd/beribsd/src/ctsrd/browser/browser.c#6 (text+ko) ==== @@ -95,9 +95,10 @@ * (either a line on the console or a space on the screen) or one of * these actions. Internally it handles changing protection modes. */ -#define ACT_QUIT 100 -#define ACT_PREV 101 -#define ACT_NEXT 102 +#define ACT_NEXT 100 +#define ACT_PREV 101 +#define ACT_QUIT 102 +#define ACT_REFRESH 103 /* Beginning and ending colums of each sandbox type's name */ #define SB_IMG_SPACING 20 @@ -115,6 +116,12 @@ /* Start offsets for browser columns */ const int colstart[] = {0, 267, 534}; +struct dent { + struct dirent *entry; + char *desc; + u_int32_t *icon; +}; + /* * List of mappings between icons in the icons.png file and values from * the get_desc() function. Processing is first match so most specific @@ -214,6 +221,7 @@ static const char * get_magic(int fd) { + switch (sbtype) { case SB_NONE: return magic_descriptor(magic, fd); @@ -338,201 +346,160 @@ FROW + (RHEIGHT * (s % NROW)) + BORDER, ICON_WH, ICON_WH); } -#ifdef TEXT_INPUT static int -get_action(int next_slot, int prev_slot) +get_action(void) { - int f; - char line[256]; - -prompt: - printf("select a file or directory by number :\n"); - if (fgets(line, sizeof(line), stdin) == NULL) { - if (feof(stdin)) - return (-1); - else - errx(1, "fgets(): %s", strerror(ferror(stdin))); - } - printf("line '%s'\n", line); - f = 0; /* XXX: gcc warning*/ - switch (line[0]) { - case '\n': - case 'n': - return (ACT_NEXT); - case 'p': - return (ACT_PREV); - case 'q': - return (ACT_QUIT); - - default: - if (!isnumber(line[0])) { - printf("invalid file %s\n", line); - goto prompt; - } - f = atoi(line); - if (f < 0 || f >= NSLOTS - 1) { - printf("invalid file %s\n", line); - goto prompt; - } - return (f); - } -} - -#else /* TEXT_INPUT */ - -static int -get_action(int next_slot, int prev_slot) -{ struct tsstate *ts; - int action = -1, col, i, row, slot; + int action = -1, col, i, row; printf("entering get_action\n"); while(action < 0) { ts = ts_poll(); + printf("gesture = %x\n", ts->ts_gesture); if (ts->ts_gesture == TSG_CLICK) { - if (ts->ts_x1 < FROW) { + if (ts->ts_y1 < FROW) { if (ts->ts_x1 > fb_width - 40) return (ACT_QUIT); } else if (ts->ts_y1 <= FROW + (NROW * RHEIGHT)) { row = (ts->ts_y1 - FROW) / RHEIGHT; for (col = NCOL - 1; col > 0 && ts->ts_x1 < colstart[col]; col--) - /* do nothing */ - printf("row %d col %d\n", row, col); - slot = col * NROW + row; - if (slot == next_slot) - return (ACT_NEXT); - else if (slot == prev_slot) - return (ACT_PREV); - else - return (slot); + /* do nothing */; + printf("row = %d, col = %d\n", row, col); + return (col * NROW + row); } else { - printf("in bottom bar, x = %d\n", ts->ts_x1); if (ts->ts_x1 >= SB_MINCOL && ts->ts_x1 <= SB_MAXCOL) { for (i =0 ; ts->ts_x1 < sbdata[i].bcol || ts->ts_x1 > sbdata[i].ecol; i++) - /* do nothing */ + /* do nothing */; assert(sbdata[i].sbtype != 0); update_sandbox(sbdata[i].sbtype); - /* XXX: should trigger a rescan? */ + return (ACT_REFRESH); } } } + if (ts->ts_gesture == TSG_EAST) + return (ACT_PREV); + if (ts->ts_gesture == TSG_WEST) + return (ACT_NEXT); } /* NOTREACHED */ return (ACT_QUIT); } -#endif /* TEXT_INPUT */ static int browsedir(int dfd) { - int action, i, j, s; - long curloc, nextloc; + int action, topslot, j, curslot, maxdents, nfd, ndents, retfd; DIR *dirp; - struct dirent *entry, *entry2; - const char *desc; + struct dirent *entry; + struct dent **dents, *dent; if ((dirp = fdopendir(dfd)) == NULL) err(1, "fdopendir()"); + ndents = 0; + maxdents = 1024; + dents = malloc(sizeof(struct dent *) * maxdents); + if (dents == NULL) + err(1, "malloc dents"); + + while ((entry = readdir(dirp)) != NULL) { + if (ndents == maxdents) { + maxdents *= 2; + dents = realloc(dents, sizeof(struct dent) * maxdents); + if (dents == NULL) + err(1, "realloc dents"); + } + if (strcmp(".", entry->d_name) == 0) + continue; + dents[ndents] = malloc(sizeof(struct dent)); + if (dents[ndents] == NULL) + err(1, "malloc dent[%d]", ndents); + memcpy(&(dents[ndents]->entry), &entry, sizeof(entry)); + dents[ndents]->desc = NULL; + dents[ndents]->icon = NULL; + ndents++; + } + fb_fill_region(black, colstart[0], FROW, fb_width, NROW * RHEIGHT); - curloc = telldir(dirp); - nextloc = 0; - i = 0; -start: - seekdir(dirp, curloc); - /* telldir() return values are only good once so make a new copy! */ - curloc = telldir(dirp); - s = 0; - if (i > 0) { - printf("p %20s\n", "previous page"); - update_slot(s, get_icon("prev"), "previous page"); - s = 1; + topslot = 0; +render: + for(curslot = 0; curslot < NSLOTS && topslot + curslot < ndents; + curslot++) { + dent = dents[topslot + curslot]; + if (dent->desc == NULL) + dent->desc = strdup(get_desc(dfd, dent->entry)); + if (dent->icon == NULL) + dent->icon = get_icon(dent->desc); + + printf("%2d %20s %s\n", curslot, dent->entry->d_name, + dent->desc); + update_slot(curslot, dent->icon, dent->entry->d_name); } - entry = NULL; /* XXX: gcc warning */ - while(s < NSLOTS - 1 && (entry = readdir(dirp)) != NULL) { - desc = get_desc(dfd, entry); - printf("%2d %20s %s\n", s, entry->d_name, desc); - update_slot(s, get_icon(desc), entry->d_name); - s++; - } + if (curslot == NSLOTS) + curslot--; - nextloc = telldir(dirp); - if (s == NSLOTS - 1 && entry != NULL) { - /* - * If there are at least two more files then we don't want to - * display a "next" button and instead want either nothing or - * the final entry. - */ - entry = readdir(dirp); - if (entry == NULL) - nextloc = 0; - else { - entry2 = readdir(dirp); - if (entry2 == NULL) { - desc = get_desc(dfd, entry); - printf("%2d %20s %s\n", s, - entry->d_name, desc); - update_slot(s, get_icon(desc), entry->d_name); - s++; + for (;;) { + action = get_action(); + printf("action %d\n", action); + switch (action) { + case ACT_NEXT: + if (topslot + curslot < ndents) { + topslot += NSLOTS; + goto render; + } + continue; + case ACT_PREV: + if (topslot != 0) { + topslot -= NSLOTS; + goto render; + } + continue; + case ACT_QUIT: + retfd = -1; + goto cleanup; + case ACT_REFRESH: + /* Reset descriptions and icons */ + for (j = 0; j < ndents; j++) { + free(dents[j]->desc); + dents[j]->desc = NULL; + dents[j]->icon = NULL; + } + goto render; + default: + if (action < 0 || action >= NSLOTS - 1) + errx(1, "invalid action"); + if (topslot + action >= ndents) + continue; + if (dents[topslot + action]->entry->d_type == DT_DIR) { + if ((nfd = openat(dfd, + dents[topslot + action]->entry->d_name, + O_RDONLY|O_DIRECTORY)) == -1) + goto render; /* XXX: display error */ + retfd = nfd; + goto cleanup; } else { - printf("n %20s\n", "next page"); - update_slot(s, get_icon("next"), "next page"); + printf ("opening non-directory not supported\n"); + goto render; } } } - action = get_action((s == NSLOTS - 1) && entry != NULL ? NSLOTS - 1 : -1, - i == 0 ? -1 : 0); - printf("action %d\n", action); - switch (action) { - case ACT_NEXT: - /* This leaks an internal struct associted with curloc/ */ - if (nextloc != 0) { - i += s; - curloc = nextloc; - } - goto start; - case ACT_PREV: - i -= s; - // XXX previous page - break; - case ACT_QUIT: - return (-1); - default: - if (action < 0 || action >= NSLOTS - 1) - errx(1, "invalid action"); +cleanup: + for (j = 0; j < ndents; j++) { + free(dents[j]->desc); + free(dents[j]); } - - /* Take action on the specified file */ - seekdir(dirp, curloc); - curloc = telldir(dirp); - j = 0; - while((entry = readdir(dirp)) != NULL) { - printf("%s\n", entry->d_name); - if (j++ != action) - continue; - if (entry->d_type == DT_DIR) { - if ((dfd = openat(dfd, entry->d_name, - O_RDONLY|O_DIRECTORY)) == -1) - err(1, "open(%s)", entry->d_name); - if (closedir(dirp) == -1) - err(1, "closedir()"); - return (dfd); - } else { - printf ("opening non-directory not supported\n"); - goto start; - } - } + free(dents); if (closedir(dirp) == -1) err(1, "closedir()"); - return (-1); + return (retfd); } int From owner-p4-projects@FreeBSD.ORG Mon Jul 9 22:59:46 2012 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 943831065670; Mon, 9 Jul 2012 22:59: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 4A2381065676 for ; Mon, 9 Jul 2012 22:59:45 +0000 (UTC) (envelope-from brooks@freebsd.org) Received: from skunkworks.freebsd.org (skunkworks.freebsd.org [IPv6:2001:4f8:fff6::2d]) by mx1.freebsd.org (Postfix) with ESMTP id 1A7728FC20 for ; Mon, 9 Jul 2012 22:59:45 +0000 (UTC) Received: from skunkworks.freebsd.org (localhost [127.0.0.1]) by skunkworks.freebsd.org (8.14.4/8.14.4) with ESMTP id q69Mxi3R066396 for ; Mon, 9 Jul 2012 22:59:44 GMT (envelope-from brooks@freebsd.org) Received: (from perforce@localhost) by skunkworks.freebsd.org (8.14.4/8.14.4/Submit) id q69MxiKh066393 for perforce@freebsd.org; Mon, 9 Jul 2012 22:59:44 GMT (envelope-from brooks@freebsd.org) Date: Mon, 9 Jul 2012 22:59:44 GMT Message-Id: <201207092259.q69MxiKh066393@skunkworks.freebsd.org> X-Authentication-Warning: skunkworks.freebsd.org: perforce set sender to brooks@freebsd.org using -f From: Brooks Davis To: Perforce Change Reviews Precedence: bulk Cc: Subject: PERFORCE change 214150 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 09 Jul 2012 22:59:46 -0000 http://p4web.freebsd.org/@@214150?ac=10 Change 214150 by brooks@brooks_ecr_current on 2012/07/09 22:59:10 Add the ability to disable certain protection modes. Use this to disable CHERI which is not yet ready. Affected files ... .. //depot/projects/ctsrd/beribsd/src/ctsrd/browser/browser.c#7 edit Differences ... ==== //depot/projects/ctsrd/beribsd/src/ctsrd/browser/browser.c#7 (text+ko) ==== @@ -163,13 +163,14 @@ struct _sbdata { enum _sbtype sbtype; + int enabled; int bcol; int ecol; } sbdata[] = { - { SB_NONE, SB_IMG_NONE_BCOL, SB_IMG_NONE_ECOL }, - { SB_CAPSICUM, SB_IMG_CAPSICUM_BCOL, SB_IMG_CAPSICUM_ECOL }, - { SB_CHERI, SB_IMG_CHERI_BCOL, SB_IMG_CHERI_ECOL }, - { 0, 0, 0 } + { SB_NONE, 1, SB_IMG_NONE_BCOL, SB_IMG_NONE_ECOL }, + { SB_CAPSICUM, 1, SB_IMG_CAPSICUM_BCOL, SB_IMG_CAPSICUM_ECOL }, + { SB_CHERI, 0, SB_IMG_CHERI_BCOL, SB_IMG_CHERI_ECOL }, + { 0, 0, 0, 0 } }; static u_int32_t *bgimage; @@ -235,6 +236,28 @@ } static void +init_bgimage(void) +{ + int i, j, pixel, sb; + + bgimage = malloc(sizeof(u_int32_t) * fb_height * fb_width); + if (bgimage == NULL) + err(1, "malloc"); + read_png_file(BASEIMG, bgimage, fb_width, fb_height); + + for (sb = 0; sbdata[sb].sbtype != 0; sb++) { + if (sbdata[sb].enabled) + continue; + for (j = SB_MINROW; j < SB_MAXROW; j++) { + for (i = sbdata[sb].bcol; i <= sbdata[sb].ecol; i++) { + pixel = (j * fb_width) + i; + bgimage[pixel] = vwhite(((bgimage[pixel] >> 24) & 0xFF) / 2); + } + } + } +} + +static void update_sandbox(enum _sbtype type) { int bcol, ecol, i, j, pixel, value; @@ -375,6 +398,9 @@ ts->ts_x1 > sbdata[i].ecol; i++) /* do nothing */; assert(sbdata[i].sbtype != 0); + if (sbdata[i].sbtype == sbtype || + !sbdata[i].enabled) + continue; update_sandbox(sbdata[i].sbtype); return (ACT_REFRESH); } @@ -528,11 +554,7 @@ init_magic(); fb_init(); fb_load_syscons_font(NULL, "/usr/share/syscons/fonts/iso-8x16.fnt"); - - bgimage = malloc(sizeof(u_int32_t) * fb_height * fb_width); - if (bgimage == NULL) - err(1, "malloc"); - read_png_file(BASEIMG, bgimage, fb_width, fb_height); + init_bgimage(); icons = malloc(sizeof(u_int32_t) * ICON_WH * 640); if (icons == NULL) From owner-p4-projects@FreeBSD.ORG Mon Jul 9 23:47:01 2012 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 9248A1065675; Mon, 9 Jul 2012 23:47:00 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 46F0B1065672 for ; Mon, 9 Jul 2012 23:47:00 +0000 (UTC) (envelope-from brooks@freebsd.org) Received: from skunkworks.freebsd.org (skunkworks.freebsd.org [IPv6:2001:4f8:fff6::2d]) by mx1.freebsd.org (Postfix) with ESMTP id 16CA48FC1A for ; Mon, 9 Jul 2012 23:46:59 +0000 (UTC) Received: from skunkworks.freebsd.org (localhost [127.0.0.1]) by skunkworks.freebsd.org (8.14.4/8.14.4) with ESMTP id q69NkxeR068629 for ; Mon, 9 Jul 2012 23:46:59 GMT (envelope-from brooks@freebsd.org) Received: (from perforce@localhost) by skunkworks.freebsd.org (8.14.4/8.14.4/Submit) id q69NkxE8068626 for perforce@freebsd.org; Mon, 9 Jul 2012 23:46:59 GMT (envelope-from brooks@freebsd.org) Date: Mon, 9 Jul 2012 23:46:59 GMT Message-Id: <201207092346.q69NkxE8068626@skunkworks.freebsd.org> X-Authentication-Warning: skunkworks.freebsd.org: perforce set sender to brooks@freebsd.org using -f From: Brooks Davis To: Perforce Change Reviews Precedence: bulk Cc: Subject: PERFORCE change 214152 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 09 Jul 2012 23:47:01 -0000 http://p4web.freebsd.org/@@214152?ac=10 Change 214152 by brooks@brooks_ecr_current on 2012/07/09 23:46:57 Implement a basic Capsicum sandbox which protects the main process from a file that exploites the BADMAGIC back door in libvuln_magic and displays a toxic hazard icon. Affected files ... .. //depot/projects/ctsrd/beribsd/src/ctsrd/browser/browser.c#8 edit Differences ... ==== //depot/projects/ctsrd/beribsd/src/ctsrd/browser/browser.c#8 (text+ko) ==== @@ -31,6 +31,7 @@ #include #include +#include #include #include @@ -44,12 +45,14 @@ #include #include #include +#define _WITH_DPRINTF #include #include #include #include #include #include +#include #define BASEIMG "/usr/share/images/browser.png" #define ICONS "/usr/share/images/icons.png" @@ -222,12 +225,71 @@ static const char * get_magic(int fd) { + pid_t pid; + ssize_t rlen; + char buf[4096], *desc; + const char *cdesc; + int pfd[2], status; + rlen = read(fd, buf, sizeof(buf)); + if (rlen == -1) + return "read-error"; + if (rlen == 0) + return "empty"; + switch (sbtype) { case SB_NONE: - return magic_descriptor(magic, fd); + return magic_buffer(magic, buf, rlen); case SB_CAPSICUM: - return "devil"; + if (pipe(pfd) == -1) + err(1, "pipe()"); + pid = fork(); + if (pid < 0) + err(1, "fork()"); + else if (pid == 0) { + close(fd); + close(pfd[0]); + fb_fini(); + /* XXX: do more cleanup here */ + cap_enter(); + + cdesc = magic_buffer(magic, buf, rlen); + if (cdesc == NULL) + dprintf(pfd[1], "badmagic"); + else + dprintf(pfd[1], "%s", cdesc); + close(pfd[1]); + exit(0); + } else { + close(pfd[1]); + if (wait4(pid, &status, 0, NULL) == -1) + err(1, "wait4()"); + if (WIFEXITED(status) && + WEXITSTATUS(status) != 0) { + warnx("child exited with %d", + WEXITSTATUS(status)); + close(pfd[0]); + return "badmagic"; + } + else if(WIFSIGNALED(status)) { + warn("child killed by signal %d", + WTERMSIG(status)); + close(pfd[0]); + return "badmagic"; + } else { + rlen = read(pfd[0], buf, 128); + close(pfd[0]); + if (rlen == -1) + return "read error"; + if (rlen == 0 || rlen == 1) + return "unknown"; + /* Don't trust the result */ + desc = buf + rlen; + strvisx(desc, buf, rlen - 1, 0); + return (desc); + } + } + break; case SB_CHERI: return "devil"; default: From owner-p4-projects@FreeBSD.ORG Tue Jul 10 01:47:51 2012 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id E17321065672; Tue, 10 Jul 2012 01:47:50 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id A4036106564A for ; Tue, 10 Jul 2012 01:47:50 +0000 (UTC) (envelope-from brooks@freebsd.org) Received: from skunkworks.freebsd.org (skunkworks.freebsd.org [IPv6:2001:4f8:fff6::2d]) by mx1.freebsd.org (Postfix) with ESMTP id 8CC2A8FC08 for ; Tue, 10 Jul 2012 01:47:50 +0000 (UTC) Received: from skunkworks.freebsd.org (localhost [127.0.0.1]) by skunkworks.freebsd.org (8.14.4/8.14.4) with ESMTP id q6A1lokA073471 for ; Tue, 10 Jul 2012 01:47:50 GMT (envelope-from brooks@freebsd.org) Received: (from perforce@localhost) by skunkworks.freebsd.org (8.14.4/8.14.4/Submit) id q6A1loTC073468 for perforce@freebsd.org; Tue, 10 Jul 2012 01:47:50 GMT (envelope-from brooks@freebsd.org) Date: Tue, 10 Jul 2012 01:47:50 GMT Message-Id: <201207100147.q6A1loTC073468@skunkworks.freebsd.org> X-Authentication-Warning: skunkworks.freebsd.org: perforce set sender to brooks@freebsd.org using -f From: Brooks Davis To: Perforce Change Reviews Precedence: bulk Cc: Subject: PERFORCE change 214162 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 10 Jul 2012 01:47:51 -0000 http://p4web.freebsd.org/@@214162?ac=10 Change 214162 by brooks@brooks_ecr_current on 2012/07/10 01:46:57 Erase the display area before panning so we don't leave files from the previous view visiable. Affected files ... .. //depot/projects/ctsrd/beribsd/src/ctsrd/browser/browser.c#9 edit Differences ... ==== //depot/projects/ctsrd/beribsd/src/ctsrd/browser/browser.c#9 (text+ko) ==== @@ -512,10 +512,10 @@ ndents++; } - fb_fill_region(black, colstart[0], FROW, fb_width, NROW * RHEIGHT); topslot = 0; render: + fb_fill_region(black, colstart[0], FROW, fb_width, NROW * RHEIGHT); for(curslot = 0; curslot < NSLOTS && topslot + curslot < ndents; curslot++) { dent = dents[topslot + curslot]; From owner-p4-projects@FreeBSD.ORG Tue Jul 10 03:36:25 2012 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 1D0321065673; Tue, 10 Jul 2012 03:36:25 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id BA4641065670 for ; Tue, 10 Jul 2012 03:36:24 +0000 (UTC) (envelope-from brooks@freebsd.org) Received: from skunkworks.freebsd.org (skunkworks.freebsd.org [IPv6:2001:4f8:fff6::2d]) by mx1.freebsd.org (Postfix) with ESMTP id A36D78FC1A for ; Tue, 10 Jul 2012 03:36:24 +0000 (UTC) Received: from skunkworks.freebsd.org (localhost [127.0.0.1]) by skunkworks.freebsd.org (8.14.4/8.14.4) with ESMTP id q6A3aOd7078360 for ; Tue, 10 Jul 2012 03:36:24 GMT (envelope-from brooks@freebsd.org) Received: (from perforce@localhost) by skunkworks.freebsd.org (8.14.4/8.14.4/Submit) id q6A3aOcl078357 for perforce@freebsd.org; Tue, 10 Jul 2012 03:36:24 GMT (envelope-from brooks@freebsd.org) Date: Tue, 10 Jul 2012 03:36:24 GMT Message-Id: <201207100336.q6A3aOcl078357@skunkworks.freebsd.org> X-Authentication-Warning: skunkworks.freebsd.org: perforce set sender to brooks@freebsd.org using -f From: Brooks Davis To: Perforce Change Reviews Precedence: bulk Cc: Subject: PERFORCE change 214168 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 10 Jul 2012 03:36:25 -0000 http://p4web.freebsd.org/@@214168?ac=10 Change 214168 by brooks@brooks_ecr_current on 2012/07/10 03:35:52 Add mtlctl, the beginnings to a tool for manipulating the DE4 touch screen from the command line. Affected files ... .. //depot/projects/ctsrd/beribsd/src/ctsrd/Makefile#8 edit .. //depot/projects/ctsrd/beribsd/src/ctsrd/mtlctl/Makefile#1 add .. //depot/projects/ctsrd/beribsd/src/ctsrd/mtlctl/mtlctl.c#1 add Differences ... ==== //depot/projects/ctsrd/beribsd/src/ctsrd/Makefile#8 (text+ko) ==== @@ -4,6 +4,7 @@ cycle_led \ flashit \ minifile \ + mtlctl \ pictview \ showimage \ spinner From owner-p4-projects@FreeBSD.ORG Tue Jul 10 22:42:21 2012 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id A1E961065673; Tue, 10 Jul 2012 22:42: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 586FA1065670 for ; Tue, 10 Jul 2012 22:42:20 +0000 (UTC) (envelope-from brooks@freebsd.org) Received: from skunkworks.freebsd.org (skunkworks.freebsd.org [IPv6:2001:4f8:fff6::2d]) by mx1.freebsd.org (Postfix) with ESMTP id 41A868FC0C for ; Tue, 10 Jul 2012 22:42:20 +0000 (UTC) Received: from skunkworks.freebsd.org (localhost [127.0.0.1]) by skunkworks.freebsd.org (8.14.4/8.14.4) with ESMTP id q6AMgKqn028550 for ; Tue, 10 Jul 2012 22:42:20 GMT (envelope-from brooks@freebsd.org) Received: (from perforce@localhost) by skunkworks.freebsd.org (8.14.4/8.14.4/Submit) id q6AMgKt2028547 for perforce@freebsd.org; Tue, 10 Jul 2012 22:42:20 GMT (envelope-from brooks@freebsd.org) Date: Tue, 10 Jul 2012 22:42:20 GMT Message-Id: <201207102242.q6AMgKt2028547@skunkworks.freebsd.org> X-Authentication-Warning: skunkworks.freebsd.org: perforce set sender to brooks@freebsd.org using -f From: Brooks Davis To: Perforce Change Reviews Precedence: bulk Cc: Subject: PERFORCE change 214211 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 10 Jul 2012 22:42:22 -0000 http://p4web.freebsd.org/@@214211?ac=10 Change 214211 by brooks@brooks_ecr_current on 2012/07/10 22:42:11 Add a trivial program that sets all red bits on the touch screent to 0xFF. Install it as /bin/wr so it's easy to replace /bin/sh in exploit code. Affected files ... .. //depot/projects/ctsrd/beribsd/src/ctsrd/Makefile#9 edit .. //depot/projects/ctsrd/beribsd/src/ctsrd/wr/Makefile#1 add .. //depot/projects/ctsrd/beribsd/src/ctsrd/wr/wr.c#1 add Differences ... ==== //depot/projects/ctsrd/beribsd/src/ctsrd/Makefile#9 (text+ko) ==== @@ -7,7 +7,8 @@ mtlctl \ pictview \ showimage \ - spinner + spinner \ + wr .include From owner-p4-projects@FreeBSD.ORG Tue Jul 10 23:26:15 2012 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 843011065672; Tue, 10 Jul 2012 23:26: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 3C6AC106566C for ; Tue, 10 Jul 2012 23:26:14 +0000 (UTC) (envelope-from brooks@freebsd.org) Received: from skunkworks.freebsd.org (skunkworks.freebsd.org [IPv6:2001:4f8:fff6::2d]) by mx1.freebsd.org (Postfix) with ESMTP id 25EDA8FC1B for ; Tue, 10 Jul 2012 23:26:14 +0000 (UTC) Received: from skunkworks.freebsd.org (localhost [127.0.0.1]) by skunkworks.freebsd.org (8.14.4/8.14.4) with ESMTP id q6ANQDnh030452 for ; Tue, 10 Jul 2012 23:26:13 GMT (envelope-from brooks@freebsd.org) Received: (from perforce@localhost) by skunkworks.freebsd.org (8.14.4/8.14.4/Submit) id q6ANQDcI030449 for perforce@freebsd.org; Tue, 10 Jul 2012 23:26:13 GMT (envelope-from brooks@freebsd.org) Date: Tue, 10 Jul 2012 23:26:13 GMT Message-Id: <201207102326.q6ANQDcI030449@skunkworks.freebsd.org> X-Authentication-Warning: skunkworks.freebsd.org: perforce set sender to brooks@freebsd.org using -f From: Brooks Davis To: Perforce Change Reviews Precedence: bulk Cc: Subject: PERFORCE change 214213 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 10 Jul 2012 23:26:15 -0000 http://p4web.freebsd.org/@@214213?ac=10 Change 214213 by brooks@brooks_ecr_current on 2012/07/10 23:25:45 Use blue instead of white text as it seems to eliminate spurious gestures which are probably interference related. Affected files ... .. //depot/projects/ctsrd/beribsd/src/ctsrd/browser/browser.c#10 edit Differences ... ==== //depot/projects/ctsrd/beribsd/src/ctsrd/browser/browser.c#10 (text+ko) ==== @@ -422,7 +422,7 @@ u_int32_t textbuf[TEXTSPACE*CHAR_HEIGHT]; memset(textbuf, 0, sizeof(textbuf)); - fb_render_text(text, 2, white, black, textbuf, + fb_render_text(text, 2, blue, black, textbuf, TEXTSPACE, CHAR_HEIGHT); fb_post_region(textbuf, colstart[(s/NROW)] + TEXT_OFFSET, FROW + (RHEIGHT * (s % NROW)) + BORDER, TEXTSPACE, From owner-p4-projects@FreeBSD.ORG Tue Jul 10 23:27:21 2012 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id ABAA11065670; Tue, 10 Jul 2012 23:27: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 60090106566B for ; Tue, 10 Jul 2012 23:27:20 +0000 (UTC) (envelope-from brooks@freebsd.org) Received: from skunkworks.freebsd.org (skunkworks.freebsd.org [IPv6:2001:4f8:fff6::2d]) by mx1.freebsd.org (Postfix) with ESMTP id 4938C8FC12 for ; Tue, 10 Jul 2012 23:27:20 +0000 (UTC) Received: from skunkworks.freebsd.org (localhost [127.0.0.1]) by skunkworks.freebsd.org (8.14.4/8.14.4) with ESMTP id q6ANRKG3030521 for ; Tue, 10 Jul 2012 23:27:20 GMT (envelope-from brooks@freebsd.org) Received: (from perforce@localhost) by skunkworks.freebsd.org (8.14.4/8.14.4/Submit) id q6ANRKLL030518 for perforce@freebsd.org; Tue, 10 Jul 2012 23:27:20 GMT (envelope-from brooks@freebsd.org) Date: Tue, 10 Jul 2012 23:27:20 GMT Message-Id: <201207102327.q6ANRKLL030518@skunkworks.freebsd.org> X-Authentication-Warning: skunkworks.freebsd.org: perforce set sender to brooks@freebsd.org using -f From: Brooks Davis To: Perforce Change Reviews Precedence: bulk Cc: Subject: PERFORCE change 214214 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 10 Jul 2012 23:27:21 -0000 http://p4web.freebsd.org/@@214214?ac=10 Change 214214 by brooks@brooks_ecr_current on 2012/07/10 23:27:17 Expose the frame buffer pointer for the moment. Affected files ... .. //depot/projects/ctsrd/beribsd/src/ctsrd-lib/libde4tc/de4tc.c#6 edit .. //depot/projects/ctsrd/beribsd/src/ctsrd-lib/libde4tc/de4tc.h#6 edit .. //depot/projects/ctsrd/beribsd/src/ctsrd-lib/libde4tc/syscons-fonts.c#2 edit Differences ... ==== //depot/projects/ctsrd/beribsd/src/ctsrd-lib/libde4tc/de4tc.c#6 (text+ko) ==== @@ -152,7 +152,7 @@ struct tsstate* ts_poll(void) { - struct timespec stime = {0, 0.01}; + struct timespec stime = {0, 0.1}; static struct tsstate *sp; int init = 0; struct tsstate tmp_s; ==== //depot/projects/ctsrd/beribsd/src/ctsrd-lib/libde4tc/de4tc.h#6 (text+ko) ==== @@ -76,6 +76,7 @@ extern const int fb_height; extern const int fb_width; +extern volatile u_int32_t *pfbp; extern volatile u_int32_t *mtlctrl; void multitouch_pole(void); ==== //depot/projects/ctsrd/beribsd/src/ctsrd-lib/libde4tc/syscons-fonts.c#2 (text+ko) ==== @@ -52,8 +52,6 @@ const int font_width = 8; static int font_height; -extern volatile u_int32_t *pfbp; - /* * Guess which file to open. Try to open each combination of a specified set * of file name components. From owner-p4-projects@FreeBSD.ORG Tue Jul 10 23:29:34 2012 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id C98171065677; Tue, 10 Jul 2012 23:29:32 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 7F6031065672 for ; Tue, 10 Jul 2012 23:29:32 +0000 (UTC) (envelope-from brooks@freebsd.org) Received: from skunkworks.freebsd.org (skunkworks.freebsd.org [IPv6:2001:4f8:fff6::2d]) by mx1.freebsd.org (Postfix) with ESMTP id 6894F8FC15 for ; Tue, 10 Jul 2012 23:29:32 +0000 (UTC) Received: from skunkworks.freebsd.org (localhost [127.0.0.1]) by skunkworks.freebsd.org (8.14.4/8.14.4) with ESMTP id q6ANTW2p030573 for ; Tue, 10 Jul 2012 23:29:32 GMT (envelope-from brooks@freebsd.org) Received: (from perforce@localhost) by skunkworks.freebsd.org (8.14.4/8.14.4/Submit) id q6ANTW6A030570 for perforce@freebsd.org; Tue, 10 Jul 2012 23:29:32 GMT (envelope-from brooks@freebsd.org) Date: Tue, 10 Jul 2012 23:29:32 GMT Message-Id: <201207102329.q6ANTW6A030570@skunkworks.freebsd.org> X-Authentication-Warning: skunkworks.freebsd.org: perforce set sender to brooks@freebsd.org using -f From: Brooks Davis To: Perforce Change Reviews Precedence: bulk Cc: Subject: PERFORCE change 214215 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 10 Jul 2012 23:29:34 -0000 http://p4web.freebsd.org/@@214215?ac=10 Change 214215 by brooks@brooks_ecr_current on 2012/07/10 23:28:27 Add KTRACE, CAPABILITY_MODE, and CAPABILITIES options. The former allows ktrace/kdump to work. The latter two are required for capsicum to actually work. Affected files ... .. //depot/projects/ctsrd/beribsd/src/sys/mips/conf/BERI_TEMPLATE#2 edit Differences ... ==== //depot/projects/ctsrd/beribsd/src/sys/mips/conf/BERI_TEMPLATE#2 (text+ko) ==== @@ -28,6 +28,10 @@ options DDB options KDB options ALT_BREAK_TO_DEBUGGER +options KTRACE + +options CAPABILITY_MODE +options CAPABILITIES options SCHED_ULE From owner-p4-projects@FreeBSD.ORG Wed Jul 11 15:35:57 2012 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id DDDE5106566C; Wed, 11 Jul 2012 15:35:56 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 92B8E1065673 for ; Wed, 11 Jul 2012 15:35:56 +0000 (UTC) (envelope-from jhb@freebsd.org) Received: from skunkworks.freebsd.org (skunkworks.freebsd.org [IPv6:2001:4f8:fff6::2d]) by mx1.freebsd.org (Postfix) with ESMTP id 78E3E8FC16 for ; Wed, 11 Jul 2012 15:35:56 +0000 (UTC) Received: from skunkworks.freebsd.org (localhost [127.0.0.1]) by skunkworks.freebsd.org (8.14.4/8.14.4) with ESMTP id q6BFZut5077812 for ; Wed, 11 Jul 2012 15:35:56 GMT (envelope-from jhb@freebsd.org) Received: (from perforce@localhost) by skunkworks.freebsd.org (8.14.4/8.14.4/Submit) id q6BFZk9Y077805 for perforce@freebsd.org; Wed, 11 Jul 2012 15:35:46 GMT (envelope-from jhb@freebsd.org) Date: Wed, 11 Jul 2012 15:35:46 GMT Message-Id: <201207111535.q6BFZk9Y077805@skunkworks.freebsd.org> X-Authentication-Warning: skunkworks.freebsd.org: perforce set sender to jhb@freebsd.org using -f From: John Baldwin To: Perforce Change Reviews Precedence: bulk Cc: Subject: PERFORCE change 214246 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 11 Jul 2012 15:35:57 -0000 http://p4web.freebsd.org/@@214246?ac=10 Change 214246 by jhb@jhb_jhbbsd on 2012/07/11 15:34:59 IFC @214245 Affected files ... .. //depot/projects/fadvise/lib/libc/amd64/sys/Makefile.inc#2 integrate .. //depot/projects/fadvise/lib/libc/amd64/sys/__vdso_gettc.c#1 branch .. //depot/projects/fadvise/lib/libc/arm/Symbol.map#3 integrate .. //depot/projects/fadvise/lib/libc/gen/arc4random.c#3 integrate .. //depot/projects/fadvise/lib/libc/gen/aux.c#3 integrate .. //depot/projects/fadvise/lib/libc/gen/directory.3#3 integrate .. //depot/projects/fadvise/lib/libc/gen/fstab.c#3 integrate .. //depot/projects/fadvise/lib/libc/gen/getnetgrent.c#4 integrate .. //depot/projects/fadvise/lib/libc/gen/signal.3#2 integrate .. //depot/projects/fadvise/lib/libc/gen/sysconf.c#2 integrate .. //depot/projects/fadvise/lib/libc/gen/syslog.c#3 integrate .. //depot/projects/fadvise/lib/libc/i386/gen/getcontextx.c#2 integrate .. //depot/projects/fadvise/lib/libc/i386/sys/Makefile.inc#2 integrate .. //depot/projects/fadvise/lib/libc/i386/sys/__vdso_gettc.c#1 branch .. //depot/projects/fadvise/lib/libc/include/libc_private.h#5 integrate .. //depot/projects/fadvise/lib/libc/locale/collate.c#4 integrate .. //depot/projects/fadvise/lib/libc/locale/ctype_l.3#2 integrate .. //depot/projects/fadvise/lib/libc/locale/setrunelocale.c#5 integrate .. //depot/projects/fadvise/lib/libc/net/Makefile.inc#2 integrate .. //depot/projects/fadvise/lib/libc/stdio/xprintf.c#2 integrate .. //depot/projects/fadvise/lib/libc/stdlib/Makefile.inc#5 integrate .. //depot/projects/fadvise/lib/libc/stdlib/getopt_long.c#2 integrate .. //depot/projects/fadvise/lib/libc/stdlib/strfmon.3#3 integrate .. //depot/projects/fadvise/lib/libc/stdtime/Makefile.inc#2 integrate .. //depot/projects/fadvise/lib/libc/stdtime/strftime.3#2 integrate .. //depot/projects/fadvise/lib/libc/stdtime/strftime.c#3 integrate .. //depot/projects/fadvise/lib/libc/stdtime/strptime.3#2 integrate .. //depot/projects/fadvise/lib/libc/string/Makefile.inc#3 integrate .. //depot/projects/fadvise/lib/libc/string/strcasecmp.3#2 integrate .. //depot/projects/fadvise/lib/libc/string/strcoll.3#2 integrate .. //depot/projects/fadvise/lib/libc/string/strstr.3#2 integrate .. //depot/projects/fadvise/lib/libc/string/strxfrm.3#2 integrate .. //depot/projects/fadvise/lib/libc/sys/Makefile.inc#7 integrate .. //depot/projects/fadvise/lib/libc/sys/Symbol.map#6 integrate .. //depot/projects/fadvise/lib/libc/sys/__vdso_gettimeofday.c#1 branch .. //depot/projects/fadvise/lib/libc/sys/clock_gettime.c#1 branch .. //depot/projects/fadvise/lib/libc/sys/gettimeofday.c#1 branch .. //depot/projects/fadvise/lib/libc/sys/posix_fadvise.2#4 integrate .. //depot/projects/fadvise/sys/amd64/acpica/acpi_switch.S#3 delete .. //depot/projects/fadvise/sys/amd64/acpica/acpi_wakecode.S#3 integrate .. //depot/projects/fadvise/sys/amd64/acpica/acpi_wakeup.c#4 delete .. //depot/projects/fadvise/sys/amd64/amd64/cpu_switch.S#4 integrate .. //depot/projects/fadvise/sys/amd64/amd64/db_disasm.c#2 integrate .. //depot/projects/fadvise/sys/amd64/amd64/fpu.c#4 integrate .. //depot/projects/fadvise/sys/amd64/amd64/genassym.c#3 integrate .. //depot/projects/fadvise/sys/amd64/amd64/machdep.c#5 integrate .. //depot/projects/fadvise/sys/amd64/amd64/mem.c#2 integrate .. //depot/projects/fadvise/sys/amd64/amd64/mp_machdep.c#5 integrate .. //depot/projects/fadvise/sys/amd64/amd64/pmap.c#6 integrate .. //depot/projects/fadvise/sys/amd64/amd64/trap.c#6 integrate .. //depot/projects/fadvise/sys/amd64/conf/GENERIC#9 integrate .. //depot/projects/fadvise/sys/amd64/include/cpufunc.h#4 integrate .. //depot/projects/fadvise/sys/amd64/include/elf.h#2 integrate .. //depot/projects/fadvise/sys/amd64/include/pcb.h#4 integrate .. //depot/projects/fadvise/sys/amd64/include/pmap.h#3 integrate .. //depot/projects/fadvise/sys/amd64/include/smp.h#2 integrate .. //depot/projects/fadvise/sys/amd64/include/vdso.h#1 branch .. //depot/projects/fadvise/sys/arm/arm/bcopyinout_xscale.S#2 integrate .. //depot/projects/fadvise/sys/arm/arm/bootconfig.c#2 integrate .. //depot/projects/fadvise/sys/arm/arm/busdma_machdep.c#4 integrate .. //depot/projects/fadvise/sys/arm/arm/cpufunc.c#2 integrate .. //depot/projects/fadvise/sys/arm/arm/cpufunc_asm.S#2 integrate .. //depot/projects/fadvise/sys/arm/arm/cpufunc_asm_arm10.S#2 integrate .. //depot/projects/fadvise/sys/arm/arm/cpufunc_asm_arm11.S#2 integrate .. //depot/projects/fadvise/sys/arm/arm/cpufunc_asm_arm7tdmi.S#2 integrate .. //depot/projects/fadvise/sys/arm/arm/cpufunc_asm_arm8.S#2 integrate .. //depot/projects/fadvise/sys/arm/arm/cpufunc_asm_arm9.S#2 integrate .. //depot/projects/fadvise/sys/arm/arm/cpufunc_asm_armv4.S#2 integrate .. //depot/projects/fadvise/sys/arm/arm/cpufunc_asm_armv5.S#2 integrate .. //depot/projects/fadvise/sys/arm/arm/cpufunc_asm_sa1.S#2 integrate .. //depot/projects/fadvise/sys/arm/arm/cpufunc_asm_xscale.S#2 integrate .. //depot/projects/fadvise/sys/arm/arm/cpufunc_asm_xscale_c3.S#2 integrate .. //depot/projects/fadvise/sys/arm/arm/db_disasm.c#2 integrate .. //depot/projects/fadvise/sys/arm/arm/db_interface.c#2 integrate .. //depot/projects/fadvise/sys/arm/arm/db_trace.c#3 integrate .. //depot/projects/fadvise/sys/arm/arm/disassem.c#2 integrate .. //depot/projects/fadvise/sys/arm/arm/dump_machdep.c#2 integrate .. //depot/projects/fadvise/sys/arm/arm/elf_trampoline.c#3 integrate .. //depot/projects/fadvise/sys/arm/arm/exception.S#2 integrate .. //depot/projects/fadvise/sys/arm/arm/gdb_machdep.c#3 integrate .. //depot/projects/fadvise/sys/arm/arm/in_cksum.c#2 integrate .. //depot/projects/fadvise/sys/arm/arm/intr.c#2 integrate .. //depot/projects/fadvise/sys/arm/arm/irq_dispatch.S#3 integrate .. //depot/projects/fadvise/sys/arm/arm/machdep.c#5 integrate .. //depot/projects/fadvise/sys/arm/arm/mem.c#2 integrate .. //depot/projects/fadvise/sys/arm/arm/nexus.c#3 integrate .. //depot/projects/fadvise/sys/arm/arm/pmap.c#4 integrate .. //depot/projects/fadvise/sys/arm/arm/support.S#2 integrate .. //depot/projects/fadvise/sys/arm/arm/swtch.S#2 integrate .. //depot/projects/fadvise/sys/arm/arm/sys_machdep.c#3 integrate .. //depot/projects/fadvise/sys/arm/arm/trap.c#2 integrate .. //depot/projects/fadvise/sys/arm/arm/undefined.c#2 integrate .. //depot/projects/fadvise/sys/arm/arm/vectors.S#2 integrate .. //depot/projects/fadvise/sys/arm/arm/vm_machdep.c#4 integrate .. //depot/projects/fadvise/sys/arm/at91/at91.c#4 integrate .. //depot/projects/fadvise/sys/arm/at91/at91_machdep.c#3 integrate .. //depot/projects/fadvise/sys/arm/at91/at91_mci.c#3 integrate .. //depot/projects/fadvise/sys/arm/at91/at91_pio.c#3 integrate .. //depot/projects/fadvise/sys/arm/at91/at91_pio_rm9200.h#2 integrate .. //depot/projects/fadvise/sys/arm/at91/at91_pit.c#3 integrate .. //depot/projects/fadvise/sys/arm/at91/at91_pitreg.h#2 integrate .. //depot/projects/fadvise/sys/arm/at91/at91_pmcvar.h#2 integrate .. //depot/projects/fadvise/sys/arm/at91/at91_reset.S#3 integrate .. //depot/projects/fadvise/sys/arm/at91/at91_rst.c#3 integrate .. //depot/projects/fadvise/sys/arm/at91/at91_spi.c#3 integrate .. //depot/projects/fadvise/sys/arm/at91/at91_ssc.c#2 integrate .. //depot/projects/fadvise/sys/arm/at91/at91_st.c#3 integrate .. //depot/projects/fadvise/sys/arm/at91/at91_twi.c#3 integrate .. //depot/projects/fadvise/sys/arm/at91/at91_wdtreg.h#2 integrate .. //depot/projects/fadvise/sys/arm/at91/at91board.h#2 integrate .. //depot/projects/fadvise/sys/arm/at91/at91reg.h#3 integrate .. //depot/projects/fadvise/sys/arm/at91/at91rm9200.c#3 integrate .. //depot/projects/fadvise/sys/arm/at91/at91rm92reg.h#3 integrate .. //depot/projects/fadvise/sys/arm/at91/at91sam9260.c#3 integrate .. //depot/projects/fadvise/sys/arm/at91/at91sam9260reg.h#3 integrate .. //depot/projects/fadvise/sys/arm/at91/at91sam9g20.c#3 integrate .. //depot/projects/fadvise/sys/arm/at91/at91sam9g20reg.h#3 integrate .. //depot/projects/fadvise/sys/arm/at91/at91sam9x25.c#1 branch .. //depot/projects/fadvise/sys/arm/at91/at91sam9x25reg.h#1 branch .. //depot/projects/fadvise/sys/arm/at91/at91var.h#3 integrate .. //depot/projects/fadvise/sys/arm/at91/board_bwct.c#2 integrate .. //depot/projects/fadvise/sys/arm/at91/board_ethernut5.c#2 integrate .. //depot/projects/fadvise/sys/arm/at91/board_hl200.c#2 integrate .. //depot/projects/fadvise/sys/arm/at91/board_hl201.c#2 integrate .. //depot/projects/fadvise/sys/arm/at91/board_kb920x.c#2 integrate .. //depot/projects/fadvise/sys/arm/at91/board_qila9g20.c#2 integrate .. //depot/projects/fadvise/sys/arm/at91/board_sam9g20ek.c#3 integrate .. //depot/projects/fadvise/sys/arm/at91/board_sam9x25ek.c#1 branch .. //depot/projects/fadvise/sys/arm/at91/board_tsc4370.c#2 integrate .. //depot/projects/fadvise/sys/arm/at91/files.at91#2 integrate .. //depot/projects/fadvise/sys/arm/at91/files.at91sam9#3 delete .. //depot/projects/fadvise/sys/arm/at91/if_macb.c#2 integrate .. //depot/projects/fadvise/sys/arm/at91/std.at91#2 integrate .. //depot/projects/fadvise/sys/arm/at91/std.at91sam9#3 integrate .. //depot/projects/fadvise/sys/arm/at91/std.atmel#1 branch .. //depot/projects/fadvise/sys/arm/at91/std.ethernut5#2 integrate .. //depot/projects/fadvise/sys/arm/at91/std.hl201#3 integrate .. //depot/projects/fadvise/sys/arm/at91/std.qila9g20#3 integrate .. //depot/projects/fadvise/sys/arm/at91/std.sam9g20ek#3 integrate .. //depot/projects/fadvise/sys/arm/at91/std.sam9x25ek#1 branch .. //depot/projects/fadvise/sys/arm/at91/uart_bus_at91usart.c#2 integrate .. //depot/projects/fadvise/sys/arm/at91/uart_cpu_at91rm9200usart.c#2 integrate .. //depot/projects/fadvise/sys/arm/conf/ATMEL#1 branch .. //depot/projects/fadvise/sys/arm/conf/AVILA#3 integrate .. //depot/projects/fadvise/sys/arm/conf/BWCT#3 integrate .. //depot/projects/fadvise/sys/arm/conf/CAMBRIA#3 integrate .. //depot/projects/fadvise/sys/arm/conf/CNS11XXNAS#3 integrate .. //depot/projects/fadvise/sys/arm/conf/CRB#3 integrate .. //depot/projects/fadvise/sys/arm/conf/EP80219#3 integrate .. //depot/projects/fadvise/sys/arm/conf/GUMSTIX#4 integrate .. //depot/projects/fadvise/sys/arm/conf/GUMSTIX-QEMU#2 integrate .. //depot/projects/fadvise/sys/arm/conf/HL200#3 integrate .. //depot/projects/fadvise/sys/arm/conf/HL201#3 integrate .. //depot/projects/fadvise/sys/arm/conf/IQ31244#3 integrate .. //depot/projects/fadvise/sys/arm/conf/KB920X#4 integrate .. //depot/projects/fadvise/sys/arm/conf/LN2410SBC#3 integrate .. //depot/projects/fadvise/sys/arm/conf/NSLU#3 integrate .. //depot/projects/fadvise/sys/arm/conf/QILA9G20#3 integrate .. //depot/projects/fadvise/sys/arm/conf/QILA9G20.hints#2 integrate .. //depot/projects/fadvise/sys/arm/conf/SAM9G20EK#3 integrate .. //depot/projects/fadvise/sys/arm/conf/SAM9G20EK.hints#2 integrate .. //depot/projects/fadvise/sys/arm/conf/SAM9X25EK#1 branch .. //depot/projects/fadvise/sys/arm/conf/SAM9X25EK.hints#1 branch .. //depot/projects/fadvise/sys/arm/conf/SIMICS#2 integrate .. //depot/projects/fadvise/sys/arm/econa/econa_machdep.c#3 integrate .. //depot/projects/fadvise/sys/arm/include/_stdint.h#2 integrate .. //depot/projects/fadvise/sys/arm/include/_types.h#4 integrate .. //depot/projects/fadvise/sys/arm/include/armreg.h#3 integrate .. //depot/projects/fadvise/sys/arm/include/asmacros.h#3 integrate .. //depot/projects/fadvise/sys/arm/include/atags.h#1 branch .. //depot/projects/fadvise/sys/arm/include/atomic.h#2 integrate .. //depot/projects/fadvise/sys/arm/include/blockio.h#2 integrate .. //depot/projects/fadvise/sys/arm/include/board.h#1 branch .. //depot/projects/fadvise/sys/arm/include/cpufunc.h#2 integrate .. //depot/projects/fadvise/sys/arm/include/elf.h#2 integrate .. //depot/projects/fadvise/sys/arm/include/endian.h#2 integrate .. //depot/projects/fadvise/sys/arm/include/fdt.h#3 integrate .. //depot/projects/fadvise/sys/arm/include/fp.h#2 integrate .. //depot/projects/fadvise/sys/arm/include/frame.h#2 integrate .. //depot/projects/fadvise/sys/arm/include/ieee.h#2 integrate .. //depot/projects/fadvise/sys/arm/include/in_cksum.h#3 integrate .. //depot/projects/fadvise/sys/arm/include/intr.h#2 integrate .. //depot/projects/fadvise/sys/arm/include/katelib.h#2 integrate .. //depot/projects/fadvise/sys/arm/include/machdep.h#2 integrate .. //depot/projects/fadvise/sys/arm/include/param.h#3 integrate .. //depot/projects/fadvise/sys/arm/include/pmap.h#3 integrate .. //depot/projects/fadvise/sys/arm/include/pmc_mdep.h#3 integrate .. //depot/projects/fadvise/sys/arm/include/profile.h#2 integrate .. //depot/projects/fadvise/sys/arm/include/pte.h#2 integrate .. //depot/projects/fadvise/sys/arm/include/resource.h#2 integrate .. //depot/projects/fadvise/sys/arm/include/stack.h#2 integrate .. //depot/projects/fadvise/sys/arm/include/vdso.h#1 branch .. //depot/projects/fadvise/sys/arm/include/vmparam.h#2 integrate .. //depot/projects/fadvise/sys/arm/mv/mv_machdep.c#4 integrate .. //depot/projects/fadvise/sys/arm/mv/mvwin.h#3 integrate .. //depot/projects/fadvise/sys/arm/mv/std.mv#2 integrate .. //depot/projects/fadvise/sys/arm/s3c2xx0/s3c2410reg.h#2 integrate .. //depot/projects/fadvise/sys/arm/s3c2xx0/s3c2440reg.h#2 integrate .. //depot/projects/fadvise/sys/arm/s3c2xx0/s3c24x0.c#2 integrate .. //depot/projects/fadvise/sys/arm/s3c2xx0/s3c24x0_machdep.c#3 integrate .. //depot/projects/fadvise/sys/arm/s3c2xx0/s3c24x0reg.h#2 integrate .. //depot/projects/fadvise/sys/arm/sa11x0/assabet_machdep.c#3 integrate .. //depot/projects/fadvise/sys/arm/sa11x0/sa11x0.c#2 integrate .. //depot/projects/fadvise/sys/arm/sa11x0/sa11x0_gpioreg.h#2 integrate .. //depot/projects/fadvise/sys/arm/sa11x0/sa11x0_io_asm.S#2 integrate .. //depot/projects/fadvise/sys/arm/sa11x0/sa11x0_irq.S#2 integrate .. //depot/projects/fadvise/sys/arm/sa11x0/sa11x0_ost.c#3 integrate .. //depot/projects/fadvise/sys/arm/sa11x0/sa11x0_ostreg.h#2 integrate .. //depot/projects/fadvise/sys/arm/sa11x0/sa11x0_var.h#2 integrate .. //depot/projects/fadvise/sys/arm/sa11x0/uart_dev_sa1110.c#2 integrate .. //depot/projects/fadvise/sys/arm/xscale/i80321/ep80219_machdep.c#3 integrate .. //depot/projects/fadvise/sys/arm/xscale/i80321/i80321.c#2 integrate .. //depot/projects/fadvise/sys/arm/xscale/i80321/i80321_aau.c#2 integrate .. //depot/projects/fadvise/sys/arm/xscale/i80321/i80321_dma.c#2 integrate .. //depot/projects/fadvise/sys/arm/xscale/i80321/i80321_intr.h#2 integrate .. //depot/projects/fadvise/sys/arm/xscale/i80321/i80321_pci.c#3 integrate .. //depot/projects/fadvise/sys/arm/xscale/i80321/i80321_space.c#2 integrate .. //depot/projects/fadvise/sys/arm/xscale/i80321/i80321_timer.c#2 integrate .. //depot/projects/fadvise/sys/arm/xscale/i80321/i80321reg.h#2 integrate .. //depot/projects/fadvise/sys/arm/xscale/i80321/iq31244_7seg.c#3 integrate .. //depot/projects/fadvise/sys/arm/xscale/i80321/iq31244_machdep.c#3 integrate .. //depot/projects/fadvise/sys/arm/xscale/i80321/iq80321.c#3 integrate .. //depot/projects/fadvise/sys/arm/xscale/i80321/obio.c#2 integrate .. //depot/projects/fadvise/sys/arm/xscale/i8134x/crb_machdep.c#3 integrate .. //depot/projects/fadvise/sys/arm/xscale/i8134x/i81342.c#3 integrate .. //depot/projects/fadvise/sys/arm/xscale/i8134x/i81342_mcu.c#2 integrate .. //depot/projects/fadvise/sys/arm/xscale/i8134x/i81342_pci.c#3 integrate .. //depot/projects/fadvise/sys/arm/xscale/i8134x/i81342_space.c#2 integrate .. //depot/projects/fadvise/sys/arm/xscale/i8134x/i81342reg.h#2 integrate .. //depot/projects/fadvise/sys/arm/xscale/i8134x/iq81342_7seg.c#3 integrate .. //depot/projects/fadvise/sys/arm/xscale/i8134x/obio.c#2 integrate .. //depot/projects/fadvise/sys/arm/xscale/i8134x/uart_cpu_i81342.c#2 integrate .. //depot/projects/fadvise/sys/arm/xscale/ixp425/avila_ata.c#3 integrate .. //depot/projects/fadvise/sys/arm/xscale/ixp425/avila_gpio.c#2 integrate .. //depot/projects/fadvise/sys/arm/xscale/ixp425/avila_machdep.c#3 integrate .. //depot/projects/fadvise/sys/arm/xscale/ixp425/cambria_exp_space.c#2 integrate .. //depot/projects/fadvise/sys/arm/xscale/ixp425/if_npe.c#3 integrate .. //depot/projects/fadvise/sys/arm/xscale/ixp425/if_npereg.h#2 integrate .. //depot/projects/fadvise/sys/arm/xscale/ixp425/ixp425.c#3 integrate .. //depot/projects/fadvise/sys/arm/xscale/ixp425/ixp425_iic.c#2 integrate .. //depot/projects/fadvise/sys/arm/xscale/ixp425/ixp425_npe.c#2 integrate .. //depot/projects/fadvise/sys/arm/xscale/ixp425/ixp425_npereg.h#2 integrate .. //depot/projects/fadvise/sys/arm/xscale/ixp425/ixp425_pci.c#4 integrate .. //depot/projects/fadvise/sys/arm/xscale/ixp425/ixp425_pci_space.c#2 integrate .. //depot/projects/fadvise/sys/arm/xscale/ixp425/ixp425_qmgr.c#2 integrate .. //depot/projects/fadvise/sys/arm/xscale/ixp425/ixp425_qmgr.h#2 integrate .. //depot/projects/fadvise/sys/arm/xscale/ixp425/ixp425reg.h#2 integrate .. //depot/projects/fadvise/sys/arm/xscale/pxa/if_smc_smi.c#2 integrate .. //depot/projects/fadvise/sys/arm/xscale/pxa/pxa_machdep.c#3 integrate .. //depot/projects/fadvise/sys/arm/xscale/pxa/pxareg.h#2 integrate .. //depot/projects/fadvise/sys/arm/xscale/std.xscale#2 integrate .. //depot/projects/fadvise/sys/boot/arm/at91/boot0spi/main.c#2 integrate .. //depot/projects/fadvise/sys/boot/arm/at91/libat91/Makefile#2 integrate .. //depot/projects/fadvise/sys/boot/arm/at91/linker.cfg#2 integrate .. //depot/projects/fadvise/sys/boot/common/load_elf.c#2 integrate .. //depot/projects/fadvise/sys/boot/common/load_elf_obj.c#2 integrate .. //depot/projects/fadvise/sys/boot/userboot/libstand/Makefile#3 integrate .. //depot/projects/fadvise/sys/boot/zfs/zfsimpl.c#5 integrate .. //depot/projects/fadvise/sys/cam/ata/ata_all.c#3 integrate .. //depot/projects/fadvise/sys/cam/ata/ata_da.c#6 integrate .. //depot/projects/fadvise/sys/cam/ata/ata_xpt.c#4 integrate .. //depot/projects/fadvise/sys/cam/cam.h#2 integrate .. //depot/projects/fadvise/sys/cam/cam_periph.c#5 integrate .. //depot/projects/fadvise/sys/cam/cam_periph.h#3 integrate .. //depot/projects/fadvise/sys/cam/cam_xpt.c#5 integrate .. //depot/projects/fadvise/sys/cam/cam_xpt_periph.h#2 integrate .. //depot/projects/fadvise/sys/cam/ctl/ctl.c#3 integrate .. //depot/projects/fadvise/sys/cam/ctl/ctl_backend.c#3 integrate .. //depot/projects/fadvise/sys/cam/ctl/ctl_frontend_cam_sim.c#2 integrate .. //depot/projects/fadvise/sys/cam/ctl/ctl_frontend_internal.c#3 integrate .. //depot/projects/fadvise/sys/cam/ctl/scsi_ctl.c#3 integrate .. //depot/projects/fadvise/sys/cam/scsi/scsi_all.c#4 integrate .. //depot/projects/fadvise/sys/cam/scsi/scsi_all.h#5 integrate .. //depot/projects/fadvise/sys/cam/scsi/scsi_cd.c#6 integrate .. //depot/projects/fadvise/sys/cam/scsi/scsi_ch.c#4 integrate .. //depot/projects/fadvise/sys/cam/scsi/scsi_da.c#6 integrate .. //depot/projects/fadvise/sys/cam/scsi/scsi_da.h#3 integrate .. //depot/projects/fadvise/sys/cam/scsi/scsi_enc.c#2 integrate .. //depot/projects/fadvise/sys/cam/scsi/scsi_pass.c#3 integrate .. //depot/projects/fadvise/sys/cam/scsi/scsi_xpt.c#5 integrate .. //depot/projects/fadvise/sys/cddl/boot/zfs/zfsimpl.h#3 integrate .. //depot/projects/fadvise/sys/cddl/contrib/opensolaris/common/nvpair/fnvpair.c#1 branch .. //depot/projects/fadvise/sys/cddl/contrib/opensolaris/common/zfs/zfeature_common.c#1 branch .. //depot/projects/fadvise/sys/cddl/contrib/opensolaris/common/zfs/zfeature_common.h#1 branch .. //depot/projects/fadvise/sys/cddl/contrib/opensolaris/common/zfs/zpool_prop.c#4 integrate .. //depot/projects/fadvise/sys/cddl/contrib/opensolaris/uts/common/Makefile.files#2 integrate .. //depot/projects/fadvise/sys/cddl/contrib/opensolaris/uts/common/dtrace/dtrace.c#4 integrate .. //depot/projects/fadvise/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/arc.c#4 integrate .. //depot/projects/fadvise/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/bptree.c#1 branch .. //depot/projects/fadvise/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dbuf.c#4 integrate .. //depot/projects/fadvise/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/ddt.c#2 integrate .. //depot/projects/fadvise/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu.c#3 integrate .. //depot/projects/fadvise/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_send.c#4 integrate .. //depot/projects/fadvise/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_traverse.c#2 integrate .. //depot/projects/fadvise/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_tx.c#3 integrate .. //depot/projects/fadvise/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dnode.c#3 integrate .. //depot/projects/fadvise/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dnode_sync.c#2 integrate .. //depot/projects/fadvise/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_dataset.c#5 integrate .. //depot/projects/fadvise/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_deleg.c#3 integrate .. //depot/projects/fadvise/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_pool.c#3 integrate .. //depot/projects/fadvise/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_scan.c#3 integrate .. //depot/projects/fadvise/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sa.c#3 integrate .. //depot/projects/fadvise/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/spa.c#5 integrate .. //depot/projects/fadvise/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/spa_config.c#3 integrate .. //depot/projects/fadvise/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/spa_misc.c#3 integrate .. //depot/projects/fadvise/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/bptree.h#1 branch .. //depot/projects/fadvise/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/dmu.h#4 integrate .. //depot/projects/fadvise/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/dmu_traverse.h#2 integrate .. //depot/projects/fadvise/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/dsl_dataset.h#5 integrate .. //depot/projects/fadvise/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/dsl_pool.h#2 integrate .. //depot/projects/fadvise/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/dsl_scan.h#2 integrate .. //depot/projects/fadvise/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/spa.h#3 integrate .. //depot/projects/fadvise/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/spa_impl.h#3 integrate .. //depot/projects/fadvise/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/vdev.h#3 integrate .. //depot/projects/fadvise/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/vdev_impl.h#4 integrate .. //depot/projects/fadvise/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zap.h#2 integrate .. //depot/projects/fadvise/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zfeature.h#1 branch .. //depot/projects/fadvise/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zio.h#2 integrate .. //depot/projects/fadvise/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zio_impl.h#2 integrate .. //depot/projects/fadvise/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev.c#5 integrate .. //depot/projects/fadvise/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_label.c#2 integrate .. //depot/projects/fadvise/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zap.c#2 integrate .. //depot/projects/fadvise/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zap_micro.c#3 integrate .. //depot/projects/fadvise/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfeature.c#1 branch .. //depot/projects/fadvise/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_ioctl.c#6 integrate .. //depot/projects/fadvise/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vfsops.c#4 integrate .. //depot/projects/fadvise/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zio.c#3 integrate .. //depot/projects/fadvise/sys/cddl/contrib/opensolaris/uts/common/sys/dtrace.h#3 integrate .. //depot/projects/fadvise/sys/cddl/contrib/opensolaris/uts/common/sys/fs/zfs.h#4 integrate .. //depot/projects/fadvise/sys/cddl/contrib/opensolaris/uts/common/sys/nvpair.h#2 integrate .. //depot/projects/fadvise/sys/cddl/dev/dtrace/amd64/dis_tables.c#2 integrate .. //depot/projects/fadvise/sys/cddl/dev/dtrace/i386/dis_tables.c#2 integrate .. //depot/projects/fadvise/sys/compat/linux/linux_file.c#7 integrate .. //depot/projects/fadvise/sys/conf/NOTES#7 integrate .. //depot/projects/fadvise/sys/conf/files#6 integrate .. //depot/projects/fadvise/sys/conf/files.amd64#6 integrate .. //depot/projects/fadvise/sys/conf/files.arm#4 integrate .. //depot/projects/fadvise/sys/conf/files.i386#5 integrate .. //depot/projects/fadvise/sys/conf/files.ia64#3 integrate .. //depot/projects/fadvise/sys/conf/files.mips#4 integrate .. //depot/projects/fadvise/sys/conf/files.powerpc#5 integrate .. //depot/projects/fadvise/sys/conf/files.sparc64#4 integrate .. //depot/projects/fadvise/sys/conf/kern.post.mk#4 integrate .. //depot/projects/fadvise/sys/conf/kmod.mk#5 integrate .. //depot/projects/fadvise/sys/conf/options#6 integrate .. //depot/projects/fadvise/sys/conf/options.arm#3 integrate .. //depot/projects/fadvise/sys/contrib/dev/acpica/changes.txt#5 integrate .. //depot/projects/fadvise/sys/contrib/dev/acpica/common/ahpredef.c#1 branch .. //depot/projects/fadvise/sys/contrib/dev/acpica/common/dmextern.c#4 integrate .. //depot/projects/fadvise/sys/contrib/dev/acpica/common/dmrestag.c#4 integrate .. //depot/projects/fadvise/sys/contrib/dev/acpica/compiler/aslcompile.c#5 integrate .. //depot/projects/fadvise/sys/contrib/dev/acpica/compiler/aslerror.c#5 integrate .. //depot/projects/fadvise/sys/contrib/dev/acpica/compiler/aslfiles.c#5 integrate .. //depot/projects/fadvise/sys/contrib/dev/acpica/compiler/asllookup.c#4 integrate .. //depot/projects/fadvise/sys/contrib/dev/acpica/compiler/aslmain.c#5 integrate .. //depot/projects/fadvise/sys/contrib/dev/acpica/compiler/aslsupport.l#2 integrate .. //depot/projects/fadvise/sys/contrib/dev/acpica/compiler/aslutils.c#5 integrate .. //depot/projects/fadvise/sys/contrib/dev/acpica/compiler/dttemplate.c#3 integrate .. //depot/projects/fadvise/sys/contrib/dev/acpica/components/debugger/dbdisply.c#3 integrate .. //depot/projects/fadvise/sys/contrib/dev/acpica/components/debugger/dbexec.c#2 integrate .. //depot/projects/fadvise/sys/contrib/dev/acpica/components/debugger/dbutils.c#3 integrate .. //depot/projects/fadvise/sys/contrib/dev/acpica/components/disassembler/dmopcode.c#2 integrate .. //depot/projects/fadvise/sys/contrib/dev/acpica/components/disassembler/dmwalk.c#2 integrate .. //depot/projects/fadvise/sys/contrib/dev/acpica/components/dispatcher/dsfield.c#3 integrate .. //depot/projects/fadvise/sys/contrib/dev/acpica/components/dispatcher/dsopcode.c#2 integrate .. //depot/projects/fadvise/sys/contrib/dev/acpica/components/events/evgpe.c#2 integrate .. //depot/projects/fadvise/sys/contrib/dev/acpica/components/events/evgpeutil.c#2 integrate .. //depot/projects/fadvise/sys/contrib/dev/acpica/components/events/evxfgpe.c#2 integrate .. //depot/projects/fadvise/sys/contrib/dev/acpica/components/executer/exconfig.c#2 integrate .. //depot/projects/fadvise/sys/contrib/dev/acpica/components/utilities/utmisc.c#3 integrate .. //depot/projects/fadvise/sys/contrib/dev/acpica/include/acdebug.h#4 integrate .. //depot/projects/fadvise/sys/contrib/dev/acpica/include/acdisasm.h#4 integrate .. //depot/projects/fadvise/sys/contrib/dev/acpica/include/acglobal.h#5 integrate .. //depot/projects/fadvise/sys/contrib/dev/acpica/include/aclocal.h#5 integrate .. //depot/projects/fadvise/sys/contrib/dev/acpica/include/acpixf.h#5 integrate .. //depot/projects/fadvise/sys/contrib/dev/acpica/include/acpredef.h#4 integrate .. //depot/projects/fadvise/sys/contrib/dev/acpica/include/acutils.h#5 integrate .. //depot/projects/fadvise/sys/contrib/dev/iwn/iwlwifi-6000g2a-17.168.5.3.fw.uu#1 branch .. //depot/projects/fadvise/sys/contrib/dev/iwn/iwlwifi-6000g2b-18.168.6.1.fw.uu#1 branch .. //depot/projects/fadvise/sys/contrib/rdma/krping/krping.c#2 integrate .. //depot/projects/fadvise/sys/contrib/rdma/krping/krping.h#2 integrate .. //depot/projects/fadvise/sys/contrib/rdma/krping/krping_dev.c#2 integrate .. //depot/projects/fadvise/sys/contrib/rdma/rdma_addr.c#2 integrate .. //depot/projects/fadvise/sys/contrib/rdma/rdma_cache.c#2 integrate .. //depot/projects/fadvise/sys/dev/aac/aac_disk.c#2 integrate .. //depot/projects/fadvise/sys/dev/acpi_support/acpi_asus_wmi.c#1 branch .. //depot/projects/fadvise/sys/dev/acpi_support/acpi_ibm.c#2 integrate .. //depot/projects/fadvise/sys/dev/acpica/acpi_cpu.c#4 integrate .. //depot/projects/fadvise/sys/dev/acpica/acpi_powerres.c#3 integrate .. //depot/projects/fadvise/sys/dev/acpica/acpi_video.c#3 integrate .. //depot/projects/fadvise/sys/dev/acpica/acpivar.h#4 integrate .. //depot/projects/fadvise/sys/dev/adb/adb_kbd.c#3 integrate .. //depot/projects/fadvise/sys/dev/agp/agp.c#3 integrate .. //depot/projects/fadvise/sys/dev/agp/agp_i810.c#3 integrate .. //depot/projects/fadvise/sys/dev/ahci/ahci.c#6 integrate .. //depot/projects/fadvise/sys/dev/aic7xxx/aic79xx.c#2 integrate .. //depot/projects/fadvise/sys/dev/aic7xxx/aic79xx_osm.c#2 integrate .. //depot/projects/fadvise/sys/dev/aic7xxx/aic7xxx.c#2 integrate .. //depot/projects/fadvise/sys/dev/aic7xxx/aic7xxx_osm.c#2 integrate .. //depot/projects/fadvise/sys/dev/ata/ata-all.c#5 integrate .. //depot/projects/fadvise/sys/dev/ata/chipsets/ata-ite.c#4 integrate .. //depot/projects/fadvise/sys/dev/ata/chipsets/ata-via.c#4 integrate .. //depot/projects/fadvise/sys/dev/ath/ah_osdep.c#4 integrate .. //depot/projects/fadvise/sys/dev/ath/ah_osdep.h#3 integrate .. //depot/projects/fadvise/sys/dev/ath/ath_dfs/null/dfs_null.c#4 integrate .. //depot/projects/fadvise/sys/dev/ath/ath_hal/ah.c#5 integrate .. //depot/projects/fadvise/sys/dev/ath/ath_hal/ah.h#6 integrate .. //depot/projects/fadvise/sys/dev/ath/ath_hal/ah_debug.h#2 integrate .. //depot/projects/fadvise/sys/dev/ath/ath_hal/ah_desc.h#4 integrate .. //depot/projects/fadvise/sys/dev/ath/ath_hal/ah_internal.h#6 integrate .. //depot/projects/fadvise/sys/dev/ath/ath_hal/ar5210/ar5210.h#3 integrate .. //depot/projects/fadvise/sys/dev/ath/ath_hal/ar5210/ar5210_recv.c#2 integrate .. //depot/projects/fadvise/sys/dev/ath/ath_hal/ar5211/ar5211.h#3 integrate .. //depot/projects/fadvise/sys/dev/ath/ath_hal/ar5211/ar5211_recv.c#2 integrate .. //depot/projects/fadvise/sys/dev/ath/ath_hal/ar5212/ar5212.h#5 integrate .. //depot/projects/fadvise/sys/dev/ath/ath_hal/ar5212/ar5212_recv.c#2 integrate .. //depot/projects/fadvise/sys/dev/ath/ath_hal/ar5416/ar5416.h#6 integrate .. //depot/projects/fadvise/sys/dev/ath/ath_hal/ar5416/ar5416_btcoex.c#1 branch .. //depot/projects/fadvise/sys/dev/ath/ath_hal/ar5416/ar5416_btcoex.h#1 branch .. //depot/projects/fadvise/sys/dev/ath/ath_hal/ar5416/ar5416_gpio.c#3 integrate .. //depot/projects/fadvise/sys/dev/ath/ath_hal/ar5416/ar5416_misc.c#7 integrate .. //depot/projects/fadvise/sys/dev/ath/ath_hal/ar5416/ar5416_recv.c#3 integrate .. //depot/projects/fadvise/sys/dev/ath/ath_hal/ar9002/ar9285.h#2 integrate .. //depot/projects/fadvise/sys/dev/ath/ath_hal/ar9002/ar9285_attach.c#3 integrate .. //depot/projects/fadvise/sys/dev/ath/ath_hal/ar9002/ar9285_btcoex.c#1 branch .. //depot/projects/fadvise/sys/dev/ath/ath_hal/ar9002/ar9287_reset.c#2 integrate .. //depot/projects/fadvise/sys/dev/ath/ath_hal/ar9003/ar9300_btcoex.h#1 branch .. //depot/projects/fadvise/sys/dev/ath/ath_rate/amrr/amrr.c#3 integrate .. //depot/projects/fadvise/sys/dev/ath/ath_rate/onoe/onoe.c#3 integrate .. //depot/projects/fadvise/sys/dev/ath/ath_rate/sample/sample.c#4 integrate .. //depot/projects/fadvise/sys/dev/ath/if_ath.c#8 integrate .. //depot/projects/fadvise/sys/dev/ath/if_ath_ahb.c#3 integrate .. //depot/projects/fadvise/sys/dev/ath/if_ath_debug.c#4 integrate .. //depot/projects/fadvise/sys/dev/ath/if_ath_debug.h#4 integrate .. //depot/projects/fadvise/sys/dev/ath/if_ath_led.c#2 integrate .. //depot/projects/fadvise/sys/dev/ath/if_ath_misc.h#4 integrate .. //depot/projects/fadvise/sys/dev/ath/if_ath_rx.c#2 integrate .. //depot/projects/fadvise/sys/dev/ath/if_ath_rx.h#2 integrate .. //depot/projects/fadvise/sys/dev/ath/if_ath_rx_edma.c#1 branch .. //depot/projects/fadvise/sys/dev/ath/if_ath_rx_edma.h#1 branch .. //depot/projects/fadvise/sys/dev/ath/if_ath_sysctl.c#6 integrate .. //depot/projects/fadvise/sys/dev/ath/if_ath_tx.c#6 integrate .. //depot/projects/fadvise/sys/dev/ath/if_ath_tx.h#4 integrate .. //depot/projects/fadvise/sys/dev/ath/if_ath_tx_ht.c#4 integrate .. //depot/projects/fadvise/sys/dev/ath/if_athdfs.h#3 integrate .. //depot/projects/fadvise/sys/dev/ath/if_athioctl.h#6 integrate .. //depot/projects/fadvise/sys/dev/ath/if_athvar.h#6 integrate .. //depot/projects/fadvise/sys/dev/atkbdc/atkbdc_isa.c#3 integrate .. //depot/projects/fadvise/sys/dev/cxgb/common/cxgb_ctl_defs.h#2 integrate .. //depot/projects/fadvise/sys/dev/cxgb/cxgb_adapter.h#4 integrate .. //depot/projects/fadvise/sys/dev/cxgb/cxgb_main.c#4 integrate .. //depot/projects/fadvise/sys/dev/cxgb/cxgb_offload.c#2 delete .. //depot/projects/fadvise/sys/dev/cxgb/cxgb_offload.h#2 integrate .. //depot/projects/fadvise/sys/dev/cxgb/cxgb_osdep.h#2 integrate .. //depot/projects/fadvise/sys/dev/cxgb/cxgb_sge.c#4 integrate .. //depot/projects/fadvise/sys/dev/cxgb/sys/mvec.h#2 integrate .. //depot/projects/fadvise/sys/dev/cxgb/t3cdev.h#2 delete .. //depot/projects/fadvise/sys/dev/cxgb/ulp/iw_cxgb/iw_cxgb.c#2 integrate .. //depot/projects/fadvise/sys/dev/cxgb/ulp/iw_cxgb/iw_cxgb.h#2 integrate .. //depot/projects/fadvise/sys/dev/cxgb/ulp/iw_cxgb/iw_cxgb_cm.c#2 integrate .. //depot/projects/fadvise/sys/dev/cxgb/ulp/iw_cxgb/iw_cxgb_cm.h#2 integrate .. //depot/projects/fadvise/sys/dev/cxgb/ulp/iw_cxgb/iw_cxgb_cq.c#2 integrate .. //depot/projects/fadvise/sys/dev/cxgb/ulp/iw_cxgb/iw_cxgb_dbg.c#2 integrate .. //depot/projects/fadvise/sys/dev/cxgb/ulp/iw_cxgb/iw_cxgb_ev.c#2 integrate .. //depot/projects/fadvise/sys/dev/cxgb/ulp/iw_cxgb/iw_cxgb_hal.c#2 integrate .. //depot/projects/fadvise/sys/dev/cxgb/ulp/iw_cxgb/iw_cxgb_hal.h#2 integrate .. //depot/projects/fadvise/sys/dev/cxgb/ulp/iw_cxgb/iw_cxgb_ib_intfc.h#1 branch .. //depot/projects/fadvise/sys/dev/cxgb/ulp/iw_cxgb/iw_cxgb_mem.c#2 integrate .. //depot/projects/fadvise/sys/dev/cxgb/ulp/iw_cxgb/iw_cxgb_provider.c#2 integrate .. //depot/projects/fadvise/sys/dev/cxgb/ulp/iw_cxgb/iw_cxgb_provider.h#2 integrate .. //depot/projects/fadvise/sys/dev/cxgb/ulp/iw_cxgb/iw_cxgb_qp.c#2 integrate .. //depot/projects/fadvise/sys/dev/cxgb/ulp/iw_cxgb/iw_cxgb_resource.c#2 integrate .. //depot/projects/fadvise/sys/dev/cxgb/ulp/iw_cxgb/iw_cxgb_user.h#2 integrate .. //depot/projects/fadvise/sys/dev/cxgb/ulp/iw_cxgb/iw_cxgb_wr.h#2 integrate .. //depot/projects/fadvise/sys/dev/cxgb/ulp/toecore/cxgb_toedev.h#2 delete .. //depot/projects/fadvise/sys/dev/cxgb/ulp/toecore/toedev.c#2 delete .. //depot/projects/fadvise/sys/dev/cxgb/ulp/tom/cxgb_cpl_io.c#2 integrate .. //depot/projects/fadvise/sys/dev/cxgb/ulp/tom/cxgb_cpl_socket.c#2 delete .. //depot/projects/fadvise/sys/dev/cxgb/ulp/tom/cxgb_ddp.c#2 delete .. //depot/projects/fadvise/sys/dev/cxgb/ulp/tom/cxgb_defs.h#2 delete .. //depot/projects/fadvise/sys/dev/cxgb/ulp/tom/cxgb_l2t.c#2 integrate .. //depot/projects/fadvise/sys/dev/cxgb/ulp/tom/cxgb_l2t.h#2 integrate .. //depot/projects/fadvise/sys/dev/cxgb/ulp/tom/cxgb_listen.c#2 integrate .. //depot/projects/fadvise/sys/dev/cxgb/ulp/tom/cxgb_t3_ddp.h#2 delete .. //depot/projects/fadvise/sys/dev/cxgb/ulp/tom/cxgb_tcp.h#2 delete .. //depot/projects/fadvise/sys/dev/cxgb/ulp/tom/cxgb_tcp_offload.c#2 delete .. //depot/projects/fadvise/sys/dev/cxgb/ulp/tom/cxgb_tcp_offload.h#2 delete .. //depot/projects/fadvise/sys/dev/cxgb/ulp/tom/cxgb_toepcb.h#2 integrate .. //depot/projects/fadvise/sys/dev/cxgb/ulp/tom/cxgb_tom.c#2 integrate .. //depot/projects/fadvise/sys/dev/cxgb/ulp/tom/cxgb_tom.h#2 integrate .. //depot/projects/fadvise/sys/dev/cxgb/ulp/tom/cxgb_tom_sysctl.c#3 delete .. //depot/projects/fadvise/sys/dev/cxgbe/adapter.h#5 integrate .. //depot/projects/fadvise/sys/dev/cxgbe/common/common.h#3 integrate .. //depot/projects/fadvise/sys/dev/cxgbe/common/t4_hw.c#4 integrate .. //depot/projects/fadvise/sys/dev/cxgbe/common/t4_msg.h#2 integrate .. //depot/projects/fadvise/sys/dev/cxgbe/firmware/t4fw_cfg.txt#2 integrate .. //depot/projects/fadvise/sys/dev/cxgbe/firmware/t4fw_cfg_uwire.txt#2 integrate .. //depot/projects/fadvise/sys/dev/cxgbe/firmware/t4fw_interface.h#2 integrate .. //depot/projects/fadvise/sys/dev/cxgbe/offload.h#3 integrate .. //depot/projects/fadvise/sys/dev/cxgbe/osdep.h#3 integrate .. //depot/projects/fadvise/sys/dev/cxgbe/t4_l2t.c#4 integrate .. //depot/projects/fadvise/sys/dev/cxgbe/t4_l2t.h#4 integrate .. //depot/projects/fadvise/sys/dev/cxgbe/t4_main.c#6 integrate .. //depot/projects/fadvise/sys/dev/cxgbe/t4_sge.c#4 integrate .. //depot/projects/fadvise/sys/dev/cxgbe/tom/t4_connect.c#1 branch .. //depot/projects/fadvise/sys/dev/cxgbe/tom/t4_cpl_io.c#1 branch .. //depot/projects/fadvise/sys/dev/cxgbe/tom/t4_listen.c#1 branch .. //depot/projects/fadvise/sys/dev/cxgbe/tom/t4_tom.c#1 branch .. //depot/projects/fadvise/sys/dev/cxgbe/tom/t4_tom.h#1 branch .. //depot/projects/fadvise/sys/dev/cxgbe/tom/t4_tom_l2t.c#1 branch .. //depot/projects/fadvise/sys/dev/cxgbe/tom/t4_tom_l2t.h#1 branch .. //depot/projects/fadvise/sys/dev/drm2/drmP.h#2 integrate .. //depot/projects/fadvise/sys/dev/drm2/drm_pciids.h#2 integrate .. //depot/projects/fadvise/sys/dev/drm2/i915/i915_gem.c#2 integrate .. //depot/projects/fadvise/sys/dev/e1000/e1000_82541.c#3 integrate .. //depot/projects/fadvise/sys/dev/e1000/e1000_82543.c#3 integrate .. //depot/projects/fadvise/sys/dev/e1000/e1000_82571.c#3 integrate .. //depot/projects/fadvise/sys/dev/e1000/e1000_82575.c#4 integrate .. //depot/projects/fadvise/sys/dev/e1000/e1000_api.c#3 integrate .. //depot/projects/fadvise/sys/dev/e1000/e1000_api.h#3 integrate .. //depot/projects/fadvise/sys/dev/e1000/e1000_defines.h#3 integrate .. //depot/projects/fadvise/sys/dev/e1000/e1000_hw.h#3 integrate .. //depot/projects/fadvise/sys/dev/e1000/e1000_i210.c#1 branch .. //depot/projects/fadvise/sys/dev/e1000/e1000_i210.h#1 branch .. //depot/projects/fadvise/sys/dev/e1000/e1000_ich8lan.c#3 integrate .. //depot/projects/fadvise/sys/dev/e1000/e1000_mac.c#3 integrate .. //depot/projects/fadvise/sys/dev/e1000/e1000_mac.h#2 integrate .. //depot/projects/fadvise/sys/dev/e1000/e1000_manage.c#2 integrate .. //depot/projects/fadvise/sys/dev/e1000/e1000_manage.h#2 integrate .. //depot/projects/fadvise/sys/dev/e1000/e1000_phy.c#3 integrate .. //depot/projects/fadvise/sys/dev/e1000/e1000_phy.h#3 integrate .. //depot/projects/fadvise/sys/dev/e1000/e1000_regs.h#3 integrate .. //depot/projects/fadvise/sys/dev/e1000/if_em.c#6 integrate .. //depot/projects/fadvise/sys/dev/e1000/if_igb.c#6 integrate .. //depot/projects/fadvise/sys/dev/fb/fbreg.h#2 integrate .. //depot/projects/fadvise/sys/dev/fdt/fdtbus.c#5 integrate .. //depot/projects/fadvise/sys/dev/fdt/simplebus.c#3 integrate .. //depot/projects/fadvise/sys/dev/filemon/filemon_wrapper.c#2 integrate .. //depot/projects/fadvise/sys/dev/firewire/sbp_targ.c#4 integrate .. //depot/projects/fadvise/sys/dev/flash/at45d.c#3 integrate .. //depot/projects/fadvise/sys/dev/hptrr/hptrr_osm_bsd.c#3 integrate .. //depot/projects/fadvise/sys/dev/hwpmc/hwpmc_arm.c#3 integrate .. //depot/projects/fadvise/sys/dev/hwpmc/hwpmc_intel.c#3 integrate .. //depot/projects/fadvise/sys/dev/isp/isp.c#4 integrate .. //depot/projects/fadvise/sys/dev/isp/isp_freebsd.c#5 integrate .. //depot/projects/fadvise/sys/dev/isp/isp_freebsd.h#6 integrate .. //depot/projects/fadvise/sys/dev/isp/isp_pci.c#4 integrate .. //depot/projects/fadvise/sys/dev/isp/ispmbox.h#2 integrate .. //depot/projects/fadvise/sys/dev/isp/ispreg.h#2 integrate .. //depot/projects/fadvise/sys/dev/isp/ispvar.h#3 integrate .. //depot/projects/fadvise/sys/dev/ispfw/asm_2400.h#2 integrate .. //depot/projects/fadvise/sys/dev/ispfw/asm_2500.h#2 integrate .. //depot/projects/fadvise/sys/dev/iwn/if_iwn.c#7 integrate .. //depot/projects/fadvise/sys/dev/ixgbe/ixgbe.c#5 integrate .. //depot/projects/fadvise/sys/dev/ixgbe/ixgbe_82598.c#3 integrate .. //depot/projects/fadvise/sys/dev/ixgbe/ixgbe_82598.h#2 integrate .. //depot/projects/fadvise/sys/dev/ixgbe/ixgbe_82599.c#3 integrate .. //depot/projects/fadvise/sys/dev/ixgbe/ixgbe_api.c#3 integrate .. //depot/projects/fadvise/sys/dev/ixgbe/ixgbe_api.h#3 integrate .. //depot/projects/fadvise/sys/dev/ixgbe/ixgbe_common.c#3 integrate .. //depot/projects/fadvise/sys/dev/ixgbe/ixgbe_common.h#3 integrate .. //depot/projects/fadvise/sys/dev/ixgbe/ixgbe_osdep.h#4 integrate .. //depot/projects/fadvise/sys/dev/ixgbe/ixgbe_phy.c#3 integrate .. //depot/projects/fadvise/sys/dev/ixgbe/ixgbe_type.h#3 integrate .. //depot/projects/fadvise/sys/dev/ixgbe/ixgbe_vf.c#3 integrate .. //depot/projects/fadvise/sys/dev/ixgbe/ixgbe_x540.c#2 integrate .. //depot/projects/fadvise/sys/dev/ixgbe/ixv.c#5 integrate .. //depot/projects/fadvise/sys/dev/md/md.c#4 integrate .. //depot/projects/fadvise/sys/dev/mfi/mfi.c#5 integrate .. //depot/projects/fadvise/sys/dev/mfi/mfi_tbolt.c#2 integrate .. //depot/projects/fadvise/sys/dev/mps/mpi/mpi2.h#3 integrate .. //depot/projects/fadvise/sys/dev/mps/mpi/mpi2_cnfg.h#3 integrate .. //depot/projects/fadvise/sys/dev/mps/mpi/mpi2_hbd.h#3 integrate .. //depot/projects/fadvise/sys/dev/mps/mpi/mpi2_history.txt#3 integrate .. //depot/projects/fadvise/sys/dev/mps/mpi/mpi2_init.h#3 integrate .. //depot/projects/fadvise/sys/dev/mps/mpi/mpi2_ioc.h#3 integrate .. //depot/projects/fadvise/sys/dev/mps/mpi/mpi2_ra.h#3 integrate .. //depot/projects/fadvise/sys/dev/mps/mpi/mpi2_raid.h#3 integrate .. //depot/projects/fadvise/sys/dev/mps/mpi/mpi2_sas.h#3 integrate .. //depot/projects/fadvise/sys/dev/mps/mpi/mpi2_targ.h#3 integrate .. //depot/projects/fadvise/sys/dev/mps/mpi/mpi2_tool.h#3 integrate .. //depot/projects/fadvise/sys/dev/mps/mpi/mpi2_type.h#3 integrate .. //depot/projects/fadvise/sys/dev/mps/mps.c#3 integrate .. //depot/projects/fadvise/sys/dev/mps/mps_config.c#2 integrate .. //depot/projects/fadvise/sys/dev/mps/mps_ioctl.h#3 integrate .. //depot/projects/fadvise/sys/dev/mps/mps_mapping.c#2 integrate .. //depot/projects/fadvise/sys/dev/mps/mps_mapping.h#2 integrate .. //depot/projects/fadvise/sys/dev/mps/mps_sas.c#5 integrate .. //depot/projects/fadvise/sys/dev/mps/mps_sas.h#2 integrate .. //depot/projects/fadvise/sys/dev/mps/mps_sas_lsi.c#2 integrate .. //depot/projects/fadvise/sys/dev/mps/mps_user.c#3 integrate .. //depot/projects/fadvise/sys/dev/mps/mpsvar.h#3 integrate .. //depot/projects/fadvise/sys/dev/mpt/mpt_cam.c#3 integrate .. //depot/projects/fadvise/sys/dev/mvs/mvs.c#4 integrate .. //depot/projects/fadvise/sys/dev/mvs/mvs.h#3 integrate .. //depot/projects/fadvise/sys/dev/mvs/mvs_soc.c#4 integrate .. //depot/projects/fadvise/sys/dev/nand/nand.c#2 integrate .. //depot/projects/fadvise/sys/dev/nand/nandsim.c#2 integrate .. //depot/projects/fadvise/sys/dev/nand/nfc_fsl.c#1 branch .. //depot/projects/fadvise/sys/dev/nand/nfc_fsl.h#1 branch .. //depot/projects/fadvise/sys/dev/pccard/pccard.c#3 integrate .. //depot/projects/fadvise/sys/dev/pccard/pccardvarp.h#2 integrate .. //depot/projects/fadvise/sys/dev/pci/pci_pci.c#3 integrate .. //depot/projects/fadvise/sys/dev/puc/puc_cfg.h#2 integrate .. //depot/projects/fadvise/sys/dev/puc/pucdata.c#6 integrate .. //depot/projects/fadvise/sys/dev/re/if_re.c#7 integrate .. //depot/projects/fadvise/sys/dev/siis/siis.c#5 integrate .. //depot/projects/fadvise/sys/dev/sio/sio.c#3 integrate .. //depot/projects/fadvise/sys/dev/sound/pci/hda/hdaa.c#3 integrate .. //depot/projects/fadvise/sys/dev/sound/pci/hda/hdaa_patches.c#2 integrate .. //depot/projects/fadvise/sys/dev/sound/pci/hdspe.c#2 integrate .. //depot/projects/fadvise/sys/dev/sym/sym_conf.h#3 integrate .. //depot/projects/fadvise/sys/dev/sym/sym_hipd.c#3 integrate .. //depot/projects/fadvise/sys/dev/twa/tw_osl_cam.c#2 integrate .. //depot/projects/fadvise/sys/dev/usb/controller/ehci_pci.c#4 integrate .. //depot/projects/fadvise/sys/dev/usb/controller/ohci_pci.c#3 integrate .. //depot/projects/fadvise/sys/dev/usb/controller/xhci_pci.c#3 integrate .. //depot/projects/fadvise/sys/dev/usb/quirk/usb_quirk.c#4 integrate .. //depot/projects/fadvise/sys/dev/usb/serial/u3g.c#5 integrate .. //depot/projects/fadvise/sys/dev/usb/serial/uftdi.c#4 integrate .. //depot/projects/fadvise/sys/dev/usb/serial/uftdi_reg.h#2 integrate .. //depot/projects/fadvise/sys/dev/usb/usb_pf.c#2 integrate .. //depot/projects/fadvise/sys/dev/usb/usbdevs#6 integrate .. //depot/projects/fadvise/sys/dev/usb/wlan/if_run.c#7 integrate .. //depot/projects/fadvise/sys/dev/viawd/viawd.c#2 integrate .. //depot/projects/fadvise/sys/dev/virtio/balloon/virtio_balloon.c#3 integrate .. //depot/projects/fadvise/sys/dev/virtio/balloon/virtio_balloon.h#2 integrate .. //depot/projects/fadvise/sys/dev/virtio/block/virtio_blk.c#3 integrate .. //depot/projects/fadvise/sys/dev/virtio/block/virtio_blk.h#2 integrate .. //depot/projects/fadvise/sys/dev/virtio/network/if_vtnet.c#3 integrate .. //depot/projects/fadvise/sys/dev/virtio/network/virtio_net.h#2 integrate .. //depot/projects/fadvise/sys/dev/virtio/pci/virtio_pci.c#3 integrate .. //depot/projects/fadvise/sys/dev/virtio/pci/virtio_pci.h#2 integrate .. //depot/projects/fadvise/sys/dev/virtio/virtio.c#2 integrate .. //depot/projects/fadvise/sys/dev/virtio/virtio.h#2 integrate .. //depot/projects/fadvise/sys/dev/virtio/virtio_ring.h#3 integrate .. //depot/projects/fadvise/sys/dev/virtio/virtqueue.c#3 integrate .. //depot/projects/fadvise/sys/dev/virtio/virtqueue.h#3 integrate .. //depot/projects/fadvise/sys/dev/xen/balloon/balloon.c#5 integrate .. //depot/projects/fadvise/sys/dev/xen/blkfront/blkfront.c#5 integrate .. //depot/projects/fadvise/sys/fs/devfs/devfs_vnops.c#7 integrate .. //depot/projects/fadvise/sys/fs/ext2fs/ext2_vfsops.c#4 integrate .. //depot/projects/fadvise/sys/fs/nfsclient/nfs_clbio.c#5 integrate .. //depot/projects/fadvise/sys/fs/nfsclient/nfs_clnode.c#4 integrate .. //depot/projects/fadvise/sys/fs/nfsclient/nfs_clvfsops.c#6 integrate .. //depot/projects/fadvise/sys/fs/ntfs/ntfs_subr.c#5 integrate .. //depot/projects/fadvise/sys/fs/ntfs/ntfs_subr.h#3 integrate .. //depot/projects/fadvise/sys/fs/ntfs/ntfs_vfsops.c#4 integrate .. //depot/projects/fadvise/sys/fs/ntfs/ntfs_vnops.c#4 integrate .. //depot/projects/fadvise/sys/geom/bde/g_bde.c#2 integrate .. //depot/projects/fadvise/sys/geom/eli/g_eli.c#5 integrate .. //depot/projects/fadvise/sys/geom/eli/g_eli.h#4 integrate .. //depot/projects/fadvise/sys/geom/eli/g_eli_ctl.c#2 integrate .. //depot/projects/fadvise/sys/geom/eli/g_eli_key.c#2 integrate .. //depot/projects/fadvise/sys/geom/eli/g_eli_key_cache.c#2 integrate .. //depot/projects/fadvise/sys/geom/gate/g_gate.c#3 integrate .. //depot/projects/fadvise/sys/geom/gate/g_gate.h#2 integrate .. //depot/projects/fadvise/sys/geom/geom.h#2 integrate .. //depot/projects/fadvise/sys/geom/geom_aes.c#2 integrate .. //depot/projects/fadvise/sys/geom/geom_dev.c#4 integrate .. //depot/projects/fadvise/sys/geom/geom_disk.c#4 integrate .. //depot/projects/fadvise/sys/geom/geom_disk.h#2 integrate .. //depot/projects/fadvise/sys/geom/geom_map.c#2 integrate .. //depot/projects/fadvise/sys/geom/geom_slice.c#2 integrate .. //depot/projects/fadvise/sys/geom/geom_subr.c#2 integrate .. //depot/projects/fadvise/sys/geom/mirror/g_mirror.c#4 integrate .. //depot/projects/fadvise/sys/geom/mirror/g_mirror.h#3 integrate .. //depot/projects/fadvise/sys/geom/mountver/g_mountver.c#4 integrate .. //depot/projects/fadvise/sys/geom/nop/g_nop.c#3 integrate .. //depot/projects/fadvise/sys/geom/nop/g_nop.h#2 integrate .. //depot/projects/fadvise/sys/geom/part/g_part_gpt.c#4 integrate .. //depot/projects/fadvise/sys/geom/uncompress/g_uncompress.c#2 integrate .. //depot/projects/fadvise/sys/geom/uzip/g_uzip.c#3 integrate .. //depot/projects/fadvise/sys/i386/acpica/acpi_wakecode.S#3 integrate .. //depot/projects/fadvise/sys/i386/acpica/acpi_wakeup.c#3 delete .. //depot/projects/fadvise/sys/i386/conf/GENERIC#8 integrate .. //depot/projects/fadvise/sys/i386/conf/XEN#4 integrate .. //depot/projects/fadvise/sys/i386/i386/elf_machdep.c#2 integrate .. //depot/projects/fadvise/sys/i386/i386/machdep.c#5 integrate .. //depot/projects/fadvise/sys/i386/i386/mem.c#2 integrate .. //depot/projects/fadvise/sys/i386/i386/mp_machdep.c#5 integrate .. //depot/projects/fadvise/sys/i386/i386/pmap.c#6 integrate .. //depot/projects/fadvise/sys/i386/i386/swtch.s#3 integrate .. //depot/projects/fadvise/sys/i386/i386/vm86.c#3 integrate .. //depot/projects/fadvise/sys/i386/include/cpufunc.h#2 integrate .. //depot/projects/fadvise/sys/i386/include/elf.h#2 integrate .. //depot/projects/fadvise/sys/i386/include/pcb.h#3 integrate .. //depot/projects/fadvise/sys/i386/include/pmap.h#3 integrate .. //depot/projects/fadvise/sys/i386/include/smp.h#3 integrate .. //depot/projects/fadvise/sys/i386/include/vdso.h#1 branch .. //depot/projects/fadvise/sys/i386/include/vmparam.h#3 integrate .. //depot/projects/fadvise/sys/i386/isa/npx.c#3 integrate .. //depot/projects/fadvise/sys/ia64/ia64/busdma_machdep.c#4 integrate .. //depot/projects/fadvise/sys/ia64/ia64/machdep.c#4 integrate .. //depot/projects/fadvise/sys/ia64/ia64/mp_machdep.c#2 integrate .. //depot/projects/fadvise/sys/ia64/ia64/physmem.c#1 branch .. //depot/projects/fadvise/sys/ia64/ia64/pmap.c#4 integrate .. //depot/projects/fadvise/sys/ia64/include/_stdint.h#2 integrate .. //depot/projects/fadvise/sys/ia64/include/_types.h#3 integrate .. //depot/projects/fadvise/sys/ia64/include/elf.h#2 integrate .. //depot/projects/fadvise/sys/ia64/include/md_var.h#2 integrate .. //depot/projects/fadvise/sys/ia64/include/param.h#2 integrate .. //depot/projects/fadvise/sys/ia64/include/pmap.h#2 integrate .. //depot/projects/fadvise/sys/ia64/include/vdso.h#1 branch .. //depot/projects/fadvise/sys/kern/imgact_aout.c#2 integrate .. //depot/projects/fadvise/sys/kern/imgact_elf.c#6 integrate .. //depot/projects/fadvise/sys/kern/imgact_gzip.c#3 integrate .. //depot/projects/fadvise/sys/kern/kern_descrip.c#8 integrate .. //depot/projects/fadvise/sys/kern/kern_event.c#3 integrate .. //depot/projects/fadvise/sys/kern/kern_exec.c#4 integrate .. //depot/projects/fadvise/sys/kern/kern_fork.c#4 integrate .. //depot/projects/fadvise/sys/kern/kern_malloc.c#7 integrate .. //depot/projects/fadvise/sys/kern/kern_sharedpage.c#1 branch .. //depot/projects/fadvise/sys/kern/kern_sig.c#5 integrate .. //depot/projects/fadvise/sys/kern/kern_tc.c#6 integrate .. //depot/projects/fadvise/sys/kern/subr_dummy_vdso_tc.c#1 branch .. //depot/projects/fadvise/sys/kern/subr_firmware.c#4 integrate .. //depot/projects/fadvise/sys/kern/subr_smp.c#5 integrate .. //depot/projects/fadvise/sys/kern/subr_trap.c#3 integrate .. //depot/projects/fadvise/sys/kern/subr_witness.c#7 integrate .. //depot/projects/fadvise/sys/kern/sys_capability.c#4 integrate .. //depot/projects/fadvise/sys/kern/sys_generic.c#5 integrate .. //depot/projects/fadvise/sys/kern/sys_procdesc.c#2 integrate .. //depot/projects/fadvise/sys/kern/sys_process.c#3 integrate .. //depot/projects/fadvise/sys/kern/tty.c#4 integrate .. //depot/projects/fadvise/sys/kern/uipc_socket.c#5 integrate .. //depot/projects/fadvise/sys/kern/uipc_syscalls.c#4 integrate .. //depot/projects/fadvise/sys/kern/uipc_usrreq.c#5 integrate .. //depot/projects/fadvise/sys/kern/vfs_default.c#11 integrate .. //depot/projects/fadvise/sys/kern/vfs_syscalls.c#21 integrate .. //depot/projects/fadvise/sys/kern/vfs_vnops.c#10 integrate .. //depot/projects/fadvise/sys/libkern/iconv.c#5 integrate .. //depot/projects/fadvise/sys/mips/cavium/uart_bus_octeonusart.c#2 integrate .. //depot/projects/fadvise/sys/mips/include/_stdint.h#3 integrate .. //depot/projects/fadvise/sys/mips/include/_types.h#4 integrate .. //depot/projects/fadvise/sys/mips/include/elf.h#4 integrate .. //depot/projects/fadvise/sys/mips/include/pmap.h#3 integrate .. //depot/projects/fadvise/sys/mips/include/vdso.h#1 branch .. //depot/projects/fadvise/sys/mips/mips/pmap.c#5 integrate .. //depot/projects/fadvise/sys/mips/nlm/board.c#3 integrate .. //depot/projects/fadvise/sys/mips/nlm/dev/net/mdio.c#2 integrate .. //depot/projects/fadvise/sys/mips/nlm/hal/mdio.h#2 integrate .. //depot/projects/fadvise/sys/mips/nlm/xlp.h#4 integrate .. //depot/projects/fadvise/sys/mips/nlm/xlp_pci.c#4 integrate .. //depot/projects/fadvise/sys/mips/rmi/rootfs_list.txt#2 integrate .. //depot/projects/fadvise/sys/modules/Makefile#7 integrate .. //depot/projects/fadvise/sys/modules/acpi/Makefile#2 integrate .. //depot/projects/fadvise/sys/modules/acpi/acpi_asus_wmi/Makefile#1 branch .. //depot/projects/fadvise/sys/modules/ath/Makefile#6 integrate .. //depot/projects/fadvise/sys/modules/cxgb/Makefile#2 integrate .. //depot/projects/fadvise/sys/modules/cxgb/cxgb/Makefile#3 integrate .. //depot/projects/fadvise/sys/modules/cxgb/iw_cxgb/Makefile#2 integrate .. //depot/projects/fadvise/sys/modules/cxgb/toecore/Makefile#2 delete .. //depot/projects/fadvise/sys/modules/cxgb/tom/Makefile#2 integrate .. //depot/projects/fadvise/sys/modules/cxgbe/Makefile#3 integrate .. //depot/projects/fadvise/sys/modules/cxgbe/if_cxgbe/Makefile#2 integrate .. //depot/projects/fadvise/sys/modules/cxgbe/tom/Makefile#1 branch .. //depot/projects/fadvise/sys/modules/em/Makefile#2 integrate .. //depot/projects/fadvise/sys/modules/igb/Makefile#2 integrate .. //depot/projects/fadvise/sys/modules/nand/Makefile#1 branch .. //depot/projects/fadvise/sys/modules/rdma/krping/Makefile#2 integrate .. //depot/projects/fadvise/sys/modules/toecore/Makefile#1 branch .. //depot/projects/fadvise/sys/modules/zfs/Makefile#3 integrate .. //depot/projects/fadvise/sys/net/bpf.c#6 integrate .. //depot/projects/fadvise/sys/net/flowtable.c#4 integrate .. //depot/projects/fadvise/sys/net/if.h#6 integrate .. //depot/projects/fadvise/sys/net/if_bridge.c#5 integrate .. //depot/projects/fadvise/sys/net/if_epair.c#3 integrate .. //depot/projects/fadvise/sys/net/if_gif.c#3 integrate .. //depot/projects/fadvise/sys/net/if_lagg.c#5 integrate .. //depot/projects/fadvise/sys/net/if_tap.c#5 integrate .. //depot/projects/fadvise/sys/net/if_var.h#6 integrate .. //depot/projects/fadvise/sys/net/if_vlan.c#5 integrate .. //depot/projects/fadvise/sys/net/route.h#4 integrate .. //depot/projects/fadvise/sys/net80211/_ieee80211.h#2 integrate .. //depot/projects/fadvise/sys/net80211/ieee80211_output.c#5 integrate .. //depot/projects/fadvise/sys/net80211/ieee80211_radiotap.c#4 integrate .. //depot/projects/fadvise/sys/net80211/ieee80211_var.h#5 integrate .. //depot/projects/fadvise/sys/netgraph/netflow/netflow.c#3 integrate .. //depot/projects/fadvise/sys/netgraph/netflow/netflow_v9.c#2 integrate .. //depot/projects/fadvise/sys/netgraph/netflow/ng_netflow.c#3 integrate .. //depot/projects/fadvise/sys/netgraph/netflow/ng_netflow.h#3 integrate .. //depot/projects/fadvise/sys/netinet/icmp_var.h#2 integrate .. //depot/projects/fadvise/sys/netinet/if_ether.c#5 integrate .. //depot/projects/fadvise/sys/netinet/if_ether.h#4 integrate .. //depot/projects/fadvise/sys/netinet/igmp.c#4 integrate .. //depot/projects/fadvise/sys/netinet/in.c#7 integrate .. //depot/projects/fadvise/sys/netinet/in.h#4 integrate .. //depot/projects/fadvise/sys/netinet/in_pcb.c#4 integrate .. //depot/projects/fadvise/sys/netinet/in_pcb.h#4 integrate .. //depot/projects/fadvise/sys/netinet/ip_icmp.c#3 integrate .. //depot/projects/fadvise/sys/netinet/ip_input.c#4 integrate .. //depot/projects/fadvise/sys/netinet/ip_mroute.c#4 integrate .. //depot/projects/fadvise/sys/netinet/ip_mroute.h#2 integrate .. //depot/projects/fadvise/sys/netinet/ip_output.c#3 integrate .. //depot/projects/fadvise/sys/netinet/ipfw/ip_dummynet.c#2 integrate .. //depot/projects/fadvise/sys/netinet/ipfw/ip_fw_log.c#3 integrate .. //depot/projects/fadvise/sys/netinet/ipfw/ip_fw_table.c#4 integrate .. //depot/projects/fadvise/sys/netinet/libalias/libalias.3#3 integrate .. //depot/projects/fadvise/sys/netinet/sctp_asconf.c#4 integrate .. //depot/projects/fadvise/sys/netinet/sctp_asconf.h#4 integrate .. //depot/projects/fadvise/sys/netinet/sctp_bsd_addr.c#5 integrate .. //depot/projects/fadvise/sys/netinet/sctp_bsd_addr.h#4 integrate .. //depot/projects/fadvise/sys/netinet/sctp_indata.c#4 integrate .. //depot/projects/fadvise/sys/netinet/sctp_indata.h#4 integrate .. //depot/projects/fadvise/sys/netinet/sctp_input.c#5 integrate .. //depot/projects/fadvise/sys/netinet/sctp_input.h#4 integrate .. //depot/projects/fadvise/sys/netinet/sctp_os_bsd.h#4 integrate .. //depot/projects/fadvise/sys/netinet/sctp_output.c#7 integrate .. //depot/projects/fadvise/sys/netinet/sctp_output.h#4 integrate .. //depot/projects/fadvise/sys/netinet/sctp_pcb.c#6 integrate .. //depot/projects/fadvise/sys/netinet/sctp_pcb.h#4 integrate .. //depot/projects/fadvise/sys/netinet/sctp_sysctl.c#5 integrate .. //depot/projects/fadvise/sys/netinet/sctp_sysctl.h#5 integrate .. //depot/projects/fadvise/sys/netinet/sctp_usrreq.c#5 integrate .. //depot/projects/fadvise/sys/netinet/sctputil.c#5 integrate .. //depot/projects/fadvise/sys/netinet/sctputil.h#4 integrate .. //depot/projects/fadvise/sys/netinet/tcp_hostcache.c#3 integrate .. //depot/projects/fadvise/sys/netinet/tcp_input.c#7 integrate .. //depot/projects/fadvise/sys/netinet/tcp_offload.c#2 integrate .. //depot/projects/fadvise/sys/netinet/tcp_offload.h#2 integrate .. //depot/projects/fadvise/sys/netinet/tcp_output.c#6 integrate .. //depot/projects/fadvise/sys/netinet/tcp_subr.c#4 integrate .. //depot/projects/fadvise/sys/netinet/tcp_syncache.c#5 integrate .. //depot/projects/fadvise/sys/netinet/tcp_syncache.h#2 integrate .. //depot/projects/fadvise/sys/netinet/tcp_timer.c#4 integrate .. //depot/projects/fadvise/sys/netinet/tcp_usrreq.c#4 integrate .. //depot/projects/fadvise/sys/netinet/tcp_var.h#5 integrate .. //depot/projects/fadvise/sys/netinet/toecore.c#1 branch .. //depot/projects/fadvise/sys/netinet/toecore.h#1 branch .. //depot/projects/fadvise/sys/netinet/toedev.h#2 delete .. //depot/projects/fadvise/sys/netinet/udp_usrreq.c#3 integrate .. //depot/projects/fadvise/sys/netinet6/frag6.c#2 integrate .. //depot/projects/fadvise/sys/netinet6/in6.c#8 integrate .. //depot/projects/fadvise/sys/netinet6/in6_src.c#5 integrate .. //depot/projects/fadvise/sys/netinet6/ip6_input.c#4 integrate .. //depot/projects/fadvise/sys/netinet6/ip6_mroute.c#4 integrate .. //depot/projects/fadvise/sys/netinet6/ip6_mroute.h#2 integrate .. //depot/projects/fadvise/sys/netinet6/ip6_output.c#5 integrate .. //depot/projects/fadvise/sys/netinet6/mld6.c#5 integrate .. //depot/projects/fadvise/sys/netinet6/nd6.h#5 integrate .. //depot/projects/fadvise/sys/netinet6/nd6_nbr.c#5 integrate .. //depot/projects/fadvise/sys/netinet6/sctp6_usrreq.c#5 integrate .. //depot/projects/fadvise/sys/netsmb/smb_dev.c#2 integrate .. //depot/projects/fadvise/sys/netsmb/smb_trantcp.c#2 integrate .. //depot/projects/fadvise/sys/ofed/drivers/infiniband/core/cma.c#3 integrate .. //depot/projects/fadvise/sys/ofed/drivers/infiniband/core/iwcm.c#2 integrate .. //depot/projects/fadvise/sys/ofed/include/linux/net.h#2 integrate .. //depot/projects/fadvise/sys/ofed/include/linux/workqueue.h#2 integrate .. //depot/projects/fadvise/sys/ofed/include/net/netevent.h#2 integrate .. //depot/projects/fadvise/sys/ofed/include/rdma/iw_cm.h#2 integrate .. //depot/projects/fadvise/sys/pc98/include/vdso.h#1 branch .. //depot/projects/fadvise/sys/pc98/pc98/machdep.c#4 integrate .. //depot/projects/fadvise/sys/powerpc/aim/locore32.S#3 integrate .. //depot/projects/fadvise/sys/powerpc/aim/locore64.S#3 integrate .. //depot/projects/fadvise/sys/powerpc/aim/mmu_oea.c#4 integrate .. //depot/projects/fadvise/sys/powerpc/aim/mmu_oea64.c#5 integrate .. //depot/projects/fadvise/sys/powerpc/booke/machdep.c#4 integrate .. //depot/projects/fadvise/sys/powerpc/booke/pmap.c#3 integrate .. //depot/projects/fadvise/sys/powerpc/booke/trap.c#2 integrate .. //depot/projects/fadvise/sys/powerpc/booke/trap_subr.S#2 integrate .. //depot/projects/fadvise/sys/powerpc/conf/DEFAULTS#5 integrate .. //depot/projects/fadvise/sys/powerpc/conf/GENERIC#6 integrate .. //depot/projects/fadvise/sys/powerpc/conf/GENERIC64#4 integrate .. //depot/projects/fadvise/sys/powerpc/include/_stdint.h#3 integrate .. //depot/projects/fadvise/sys/powerpc/include/_types.h#4 integrate .. //depot/projects/fadvise/sys/powerpc/include/elf.h#2 integrate .. //depot/projects/fadvise/sys/powerpc/include/pmap.h#4 integrate .. //depot/projects/fadvise/sys/powerpc/include/vdso.h#1 branch .. //depot/projects/fadvise/sys/powerpc/mpc85xx/lbc.c#3 integrate .. //depot/projects/fadvise/sys/powerpc/mpc85xx/lbc.h#3 integrate .. //depot/projects/fadvise/sys/powerpc/mpc85xx/nexus.c#3 integrate .. //depot/projects/fadvise/sys/powerpc/powermac/hrowpic.c#2 integrate .. //depot/projects/fadvise/sys/powerpc/powerpc/mmu_if.m#3 integrate .. //depot/projects/fadvise/sys/sparc64/conf/GENERIC#8 integrate .. //depot/projects/fadvise/sys/sparc64/include/_stdint.h#2 integrate .. //depot/projects/fadvise/sys/sparc64/include/_types.h#3 integrate .. //depot/projects/fadvise/sys/sparc64/include/elf.h#2 integrate .. //depot/projects/fadvise/sys/sparc64/include/pmap.h#3 integrate .. //depot/projects/fadvise/sys/sparc64/include/vdso.h#1 branch .. //depot/projects/fadvise/sys/sparc64/sparc64/pmap.c#4 integrate .. //depot/projects/fadvise/sys/sys/_types.h#2 integrate .. //depot/projects/fadvise/sys/sys/cdefs.h#6 integrate .. //depot/projects/fadvise/sys/sys/file.h#9 integrate .. //depot/projects/fadvise/sys/sys/filedesc.h#2 integrate .. //depot/projects/fadvise/sys/sys/imgact_aout.h#2 integrate .. //depot/projects/fadvise/sys/sys/kernel.h#2 integrate .. //depot/projects/fadvise/sys/sys/mdioctl.h#3 integrate .. //depot/projects/fadvise/sys/sys/param.h#6 integrate .. //depot/projects/fadvise/sys/sys/proc.h#6 integrate .. //depot/projects/fadvise/sys/sys/smp.h#3 integrate .. //depot/projects/fadvise/sys/sys/stdint.h#3 integrate .. //depot/projects/fadvise/sys/sys/sysent.h#3 integrate .. //depot/projects/fadvise/sys/sys/vdso.h#1 branch .. //depot/projects/fadvise/sys/sys/vmmeter.h#2 integrate .. //depot/projects/fadvise/sys/sys/vnode.h#10 integrate .. //depot/projects/fadvise/sys/ufs/ffs/ffs_alloc.c#3 integrate .. //depot/projects/fadvise/sys/ufs/ffs/ffs_softdep.c#5 integrate .. //depot/projects/fadvise/sys/ufs/ffs/ffs_vnops.c#12 integrate .. //depot/projects/fadvise/sys/vm/pmap.h#2 integrate .. //depot/projects/fadvise/sys/vm/swap_pager.c#5 integrate .. //depot/projects/fadvise/sys/vm/uma_core.c#5 integrate .. //depot/projects/fadvise/sys/vm/vm_map.c#5 integrate .. //depot/projects/fadvise/sys/vm/vm_object.c#10 integrate .. //depot/projects/fadvise/sys/vm/vm_object.h#7 integrate .. //depot/projects/fadvise/sys/vm/vm_page.c#10 integrate .. //depot/projects/fadvise/sys/vm/vm_page.h#6 integrate .. //depot/projects/fadvise/sys/vm/vm_pageout.c#4 integrate .. //depot/projects/fadvise/sys/vm/vnode_pager.c#8 integrate .. //depot/projects/fadvise/sys/x86/acpica/acpi_wakeup.c#1 branch .. //depot/projects/fadvise/sys/x86/include/_stdint.h#2 integrate .. //depot/projects/fadvise/sys/x86/include/_types.h#2 integrate .. //depot/projects/fadvise/sys/x86/include/vdso.h#1 branch .. //depot/projects/fadvise/sys/x86/x86/tsc.c#2 integrate Differences ... ==== //depot/projects/fadvise/lib/libc/amd64/sys/Makefile.inc#2 (text+ko) ==== @@ -1,7 +1,8 @@ # from: Makefile.inc,v 1.1 1993/09/03 19:04:23 jtc Exp -# $FreeBSD: src/lib/libc/amd64/sys/Makefile.inc,v 1.31 2008/11/09 10:45:13 ed Exp $ +# $FreeBSD: src/lib/libc/amd64/sys/Makefile.inc,v 1.32 2012/06/22 07:13:30 kib Exp $ -SRCS+= amd64_get_fsbase.c amd64_get_gsbase.c amd64_set_fsbase.c amd64_set_gsbase.c +SRCS+= amd64_get_fsbase.c amd64_get_gsbase.c amd64_set_fsbase.c \ + amd64_set_gsbase.c __vdso_gettc.c MDASM= vfork.S brk.S cerror.S exect.S getcontext.S pipe.S ptrace.S \ reboot.S sbrk.S setlogin.S sigreturn.S ==== //depot/projects/fadvise/lib/libc/arm/Symbol.map#3 (text) ==== @@ -1,5 +1,5 @@ /* - * $FreeBSD: src/lib/libc/arm/Symbol.map,v 1.9 2012/03/04 15:25:11 cognet Exp $ + * $FreeBSD: src/lib/libc/arm/Symbol.map,v 1.12 2012/06/15 03:57:16 kientzle Exp $ */ /* @@ -33,6 +33,10 @@ sbrk; }; +FBSD_1.3 { + __flt_rounds; +}; + FBSDprivate_1.0 { /* PSEUDO syscalls */ __sys_getlogin; ==== //depot/projects/fadvise/lib/libc/gen/arc4random.c#3 (text+ko) ==== @@ -30,7 +30,7 @@ */ #include -__FBSDID("$FreeBSD: src/lib/libc/gen/arc4random.c,v 1.27 2011/11/15 05:49:24 das Exp $"); +__FBSDID("$FreeBSD: src/lib/libc/gen/arc4random.c,v 1.28 2012/07/04 19:51:25 pjd Exp $"); #include "namespace.h" #include @@ -39,6 +39,7 @@ #include #include #include +#include #include #include @@ -78,6 +79,9 @@ static pid_t arc4_stir_pid; static int arc4_count; +extern int __sysctl(int *name, u_int namelen, void *oldp, size_t *oldlenp, + void *newp, size_t newlen); + static inline u_int8_t arc4_getbyte(void); static void arc4_stir(void); @@ -109,6 +113,28 @@ rs.j = rs.i; } +static size_t +arc4_sysctl(u_char *buf, size_t size) +{ + int mib[2]; + size_t len, done; + + mib[0] = CTL_KERN; + mib[1] = KERN_ARND; + done = 0; >>> TRUNCATED FOR MAIL (1000 lines) <<< From owner-p4-projects@FreeBSD.ORG Wed Jul 11 15:39:14 2012 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id D217E1065676; Wed, 11 Jul 2012 15:39: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 949111065675 for ; Wed, 11 Jul 2012 15:39:13 +0000 (UTC) (envelope-from jhb@freebsd.org) Received: from skunkworks.freebsd.org (skunkworks.freebsd.org [IPv6:2001:4f8:fff6::2d]) by mx1.freebsd.org (Postfix) with ESMTP id 7E1CB8FC17 for ; Wed, 11 Jul 2012 15:39:13 +0000 (UTC) Received: from skunkworks.freebsd.org (localhost [127.0.0.1]) by skunkworks.freebsd.org (8.14.4/8.14.4) with ESMTP id q6BFdDVr078305 for ; Wed, 11 Jul 2012 15:39:13 GMT (envelope-from jhb@freebsd.org) Received: (from perforce@localhost) by skunkworks.freebsd.org (8.14.4/8.14.4/Submit) id q6BFdDHS078302 for perforce@freebsd.org; Wed, 11 Jul 2012 15:39:13 GMT (envelope-from jhb@freebsd.org) Date: Wed, 11 Jul 2012 15:39:13 GMT Message-Id: <201207111539.q6BFdDHS078302@skunkworks.freebsd.org> X-Authentication-Warning: skunkworks.freebsd.org: perforce set sender to jhb@freebsd.org using -f From: John Baldwin To: Perforce Change Reviews Precedence: bulk Cc: Subject: PERFORCE change 214248 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 11 Jul 2012 15:39:14 -0000 http://p4web.freebsd.org/@@214248?ac=10 Change 214248 by jhb@jhb_jhbbsd on 2012/07/11 15:38:26 Fix mismerge. Affected files ... .. //depot/projects/fadvise/sys/kern/vfs_vnops.c#11 edit Differences ... ==== //depot/projects/fadvise/sys/kern/vfs_vnops.c#11 (text+ko) ==== @@ -678,12 +678,6 @@ if (error == 0) #endif error = VOP_READ(vp, uio, ioflag, fp->f_cred); - mtx_lock(mtxp); - if (fp->f_vnread_flags & FOFFSET_LOCK_WAITING) - wakeup(&fp->f_vnread_flags); - fp->f_vnread_flags = 0; - mtx_unlock(mtxp); - } fp->f_nextoff = uio->uio_offset; VOP_UNLOCK(vp, 0); if (error == 0 && advice == POSIX_FADV_NOREUSE && @@ -706,24 +700,6 @@ start = offset; end = uio->uio_offset - 1; mtxp = mtx_pool_find(mtxpool_sleep, fp); - offset != uio->uio_offset) { - /* - * Use POSIX_FADV_DONTNEED to flush clean pages and - * buffers for the backing file after a - * POSIX_FADV_NOREUSE read(2). To optimize the common - * case of using POSIX_FADV_NOREUSE with sequential - * access, track the previous implicit DONTNEED - * request and grow this request to include the - * current read(2) in addition to the previous - * DONTNEED. With purely sequential access this will - * cause the DONTNEED requests to continously grow to - * cover all of the previously read regions of the - * file. This allows filesystem blocks that are - * accessed by multiple calls to read(2) to be flushed - * once the last read(2) finishes. - */ - start = offset; - end = uio->uio_offset - 1; mtx_lock(mtxp); if (fp->f_advice != NULL && fp->f_advice->fa_advice == POSIX_FADV_NOREUSE) { From owner-p4-projects@FreeBSD.ORG Thu Jul 12 22:47:21 2012 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id AEEC4106566C; Thu, 12 Jul 2012 22:47:21 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 7185F1065670 for ; Thu, 12 Jul 2012 22:47:21 +0000 (UTC) (envelope-from brooks@freebsd.org) Received: from skunkworks.freebsd.org (skunkworks.freebsd.org [IPv6:2001:4f8:fff6::2d]) by mx1.freebsd.org (Postfix) with ESMTP id 413A58FC12 for ; Thu, 12 Jul 2012 22:47:21 +0000 (UTC) Received: from skunkworks.freebsd.org (localhost [127.0.0.1]) by skunkworks.freebsd.org (8.14.4/8.14.4) with ESMTP id q6CMlLVu063576 for ; Thu, 12 Jul 2012 22:47:21 GMT (envelope-from brooks@freebsd.org) Received: (from perforce@localhost) by skunkworks.freebsd.org (8.14.4/8.14.4/Submit) id q6CMlKFX063572 for perforce@freebsd.org; Thu, 12 Jul 2012 22:47:20 GMT (envelope-from brooks@freebsd.org) Date: Thu, 12 Jul 2012 22:47:20 GMT Message-Id: <201207122247.q6CMlKFX063572@skunkworks.freebsd.org> X-Authentication-Warning: skunkworks.freebsd.org: perforce set sender to brooks@freebsd.org using -f From: Brooks Davis To: Perforce Change Reviews Precedence: bulk Cc: Subject: PERFORCE change 214309 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 12 Jul 2012 22:47:21 -0000 http://p4web.freebsd.org/@@214309?ac=10 Change 214309 by brooks@brooks_ecr_current on 2012/07/12 22:46:20 Exit with status 99 so we can detect that wr was execed. Affected files ... .. //depot/projects/ctsrd/beribsd/src/ctsrd/wr/wr.c#2 edit Differences ... ==== //depot/projects/ctsrd/beribsd/src/ctsrd/wr/wr.c#2 (text+ko) ==== @@ -43,5 +43,5 @@ for (i = 0; i < fb_width * fb_height; i++) pfbp[i] = pfbp[i] | 0xff00; - return (0); + return (99); } From owner-p4-projects@FreeBSD.ORG Thu Jul 12 22:50:39 2012 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 5D0491065673; Thu, 12 Jul 2012 22:50: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 1F96B1065670 for ; Thu, 12 Jul 2012 22:50:39 +0000 (UTC) (envelope-from brooks@freebsd.org) Received: from skunkworks.freebsd.org (skunkworks.freebsd.org [IPv6:2001:4f8:fff6::2d]) by mx1.freebsd.org (Postfix) with ESMTP id 07D7E8FC19 for ; Thu, 12 Jul 2012 22:50:39 +0000 (UTC) Received: from skunkworks.freebsd.org (localhost [127.0.0.1]) by skunkworks.freebsd.org (8.14.4/8.14.4) with ESMTP id q6CMocq7063653 for ; Thu, 12 Jul 2012 22:50:38 GMT (envelope-from brooks@freebsd.org) Received: (from perforce@localhost) by skunkworks.freebsd.org (8.14.4/8.14.4/Submit) id q6CMoc5r063650 for perforce@freebsd.org; Thu, 12 Jul 2012 22:50:38 GMT (envelope-from brooks@freebsd.org) Date: Thu, 12 Jul 2012 22:50:38 GMT Message-Id: <201207122250.q6CMoc5r063650@skunkworks.freebsd.org> X-Authentication-Warning: skunkworks.freebsd.org: perforce set sender to brooks@freebsd.org using -f From: Brooks Davis To: Perforce Change Reviews Precedence: bulk Cc: Subject: PERFORCE change 214310 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 12 Jul 2012 22:50:39 -0000 http://p4web.freebsd.org/@@214310?ac=10 Change 214310 by brooks@brooks_ecr_current on 2012/07/12 22:50:17 Add the beginnings of a dialog box function. Currently only pinch to close is supported, but basic text rendering works. Also add a function to fill buffers with a given color. Affected files ... .. //depot/projects/ctsrd/beribsd/src/ctsrd-lib/libde4tc/de4tc.c#7 edit .. //depot/projects/ctsrd/beribsd/src/ctsrd-lib/libde4tc/de4tc.h#7 edit Differences ... ==== //depot/projects/ctsrd/beribsd/src/ctsrd-lib/libde4tc/de4tc.c#7 (text+ko) ==== @@ -267,6 +267,16 @@ void +fb_fill_buf(u_int32_t *buf, u_int32_t color, int width, int height) +{ + int i; + + for (i = 0; i < width * height; i++) + buf[i] = color; +} + + +void fb_post(u_int32_t *buf) { int addr; @@ -511,3 +521,126 @@ for(x=0; x textwidth) ? linewidth : + textwidth; + linewidth = 0; + } else + linewidth++; + } + textlines++; + textwidth = (linewidth > textwidth) ? linewidth : textwidth; + textwidth *= fb_get_font_width() * 2; + textheight = fb_get_font_height() * 2; + + maxwidth = (textwidth > titlewidth) ? textwidth : titlewidth; + + dwidth = FBD_BORDER_WIDTH + maxwidth + FBD_BORDER_WIDTH; + if (dwidth > fb_width) + errx(1, "text too wide"); + + dheight = FBD_BORDER_WIDTH + titleheight + FBD_BORDER_WIDTH + + textheight * textlines + FBD_BORDER_WIDTH; + if (dheight > fb_height) + errx(1, "text too tall"); + + x0 = (fb_width - dwidth) / 2; + y0 = (fb_height - dheight) / 2; + + lines = malloc(textlines * sizeof(char *)); + if (lines == NULL) + err(1, "malloc"); + textdup = strdup(text); + if (textdup == NULL) + err(1, "strdup"); + textlines = 0; + lines[textlines] = textdup; + for (i = 0; textdup[i] != '\0'; i++) { + if (textdup[i] == '\n') { + textdup[i] = '\0'; + lines[++textlines] = &textdup[i+1]; + } + } + textlines++; + + fb_fill_region(bgcolor, x0, y0, dwidth, dheight); + for (x = x0 + FBD_BORDER_SPACE; x < x0 + dwidth - FBD_BORDER_SPACE; + x++) { + for (y = 0; y < FBD_BORDER_LWIDTH; y++) { + fb_putpixel(x, y0 + FBD_BORDER_SPACE + y, bcolor); + fb_putpixel(x, y0 + FBD_BORDER_SPACE + y + + FBD_BORDER_WIDTH + titleheight, bcolor); + fb_putpixel(x, y0 + FBD_BORDER_SPACE + y + dheight - + FBD_BORDER_WIDTH, bcolor); + } + } + for (y = y0 + FBD_BORDER_SPACE; y < y0 + dheight - FBD_BORDER_SPACE; + y++) { + for (x = 0; x < FBD_BORDER_LWIDTH; x++) { + fb_putpixel(x0 + FBD_BORDER_SPACE + x, y, bcolor); + fb_putpixel(x0 + dwidth + FBD_BORDER_SPACE + x - + FBD_BORDER_WIDTH, y, bcolor); + } + } + + titlebuf = malloc(sizeof(u_int32_t) * titlewidth * titleheight); + if (titlebuf == NULL) + err(1, "malloc"); + fb_render_text(title, 2, tcolor, bgcolor, titlebuf, + titlewidth, titleheight); + fb_post_region(titlebuf, + x0 + (dwidth - titlewidth) / 2, y0 + FBD_BORDER_WIDTH, + titlewidth, titleheight); + free(titlebuf); + + printf("text width %d height %d\n", textwidth, textheight); + textbuf = malloc(sizeof(u_int32_t) * textwidth * textheight); + if (textbuf == NULL) + err(1, "malloc"); + for(i = 0; i < textlines; i++) { + printf("writing text '%s'\n", lines[i]); + fb_fill_buf(textbuf, bgcolor, textwidth, textheight); + fb_render_text(lines[i], 2, tcolor, bgcolor, textbuf, + textwidth, textheight); + fb_post_region(textbuf, x0 + FBD_BORDER_WIDTH, + y0 + 2 * FBD_BORDER_WIDTH + titleheight + i * textheight, + textwidth, textheight); + } + free(textbuf); + free(lines); + + switch (type) { + case FBDT_PINCH2CLOSE: + for (;;) { + ts = ts_poll(); + if (ts->ts_gesture == TSG2_ZOOM_OUT) + return(FBDA_OK); + } + default: + err(1, "Unhandled dialog type"); + } +} ==== //depot/projects/ctsrd/beribsd/src/ctsrd-lib/libde4tc/de4tc.h#7 (text+ko) ==== @@ -57,6 +57,22 @@ #define TSG2_ZOOM_IN 0x48 #define TSG2_ZOOM_OUT 0x49 +typedef enum { + FBDA_CANCEL, + FBDA_OK, + FBDA_YES, + FBDA_NO +} fb_dialog_action; + +typedef enum { + FBDT_PINCH2CLOSE, +#ifdef NOTYET + FBDT_OK, + FBDT_OKCANCEL, + FBDT_YESNO +#endif +} fb_dialog_type; + struct tsstate { int ts_x1; int ts_y1; @@ -89,6 +105,7 @@ void fb_putpixel(int px, int py, int colour); void fb_fill(int col); void fb_fill_region(u_int32_t colour, int x, int y, int w, int h); +void fb_fill_buf(u_int32_t *buf, u_int32_t color, int width, int height); void fb_post(u_int32_t *buf); void fb_post_region(u_int32_t *buf, int x, int y, int w, int h); void fb_blend(int blend_text_bg, int blend_text_fg, int blend_pixel, int wash); @@ -96,6 +113,7 @@ void fb_fade2off(void); void fb_fade2on(void); void fb_fade2text(int textbg_alpha); + void plot_line(int x1, int y1, int x2, int y2, unsigned int colour); void read_png_file(const char* file_name, u_int32_t* imgbuf, int maxwidth, int maxheight); @@ -104,5 +122,7 @@ int fb_get_font_width(void); void fb_render_text(const char *string, int expand, u_int32_t con, u_int32_t coff, u_int32_t *buffer, int w, int h); +fb_dialog_action fb_dialog(fb_dialog_type type, u_int32_t bcolor, + u_int32_t bgcolor, u_int32_t tcolor, const char *title, const char *text); #endif /* !_DE4TC_H_ */ From owner-p4-projects@FreeBSD.ORG Thu Jul 12 22:52:51 2012 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 865E61065749; Thu, 12 Jul 2012 22:52: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 48B9D1065746 for ; Thu, 12 Jul 2012 22:52:51 +0000 (UTC) (envelope-from brooks@freebsd.org) Received: from skunkworks.freebsd.org (skunkworks.freebsd.org [IPv6:2001:4f8:fff6::2d]) by mx1.freebsd.org (Postfix) with ESMTP id 29D528FC14 for ; Thu, 12 Jul 2012 22:52:51 +0000 (UTC) Received: from skunkworks.freebsd.org (localhost [127.0.0.1]) by skunkworks.freebsd.org (8.14.4/8.14.4) with ESMTP id q6CMqpd2063705 for ; Thu, 12 Jul 2012 22:52:51 GMT (envelope-from brooks@freebsd.org) Received: (from perforce@localhost) by skunkworks.freebsd.org (8.14.4/8.14.4/Submit) id q6CMqoGT063702 for perforce@freebsd.org; Thu, 12 Jul 2012 22:52:50 GMT (envelope-from brooks@freebsd.org) Date: Thu, 12 Jul 2012 22:52:50 GMT Message-Id: <201207122252.q6CMqoGT063702@skunkworks.freebsd.org> X-Authentication-Warning: skunkworks.freebsd.org: perforce set sender to brooks@freebsd.org using -f From: Brooks Davis To: Perforce Change Reviews Precedence: bulk Cc: Subject: PERFORCE change 214311 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 12 Jul 2012 22:52:51 -0000 http://p4web.freebsd.org/@@214311?ac=10 Change 214311 by brooks@brooks_ecr_current on 2012/07/12 22:52:42 Add a -f option to fork and monitor a child. When the child exits with error 99 show a dialog box indicating that the program was exploited. Affected files ... .. //depot/projects/ctsrd/beribsd/src/ctsrd/browser/browser.c#11 edit Differences ... ==== //depot/projects/ctsrd/beribsd/src/ctsrd/browser/browser.c#11 (text+ko) ==== @@ -45,6 +45,8 @@ #include #include #include +#include +#include #define _WITH_DPRINTF #include #include @@ -179,13 +181,17 @@ static u_int32_t *bgimage; static u_int32_t *icons; static magic_t magic; +static int zombies_waiting = 0; static void usage(void) { - printf("usage: browser \n"); - printf(" browser -T \n"); + printf("usage: browser [-f] \n"); + printf(" browser [-f] -T \n"); + printf("\n"); + printf(" -f Fork and monitor a child instance\n"); + printf(" -T Don't open a tty\n"); exit(1); } @@ -211,6 +217,118 @@ } static void +handle_sigchld(int sig __unused) +{ + + zombies_waiting = 1; +} + +static void +writeall(int fd, const char *buf, ssize_t len) +{ + ssize_t wlen = 0, n; + + while (wlen != len) { + n = write(fd, buf + wlen, len - wlen); + if (n < 0) { + syslog(LOG_ALERT, "write failed: %s", strerror(errno)); + err(1, "write"); + } + wlen += n; + } +} + +static void +fork_child(void) +{ + int pmaster, pslave, status; + ssize_t rlen; + pid_t pid; + struct sigaction act; + struct pollfd pfd[1]; + char buf[1024]; + +restart: + if (openpty(&pmaster, &pslave, NULL, NULL, NULL) == -1) + err(1, "openpty"); + pid = fork(); + if (pid < 0) + err(1, "fork()"); + else if (pid == 0) { + close(pmaster); + if (login_tty(pslave) < 0) { + syslog(LOG_ALERT, "login_tty failed in child: %s", strerror(errno)); + err(1, "tty_login"); + } + /* return to begin normal processing */ + return; + } + + memset (&act, 0, sizeof(act)); + act.sa_handler = handle_sigchld; + + if (sigaction(SIGCHLD, &act, 0)) + err(1, "sigacation"); + + close(pslave); + /* + * We poll for data from the child's pty. Don't bother looking for + * tty input since the child couldn't do anything with it. + */ + pfd[0].fd = pmaster; + pfd[0].events = POLLIN; + for (;;) { + if (poll(pfd, 2, INFTIM) < 0) { + if (errno == EINTR) + continue; + syslog(LOG_ALERT, "poll failed with %s", + strerror(errno)); + err(1, "poll"); + } + if (zombies_waiting) { + printf("zombie!\n"); + wait4(pid, &status, 0, NULL); + if (WIFEXITED(status) && WEXITSTATUS(status) != 0) { + warnx("child exited with %d", + WEXITSTATUS(status)); + if (WEXITSTATUS(status) == 99) { + warnx("child was exploited"); + fb_dialog(FBDT_PINCH2CLOSE, black, + white, black, + "Browser Exited", +"Browser vulnerability exploited\n" +"\n" +"Pinch to close dialog and restart" + ); + } + } else if(WIFSIGNALED(status)) { + warn("child killed by signal %d", + WTERMSIG(status)); + } else { + printf("child exited cleanly, exiting\n"); + exit(0); + } + printf("child exited badly, restarting\n"); + zombies_waiting = 0; + close(pmaster); /* XXX: should we drain it first? */ + fb_fill_region(vwhite(128), 0, 0, fb_width, fb_height); + goto restart; + } + + if (pfd[0].revents & POLLIN) { + rlen = read(pmaster, buf, sizeof(buf)); + if (rlen < 0) { + err(1, "read"); + } else if (rlen > 0) + writeall(1, buf, rlen); + } + } + + + +} + +static void init_magic(void) { magic = magic_open(MAGIC_MIME_TYPE); if (magic == NULL) @@ -262,8 +380,9 @@ exit(0); } else { close(pfd[1]); - if (wait4(pid, &status, 0, NULL) == -1) - err(1, "wait4()"); + while (wait4(pid, &status, 0, NULL) == -1) + if (errno != EINTR) + err(1, "wait4()"); if (WIFEXITED(status) && WEXITSTATUS(status) != 0) { warnx("child exited with %d", @@ -435,11 +554,11 @@ get_action(void) { struct tsstate *ts; - int action = -1, col, i, row; + int col, i, row; printf("entering get_action\n"); - while(action < 0) { + for (;;) { ts = ts_poll(); printf("gesture = %x\n", ts->ts_gesture); if (ts->ts_gesture == TSG_CLICK) { @@ -594,10 +713,13 @@ main(int argc, char *argv[]) { int ch, dfd; - int ttyflag = 1; + int ttyflag = 1, forkflag = 0; - while ((ch = getopt(argc, argv, "T")) != -1) { + while ((ch = getopt(argc, argv, "fT")) != -1) { switch (ch) { + case 'f': + forkflag = 1; + break; case 'T': ttyflag = 0; break; @@ -608,14 +730,23 @@ argc -= optind; argv += optind; - if (argc <= 0 && argc > 2) + if (argc <= 0 || argc > 2) usage(); - if (argc == 2) - init_tty(argv[1]); - init_magic(); + if (argc == 2) { + if (ttyflag) + init_tty(argv[1]); + else + usage(); + } + fb_init(); fb_load_syscons_font(NULL, "/usr/share/syscons/fonts/iso-8x16.fnt"); + + if (forkflag) + fork_child(); + + init_magic(); init_bgimage(); icons = malloc(sizeof(u_int32_t) * ICON_WH * 640); From owner-p4-projects@FreeBSD.ORG Fri Jul 13 15:18:33 2012 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 4D9491065677; Fri, 13 Jul 2012 15:18: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 E949F1065673 for ; Fri, 13 Jul 2012 15:18:31 +0000 (UTC) (envelope-from brooks@freebsd.org) Received: from skunkworks.freebsd.org (skunkworks.freebsd.org [IPv6:2001:4f8:fff6::2d]) by mx1.freebsd.org (Postfix) with ESMTP id D1ED58FC0A for ; Fri, 13 Jul 2012 15:18:31 +0000 (UTC) Received: from skunkworks.freebsd.org (localhost [127.0.0.1]) by skunkworks.freebsd.org (8.14.4/8.14.4) with ESMTP id q6DFIVic012947 for ; Fri, 13 Jul 2012 15:18:31 GMT (envelope-from brooks@freebsd.org) Received: (from perforce@localhost) by skunkworks.freebsd.org (8.14.4/8.14.4/Submit) id q6DFIV8i012944 for perforce@freebsd.org; Fri, 13 Jul 2012 15:18:31 GMT (envelope-from brooks@freebsd.org) Date: Fri, 13 Jul 2012 15:18:31 GMT Message-Id: <201207131518.q6DFIV8i012944@skunkworks.freebsd.org> X-Authentication-Warning: skunkworks.freebsd.org: perforce set sender to brooks@freebsd.org using -f From: Brooks Davis To: Perforce Change Reviews Precedence: bulk Cc: Subject: PERFORCE change 214336 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 13 Jul 2012 15:18:33 -0000 http://p4web.freebsd.org/@@214336?ac=10 Change 214336 by brooks@brooks_ecr_current on 2012/07/13 15:17:55 Allow a LED command to be specified by a hint so we can start an heart beat LED early. Affected files ... .. //depot/projects/ctsrd/beribsd/src/sys/dev/terasic/de4led/terasic_de4led.c#4 edit Differences ... ==== //depot/projects/ctsrd/beribsd/src/sys/dev/terasic/de4led/terasic_de4led.c#4 (text+ko) ==== @@ -121,6 +121,7 @@ void terasic_de4led_attach(struct terasic_de4led_softc *sc) { + const char *cmd; TERASIC_DE4LED_LOCK_INIT(sc); @@ -143,6 +144,31 @@ sc->tdl_leds[5] = led_create(led_5, sc, "de4led_5"); sc->tdl_leds[6] = led_create(led_6, sc, "de4led_6"); sc->tdl_leds[7] = led_create(led_7, sc, "de4led_7"); + + if (resource_string_value(device_get_name(sc->tdl_dev), + sc->tdl_unit, "de4led_0_cmd", &cmd) == 0) + led_set("de4led_0", cmd); + if (resource_string_value(device_get_name(sc->tdl_dev), + sc->tdl_unit, "de4led_1_cmd", &cmd) == 0) + led_set("de4led_1", cmd); + if (resource_string_value(device_get_name(sc->tdl_dev), + sc->tdl_unit, "de4led_2_cmd", &cmd) == 0) + led_set("de4led_2", cmd); + if (resource_string_value(device_get_name(sc->tdl_dev), + sc->tdl_unit, "de4led_3_cmd", &cmd) == 0) + led_set("de4led_3", cmd); + if (resource_string_value(device_get_name(sc->tdl_dev), + sc->tdl_unit, "de4led_4_cmd", &cmd) == 0) + led_set("de4led_4", cmd); + if (resource_string_value(device_get_name(sc->tdl_dev), + sc->tdl_unit, "de4led_5_cmd", &cmd) == 0) + led_set("de4led_5", cmd); + if (resource_string_value(device_get_name(sc->tdl_dev), + sc->tdl_unit, "de4led_6_cmd", &cmd) == 0) + led_set("de4led_6", cmd); + if (resource_string_value(device_get_name(sc->tdl_dev), + sc->tdl_unit, "de4led_7_cmd", &cmd) == 0) + led_set("de4led_7", cmd); } void From owner-p4-projects@FreeBSD.ORG Fri Jul 13 15:20:45 2012 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 2FC32106566C; Fri, 13 Jul 2012 15:20:44 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id DAE60106564A for ; Fri, 13 Jul 2012 15:20:43 +0000 (UTC) (envelope-from brooks@freebsd.org) Received: from skunkworks.freebsd.org (skunkworks.freebsd.org [IPv6:2001:4f8:fff6::2d]) by mx1.freebsd.org (Postfix) with ESMTP id C493D8FC0C for ; Fri, 13 Jul 2012 15:20:43 +0000 (UTC) Received: from skunkworks.freebsd.org (localhost [127.0.0.1]) by skunkworks.freebsd.org (8.14.4/8.14.4) with ESMTP id q6DFKhTj013008 for ; Fri, 13 Jul 2012 15:20:43 GMT (envelope-from brooks@freebsd.org) Received: (from perforce@localhost) by skunkworks.freebsd.org (8.14.4/8.14.4/Submit) id q6DFKhEZ013005 for perforce@freebsd.org; Fri, 13 Jul 2012 15:20:43 GMT (envelope-from brooks@freebsd.org) Date: Fri, 13 Jul 2012 15:20:43 GMT Message-Id: <201207131520.q6DFKhEZ013005@skunkworks.freebsd.org> X-Authentication-Warning: skunkworks.freebsd.org: perforce set sender to brooks@freebsd.org using -f From: Brooks Davis To: Perforce Change Reviews Precedence: bulk Cc: Subject: PERFORCE change 214337 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 13 Jul 2012 15:20:45 -0000 http://p4web.freebsd.org/@@214337?ac=10 Change 214337 by brooks@brooks_ecr_current on 2012/07/13 15:20:21 Blink LED0 approximately every 900ms while the kernel is running. Affected files ... .. //depot/projects/ctsrd/beribsd/src/sys/mips/conf/BERI_DE4.hints#10 edit Differences ... ==== //depot/projects/ctsrd/beribsd/src/sys/mips/conf/BERI_DE4.hints#10 (text+ko) ==== @@ -30,6 +30,7 @@ hint.terasic_de4led.0.at="nexus0" hint.terasic_de4led.0.maddr=0x7f006000 hint.terasic_de4led.0.msize=1 +hint.terasic_de4led.0.de4led_0_cmd="f9" # # Altera Triple-Speed Ethernet Mac, present in tPad and DE-4 configurations From owner-p4-projects@FreeBSD.ORG Fri Jul 13 19:44:22 2012 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id E1B731065672; Fri, 13 Jul 2012 19:44: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 A4485106564A for ; Fri, 13 Jul 2012 19:44:21 +0000 (UTC) (envelope-from brooks@freebsd.org) Received: from skunkworks.freebsd.org (skunkworks.freebsd.org [IPv6:2001:4f8:fff6::2d]) by mx1.freebsd.org (Postfix) with ESMTP id 8DCC48FC1E for ; Fri, 13 Jul 2012 19:44:21 +0000 (UTC) Received: from skunkworks.freebsd.org (localhost [127.0.0.1]) by skunkworks.freebsd.org (8.14.4/8.14.4) with ESMTP id q6DJiLYU024204 for ; Fri, 13 Jul 2012 19:44:21 GMT (envelope-from brooks@freebsd.org) Received: (from perforce@localhost) by skunkworks.freebsd.org (8.14.4/8.14.4/Submit) id q6DJiLxO024201 for perforce@freebsd.org; Fri, 13 Jul 2012 19:44:21 GMT (envelope-from brooks@freebsd.org) Date: Fri, 13 Jul 2012 19:44:21 GMT Message-Id: <201207131944.q6DJiLxO024201@skunkworks.freebsd.org> X-Authentication-Warning: skunkworks.freebsd.org: perforce set sender to brooks@freebsd.org using -f From: Brooks Davis To: Perforce Change Reviews Precedence: bulk Cc: Subject: PERFORCE change 214343 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 13 Jul 2012 19:44:22 -0000 http://p4web.freebsd.org/@@214343?ac=10 Change 214343 by brooks@brooks_ecr_current on 2012/07/13 19:43:18 Add a /dev/berirom using the altera_avgen generic memory mapped region driver. This allows access to the CPU version rom in recent BERI/CHERI version. Affected files ... .. //depot/projects/ctsrd/beribsd/src/sys/mips/conf/BERI_DE4.hints#11 edit Differences ... ==== //depot/projects/ctsrd/beribsd/src/sys/mips/conf/BERI_DE4.hints#11 (text+ko) ==== @@ -51,6 +51,16 @@ hint.terasic_mtl.0.text_msize=0x2000 # +# BERI Hardware Version Rom +# +hint.altera_avgen.0.at="nexus0" +hint.altera_avgen.0.maddr=0x7F00A000 +hint.altera_avgen.0.msize=20 +hint.altera_avgen.0.width=4 +hint.altera_avgen.0.fileio="rw" +hint.altera_avgen.0.devname="berirom" + +# # Expose the DE4 flash via an Avalon "generic" device. # This is incompatible with the isf(4) driver. # From owner-p4-projects@FreeBSD.ORG Fri Jul 13 20:09:38 2012 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 3F8E9106567A; Fri, 13 Jul 2012 20:09:38 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 0219E1065677 for ; Fri, 13 Jul 2012 20:09:38 +0000 (UTC) (envelope-from brooks@freebsd.org) Received: from skunkworks.freebsd.org (skunkworks.freebsd.org [IPv6:2001:4f8:fff6::2d]) by mx1.freebsd.org (Postfix) with ESMTP id DF9F58FC14 for ; Fri, 13 Jul 2012 20:09:37 +0000 (UTC) Received: from skunkworks.freebsd.org (localhost [127.0.0.1]) by skunkworks.freebsd.org (8.14.4/8.14.4) with ESMTP id q6DK9bMM024693 for ; Fri, 13 Jul 2012 20:09:37 GMT (envelope-from brooks@freebsd.org) Received: (from perforce@localhost) by skunkworks.freebsd.org (8.14.4/8.14.4/Submit) id q6DK9bQj024690 for perforce@freebsd.org; Fri, 13 Jul 2012 20:09:37 GMT (envelope-from brooks@freebsd.org) Date: Fri, 13 Jul 2012 20:09:37 GMT Message-Id: <201207132009.q6DK9bQj024690@skunkworks.freebsd.org> X-Authentication-Warning: skunkworks.freebsd.org: perforce set sender to brooks@freebsd.org using -f From: Brooks Davis To: Perforce Change Reviews Precedence: bulk Cc: Subject: PERFORCE change 214344 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 13 Jul 2012 20:09:38 -0000 http://p4web.freebsd.org/@@214344?ac=10 Change 214344 by brooks@brooks_ecr_current on 2012/07/13 20:08:39 Tighten the regular expression that checks for an md /tmp such that no /tmp mount and an md / isn't improperly matched. Affected files ... .. //depot/projects/ctsrd/beribsd/src/etc/rc.d/tmp#2 edit Differences ... ==== //depot/projects/ctsrd/beribsd/src/etc/rc.d/tmp#2 (text+ko) ==== @@ -39,7 +39,7 @@ mount_tmpmfs () { - if ! /bin/df /tmp | grep -q "^/dev/md[0-9]"; then + if ! /bin/df /tmp | grep -q "^/dev/md[0-9].* /tmp"; then mount_md ${tmpsize} /tmp "${tmpmfs_flags}" chmod 01777 /tmp fi From owner-p4-projects@FreeBSD.ORG Fri Jul 13 20:16:14 2012 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 7283F1065673; Fri, 13 Jul 2012 20:16:14 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 34B3F106566C for ; Fri, 13 Jul 2012 20:16:14 +0000 (UTC) (envelope-from brooks@freebsd.org) Received: from skunkworks.freebsd.org (skunkworks.freebsd.org [IPv6:2001:4f8:fff6::2d]) by mx1.freebsd.org (Postfix) with ESMTP id 04E148FC17 for ; Fri, 13 Jul 2012 20:16:14 +0000 (UTC) Received: from skunkworks.freebsd.org (localhost [127.0.0.1]) by skunkworks.freebsd.org (8.14.4/8.14.4) with ESMTP id q6DKGDOv025763 for ; Fri, 13 Jul 2012 20:16:13 GMT (envelope-from brooks@freebsd.org) Received: (from perforce@localhost) by skunkworks.freebsd.org (8.14.4/8.14.4/Submit) id q6DKGDsQ025760 for perforce@freebsd.org; Fri, 13 Jul 2012 20:16:13 GMT (envelope-from brooks@freebsd.org) Date: Fri, 13 Jul 2012 20:16:13 GMT Message-Id: <201207132016.q6DKGDsQ025760@skunkworks.freebsd.org> X-Authentication-Warning: skunkworks.freebsd.org: perforce set sender to brooks@freebsd.org using -f From: Brooks Davis To: Perforce Change Reviews Precedence: bulk Cc: Subject: PERFORCE change 214345 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 13 Jul 2012 20:16:14 -0000 http://p4web.freebsd.org/@@214345?ac=10 Change 214345 by brooks@brooks_ecr_current on 2012/07/13 20:15:15 Add a public function to save the current framebuffer contents to a buffer. Save and restore the framebuffer after displaying a dialog box. Affected files ... .. //depot/projects/ctsrd/beribsd/src/ctsrd-lib/libde4tc/de4tc.c#8 edit .. //depot/projects/ctsrd/beribsd/src/ctsrd-lib/libde4tc/de4tc.h#8 edit Differences ... ==== //depot/projects/ctsrd/beribsd/src/ctsrd-lib/libde4tc/de4tc.c#8 (text+ko) ==== @@ -297,6 +297,16 @@ void +fb_save(u_int32_t *buf) +{ + int i; + + for (i = 0; i < fb_height * fb_width; i++) + buf[i] = pfbp[i]; +} + + +void fb_blend(int blend_text_bg, int blend_text_fg, int blend_pixel, int wash __unused) { mtlctrl[0] = @@ -534,7 +544,7 @@ int textheight, textwidth, titleheight, titlewidth; char **lines; char *textdup; - u_int32_t *textbuf, *titlebuf; + u_int32_t *textbuf, *titlebuf, *bgimage; struct tsstate *ts; titlewidth = strlen(title) * fb_get_font_width() * 2; @@ -587,6 +597,11 @@ } textlines++; + bgimage = malloc(sizeof(u_int32_t) * fb_width * fb_height); + if (bgimage == NULL) + err(1, "malloc"); + fb_save(bgimage); + fb_fill_region(bgcolor, x0, y0, dwidth, dheight); for (x = x0 + FBD_BORDER_SPACE; x < x0 + dwidth - FBD_BORDER_SPACE; x++) { @@ -637,8 +652,10 @@ case FBDT_PINCH2CLOSE: for (;;) { ts = ts_poll(); - if (ts->ts_gesture == TSG2_ZOOM_OUT) + if (ts->ts_gesture == TSG2_ZOOM_OUT) { + fb_post(bgimage); return(FBDA_OK); + } } default: err(1, "Unhandled dialog type"); ==== //depot/projects/ctsrd/beribsd/src/ctsrd-lib/libde4tc/de4tc.h#8 (text+ko) ==== @@ -108,6 +108,7 @@ void fb_fill_buf(u_int32_t *buf, u_int32_t color, int width, int height); void fb_post(u_int32_t *buf); void fb_post_region(u_int32_t *buf, int x, int y, int w, int h); +void fb_save(u_int32_t *buf); void fb_blend(int blend_text_bg, int blend_text_fg, int blend_pixel, int wash); void fb_text_cursor(int x, int y); void fb_fade2off(void); From owner-p4-projects@FreeBSD.ORG Sat Jul 14 12:11:52 2012 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 986291065670; Sat, 14 Jul 2012 12:11:48 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 4C0EB1065674 for ; Sat, 14 Jul 2012 12:11:48 +0000 (UTC) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from skunkworks.freebsd.org (skunkworks.freebsd.org [IPv6:2001:4f8:fff6::2d]) by mx1.freebsd.org (Postfix) with ESMTP id 32D708FC08 for ; Sat, 14 Jul 2012 12:11:48 +0000 (UTC) Received: from skunkworks.freebsd.org (localhost [127.0.0.1]) by skunkworks.freebsd.org (8.14.4/8.14.4) with ESMTP id q6ECBmC2064358 for ; Sat, 14 Jul 2012 12:11:48 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: (from perforce@localhost) by skunkworks.freebsd.org (8.14.4/8.14.4/Submit) id q6ECBlCA064355 for perforce@freebsd.org; Sat, 14 Jul 2012 12:11:47 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Date: Sat, 14 Jul 2012 12:11:47 GMT Message-Id: <201207141211.q6ECBlCA064355@skunkworks.freebsd.org> X-Authentication-Warning: skunkworks.freebsd.org: perforce set sender to bb+lists.freebsd.perforce@cyrus.watson.org using -f From: Robert Watson To: Perforce Change Reviews Precedence: bulk Cc: Subject: PERFORCE change 214374 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 14 Jul 2012 12:11:52 -0000 http://p4web.freebsd.org/@@214374?ac=10 Change 214374 by rwatson@rwatson_svr_ctsrd_mipsbuild on 2012/07/14 12:11:38 Integrate CheriBSD branch to pick up demo fixes/improvements, DE4 heartbeat LED, BERI ROM device node. Affected files ... .. //depot/projects/ctsrd/cheribsd/src/ctsrd-lib/libde4tc/de4tc.c#3 integrate .. //depot/projects/ctsrd/cheribsd/src/ctsrd-lib/libde4tc/de4tc.h#3 integrate .. //depot/projects/ctsrd/cheribsd/src/ctsrd-lib/libde4tc/syscons-fonts.c#2 integrate .. //depot/projects/ctsrd/cheribsd/src/ctsrd/Makefile#4 integrate .. //depot/projects/ctsrd/cheribsd/src/ctsrd/browser/browser.c#3 integrate .. //depot/projects/ctsrd/cheribsd/src/ctsrd/mtlctl/Makefile#1 branch .. //depot/projects/ctsrd/cheribsd/src/ctsrd/mtlctl/mtlctl.c#1 branch .. //depot/projects/ctsrd/cheribsd/src/ctsrd/wr/Makefile#1 branch .. //depot/projects/ctsrd/cheribsd/src/ctsrd/wr/wr.c#1 branch .. //depot/projects/ctsrd/cheribsd/src/etc/rc.d/tmp#2 integrate .. //depot/projects/ctsrd/cheribsd/src/sys/dev/terasic/de4led/terasic_de4led.c#3 integrate .. //depot/projects/ctsrd/cheribsd/src/sys/mips/conf/BERI_DE4.hints#3 integrate .. //depot/projects/ctsrd/cheribsd/src/sys/mips/conf/BERI_TEMPLATE#2 integrate Differences ... ==== //depot/projects/ctsrd/cheribsd/src/ctsrd-lib/libde4tc/de4tc.c#3 (text+ko) ==== @@ -29,6 +29,7 @@ */ #include +#include #include #include #include @@ -54,7 +55,7 @@ static int fademode=0; volatile u_int32_t *pfbp; static volatile u_int16_t *tfbp; -static volatile u_int32_t *mtlctrl; +volatile u_int32_t *mtlctrl; // fade timing (for crude timing loop) static const int fb_cross_fade_time = 500; @@ -144,6 +145,50 @@ } while(touch_count!=0); } +/***************************************************************************** + * Revised touch screen polling interface + *****************************************************************************/ + +struct tsstate* +ts_poll(void) +{ + struct timespec stime = {0, 0.1}; + static struct tsstate *sp; + int init = 0; + struct tsstate tmp_s; + + if (sp == NULL) { + sp = malloc(sizeof(struct tsstate)); + if (sp == NULL) + err(1, "malloc of tstate"); + init = 1; + } + + for (;;) { + tmp_s.ts_x1 = le32toh(mtlctrl[3]); + tmp_s.ts_y1 = le32toh(mtlctrl[4]); + tmp_s.ts_x2 = le32toh(mtlctrl[5]); + tmp_s.ts_y2 = le32toh(mtlctrl[6]); + tmp_s.ts_gesture = le32toh(mtlctrl[7]); + if (tmp_s.ts_gesture < 0) { + nanosleep(&stime, NULL); + continue; + } + tmp_s.ts_count = tmp_s.ts_gesture >> 8; + tmp_s.ts_gesture &= 0xFF; + + if (init || + tmp_s.ts_x1 != sp->ts_x1 || tmp_s.ts_y1 != sp->ts_y1 || + tmp_s.ts_x2 != sp->ts_x2 || tmp_s.ts_y2 != sp->ts_y2 || + tmp_s.ts_count != sp->ts_count || + tmp_s.ts_gesture != sp->ts_gesture) { + *sp = tmp_s; + return (sp); + } + nanosleep(&stime, NULL); + } +} + /***************************************************************************** * frame buffer routines @@ -222,6 +267,16 @@ void +fb_fill_buf(u_int32_t *buf, u_int32_t color, int width, int height) +{ + int i; + + for (i = 0; i < width * height; i++) + buf[i] = color; +} + + +void fb_post(u_int32_t *buf) { int addr; @@ -242,6 +297,16 @@ void +fb_save(u_int32_t *buf) +{ + int i; + + for (i = 0; i < fb_height * fb_width; i++) + buf[i] = pfbp[i]; +} + + +void fb_blend(int blend_text_bg, int blend_text_fg, int blend_pixel, int wash __unused) { mtlctrl[0] = @@ -466,3 +531,133 @@ for(x=0; x textwidth) ? linewidth : + textwidth; + linewidth = 0; + } else + linewidth++; + } + textlines++; + textwidth = (linewidth > textwidth) ? linewidth : textwidth; + textwidth *= fb_get_font_width() * 2; + textheight = fb_get_font_height() * 2; + + maxwidth = (textwidth > titlewidth) ? textwidth : titlewidth; + + dwidth = FBD_BORDER_WIDTH + maxwidth + FBD_BORDER_WIDTH; + if (dwidth > fb_width) + errx(1, "text too wide"); + + dheight = FBD_BORDER_WIDTH + titleheight + FBD_BORDER_WIDTH + + textheight * textlines + FBD_BORDER_WIDTH; + if (dheight > fb_height) + errx(1, "text too tall"); + + x0 = (fb_width - dwidth) / 2; + y0 = (fb_height - dheight) / 2; + + lines = malloc(textlines * sizeof(char *)); + if (lines == NULL) + err(1, "malloc"); + textdup = strdup(text); + if (textdup == NULL) + err(1, "strdup"); + textlines = 0; + lines[textlines] = textdup; + for (i = 0; textdup[i] != '\0'; i++) { + if (textdup[i] == '\n') { + textdup[i] = '\0'; + lines[++textlines] = &textdup[i+1]; + } + } + textlines++; + + bgimage = malloc(sizeof(u_int32_t) * fb_width * fb_height); + if (bgimage == NULL) + err(1, "malloc"); + fb_save(bgimage); + + fb_fill_region(bgcolor, x0, y0, dwidth, dheight); + for (x = x0 + FBD_BORDER_SPACE; x < x0 + dwidth - FBD_BORDER_SPACE; + x++) { + for (y = 0; y < FBD_BORDER_LWIDTH; y++) { + fb_putpixel(x, y0 + FBD_BORDER_SPACE + y, bcolor); + fb_putpixel(x, y0 + FBD_BORDER_SPACE + y + + FBD_BORDER_WIDTH + titleheight, bcolor); + fb_putpixel(x, y0 + FBD_BORDER_SPACE + y + dheight - + FBD_BORDER_WIDTH, bcolor); + } + } + for (y = y0 + FBD_BORDER_SPACE; y < y0 + dheight - FBD_BORDER_SPACE; + y++) { + for (x = 0; x < FBD_BORDER_LWIDTH; x++) { + fb_putpixel(x0 + FBD_BORDER_SPACE + x, y, bcolor); + fb_putpixel(x0 + dwidth + FBD_BORDER_SPACE + x - + FBD_BORDER_WIDTH, y, bcolor); + } + } + + titlebuf = malloc(sizeof(u_int32_t) * titlewidth * titleheight); + if (titlebuf == NULL) + err(1, "malloc"); + fb_render_text(title, 2, tcolor, bgcolor, titlebuf, + titlewidth, titleheight); + fb_post_region(titlebuf, + x0 + (dwidth - titlewidth) / 2, y0 + FBD_BORDER_WIDTH, + titlewidth, titleheight); + free(titlebuf); + + printf("text width %d height %d\n", textwidth, textheight); + textbuf = malloc(sizeof(u_int32_t) * textwidth * textheight); + if (textbuf == NULL) + err(1, "malloc"); + for(i = 0; i < textlines; i++) { + printf("writing text '%s'\n", lines[i]); + fb_fill_buf(textbuf, bgcolor, textwidth, textheight); + fb_render_text(lines[i], 2, tcolor, bgcolor, textbuf, + textwidth, textheight); + fb_post_region(textbuf, x0 + FBD_BORDER_WIDTH, + y0 + 2 * FBD_BORDER_WIDTH + titleheight + i * textheight, + textwidth, textheight); + } + free(textbuf); + free(lines); + + switch (type) { + case FBDT_PINCH2CLOSE: + for (;;) { + ts = ts_poll(); + if (ts->ts_gesture == TSG2_ZOOM_OUT) { + fb_post(bgimage); + return(FBDA_OK); + } + } + default: + err(1, "Unhandled dialog type"); + } +} ==== //depot/projects/ctsrd/cheribsd/src/ctsrd-lib/libde4tc/de4tc.h#3 (text+ko) ==== @@ -32,6 +32,56 @@ #ifndef _DE4TC_H_ #define _DE4TC_H_ +#define TSG_NONE 0x00 +#define TSG_NORTH 0x10 +#define TSG_NORTHEAST 0x12 +#define TSG_EAST 0x14 +#define TSG_SOUTHEAST 0x16 +#define TSG_SOUTH 0x18 +#define TSG_SOUTHWEST 0x1A +#define TSG_WEST 0x1C +#define TSG_NORTHWEST 0x1E +#define TSG_ROTATE_CW 0x28 /* Clockwise */ +#define TSG_ROTATE_CCW 0x29 /* Counter Clockwise */ +#define TSG_CLICK 0x20 +#define TSG_DCLICK 0x22 /* Double Click */ +#define TSG2_NORTH 0x30 +#define TSG2_NORTHEAST 0x32 +#define TSG2_EAST 0x34 +#define TSG2_SOUTHEAST 0x36 +#define TSG2_SOUTH 0x38 +#define TSG2_SOUTHWEST 0x3A +#define TSG2_WEST 0x3C +#define TSG2_NORTHWEST 0x3E +#define TSG2_CLICK 0x40 +#define TSG2_ZOOM_IN 0x48 +#define TSG2_ZOOM_OUT 0x49 + +typedef enum { + FBDA_CANCEL, + FBDA_OK, + FBDA_YES, + FBDA_NO +} fb_dialog_action; + +typedef enum { + FBDT_PINCH2CLOSE, +#ifdef NOTYET + FBDT_OK, + FBDT_OKCANCEL, + FBDT_YESNO +#endif +} fb_dialog_type; + +struct tsstate { + int ts_x1; + int ts_y1; + int ts_x2; + int ts_y2; + int ts_count; + int ts_gesture; +}; + extern int touch_x0; extern int touch_y0; extern int touch_x1; @@ -42,22 +92,29 @@ extern const int fb_height; extern const int fb_width; +extern volatile u_int32_t *pfbp; +extern volatile u_int32_t *mtlctrl; + void multitouch_pole(void); void multitouch_filter(void); void multitouch_release_event(void); +struct tsstate* ts_poll(void); void fb_init(void); void fb_fini(void); u_int32_t fb_colour(int r, int g, int b); void fb_putpixel(int px, int py, int colour); void fb_fill(int col); void fb_fill_region(u_int32_t colour, int x, int y, int w, int h); +void fb_fill_buf(u_int32_t *buf, u_int32_t color, int width, int height); void fb_post(u_int32_t *buf); void fb_post_region(u_int32_t *buf, int x, int y, int w, int h); +void fb_save(u_int32_t *buf); void fb_blend(int blend_text_bg, int blend_text_fg, int blend_pixel, int wash); void fb_text_cursor(int x, int y); void fb_fade2off(void); void fb_fade2on(void); void fb_fade2text(int textbg_alpha); + void plot_line(int x1, int y1, int x2, int y2, unsigned int colour); void read_png_file(const char* file_name, u_int32_t* imgbuf, int maxwidth, int maxheight); @@ -66,5 +123,7 @@ int fb_get_font_width(void); void fb_render_text(const char *string, int expand, u_int32_t con, u_int32_t coff, u_int32_t *buffer, int w, int h); +fb_dialog_action fb_dialog(fb_dialog_type type, u_int32_t bcolor, + u_int32_t bgcolor, u_int32_t tcolor, const char *title, const char *text); #endif /* !_DE4TC_H_ */ ==== //depot/projects/ctsrd/cheribsd/src/ctsrd-lib/libde4tc/syscons-fonts.c#2 (text+ko) ==== @@ -52,8 +52,6 @@ const int font_width = 8; static int font_height; -extern volatile u_int32_t *pfbp; - /* * Guess which file to open. Try to open each combination of a specified set * of file name components. ==== //depot/projects/ctsrd/cheribsd/src/ctsrd/Makefile#4 (text+ko) ==== @@ -4,9 +4,11 @@ cycle_led \ flashit \ minifile \ + mtlctl \ pictview \ showimage \ - spinner + spinner \ + wr .include ==== //depot/projects/ctsrd/cheribsd/src/ctsrd/browser/browser.c#3 (text+ko) ==== @@ -31,9 +31,11 @@ #include #include +#include #include #include +#include #include #include #include @@ -43,25 +45,29 @@ #include #include #include +#include +#include +#define _WITH_DPRINTF #include #include #include #include #include #include +#include -#define BASEIMG "/usr/share/images/browser.png" -#define ICONS "/usr/share/images/icons.png" +#define BASEIMG "/usr/share/images/browser.png" +#define ICONS "/usr/share/images/icons.png" -#define vwhite(v) fb_colour((v), (v), (v)) -#define vred(v) fb_colour((v), 0, 0) -#define vgreen(v) fb_colour(0, (v), 0) -#define vblue(v) fb_colour(0, 0, (v)) -#define black vwhite(0) -#define white vwhite(0xFF) -#define red vred(0xFF) -#define green vgreen(0xFF) -#define blue vblue(0xFF) +#define vwhite(v) fb_colour((v), (v), (v)) +#define vred(v) fb_colour((v), 0, 0) +#define vgreen(v) fb_colour(0, (v), 0) +#define vblue(v) fb_colour(0, 0, (v)) +#define black vwhite(0) +#define white vwhite(0xFF) +#define red vred(0xFF) +#define green vgreen(0xFF) +#define blue vblue(0xFF) /* * Each file is displayed in a 266x40 box: @@ -75,37 +81,52 @@ * +--------------------------------------------------------------------------+ * |----------------------------------(800/3 = 266) pixels--------------------| */ -#define FROW 41 -#define NCOL 3 -#define NROW 10 -#define NSLOTS (NCOL * NROW) -#define CWIDTH 266 -#define RHEIGHT 40 -#define ICON_WH 32 -#define BORDER 4 -#define CHAR_HEIGHT 32 -#define CHAR_WIDTH 16 -#define TEXT_OFFSET (BORDER + ICON_WH + BORDER) -#define _TEXTSPACE (CWIDTH - (TEXT_OFFSET + BORDER)) -#define TEXTSPACE (_TEXTSPACE - _TEXTSPACE % CHAR_WIDTH) +#define FROW 41 +#define NCOL 3 +#define NROW 10 +#define NSLOTS (NCOL * NROW) +#define CWIDTH 266 +#define RHEIGHT 40 +#define ICON_WH 32 +#define BORDER 4 +#define CHAR_HEIGHT 32 +#define CHAR_WIDTH 16 +#define TEXT_OFFSET (BORDER + ICON_WH + BORDER) +#define _TEXTSPACE (CWIDTH - (TEXT_OFFSET + BORDER)) +#define TEXTSPACE (_TEXTSPACE - _TEXTSPACE % CHAR_WIDTH) +/* + * The get_action() function polls for input and returns a slot number + * (either a line on the console or a space on the screen) or one of + * these actions. Internally it handles changing protection modes. + */ +#define ACT_NEXT 100 +#define ACT_PREV 101 +#define ACT_QUIT 102 +#define ACT_REFRESH 103 /* Beginning and ending colums of each sandbox type's name */ -#define SB_IMG_SPACING 20 -#define SB_IMG_NONE_BCOL 145 -#define SB_IMG_CAPSICUM_BCOL 223 -#define SB_IMG_CHERI_BCOL 350 -#define SB_IMG_NONE_ECOL (SB_IMG_CAPSICUM_BCOL - SB_IMG_SPACING) -#define SB_IMG_CAPSICUM_ECOL (SB_IMG_CHERI_BCOL - SB_IMG_SPACING) -#define SB_IMG_CHERI_ECOL 445 -#define SB_MINCOL SB_IMG_NONE_BCOL -#define SB_MAXCOL SB_IMG_CHERI_ECOL -#define SB_MINROW (fb_height - 39) -#define SB_MAXROW (fb_height - 1) +#define SB_IMG_SPACING 20 +#define SB_IMG_NONE_BCOL 145 +#define SB_IMG_CAPSICUM_BCOL 223 +#define SB_IMG_CHERI_BCOL 350 +#define SB_IMG_NONE_ECOL (SB_IMG_CAPSICUM_BCOL - SB_IMG_SPACING) +#define SB_IMG_CAPSICUM_ECOL (SB_IMG_CHERI_BCOL - SB_IMG_SPACING) +#define SB_IMG_CHERI_ECOL 445 +#define SB_MINCOL SB_IMG_NONE_BCOL +#define SB_MAXCOL SB_IMG_CHERI_ECOL +#define SB_MINROW (fb_height - 39) +#define SB_MAXROW (fb_height - 1) /* Start offsets for browser columns */ const int colstart[] = {0, 267, 534}; +struct dent { + struct dirent *entry; + char *desc; + u_int32_t *icon; +}; + /* * List of mappings between icons in the icons.png file and values from * the get_desc() function. Processing is first match so most specific @@ -147,25 +168,30 @@ struct _sbdata { enum _sbtype sbtype; + int enabled; int bcol; int ecol; } sbdata[] = { - { SB_NONE, SB_IMG_NONE_BCOL, SB_IMG_NONE_ECOL }, - { SB_CAPSICUM, SB_IMG_CAPSICUM_BCOL, SB_IMG_CAPSICUM_ECOL }, - { SB_CHERI, SB_IMG_CHERI_BCOL, SB_IMG_CHERI_ECOL }, - { 0, 0, 0 } + { SB_NONE, 1, SB_IMG_NONE_BCOL, SB_IMG_NONE_ECOL }, + { SB_CAPSICUM, 1, SB_IMG_CAPSICUM_BCOL, SB_IMG_CAPSICUM_ECOL }, + { SB_CHERI, 0, SB_IMG_CHERI_BCOL, SB_IMG_CHERI_ECOL }, + { 0, 0, 0, 0 } }; static u_int32_t *bgimage; static u_int32_t *icons; static magic_t magic; +static int zombies_waiting = 0; static void usage(void) { - printf("usage: browser \n"); - printf(" browser -T \n"); + printf("usage: browser [-f] \n"); + printf(" browser [-f] -T \n"); + printf("\n"); + printf(" -f Fork and monitor a child instance\n"); + printf(" -T Don't open a tty\n"); exit(1); } @@ -191,6 +217,118 @@ } static void +handle_sigchld(int sig __unused) +{ + + zombies_waiting = 1; +} + +static void +writeall(int fd, const char *buf, ssize_t len) +{ + ssize_t wlen = 0, n; + + while (wlen != len) { + n = write(fd, buf + wlen, len - wlen); + if (n < 0) { + syslog(LOG_ALERT, "write failed: %s", strerror(errno)); + err(1, "write"); + } + wlen += n; + } +} + +static void +fork_child(void) +{ + int pmaster, pslave, status; + ssize_t rlen; + pid_t pid; + struct sigaction act; + struct pollfd pfd[1]; + char buf[1024]; + +restart: + if (openpty(&pmaster, &pslave, NULL, NULL, NULL) == -1) + err(1, "openpty"); + pid = fork(); + if (pid < 0) + err(1, "fork()"); + else if (pid == 0) { + close(pmaster); + if (login_tty(pslave) < 0) { + syslog(LOG_ALERT, "login_tty failed in child: %s", strerror(errno)); + err(1, "tty_login"); + } + /* return to begin normal processing */ + return; + } + + memset (&act, 0, sizeof(act)); + act.sa_handler = handle_sigchld; + + if (sigaction(SIGCHLD, &act, 0)) + err(1, "sigacation"); + + close(pslave); + /* + * We poll for data from the child's pty. Don't bother looking for + * tty input since the child couldn't do anything with it. + */ + pfd[0].fd = pmaster; + pfd[0].events = POLLIN; + for (;;) { + if (poll(pfd, 2, INFTIM) < 0) { + if (errno == EINTR) + continue; + syslog(LOG_ALERT, "poll failed with %s", + strerror(errno)); + err(1, "poll"); + } + if (zombies_waiting) { + printf("zombie!\n"); + wait4(pid, &status, 0, NULL); + if (WIFEXITED(status) && WEXITSTATUS(status) != 0) { + warnx("child exited with %d", + WEXITSTATUS(status)); + if (WEXITSTATUS(status) == 99) { + warnx("child was exploited"); + fb_dialog(FBDT_PINCH2CLOSE, black, + white, black, + "Browser Exited", +"Browser vulnerability exploited\n" +"\n" +"Pinch to close dialog and restart" + ); + } + } else if(WIFSIGNALED(status)) { + warn("child killed by signal %d", + WTERMSIG(status)); + } else { + printf("child exited cleanly, exiting\n"); + exit(0); + } + printf("child exited badly, restarting\n"); + zombies_waiting = 0; + close(pmaster); /* XXX: should we drain it first? */ + fb_fill_region(vwhite(128), 0, 0, fb_width, fb_height); + goto restart; + } + + if (pfd[0].revents & POLLIN) { + rlen = read(pmaster, buf, sizeof(buf)); + if (rlen < 0) { + err(1, "read"); + } else if (rlen > 0) + writeall(1, buf, rlen); + } + } + + + +} + +static void init_magic(void) { magic = magic_open(MAGIC_MIME_TYPE); if (magic == NULL) @@ -202,6 +340,104 @@ } } +static const char * +get_magic(int fd) +{ + pid_t pid; + ssize_t rlen; + char buf[4096], *desc; + const char *cdesc; + int pfd[2], status; + + rlen = read(fd, buf, sizeof(buf)); + if (rlen == -1) + return "read-error"; + if (rlen == 0) + return "empty"; + + switch (sbtype) { + case SB_NONE: + return magic_buffer(magic, buf, rlen); + case SB_CAPSICUM: + if (pipe(pfd) == -1) + err(1, "pipe()"); + pid = fork(); + if (pid < 0) + err(1, "fork()"); + else if (pid == 0) { + close(fd); + close(pfd[0]); + fb_fini(); + /* XXX: do more cleanup here */ + cap_enter(); + + cdesc = magic_buffer(magic, buf, rlen); + if (cdesc == NULL) + dprintf(pfd[1], "badmagic"); + else + dprintf(pfd[1], "%s", cdesc); + close(pfd[1]); + exit(0); + } else { + close(pfd[1]); + while (wait4(pid, &status, 0, NULL) == -1) + if (errno != EINTR) + err(1, "wait4()"); + if (WIFEXITED(status) && + WEXITSTATUS(status) != 0) { + warnx("child exited with %d", + WEXITSTATUS(status)); + close(pfd[0]); + return "badmagic"; + } + else if(WIFSIGNALED(status)) { + warn("child killed by signal %d", + WTERMSIG(status)); + close(pfd[0]); + return "badmagic"; + } else { + rlen = read(pfd[0], buf, 128); + close(pfd[0]); + if (rlen == -1) + return "read error"; + if (rlen == 0 || rlen == 1) + return "unknown"; + /* Don't trust the result */ + desc = buf + rlen; + strvisx(desc, buf, rlen - 1, 0); + return (desc); + } + } + break; + case SB_CHERI: + return "devil"; + default: + errx(1, "invalid sandbox type"); + } +} + +static void +init_bgimage(void) +{ + int i, j, pixel, sb; + + bgimage = malloc(sizeof(u_int32_t) * fb_height * fb_width); + if (bgimage == NULL) + err(1, "malloc"); + read_png_file(BASEIMG, bgimage, fb_width, fb_height); + + for (sb = 0; sbdata[sb].sbtype != 0; sb++) { + if (sbdata[sb].enabled) + continue; + for (j = SB_MINROW; j < SB_MAXROW; j++) { + for (i = sbdata[sb].bcol; i <= sbdata[sb].ecol; i++) { + pixel = (j * fb_width) + i; + bgimage[pixel] = vwhite(((bgimage[pixel] >> 24) & 0xFF) / 2); + } + } + } +} + static void update_sandbox(enum _sbtype type) { @@ -221,7 +457,7 @@ pixel = (j * fb_width) + i; if (bgimage[pixel] != black) { /* XXX: Assuming we're either blue or white */ - value = (bgimage[pixel] >> 8) & 0xFF; + value = (bgimage[pixel] >> 24) & 0xFF; if (value == 0) { printf("unexpected zero value, pixel %08x\n", bgimage[pixel]); @@ -236,21 +472,6 @@ } static const char * -get_magic(int fd) -{ - switch (sbtype) { - case SB_NONE: - return magic_descriptor(magic, fd); - case SB_CAPSICUM: - return "devil"; - case SB_CHERI: - return "devil"; - default: - return "unknown"; - } -} - -static const char * get_desc(int dfd, struct dirent *entry) { int fd, type; @@ -314,177 +535,191 @@ return (NULL); } +static void +update_slot(int s, u_int32_t *icon, const char *text) +{ + u_int32_t textbuf[TEXTSPACE*CHAR_HEIGHT]; + + memset(textbuf, 0, sizeof(textbuf)); + fb_render_text(text, 2, blue, black, textbuf, + TEXTSPACE, CHAR_HEIGHT); + fb_post_region(textbuf, colstart[(s/NROW)] + TEXT_OFFSET, + FROW + (RHEIGHT * (s % NROW)) + BORDER, TEXTSPACE, + CHAR_HEIGHT); + fb_post_region(icon, colstart[(s/NROW)] + BORDER, + FROW + (RHEIGHT * (s % NROW)) + BORDER, ICON_WH, ICON_WH); +} + +static int +get_action(void) +{ + struct tsstate *ts; + int col, i, row; + + printf("entering get_action\n"); + + for (;;) { + ts = ts_poll(); + printf("gesture = %x\n", ts->ts_gesture); + if (ts->ts_gesture == TSG_CLICK) { + if (ts->ts_y1 < FROW) { + if (ts->ts_x1 > fb_width - 40) + return (ACT_QUIT); + } else if (ts->ts_y1 <= FROW + (NROW * RHEIGHT)) { + row = (ts->ts_y1 - FROW) / RHEIGHT; + for (col = NCOL - 1; + col > 0 && ts->ts_x1 < colstart[col]; col--) + /* do nothing */; + printf("row = %d, col = %d\n", row, col); + return (col * NROW + row); + } else { + if (ts->ts_x1 >= SB_MINCOL && + ts->ts_x1 <= SB_MAXCOL) { + for (i =0 ; ts->ts_x1 < sbdata[i].bcol || + ts->ts_x1 > sbdata[i].ecol; i++) + /* do nothing */; + assert(sbdata[i].sbtype != 0); + if (sbdata[i].sbtype == sbtype || + !sbdata[i].enabled) + continue; + update_sandbox(sbdata[i].sbtype); + return (ACT_REFRESH); + } + } + } + if (ts->ts_gesture == TSG_EAST) + return (ACT_PREV); + if (ts->ts_gesture == TSG_WEST) + return (ACT_NEXT); + } + /* NOTREACHED */ + return (ACT_QUIT); +} + static int browsedir(int dfd) { - int f, i, j, s; - long curloc, nextloc; + int action, topslot, j, curslot, maxdents, nfd, ndents, retfd; DIR *dirp; - struct dirent *entry, *entry2; - u_int32_t *icon, textbuf[TEXTSPACE*CHAR_HEIGHT]; - char line[256]; - const char *desc; + struct dirent *entry; + struct dent **dents, *dent; if ((dirp = fdopendir(dfd)) == NULL) err(1, "fdopendir()"); + ndents = 0; + maxdents = 1024; + dents = malloc(sizeof(struct dent *) * maxdents); + if (dents == NULL) + err(1, "malloc dents"); + + while ((entry = readdir(dirp)) != NULL) { + if (ndents == maxdents) { + maxdents *= 2; + dents = realloc(dents, sizeof(struct dent) * maxdents); + if (dents == NULL) + err(1, "realloc dents"); + } + if (strcmp(".", entry->d_name) == 0) + continue; + dents[ndents] = malloc(sizeof(struct dent)); + if (dents[ndents] == NULL) + err(1, "malloc dent[%d]", ndents); + memcpy(&(dents[ndents]->entry), &entry, sizeof(entry)); + dents[ndents]->desc = NULL; + dents[ndents]->icon = NULL; + ndents++; + } + + + topslot = 0; +render: fb_fill_region(black, colstart[0], FROW, fb_width, NROW * RHEIGHT); - - curloc = telldir(dirp); - nextloc = 0; - i = 0; -start: - seekdir(dirp, curloc); - /* telldir() return values are only good once so make a new copy! */ - curloc = telldir(dirp); - s = 0; - if (i > 0) { - printf("p %20s\n", "previous page"); - memset(textbuf, 0, sizeof(textbuf)); - fb_render_text("previous page", 2, white, black, textbuf, - TEXTSPACE, CHAR_HEIGHT); - fb_post_region(textbuf, colstart[(s/NROW)] + TEXT_OFFSET, - FROW + (RHEIGHT * (s % NROW)) + BORDER, TEXTSPACE, - CHAR_HEIGHT); - icon = get_icon("prev"); - fb_post_region(icon, colstart[(s/NROW)] + BORDER, - FROW + (RHEIGHT * (s % NROW)) + BORDER, ICON_WH, ICON_WH); - s = 1; + for(curslot = 0; curslot < NSLOTS && topslot + curslot < ndents; + curslot++) { + dent = dents[topslot + curslot]; + if (dent->desc == NULL) + dent->desc = strdup(get_desc(dfd, dent->entry)); + if (dent->icon == NULL) + dent->icon = get_icon(dent->desc); + + printf("%2d %20s %s\n", curslot, dent->entry->d_name, + dent->desc); + update_slot(curslot, dent->icon, dent->entry->d_name); } - entry = NULL; /* XXX: gcc warning */ - while(s < NSLOTS - 1 && (entry = readdir(dirp)) != NULL) { - desc = get_desc(dfd, entry); - printf("%2d %20s %s\n", s, entry->d_name, desc); - memset(textbuf, 0, sizeof(textbuf)); - fb_render_text(entry->d_name, 2, white, black, textbuf, - TEXTSPACE, CHAR_HEIGHT); - fb_post_region(textbuf, colstart[(s/NROW)]+TEXT_OFFSET, - FROW + (RHEIGHT * (s % NROW)) + BORDER, TEXTSPACE, CHAR_HEIGHT); - icon = get_icon(desc); - fb_post_region(icon, colstart[(s/NROW)] + BORDER, - FROW + (RHEIGHT * (s % NROW)) + BORDER, ICON_WH, ICON_WH); - s++; - } + if (curslot == NSLOTS) + curslot--; - nextloc = telldir(dirp); - if (s == NSLOTS - 1 && entry != NULL) { - /* - * If there are at least two more files then we don't want to - * display a "next" button and instead want either nothing or - * the final entry. - */ - entry = readdir(dirp); - if (entry == NULL) - nextloc = 0; - else { - entry2 = readdir(dirp); - if (entry2 == NULL) { - desc = get_desc(dfd, entry); - printf("%2d %20s %s\n", s, - entry->d_name, desc); - memset(textbuf, 0, sizeof(textbuf)); - fb_render_text(entry->d_name, 2, white, black, - textbuf, TEXTSPACE, CHAR_HEIGHT); - fb_post_region(textbuf, - colstart[(s/NROW)]+TEXT_OFFSET, - FROW + (RHEIGHT * (s % NROW)) + BORDER, - TEXTSPACE, CHAR_HEIGHT); - icon = get_icon(desc); - fb_post_region(icon, - colstart[(s/NROW)] + BORDER, - FROW + (RHEIGHT * (s % NROW)) + BORDER, - ICON_WH, ICON_WH); >>> TRUNCATED FOR MAIL (1000 lines) <<<