diff options
Diffstat (limited to 'scripts')
26 files changed, 348 insertions, 14 deletions
diff --git a/scripts/atomic/acqrel.sh b/scripts/atomic/acqrel.sh new file mode 100644 index 000000000000..5009a54fdac5 --- /dev/null +++ b/scripts/atomic/acqrel.sh @@ -0,0 +1,67 @@ +echo ${args} | tr -d ' ' | tr ',' '\012' | + awk -v atomic=${atomic} \ + -v name_op=${name} \ + -v ret=${ret} \ + -v oldnew=${docbook_oldnew} \ + -v acqrel=${acqrel} \ + -v basefuncname=arch_${atomic}_${pfx}${name}${sfx} ' + BEGIN { + print "/**"; + sfxord = "_" acqrel; + if (acqrel == "full") + sfxord = ""; + print " * " basefuncname sfxord " - Atomic " name_op " with " acqrel " ordering"; + longname["add"] = "add"; + longname["sub"] = "subtract"; + longname["inc"] = "increment"; + longname["dec"] = "decrement"; + longname["and"] = "AND"; + longname["andnot"] = "complement then AND"; + longname["or"] = "OR"; + longname["xor"] = "XOR"; + longname["xchg"] = "exchange"; + longname["add_negative"] = "add"; + desc["i"] = "value to " longname[name_op]; + desc["v"] = "pointer of type " atomic "_t"; + desc["old"] = "desired old value to match"; + desc["new"] = "new value to put in"; + opmod = "with"; + if (name_op == "add") + opmod = "to"; + else if (name_op == "sub") + opmod = "from"; + } + + { + print " * @" $1 ": " desc[$1]; + have[$1] = 1; + } + + END { + print " *"; + if (name_op ~ /cmpxchg/) { + print " * Atomically compares @new to *@v, and if equal,"; + print " * stores @new to *@v, providing " acqrel " ordering."; + } else if (have["i"]) { + print " * Atomically " longname[name_op] " @i " opmod " @v using " acqrel " ordering."; + } else { + print " * Atomically " longname[name_op] " @v using " acqrel " ordering."; + } + if (name_op ~ /cmpxchg/ && ret == "bool") { + print " * Returns @true if the cmpxchg operation succeeded,"; + print " * and false otherwise. Either way, stores the old"; + print " * value of *@v to *@old."; + } else if (name_op == "cmpxchg") { + print " * Returns the old value *@v regardless of the result of"; + print " * the comparison. Therefore, if the return value is not"; + print " * equal to @old, the cmpxchg operation failed."; + } else if (name_op == "xchg") { + print " * Return old value."; + } else if (name_op == "add_negative") { + print " * Return @true if the result is negative, or @false when" + print " * the result is greater than or equal to zero."; + } else { + print " * Return " oldnew " value."; + } + print " */"; + }' diff --git a/scripts/atomic/chkdup.sh b/scripts/atomic/chkdup.sh new file mode 100644 index 000000000000..04bb4f5c5c34 --- /dev/null +++ b/scripts/atomic/chkdup.sh @@ -0,0 +1,27 @@ +#!/bin/sh +# SPDX-License-Identifier: GPL-2.0 +# +# Check to see if the specified atomic is already in use. This is +# done by keeping filenames in the temporary directory specified by the +# environment variable T. +# +# Usage: +# chkdup.sh name fallback +# +# The "name" argument is the name of the function to be generated, and +# the "fallback" argument is the name of the fallback script that is +# doing the generation. +# +# If the function is a duplicate, output a comment saying so and +# exit with non-zero (error) status. Otherwise exit successfully +# +# If the function is a duplicate, output a comment saying so and +# exit with non-zero (error) status. Otherwise exit successfully. + +if test -f ${T}/${1} +then + echo // Fallback ${2} omitting duplicate "${1}()" kernel-doc header. + exit 1 +fi +touch ${T}/${1} +exit 0 diff --git a/scripts/atomic/fallbacks/acquire b/scripts/atomic/fallbacks/acquire index ef764085c79a..a349935ac7fe 100755 --- a/scripts/atomic/fallbacks/acquire +++ b/scripts/atomic/fallbacks/acquire @@ -1,4 +1,9 @@ -cat <<EOF +if /bin/sh ${ATOMICDIR}/chkdup.sh arch_${atomic}_${pfx}${name}${sfx}_acquire acquire +then +acqrel=acquire +. ${ATOMICDIR}/acqrel.sh +fi +cat << EOF static __always_inline ${ret} arch_${atomic}_${pfx}${name}${sfx}_acquire(${params}) { diff --git a/scripts/atomic/fallbacks/add_negative b/scripts/atomic/fallbacks/add_negative index e5980abf5904..8fa9098f35af 100755 --- a/scripts/atomic/fallbacks/add_negative +++ b/scripts/atomic/fallbacks/add_negative @@ -1,12 +1,18 @@ +if /bin/sh ${ATOMICDIR}/chkdup.sh arch_${atomic}_add_negative${order} add_negative +then cat <<EOF /** * arch_${atomic}_add_negative${order} - Add and test if negative * @i: integer value to add * @v: pointer of type ${atomic}_t * - * Atomically adds @i to @v and returns true if the result is negative, - * or false when the result is greater than or equal to zero. + * Atomically adds @i to @v with ${docbook_order} ordering. + * Returns @true if the result is negative, or @false when the result + * is greater than or equal to zero. */ +EOF +fi +cat <<EOF static __always_inline bool arch_${atomic}_add_negative${order}(${int} i, ${atomic}_t *v) { diff --git a/scripts/atomic/fallbacks/add_unless b/scripts/atomic/fallbacks/add_unless index 9e5159c2ccfc..87ed46cb6987 100755 --- a/scripts/atomic/fallbacks/add_unless +++ b/scripts/atomic/fallbacks/add_unless @@ -1,3 +1,5 @@ +if /bin/sh ${ATOMICDIR}/chkdup.sh arch_${atomic}_add_unless add_unless +then cat << EOF /** * arch_${atomic}_add_unless - add unless the number is already a given value @@ -5,9 +7,12 @@ cat << EOF * @a: the amount to add to v... * @u: ...unless v is equal to u. * - * Atomically adds @a to @v, if @v was not already @u. - * Returns true if the addition was done. + * Atomically adds @a to @v with full ordering, but only if @v was not already @u. + * Returns @true if the addition was done. */ +EOF +fi +cat << EOF static __always_inline bool arch_${atomic}_add_unless(${atomic}_t *v, ${int} a, ${int} u) { diff --git a/scripts/atomic/fallbacks/andnot b/scripts/atomic/fallbacks/andnot index 5a42f54a3595..c415a3d7baed 100755 --- a/scripts/atomic/fallbacks/andnot +++ b/scripts/atomic/fallbacks/andnot @@ -1,3 +1,16 @@ +if /bin/sh ${ATOMICDIR}/chkdup.sh arch_${atomic}_${pfx}andnot${sfx}${order} andnot +then +cat <<EOF +/** + * arch_${atomic}_${pfx}andnot${sfx}${order} - Atomic and-not + * @i: the quantity to and-not with *@v + * @v: pointer of type ${atomic}_t + * + * Atomically and-not @i with @v using ${docbook_order} ordering, + * returning ${docbook_oldnew} value. + */ +EOF +fi cat <<EOF static __always_inline ${ret} arch_${atomic}_${pfx}andnot${sfx}${order}(${int} i, ${atomic}_t *v) diff --git a/scripts/atomic/fallbacks/dec b/scripts/atomic/fallbacks/dec index 8c144c818e9e..e44d3eb96d2b 100755 --- a/scripts/atomic/fallbacks/dec +++ b/scripts/atomic/fallbacks/dec @@ -1,3 +1,15 @@ +if /bin/sh ${ATOMICDIR}/chkdup.sh arch_${atomic}_${pfx}dec${sfx}${order} dec +then +cat <<EOF +/** + * arch_${atomic}_${pfx}dec${sfx}${order} - Atomic decrement + * @v: pointer of type ${atomic}_t + * + * Atomically decrement @v with ${docbook_order} ordering, + * returning ${docbook_oldnew} value. + */ +EOF +fi cat <<EOF static __always_inline ${ret} arch_${atomic}_${pfx}dec${sfx}${order}(${atomic}_t *v) diff --git a/scripts/atomic/fallbacks/dec_and_test b/scripts/atomic/fallbacks/dec_and_test index 8549f359bd0e..1f47a292f693 100755 --- a/scripts/atomic/fallbacks/dec_and_test +++ b/scripts/atomic/fallbacks/dec_and_test @@ -1,12 +1,17 @@ +if /bin/sh ${ATOMICDIR}/chkdup.sh arch_${atomic}_dec_and_test dec_and_test +then cat <<EOF /** * arch_${atomic}_dec_and_test - decrement and test * @v: pointer of type ${atomic}_t * - * Atomically decrements @v by 1 and - * returns true if the result is 0, or false for all other + * Atomically decrements @v by 1 with full ordering. + * Returns @true if the result is 0, or @false for all other * cases. */ +EOF +fi +cat <<EOF static __always_inline bool arch_${atomic}_dec_and_test(${atomic}_t *v) { diff --git a/scripts/atomic/fallbacks/dec_if_positive b/scripts/atomic/fallbacks/dec_if_positive index 86bdced3428d..3459075d8674 100755 --- a/scripts/atomic/fallbacks/dec_if_positive +++ b/scripts/atomic/fallbacks/dec_if_positive @@ -1,3 +1,19 @@ +if /bin/sh ${ATOMICDIR}/chkdup.sh arch_${atomic}_dec_if_positive dec_if_positive +then +cat <<EOF +/** + * arch_${atomic}_dec_if_positive - Atomic decrement if old value is positive + * @v: pointer of type ${atomic}_t + * + * Atomically decrement @v with full ordering, but only if the original + * value is greater than zero, returning new value. Note that the desired + * new value will be returned even if the decrement did not occur, so that + * if the old value is -3, then there @v will not be decremented, but -4 + * will be returned. As a result, if the return value is non-negative, + * then the value was in fact decremented. + */ +EOF +fi cat <<EOF static __always_inline ${ret} arch_${atomic}_dec_if_positive(${atomic}_t *v) diff --git a/scripts/atomic/fallbacks/dec_unless_positive b/scripts/atomic/fallbacks/dec_unless_positive index c531d5afecc4..0c7a99d26784 100755 --- a/scripts/atomic/fallbacks/dec_unless_positive +++ b/scripts/atomic/fallbacks/dec_unless_positive @@ -1,3 +1,16 @@ +if /bin/sh ${ATOMICDIR}/chkdup.sh arch_${atomic}_dec_unless_positive dec_unless_positive +then +cat <<EOF +/** + * arch_${atomic}_dec_unless_positive - Atomic decrement if old value is non-positive + * @v: pointer of type ${atomic}_t + * + * Atomically decrement @v with full ordering, but only if the original value is less + * than or equal to zero. Return @true if the decrement happened and + * @false otherwise. + */ +EOF +fi cat <<EOF static __always_inline bool arch_${atomic}_dec_unless_positive(${atomic}_t *v) diff --git a/scripts/atomic/fallbacks/fence b/scripts/atomic/fallbacks/fence index 07757d8e338e..f4901343cd2b 100755 --- a/scripts/atomic/fallbacks/fence +++ b/scripts/atomic/fallbacks/fence @@ -1,3 +1,8 @@ +if /bin/sh ${ATOMICDIR}/chkdup.sh arch_${atomic}_${pfx}${name}${sfx} fence +then +acqrel=full +. ${ATOMICDIR}/acqrel.sh +fi cat <<EOF static __always_inline ${ret} arch_${atomic}_${pfx}${name}${sfx}(${params}) diff --git a/scripts/atomic/fallbacks/fetch_add_unless b/scripts/atomic/fallbacks/fetch_add_unless index 68ce13c8b9da..ec583d340785 100755 --- a/scripts/atomic/fallbacks/fetch_add_unless +++ b/scripts/atomic/fallbacks/fetch_add_unless @@ -1,3 +1,5 @@ +if /bin/sh ${ATOMICDIR}/chkdup.sh arch_${atomic}_fetch_add_unless fetch_add_unless +then cat << EOF /** * arch_${atomic}_fetch_add_unless - add unless the number is already a given value @@ -6,8 +8,11 @@ cat << EOF * @u: ...unless v is equal to u. * * Atomically adds @a to @v, so long as @v was not already @u. - * Returns original value of @v + * Returns original value of @v. */ +EOF +fi +cat << EOF static __always_inline ${int} arch_${atomic}_fetch_add_unless(${atomic}_t *v, ${int} a, ${int} u) { diff --git a/scripts/atomic/fallbacks/inc b/scripts/atomic/fallbacks/inc index 3c2c3739169e..bb1d5ea6846c 100755 --- a/scripts/atomic/fallbacks/inc +++ b/scripts/atomic/fallbacks/inc @@ -1,3 +1,15 @@ +if /bin/sh ${ATOMICDIR}/chkdup.sh arch_${atomic}_${pfx}inc${sfx}${order} inc +then +cat <<EOF +/** + * arch_${atomic}_${pfx}inc${sfx}${order} - Atomic increment + * @v: pointer of type ${atomic}_t + * + * Atomically increment @v with ${docbook_order} ordering, + * returning ${docbook_oldnew} value. + */ +EOF +fi cat <<EOF static __always_inline ${ret} arch_${atomic}_${pfx}inc${sfx}${order}(${atomic}_t *v) diff --git a/scripts/atomic/fallbacks/inc_and_test b/scripts/atomic/fallbacks/inc_and_test index 0cf23fe1efb8..637ddd8d9d32 100755 --- a/scripts/atomic/fallbacks/inc_and_test +++ b/scripts/atomic/fallbacks/inc_and_test @@ -1,12 +1,17 @@ +if /bin/sh ${ATOMICDIR}/chkdup.sh arch_${atomic}_inc_and_test inc_and_test +then cat <<EOF /** * arch_${atomic}_inc_and_test - increment and test * @v: pointer of type ${atomic}_t * - * Atomically increments @v by 1 - * and returns true if the result is zero, or false for all + * Atomically increments @v by 1 with full ordering. + * Returns @true if the result is zero, or @false for all * other cases. */ +EOF +fi +cat <<EOF static __always_inline bool arch_${atomic}_inc_and_test(${atomic}_t *v) { diff --git a/scripts/atomic/fallbacks/inc_not_zero b/scripts/atomic/fallbacks/inc_not_zero index ed8a1f562667..e90fea40d596 100755 --- a/scripts/atomic/fallbacks/inc_not_zero +++ b/scripts/atomic/fallbacks/inc_not_zero @@ -1,11 +1,16 @@ +if /bin/sh ${ATOMICDIR}/chkdup.sh arch_${atomic}_inc_not_zero inc_not_zero +then cat <<EOF /** * arch_${atomic}_inc_not_zero - increment unless the number is zero * @v: pointer of type ${atomic}_t * - * Atomically increments @v by 1, if @v is non-zero. - * Returns true if the increment was done. + * Atomically increments @v by 1 with full ordering, but only if @v is non-zero. + * Returns @true if the increment was done. */ +EOF +fi +cat <<EOF static __always_inline bool arch_${atomic}_inc_not_zero(${atomic}_t *v) { diff --git a/scripts/atomic/fallbacks/inc_unless_negative b/scripts/atomic/fallbacks/inc_unless_negative index 95d8ce48233f..e70d9fdfc3d6 100755 --- a/scripts/atomic/fallbacks/inc_unless_negative +++ b/scripts/atomic/fallbacks/inc_unless_negative @@ -1,3 +1,16 @@ +if /bin/sh ${ATOMICDIR}/chkdup.sh arch_${atomic}_inc_unless_negative inc_unless_negative +then +cat <<EOF +/** + * arch_${atomic}_inc_unless_negative - Atomic increment if old value is non-negative + * @v: pointer of type ${atomic}_t + * + * Atomically increment @v with full ordering, but only if the original + * value is greater than or equal to zero. Return @true if the increment + * happened and @false otherwise. + */ +EOF +fi cat <<EOF static __always_inline bool arch_${atomic}_inc_unless_negative(${atomic}_t *v) diff --git a/scripts/atomic/fallbacks/read_acquire b/scripts/atomic/fallbacks/read_acquire index a0ea1d26e6b2..680cd43080cb 100755 --- a/scripts/atomic/fallbacks/read_acquire +++ b/scripts/atomic/fallbacks/read_acquire @@ -1,3 +1,15 @@ +if /bin/sh ${ATOMICDIR}/chkdup.sh arch_${atomic}_read_acquire read_acquire +then +cat <<EOF +/** + * arch_${atomic}_read_acquire - Atomic load acquire + * @v: pointer of type ${atomic}_t + * + * Atomically load from *@v with acquire ordering, returning the value + * loaded. + */ +EOF +fi cat <<EOF static __always_inline ${ret} arch_${atomic}_read_acquire(const ${atomic}_t *v) diff --git a/scripts/atomic/fallbacks/release b/scripts/atomic/fallbacks/release index b46feb56d69c..a1604df66ece 100755 --- a/scripts/atomic/fallbacks/release +++ b/scripts/atomic/fallbacks/release @@ -1,3 +1,8 @@ +if /bin/sh ${ATOMICDIR}/chkdup.sh arch_${atomic}_${pfx}${name}${sfx}_release release +then +acqrel=release +. ${ATOMICDIR}/acqrel.sh +fi cat <<EOF static __always_inline ${ret} arch_${atomic}_${pfx}${name}${sfx}_release(${params}) diff --git a/scripts/atomic/fallbacks/set_release b/scripts/atomic/fallbacks/set_release index 05cdb7f42477..2a65d3b29f4b 100755 --- a/scripts/atomic/fallbacks/set_release +++ b/scripts/atomic/fallbacks/set_release @@ -1,3 +1,15 @@ +if /bin/sh ${ATOMICDIR}/chkdup.sh arch_${atomic}_set_release set_release +then +cat <<EOF +/** + * arch_${atomic}_set_release - Atomic store release + * @v: pointer of type ${atomic}_t + * @i: value to store + * + * Atomically store @i into *@v with release ordering. + */ +EOF +fi cat <<EOF static __always_inline void arch_${atomic}_set_release(${atomic}_t *v, ${int} i) diff --git a/scripts/atomic/fallbacks/sub_and_test b/scripts/atomic/fallbacks/sub_and_test index 260f37341c88..061ba0ada157 100755 --- a/scripts/atomic/fallbacks/sub_and_test +++ b/scripts/atomic/fallbacks/sub_and_test @@ -1,13 +1,18 @@ +if /bin/sh ${ATOMICDIR}/chkdup.sh arch_${atomic}_sub_and_test sub_and_test +then cat <<EOF /** * arch_${atomic}_sub_and_test - subtract value from variable and test result * @i: integer value to subtract * @v: pointer of type ${atomic}_t * - * Atomically subtracts @i from @v and returns - * true if the result is zero, or false for all + * Atomically subtracts @i from @v with full ordering. + * Returns @true if the result is zero, or @false for all * other cases. */ +EOF +fi +cat <<EOF static __always_inline bool arch_${atomic}_sub_and_test(${int} i, ${atomic}_t *v) { diff --git a/scripts/atomic/fallbacks/try_cmpxchg b/scripts/atomic/fallbacks/try_cmpxchg index 890f850ede37..77f0fa1eeeb1 100755 --- a/scripts/atomic/fallbacks/try_cmpxchg +++ b/scripts/atomic/fallbacks/try_cmpxchg @@ -1,3 +1,20 @@ +if /bin/sh ${ATOMICDIR}/chkdup.sh arch_${atomic}_try_cmpxchg${order} try_cmpxchg +then +cat <<EOF +/** + * arch_${atomic}_try_cmpxchg${order} - Atomic cmpxchg with bool return value + * @v: pointer of type ${atomic}_t + * @old: desired old value to match + * @new: new value to put in + * + * Atomically compares @new to *@v, and if equal, stores @new to *@v, + * providing ${docbook_order} ordering. + * Returns @true if the cmpxchg operation succeeded, and @false otherwise. + * On failure, stores the original value of *@v into *@old, which permits + * a retry without a reload from *@v. + */ +EOF +fi cat <<EOF static __always_inline bool arch_${atomic}_try_cmpxchg${order}(${atomic}_t *v, ${int} *old, ${int} new) diff --git a/scripts/atomic/gen-atomic-fallback.sh b/scripts/atomic/gen-atomic-fallback.sh index 6e853f0dad8d..b0fba187a27a 100755 --- a/scripts/atomic/gen-atomic-fallback.sh +++ b/scripts/atomic/gen-atomic-fallback.sh @@ -24,6 +24,26 @@ gen_template_fallback() local params="$(gen_params "${int}" "${atomic}" "$@")" local args="$(gen_args "$@")" + local docbook_order=full + if test "${order}" = "_relaxed" + then + docbook_order=no + elif test -n "${order}" + then + docbook_order="`echo $order | sed -e 's/_//'`" + elif test "${ret}" = void + then + docbook_order=no + fi + local docbook_oldnew="new" + if test "${pfx}" = "fetch_" + then + docbook_oldnew="old" + elif test "${sfx}" != "_return" + then + docbook_oldnew="no" + fi + if [ ! -z "${template}" ]; then printf "#ifndef ${atomicname}\n" . ${template} diff --git a/scripts/atomic/gen-atomic-instrumented.sh b/scripts/atomic/gen-atomic-instrumented.sh index d9ffd74f73ca..65e6d29cc1d7 100755 --- a/scripts/atomic/gen-atomic-instrumented.sh +++ b/scripts/atomic/gen-atomic-instrumented.sh @@ -68,6 +68,26 @@ gen_proto_order_variant() local args="$(gen_args "$@")" local retstmt="$(gen_ret_stmt "${meta}")" + local docbook_order=full + if test "${order}" = "_relaxed" + then + docbook_order=no + elif test -n "${order}" + then + docbook_order="`echo $order | sed -e 's/_//'`" + elif test "${ret}" = void + then + docbook_order=no + fi + local docbook_oldnew="new" + if test "${pfx}" = "fetch_" + then + docbook_oldnew="old" + elif test "${sfx}" != "_return" + then + docbook_oldnew="no" + fi + cat <<EOF static __always_inline ${ret} ${atomicname}(${params}) diff --git a/scripts/atomic/gen-atomics.sh b/scripts/atomic/gen-atomics.sh index 5b98a8307693..69bf3754df5a 100755 --- a/scripts/atomic/gen-atomics.sh +++ b/scripts/atomic/gen-atomics.sh @@ -3,6 +3,10 @@ # # Generate atomic headers +T="`mktemp -d ${TMPDIR-/tmp}/gen-atomics.sh.XXXXXX`" +trap 'rm -rf $T' 0 +export T + ATOMICDIR=$(dirname $0) ATOMICTBL=${ATOMICDIR}/atomics.tbl LINUXDIR=${ATOMICDIR}/../.. diff --git a/scripts/pahole-flags.sh b/scripts/pahole-flags.sh index 1f1f1d397c39..728d55190d97 100755 --- a/scripts/pahole-flags.sh +++ b/scripts/pahole-flags.sh @@ -23,5 +23,8 @@ if [ "${pahole_ver}" -ge "124" ]; then # see PAHOLE_HAS_LANG_EXCLUDE extra_paholeopt="${extra_paholeopt} --lang_exclude=rust" fi +if [ "${pahole_ver}" -ge "125" ]; then + extra_paholeopt="${extra_paholeopt} --skip_encoding_btf_inconsistent_proto --btf_gen_optimized" +fi echo ${extra_paholeopt} diff --git a/scripts/spelling.txt b/scripts/spelling.txt index f8bd6178d17b..fc7ba95e86a0 100644 --- a/scripts/spelling.txt +++ b/scripts/spelling.txt @@ -155,6 +155,7 @@ aquired||acquired aquisition||acquisition arbitary||arbitrary architechture||architecture +archtecture||architecture arguement||argument arguements||arguments arithmatic||arithmetic @@ -279,6 +280,7 @@ cant'||can't canot||cannot cann't||can't cannnot||cannot +capabiity||capability capabilites||capabilities capabilties||capabilities capabilty||capability @@ -426,6 +428,7 @@ cotrol||control cound||could couter||counter coutner||counter +creationg||creating cryptocraphic||cryptographic cummulative||cumulative cunter||counter @@ -492,6 +495,7 @@ destorys||destroys destroied||destroyed detabase||database deteced||detected +detecion||detection detectt||detect detroyed||destroyed develope||develop @@ -513,6 +517,7 @@ diferent||different differrence||difference diffrent||different differenciate||differentiate +diffreential||differential diffrentiate||differentiate difinition||definition digial||digital @@ -617,6 +622,7 @@ evalute||evaluate evalutes||evaluates evalution||evaluation excecutable||executable +excceed||exceed exceded||exceeded exceds||exceeds exceeed||exceed @@ -632,6 +638,7 @@ existant||existent exixt||exist exsits||exists exlcude||exclude +exlcuding||excluding exlcusive||exclusive exlusive||exclusive exmaple||example @@ -726,6 +733,8 @@ generiously||generously genereate||generate genereted||generated genric||generic +gerenal||general +geting||getting globel||global grabing||grabbing grahical||graphical @@ -899,6 +908,7 @@ iteraions||iterations iternations||iterations itertation||iteration itslef||itself +ivalid||invalid jave||java jeffies||jiffies jumpimng||jumping @@ -977,6 +987,7 @@ microprocesspr||microprocessor migrateable||migratable millenium||millennium milliseonds||milliseconds +minimim||minimum minium||minimum minimam||minimum minimun||minimum @@ -1042,6 +1053,7 @@ notifed||notified notity||notify nubmer||number numebr||number +numer||number numner||number nunber||number obtaion||obtain @@ -1061,6 +1073,7 @@ offet||offset offlaod||offload offloded||offloaded offseting||offsetting +oflload||offload omited||omitted omiting||omitting omitt||omit @@ -1105,6 +1118,7 @@ pakage||package paket||packet pallette||palette paln||plan +palne||plane paramameters||parameters paramaters||parameters paramater||parameter @@ -1181,12 +1195,14 @@ previsously||previously primative||primitive princliple||principle priorty||priority +priting||printing privilaged||privileged privilage||privilege priviledge||privilege priviledges||privileges privleges||privileges probaly||probably +probabalistic||probabilistic procceed||proceed proccesors||processors procesed||processed @@ -1460,6 +1476,7 @@ submited||submitted submition||submission succeded||succeeded suceed||succeed +succesfuly||successfully succesfully||successfully succesful||successful successed||succeeded @@ -1503,6 +1520,7 @@ symetric||symmetric synax||syntax synchonized||synchronized sychronization||synchronization +sychronously||synchronously synchronuously||synchronously syncronize||synchronize syncronized||synchronized @@ -1532,6 +1550,7 @@ threee||three threshhold||threshold thresold||threshold throught||through +tansition||transition trackling||tracking troughput||throughput trys||tries @@ -1611,6 +1630,7 @@ unneccessary||unnecessary unnecesary||unnecessary unneedingly||unnecessarily unnsupported||unsupported +unuspported||unsupported unmached||unmatched unprecise||imprecise unpriviledged||unprivileged @@ -1657,6 +1677,7 @@ verfication||verification veriosn||version verisons||versions verison||version +veritical||vertical verson||version vicefersa||vice-versa virtal||virtual @@ -1677,6 +1698,7 @@ whenver||whenever wheter||whether whe||when wierd||weird +wihout||without wiil||will wirte||write withing||within |