diff options
93 files changed, 477 insertions, 304 deletions
diff --git a/bin/ed/POSIX b/bin/ed/POSIX index f81bb0c..dab1a2b 100644 --- a/bin/ed/POSIX +++ b/bin/ed/POSIX @@ -75,7 +75,7 @@ DEVIATIONS 2) Since the behavior of `u' (undo) within a `g' (global) command list is not specified by POSIX, it follows the behavior of the SunOS ed: undo forces a global command list to be executed only once, rather than - for each line matching a global pattern. In addtion, each instance of + for each line matching a global pattern. In addition, each instance of `u' within a global command undoes all previous commands (including undo's) in the command list. This seems the best way, since the alternatives are either too complicated to implement or too confusing @@ -83,7 +83,7 @@ DEVIATIONS The global/undo combination is useful for masking errors that would otherwise cause a script to fail. For instance, an ed script - to remove any occurences of either `censor1' or `censor2' might be + to remove any occurrences of either `censor1' or `censor2' might be written as: ed - file <<EOF 1g/.*/u\ diff --git a/bin/pax/ar_io.c b/bin/pax/ar_io.c index 0946a88..c3b35a7 100644 --- a/bin/pax/ar_io.c +++ b/bin/pax/ar_io.c @@ -204,7 +204,7 @@ ar_open(const char *name) /* * set default blksz on read. APPNDs writes rdblksz on the last volume * On all new archive volumes, we shift to wrblksz (if the user - * specified one, otherwize we will continue to use rdblksz). We + * specified one, otherwise we will continue to use rdblksz). We * must to set blocksize based on what kind of device the archive is * stored. */ @@ -381,7 +381,7 @@ ar_close(void) /* * If we have not determined the format yet, we just say how many bytes - * we have skipped over looking for a header to id. there is no way we + * we have skipped over looking for a header to id. There is no way we * could have written anything yet. */ if (frmt == NULL) { @@ -595,7 +595,7 @@ ar_read(char *buf, int cnt) * Return: * Number of bytes written. 0 indicates end of volume reached and with no * flaws (as best that can be detected). A -1 indicates an unrecoverable - * error in the archive occured. + * error in the archive occurred. */ int @@ -679,7 +679,7 @@ ar_write(char *buf, int bsz) * if this is a block aligned archive format, we may have a bad archive * if the format wants the header to start at a BLKMULT boundary. While * we can deal with the mis-aligned data, it violates spec and other - * archive readers will likely fail. if the format is not block + * archive readers will likely fail. If the format is not block * aligned, the user may be lucky (and the archive is ok). */ if (res >= 0) { @@ -794,7 +794,7 @@ ar_rdsync(void) /* * ar_fow() - * Move the I/O position within the archive foward the specified number of + * Move the I/O position within the archive forward the specified number of * bytes as supported by the device. If we cannot move the requested * number of bytes, return the actual number of bytes moved in skipped. * Return: @@ -813,7 +813,7 @@ ar_fow(off_t sksz, off_t *skipped) return(0); /* - * we cannot move foward at EOF or error + * we cannot move forward at EOF or error */ if (lstrval <= 0) return(lstrval); @@ -822,7 +822,7 @@ ar_fow(off_t sksz, off_t *skipped) * Safer to read forward on devices where it is hard to find the end of * the media without reading to it. With tapes we cannot be sure of the * number of physical blocks to skip (we do not know physical block - * size at this point), so we must only read foward on tapes! + * size at this point), so we must only read forward on tapes! */ if (artyp != ISREG) return(0); @@ -907,7 +907,7 @@ ar_rev(off_t sksz) /* * we may try to go backwards past the start when the archive - * is only a single record. If this hapens and we are on a + * is only a single record. If this happens and we are on a * multi volume archive, we need to go to the end of the * previous volume and continue our movement backwards from * there. @@ -1046,7 +1046,7 @@ get_phys(void) } /* - * read foward to the file mark, then back up in front of the filemark + * read forward to the file mark, then back up in front of the filemark * (this is a bit paranoid, but should be safe to do). */ while ((res = read(arfd, scbuf, sizeof(scbuf))) > 0) diff --git a/bin/pax/ar_subs.c b/bin/pax/ar_subs.c index da275c2d..bc808ab 100644 --- a/bin/pax/ar_subs.c +++ b/bin/pax/ar_subs.c @@ -854,7 +854,7 @@ copy(void) } /* - * Non standard -Y and -Z flag. When the exisiting file is + * Non standard -Y and -Z flag. When the existing file is * same age or newer skip */ if ((Yflag || Zflag) && ((lstat(arcn->name, &sb) == 0))) { @@ -1096,7 +1096,7 @@ next_head(ARCHD *arcn) } /* - * ok got a valid header, check for trailer if format encodes it in the + * ok got a valid header, check for trailer if format encodes it in * the header. */ if (frmt->inhead && ((*frmt->trail_cpio)(arcn) == 0)) { diff --git a/bin/pax/buf_subs.c b/bin/pax/buf_subs.c index 1d01d4e..995e34c 100644 --- a/bin/pax/buf_subs.c +++ b/bin/pax/buf_subs.c @@ -145,7 +145,7 @@ rd_start(void) } if (wrblksz % BLKMULT) { paxwarn(1, "Write block size %d is not a %d byte multiple", - wrblksz, BLKMULT); + wrblksz, BLKMULT); return(-1); } } @@ -182,13 +182,13 @@ cp_start(void) * the start of the header of the first file added to the archive. The * format specific end read function tells us how many bytes to move * backwards in the archive to be positioned BEFORE the trailer. Two - * different postions have to be adjusted, the O.S. file offset (e.g. the + * different positions have to be adjusted, the O.S. file offset (e.g. the * position of the tape head) and the write point within the data we have * stored in the read (soon to become write) buffer. We may have to move * back several records (the number depends on the size of the archive * record and the size of the format trailer) to read up the record where * the first byte of the trailer is recorded. Trailers may span (and - * overlap) record boundries. + * overlap) record boundaries. * We first calculate which record has the first byte of the trailer. We * move the OS file offset back to the start of this record and read it * up. We set the buffer write pointer to be at this byte (the byte where @@ -196,10 +196,10 @@ cp_start(void) * start of this record so a flush of this buffer will replace the record * in the archive. * A major problem is rewriting this last record. For archives stored - * on disk files, this is trival. However, many devices are really picky + * on disk files, this is trivial. However, many devices are really picky * about the conditions under which they will allow a write to occur. * Often devices restrict the conditions where writes can be made writes, - * so it may not be feasable to append archives stored on all types of + * so it may not be feasible to append archives stored on all types of * devices. * Return: * 0 for success, -1 for failure @@ -365,7 +365,7 @@ rd_sync(void) * pback() * push the data used during the archive id phase back into the I/O * buffer. This is required as we cannot be sure that the header does NOT - * overlap a block boundry (as in the case we are trying to recover a + * overlap a block boundary (as in the case we are trying to recover a * flawed archived). This was not designed to be used for any other * purpose. (What software engineering, HA!) * WARNING: do not even THINK of pback greater than BLKMULT, unless the @@ -382,7 +382,7 @@ pback(char *pt, int cnt) /* * rd_skip() - * skip foward in the archive during an archive read. Used to get quickly + * skip forward in the archive during an archive read. Used to get quickly * past file data and padding for files the user did NOT select. * Return: * 0 if ok, -1 failure, and 1 when EOF on the archive volume was detected. @@ -396,7 +396,7 @@ rd_skip(off_t skcnt) off_t skipped = 0; /* - * consume what data we have in the buffer. If we have to move foward + * consume what data we have in the buffer. If we have to move forward * whole records, we call the low level skip function to see if we can * move within the archive without doing the expensive reads on data we * do not want. @@ -453,7 +453,7 @@ rd_skip(off_t skcnt) * wr_fin() * flush out any data (and pad if required) the last block. We always pad * with zero (even though we do not have to). Padding with 0 makes it a - * lot easier to recover if the archive is damaged. zero paddding SHOULD + * lot easier to recover if the archive is damaged. zero padding SHOULD * BE a requirement.... */ @@ -530,7 +530,7 @@ rd_wrbuf(char *in, int cpcnt) /* * read error, return what we got (or the error if * no data was copied). The caller must know that an - * error occured and has the best knowledge what to + * error occurred and has the best knowledge what to * do with it */ if ((res = cpcnt - incnt) > 0) @@ -584,7 +584,7 @@ wr_skip(off_t skcnt) /* * wr_rdfile() - * fill write buffer with the contents of a file. We are passed an open + * fill write buffer with the contents of a file. We are passed an open * file descriptor to the file and the archive structure that describes the * file we are storing. The variable "left" is modified to contain the * number of bytes of the file we were NOT able to write to the archive. @@ -671,7 +671,7 @@ rd_wrfile(ARCHD *arcn, int ofd, off_t *left) int isem = 1; int rem; int sz = MINFBSZ; - struct stat sb; + struct stat sb; u_long crc = 0L; /* @@ -884,7 +884,7 @@ buf_flush(int bufcnt) /* * if we have reached the user specified byte count for each archive - * volume, prompt for the next volume. (The non-standrad -R flag). + * volume, prompt for the next volume. (The non-standard -R flag). * NOTE: If the wrlimit is smaller than wrcnt, we will always write * at least one record. We always round limit UP to next blocksize. */ @@ -944,7 +944,7 @@ buf_flush(int bufcnt) } else if (cnt > 0) { /* * Oh drat we got a partial write! - * if format doesnt care about alignment let it go, + * if format doesn't care about alignment let it go, * we warned the user in ar_write().... but this means * the last record on this volume violates pax spec.... */ diff --git a/bin/pax/cpio.c b/bin/pax/cpio.c index 67602fa..0d9cc9f 100644 --- a/bin/pax/cpio.c +++ b/bin/pax/cpio.c @@ -627,7 +627,7 @@ vcpio_rd(ARCHD *arcn, char *buf) return(-1); /* - * skip padding. header + filename is aligned to 4 byte boundries + * skip padding. header + filename is aligned to 4 byte boundaries */ if (rd_skip((off_t)(VCPIO_PAD(sizeof(HD_VCPIO) + nsz))) < 0) return(-1); @@ -942,7 +942,7 @@ bcpio_rd(ARCHD *arcn, char *buf) return(-1); /* - * header + file name are aligned to 2 byte boundries, skip if needed + * header + file name are aligned to 2 byte boundaries, skip if needed */ if (rd_skip((off_t)(BCPIO_PAD(sizeof(HD_BCPIO) + nsz))) < 0) return(-1); @@ -989,8 +989,8 @@ bcpio_endrd(void) * bcpio_wr() * copy the data in the ARCHD to buffer in old binary cpio format * There is a real chance of field overflow with this critter. So we - * always check the conversion is ok. nobody in his their right mind - * should write an achive in this format... + * always check that the conversion is ok. nobody in their right mind + * should write an archive in this format... * Return * 0 if file has data to be written after the header, 1 if file has NO * data to write after the header, -1 if archive write failed diff --git a/bin/pax/file_subs.c b/bin/pax/file_subs.c index 0fad68e..5e4cce1 100644 --- a/bin/pax/file_subs.c +++ b/bin/pax/file_subs.c @@ -84,9 +84,9 @@ file_creat(ARCHD *arcn) * works. We have to take special handling when the file does exist. To * detect this, we use O_EXCL. For example when trying to create a * file and a character device or fifo exists with the same name, we - * can accidently open the device by mistake (or block waiting to open) - * If we find that the open has failed, then figure spend the effort to - * figure out why. This strategy was found to have better average + * can accidentally open the device by mistake (or block waiting to + * open). If we find that the open has failed, then spend the effort + * to figure out why. This strategy was found to have better average * performance in common use than checking the file (and the path) * first with lstat. */ @@ -559,7 +559,7 @@ chk_path( char *name, uid_t st_uid, gid_t st_gid) for(;;) { /* - * work foward from the first / and check each part of the path + * work forward from the first / and check each part of the path */ spt = strchr(spt, '/'); if (spt == NULL) @@ -600,7 +600,7 @@ chk_path( char *name, uid_t st_uid, gid_t st_gid) (void)set_ids(name, st_uid, st_gid); /* - * make sure the user doen't have some strange umask that + * make sure the user doesn't have some strange umask that * causes this newly created directory to be unusable. We fix * the modes and restore them back to the creation default at * the end of pax @@ -716,11 +716,11 @@ set_pmode(char *fnm, mode_t mode) * uses lseek whenever it detects the input data is all 0 within that * file block. In more detail, the strategy is as follows: * While the input is all zero keep doing an lseek. Keep track of when we - * pass over file block boundries. Only write when we hit a non zero + * pass over file block boundaries. Only write when we hit a non zero * input. once we have written a file block, we continue to write it to * the end (we stop looking at the input). When we reach the start of the * next file block, start checking for zero blocks again. Working on file - * block boundries significantly reduces the overhead when copying files + * block boundaries significantly reduces the overhead when copying files * that are NOT very sparse. This overhead (when compared to a write) is * almost below the measurement resolution on many systems. Without it, * files with holes cannot be safely copied. It does has a side effect as @@ -923,7 +923,7 @@ set_crc(ARCHD *arcn, int fd) /* * safety check. we want to avoid archiving files that are active as - * they can create inconsistant archive copies. + * they can create inconsistent archive copies. */ if (cpcnt != arcn->sb.st_size) paxwarn(1, "File changed size %s", arcn->org_name); diff --git a/bin/pax/ftree.c b/bin/pax/ftree.c index 1fb06ac..9e07882 100644 --- a/bin/pax/ftree.c +++ b/bin/pax/ftree.c @@ -101,8 +101,8 @@ ftree_start(void) /* * optional user flags that effect file traversal * -H command line symlink follow only (half follow) - * -L follow sylinks (logical) - * -P do not follow sylinks (physical). This is the default. + * -L follow symlinks (logical) + * -P do not follow symlinks (physical). This is the default. * -X do not cross over mount points * -t preserve access times on files read. * -n select only the first member of a file tree when a match is found diff --git a/bin/pax/options.c b/bin/pax/options.c index 6f43940..5fd641f 100644 --- a/bin/pax/options.c +++ b/bin/pax/options.c @@ -887,7 +887,7 @@ tar_options(int argc, char **argv) sawpat = 1; } /* - * if patterns were added, we are doing chdir() + * if patterns were added, we are doing chdir() * on a file-by-file basis, else, just one * global chdir (if any) after opening input. */ diff --git a/bin/pax/pat_rep.c b/bin/pax/pat_rep.c index 62539a2..7b07975 100644 --- a/bin/pax/pat_rep.c +++ b/bin/pax/pat_rep.c @@ -397,7 +397,7 @@ pat_sel(ARCHD *arcn) /* * should never happen.... */ - paxwarn(1, "Pattern list inconsistant"); + paxwarn(1, "Pattern list inconsistent"); return(-1); } *ppt = pt->fow; diff --git a/bin/pax/pax.c b/bin/pax/pax.c index cb19b99..040db74 100644 --- a/bin/pax/pax.c +++ b/bin/pax/pax.c @@ -372,7 +372,7 @@ gen_init(void) /* * signal handling to reset stored directory times and modes. Since * we deal with broken pipes via failed writes we ignore it. We also - * deal with any file size limit thorugh failed writes. Cpu time + * deal with any file size limit thorough failed writes. Cpu time * limits are caught and a cleanup is forced. */ if ((sigemptyset(&s_mask) < 0) || (sigaddset(&s_mask, SIGTERM) < 0) || diff --git a/bin/pax/sel_subs.c b/bin/pax/sel_subs.c index bd5c560..fe131f7 100644 --- a/bin/pax/sel_subs.c +++ b/bin/pax/sel_subs.c @@ -376,7 +376,7 @@ trng_add(char *str) } /* - * by default we only will check file mtime, but usee can specify + * by default we only will check file mtime, but the user can specify * mtime, ctime (inode change time) or both. */ if ((flgpt == NULL) || (*flgpt == '\0')) diff --git a/bin/pax/tables.c b/bin/pax/tables.c index 4e96fea..69273fe 100644 --- a/bin/pax/tables.c +++ b/bin/pax/tables.c @@ -209,7 +209,7 @@ chk_lnk(ARCHD *arcn) * purg_lnk * remove reference for a file that we may have added to the data base as * a potential source for hard links. We ended up not using the file, so - * we do not want to accidently point another file at it later on. + * we do not want to accidentally point another file at it later on. */ void @@ -306,14 +306,14 @@ lnk_end(void) * An append with an -u must read the archive and store the modification time * for every file on that archive before starting the write phase. It is clear * that this is one HUGE database. To save memory space, the actual file names - * are stored in a scatch file and indexed by an in memory hash table. The + * are stored in a scratch file and indexed by an in memory hash table. The * hash table is indexed by hashing the file path. The nodes in the table store * the length of the filename and the lseek offset within the scratch file * where the actual name is stored. Since there are never any deletions to this * table, fragmentation of the scratch file is never an issue. Lookups seem to * not exhibit any locality at all (files in the database are rarely * looked up more than once...). So caching is just a waste of memory. The - * only limitation is the amount of scatch file space available to store the + * only limitation is the amount of scratch file space available to store the * path names. */ diff --git a/bin/pax/tar.c b/bin/pax/tar.c index 05e8be5..4ee2786a8 100644 --- a/bin/pax/tar.c +++ b/bin/pax/tar.c @@ -291,7 +291,7 @@ tar_chksm(char *blk, int len) /* * tar_id() * determine if a block given to us is a valid tar header (and not a USTAR - * header). We have to be on the lookout for those pesky blocks of all + * header). We have to be on the lookout for those pesky blocks of all * zero's. * Return: * 0 if a tar header, -1 otherwise diff --git a/bin/ps/ps.c b/bin/ps/ps.c index 6bb94bf..fb2b752 100644 --- a/bin/ps/ps.c +++ b/bin/ps/ps.c @@ -219,7 +219,7 @@ main(int argc, char *argv[]) case 'A': /* * Exactly the same as `-ax'. This has been - * added for compatability with SUSv3, but for + * added for compatibility with SUSv3, but for * now it will not be described in the man page. */ nselectors++; diff --git a/bin/sh/eval.c b/bin/sh/eval.c index b19c24f..a50c53f 100644 --- a/bin/sh/eval.c +++ b/bin/sh/eval.c @@ -714,15 +714,9 @@ evalcommand(union node *cmd, int flags, struct backcmd *backcmd) oexitstatus = exitstatus; exitstatus = 0; for (argp = cmd->ncmd.args ; argp ; argp = argp->narg.next) { - char *p = argp->narg.text; - if (varflag && is_name(*p)) { - do { - p++; - } while (is_in_name(*p)); - if (*p == '=') { - expandarg(argp, &varlist, EXP_VARTILDE); - continue; - } + if (varflag && isassignment(argp->narg.text)) { + expandarg(argp, &varlist, EXP_VARTILDE); + continue; } expandarg(argp, &arglist, EXP_FULL | EXP_TILDE); varflag = 0; diff --git a/bin/sh/main.c b/bin/sh/main.c index d962920..408d37c 100644 --- a/bin/sh/main.c +++ b/bin/sh/main.c @@ -281,7 +281,6 @@ readcmdfile(const char *name) static char * find_dot_file(char *basename) { - static char localname[FILENAME_MAX+1]; char *fullname; const char *path = pathval(); struct stat statb; @@ -291,10 +290,14 @@ find_dot_file(char *basename) return basename; while ((fullname = padvance(&path, basename)) != NULL) { - strcpy(localname, fullname); + if ((stat(fullname, &statb) == 0) && S_ISREG(statb.st_mode)) { + /* + * Don't bother freeing here, since it will + * be freed by the caller. + */ + return fullname; + } stunalloc(fullname); - if ((stat(fullname, &statb) == 0) && S_ISREG(statb.st_mode)) - return localname; } return basename; } diff --git a/bin/sh/mkinit.c b/bin/sh/mkinit.c index 82f2a55..866b238 100644 --- a/bin/sh/mkinit.c +++ b/bin/sh/mkinit.c @@ -75,7 +75,7 @@ __FBSDID("$FreeBSD$"); /* - * A text structure is basicly just a string that grows as more characters + * A text structure is basically just a string that grows as more characters * are added onto the end of it. It is implemented as a linked list of * blocks of characters. The routines addstr and addchar append a string * or a single character, respectively, to a text structure. Writetext diff --git a/bin/sh/mktokens b/bin/sh/mktokens index bdc873e..b85c8cb9 100644 --- a/bin/sh/mktokens +++ b/bin/sh/mktokens @@ -50,7 +50,6 @@ TPIPE 0 "|" TLP 0 "(" TRP 1 ")" TENDCASE 1 ";;" -TENDBQUOTE 1 "`" TREDIR 0 redirection TWORD 0 word TIF 0 "if" diff --git a/bin/sh/parser.c b/bin/sh/parser.c index 192769b..151970b 100644 --- a/bin/sh/parser.c +++ b/bin/sh/parser.c @@ -619,6 +619,7 @@ simplecmd(union node **rpp, union node *redir) union node **orig_rpp = rpp; union node *n = NULL; int special; + int savecheckkwd; /* If we don't have any redirections already, then we must reset */ /* rpp to be the address of the local redir variable. */ @@ -634,7 +635,10 @@ simplecmd(union node **rpp, union node *redir) */ orig_rpp = rpp; + savecheckkwd = CHKALIAS; + for (;;) { + checkkwd = savecheckkwd; if (readtoken() == TWORD) { n = (union node *)stalloc(sizeof (struct narg)); n->type = NARG; @@ -642,6 +646,8 @@ simplecmd(union node **rpp, union node *redir) n->narg.backquote = backquotelist; *app = n; app = &n->narg.next; + if (savecheckkwd != 0 && !isassignment(wordtext)) + savecheckkwd = 0; } else if (lasttoken == TREDIR) { *rpp = n = redirnode; rpp = &n->nfile.next; @@ -1859,6 +1865,22 @@ goodname(const char *name) } +int +isassignment(const char *p) +{ + if (!is_name(*p)) + return 0; + p++; + for (;;) { + if (*p == '=') + return 1; + else if (!is_in_name(*p)) + return 0; + p++; + } +} + + /* * Called when an unexpected token is read during the parse. The argument * is the token that is expected, or -1 if more than one type of token can diff --git a/bin/sh/parser.h b/bin/sh/parser.h index dfbda86..e213e21 100644 --- a/bin/sh/parser.h +++ b/bin/sh/parser.h @@ -80,4 +80,5 @@ extern const char *const parsekwd[]; union node *parsecmd(int); void fixredir(union node *, const char *, int); int goodname(const char *); +int isassignment(const char *); char *getprompt(void *); diff --git a/bin/sh/sh.1 b/bin/sh/sh.1 index a74e677..42e55d3 100644 --- a/bin/sh/sh.1 +++ b/bin/sh/sh.1 @@ -32,7 +32,7 @@ .\" from: @(#)sh.1 8.6 (Berkeley) 5/4/95 .\" $FreeBSD$ .\" -.Dd May 20, 2011 +.Dd May 21, 2011 .Dt SH 1 .Os .Sh NAME @@ -506,8 +506,8 @@ The following are keywords: An alias is a name and corresponding value set using the .Ic alias built-in command. -Whenever a keyword may occur (see above), -and after checking for keywords, the shell +Wherever the command word of a simple command may occur, +and after checking for keywords if a keyword may occur, the shell checks the word to see if it matches an alias. If it does, it replaces it in the input stream with its value. For example, if there is an alias called diff --git a/lib/clang/clang.build.mk b/lib/clang/clang.build.mk index da53455..f443f1d 100644 --- a/lib/clang/clang.build.mk +++ b/lib/clang/clang.build.mk @@ -15,7 +15,7 @@ CFLAGS+= -O1 TARGET_ARCH?= ${MACHINE_ARCH} # XXX: 8.0, to keep __FreeBSD_cc_version happy -CFLAGS+=-DLLVM_HOSTTRIPLE=\"${TARGET_ARCH}-undermydesk-freebsd9.0\" +CFLAGS+=-DLLVM_HOSTTRIPLE=\"${TARGET_ARCH:C/amd64/x86_64/}-unknown-freebsd9.0\" .ifndef LLVM_REQUIRES_EH CXXFLAGS+=-fno-exceptions diff --git a/sbin/atacontrol/atacontrol.8 b/sbin/atacontrol/atacontrol.8 index 9ee6c2b..6c44687 100644 --- a/sbin/atacontrol/atacontrol.8 +++ b/sbin/atacontrol/atacontrol.8 @@ -1,5 +1,5 @@ .\" -.\" Copyright (c) 2000,2001,2002 Søren Schmidt <sos@FreeBSD.org> +.\" Copyright (c) 2000,2001,2002 Søren Schmidt <sos@FreeBSD.org> .\" All rights reserved. .\" .\" Redistribution and use in source and binary forms, with or without diff --git a/sbin/atacontrol/atacontrol.c b/sbin/atacontrol/atacontrol.c index 4354ddf..7b67821 100644 --- a/sbin/atacontrol/atacontrol.c +++ b/sbin/atacontrol/atacontrol.c @@ -1,5 +1,5 @@ /*- - * Copyright (c) 2000 - 2006 Søren Schmidt <sos@FreeBSD.org> + * Copyright (c) 2000 - 2006 Søren Schmidt <sos@FreeBSD.org> * All rights reserved. * * Redistribution and use in source and binary forms, with or without diff --git a/sbin/hastd/secondary.c b/sbin/hastd/secondary.c index 58b8f69..176d047 100644 --- a/sbin/hastd/secondary.c +++ b/sbin/hastd/secondary.c @@ -514,6 +514,7 @@ requnpack(struct hast_resource *res, struct hio *hio) goto end; } switch (hio->hio_cmd) { + case HIO_FLUSH: case HIO_KEEPALIVE: break; case HIO_READ: diff --git a/sbin/mount_reiserfs/mount_reiserfs.8 b/sbin/mount_reiserfs/mount_reiserfs.8 index a63dfdf..f246475 100644 --- a/sbin/mount_reiserfs/mount_reiserfs.8 +++ b/sbin/mount_reiserfs/mount_reiserfs.8 @@ -1,7 +1,7 @@ .\" .\" Copyright (c) 1993,1994 Christopher G. Demetriou .\" Copyright (c) 1999 Semen Ustimenko -.\" Copyright (c) 2005 Jean-Sébastien Pédron +.\" Copyright (c) 2005 Jean-Sébastien Pédron .\" All rights reserved. .\" .\" Redistribution and use in source and binary forms, with or without diff --git a/sbin/mount_reiserfs/mount_reiserfs.c b/sbin/mount_reiserfs/mount_reiserfs.c index 5c4e6fc..5fccfbe 100644 --- a/sbin/mount_reiserfs/mount_reiserfs.c +++ b/sbin/mount_reiserfs/mount_reiserfs.c @@ -1,5 +1,5 @@ /*- - * Copyright (c) 2005 Jean-Sébastien Pédron + * Copyright (c) 2005 Jean-Sébastien Pédron * All rights reserved. * * Redistribution and use in source and binary forms, with or without diff --git a/share/examples/diskless/README.TEMPLATING b/share/examples/diskless/README.TEMPLATING index b094267..28edcae 100644 --- a/share/examples/diskless/README.TEMPLATING +++ b/share/examples/diskless/README.TEMPLATING @@ -136,7 +136,7 @@ be useful to set up clients and server for diskless boot. should never be overwritten by the templating copy. - TYPICAL CUSTOMIZED CONFIGRATION SOFTLINKS + TYPICAL CUSTOMIZED CONFIGURATION SOFTLINKS The following files typically need to be turned into softlinks to /conf/ME/<filename>: @@ -261,9 +261,9 @@ be useful to set up clients and server for diskless boot. identity.pub WHEN INITIALLY CONVERTING A TARGET MACHINE TO USE TEMPLATING, ALWAYS - MAKE A FULL BACKUP OF THE TARGET MACHINE FIRST! You may accidently delete - files on the target during the conversion due to forgetting to enter - items into appropriate .cpignore files on the source. + MAKE A FULL BACKUP OF THE TARGET MACHINE FIRST! You may accidentally + delete files on the target during the conversion due to forgetting to + enter items into appropriate .cpignore files on the source. SECURITY CONSIDERATIONS WITH NFS ROOT EXPORT FROM TEMPLATE MACHINE SECURITY CONSIDERATIONS WITH NFS USR EXPORT FROM TEMPLATE MACHINE diff --git a/share/examples/drivers/make_device_driver.sh b/share/examples/drivers/make_device_driver.sh index 2acea33..d7b9259 100755 --- a/share/examples/drivers/make_device_driver.sh +++ b/share/examples/drivers/make_device_driver.sh @@ -485,7 +485,7 @@ ${1}_isa_probe (device_t device) /*rid*/0, membase, memsize); /* * We found one, return non-positive numbers.. - * Return -N if we cant handle it, but not well. + * Return -N if we can't handle it, but not well. * Return -2 if we would LIKE the device. * Return -1 if we want it a lot. * Return 0 if we MUST get the device. diff --git a/share/examples/libvgl/demo.c b/share/examples/libvgl/demo.c index 781f6a1..c2edfbc 100644 --- a/share/examples/libvgl/demo.c +++ b/share/examples/libvgl/demo.c @@ -1,5 +1,5 @@ /*- - * Copyright (c) 1991-1997 Søren Schmidt + * Copyright (c) 1991-1997 Søren Schmidt * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -42,15 +42,15 @@ main(int argc, char **argv) // set graphics mode, here 320x240 256 colors // supported modes are (from <sys/consio.h>): - // SW_VGA_CG320: std VGA 320x200 256 colors - // SW_VGA_MODEX: Modex VGA 320x240 256 colors - // SW_VGA_VG640: std VGA 640x480 16 colors + // SW_VGA_CG320: std VGA 320x200 256 colors + // SW_VGA_MODEX: Modex VGA 320x240 256 colors + // SW_VGA_VG640: std VGA 640x480 16 colors VGLInit(SW_VGA_MODEX); // initialize mouse and show pointer VGLMouseInit(VGL_MOUSESHOW); - // VGLDisplay is a ptr to a struct Bitmap defined and initialized by + // VGLDisplay is a ptr to a struct Bitmap defined and initialized by // libvgl. The Bitmap points directly to screen memory etc. xsize=VGLDisplay->Xsize; ysize=VGLDisplay->Ysize; @@ -61,7 +61,7 @@ main(int argc, char **argv) VGLClear(tmp, 0); // fill the screen with colored lines - for (y=0; y<ysize; y++) + for (y=0; y<ysize; y++) VGLLine(VGLDisplay, 0, y, xsize-1, y, y/2 % 256); // draw some lines and circles just to show off @@ -72,7 +72,7 @@ main(int argc, char **argv) VGLEllipse(VGLDisplay, 256, 0, 256, 256, 63); VGLEllipse(VGLDisplay, 0, 256, 256, 256, 0); - // some text is also usefull + // some text is also useful VGLBitmapString(VGLDisplay, 100,100, "This is text", 63, 0, 0, VGL_DIR_RIGHT); sleep(2); @@ -86,7 +86,7 @@ main(int argc, char **argv) "This is text", 63, 0, 0, VGL_DIR_DOWN); sleep(2); - // now show some simple bitblit + // now show some simple bitblit for (i=0; i<256; i++) for (j=0; j<256; j++) tmp->Bitmap[i+256*j] = i%16; @@ -106,12 +106,12 @@ main(int argc, char **argv) // loop around drawing and copying while (++i) { VGLBitmapCopy(VGLDisplay, rand()%xsize, rand()%ysize, - VGLDisplay, rand()%xsize, rand()%ysize, - rand()%xsize, rand()%ysize); + VGLDisplay, rand()%xsize, rand()%ysize, + rand()%xsize, rand()%ysize); VGLLine(VGLDisplay, rand()%xsize, rand()%ysize, rand()%xsize, rand()%ysize, rand()%256); VGLEllipse(VGLDisplay, rand()%xsize, rand()%ysize, - rand()%xsize/2, rand()%ysize/2, rand()%256); + rand()%xsize/2, rand()%ysize/2, rand()%256); rand(); if (i > 1000) break; } @@ -120,4 +120,3 @@ main(int argc, char **argv) VGLEnd(); return 0; } - diff --git a/share/examples/netgraph/ether.bridge b/share/examples/netgraph/ether.bridge index 754e760..1e405f2 100644 --- a/share/examples/netgraph/ether.bridge +++ b/share/examples/netgraph/ether.bridge @@ -40,7 +40,7 @@ BRIDGE_NAME="bnet0" # machine as well then set ${LOCAL_IFACES} as well (they may also be # listed in ${BRIDGE_IFACES}). Of course, any ${LOCAL_IFACE} must # be ifconfig(8)ured separately. If you don't want a ${LOCAL_IFACE} -# then assign it the emtpy string. +# then assign it the empty string. BRIDGE_IFACES="de0 fxp0 fxp1" LOCAL_IFACES="fxp0 fxp1" diff --git a/share/examples/netgraph/frame_relay b/share/examples/netgraph/frame_relay index 0becb47..53f643f 100644 --- a/share/examples/netgraph/frame_relay +++ b/share/examples/netgraph/frame_relay @@ -13,13 +13,13 @@ ngctl mkpeer ${CARD}: frame_relay rawdata downstream # Link management protocol node. ngctl mkpeer ${CARD}:rawdata lmi dlci0 auto0 -# Also attach dlci 1023, as it needs both to try autoconfiguring. +# Also attach dlci 1023, as it needs both to try auto-configuring. # The Link management protocol is now alive and probing.. ngctl connect ${CARD}:rawdata ${CARD}:rawdata.dlci0 dlci1023 auto1023 # Attach the DLCI(channel) the Telco has assigned you to -# a node to hadle whatever protocol encapsulation your peer -# is using. In this case rfc1490 encapsulation. +# a node to handle whatever protocol encapsulation your peer +# is using. In this case RFC1490 encapsulation. ngctl mkpeer ${CARD}:rawdata rfc1490 dlci${DLCI} downstream @@ -34,8 +34,8 @@ ngctl mkpeer ${CARD}:rawdata.dlci${DLCI} iface inet inet # Then use ifconfig on interface ng0 as usual # A variant on this whole set might use the 'name' command to make it more -# readable. but it doesn't work if you have multiple lines or dlcis -# e.g. +# readable. But it doesn't work if you have multiple lines or dlcis +# e.g. # ngctl mkpeer ${CARD}: frame_relay rawdata downstream # ngctl name ${CARD}:rawdata mux # ngctl mkpeer mux: lmi dlci0 auto0 diff --git a/share/examples/netgraph/ngctl b/share/examples/netgraph/ngctl index 80a7f22..e7b7cd8 100644 --- a/share/examples/netgraph/ngctl +++ b/share/examples/netgraph/ngctl @@ -46,7 +46,7 @@ # Note that we used ngctl's ``name'' command to do this. However, # the following manually constructed netgraph message would have -# acomplished the exact same thing: +# accomplished the exact same thing: + msg foo name { name="fred" } @@ -85,7 +85,7 @@ # As soon as we sent the message, we got back a response. Here # ngctl is telling us that it received a control message with the -# NGF_RESP (response) flag set, the reponse was to a prior ``getname'' +# NGF_RESP (response) flag set, the response was to a prior ``getname'' # control message, that the originator was the node addressable # as ``fred:''. The message arguments field is then displayed to # us in its ASCII form. In this case, what we get back is a struct diff --git a/share/examples/netgraph/raw b/share/examples/netgraph/raw index e0970f3..6dc39ca 100644 --- a/share/examples/netgraph/raw +++ b/share/examples/netgraph/raw @@ -6,7 +6,7 @@ CARD=sr0 # create an interface "ng0" and attach it to the sync port. -# The packets had jolly well better be ip because we are not discriminating. +# The packets had jolly well better be IP because we are not discriminating. ngctl mkpeer ${CARD}: iface rawdata inet # if ng0 already exists, use a CONNECT command instead of a mkpeer. e.g. diff --git a/share/examples/netgraph/virtual.chain b/share/examples/netgraph/virtual.chain index 73a12d6..bc6b854 100644 --- a/share/examples/netgraph/virtual.chain +++ b/share/examples/netgraph/virtual.chain @@ -1,6 +1,6 @@ #!/bin/sh # -# Copyright (c) 2010, Yavuz Gokirmak +# Copyright (c) 2010, Yavuz Gokirmak # # All rights reserved. # @@ -14,7 +14,6 @@ # # $FreeBSD$ # -# # This script creates and connects n router like nodes. Complex wide # area topologies can be created with the help of script. # @@ -25,9 +24,9 @@ # # 0. Make your own copy of this example script. # -# 1. Edit the definition of ${TARGET_TOPOLOGY} to define your virtual +# 1. Edit the definition of ${TARGET_TOPOLOGY} to define your virtual # nodes. Virtual topology definition includes node names and their -# IP address. Target top. sytax: ( name|ip<->name|ip ... ) +# IP address. Target top. syntax: ( name|ip<->name|ip ... ) # Example 1: ( n1|10.0.2.1/30<->n2|10.0.2.2/30 ...) # Example 2: ( n1|2001:b90::14a/125<->n1|2001:b90::14b/125 ...) # @@ -35,21 +34,21 @@ # # 3. Add necessary static route commands for each virtual node. For # example assume you have three virtual nodes connected each other -# llike a chain ( n1 is connected to n2, n2 is connecte to n3 ). -# In order to estabklish connectivity among these virtual nodes, +# like a chain (n1 is connected to n2, n2 is connected to n3). +# In order to establish connectivity among these virtual nodes, # you have to add default routes to node n1 and node n3. Example # static route command is: -# STATIC_ROUTE0="jexec n1 route add -inet default 10.0.2.2" -# STATIC_ROUTE1="jexec n3 route add -inet default 10.0.2.5" -# After defining default routes with above format you have to set +# STATIC_ROUTE0="jexec n1 route add -inet default 10.0.2.2" +# STATIC_ROUTE1="jexec n3 route add -inet default 10.0.2.5" +# After defining default routes with above format you have to set # the total number of static route commands as: # STATIC_ROUTE_CNT=2 # # 4. Stop bridging by running this script with "stop" as the # command line argument. -# -# 5. This cript uses a template file in order to carry information -# between start and stop calls. +# +# 5. This script uses a template file in order to carry information +# between start and stop calls. # In the start call, the netgraph interfaces and jails are created. # At the stop phase, all created objects should be removed. # DO NOT delete the temporary file between the start and stop phases. @@ -84,8 +83,8 @@ # # -# List the names of virtual nodes and their IP addresses. Use ':' -# character to seperate node name from node IP address and netmask. +# List the names of virtual nodes and their IP addresses. Use ':' +# character to separate node name from node IP address and netmask. TARGET_TOPOLOGY="n1|10.0.2.1/30<->n2|10.0.2.2/30 n2|10.0.2.5/30<->n3|10.0.2.6/30 n2|10.0.2.9/30<->n4|10.0.2.10/30" STATIC_ROUTE0="jexec n1 route add -inet default 10.0.2.2" @@ -93,10 +92,10 @@ STATIC_ROUTE1="jexec n3 route add -inet default 10.0.2.5" STATIC_ROUTE2="jexec n4 route add -inet default 10.0.2.9" STATIC_ROUTE_CNT=3 -# MAC manifacturer prefix. This can be modified according to needs. -MAC_PREFIX="00:1d:92" +# MAC manufacturer prefix. This can be modified according to needs. +MAC_PREFIX="00:1d:92" -# Temporary file is important for proper execution of script. +# Temporary file is important for proper execution of script. TEMP_FILE="/var/tmp/.virtual.chain.tmp" # Set root directory for jails to be created. @@ -112,7 +111,7 @@ JAIL_PATH="/usr/jails/router" virtual_chain_start() { # Load netgraph KLD's as necessary. - + for KLD in ng_ether ng_bridge ng_eiface; do if ! kldstat -v | grep -qw ${KLD}; then echo -n "Loading ${KLD}.ko... " @@ -122,21 +121,21 @@ virtual_chain_start() { done # Reset all interfaces and jails. If temporary file can not be found - # script assumes that there is no previous configuration. - + # script assumes that there is no previous configuration. + if [ ! -e ${TEMP_FILE} ]; then echo "No previous configuration(${TEMP_FILE}) found to clean-up." else echo -n "Cleaning previous configuration..." virtual_chain_stop echo "done" - fi + fi - # Create temporary file for usage. This file includes generated + # Create temporary file for usage. This file includes generated # interface names and jail names. All bridges, interfaces and jails - # are written to file while created. In clean-up process written - # objects are cleaned (i.e removed) from system. - + # are written to file while created. In clean-up process written + # objects are cleaned (i.e. removed) from system. + if [ -e ${TEMP_FILE} ]; then touch ${TEMP_FILE} fi @@ -144,40 +143,40 @@ virtual_chain_start() { # Attach other interfaces as well. for CONNECTION in ${TARGET_TOPOLOGY}; do - + # Virtual connections are defined in TARGET_TOPOLOGY variable. # They have the form of 'nodeName|IPaddr'. Below two lines split - + PEER1=`echo ${CONNECTION} | awk -F"<->" '{print $1}'` PEER1_NAME=`echo ${PEER1} | awk -F"|" '{print $1}'` PEER1_IP=`echo ${PEER1} | awk -F"|" '{print $2}'` - + PEER2=`echo ${CONNECTION} | awk -F"<->" '{print $2}'` PEER2_NAME=`echo ${PEER2} | awk -F"|" '{print $1}'` PEER2_IP=`echo ${PEER2} | awk -F"|" '{print $2}'` # !!! if not created already.. - # Create virtual node (jail) with given name and using + # Create virtual node (jail) with given name and using # JAIL_PATH as root directory for jail. virtual_chain_create_peer_if_necessary ${PEER1_NAME} virtual_chain_create_peer_if_necessary ${PEER2_NAME} # create an interface for peer with the given peer IP. Get interface - # for future use; you will connect this interface to the other + # for future use; you will connect this interface to the other # peers' (PEER2) interface. virtual_chain_create_interface_with_ip ${PEER1_NAME} ${PEER1_IP} PEER1_INTERFACE=${RET_INTERFACE} - + # create an interface for peer with the given peer IP. Get interface - # for future use; you will connect this interface to the other + # for future use; you will connect this interface to the other # peers' (PEER2) interface. virtual_chain_create_interface_with_ip ${PEER2_NAME} ${PEER2_IP} PEER2_INTERFACE=${RET_INTERFACE} # Connect virtual interface to other interface. Syntax is : # ngctl connect INTERFACE1: INTERFACE2: ether ether. - + echo -n "Connecting ${PEER1_INTERFACE}:ether to ${PEER2_INTERFACE}:ether..." ngctl connect ${PEER1_INTERFACE}: ${PEER2_INTERFACE}: ether ether \ || exit 1 @@ -193,7 +192,7 @@ virtual_chain_start() { i=`expr $i + 1` done - echo "Virtual WAN established succesfully!" + echo "Virtual WAN established successfully!" } virtual_chain_create_interface_with_ip() { @@ -201,35 +200,35 @@ virtual_chain_create_interface_with_ip() { NODE_NAME=$1 NODE_IP=$2 - # Create a ng_eiface object for virtual node. ng_eiface + # Create a ng_eiface object for virtual node. ng_eiface # object has a hook that can be connected to one of bridge - # links. After creating interface get its automatically - # generated name for further usage. + # links. After creating interface get its automatically + # generated name for further usage. echo "Creating eiface interface for virtual node ${NODE_NAME}." ngctl mkpeer eiface ether ether EIFACE=`ngctl l | grep ngeth | tail -n 1| awk '{print $2}'` - echo "Interface ${EIFACE} is created." - + echo "Interface ${EIFACE} is created." + # Write name of the interface to temp file. Clean-up procedure # will use this name to shutdown interface. - + echo "interface ${EIFACE}" >> ${TEMP_FILE} - # Move virtual interface to virtual node. Note that Interface + # Move virtual interface to virtual node. Note that Interface # name will not be changed at the end of this movement. Moved # interface can be seen at the output of ifconfig command in # jail: 'jexec jailname ifconfig' - echo "Moving ${EIFACE} to ${NODE_NAME}" + echo "Moving ${EIFACE} to ${NODE_NAME}" ifconfig ${EIFACE} vnet ${NODE_NAME} - + # Make lo0 interface localhost. jexec ${NODE_NAME} ifconfig lo0 localhost # Generate a random mac address for virtual interface. First # three octets can be changed by user. Last three octets are - # generated randomly. + # generated randomly. M4=`od -An -N2 -i /dev/random | sed -e 's/ //g' | \ awk '{ print $1 % 256 }'` M5=`od -An -N2 -i /dev/random | sed -e 's/ //g' | \ @@ -244,16 +243,16 @@ virtual_chain_create_interface_with_ip() { echo "Setting MAC address of ${EIFACE} to '${MAC}'" jexec ${NODE_NAME} ifconfig ${EIFACE} link $MAC - # Either IPv4 or IPv6 can be used in this script. Ifconfig + # Either IPv4 or IPv6 can be used in this script. Ifconfig # IP setting syntax differs slightly for two IP versions. # For version 4 'inet' keyword is used whereas for version 6 # 'inet6' is used. Below line tries to decide which IP version - # is given and sets IPVER to 'inet' or 'inet6'. + # is given and sets IPVER to 'inet' or 'inet6'. IPVER=`echo ${NODE_IP} | awk -F"." '{ split($4,last,"/"); \ if( NF==4 && $1>0 && $1<256 && $2<256 && $3<256 && \ last[1]<256) print "inet"; else print "inet6"}'` - + # Set IP address of virtual interface in virtual node. echo "Setting IP address of ${EIFACE} to '${NODE_IP}'" jexec ${NODE_NAME} ifconfig ${EIFACE} ${IPVER} ${NODE_IP} @@ -264,23 +263,22 @@ virtual_chain_create_interface_with_ip() { virtual_chain_create_peer_if_necessary() { if ! grep -q $1 ${TEMP_FILE} ; then - - echo -n "Creating virtual node (jail) ${1}..." + + echo -n "Creating virtual node (jail) ${1}..." jail -c vnet name=${1} host.hostname=${1} \ - path=${JAIL_PATH} persist + path=${JAIL_PATH} persist jexec ${1} sysctl -w net.inet.ip.forwarding=1 jexec ${1} sysctl -w net.inet6.ip6.forwarding=1 echo "done" - - # Write name of the jail to temp file. Clean-up + + # Write name of the jail to temp file. Clean-up # procedure will use this name to remove jail. - + echo "node ${1}" >> ${TEMP_FILE} fi } - # Stop routine. virtual_chain_stop() { @@ -288,31 +286,31 @@ virtual_chain_stop() { echo "Nothing to stop! ${TEMP_FILE}: temp file not found" else - echo -n "Shutdown bridge interface.." + echo -n "Shutdown bridge interface.." OBJECTS=`cat ${TEMP_FILE} | grep bridge | awk '{print $2}'` for BRIDGE in ${OBJECTS}; do ngctl shutdown ${BRIDGE}: >/dev/null 2>&1 done echo "done" - - echo -n "Shutdown all eiface interfaces..." + + echo -n "Shutdown all eiface interfaces..." OBJECTS=`cat ${TEMP_FILE} | grep interface | awk '{print $2}'` for INTERFACE in ${OBJECTS}; do ngctl shutdown ${INTERFACE}: >/dev/null 2>&1 done echo "done" - - echo -n "Removing all jails..." + + echo -n "Removing all jails..." OBJECTS=`cat ${TEMP_FILE} | grep node | awk '{print $2}'` for NODE in ${OBJECTS}; do jail -r ${NODE} done echo "done" - - echo "Removing tempfile ${TEMP_FILE}" + + echo "Removing tempfile ${TEMP_FILE}" rm ${TEMP_FILE} fi - echo "Virtual LAN objects removed succesfully!" + echo "Virtual LAN objects removed successfully!" } @@ -324,7 +322,6 @@ virtual_chain_usage() { # Main entry point. - case $# in 1) case $1 in @@ -340,7 +337,7 @@ case $# in echo " temp file not found" else virtual_chain_stop - fi + fi ;; help) virtual_chain_usage diff --git a/share/examples/netgraph/virtual.lan b/share/examples/netgraph/virtual.lan index bce33e1..5e6e3ac 100644 --- a/share/examples/netgraph/virtual.lan +++ b/share/examples/netgraph/virtual.lan @@ -1,6 +1,6 @@ #!/bin/sh # -# Copyright (c) 2010, Yavuz Gokirmak +# Copyright (c) 2010, Yavuz Gokirmak # # All rights reserved. # @@ -13,13 +13,12 @@ # its use. # # $FreeBSD$ - # -# This script adds virtual nodes to one of the physical interfaces +# This script adds virtual nodes to one of the physical interfaces # visible on your local area network (LAN). Virtual nodes seems real -# to external observers. +# to external observers. # If traceroute is executed to one of virtual nodes, the IP -# address of the physical interface will not be seen in the output. +# address of the physical interface will not be seen in the output. # Virtual nodes are generated via jails and network connections are # established using ng_bridge(4) and ng_eiface(4) node types. # @@ -29,11 +28,11 @@ # # 1. Edit the definition of ${ETHER_INTF} as described below # to define your real interface connected to the LAN. Virtual nodes -# will placed on the same physical network as this interface. +# will placed on the same physical network as this interface. # -# 2. Edit the definition of ${TARGET_TOPOLOGY} to define your virtual +# 2. Edit the definition of ${TARGET_TOPOLOGY} to define your virtual # nodes. Virtual topology definition includes node names and their -# IP address. Target top. sytax: ( node1|ip1/24 node2|ip2/24 ... ) +# IP address. Target top. syntax: ( node1|ip1/24 node2|ip2/24 ... ) # Example 1: ( n1|122.122.122.12/24, n2|122.122.122.13/24 ...) # Example 2: ( n1|2001:b90::14a/125, n1|2001:b90::14b/125 ...) # @@ -41,9 +40,9 @@ # # 4. Stop bridging by running this script with "stop" as the # command line argument. -# -# 5. This cript uses a template file in order to carry information -# between start and stop calls. +# +# 5. This script uses a template file in order to carry information +# between start and stop calls. # In the start call, the netgraph interfaces and jails are created. # At the stop phase, all created objects should be removed. # DO NOT delete the temporary file between the start and stop phases. @@ -80,19 +79,19 @@ # # Give the name of ethernet interface. Virtual nodes will be seen as -# local neighbours of this interface. +# local neighbours of this interface. ETHER_INTF="em0" -# List the names of virtual nodes and their IP addresses. Use ':' -# character to seperate node name from node IP address and netmask. +# List the names of virtual nodes and their IP addresses. Use ':' +# character to separate node name from node IP address and netmask. TARGET_TOPOLOGY="c1|10.0.2.20/24 c2|10.0.2.21/24 c3|10.0.2.22/24" -# MAC manifacturer prefix. This can be modified according to needs. -MAC_PREFIX="00:1d:92" +# MAC manufacturer prefix. This can be modified according to needs. +MAC_PREFIX="00:1d:92" -# Temporary file is important for proper execution of script. +# Temporary file is important for proper execution of script. TEMP_FILE="/var/tmp/.virtual.lan.tmp" # Set root directory for jails to be created. @@ -108,7 +107,7 @@ JAIL_PATH="/usr/jails/node" virtual_lan_start() { # Load netgraph KLD's as necessary. - + for KLD in ng_ether ng_bridge ng_eiface; do if ! kldstat -v | grep -qw ${KLD}; then echo -n "Loading ${KLD}.ko... " @@ -118,21 +117,21 @@ virtual_lan_start() { done # Reset all interfaces and jails. If temporary file can not be found - # script assumes that there is no previous configuration. - + # script assumes that there is no previous configuration. + if [ ! -e ${TEMP_FILE} ]; then echo "No previous configuration(${TEMP_FILE}) found to clean-up." else echo -n "Cleaning previous configuration..." virtual_lan_stop echo "done" - fi + fi - # Create temporary file for usage. This file includes generated + # Create temporary file for usage. This file includes generated # interface names and jail names. All bridges, interfaces and jails - # are written to file while created. In clean-up process written - # objects are cleaned (i.e removed) from system. - + # are written to file while created. In clean-up process written + # objects are cleaned (i.e. removed) from system. + if [ -e ${TEMP_FILE} ]; then touch ${TEMP_FILE} fi @@ -150,20 +149,20 @@ virtual_lan_start() { # is used to create a name for new bridge. BRIDGE_COUNT=`ngctl l | grep bridge | wc -l | sed -e "s/ //g"` BRIDGE_NAME="bridge${BRIDGE_COUNT}" - + # Create new ng_bridge(4) node and attach it to the ethernet interface. # Connect ng_ether:lower hook to bridge:link0 when creating bridge and # connect ng_ether:upper hook to bridge:link1 after bridge name is set. - + echo "Creating bridge interface: ${BRIDGE_NAME}..." ngctl mkpeer ${ETHER_INTF}: bridge lower link0 || exit 1 ngctl name ${ETHER_INTF}:lower ${BRIDGE_NAME} || exit 1 ngctl connect ${ETHER_INTF}: ${BRIDGE_NAME}: upper link1 || exit 1 echo "Bridge ${BRIDGE_NAME} is created and ${ETHER_INTF} is connected." - + # In the above code block two hooks are connected to bridge interface, - # therefore LINKNUM is set to 2 indicating total number of connected - # hooks on the bridge interface. + # therefore LINKNUM is set to 2 indicating total number of connected + # hooks on the bridge interface. LINKNUM=2 # Write name of the bridge to temp file. Clean-up procedure will use @@ -173,7 +172,7 @@ virtual_lan_start() { # Attach other interfaces as well. for NODE in ${TARGET_TOPOLOGY}; do - + # Virtual nodes are defined in TARGET_TOPOLOGY variable. They # have the form of 'nodeName|IPaddr'. Below two lines split # node definition to get node name and node IP. @@ -181,48 +180,48 @@ virtual_lan_start() { NODE_NAME=`echo ${NODE} | awk -F"|" '{print $1}'` NODE_IP=`echo ${NODE} | awk -F"|" '{print $2}'` - # Create virtual node (jail) with given name and using + # Create virtual node (jail) with given name and using # JAIL_PATH as root directory for jail. - echo -n "Creating virtual node (jail) ${NODE_NAME}..." + echo -n "Creating virtual node (jail) ${NODE_NAME}..." jail -c vnet name=${NODE_NAME} host.hostname=${NODE_NAME} \ - path=${JAIL_PATH} persist + path=${JAIL_PATH} persist echo "done" - - # Write name of the jail to temp file. Clean-up procedure will + + # Write name of the jail to temp file. Clean-up procedure will # use this name to remove jail. - + echo "node ${NODE_NAME}" >> ${TEMP_FILE} - # Create a ng_eiface object for virtual node. ng_eiface + # Create a ng_eiface object for virtual node. ng_eiface # object has a hook that can be connected to one of bridge - # links. After creating interface get its automatically - # generated name for further usage. + # links. After creating interface get its automatically + # generated name for further usage. echo "Creating eiface interface for virtual node ${NODE_NAME}." ngctl mkpeer eiface ether ether EIFACE=`ngctl l | grep ngeth | tail -n 1| awk '{print $2}'` - echo "Interface ${EIFACE} is created." - + echo "Interface ${EIFACE} is created." + # Write name of the interface to temp file. Clean-up procedure # will use this name to shutdown interface. - + echo "interface ${EIFACE}" >> ${TEMP_FILE} - - # Move virtual interface to virtual node. Note that Interface + + # Move virtual interface to virtual node. Note that Interface # name will not be changed at the end of this movement. Moved # interface can be seen at the output of ifconfig command in # jail: 'jexec jailname ifconfig' - echo "Moving ${EIFACE} to ${NODE_NAME}" + echo "Moving ${EIFACE} to ${NODE_NAME}" ifconfig ${EIFACE} vnet ${NODE_NAME} - + # Make lo0 interface localhost. jexec ${NODE_NAME} ifconfig lo0 localhost # Generate a random mac address for virtual interface. First # three octets can be changed by user. Last three octets are - # generated randomly. + # generated randomly. M4=`od -An -N2 -i /dev/random | sed -e 's/ //g' | \ awk '{ print $1 % 256 }'` M5=`od -An -N2 -i /dev/random | sed -e 's/ //g' | \ @@ -237,35 +236,35 @@ virtual_lan_start() { echo "Setting MAC address of ${EIFACE} to '${MAC}'" jexec ${NODE_NAME} ifconfig ${EIFACE} link $MAC - # Either IPv4 or IPv6 can be used in this script. Ifconfig + # Either IPv4 or IPv6 can be used in this script. Ifconfig # IP setting syntax differs slightly for two IP versions. # For version 4 'inet' keyword is used whereas for version 6 # 'inet6' is used. Below line tries to decide which IP version - # is given and sets IPVER to 'inet' or 'inet6'. + # is given and sets IPVER to 'inet' or 'inet6'. IPVER=`echo ${NODE_IP} | awk -F"." '{ split($4,last,"/"); \ if( NF==4 && $1>0 && $1<256 && $2<256 && $3<256 && \ last[1]<256) print "inet"; else print "inet6"}'` - + # Set IP address of virtual interface in virtual node. echo "Setting IP address of ${EIFACE} to '${NODE_IP}'" jexec ${NODE_NAME} ifconfig ${EIFACE} ${IPVER} ${NODE_IP} - + # Connect virtual interface to bridge interface. Syntax is : # ngctl connect INTERFACE: BRIDGE: INTERFACE_HOOK EMPTY_LINK. # Interface has one hook named 'ether' and below line connects - # ether hook to bridge's first unconnected link. - + # ether hook to bridge's first unconnected link. + echo -n "Connecting ${EIFACE}:ether to ${BRIDGE_NAME}:link${LINKNUM}..." ngctl connect ${EIFACE}: ${BRIDGE_NAME}: ether link${LINKNUM} \ || exit 1 echo "done" # Now, bridge has one more connected link thus link count is - # incremented. + # incremented. LINKNUM=`expr ${LINKNUM} + 1` done - echo "Virtual LAN established succesfully!" + echo "Virtual LAN established successfully!" } @@ -276,31 +275,31 @@ virtual_lan_stop() { echo "Nothing to stop! ${TEMP_FILE}: temp file not found" else - echo -n "Shutdown bridge interface.." + echo -n "Shutdown bridge interface.." OBJECTS=`cat ${TEMP_FILE} | grep bridge | awk '{print $2}'` for BRIDGE in ${OBJECTS}; do ngctl shutdown ${BRIDGE}: >/dev/null 2>&1 done echo "done" - - echo -n "Shutdown all eiface interfaces..." + + echo -n "Shutdown all eiface interfaces..." OBJECTS=`cat ${TEMP_FILE} | grep interface | awk '{print $2}'` for INTERFACE in ${OBJECTS}; do ngctl shutdown ${INTERFACE}: >/dev/null 2>&1 done echo "done" - - echo -n "Removing all jails..." + + echo -n "Removing all jails..." OBJECTS=`cat ${TEMP_FILE} | grep node | awk '{print $2}'` for NODE in ${OBJECTS}; do jail -r ${NODE} done echo "done" - - echo "Removing tempfile ${TEMP_FILE}" + + echo "Removing tempfile ${TEMP_FILE}" rm ${TEMP_FILE} fi - echo "Virtual LAN objects removed succesfully!" + echo "Virtual LAN objects removed successfully!" } @@ -327,7 +326,7 @@ case $# in echo " temp file not found" else virtual_lan_stop - fi + fi ;; help) virtual_lan_usage diff --git a/share/man/man4/aio.4 b/share/man/man4/aio.4 index 3ea71b0..8e773d9 100644 --- a/share/man/man4/aio.4 +++ b/share/man/man4/aio.4 @@ -1,5 +1,5 @@ .\"- -.\" Copyright (c) 2002 Dag-Erling Coïdan Smørgrav +.\" Copyright (c) 2002 Dag-Erling Coïdan Smørgrav .\" All rights reserved. .\" .\" Redistribution and use in source and binary forms, with or without diff --git a/share/man/man4/ata.4 b/share/man/man4/ata.4 index 44973f1..05e03d6 100644 --- a/share/man/man4/ata.4 +++ b/share/man/man4/ata.4 @@ -1,5 +1,5 @@ .\" -.\" Copyright (c) 2003 Søren Schmidt <sos@FreeBSD.org> +.\" Copyright (c) 2003 Søren Schmidt <sos@FreeBSD.org> .\" All rights reserved. .\" .\" Redistribution and use in source and binary forms, with or without diff --git a/share/man/man4/coretemp.4 b/share/man/man4/coretemp.4 index ce4eb36..efae020 100644 --- a/share/man/man4/coretemp.4 +++ b/share/man/man4/coretemp.4 @@ -1,5 +1,5 @@ .\"- -.\" Copyright (c) 2007 Dag-Erling Coïdan Smørgrav +.\" Copyright (c) 2007 Dag-Erling Coïdan Smørgrav .\" All rights reserved. .\" .\" Redistribution and use in source and binary forms, with or without diff --git a/share/man/man4/ichwd.4 b/share/man/man4/ichwd.4 index 497712c..25b6dbb 100644 --- a/share/man/man4/ichwd.4 +++ b/share/man/man4/ichwd.4 @@ -1,5 +1,5 @@ .\"- -.\" Copyright (c) 2007 Dag-Erling Coïdan Smørgrav +.\" Copyright (c) 2007 Dag-Erling Coïdan Smørgrav .\" All rights reserved. .\" .\" Redistribution and use in source and binary forms, with or without diff --git a/share/man/man4/pst.4 b/share/man/man4/pst.4 index f207e2d..3ce95d8 100644 --- a/share/man/man4/pst.4 +++ b/share/man/man4/pst.4 @@ -1,5 +1,5 @@ .\" -.\" Copyright (c) 2001,2002 Søren Schmidt +.\" Copyright (c) 2001,2002 Søren Schmidt .\" All rights reserved. .\" .\" Redistribution and use in source and binary forms, with or without diff --git a/share/man/man4/ucycom.4 b/share/man/man4/ucycom.4 index 9276462..6d76564 100644 --- a/share/man/man4/ucycom.4 +++ b/share/man/man4/ucycom.4 @@ -1,5 +1,5 @@ .\"- -.\" Copyright (c) 2004 Dag-Erling Coïdan Smørgrav +.\" Copyright (c) 2004 Dag-Erling Coïdan Smørgrav .\" All rights reserved. .\" .\" Redistribution and use in source and binary forms, with or without diff --git a/share/man/man5/reiserfs.5 b/share/man/man5/reiserfs.5 index eda7028..dd7757c 100644 --- a/share/man/man5/reiserfs.5 +++ b/share/man/man5/reiserfs.5 @@ -1,5 +1,5 @@ .\" -.\" Copyright (c) 2005 Jean-Sébastien Pédron +.\" Copyright (c) 2005 Jean-Sébastien Pédron .\" All rights reserved. .\" .\" Redistribution and use in source and binary forms, with or without diff --git a/share/man/man5/src.conf.5 b/share/man/man5/src.conf.5 index acae4c0..f0b9905 100644 --- a/share/man/man5/src.conf.5 +++ b/share/man/man5/src.conf.5 @@ -1,7 +1,7 @@ .\" DO NOT EDIT-- this file is automatically generated. .\" from FreeBSD: head/tools/build/options/makeman 221733 2011-05-10 13:01:11Z ru .\" $FreeBSD$ -.Dd May 17, 2011 +.Dd May 22, 2011 .Dt SRC.CONF 5 .Os .Sh NAME @@ -206,6 +206,14 @@ and .\" from FreeBSD: head/tools/build/options/WITH_BIND_XML 193280 2009-06-01 21:58:59Z dougb Set to enable the http statistics interface for named. This requires ports/textproc/libxml2 to be installed in /usr/local. +.It Va WITHOUT_BINUTILS +.\" from FreeBSD: head/tools/build/options/WITHOUT_BINUTILS 222090 2011-05-19 05:13:25Z imp +Set to not install binutils (as, c++-filt, gconv, gnu-ar, gnu-randlib, +ld, nm, objcopy, objdump, readelf, size and strip) +.Bf -symbolic +The option does not generally work for build targets, unless some alternative +toolchain is enabled. +.Ef .It Va WITHOUT_BLUETOOTH .\" from FreeBSD: head/tools/build/options/WITHOUT_BLUETOOTH 156932 2006-03-21 07:50:50Z ru Set to not build Bluetooth related kernel modules, programs and libraries. @@ -364,6 +372,13 @@ Set to not build .It Va WITHOUT_GAMES .\" from FreeBSD: head/tools/build/options/WITHOUT_GAMES 156932 2006-03-21 07:50:50Z ru Set to not build games. +.It Va WITHOUT_GCC +.\" from FreeBSD: head/tools/build/options/WITHOUT_GCC 222090 2011-05-19 05:13:25Z imp +Set to not install gcc and g++. +.Bf -symbolic +The option does not generally work for build targets, unless some alternative +toolchain is enabled. +.Ef .It Va WITHOUT_GCOV .\" from FreeBSD: head/tools/build/options/WITHOUT_GCOV 156932 2006-03-21 07:50:50Z ru Set to not build the @@ -512,6 +527,12 @@ Set to build some programs without Kerberos support, like .Xr sshd 8 , and .Xr telnetd 8 . +.It Va WITHOUT_KERNEL_SYMBOLS +.\" from FreeBSD: head/tools/build/options/WITHOUT_KERNEL_SYMBOLS 222189 2011-05-22 18:23:17Z imp +Set to not install kernel symbol files. +.Bf -symbolic +This option is recommended for those people who have small root partitions. +.Ef .It Va WITHOUT_KVM .\" from FreeBSD: head/tools/build/options/WITHOUT_KVM 174550 2007-12-12 16:43:17Z ru Set to not build the @@ -884,8 +905,12 @@ When set, it also enforces the following options: .Pp .Bl -item -compact .It +.Va WITHOUT_BINUTILS +.It .Va WITHOUT_CLANG .It +.Va WITHOUT_GCC +.It .Va WITHOUT_GDB .El .It Va WITHOUT_USB diff --git a/share/man/man9/LOCK_PROFILING.9 b/share/man/man9/LOCK_PROFILING.9 index cdb78b3..94b2246 100644 --- a/share/man/man9/LOCK_PROFILING.9 +++ b/share/man/man9/LOCK_PROFILING.9 @@ -1,5 +1,5 @@ .\"- -.\" Copyright (c) 2004 Dag-Erling Coïdan Smørgrav +.\" Copyright (c) 2004 Dag-Erling Coïdan Smørgrav .\" Copyright (c) 2005 Robert N. M. Watson .\" Copyright (c) 2006 Kip Macy .\" All rights reserved. diff --git a/share/man/man9/pseudofs.9 b/share/man/man9/pseudofs.9 index b0b22ff..5d39496 100644 --- a/share/man/man9/pseudofs.9 +++ b/share/man/man9/pseudofs.9 @@ -1,5 +1,5 @@ .\"- -.\" Copyright (c) 2001 Dag-Erling Coïdan Smørgrav +.\" Copyright (c) 2001 Dag-Erling Coïdan Smørgrav .\" All rights reserved. .\" .\" Redistribution and use in source and binary forms, with or without diff --git a/share/man/man9/sbuf.9 b/share/man/man9/sbuf.9 index 0e6da36..d17b34c 100644 --- a/share/man/man9/sbuf.9 +++ b/share/man/man9/sbuf.9 @@ -1,5 +1,5 @@ .\"- -.\" Copyright (c) 2000 Poul-Henning Kamp and Dag-Erling Coïdan Smørgrav +.\" Copyright (c) 2000 Poul-Henning Kamp and Dag-Erling Coïdan Smørgrav .\" All rights reserved. .\" .\" Redistribution and use in source and binary forms, with or without diff --git a/share/man/man9/zone.9 b/share/man/man9/zone.9 index a2132b5..32531bb 100644 --- a/share/man/man9/zone.9 +++ b/share/man/man9/zone.9 @@ -1,5 +1,5 @@ .\"- -.\" Copyright (c) 2001 Dag-Erling Coïdan Smørgrav +.\" Copyright (c) 2001 Dag-Erling Coïdan Smørgrav .\" All rights reserved. .\" .\" Redistribution and use in source and binary forms, with or without diff --git a/share/misc/bsd-family-tree b/share/misc/bsd-family-tree index 1d20448..1f4ec11 100644 --- a/share/misc/bsd-family-tree +++ b/share/misc/bsd-family-tree @@ -562,7 +562,7 @@ Australian Computer Society, Hobart, August 1993. Peter H. Salus. Unix at 25. Byte Magazine, October 1994. URL: http://www.byte.com/art/9410/sec8/art3.htm -Andreas Klemm, Lars Köller. If you're going to San Francisco ... +Andreas Klemm, Lars Köller. If you're going to San Francisco ... Die freien BSD-Varianten von Unix. c't April 1997, page 368ff. BSD Release Announcements collection. diff --git a/share/mk/bsd.own.mk b/share/mk/bsd.own.mk index 3669fac..f7ab5f8 100644 --- a/share/mk/bsd.own.mk +++ b/share/mk/bsd.own.mk @@ -335,6 +335,7 @@ __DEFAULT_YES_OPTIONS = \ IPX \ JAIL \ KERBEROS \ + KERNEL_SYMBOLS \ KVM \ LEGACY_CONSOLE \ LIB32 \ diff --git a/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vfsops.c b/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vfsops.c index e9a956c..85e3d44 100644 --- a/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vfsops.c +++ b/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vfsops.c @@ -93,7 +93,7 @@ static int zfs_vget(vfs_t *vfsp, ino_t ino, int flags, vnode_t **vpp); static int zfs_sync(vfs_t *vfsp, int waitfor); static int zfs_checkexp(vfs_t *vfsp, struct sockaddr *nam, int *extflagsp, struct ucred **credanonp, int *numsecflavors, int **secflavors); -static int zfs_fhtovp(vfs_t *vfsp, fid_t *fidp, vnode_t **vpp); +static int zfs_fhtovp(vfs_t *vfsp, fid_t *fidp, int flags, vnode_t **vpp); static void zfs_objset_close(zfsvfs_t *zfsvfs); static void zfs_freevfs(vfs_t *vfsp); @@ -2007,7 +2007,7 @@ CTASSERT(SHORT_FID_LEN <= sizeof(struct fid)); CTASSERT(LONG_FID_LEN <= sizeof(struct fid)); static int -zfs_fhtovp(vfs_t *vfsp, fid_t *fidp, vnode_t **vpp) +zfs_fhtovp(vfs_t *vfsp, fid_t *fidp, int flags, vnode_t **vpp) { zfsvfs_t *zfsvfs = vfsp->vfs_data; znode_t *zp; diff --git a/sys/conf/kern.post.mk b/sys/conf/kern.post.mk index 80b1bc2..21d9572 100644 --- a/sys/conf/kern.post.mk +++ b/sys/conf/kern.post.mk @@ -227,7 +227,8 @@ kernel-install: .endif mkdir -p ${DESTDIR}${KODIR} ${INSTALL} -p -m 555 -o ${KMODOWN} -g ${KMODGRP} ${KERNEL_KO} ${DESTDIR}${KODIR} -.if defined(DEBUG) && !defined(INSTALL_NODEBUG) +.if defined(DEBUG) && !defined(INSTALL_NODEBUG) && \ + (defined(MK_KERNEL_SYMBOLS) && ${MK_KERNEL_SYMBOLS} == "yes") ${INSTALL} -p -m 555 -o ${KMODOWN} -g ${KMODGRP} ${KERNEL_KO}.symbols ${DESTDIR}${KODIR} .endif .if defined(KERNEL_EXTRA_INSTALL) @@ -239,7 +240,8 @@ kernel-install: kernel-reinstall: @-chflags -R noschg ${DESTDIR}${KODIR} ${INSTALL} -p -m 555 -o ${KMODOWN} -g ${KMODGRP} ${KERNEL_KO} ${DESTDIR}${KODIR} -.if defined(DEBUG) && !defined(INSTALL_NODEBUG) +.if defined(DEBUG) && !defined(INSTALL_NODEBUG) && \ + (defined(MK_KERNEL_SYMBOLS) && ${MK_KERNEL_SYMBOLS} == "yes") ${INSTALL} -p -m 555 -o ${KMODOWN} -g ${KMODGRP} ${KERNEL_KO}.symbols ${DESTDIR}${KODIR} .endif diff --git a/sys/conf/kmod.mk b/sys/conf/kmod.mk index 6d22e41..b50fc68 100644 --- a/sys/conf/kmod.mk +++ b/sys/conf/kmod.mk @@ -286,7 +286,8 @@ realinstall: _kmodinstall _kmodinstall: ${INSTALL} -o ${KMODOWN} -g ${KMODGRP} -m ${KMODMODE} \ ${_INSTALLFLAGS} ${PROG} ${DESTDIR}${KMODDIR} -.if defined(DEBUG_FLAGS) && !defined(INSTALL_NODEBUG) +.if defined(DEBUG) && !defined(INSTALL_NODEBUG) && \ + (defined(MK_KERNEL_SYMBOLS) && ${MK_KERNEL_SYMBOLS} == "yes") ${INSTALL} -o ${KMODOWN} -g ${KMODGRP} -m ${KMODMODE} \ ${_INSTALLFLAGS} ${PROG}.symbols ${DESTDIR}${KMODDIR} .endif diff --git a/sys/dev/ath/ath_hal/ah.c b/sys/dev/ath/ath_hal/ah.c index 2cc1e08..13a59f1 100644 --- a/sys/dev/ath/ath_hal/ah.c +++ b/sys/dev/ath/ath_hal/ah.c @@ -1069,7 +1069,7 @@ ath_hal_ini_write(struct ath_hal *ah, const HAL_INI_ARRAY *ia, HAL_INI_VAL(ia, r, col)); /* Analog shift register delay seems needed for Merlin - PR kern/154220 */ - if (HAL_INI_VAL(ia, r, 0) >= 0x7800 && HAL_INI_VAL(ia, r, 0) < 0x78a0) + if (HAL_INI_VAL(ia, r, 0) >= 0x7800 && HAL_INI_VAL(ia, r, 0) < 0x7900) OS_DELAY(100); DMA_YIELD(regWr); diff --git a/sys/dev/ath/ath_hal/ar9002/ar9280_attach.c b/sys/dev/ath/ath_hal/ar9002/ar9280_attach.c index 5869c03..3351edb 100644 --- a/sys/dev/ath/ath_hal/ar9002/ar9280_attach.c +++ b/sys/dev/ath/ath_hal/ar9002/ar9280_attach.c @@ -430,7 +430,7 @@ ar9280WriteIni(struct ath_hal *ah, const struct ieee80211_channel *chan) OS_REG_WRITE(ah, reg, val); /* Analog shift register delay seems needed for Merlin - PR kern/154220 */ - if (reg >= 0x7800 && reg < 0x78a0) + if (reg >= 0x7800 && reg < 0x7900) OS_DELAY(100); DMA_YIELD(regWrites); diff --git a/sys/fs/cd9660/cd9660_vfsops.c b/sys/fs/cd9660/cd9660_vfsops.c index 77757f2..0ad57ec 100644 --- a/sys/fs/cd9660/cd9660_vfsops.c +++ b/sys/fs/cd9660/cd9660_vfsops.c @@ -586,9 +586,10 @@ cd9660_statfs(mp, sbp) /* ARGSUSED */ static int -cd9660_fhtovp(mp, fhp, vpp) +cd9660_fhtovp(mp, fhp, flags, vpp) struct mount *mp; struct fid *fhp; + int flags; struct vnode **vpp; { struct ifid ifh; diff --git a/sys/fs/ext2fs/ext2_vfsops.c b/sys/fs/ext2fs/ext2_vfsops.c index 5c807dc..1b47e91 100644 --- a/sys/fs/ext2fs/ext2_vfsops.c +++ b/sys/fs/ext2fs/ext2_vfsops.c @@ -973,7 +973,7 @@ ext2_vget(struct mount *mp, ino_t ino, int flags, struct vnode **vpp) * those rights via. exflagsp and credanonp */ static int -ext2_fhtovp(struct mount *mp, struct fid *fhp, struct vnode **vpp) +ext2_fhtovp(struct mount *mp, struct fid *fhp, int flags, struct vnode **vpp) { struct inode *ip; struct ufid *ufhp; diff --git a/sys/fs/hpfs/hpfs_vfsops.c b/sys/fs/hpfs/hpfs_vfsops.c index 676b5c7..866004e 100644 --- a/sys/fs/hpfs/hpfs_vfsops.c +++ b/sys/fs/hpfs/hpfs_vfsops.c @@ -417,6 +417,7 @@ static int hpfs_fhtovp( struct mount *mp, struct fid *fhp, + int flags, struct vnode **vpp) { struct vnode *nvp; diff --git a/sys/fs/msdosfs/msdosfs_vfsops.c b/sys/fs/msdosfs/msdosfs_vfsops.c index e04ef9c..e347640 100644 --- a/sys/fs/msdosfs/msdosfs_vfsops.c +++ b/sys/fs/msdosfs/msdosfs_vfsops.c @@ -963,7 +963,7 @@ loop: } static int -msdosfs_fhtovp(struct mount *mp, struct fid *fhp, struct vnode **vpp) +msdosfs_fhtovp(struct mount *mp, struct fid *fhp, int flags, struct vnode **vpp) { struct msdosfsmount *pmp = VFSTOMSDOSFS(mp); struct defid *defhp = (struct defid *) fhp; diff --git a/sys/fs/nfsclient/nfs_clvnops.c b/sys/fs/nfsclient/nfs_clvnops.c index eac9eaa..1b08582 100644 --- a/sys/fs/nfsclient/nfs_clvnops.c +++ b/sys/fs/nfsclient/nfs_clvnops.c @@ -63,7 +63,6 @@ __FBSDID("$FreeBSD$"); #include <sys/signalvar.h> #include <vm/vm.h> -#include <vm/vm_object.h> #include <vm/vm_extern.h> #include <vm/vm_object.h> diff --git a/sys/fs/nfsserver/nfs_nfsdport.c b/sys/fs/nfsserver/nfs_nfsdport.c index 11c287f..d62be99 100644 --- a/sys/fs/nfsserver/nfs_nfsdport.c +++ b/sys/fs/nfsserver/nfs_nfsdport.c @@ -2551,7 +2551,7 @@ nfsvno_fhtovp(struct mount *mp, fhandle_t *fhp, struct sockaddr *nam, if (VFS_NEEDSGIANT(mp)) error = ESTALE; else - error = VFS_FHTOVP(mp, &fhp->fh_fid, vpp); + error = VFS_FHTOVP(mp, &fhp->fh_fid, LK_EXCLUSIVE, vpp); if (error != 0) /* Make sure the server replies ESTALE to the client. */ error = ESTALE; @@ -2834,7 +2834,7 @@ nfsvno_getvp(fhandle_t *fhp) mp = vfs_busyfs(&fhp->fh_fsid); if (mp == NULL) return (NULL); - error = VFS_FHTOVP(mp, &fhp->fh_fid, &vp); + error = VFS_FHTOVP(mp, &fhp->fh_fid, LK_EXCLUSIVE, &vp); vfs_unbusy(mp); if (error) return (NULL); diff --git a/sys/fs/ntfs/ntfs_vfsops.c b/sys/fs/ntfs/ntfs_vfsops.c index b5e024b..d3468af 100644 --- a/sys/fs/ntfs/ntfs_vfsops.c +++ b/sys/fs/ntfs/ntfs_vfsops.c @@ -616,6 +616,7 @@ static int ntfs_fhtovp( struct mount *mp, struct fid *fhp, + int flags, struct vnode **vpp) { struct vnode *nvp; diff --git a/sys/fs/nullfs/null_vfsops.c b/sys/fs/nullfs/null_vfsops.c index 7bd4ab7..e39dd8f 100644 --- a/sys/fs/nullfs/null_vfsops.c +++ b/sys/fs/nullfs/null_vfsops.c @@ -321,13 +321,15 @@ nullfs_vget(mp, ino, flags, vpp) } static int -nullfs_fhtovp(mp, fidp, vpp) +nullfs_fhtovp(mp, fidp, flags, vpp) struct mount *mp; struct fid *fidp; + int flags; struct vnode **vpp; { int error; - error = VFS_FHTOVP(MOUNTTONULLMOUNT(mp)->nullm_vfs, fidp, vpp); + error = VFS_FHTOVP(MOUNTTONULLMOUNT(mp)->nullm_vfs, fidp, LK_EXCLUSIVE, + vpp); if (error) return (error); diff --git a/sys/fs/tmpfs/tmpfs_vfsops.c b/sys/fs/tmpfs/tmpfs_vfsops.c index 356be5e..9d23bd2 100644 --- a/sys/fs/tmpfs/tmpfs_vfsops.c +++ b/sys/fs/tmpfs/tmpfs_vfsops.c @@ -71,7 +71,8 @@ MALLOC_DEFINE(M_TMPFSNAME, "tmpfs name", "tmpfs file names"); static int tmpfs_mount(struct mount *); static int tmpfs_unmount(struct mount *, int); static int tmpfs_root(struct mount *, int flags, struct vnode **); -static int tmpfs_fhtovp(struct mount *, struct fid *, struct vnode **); +static int tmpfs_fhtovp(struct mount *, struct fid *, int, + struct vnode **); static int tmpfs_statfs(struct mount *, struct statfs *); /* --------------------------------------------------------------------- */ @@ -341,7 +342,8 @@ tmpfs_root(struct mount *mp, int flags, struct vnode **vpp) /* --------------------------------------------------------------------- */ static int -tmpfs_fhtovp(struct mount *mp, struct fid *fhp, struct vnode **vpp) +tmpfs_fhtovp(struct mount *mp, struct fid *fhp, int flags, + struct vnode **vpp) { boolean_t found; struct tmpfs_fid *tfhp; diff --git a/sys/fs/udf/udf_vfsops.c b/sys/fs/udf/udf_vfsops.c index 7be5384..bb2c09d 100644 --- a/sys/fs/udf/udf_vfsops.c +++ b/sys/fs/udf/udf_vfsops.c @@ -722,7 +722,7 @@ udf_vget(struct mount *mp, ino_t ino, int flags, struct vnode **vpp) } static int -udf_fhtovp(struct mount *mp, struct fid *fhp, struct vnode **vpp) +udf_fhtovp(struct mount *mp, struct fid *fhp, int flags, struct vnode **vpp) { struct ifid *ifhp; struct vnode *nvp; diff --git a/sys/fs/unionfs/union_vfsops.c b/sys/fs/unionfs/union_vfsops.c index e11219c..96258fb 100644 --- a/sys/fs/unionfs/union_vfsops.c +++ b/sys/fs/unionfs/union_vfsops.c @@ -454,7 +454,8 @@ unionfs_vget(struct mount *mp, ino_t ino, int flags, struct vnode **vpp) } static int -unionfs_fhtovp(struct mount *mp, struct fid *fidp, struct vnode **vpp) +unionfs_fhtovp(struct mount *mp, struct fid *fidp, int flags, + struct vnode **vpp) { return (EOPNOTSUPP); } diff --git a/sys/gnu/fs/reiserfs/reiserfs_vfsops.c b/sys/gnu/fs/reiserfs/reiserfs_vfsops.c index 1b5ce88..9b7ccd9 100644 --- a/sys/gnu/fs/reiserfs/reiserfs_vfsops.c +++ b/sys/gnu/fs/reiserfs/reiserfs_vfsops.c @@ -335,7 +335,8 @@ reiserfs_statfs(struct mount *mp, struct statfs *sbp) * those rights via. exflagsp and credanonp */ static int -reiserfs_fhtovp(struct mount *mp, struct fid *fhp, struct vnode **vpp) +reiserfs_fhtovp(struct mount *mp, struct fid *fhp, int flags, + struct vnode **vpp) { int error; struct rfid *rfhp; diff --git a/sys/gnu/fs/xfs/FreeBSD/support/kdb.c b/sys/gnu/fs/xfs/FreeBSD/support/kdb.c index 274f23d..b133dfe 100644 --- a/sys/gnu/fs/xfs/FreeBSD/support/kdb.c +++ b/sys/gnu/fs/xfs/FreeBSD/support/kdb.c @@ -56,7 +56,7 @@ kdb_getarea_size(void *res, unsigned long addr, size_t size) } int -db_putarea_size(unsigned long addr, void *res, size_t size) +kdb_putarea_size(unsigned long addr, void *res, size_t size) { return 0; } diff --git a/sys/gnu/fs/xfs/FreeBSD/xfs_mountops.c b/sys/gnu/fs/xfs/FreeBSD/xfs_mountops.c index f89618e..e9ccfc9 100644 --- a/sys/gnu/fs/xfs/FreeBSD/xfs_mountops.c +++ b/sys/gnu/fs/xfs/FreeBSD/xfs_mountops.c @@ -370,9 +370,10 @@ _xfs_vget(mp, ino, flags, vpp) } static int -_xfs_fhtovp(mp, fidp, vpp) +_xfs_fhtovp(mp, fidp, flags, vpp) struct mount *mp; struct fid *fidp; + int flags; struct vnode **vpp; { printf("xfs_fhtovp\n"); diff --git a/sys/kern/vfs_default.c b/sys/kern/vfs_default.c index e5f1254..b89d990 100644 --- a/sys/kern/vfs_default.c +++ b/sys/kern/vfs_default.c @@ -1081,9 +1081,10 @@ vfs_stdvget (mp, ino, flags, vpp) } int -vfs_stdfhtovp (mp, fhp, vpp) +vfs_stdfhtovp (mp, fhp, flags, vpp) struct mount *mp; struct fid *fhp; + int flags; struct vnode **vpp; { diff --git a/sys/kern/vfs_syscalls.c b/sys/kern/vfs_syscalls.c index 33f7c5b..b48c6e7 100644 --- a/sys/kern/vfs_syscalls.c +++ b/sys/kern/vfs_syscalls.c @@ -4405,7 +4405,7 @@ fhopen(td, uap) return (ESTALE); vfslocked = VFS_LOCK_GIANT(mp); /* now give me my vnode, it gets returned to me locked */ - error = VFS_FHTOVP(mp, &fhp.fh_fid, &vp); + error = VFS_FHTOVP(mp, &fhp.fh_fid, LK_EXCLUSIVE, &vp); vfs_unbusy(mp); if (error) goto out; @@ -4581,7 +4581,7 @@ fhstat(td, uap) if ((mp = vfs_busyfs(&fh.fh_fsid)) == NULL) return (ESTALE); vfslocked = VFS_LOCK_GIANT(mp); - error = VFS_FHTOVP(mp, &fh.fh_fid, &vp); + error = VFS_FHTOVP(mp, &fh.fh_fid, LK_EXCLUSIVE, &vp); vfs_unbusy(mp); if (error) { VFS_UNLOCK_GIANT(vfslocked); @@ -4641,7 +4641,7 @@ kern_fhstatfs(struct thread *td, fhandle_t fh, struct statfs *buf) if ((mp = vfs_busyfs(&fh.fh_fsid)) == NULL) return (ESTALE); vfslocked = VFS_LOCK_GIANT(mp); - error = VFS_FHTOVP(mp, &fh.fh_fid, &vp); + error = VFS_FHTOVP(mp, &fh.fh_fid, LK_EXCLUSIVE, &vp); if (error) { vfs_unbusy(mp); VFS_UNLOCK_GIANT(vfslocked); diff --git a/sys/modules/wlan/Makefile b/sys/modules/wlan/Makefile index 682aab3..f96ad32 100644 --- a/sys/modules/wlan/Makefile +++ b/sys/modules/wlan/Makefile @@ -18,7 +18,7 @@ SRCS+= bus_if.h device_if.h opt_inet.h opt_inet6.h opt_ipx.h opt_wlan.h \ .if !defined(KERNBUILDDIR) opt_wlan.h: echo "#define IEEE80211_DEBUG 1" > ${.TARGET} - echo "#define IEEE80211_AMDPU_AGE 1" >> ${.TARGET} + echo "#define IEEE80211_AMPDU_AGE 1" >> ${.TARGET} echo "#define IEEE80211_SUPPORT_MESH 1" >> ${.TARGET} opt_inet.h: echo "#define INET 1" > ${.TARGET} diff --git a/sys/net80211/ieee80211_var.h b/sys/net80211/ieee80211_var.h index 236883d..39cf347 100644 --- a/sys/net80211/ieee80211_var.h +++ b/sys/net80211/ieee80211_var.h @@ -578,7 +578,7 @@ MALLOC_DECLARE(M_80211_VAP); #define IEEE80211_FHT_BITS \ "\20\1NONHT_PR" \ - "\23GF\24HT\25AMDPU_TX\26AMPDU_TX" \ + "\23GF\24HT\25AMPDU_TX\26AMPDU_TX" \ "\27AMSDU_TX\30AMSDU_RX\31USEHT40\32PUREN\33SHORTGI20\34SHORTGI40" \ "\35HTCOMPAT\36RIFS\37STBC_TX\40STBC_RX" diff --git a/sys/nfsclient/nfs_vnops.c b/sys/nfsclient/nfs_vnops.c index 61fcb6c5..bb81f6b 100644 --- a/sys/nfsclient/nfs_vnops.c +++ b/sys/nfsclient/nfs_vnops.c @@ -64,7 +64,6 @@ __FBSDID("$FreeBSD$"); #include <sys/signalvar.h> #include <vm/vm.h> -#include <vm/vm_object.h> #include <vm/vm_extern.h> #include <vm/vm_object.h> diff --git a/sys/nfsserver/nfs_srvsubs.c b/sys/nfsserver/nfs_srvsubs.c index 5a92376..66a85c4 100644 --- a/sys/nfsserver/nfs_srvsubs.c +++ b/sys/nfsserver/nfs_srvsubs.c @@ -1128,7 +1128,7 @@ nfsrv_fhtovp(fhandle_t *fhp, int flags, struct vnode **vpp, int *vfslockedp, goto out; } } - error = VFS_FHTOVP(mp, &fhp->fh_fid, vpp); + error = VFS_FHTOVP(mp, &fhp->fh_fid, LK_EXCLUSIVE, vpp); if (error) { /* Make sure the server replies ESTALE to the client. */ error = ESTALE; diff --git a/sys/nlm/nlm_prot_impl.c b/sys/nlm/nlm_prot_impl.c index 070fdf9..afbb9dd 100644 --- a/sys/nlm/nlm_prot_impl.c +++ b/sys/nlm/nlm_prot_impl.c @@ -1797,7 +1797,7 @@ nlm_get_vfs_state(struct nlm_host *host, struct svc_req *rqstp, goto out; } - error = VFS_FHTOVP(vs->vs_mp, &fhp->fh_fid, &vs->vs_vp); + error = VFS_FHTOVP(vs->vs_mp, &fhp->fh_fid, LK_EXCLUSIVE, &vs->vs_vp); if (error) goto out; vs->vs_vnlocked = TRUE; diff --git a/sys/sys/mount.h b/sys/sys/mount.h index 231e3d6..d636607 100644 --- a/sys/sys/mount.h +++ b/sys/sys/mount.h @@ -566,7 +566,8 @@ typedef int vfs_statfs_t(struct mount *mp, struct statfs *sbp); typedef int vfs_sync_t(struct mount *mp, int waitfor); typedef int vfs_vget_t(struct mount *mp, ino_t ino, int flags, struct vnode **vpp); -typedef int vfs_fhtovp_t(struct mount *mp, struct fid *fhp, struct vnode **vpp); +typedef int vfs_fhtovp_t(struct mount *mp, struct fid *fhp, + int flags, struct vnode **vpp); typedef int vfs_checkexp_t(struct mount *mp, struct sockaddr *nam, int *extflagsp, struct ucred **credanonp, int *numsecflavors, int **secflavors); @@ -610,8 +611,8 @@ vfs_statfs_t __vfs_statfs; #define VFS_SYNC(MP, WAIT) (*(MP)->mnt_op->vfs_sync)(MP, WAIT) #define VFS_VGET(MP, INO, FLAGS, VPP) \ (*(MP)->mnt_op->vfs_vget)(MP, INO, FLAGS, VPP) -#define VFS_FHTOVP(MP, FIDP, VPP) \ - (*(MP)->mnt_op->vfs_fhtovp)(MP, FIDP, VPP) +#define VFS_FHTOVP(MP, FIDP, FLAGS, VPP) \ + (*(MP)->mnt_op->vfs_fhtovp)(MP, FIDP, FLAGS, VPP) #define VFS_CHECKEXP(MP, NAM, EXFLG, CRED, NUMSEC, SEC) \ (*(MP)->mnt_op->vfs_checkexp)(MP, NAM, EXFLG, CRED, NUMSEC, SEC) #define VFS_EXTATTRCTL(MP, C, FN, NS, N) \ diff --git a/sys/sys/param.h b/sys/sys/param.h index 7fbcde5..838769f 100644 --- a/sys/sys/param.h +++ b/sys/sys/param.h @@ -58,7 +58,7 @@ * in the range 5 to 9. */ #undef __FreeBSD_version -#define __FreeBSD_version 900037 /* Master, propagated to newvers */ +#define __FreeBSD_version 900038 /* Master, propagated to newvers */ #ifdef _KERNEL #define P_OSREL_SIGSEGV 700004 diff --git a/sys/ufs/ffs/ffs_vfsops.c b/sys/ufs/ffs/ffs_vfsops.c index 573c364..68b9619 100644 --- a/sys/ufs/ffs/ffs_vfsops.c +++ b/sys/ufs/ffs/ffs_vfsops.c @@ -1640,9 +1640,10 @@ ffs_vgetf(mp, ino, flags, vpp, ffs_flags) * those rights via. exflagsp and credanonp */ static int -ffs_fhtovp(mp, fhp, vpp) +ffs_fhtovp(mp, fhp, flags, vpp) struct mount *mp; struct fid *fhp; + int flags; struct vnode **vpp; { struct ufid *ufhp; @@ -1653,7 +1654,7 @@ ffs_fhtovp(mp, fhp, vpp) if (ufhp->ufid_ino < ROOTINO || ufhp->ufid_ino >= fs->fs_ncg * fs->fs_ipg) return (ESTALE); - return (ufs_fhtovp(mp, ufhp, vpp)); + return (ufs_fhtovp(mp, ufhp, flags, vpp)); } /* diff --git a/sys/ufs/ufs/ufs_extern.h b/sys/ufs/ufs/ufs_extern.h index 528b03b..c590748 100644 --- a/sys/ufs/ufs/ufs_extern.h +++ b/sys/ufs/ufs/ufs_extern.h @@ -56,7 +56,7 @@ extern struct vop_vector ufs_vnodeops; int ufs_bmap(struct vop_bmap_args *); int ufs_bmaparray(struct vnode *, ufs2_daddr_t, ufs2_daddr_t *, struct buf *, int *, int *); -int ufs_fhtovp(struct mount *, struct ufid *, struct vnode **); +int ufs_fhtovp(struct mount *, struct ufid *, int, struct vnode **); int ufs_checkpath(ino_t, ino_t, struct inode *, struct ucred *, ino_t *); void ufs_dirbad(struct inode *, doff_t, char *); int ufs_dirbadentry(struct vnode *, struct direct *, int); diff --git a/sys/ufs/ufs/ufs_vfsops.c b/sys/ufs/ufs/ufs_vfsops.c index 0eeb14f..b71fc16 100644 --- a/sys/ufs/ufs/ufs_vfsops.c +++ b/sys/ufs/ufs/ufs_vfsops.c @@ -208,9 +208,10 @@ ufs_uninit(vfsp) * Call the VFS_CHECKEXP beforehand to verify access. */ int -ufs_fhtovp(mp, ufhp, vpp) +ufs_fhtovp(mp, ufhp, flags, vpp) struct mount *mp; struct ufid *ufhp; + int flags; struct vnode **vpp; { struct inode *ip; diff --git a/sys/vm/uma_core.c b/sys/vm/uma_core.c index 7fb120a..8da5b8e 100644 --- a/sys/vm/uma_core.c +++ b/sys/vm/uma_core.c @@ -134,6 +134,8 @@ static struct mtx uma_boot_pages_mtx; /* Is the VM done starting up? */ static int booted = 0; +#define UMA_STARTUP 1 +#define UMA_STARTUP2 2 /* Maximum number of allowed items-per-slab if the slab header is OFFPAGE */ static u_int uma_max_ipers; @@ -959,7 +961,7 @@ startup_alloc(uma_zone_t zone, int bytes, u_int8_t *pflag, int wait) return (tmps->us_data); } mtx_unlock(&uma_boot_pages_mtx); - if (booted == 0) + if (booted < UMA_STARTUP2) panic("UMA: Increase vm.boot_pages"); /* * Now that we've booted reset these users to their real allocator. @@ -1316,10 +1318,15 @@ keg_ctor(void *mem, int size, void *udata, int flags) #ifdef UMA_MD_SMALL_ALLOC keg->uk_allocf = uma_small_alloc; keg->uk_freef = uma_small_free; -#endif - if (booted == 0) + + if (booted < UMA_STARTUP) + keg->uk_allocf = startup_alloc; +#else + if (booted < UMA_STARTUP2) keg->uk_allocf = startup_alloc; - } else if (booted == 0 && (keg->uk_flags & UMA_ZFLAG_INTERNAL)) +#endif + } else if (booted < UMA_STARTUP2 && + (keg->uk_flags & UMA_ZFLAG_INTERNAL)) keg->uk_allocf = startup_alloc; /* @@ -1752,9 +1759,7 @@ uma_startup(void *bootmem, int boot_pages) bucket_init(); -#if defined(UMA_MD_SMALL_ALLOC) && !defined(UMA_MD_SMALL_ALLOC_NEEDS_VM) - booted = 1; -#endif + booted = UMA_STARTUP; #ifdef UMA_DEBUG printf("UMA startup complete.\n"); @@ -1765,7 +1770,7 @@ uma_startup(void *bootmem, int boot_pages) void uma_startup2(void) { - booted = 1; + booted = UMA_STARTUP2; bucket_enable(); #ifdef UMA_DEBUG printf("UMA startup2 complete.\n"); diff --git a/sys/vm/uma_int.h b/sys/vm/uma_int.h index ae3e2ff..b2b5bac 100644 --- a/sys/vm/uma_int.h +++ b/sys/vm/uma_int.h @@ -118,7 +118,7 @@ #define UMA_SLAB_MASK (PAGE_SIZE - 1) /* Mask to get back to the page */ #define UMA_SLAB_SHIFT PAGE_SHIFT /* Number of bits PAGE_MASK */ -#define UMA_BOOT_PAGES 48 /* Pages allocated for startup */ +#define UMA_BOOT_PAGES 64 /* Pages allocated for startup */ /* Max waste before going to off page slab management */ #define UMA_MAX_WASTE (UMA_SLAB_SIZE / 10) diff --git a/tools/build/options/WITHOUT_KERNEL_SYMBOLS b/tools/build/options/WITHOUT_KERNEL_SYMBOLS new file mode 100644 index 0000000..e2b3926 --- /dev/null +++ b/tools/build/options/WITHOUT_KERNEL_SYMBOLS @@ -0,0 +1,5 @@ +.\" $FreeBSD$ +Set to not install kernel symbol files. +.Bf -symbolic +This option is recommended for those people who have small root partitions. +.Ef diff --git a/tools/regression/bin/sh/builtins/dot4.0 b/tools/regression/bin/sh/builtins/dot4.0 new file mode 100644 index 0000000..b898131 --- /dev/null +++ b/tools/regression/bin/sh/builtins/dot4.0 @@ -0,0 +1,12 @@ +# $FreeBSD$ + +v=abcd +v=$v$v$v$v +v=$v$v$v$v +v=$v$v$v$v +v=$v$v$v$v +v=$v$v$v$v +r=$( ( + trap 'exit 0' 0 + . "$v" +) 2>&1 >/dev/null) && [ -n "$r" ] diff --git a/tools/regression/bin/sh/parameters/positional1.0 b/tools/regression/bin/sh/parameters/positional1.0 new file mode 100644 index 0000000..67d1951 --- /dev/null +++ b/tools/regression/bin/sh/parameters/positional1.0 @@ -0,0 +1,13 @@ +# $FreeBSD$ + +set -- a b c d e f g h i j +[ "$1" = a ] || echo "error at line $LINENO" +[ "${1}" = a ] || echo "error at line $LINENO" +[ "${1-foo}" = a ] || echo "error at line $LINENO" +[ "${1+foo}" = foo ] || echo "error at line $LINENO" +[ "$1+foo" = a+foo ] || echo "error at line $LINENO" +[ "$10" = a0 ] || echo "error at line $LINENO" +[ "$100" = a00 ] || echo "error at line $LINENO" +[ "${10}" = j ] || echo "error at line $LINENO" +[ "${10-foo}" = j ] || echo "error at line $LINENO" +[ "${100-foo}" = foo ] || echo "error at line $LINENO" diff --git a/tools/regression/bin/sh/parser/alias4.0 b/tools/regression/bin/sh/parser/alias4.0 new file mode 100644 index 0000000..19332ed --- /dev/null +++ b/tools/regression/bin/sh/parser/alias4.0 @@ -0,0 +1,5 @@ +# $FreeBSD$ + +alias alias0=exit +eval 'x=1 alias0 0' +exit 1 diff --git a/tools/regression/bin/sh/parser/alias5.0 b/tools/regression/bin/sh/parser/alias5.0 new file mode 100644 index 0000000..3d0205f --- /dev/null +++ b/tools/regression/bin/sh/parser/alias5.0 @@ -0,0 +1,5 @@ +# $FreeBSD$ + +alias alias0=exit +eval '</dev/null alias0 0' +exit 1 diff --git a/tools/tools/iso/check-iso3166.pl b/tools/tools/iso/check-iso3166.pl index b85c188..a8baf4e 100755 --- a/tools/tools/iso/check-iso3166.pl +++ b/tools/tools/iso/check-iso3166.pl @@ -4,8 +4,8 @@ # $FreeBSD$ # # This script compares the file iso3166 (from head/share/misc) with the files -# list-en1-semic-2.txt (from -# http://www.iso.org/iso/list-en1-semic-2.txt) and iso3166-countrycodes.txt +# list-en1-semic-3.txt (from +# http://www.iso.org/iso/list-en1-semic-3.txt) and iso3166-countrycodes.txt # (from ftp://ftp.ripe.net/) to see if there any differences. # # Created by Edwin Groothuis <edwin@FreeBSD.org> for the FreeBSD project. @@ -41,7 +41,7 @@ my %old = (); my %new1 = (); { - open(FIN, "iso3166-countrycodes.txt") or die "Cannot open iso3166-countrycodes.txt, which can be retrieved from ftp://ftp.ripe.net/"; + open(FIN, "iso3166-countrycodes.txt") or die "Cannot open iso3166-countrycodes.txt, which can be retrieved from ftp://ftp.ripe.net/iso3166-countrycodes.txt"; my @lines = <FIN>; close(FIN); chomp(@lines); @@ -56,7 +56,7 @@ my %new1 = (); next if ($l eq ""); die "Invalid line: $l\n" - if ($l !~ /^(.+?)[\t ][\t ]+([A-Z]{2})[\t ]+([A-Z]{3})[\t ]+(\d+)[\t ]*$/); + if ($l !~ /^(.+?)[\t ]+([A-Z]{2})[\t ]+([A-Z]{3})[\t ]+(\d+)[\t ]*$/); my $two = $2; my $three = $3; my $number = $4; @@ -71,7 +71,7 @@ my %new1 = (); my %new2 = (); { - open(FIN, "list-en1-semic-2.txt") or die "Cannot open list-en1-semic-2.txt, which can be retrieved from http://www.iso.org/iso/list-en1-semic-2.txt"; + open(FIN, "list-en1-semic-3.txt") or die "Cannot open list-en1-semic-3.txt, which can be retrieved from http://www.iso.org/iso/list-en1-semic-3.txt"; my @lines = <FIN>; close(FIN); chomp(@lines); diff --git a/usr.sbin/makefs/cd9660.c b/usr.sbin/makefs/cd9660.c index bed764f..59b9ef4 100644 --- a/usr.sbin/makefs/cd9660.c +++ b/usr.sbin/makefs/cd9660.c @@ -207,6 +207,7 @@ cd9660_set_defaults(void) diskStructure.rr_moved_dir = 0; diskStructure.archimedes_enabled = 0; + diskStructure.chrp_boot = 0; diskStructure.include_padding_areas = 1; @@ -391,6 +392,8 @@ cd9660_parse_opts(const char *option, fsinfo_t *fsopts) diskStructure.rock_ridge_enabled = 1; else if (CD9660_IS_COMMAND_ARG_DUAL(var, "A", "archimedes")) diskStructure.archimedes_enabled = 1; + else if (CD9660_IS_COMMAND_ARG(var, "chrp-boot")) + diskStructure.chrp_boot = 1; else if (CD9660_IS_COMMAND_ARG_DUAL(var, "K", "keep-bad-images")) diskStructure.keep_bad_images = 1; else if (CD9660_IS_COMMAND_ARG(var, "allow-deep-trees")) diff --git a/usr.sbin/makefs/cd9660.h b/usr.sbin/makefs/cd9660.h index 16c0d64..79f0a9d 100644 --- a/usr.sbin/makefs/cd9660.h +++ b/usr.sbin/makefs/cd9660.h @@ -285,6 +285,7 @@ typedef struct _iso9660_disk { cd9660node *rr_moved_dir; int archimedes_enabled; + int chrp_boot; /* Spec breaking options */ u_char allow_deep_trees; diff --git a/usr.sbin/makefs/cd9660/cd9660_eltorito.c b/usr.sbin/makefs/cd9660/cd9660_eltorito.c index 09aa3a5..2f45e9d 100644 --- a/usr.sbin/makefs/cd9660/cd9660_eltorito.c +++ b/usr.sbin/makefs/cd9660/cd9660_eltorito.c @@ -32,7 +32,7 @@ * OF SUCH DAMAGE. */ -#include <netinet/in.h> +#include <sys/endian.h> #include "cd9660.h" #include "cd9660_eltorito.h" @@ -501,27 +501,62 @@ cd9660_setup_boot_volume_descriptor(volume_descriptor *bvd) } static int +cd9660_write_mbr_partition_entry(FILE *fd, int index, off_t sector_start, + off_t nsectors, int type) +{ + uint8_t val; + uint32_t lba; + + fseeko(fd, (off_t)(index) * 16 + 0x1be, SEEK_SET); + + val = 0x80; /* Bootable */ + fwrite(&val, sizeof(val), 1, fd); + + val = 0xff; /* CHS begin */ + fwrite(&val, sizeof(val), 1, fd); + fwrite(&val, sizeof(val), 1, fd); + fwrite(&val, sizeof(val), 1, fd); + + val = type; /* Part type */ + fwrite(&val, sizeof(val), 1, fd); + + val = 0xff; /* CHS end */ + fwrite(&val, sizeof(val), 1, fd); + fwrite(&val, sizeof(val), 1, fd); + fwrite(&val, sizeof(val), 1, fd); + + /* LBA extent */ + lba = htole32(sector_start); + fwrite(&lba, sizeof(lba), 1, fd); + lba = htole32(nsectors); + fwrite(&lba, sizeof(lba), 1, fd); + + return (0); +} + +static int cd9660_write_apm_partition_entry(FILE *fd, int index, int total_partitions, off_t sector_start, off_t nsectors, off_t sector_size, - const char *part_name, const char *part_type) { + const char *part_name, const char *part_type) +{ uint32_t apm32; uint16_t apm16; fseeko(fd, (off_t)(index + 1) * sector_size, SEEK_SET); /* Signature */ - apm16 = htons(0x504d); + apm16 = htobe16(0x504d); fwrite(&apm16, sizeof(apm16), 1, fd); apm16 = 0; fwrite(&apm16, sizeof(apm16), 1, fd); /* Total number of partitions */ - apm32 = htonl(total_partitions); + apm32 = htobe32(total_partitions); fwrite(&apm32, sizeof(apm32), 1, fd); /* Bounds */ - apm32 = htonl(sector_start); + apm32 = htobe32(sector_start); fwrite(&apm32, sizeof(apm32), 1, fd); - apm32 = htonl(nsectors); + apm32 = htobe32(nsectors); fwrite(&apm32, sizeof(apm32), 1, fd); fwrite(part_name, strlen(part_name) + 1, 1, fd); @@ -537,6 +572,7 @@ cd9660_write_boot(FILE *fd) struct boot_catalog_entry *e; struct cd9660_boot_image *t; int apm_partitions = 0; + int mbr_partitions = 0; /* write boot catalog */ if (fseeko(fd, (off_t)diskStructure.boot_catalog_sector * @@ -571,6 +607,35 @@ cd9660_write_boot(FILE *fd) if (t->system == ET_SYS_MAC) apm_partitions++; + if (t->system == ET_SYS_PPC) + mbr_partitions++; + } + + /* some systems need partition tables as well */ + if (mbr_partitions > 0 || diskStructure.chrp_boot) { + uint16_t sig; + + fseek(fd, 0x1fe, SEEK_SET); + sig = htole16(0xaa55); + fwrite(&sig, sizeof(sig), 1, fd); + + mbr_partitions = 0; + + /* Write ISO9660 descriptor, enclosing the whole disk */ + if (diskStructure.chrp_boot) + cd9660_write_mbr_partition_entry(fd, mbr_partitions++, + 0, diskStructure.totalSectors * + (diskStructure.sectorSize / 512), 0x96); + + /* Write all partition entries */ + TAILQ_FOREACH(t, &diskStructure.boot_images, image_list) { + if (t->system != ET_SYS_PPC) + continue; + cd9660_write_mbr_partition_entry(fd, mbr_partitions++, + t->sector * (diskStructure.sectorSize / 512), + t->num_sectors * (diskStructure.sectorSize / 512), + 0x41 /* PReP Boot */); + } } if (apm_partitions > 0) { @@ -580,17 +645,17 @@ cd9660_write_boot(FILE *fd) int total_parts; fseek(fd, 0, SEEK_SET); - apm16 = htons(0x4552); + apm16 = htobe16(0x4552); fwrite(&apm16, sizeof(apm16), 1, fd); /* Device block size */ - apm16 = htons(512); + apm16 = htobe16(512); fwrite(&apm16, sizeof(apm16), 1, fd); /* Device block count */ - apm32 = htonl(diskStructure.totalSectors * + apm32 = htobe32(diskStructure.totalSectors * (diskStructure.sectorSize / 512)); fwrite(&apm32, sizeof(apm32), 1, fd); /* Device type/id */ - apm16 = htons(1); + apm16 = htobe16(1); fwrite(&apm16, sizeof(apm16), 1, fd); fwrite(&apm16, sizeof(apm16), 1, fd); diff --git a/usr.sbin/makefs/makefs.8 b/usr.sbin/makefs/makefs.8 index 974477c..b9fb10e 100644 --- a/usr.sbin/makefs/makefs.8 +++ b/usr.sbin/makefs/makefs.8 @@ -285,6 +285,9 @@ Use the extension to encode .Tn RISC OS metadata. +.It Sy chrp-boot +Write an MBR partition table to the image to allow older CHRP hardware to +boot. .It Sy boot-load-segment Set load segment for the boot image. .It Sy bootimage |